Select Case e.DataCol.Name
Case "数据状态" '如果是数据状态列的内容变动
If e.NewValue = True Then '而且变动后的值是True(已勾选)
e.DataRow("审核时间")=Date.Now
e.DataRow("审核用户")=Vars("_UserName")
e.DataRow.Locked = True
Else e.DataRow("审核时间")=Nothing
e.DataRow("审核用户")=Nothing
End If
Case "工号"
Dim dr As DataRow
dim dr1 as datarow
dim dr2 as datarow
dr = DataTables("工资录入表").Find("工号 = '" & e.DataRow("工号") & "'" & "and 会计期间= '" & e.DataRow("会计期间") & "'" )
dr1= DataTables("月工资汇总").Find("工号 = '" & e.DataRow("工号") & "'" & "and 会计期间= '" & e.DataRow("会计期间") & "'" )
dr2 = DataTables("员工资料").Find("工号 = '" & e.DataRow("工号") & "'" & "and 员工状态 = '在职'")
If dr IsNot Nothing '如果找到, 则设置各列内容
e.DataRow("姓名")= dr("姓名")
e.DataRow("交税人")= dr("姓名")
e.DataRow("部门")= dr("部门")
e.DataRow("应付工资")= dr1("应付工资_小计")
e.DataRow("身份证号码")= dr2("身份证号码")
e.DataRow("社保缴费率")= dr2("社保缴费率")
e.DataRow("医疗费率")= dr2("医疗费率")
e.DataRow("社保电脑号")= dr2("社保电脑号")
e.DataRow("银行账号")= dr2("银行账号")
Else
'否则清除部门和姓名两列的内容
e.DataRow("部门") =Nothing
e.DataRow("姓名") =Nothing
e.DataRow("交税人") =Nothing
e.DataRow("工号") = "在这个期间查无此人?"
e.DataRow("应付工资")= Nothing
e.DataRow("身份证号码")= Nothing
e.DataRow("社保缴费率")= Nothing
e.DataRow("医疗费率")= Nothing
e.DataRow("社保电脑号")= Nothing
e.DataRow("银行账号")= Nothing
End If
Case "节日未上班_总计小时"
Dim Filter As String = "工号 = '" & e.DataRow("工号") & "'" & "and 会计期间= '" & e.DataRow("会计期间") & "'"
DataTables("月工资汇总").DataCols("工号").RaiseDataColChanged(Filter)
case "应付工资"
if e.DataRow("应付工资")*0.13>=2328 then
e.DataRow("住房补贴")=2328
else
Dim Digits As Integer = 2
Dim Value As Double = e.DataRow("应付工资")*0.13
e.DataRow("住房补贴")=Math.Floor(Value * 10 ^ Digits + 0.5) / 10 ^ Digits '四舍五入
end if
if e.DataRow("代扣费_手工输入")= False then
Dim Digits As Integer = 2
Dim Value As Double = (e.DataRow("应付工资")*e.DataRow("社保缴费率"))+e.DataRow("医疗费率")
dim Value1 As Double = e.DataRow("应付工资")*e.DataRow("社保缴费率")
dim Value2 As Double=e.DataRow("应付工资")*(0.1-e.DataRow("社保缴费率"))
e.DataRow("代扣费_社会保险")=Math.Floor(Value * 10 ^ Digits + 0.5) / 10 ^ Digits '四舍五入
e.DataRow("养老")=Math.Floor(Value1 * 10 ^ Digits + 0.5) / 10 ^ Digits '四舍五入
if e.DataRow("医疗费率")>0 then
e.DataRow("医序")=e.DataRow("医疗费率")
else
e.DataRow("医序")=Math.Floor(Value2 * 10 ^ Digits + 0.5) / 10 ^ Digits '四舍五入
end if
end if
e.DataRow("代扣费_个人所得税")=InTax(e.DataRow("应付工资")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")-e.DataRow("起始缴税月收入"))
e.DataRow("税金")=InTax(e.DataRow("应付工资")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")-e.DataRow("起始缴税月收入"))
if e.DataRow("应付工资") >= e.DataRow("起始缴税月收入") then
e.DataRow("税表收入额")=e.DataRow("应付工资")-e.DataRow("费用额")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")
e.DataRow("计税金额")=e.DataRow("应付工资")-e.DataRow("起始缴税月收入")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")
else
e.DataRow("税表收入额")=Nothing
e.DataRow("计税金额")=Nothing
end if
case "代扣费_社会保险","代扣费_个人所得税","代扣费_其他费用_水费","代扣费_其他费用_电费","代扣费_其他费用_管理费","代扣费_其他费用_其他"
e.DataRow("代扣费_小计")= e.DataRow("代扣费_社会保险")+e.DataRow("代扣费_个人所得税")+e.DataRow("代扣费_其他费用_水费")+e.DataRow("代扣费_其他费用_电费")+e.DataRow("代扣费_其他费用_管理费")+e.DataRow("代扣费_其他费用_其他")
case "应付工资","代扣费_社会保险","住房补贴"
e.DataRow("代扣费_个人所得税")=InTax(e.DataRow("应付工资")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")-e.DataRow("起始缴税月收入"))
e.DataRow("税金")=InTax(e.DataRow("应付工资")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")-e.DataRow("起始缴税月收入"))
if e.DataRow("应付工资") >= e.DataRow("起始缴税月收入") then
e.DataRow("税表收入额")=e.DataRow("应付工资")-e.DataRow("费用额")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")
e.DataRow("计税金额")=e.DataRow("应付工资")-e.DataRow("起始缴税月收入")-e.DataRow("代扣费_社会保险")-e.DataRow("住房补贴")
else
e.DataRow("税表收入额")=Nothing
e.DataRow("计税金额")=Nothing
end if
case "计税金额"
Select Case e.DataRow("计税金额")
case 0
e.DataRow("税率")=Nothing
e.DataRow("速算扣除数")=Nothing
case 1 to 500
e.DataRow("税率")=0.05
e.DataRow("速算扣除数")=0
case 501 to 2000
e.DataRow("税率")=0.1
e.DataRow("速算扣除数")=25
case 2001 to 5000
e.DataRow("税率")=0.15
e.DataRow("速算扣除数")=125
case 5001 to 20000
e.DataRow("税率")=0.2
e.DataRow("速算扣除数")=375
case 20001 to 40000
e.DataRow("税率")=0.25
e.DataRow("速算扣除数")=1375
case 40001to 60000
e.DataRow("税率")=0.3
e.DataRow("速算扣除数")=3375
case 60001 to 100000
e.DataRow("税率")=0.35
e.DataRow("速算扣除数")=6375
case 80000 to 100000
e.DataRow("税率")=0.4
e.DataRow("速算扣除数")=10375
case > 100000
e.DataRow("税率")=0.45
e.DataRow("速算扣除数")=15375
End Select
End Select