用ABAP 写的一个工资税计算程序,按新税法累计计算个税,工资越高越到后面扣的多、。。。。。

举例 8000 和 30000

工资8000:

工资30000

*&---------------------------------------------------------------------*
*& Report Z_CALCULATE_PAYROLL_TAX
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT z_calculate_payroll_tax.

SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE TEXT-000.

PARAMETERS: p_year  TYPE char4 , "DEFAULT '2020',
            p_month TYPE char2.

PARAMETERS: p_payr TYPE p DECIMALS 2 MODIF ID pay,
            p_ded1 TYPE i MODIF ID de1,
            p_ded2 TYPE p DECIMALS 2 MODIF ID de2.

SELECTION-SCREEN END OF BLOCK bl1.

TYPES:BEGIN OF ty_tax,

level     TYPE i,
        low       TYPE i,
        high      TYPE i,
        pecent    TYPE p DECIMALS 2,
        de_amount TYPE i,
      END OF ty_tax.

DATA:gt_tax TYPE STANDARD TABLE OF ty_tax,
     gs_tax TYPE ty_tax.

TYPES:BEGIN OF ty_tax_cal,

month       TYPE i,
        payroll     TYPE p DECIMALS 2,
        ded1        TYPE p DECIMALS 2,
        ded2        TYPE p DECIMALS 2,
        payroll_cal TYPE p DECIMALS 2,
        tax         TYPE p DECIMALS 2,
      END OF ty_tax_cal.
DATA:gt_month TYPE STANDARD TABLE OF ty_tax_cal,
     gs_month TYPE ty_tax_cal.
DATA:gt_month_tmp TYPE STANDARD TABLE OF ty_tax_cal,
     gs_month_tmp TYPE ty_tax_cal.

INITIALIZATION.

PERFORM frm_init.

p_year = sy-datum+0(4).
  p_month = 12.

START-OF-SELECTION.

END-OF-SELECTION.

PERFORM frm_calculate_tax.

FORM frm_init.

REFRESH gt_tax.
  CLEAR gs_tax.

gs_tax-level = 1.
  gs_tax-low = 0.
  gs_tax-high = 36000.
  gs_tax-pecent = '0.03'.
  gs_tax-de_amount = 0.
  APPEND gs_tax TO gt_tax.

gs_tax-level = 2.
  gs_tax-low = 36000.
  gs_tax-high = 144000.
  gs_tax-pecent = '0.1'.
  gs_tax-de_amount = 2520.
  APPEND gs_tax TO gt_tax.

gs_tax-level = 3.
  gs_tax-low = 144000.
  gs_tax-high = 300000.
  gs_tax-pecent = '0.2'.
  gs_tax-de_amount = 16920.
  APPEND gs_tax TO gt_tax.

gs_tax-level = 4.
  gs_tax-low = 300000.
  gs_tax-high = 420000.
  gs_tax-pecent = '0.25'.
  gs_tax-de_amount = 31920.
  APPEND gs_tax TO gt_tax.

gs_tax-level = 5.
  gs_tax-low = 420000.
  gs_tax-high = 660000.
  gs_tax-pecent = '0.3'.
  gs_tax-de_amount = 52920.
  APPEND gs_tax TO gt_tax.

gs_tax-level = 6.
  gs_tax-low = 660000.
  gs_tax-high = 960000.
  gs_tax-pecent = '0.35'.
  gs_tax-de_amount = 85920.
  APPEND gs_tax TO gt_tax.

gs_tax-level = 7.
  gs_tax-low = 960000.
  gs_tax-high = 9960000.
  gs_tax-pecent = '0.45'.
  gs_tax-de_amount = 181920.
  APPEND gs_tax TO gt_tax.

REFRESH gt_month.
  CLEAR gs_month.

ENDFORM.

FORM frm_calculate_tax.

*按税率计算税额

DATA lv_month TYPE i.

DATA lv_time TYPE i.
  lv_month = 0.
  lv_time = p_month.
  DO lv_time TIMES.

lv_month = lv_month + 1.
    gs_month-month = lv_month."月份
    gs_month-payroll = p_payr * lv_month."累计工资
    gs_month-ded1 = p_ded1 * lv_month. "累计附加扣除
    gs_month-ded2 = p_ded2 * lv_month. "累计扣的五险一金
    gs_month-payroll_cal = gs_month-payroll - gs_month-ded1 - gs_month-ded2 - 5000 * lv_month."总工资扣除总的五险一金和累计附加扣除后用于计算税的部分
    APPEND gs_month TO gt_month.

ENDDO.

LOOP AT gt_month INTO gs_month.

LOOP AT gt_tax INTO gs_tax WHERE low < gs_month-payroll_cal AND high >= gs_month-payroll_cal.

gs_month-tax = gs_month-payroll_cal * gs_tax-pecent - gs_tax-de_amount.
    ENDLOOP.

MODIFY gt_month FROM gs_month.

ENDLOOP.

REFRESH gt_month_tmp.

APPEND LINES OF gt_month TO gt_month_tmp.

SORT gt_month_tmp BY month DESCENDING.

DATA lv_tax TYPE p DECIMALS 2.
*扣除之前扣掉的税额
  LOOP AT gt_month INTO gs_month.

LOOP AT gt_month_tmp INTO gs_month_tmp WHERE month < gs_month-month.

