题目:
员工 2015 年入职,2019 年每月应发工资均为 30000 元,每月减除费用 5000 元,“三险一金”等专项扣除为 4500 元,享受子女教育、奉养老人两项专项附加扣除共计 2000 元,没有减免支出及减免税额等状况,以前三个月为例,该当依照以下办法计算各月应预扣预缴税额:
1 月份:(30000–5000-4500-2000)×3%=555 元
2 月份:(30000×2-5000×2-4500×2-2000×2)×10%-2520-555=625 元
3 月份:(30000×3-5000×3-4500×3-2000×3)×10%-2520-555-625=1850 元
论断:上述计算结果表明,因为 2 月份累计预扣预缴应征税所得额为 37000 元,已实用 10% 的税率,因而 2 月份和 3 月份应预扣预缴有所增高
新个人所得税税率表
代码化
输出:应发工资 / 每月减除费用 / 五险一金扣除 / 专项附加扣除
输入:依据个人所得税预扣率表计算每个月的税额,也阔以计算年度税额
次要代码
<!--
* @Description:
* @Date: 2020-12-14 15:37:07
* @lastTime: 2020-12-19 10:13:34
* @LastEditors: cpp
-->
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title> 集体计算税收 </title>
<meta name="viewport" content="width=device-width, initial-scale=1.0,
maximum-scale=1.0, user-scalable=no">
<style>
* {
margin: 0;
padding: 0
}
</style>
</head>
<body>
<div id = 'app'></div>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.js"></script>
<script>
// 本期应预扣预缴税额 =(累计预扣预缴应征税所得额×预扣率 - 速算扣除数)- 累计减免税额
// 累计预扣预缴应征税所得额 = 累计免税支出 - 累计减除费用 - 累计专项扣除 - 累计专项附加扣除 - 累计依法确定的其余扣除
new Vue({
el: '#app',
template: `
<div>
<div>
<label for="taxFreeIncome">
每月应发工资(税前){{taxFreeIncome}} <input v-model='taxFreeIncome' />
</label>
</div>
<div>
<label for="countDeduction">
每月减除费用 {{countDeduction}} <input v-model='countDeduction' />
</label>
</div>
<div>
<label for="insurance">
每月五险一金{{insurance}} <input v-model='insurance' />
</label>
</div>
<div>
<label for="specialAddOn">
每月专项抵扣 {{specialAddOn}} <input v-model='specialAddOn' />
</label>
</div>
<div>
<label for="monthNum">
累积 {{monthNum}} 月 <input v-model='monthNum' />
</label>
</div>
<ul >
<li v-for = '(item, i) in monthTax'> 第 {{i + 1}} 月 应缴费 {{item}}</li>
</ul>
<div>
<h3> 年初 {{yearEndMonth}} 系数 <input v-model='yearEndMonth' /></h3>
<h3> 年度总应酬工资(税前) {{yearTotal}} 元 </h3>
<h3> 年度总税额 {{totalTax}} 元 </h3>
<h3> 年度到手工资 {{yearTotal - totalTax}} </h3>
<h3> 均匀月度到手工资 {{(yearTotal - totalTax) / 12 }} </h3>
</div>
<button @click='count'> 计算 </button>
</div>
`,
data() {
return {
taxFreeIncome: 30000, // 应收工资
countDeduction: 5000,// 起纳税
insurance: 4500, // 五险一金
specialAddOn: 2000, // 专项抵扣
monthNum: 12, // 累积几个月
monthTax: [], // 累积几个月显示
totalTax: 0, // 年度总共税收
yearTotal: 0, // 年度总收益税前
yearEndMonth: 0, // 年初系数
yearEndAward: 0, // 年终奖
}
},
methods: {count() {const arr = []
let prepaidIncome = 0; // 每月缴税
let totalTax = 0
for (let i = 1; i <= this.monthNum; i ++) {const taxableIncome = (this.taxFreeIncome - this.countDeduction - this.insurance - this.specialAddOn) * i;
if (taxableIncome < 36000) {prepaidIncome = Number((taxableIncome * 0.03) - totalTax);
} else if (36000 < taxableIncome <= 144000) {prepaidIncome = Number(( taxableIncome * 0.1) - 2520 - totalTax);
} else if (144000 < taxableIncome <= 300000) {prepaidIncome = ( taxableIncome * 0.2) - 16920 - totalTax;
} else if (300000 < taxableIncome <= 420000) {prepaidIncome = ( taxableIncome * 0.25) - 31920 - totalTax;
} else if (420000 < taxableIncome <= 660000) {prepaidIncome = ( taxableIncome * 0.3) - 52920 - totalTax;
} else if (660000 < taxableIncome <= 960000) {prepaidIncome = ( taxableIncome * 0.35) - 85920 - totalTax;
} else if (taxableIncome > 960000) {prepaidIncome = ( taxableIncome * 0.45) - 181920 - totalTax;
}
arr.push(prepaidIncome);
totalTax = arr.reduce((cur, total) => (cur + total), 0)
}
this.monthTax = arr
this.totalTax = totalTax;
this.yearTotal = this.taxFreeIncome * (12 + Number(this.yearEndMonth));
totalTax = 0
}
}
})
</script>
</html>