采购流程计价单位和库存单位浮动换算时的一种处理方式

一、业务需求背景
如物料【钢材】,计价单位是【千克】,基本单位、采购单位、库存单位都是【平方米】,设置浮动换算比例是1:1,采购订单录入采购数量为10平方米,默认携带出来的计价数量也是10千克,在收料通知单环节,根据实际重量进行称重确认,如称重为13.56千克,希望在后续入库、应付等环节,按照收料通知单上10平方米,13.56千克的比例携带。
二、需求分析
1、标准系统在处理浮动换算时,是会根据物料上配置的浮动换算比例来重新计算,需要在每个环节都要重新称重录入,所以上述例子,在收料通知单称重后下推入库单,又会重新换算出计价数量为10千克。
2、考虑在收料通知单称重时,计算出一个浮动换算比例,将这个比例一直携带到下游单据。当计价单位和库存单位是浮动换算时,根据这个比例进行相关计算。
3、因为在采购入库单到应付单后续环节是用计价基本数量进行携带换算, 所以考虑入库单后续流程环节采用尾差策略调整。财务环节可参考:https://wenku.my7c.com/article/362247731672613120?productLineId=1&isKnowledge=2
三、具体配置步骤
1、物料【GC202301】 基本单位为【平方米】,采购计价单位【千克】,浮动换算,换算比例如下

2、收料通知单新增一个小数字段【浮动换算比例】
浮动换算比例=计价数量/交货数量,保留6位小数(保留的小数位需要大于单位精度,这样可以确保用比例换算时减少误差)
可设置字段【浮动换算比例】不允许修改

单据转换【采购订单-收料通知单】,表单服务策略中,配置【浮动换算比例】作为一个初始值比例值,服务顺序放在最后。下推后根据实际情况修改计价数量时重新计算【浮动换算比例】
配置前提条件【FPriceUnitId <> null AND GETCONVERTTYPE ( FMaterialId ,FStockUnitId , FPriceUnitId ) <> 0】 当计价单位和库存单位是浮动换算时,触发执行。
计算公式 F_QVBL_DECIMAL=round( FPriceUnitQty / FActReceiveQty,6)

在收料通知单的计价数量、交货数量两个字段上配置值更新,计算【浮动换算比例】
注意配置前提条件为浮动换算时【FPriceUnitId <> null AND GETCONVERTTYPE ( FMaterialId ,FStockUnitId , FPriceUnitId ) <> 0】
配置的公式如下【 F_QVBL_Decimal =round( FPriceUnitQty / FActReceiveQty,6)】

配置后效果如下

3、携带浮动换算比例字段到下游采购入库单
采购入库单上新增一个小数字段【浮动换算比例】,单据转换中将字段【浮动换算比例】直接携带到下游采购入库单

单据转换中表单服务策略配置重算计价数量服务
表单服务策略添加服务,服务类型为【计算定义公式的值并填写到指定列】
注意配置前提条件为浮动换算时,且换算比例大于0的时候重算【(FPriceUnitId <> null AND GETCONVERTTYPE ( FMaterialId , funitid, FPriceUnitId ) <> 0 ) and F_QVBL_Decimal >0】,配置换算比例大于0主要是针对兼容历史未下推入库单的收料通知单,计算公式【FPriceUnitQty = FRealQty * F_QVBL_Decimal 】
服务添加的位置,如截图所示,在实收数量计算之后,金额计算服务

同时在该服务后,再加一条服务,类型为【根据数量关联的单位自动计算目标数量】,前提条件配置为浮动
采购流程计价单位和库存单位浮动换算时的一种处理方式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



