public GradeSalaryStandardForm(string salary_plan, int year, SemiannualType st) : this() { this.salary_plan = salary_plan; this.year = year; this.sntype = st; }
public AdjustMonthlySalaryForm(string salary_plan, string group, int year, SemiannualType st, bool isCheck) : this() { this.salary_plan = salary_plan; this.group = group; this.year = year; this.sntype = st; this.isCheck = isCheck; this.period = year * 10 + (byte)st; //获取公司代码 company_code = PsHelper.GetCompanyCode(salary_plan); //获取职等(默认自动为每个职等建立一个群组) jobgrade = JobGrade.GetJobGrade(salary_plan, group); //通过薪等编号获取员工名单 emp_list = GetEmployeeList(); //设置标记, 标记有异动的人员 foreach (EmployeeInfo emp in emp_list) { MonthlySalary effectiveMonthlySalary = MonthlySalary.GetEffective(emp.员工编号, DateTime.Today); if (effectiveMonthlySalary == null) { emp.标记 = true; } } }
public SemiannualJobRank(JobRank rank, int year, SemiannualType semiannual, int monthly_salary) { this.jobRank = rank; this.year = year; this.semiannual = semiannual; this.period = year * 10 + (byte)semiannual; this.monthlySalary = monthly_salary; }
public AdjustGradeSalaryStandardForm(string salary_plan, int year, SemiannualType st, bool isCheck) : this() { this.salary_plan = salary_plan; this.year = year; this.sntype = st; this.isCheck = isCheck; }
public AdjustJobGrade(JobGrade grade, int year, SemiannualType semiannual, bool isVerify) { is_separator = false; this.jobGrade = grade; this.year = year; this.semiannual = semiannual; this.is_verify = isVerify; this.period = year * 10 + (byte)semiannual; LoadData(); }
void OpenWindow() { year = Convert.ToInt32(spin年度.Value); if (!string.IsNullOrEmpty(cbSemiannual.Text)) { semiannual = (SemiannualType)Enum.Parse(typeof(SemiannualType), cbSemiannual.Text); } group = (string)listBoxControl职级.SelectedItem; period = year * 10 + (byte)semiannual; switch (command) { case "录入职级及职级工资": int next_period = RankSalaryStandard.GetNextPeriod(salary_plan, period); if (next_period != -1) { MessageBox.Show("不能录入" + year + cbSemiannual.Text + "的月薪执行标准,因为已经有新的标准"); } else { int max_period = (DateTime.Today.Year + 1) * 10 + 1; if (DateTime.Today.Month < 6) { max_period = DateTime.Today.Year * 10 + 2; } if (period > max_period) { MessageBox.Show("不能录入" + year + cbSemiannual.Text + "的月薪执行标准,有点早了"); } else { SelectInputTypeDialog sdialog = new SelectInputTypeDialog(); sdialog.OnSelected += sdialog_OnSelected; sdialog.ShowDialog(); } } break; case "查看各职等职级月薪执行标准": GradeSalaryStandardForm gForm = new GradeSalaryStandardForm(salary_plan, year, semiannual); gForm.Owner = this; gForm.ShowDialog(); break; case "查看各职等管理人员薪酬执行明细": if (listBoxControl职级.SelectedIndex == -1) { MessageBox.Show("请选择职等"); } else { MonthlySalaryForm msForm = new MonthlySalaryForm(salary_plan, group); msForm.Owner = this; msForm.ShowDialog(); } break; case "录入各职等等管理人员薪酬执行明细": if (listBoxControl职级.SelectedIndex == -1) { MessageBox.Show("请选择职等"); } else { next_period = RankSalaryStandard.GetNextPeriod(salary_plan, period); if (next_period != -1) { MessageBox.Show("不能录入" + year + cbSemiannual.Text + "的薪酬执行明细,因为已经有新的标准"); } else { int max_period = (DateTime.Today.Year + 1) * 10 + 1; if (DateTime.Today.Month < 6) { max_period = DateTime.Today.Year * 10 + 2; } if (period > max_period) { MessageBox.Show("不能录入" + year + cbSemiannual.Text + "的薪酬执行明细,有点早了"); } else { SelectInputTypeDialog ams_sdialog = new SelectInputTypeDialog(); ams_sdialog.OnSelected += ams_sdialog_OnSelected; ams_sdialog.ShowDialog(); } } } break; case "录入异动人员薪酬执行明细": if (listBoxControl职级.SelectedIndex == -1) { MessageBox.Show("请选择职等"); } else { SelectInputTypeDialog iams_sdialog = new SelectInputTypeDialog(); iams_sdialog.OnSelected += iams_sdialog_OnSelected; iams_sdialog.ShowDialog(); } break; case "查看各职等人员薪酬结构明细表": if (listBoxControl职级.SelectedIndex == -1) { MessageBox.Show("请选择职等"); } else { SalaryStructureListForm ssForm = new SalaryStructureListForm(salary_plan, group); ssForm.Owner = this; ssForm.ShowDialog(); } break; case "查看各职等人员薪酬发放明细表": if (listBoxControl职级.SelectedIndex == -1) { MessageBox.Show("请选择职等"); } else { SalaryDetailListForm ssForm = new SalaryDetailListForm(salary_plan, group); ssForm.Owner = this; ssForm.ShowDialog(); } break; case "调整各职等月薪执行标准": next_period = RankSalaryStandard.GetNextPeriod(salary_plan, period); if (next_period != -1) { MessageBox.Show("不能调整" + year + cbSemiannual.Text + "的月薪执行标准,因为已经有新的标准在用"); } else { int max_period = (DateTime.Today.Year + 1) * 10 + 1; if (DateTime.Today.Month < 6) { max_period = DateTime.Today.Year * 10 + 2; } if (period > max_period) { MessageBox.Show("不能调整" + year + cbSemiannual.Text + "的月薪执行标准,有点早了"); } else { SelectInputTypeDialog sdialog = new SelectInputTypeDialog(); sdialog.OnSelected += s_adsi_dialog_OnSelected; sdialog.ShowDialog(); } } break; } }
public ImplementJobGrade(string salaryPlan, string grade, int year, SemiannualType semiannual) { is_separator = false; this.year = year; this.period = year * 10 + (byte)semiannual; 薪酬体系 = salaryPlan; 职等 = grade; 期号 = period; ID = salaryPlan + grade + period; RankNames = ""; rss_list = RankSalaryStandard.GetRankSalaryStandards(salaryPlan, grade, period); foreach (RankSalaryStandard rss in rss_list) { 开始执行日期 = rss.开始执行日期; //赋值 string propertyName = "R" + rss.序号; string monthlySalary = rss != null?rss.月薪.ToString() : ""; PropertyInfo property = this.GetType().GetProperty(propertyName); if (property != null) { property.SetValue(this, monthlySalary, null); } if (RankNames != "") { RankNames += ":"; } RankNames += rss.职级; } GradeSalaryAdjust gsa = GradeSalaryAdjust.GetGradeSalaryAdjust(salaryPlan, grade, period, 0); if (gsa == null) { gsa = GradeSalaryAdjust.AddGradeSalaryAdjust(salaryPlan, grade, period, 0); gsa.Calculate(); } 序号 = gsa.职等数; 职等数 = gsa.职等数.ToString(); 级差 = gsa.级差.ToString(); 平均工资 = gsa.平均工资.ToString(); 最低工资 = gsa.最低工资; 最高工资 = gsa.最高工资; 对比的职等 = gsa.对比的职等; if (gsa.年调率 > 0) { 半年调资额 = gsa.半年调资额.ToString(); 年调 = gsa.每年调资额.ToString(); 半年调率 = (gsa.年调率 * 100 / 1.5).ToString("#0.#") + "%"; 年调率 = (gsa.年调率 * 100).ToString("#0.#") + "%"; } if (gsa.年调率 == 1) { 年调率 = ""; } if (!string.IsNullOrEmpty(对比的职等)) { 职等差 = gsa.职等差.ToString(); } if (gsa.期调整 != null) { 期级别平均 = gsa.期调整.平均工资.ToString(); } }
public static List <ImplementJobGrade> GetImplementJobGradeList(string salary_plan, int year, SemiannualType semiannual, bool insert_separator) { List <ImplementJobGrade> gradeList = new List <ImplementJobGrade>(); int period = year * 10 + (byte)semiannual; List <RankSalaryStandard> rss_list = RankSalaryStandard.GetRankSalaryStandards(salary_plan, null, period); List <string> jobGrades = RankSalaryStandard.GetGrades(rss_list); foreach (string grade in jobGrades) { ImplementJobGrade snGrade = new ImplementJobGrade(salary_plan, grade, year, semiannual); gradeList.Add(snGrade); } gradeList = gradeList.OrderBy(a => a.序号).ToList(); string ranknames = ""; List <ImplementJobGrade> grades_result = new List <ImplementJobGrade>(); //遍历 foreach (ImplementJobGrade grade in gradeList) { //如果职级划分不同,插入一行分割数据 if (ranknames != grade.RankNames) { if (ranknames != "") { grades_result.Add(new ImplementJobGrade(grade.RankNames)); } ranknames = grade.RankNames; } grades_result.Add(grade); } return(grades_result); }
public static List <AdjustJobGrade> GetAdjustJobGradeList(string salary_plan, int year, SemiannualType semiannual, bool insert_separator, bool isVerify) { List <AdjustJobGrade> gradeList = new List <AdjustJobGrade>(); int period = year * 10 + (byte)semiannual; List <RankSalaryStandardInput> rss_list = RankSalaryStandardInput.GetRankSalaryStandardInputs(salary_plan, null, period, isVerify); List <JobGrade> jobGrades = JobGrade.GetJobGrades(salary_plan); foreach (JobGrade grade in jobGrades) { AdjustJobGrade snGrade = new AdjustJobGrade(grade, year, semiannual, isVerify); gradeList.Add(snGrade); } string prev_line_ranknames = ""; //上一行职级名称列表 List <AdjustJobGrade> grades_result = new List <AdjustJobGrade>(); //遍历 foreach (AdjustJobGrade sgrade in gradeList) { if (sgrade.RankNames != "") { //如果职级划分不同,插入一行分割数据 if (prev_line_ranknames != sgrade.RankNames) { if (prev_line_ranknames != "") { grades_result.Add(new AdjustJobGrade(sgrade.RankNames)); } prev_line_ranknames = sgrade.RankNames; } } grades_result.Add(sgrade); } return(grades_result); }