设中国护士网为首页 | 中国护士网专注于知识的分享,因为专注,所以更好!
分享到:

中国个人所得税的回溯研究

来源:  作者:lanmbor

做过SAP HR的大都知道,SAP在中国区提供的Payroll schema有两个,一个是CN00,一个是CN28.两者最大的区别是,一个是把计税的结果带到当月,另外一个是把税基带到当月.

我现在碰到了一个客户,它的需求是,如果上月员工有发薪水(存在Payroll result),那么就把税基带到本月,如果上月员工薪水就没有发,那么就把税的结果带到本月:

于是我便仔细研究这两个schema的差别的出结果如下

首先来看看SAP标准的schema处理两种算税模式时候的差别:

1.         CN00:带计税结果到当月

CN28:带税基到当月

2.         CN00中使用的是CNNT

CN28中使用的是CNNG

3.         CNNT中使用的是CNTX

CNNG中使用的是CNTG

4.         CNTX的Source COde如下:

Line   Func. Par1 Par2 Par3 Par4 D Text

000010 BLOCK BEG                   Process individual income tax

000020 PIT   CN15 P67  NOAB        Taxable foreign wage need spec exchange

000030 CNGRO                       Re-convert foreign currency amount

000040 PIT   CNBN P66  NOAB        Process bonus need to caclculate tax sep

000050 PIT   CNSS P70  NOAB        Process special salary related income se

000060 PIT   CNMV      NOAB        Save tax base before gross-up /40X->/44X

000070 CNGRS                       Gross up for the EE tax paid be ER.

000080 CNTAX                       Tax calculation

000090 CNSOT                       Calculate stock options income tax

000100 CNTXR                       Calculation for tax partially paid by ER

000110 BLOCK END                   Process individual income tax

CNTG的Source Code如下:

000010 BLOCK BEG                   Process individual income tax

000020 PIT   CN15 P67  NOAB        Taxable foreign wage need spec exchange

000030 CNGRO                       Re-convert foreign currency amount

000040 PIT   CNBN P66  NOAB        Process bonus need to caclculate tax sep

000050 PIT   CNSS P70  NOAB        Process special salary related income se

000060 PIT   CNMV      NOAB        Save tax base before gross-up /40X->/44X

000070 COPY  CNTL                  Get influx WT from LRT for tax base

000080 IF         O                Original Period

000090 CNGRS                       Gross up for the EE tax paid be ER.

000100 CNTAX                       Tax calculation

000110 CNSOT                       Calculate stock options income tax

000120 CNTXR                       Calculation for tax partially paid by ER

000130 ELSE                        Form Tax base diff and move ORT to RT

000140 COPY  CNTR                  Form diff for tax base

000150 ENDIF                       End of IF form tax base diff.

000160 BLOCK END                   Process individual income tax

5.         CNTR的code如下:

Line   Func. Par1 Par2 Par3 Par4 D Text

000010 BLOCK BEG                   Form diffrence and move ORT to RT

000020 LPBEG      RC               Loop over old results

000030 IMPRT      O                    Import old result (’x’ in ‘y-1′)

000040 PRINT NP   ORT              Print ORT

000050 LPEND                       Endloop

000060 IF         LPRC             If: there is old result

000070 PIT   CNL7      NOAB        Form diff. to influx, TAX base

000080 PORT  CNL8      NOAB        Get retro-relevant wage types

000090 PORT  CNL5      NOAB        Move old Data from ORT to IT

000100 ELSE                        No old results, calculate the tax

000110 PIT   CNLB      NOAB        Form diff. to influx, TAX base

000120 ENDIF                       End of if LPRC

000130 BLOCK END                   Form difference and move ORT to RT

通过观察发现,最重要的差别是,在CNTG这个schema中,会判断计算的是不是当前薪资周期的薪资,如果不是的话,只做税基的加总,如果是的话,则利用之前加总起来的的税基来算税.

最后的解决方式如下,中心思想是:不管是不是当期,只要有旧薪资结果,就计算税基差往当期里面加。只要没有,那就直接在当期算税,算完后再往当前的薪资结果里面加

1:copy CN28到ZCN1

2:将ZCN1中的CNNG改为ZNNG

3:ZNNG为将CNNG中的CNTG改为ZNTG

4:ZNTG如下:

Cmmnd

Line   Func. Par1 Par2 Par3 Par4 D Text

000010 BLOCK BEG                   Process individual income tax

000020 PIT   CN15 P67  NOAB        Taxable foreign wage need spec exchange

000030 CNGRO                       Re-convert foreign currency amount

000040 PIT   CNBN P66  NOAB        Process bonus need to caclculate tax se

000050 PIT   CNSS P70  NOAB        Process special salary related income s

000060 PIT   CNMV      NOAB        Save tax base before gross-up /40X->/44

000070 COPY  CNTL                  Get influx WT from LRT for tax base

000080 IF         O              * Original Period

000090 LPBEG      RC

000100 IMPRT      O

000110 LPEND

000120 IF         LPRC

000130 COPY  CNTR                  Form diff for tax base

000140 ELSE                        Form Tax base diff and move ORT to RT

000150 CNGRS                       Gross up for the EE tax paid be ER.

000160 CNTAX                       Tax calculation

000170 CNSOT                       Calculate stock options income tax

000180 CNTXR                       Calculation for tax partially paid by E

000190 ENDIF                       End of IF form tax base diff.

000200 ELSE                      *

000210 COPY  CNTR                *

000220 ENDIF                     *

000230 BLOCK END                   Process individual income tax