业务流程
材料核销 (按订单发料清单核销)的业务流程就不多赘述,主要流程如下:
1. 新增委外订单
2. 由 委外订单 下推 委外发料单 和 委外入库单
3. 在材料核销界面勾选 委外入库单分录, 核销标准为 按订单发料清单自动核销,进行核销
算法逻辑
首先,进行核销时,发料单的本次核销基本数量计算公式如下:
本次核销基本数量 = 委外入库单基本数量 * 定额标准 * (100+损耗率)%
本次核销基本数量 会根据 发料单物料的基本计量单位的精度 进行 四舍五入 。注意这里因为精度的四舍五入可能会出现尾差,举个例子(以下数据均为虚构):
如上图,发料清单上 定额标准 为1,损耗率为 1,所以数量计算得出 48.48 ,但因为这个物料的基本计量单位精度为0,所以向上取整为49(因为基本计量单位精度为0,不存在 0.5台 这样的数量)。而进行核销时,按上面的公式计算 得出 本次核销基本数量 为 48.48,四舍五入后为 48,这就导致发料单的核销数量少了 1 台。
于是针对上面例子的问题,会根据当前核销的委外入库单是否为最后一笔入库,是的话进行一个尾差处理,保证发料单的已核销数量能够和委外订单上的数量一致。
正常核销
核销过程中,入库单的核销数量为入库单上的数量,而发料单的核销数量根据委外发料单的发料数量进行判断,正对根据委外发料单的发料数量可以将分为两种情况:发料单缺发料、发料单完全发料或超发料。
1.发料单缺发料
因为本次核销基本数量是 由委外入库单的基本计算得出,所以当发料单缺发料时,本次核销基本数量 > 发料单未核销数量,这种情况 委外入库单核销数量不变,发料单的核销数量会根据 发料单的未核销数量 进行核销。
2.发料单完全发料或超发料
当发料单完全发料或超发料时,本次核销基本数量 <= 发料单未核销数量 ,这种情况 委外入库单核销数量不变,发料单的核销数量会根据 (订单发料清单上基本数量 - 发料单的已核销数量 )得出。
如果无论发料单多发料了多少都要核销完的话,那就需要勾选 核销界面上的完全核销选项,进行完全核销
完全核销
勾选了 完全核销 选项,委外发料单的核销数量就不需要通过计算得出,而是委外发料单上有多少数量就核销多少数量。
不过完全核销需要注意一点:当勾选多笔同一个核销单据行id的委外入库单,进行完全核销时,前面的入库单都是走正常核销的逻辑,只有最后一笔会进行完全核销。
接着上面例子的订单下推分别下推委外入库单和委外发料单:
在核销界面如果只勾选一条入库单,进行完全核销的话,两条发料单都会与多选入库单核销;
在核销界面如果两条入库单都勾选,进行完全核销的话,第一笔入库单是正常核销,第二笔入库单才会进行完全核销;
推荐阅读