销售订单 支持生成凭证 二开指导
业务场景:
销售订单支持生成凭证
具体开发内容:
1. 执行脚本,销售订单后台表新增字段:记账标识、凭证id
IF NOT EXISTS (SELECT * FROM KSQL_USERCOLUMNS WHERE KSQL_COL_NAME ='FFIVOUCHERED' AND KSQL_COL_TABNAME='T_SD_SALEORDER') ALTER TABLE T_SD_SALEORDER ADD FFIVOUCHERED INT; IF NOT EXISTS (SELECT * FROM KSQL_USERCOLUMNS WHERE KSQL_COL_NAME ='FVOUCHERID' AND KSQL_COL_TABNAME='T_SD_SALEORDER') ALTER TABLE T_SD_SALEORDER ADD FVOUCHERID nvarchar(255);
2. 放开ui 生成凭证、删除凭证 按钮
新增类SaleOrderEditUICTEx 继承com.kingdee.eas.scm.sd.sale.client.SaleOrderEditUI(编辑界面)
新增类 SaleOrderListUICTEx 继承com.kingdee.eas.scm.sd.sale.client.SaleOrderListUI(序时簿)
分别重写 onload的方法,在super.onload(); 后面设置按钮的可见、可用:
btnVoucher.setVisible(true); //生成凭证按钮
btnVoucher.setEnabled(true);
btnDelVoucher.setVisible(true); //删除凭证按钮
btnDelVoucher.setEnabled(true);
注意 ui二开类需以标准产品类名 + CTEx 命名,系统在加载类时会优先加载该命名方式的类
3. 后台类逻辑重写
新增类SaleOrderControllerBeanCTEx
继承com.kingdee.eas.scm.sd.sale.app.SaleOrderControllerBean
重写_getCompanyOrgUnit 和 _deleteVoucher 方法:
protected CompanyOrgUnitInfo _getCompanyOrgUnit(Context ctx, IObjectPK pk) throws BOSException, EASBizException { CompanyOrgUnitInfo companyOrgUnitInfo = null; SaleOrderInfo saleOrderInfo = getSaleOrderInfo(ctx, pk); if (saleOrderInfo != null) { IOrgUnitRelation iOrgUnitRelation = OrgUnitRelationFactory.getLocalInstance(ctx); OrgUnitCollection orgUnitCollection = iOrgUnitRelation.getToUnit(saleOrderInfo.getSaleOrgUnit().getId().toString(), OrgType.SALE_VALUE, OrgType.COMPANY_VALUE); if (orgUnitCollection != null && orgUnitCollection.size() > 0) { companyOrgUnitInfo = (CompanyOrgUnitInfo) orgUnitCollection.get(0); } } return companyOrgUnitInfo; } @Override protected boolean _deleteVoucher(Context ctx, IObjectPK sourceBillPk) throws BOSException, EASBizException { String sql = "select FVOUCHERID from T_SD_SALEORDER where fid ='"+sourceBillPk.toString()+"' and FFIVOUCHERED = 1 "; IRowSet rs = DbUtil.executeQuery(ctx, sql); try { if (!rs.next()) { return false; } String fvoucherid = rs.getString("FVOUCHERID"); ObjectUuidPK pk = new ObjectUuidPK(fvoucherid); VoucherInfo voucherInfo = (VoucherInfo) VoucherFactory.getLocalInstance(ctx).getValue(pk); IVoucher iVoucher = VoucherFactory.getLocalInstance(ctx); iVoucher.delete(pk); IDAPTransformer dapTransformer = DAPTransformerFactory.getLocalInstance(ctx); dapTransformer.undoTransformFromVoucher(voucherInfo); } catch (SQLException e) { throw new BOSException(e); } return true; }
4.Dep 配置后台类
5.配置BOTP 规则
具体规则根据具体业务制定
销售订单 支持生成凭证 二开指导
业务场景: 销售订单支持生成凭证具体开发内容:1. 执行脚本,销售订单后台表新增字段:记账标识、凭证idIF NOT EXISTS (SELECT * FRO...
点击下载文档
本文2024-09-16 23:23:28发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-54258.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章