**1.背景**
对企业来说,税是永远绕不开的话题,一个灵活多变的税金计算方式就显得尤为重要。一个系统中,往往会因为不一样的业务场景,而产生多种税额计算的方式。就比如,对于采购订单生成的应付发票,订单金额可以分为含税金额和不含税金额;对于供应商来说,税额计算的端数处理方式,有的是四舍五入,有的是进一还有的是去尾;而对于税率设置自身来说,可以开设弹性域字段,根据字段内容进行分组合计等,那么将计算好的税额正确的设定要发票上去就显得尤为重要。下面就介绍了几种AP模块设定税额的接口导入方式。
**2.接口实现
**
**2.1 对于采购订单出现含税金额和不含税金额的情况**
不含税金额的发票,可以直接根据发票上面的税率来直接生成税额。通过设定接口表行表的税分类code【TAX_CLASSIFICATION_CODE】字段来用标准功能自动计算税额。
注:左边为接口表主要字段赋值,右表为生成的发票数据。
但是对于预付款的采购订单的时候,可能因为四舍五入的原因,导致充当发票的总金额大于了预付款的总金额,从而出现前后不一致的情况,这时需要进行误差调整,就不能用标准功能自动计算税额了,而是需要直接设定税额。可以设定AP接口头表的管理金额【CONTROL_AMOUNT】字段来控制生成税额。生成的税额不会以税率为准,而是直接利用该字段值作为税额。
按照税率直接生成的发票如上图所示,头1头2的总税额为102,大于了头的100,所以发票产生了误差。因此计划对第二次生成的发票做调整,让它的税额变成49。这时候就需要借助【CONTROL_AMOUNT】这个字段了。对于头2直接设定。
注:左边为接口表主要字段赋值,右表为生成的发票数据。
含税金额的发票,此时接口表也可以根据上面的接口导入方式。如果按照税率自动生成的话,就需要计算出本体额,如果是直接设定税额的话,就需要计算出本体额和税额。
**2.2 对于供应商的端数处理的税额情况**
这个也是需要借助于AP接口表的管理金额【CONTROL_AMOUNT】字段来控制生成税行的金额,因为标准功能对于发票税额默认都是四舍五入处理,因此需要改变税额的调整端数处理方式就需要提前计算好税额,直接设定。
对接口头表赋值-单行明细:
注:左边为接口表主要字段赋值,右表为生成的发票数据,仅显示字段控制作用。
对接口头表赋值-多行明细:会按照明细的品目行金额进行比例分配。
注:左边为接口表主要字段赋值,右表为生成的发票数据,仅显示字段控制作用。
**2.3 对于税率自身设定的弹性域的情况**
根据自身的附加属性在进行税额的计算,这个就要求更为精细,此时同样需要借助AP接口表管理金额【CONTROL_AMOUNT】字段来控制税额,只不过是接口行表的该字段。比如按照税率的合计税区分来计算税额,一个合计税区分只能够做一次四舍五入。
因为一个明细行可以存在多种税率,也就可以存在多个合计税区分,所以给接口表头表设定管理金额时,不能满足需求,因此需要对接口行表设定管理金额,设定每一行的金额。
作者丨卢俊
审核丨梁超
编辑丨王锐