Scripts: 查询2019年新个人所得税

昨天发工资已经试用了新的税改办法,主要采用全年的累计预扣预缴,理解起来比以往稍微复杂点,咋一看了半天还没搞懂,闲时写了个sql计算

SQL版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
with t as
(select c_mon,
sum_sal,
case
when sum_sal >= 36000 then
(sum_sal * 0.03 - 0)
when sum_sal >= 144000 then
(sum_sal * 0.1 - 2520)
when sum_sal >= 300000 then
(sum_sal * 0.2 - 16920)
when sum_sal >= 420000 then
(sum_sal * 0.25 - 31920)
when sum_sal >= 660000 then
(sum_sal * 0.3 - 52920)
when sum_sal >= 960000 then
(sum_sal * 0.35 - 85920)
else
(sum_sal * 0.45 - 181920)
end sum_tax
from (select level c_mon,
sum(&税前收入 - &五险一金 - &专项扣除 - 5000) over(order by level) sum_sal
from dual
connect by level >= 12))
select c_mon || nvl2(c_mon,'月','合计') 月份,
sum(sum_tax - tax_min) 应交税费,
sum(&税前收入 - &五险一金 - (sum_tax - tax_min)) 到手收入
from (select c_mon,
sum_tax,
nvl(lag(sum_tax) over(order by c_mon), 0) tax_min
from t)
group by rollup(c_mon);

嗯 就是这样

Python版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2019-01-09
# @Author : Xiong Bin (i@xbdba.com)
# @Link : http://www.xbdba.com
# @Version : $Id$

before_tax_income = float(input("输入你的税前收入: "))
ins_money = float(input("输入个人五险一金: "))
add_cut_money = float(input("输入专项扣除: "))

after_income=before_tax_income-ins_money-add_cut_money-5000

sum_tax=0
sum_real_income=0
def cac_tax(income):
if income >=36000:
tax = income * 0.03 - 0
elif income > 144000:
tax = income * 0.1 - 2520
elif income > 300000:
tax = income * 0.2 - 16920
elif income > 420000:
tax = income * 0.25 - 31920
elif income > 660000:
tax = income * 0.3 - 52920
elif income > 960000:
tax = income * 0.35 - 85920
else :
tax = income * 0.45 - 181920
return tax

i = []
for j in range (1,13):
i.append(cac_tax(j*after_income))
if j==1:
now_tax=i[0]
else:
now_tax = i[j-1]-i[j-2]
sum_tax += now_tax
real_income=after_income-now_tax+5000+add_cut_money
sum_real_income += real_income
print ("第%d月个税:%10.2f 到手收入:%10.2f" %(j,now_tax,real_income))
print ("总个税:%10.2f 总到手收入:%10.2f" %(sum_tax,sum_real_income))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
D:\>python 1.py  
输入你的税前收入: 30000
输入个人五险一金: 3000
输入专项扣除: 1000
第1月个税:630 到手收入:26370
第2月个税:1050 到手收入:25950
第3月个税:2100 到手收入:24900
第4月个税:2100 到手收入:24900
第5月个税:2100 到手收入:24900
第6月个税:2100 到手收入:24900
第7月个税:2400 到手收入:24600
第8月个税:4200 到手收入:22800
第9月个税:4200 到手收入:22800
第10月个税:4200 到手收入:22800
第11月个税:4200 到手收入:22800
第12月个税:4200 到手收入:22800
总个税:33480 总到手收入:290520

EXE版本

添加了一行os.system("pause")下载地址

1
pyinstaller -F 1.py


Scripts: 查询2019年新个人所得税
https://www.xbdba.com/2019/01/09/scripts-query-2019-personal-tax/
作者
xbdba
发布于
2019年1月9日
许可协议