コード例 #1
0
 public GradeSalaryStandardForm(string salary_plan, int year, SemiannualType st)
     : this()
 {
     this.salary_plan = salary_plan;
     this.year        = year;
     this.sntype      = st;
 }
コード例 #2
0
        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;
                }
            }
        }
コード例 #3
0
 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;
 }
コード例 #4
0
 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;
 }
コード例 #5
0
        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();
        }
コード例 #6
0
        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;
            }
        }
コード例 #7
0
        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();
            }
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }