Пример #1
0
        void LoadData()
        {
            //分隔行没有数据
            if (is_separator)
            {
                return;
            }

            薪酬体系 = jobGrade.薪酬体系;
            称    = jobGrade.称;
            期号   = period;
            职等   = jobGrade;

            RankNames = "";
            标识        = jobGrade.标识;

            rss_list.Clear();

            List <JobRank> jobranks = JobRank.GetJobRanks(jobGrade.标识);

            foreach (JobRank rank in jobranks)
            {
                //本期标准
                RankSalaryStandardInput rss = RankSalaryStandardInput.AddRankSalaryStandardInput(jobGrade.薪酬体系, jobGrade.称, rank.称, period, rank.序号, is_verify);
                rss_list.Add(rss);
                开始执行日期 = rss.开始执行日期;
                //赋值
                string       propertyName  = "R" + rss.序号;
                string       monthlySalary = rss.月薪.ToString();
                PropertyInfo property      = this.GetType().GetProperty(propertyName);
                if (property != null)
                {
                    property.SetValue(this, monthlySalary, null);
                }

                if (RankNames != "")
                {
                    RankNames += ":";
                }
                RankNames += rank.称;
            }

            int t = is_verify ? 2 : 1; //统计表类型:0: 正式, 1: 初次录入, 2: 验证录入

            gsa = GradeSalaryAdjust.GetGradeSalaryAdjust(jobGrade.薪酬体系, jobGrade.称, period, t);
            if (gsa == null)
            {
                gsa = GradeSalaryAdjust.AddGradeSalaryAdjust(jobGrade.薪酬体系, jobGrade.称, period, t);
                gsa.Calculate();
            }

            SetFieldValue();
        }
        public static GradeSalaryAdjustInput AddGradeSalaryAdjustInput(GradeSalaryAdjust prev_gsa, int period, bool isVerify)
        {
            GradeSalaryAdjustInput item = GetGradeSalaryAdjustInput(prev_gsa.薪酬体系, prev_gsa.职等, period, isVerify);

            if (item == null)
            {
                item       = new GradeSalaryAdjustInput();
                item.标识    = Guid.NewGuid();
                item.薪酬体系  = prev_gsa.薪酬体系;
                item.职等    = prev_gsa.职等;
                item.期号    = period;
                item.是验证录入 = isVerify;
                //复制上一期的数据
                item.职等数   = prev_gsa.职等数;
                item.对比的职等 = prev_gsa.对比的职等;
                item.序号    = prev_gsa.序号;
                item.级差    = prev_gsa.级差;
                item.半年调资额 = prev_gsa.半年调资额;
                item.每年调资额 = prev_gsa.每年调资额;
                item.Save();

                //自动创建职级工资记录
                List <RankSalaryStandardInput> rss_list = new List <RankSalaryStandardInput>();
                //获取上一期的职级工资列表
                List <RankSalaryStandard> prev_rss_lilst = RankSalaryStandard.GetRankSalaryStandards(prev_gsa.薪酬体系, prev_gsa.职等, prev_gsa.期号);
                foreach (RankSalaryStandard rss in prev_rss_lilst)
                {
                    //创建
                    RankSalaryStandardInput new_rss = RankSalaryStandardInput.AddRankSalaryStandardInput(rss.薪酬体系, rss.职等, rss.职级, period, rss.序号, isVerify);
                    //自动更新数据
                    new_rss.月薪   = rss.月薪 + item.半年调资额;
                    new_rss.录入人  = "系统";
                    new_rss.录入时间 = DateTime.Now;

                    new_rss.Save();

                    rss_list.Add(new_rss);
                }
                item.职级工资表 = rss_list;
            }
            return(item);
        }