关于投料单料量取整 的问题
金蝶云社区-hzpemu
hzpemu
0人赞赏了该文章 1,072次浏览 未经作者许可,禁止转载编辑于2016年08月31日 17:10:39

KIS旗舰版3.0
已打补丁V3.PT201503170906
PT097874
PT095390
PT092996
PT092965

关于投料单生成的取整 能不能优化一下算法,因为按现时这种算法,当投料数较少,但投料和生产任务单次数多时会变得领料数比应发数多出很多.
如下图所示:

这样粗略的取整会变得领料直接变成一倍.

应该优化算法,比如是百份之二的损耗率,就应该是 数量*(100+2)/100 用得出的结果再依物料小数点的后一位4舍5入取整到物料小数点的最后一位才合理.
比如物料A的小数点精度是0,那么A的损耗率是2%,
当投料要1个是应该是 1*(100+2)/100=1.02 取整位是0不足5,因此最后实发数就应该是1
10个是应该是 10*(100+2)/100=10.2 取整位是2不足5,因此最后实发数就应该是10
100个是应该是 100*(100+2)/100=102 取整位是0不足5,因此最后实发数就应该是102
比如物料AA的小数点精度是0,那么A的损耗率是5%,
当投料要1个是应该是 1*(100+5)/100=1.05 取整位是0不足5,因此最后实发数就应该是1
10个是应该是 10*(100+5)/100=10.5 取整位是5,因此最后实发数就应该是11
100个是应该是 100*(100+5)/100=105 取整位是0不足5,因此最后实发数就应该是105

比如物料B的小数点精度是2,那么B的损耗率是0.5%,
当投料要1个是应该是 1*(100+0.5)/100=1.005 取整位是5,因此最后实发数就应该是1.01
10个是应该是 10*(100+0.5)/100=10.05 取整位是0不足5,因此最后实发数就应该是10.05
100个是应该是 100*(100+0.5)/100=100.50 取整位是0不足5,因此最后实发数就应该是100.50

我的测试公式,仅供参考
round((fauxqty*@fbomcount*(100+fscrap))/100 ,len(convert(int,fqty/fauxqty))-1) as 'Bom配套数量'