Beispiel #1
0
        //获取值列表
        public static List <SalGrade> GetAll()
        {
            List <SalGrade> list = new List <SalGrade>();
            OleDbConnection conn = new OleDbConnection(MyHelper.GetPsConnectionString());

            using (conn)
            {
                OleDbDataReader rs = null;
                try
                {
                    conn.Open();
                    using (OleDbCommand cmd = conn.CreateCommand())
                    {
                        cmd.CommandText = "select setid, g.sal_admin_plan, g.grade, g.effdt, g.eff_status, g.descr, g.c_open_pay, g.c_gp_set_pay, g.c_anul_leav_pay, g.c_basic_pay, g.c_accum_fund, g.c_pension_fund, g.c_medical_fund,g.c_birth_fund, g.c_lose_job_fund, g.c_injury_fund  from SYSADM.ps_SAL_GRADE_TBL g";
                        rs = cmd.ExecuteReader();
                        while (rs.Read())
                        {
                            SalGrade salPlan = new SalGrade();

                            salPlan.集合   = (string)rs["setid"];
                            salPlan.薪酬体系 = (string)rs["sal_admin_plan"];
                            salPlan.薪等编号 = (string)rs["grade"];
                            salPlan.薪等名称 = (string)rs["descr"];
                            salPlan.生效日期 = Convert.ToDateTime(rs["effdt"]);
                            salPlan.状态   = ((string)rs["eff_status"]).Trim();

                            salPlan.基准工资标准 = Convert.ToDecimal(rs["C_BASIC_PAY"]);
                            salPlan.表工资标准  = Convert.ToDecimal(rs["C_OPEN_PAY"]);
                            salPlan.设定工资标准 = Convert.ToDecimal(rs["C_GP_SET_PAY"]);
                            salPlan.年休假工资  = Convert.ToDecimal(rs["C_ANUL_LEAV_PAY"]);

                            salPlan.养老保险缴纳基数 = Convert.ToDecimal(rs["C_PENSION_FUND"]);
                            salPlan.医疗保险缴纳基数 = Convert.ToDecimal(rs["C_MEDICAL_FUND"]);
                            salPlan.生育保险缴纳基数 = Convert.ToDecimal(rs["C_BIRTH_FUND"]);
                            salPlan.失业保险缴纳基数 = Convert.ToDecimal(rs["C_LOSE_JOB_FUND"]);
                            salPlan.工伤保险缴纳基数 = Convert.ToDecimal(rs["C_INJURY_FUND"]);

                            salPlan.公积金基数 = Convert.ToDecimal(rs["C_ACCUM_FUND"]);


                            list.Add(salPlan);
                        }
                    }
                }
                finally
                {
                    if (rs != null)
                    {
                        rs.Close();
                    }
                    conn.Close();
                }
            }
            return(list);
        }
        public static void SychSalaryGrade()
        {
            foreach (SalGrade sg in SalGrade.薪酬等级表)
            {
                SalaryGrade salPlan = AddSalaryGrade(sg.集合, sg.薪酬体系, sg.薪等编号, sg.生效日期);

                salPlan.薪等名称 = sg.薪等名称;
                salPlan.状态   = sg.状态;

                salPlan.基准工资标准 = sg.基准工资标准;
                salPlan.表工资标准  = sg.表工资标准;
                salPlan.设定工资标准 = sg.设定工资标准;
                salPlan.年休假工资  = sg.年休假工资;

                salPlan.养老保险缴纳基数 = sg.养老保险缴纳基数;
                salPlan.医疗保险缴纳基数 = sg.医疗保险缴纳基数;
                salPlan.生育保险缴纳基数 = sg.生育保险缴纳基数;
                salPlan.失业保险缴纳基数 = sg.失业保险缴纳基数;
                salPlan.工伤保险缴纳基数 = sg.工伤保险缴纳基数;

                salPlan.公积金基数 = sg.公积金基数;

                salPlan.次同步时间 = DateTime.Now;

                salPlan.Save();
            }
            //冲突处理:有VS无 / 有VS变 / 无VS有
            foreach (SalaryGrade grade in GetAll())
            {
                SalGrade found = SalGrade.薪酬等级表.Find(a => a.集合 == grade.集合 && a.薪酬体系 == grade.薪酬体系 && a.薪等编号 == grade.薪等编号 && a.生效日期 == grade.生效日期);
                if (found == null)
                {
                    grade.Delete();
                }
            }
        }