WHT计算逻辑



前言:

在SAP系统中,WHT分为两部分内容,一部分是旧的配置内容,叫WITHHOLDING TAX;另一部分配置叫EXTENDED WITHHOLDING TAX,目前主要是使用extended withholding tax来进行配置,但系统只有原来的预扣税计算函数,没有延展预扣税计算的函数,所以造成我们在使用预扣税做批导或者接口计算预扣税额的时候没法计算,本文主要是理清预扣税计算的逻辑




学习内容:

通过输入的公司代码、供应商、预扣税类型、预扣税码;

        在表LFBW中取出该公司代码下供应商的税率和税码,校验输入的税类型和税码是否存在,

       若不存在则无法计算税额,

若存在, 通过国家/地区、预扣税类型在表T059P中取出

      T059P-WT_ACCPT(累加期:按年、按季度、按月、没有累加等值)、

     T059P-WT_WTRD(取整规则)、

     T059P-WT_BASE(预扣税基础金额类型)、

     T059P-WT_DOPOST(记账预扣税金额)、

    T059P-POSTM(记账时间:发票时、付款时)、

    T059P-WT_MAINTA(维护最小/最大税额:税类型层、税代码层)、

    T059P-WT_CEINV(中心发票)、

    T059P-WT_BCPLVL(凭证层的最小支票);

通过公司代码、税类型在表T001RWT取出

   T001RWT-WAERS(货币)、

   T001RWT-REINH(舍入位);

通过国家/地区在表T059FBH取出

  T059FBH-WITHT(预扣税类型)、

  T059FBH-WT_WITHCD(预扣税代码)、

  T059FBH-WT_VALID(有效期始于);

通过国家/地区、预扣税类型、预扣税代码在表T059FB取出

  T059FB-WT_VALID(有效期始于)、

  T059FB-WT_BBASB(“到”基数)、

  T059FB-QSAZT(预扣税率)、

  T059FB-QSATR(减少的预扣税率)、

  T059FB-QMBAB(减少基本金额);

通过公司代码、税类型、税代码在表T059Z中取出

  T059Z-QPROZ(应缴预扣税的百分比)、

  T059Z-QSATZ(预扣税率)、

  T059Z-QSATR(减免率)、

  T059Z-XQFOR(WT公式标识);

通过国家/地区、税类型税代码在表T059MINMAX中取出

  T059MINMAX-WT_DATE(起始日期)、

  T059MINMAX-WT_WTMIN(最小值)、

  T059MINMAX-WT_WTMAX(最大值)、

  T059MINMAX-WT_WTMINB(最小基数)、

  T059MINMAX-WT_WTBEX(免税基数)。

计算逻辑:

校验是否发票过账预扣税:

      若T059P-WT_POSTM(记账时间)=1,则税类型为发票过账的税类型;

      若T059P-WT_POSTM(记账时间)=2,则税类型为付款过账时的税类型。

(1)校验预扣税基值取值原则:校验T059P-WT_BASE(预扣税基础金额类型),

      若T059P-WT_BASE=1,则取不含税金额为基值;

      若T059P-WT_BASE=2,则取含税金额为基值;

      若T059P-WT_BASE=3,则取税额为基值;

 (2)校验是否可手工输入预扣税基值:

      若T059P-WT_MANUAL(手工输入预扣税基数)=X,则优先取手工输入的基值作为基值,

      若T059P-WT_MANUAL(手工输入预扣税基数)为空,则取行项目的原金额为基值

 (3)校验基值是否累加:

      若T059P-WT_ACCPT(累加期)=0,则直接按照每次行项目的基值计算税额(根据第5、6步);

       若T059P-WT_ACCPT(累加期)=1,则基值按照日历年进行累加,并计算税额(根据第5、6、7步);

       若T059P-WT_ACCPT(累加期)=2,则基值按照季度进行累加,并计算税额(根据第5、6、7步);

       若T059P-WT_ACCPT(累加期)=3,则基值按照月度进行累加,并计算税额(根据第5、6、7步);基值计算参照第4步;

(4)当勾选按年、月、季度进行累加时,按照公司代码、供应商、公历年、税类型、税代码、去WTAK表中的WT_BS01、WT_BS02。。。。。。、WT_BS12的值: 

      若是按年,则累计基值=WT_BS01+WT_BS02。。。。。。。+WT_BS12+该行项目基值;

      若是按照季度,则第一季度累计值=WT_BS01+WT_BS02+WT_BS03+该行项目基值,以此类推;

      若是按照月度累加,当期月份为n时,则累计基值=(WT_BS)n+该行项目基值金额;

