业务规则分享:如何做到允许手动输入税额:税率不为空时,税额 = 不含税金额 * 税率并且价税合计=不含税金额+税额。原创
金蝶云社区-云社区用户8G0Z8265
云社区用户8G0Z8265
4人赞赏了该文章 325次浏览 未经作者许可,禁止转载编辑于2023年11月09日 19:07:30

遇到一个业务场景:开发平台二开了张单据,有税率、税额、不含税金额、价税合计四个字段。配了业务规则,一个是税率不为空时,税额 = 不含税金额 * 税率,一个是价税合计=不含税金额+税额。但是测试发现,没有办法修改税额了,因为税额执行了前面那一条公式,后面那条公式就失效了。

   image.png

 失效原因: 条件成立时执行的第一条规则一直会把税额赋值成:不含税金额 * 税率。


那么如果此时想既可以自动带出税额,又可以手动输入税额,怎么办呢?

答:需要把这一条业务规则分成4条,并添加一个字段用于辅助,我就叫他能使字段。如图:

image.png


先说第四条:如果税率和不含税金额都不为空,那么给能使字段赋值1.这个是为了调整业务规则执行第二条还是第三条。


第二条和第三条就是把之前的那条规则,利用能使字段拆开:之前的条件是是税率不为空,现在分别是税率不为空并且能使字段等于'1'和不等于'1'。如果能使字段等于1,那么不执行“税额 = 不含税金额 * 税率”。不等于1的话,还是两条都会执行。


这里最核心的是第一条,税率或者不含税金额不为空时,将能使字段赋值为0.这个其实和第四条规则并不冲突,只要将触发时机只选择值更新。


这样就可以达到要求了,其实是利用了业务规则的执行顺序是从上往下的


以看演示视频。


原理:

如果税率和不含税金额都不为空时,会带出税额,并且能使字段变为1。此时会走第二条规则,即只会执行价税合计=不含税金额+税额。此时可以手动修改税额。如果修改税率或不含税金额,会先执行第一条规则,将能使字段变为0,然后执行第三条规则,这时又可以计算税额 = 不含税金额 * 税率。最后又通过第四条规则将能使字段变为1。

最后,能使字段仅用于进入不同的规则,所以可以隐藏。

赞 4