gs_month-tax = gs_month-tax - gs_month_tmp-tax.
      EXIT.
    ENDLOOP.

MODIFY gt_month FROM gs_month.

WRITE : / gs_month-month,gs_month-tax.
   " WRITE :'\n'.

lv_tax = lv_tax + gs_month-tax.
   CLEAR gs_month.

ENDLOOP.

WRITE:/ '总共' && lv_tax.

ENDFORM.

2020 新税法工资计算相关推荐

  1. [Python] 2018新税法下工资计算

    新个税的草案,明确了新版7级税率明细:全年应纳税所得额不超过3.6万元的,适用3%税率:超过3.6万元至14.4万元的部分,适用10%税率:超过14.4万元至30万元的部分,适用20%税率:超过30万 ...

  2. 新版个人所得税计算python_2019年新税率工资计算器(python脚本) | linux系统运维...

    #!/usr/bin/evn python # coding=utf-8 # 2019年新税率个人所得税计算器,本脚本仅供学习 # blog: http://www.linuxyw.com # aut ...

  3. 程序员真香!IT 业 2020 年平均工资最高

    整理 | 王晓曼 出品 | 程序人生 (ID:coder _life) 5月19日,国家统计局发布2020年平均工资数据,随后,相关话题便冲上微博热搜. 程序员真香! 据国家统计局发布的数据显示,20 ...

  4. 2020年平均工资出炉 IT行业超17万居首

    2020年平均工资数据出炉. 在疫情冲击下,平均工资的增速回落至多年较低水平,但是仍然保持增长. 其中,城镇非私营单位平均工资超9.7万元:程序员还是最吃香,IT业年平均工资超17万元居首. 非私营单 ...

  5. 今年两会大火的新基建,平均企业月薪1.63万 | 2020新基建中高端人才市场就业吸引力报告...

    来源:猎聘 本文长度为3000字,建议阅读9分钟. 北上深新基建企业薪资领先全国,东莞位居第四成黑马. 今年,新基建(新型基础设施建设)成为当之无愧的社会流行热词,受到了社会各界的关注,也频频出现在地 ...

  6. 2019年新税法+抵扣项的个人所得税攻击计算器

    由于新税法是累进抵扣,所以每月需要缴税的金额也是不一样的,写了个python程序算一下自己每年要交多少个税 # -*- coding: utf-8 -*- import matplotlib.pypl ...

  7. 2017西安php行业工资,西安2020冬季平均工资出炉!基金、IT服务这些行业薪资高...

    前段时间各大平台的年度总结都出炉了,看到微信.支付宝年度账单的时候,小编着实倒吸了一口凉气:"怎么花了这么多?".不过挣钱就是为了花(小编自我安慰一下).新的一年继续好好挣钱就行了 ...

  8. 2020新基建人才薪资:工业互联网月薪1.81万元居首,超5G、人工智能

    近日,猎聘大数据研究院推出<2020新基建中高端人才市场就业吸引力报告>,刻画新基建领域的中高端人才画像. 该<报告>数据统计时间主要为2020年1-4月,重点针对5G.大数据 ...

  9. 2020年平均工资出炉!哪个行业最赚钱?

    点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 每日英文 Man has to be crazy for once, whe ...

最新文章

  1. 【mybatis基础】mybatis开发dao两种方法
  2. 原来流行也可以变成怀旧!
  3. notepad++每行首尾添加内容
  4. 使用Canvas扩展绘制动态ASP.NET Core Blazor气泡图
  5. 腾讯广告算法大赛 | 复赛第一周周冠军心得分享
  6. 小狗扫地机器人与石头_石头扫地机器人 T7:使用一周后的真实测评报告
  7. oracle的解析計劃,Oracle中获取执行计划的几种方法分析
  8. android桌面小工具,超好用的手机桌面小组件,一键美化桌面,实用又美观
  9. 大学课程 | 《软件工程》知识点超详细总结归纳
  10. 基于51单片机机械臂控制系统
  11. SXF python
  12. CrystalDiskInfo 各项参数说明
  13. java 如何转化成机器指令_Java代码到底是如何编译成机器指令的
  14. (自己编写函数)Python + Opencv 图像边缘检测(模糊算法【老师给的ppt中原理是这样的,但是还有很多不明白,有很多参数老师没说怎么算,只说了每张图片不一样】)
  15. Mysql 安装及my.ini的创建
  16. oracle 关系 表 视图_oracle主要的动态视图与基表的对应关系
  17. linux系统man手册,Linux中man手册的使用
  18. Mysql 中MVCC 设计方式
  19. 技术体系构建_构建出色的技术简历的简单指南
  20. thinkph5 路由技巧

热门文章

  1. innerHTML与innerText区别
  2. 于g2o新版本编译出错的原因及解决办法
  3. 【表格】科研每日日程安排表【来自知乎】
  4. SQL查询知识点总结
  5. 家用投影仪什么牌子好?怎样选投影仪
  6. Excel批量删除插入的对象的2种方法
  7. c语言编译生成的目标文件拓展名,系统默认的C语言源程序文件的扩展名是(),经过编译后生成的目标文件的扩展名是(),经过连接后生成的可执行文件的扩展名是()。...
  8. 03、css float 浮动属性
  9. java swing课程表设计_阶段2:手把手快速做一个Java swing mysql学生选课系统附带完整源码及视频开发教程【猿来入此自营】...
  10. 对您的爱,一直都在。