(5)校验公式是否按照WT公式:根据国家/地区、税类型、税码按照每一行取出T059FB-WT_VALID(有效期始于)、T059FB-WT_BBASB(“到”基数)、T059FB-QSATZ(预扣税率)、T059FB-QSATR(减少的预扣税率)、T059FB-QMBAB(减少基本金额)、T059FB-QMBAR(基本金额减少量);

       校验每一行T059FB-WT_VALID(有效期始于)是否符合要求:

       若不符合要求则不再计算,

      若符合要求,则将取出的每一行T059FB-WT_BBASB(“到”基数)、T059FB-QSATZ(预扣税率)、T059FB-QSATR(减少的预扣税率)、T059FB-QMBAB(减少基本金额)的值计算税额,税额=(T059FB-WT_BBASB-T059FB-QSATR)*T059FB-QSATZ,总税额=税额1+税额2.。。。。+税额n;若基值金额超出T059FB-WT_BBASB(“到”基数)的最大值,则好处部分不再计算税额;

(6)最大最小值:根据国家/地区、税类型、税代码取出T059MINMAX-WT_DATE(起始日期)、T059MINMAX-WT_WTMIN(最小值)、T059MINMAX-WT_WTMAX(最大值)、T059MINMAX-WT_MINB(最小基数)、T059MINMAX-WT_WTBEX(免税基数),

      若日期<起始日期,则该配置无效;

      若日期>=起始日期,则该配置有效,并继续后面的逻辑,若T059MINMAX-WT_WTMIN(最小值)有值,则系统计算税额之后,税额<T059MINMAX-WT_WTMIN时,该条基数免税,税额>=T059MINMAX-WT_WTMIN时,则计算税额;若T059MINMAX-WT_WTMAX(最大值)有值,则税额>T059MINMAX-WT_WTMAX时,税额=T059MINMAX-WT_WTMAX;若税额<=T059MINMAX-WT_WTMAX时,税额=税额;若T059MINMAX-WT_MINB(最小基数)有值,则基数<T059MINMAX-WT_MINB(最小基数)时,该基数免税,基数>=T059MINMAX-WT_MINB(最小基数)时,税额=基数*税率;若T059MINMAX-WT_WTBEX(免税基数)有值,则基数<T059MINMAX-WT_WTBEX时,该基数免税,基数>=T059MINMAX-WT_WTBEX时,税额=(基数-T059MINMAX-WT_WTBEX)*税率;

(7)当T059P-WT_ACCPT(累加期)=1时,税额=WT计算税额-(WTAK-WT_WT01+WTAK-WT_WT02+......+WTAK-WT_WT12);

         当T059P-WT_ACCPT(累加期)=2,凭证为第一季度时,税额=WT计算税额-(WTAK-WT_WT01+WTAK-WT_WT02+TAK-WT_WT03),以此类推;

         当T059P-WT_ACCPT(累加期)=3,当前期间为n时,税额=WT计算税额-(WTAK-WT_WT)n;

(8)税额取整规则及尾数计算:通过公司代码、预扣税类型在T001RWT表中取出T001RWT-WAERS(货币)、T001RWT-REINH(舍入位),

         若舍入位为1,该货币的税额保持默认的小数位不变,尾数按照取整规则计算;若舍入位为10,则该货币值减少一位小数,尾数按照取整规则计算;

         若舍入位为100,该货币税额减少两位小数,尾数按照取整规则计算;

取整规则:根据国家/地区、税类型取出T059P-WT_WTRD(取整规则),

        T059P-WT_WTRD=1时,则尾数按照四舍五入计算;

        T059P-WT_WTRD=2时,则尾数向上进1;

        T059P-WT_WTRD=3时,尾数舍去;

 (9)若T059P-WT_POSTM(记账时间)=2时,则税额类型为付款过账时的税类型,取出表T059P中的字段T059P-WT_WTDSC,

         当WT_WTDSC=X时,则预扣税额=基值*税率;

          当WT_WTDSC为空时,基值2=折后金额/应付金额*基值1,,当T059P-WT_ACCPT(累加期)=0;则基值=基值2,当T059P-WT_ACCPT(累加期)=1、2、3时,基值=累计基值(见第4步)+基值2,税额=基值*税率。


  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值