如何计算个人所得税?可以参考的11个标准计算工资的步骤,不足之处请补充

希望能给大家带来帮助,请只做参考用,主要是请看11个计算的步骤注释说明。
 1         /// <summary>
 2         /// 计算工资算法
 3         /// </summary>
 4         /// <param name="departmentID">部门主键</param>
 5         /// <param name="targetYearMonth">目标年月</param>
 6         /// <returns>影响的行数</returns>
 7         public int Calculate(String departmentID, String targetYearMonth)
 8         {
 9             int returnValue = 0;
10             BaseParameterDao parameterDao = new BaseParameterDao(this.DbHelper, this.UserInfo);
11             String qiZhengE = parameterDao.GetParameter("System""SalaryPersonalIncomeTax""QiZhengE");
12             String year = targetYearMonth.Substring(04);
13             String month = targetYearMonth.Substring(5);
14             DataTable dataTable = this.SearchByDepartment(departmentID, year, month, false);
15             // 01 检查个人所得税起征额是否为空的?
16             this.CheckPersonalIncomeTax(dataTable, qiZhengE);
17             // 02 税前应加项合计
18             this.GetSum(dataTable, "税前应加项目", BaseSalaryTable.FieldShuiQianYingJiaXiang);
19             // 03 税前应扣项合计
20             this.GetSum(dataTable, "税前应扣项目", BaseSalaryTable.FieldShuiQianYingKouXiang);
21             // 04 基金补贴保险类合计,例如三金
22             this.GetSum(dataTable, "基金保险补贴类", BaseSalaryTable.FieldJiJinBaoXianBuTieLei);
23             // 05 纳税项合计[记税工资,是否纳税项目来计算]
24             this.GetSalaryTax(dataTable);                     
25             // 06 计算个人所得税相关数据
26             this.GetPersonalIncomeTax(dataTable);
27             // 07 计算应发工资
28             this.GetSalary(dataTable);
29             // 08 计算税后应扣项目
30             this.GetSum(dataTable, "税后代加项目", BaseSalaryTable.FieldShuiHouDaiJiaXiang);
31             // 09 计算税后应加项目
32             this.GetSum(dataTable, "税后代扣项目", BaseSalaryTable.FieldShuiHouDaiKouXiang);
33             // 10 计算实发工资
34             this.GetRealSalary(dataTable);
35             // 11 将计算结果保存到数据库
36             BaseSalaryEntity salaryEntity = null;
37             BaseSalaryDao salaryDao = new BaseSalaryDao(this.DbHelper, this.UserInfo);
38             foreach (DataRow dataRow in dataTable.Rows)
39             {
40                 if (dataRow.RowState == DataRowState.Modified)
41                 {
42                     salaryEntity = new BaseSalaryEntity(dataRow);
43                     returnValue += salaryDao.UpdateEntity(salaryEntity);
44                 }
45             }
46             return returnValue;
47         }
48
本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/451629,如需转载请自行联系原作者
上一篇:.NET WinForm程序在Windows7下实现玻璃效果和任务栏进度条效果


下一篇:关于我在云栖社区同步博文的说明