Пример #1
0
        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.速算扣除数;
            }
        }
Пример #2
0
        //获取值列表
        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);
        }