public PersonalTax(SalaryResult salary) { 表工资 = salary; 封闭工资 = PrivateSalary.GetPrivateSalary(salary.员工编号, salary.年度, salary.月份); CalRunInfo cal = CalRunInfo.Get(salary.日历组); 年 = cal.年度; 月 = cal.月份; 期间_开始 = cal.开始日期; 期间_结束 = cal.结束日期; 期间 = String.Format("{0}年{1}", 年, 月) + "月"; 发放单位 = salary.财务公司; 员工编号 = salary.员工编号; 姓名 = salary.姓名; 身份证号 = salary.身份证号; 养老保险个人缴纳金额 = salary.养老保险个人缴纳; 医疗保险个人缴纳金额 = salary.基本医疗个人缴纳 + salary.大病医疗个人缴纳金额; 失业保险个人缴纳金额 = salary.失业保险个人缴纳; 住房公积金个人缴纳金额 = salary.住房公积金个人缴纳; 应税工资额 = 表工资.应税工资额; 个人所得税 = 封闭工资 == null ? 表工资.个人所得税金额 : 封闭工资.个人所得税; 工资发放总额 = 表工资.表工资总额 + 表工资.未休年休假工资; //如果有封闭工资 if (封闭工资 != null) { 应税工资额 = 封闭工资.总应税工资; 工资发放总额 = 封闭工资.工资发放总额; } 个税起征点 = PsHelper.GetPersonTaxPoint(期间_开始); decimal taxIncome = 应税工资额 - 个税起征点; if (taxIncome > 0) { TaxInfo tax = TaxInfo.Get(taxIncome); 税率 = tax.税率; 速算扣除数 = tax.速算扣除数; } }
//获取值列表 public static List <TaxInfo> GetAll() { List <TaxInfo> list = new List <TaxInfo>(); OleDbConnection conn = new OleDbConnection(MyHelper.GetPsConnectionString()); using (conn) { OleDbDataReader rs = null; try { conn.Open(); using (OleDbCommand cmd = conn.CreateCommand()) { cmd.CommandText = "select seq_num5, data_key1_dec, data_val2_dec,data_val3_dec from SYSADM.ps_GP_BRACKET_DTL A left join SYSADM.PS_GP_PIN B On a.pin_num=B.pin_num where pin_nm='C BR TAX RATE' order by seq_num5"; rs = cmd.ExecuteReader(); while (rs.Read()) { TaxInfo tax = new TaxInfo(); tax.序号 = Convert.ToInt32(rs["seq_num5"]); tax.金额 = Convert.ToDecimal(rs["data_key1_dec"]); tax.税率 = Convert.ToDecimal(rs["data_val2_dec"]); tax.速算扣除数 = Convert.ToDecimal(rs["data_val3_dec"]); list.Add(tax); } rs.Close(); } } finally { if (rs != null) { rs.Close(); } conn.Close(); } } return(list); }