星空旗舰-模拟报价-如何支持自定义取价原创
金蝶云社区-维生
维生
0人赞赏了该文章 21次浏览 未经作者许可,禁止转载编辑于2024年06月24日 14:28:13

    模拟报价已经提供了丰富的子项物料的取价来源,但是在具体的客户场景中可能还会有些特殊的取价来源,这时候可以通过增加自定义取价来源的方式来实现。

    具体的实现步骤如下:

一、首先二开新增一个取价类,按业务的实际需求实现取价功能,继承自 kd.scmc.sm.business.domainservice.getpriceplugin.AbstractGetPricePlugin 并重写 getPriceData方法。

参数说明: List<GetPriceMaterialData> 待取价的子项物料信息列表

子项物料信息的详细属性:

priceMaterialData.getPKId();   主键,后续会通过这个匹配取到的价格

            priceMaterialData.getMaterialId(); 子项物料业务信息ID

            priceMaterialData.getMaterialMasterId();  子项物料的主ID

            priceMaterialData.getAuxPtyId(); 物料辅助属性

            priceMaterialData.getOrgId(); 物料供应组织ID

            priceMaterialData.getCurrencyId();  币别

            priceMaterialData.getUnitId();  单位

            priceMaterialData.getBaseUnitId();  基本单位

            priceMaterialData.getQty();  数量

            priceMaterialData.getBaseQty();  基本单位数量

 

返回值:Map<Long, GetPriceResultData>  获取的价格集合 

Long:  对应参数的getPKId()

GetPriceResultData:价格结果,具体属性如下:

              priceResultData.setPriceSrcEntityKey("sm_salorder"); //价格来源单据实体标识

priceResultData.setPriceSrcBillId(1001L); //价格单据来源单据ID

priceResultData.setPriceSrcEntryId(100101L); //价格单据来源单据分录ID

priceResultData.setPKId(priceMaterialData.getPKId()); //主键

priceResultData.setCurrencyId(1); //价格的币别

priceResultData.setPriceUnitId(101); //价格的单位

priceResultData.setPrice(BigDecimal.valueOf(100)); //单价

priceResultData.setTaxPrice(BigDecimal.valueOf(113)); //含税单价

priceResultData.setTaxRate(BigDecimal.valueOf(13)); //税率

 

示例代码如下:

 image.png

 

二、在开发平台新增自定义的取价来源

2.1  增加模拟报价取价来源类型         

供应链—>销售管理-->销售报价-->模拟报价取价来源类型

增加一取价来源类型,实现类为刚才新增的取价类

 image.png

 

2.2  增加模拟报价取价来源

供应链—>销售管理-->销售报价-->模拟报价取价来源

增加模拟报价子项的取价来源,确定上面新增的取价类型适用于材料取价还是委外取价,自制件取价

 image.png


三、模拟报价向导取价

以上设置完成后,就可以在模拟报价向导中,选择新增的自定义取价来源进行取价

image.png

赞 0