Exemple #1
0
        private void btn删除职级_Click(object sender, EventArgs e)
        {
            RankSalaryStandardInput row = vGridControl1.GetRecordObject(vGridControl1.FocusedRecord) as RankSalaryStandardInput;

            if (row != null)
            {
                if (MessageBox.Show("确实删除当前选择的职级吗?", "删除提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, 0, false) == DialogResult.Yes)
                {
                    currInputRows.Remove(row);

                    JobRank rank = grade.职等.职级表.Find(a => a.称 == row.职级);
                    if (rank != null)
                    {
                        MyHelper.WriteLog(LogType.信息, "删除职级", rank.ToString <JobRank>());
                        rank.Delete();
                    }
                    row.Delete();

                    vGridControl1.RefreshDataSource();
                    MessageBox.Show("删除成功。", "删除提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("请点击选择要删除的职级再删");
            }
        }
        //设置月薪字段的表头名称
        void SetMonthlySalaryColumnInfo()
        {
            for (int i = 1; i <= 20; i++)
            {
                string fieldName = "R" + i;
                //获取第 i 列对象
                GridColumn col = gridView1.Columns[fieldName];
                //查找第 i 列值不为空的记录
                AdjustJobGrade ag = grade_list.Find(a => a.GetPropertyValue(fieldName) != null);

                if (ag != null)
                {
                    col.Caption = " ";
                    RankSalaryStandardInput rss = grade_list[0].职级工资表.Find(a => a.序号 == i);
                    if (rss != null)
                    {
                        col.Caption = rss.职级;
                        //设置开始执行日期
                        date开始执行日期.DateTime = rss.开始执行日期;
                    }
                    col.Visible = true;
                    col.Width = 50;
                    col.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
                    col.AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
                }
                else
                    col.Visible = false;
            }
        }
Exemple #3
0
        private List <RankSalaryStandardInput> GetRows()
        {
            List <RankSalaryStandardInput> rows = new List <RankSalaryStandardInput>();
            List <JobRank> ranks = JobRank.GetJobRanks(grade.标识);

            foreach (JobRank rank in ranks)
            {
                RankSalaryStandardInput row = RankSalaryStandardInput.AddRankSalaryStandardInput(rank.职等.薪酬体系, rank.职等.称, rank.称, grade.期号, rank.序号, isCheckInput);
                rows.Add(row);
            }
            return(rows);
        }
Exemple #4
0
        private void btn保存_Click(object sender, EventArgs e)
        {
            if (YiKang.Common.IsInteger(text半年调资额.Text) == false)
            {
                MessageBox.Show("必须录入半年调资额。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            JobGrade jGrade = grade.职等;

            jGrade.对比的职等 = (string)cb对比的职等.EditValue;
            jGrade.职等数   = txt职等数.Text.Trim() == "" ? 1 : Convert.ToInt32(txt职等数.Text.Trim());
            jGrade.Save();

            //检查级差是否相同
            int prev_diff = 0;
            int x         = 0;
            RankSalaryStandardInput        prev_row = null;
            List <RankSalaryStandardInput> rows     = GetRows().OrderBy(a => a.序号).ToList();

            foreach (RankSalaryStandardInput row in rows)
            {
                if (prev_row != null)
                {
                    int diff = row.月薪 - prev_row.月薪;
                    if (x > 1 && diff != prev_diff && grade.薪酬体系 != "软件开发")
                    {
                        MessageBox.Show("级差不一致,请重新录入");
                        return;
                    }
                    prev_diff = row.月薪 - prev_row.月薪;
                }
                x++;
                prev_row = row;
                row.序号   = x; //重置序号,使其从1开始,步长为1
            }
            //保存(必须调用,否则并没有实际存入数据库,VGridControl 不像 GridControl 会自动存)
            Session.DefaultSession.Save(rows);
            //保存更新职等信息
            gsa.职等数   = jGrade.职等数;
            gsa.对比的职等 = jGrade.对比的职等;
            gsa.半年调资额 = Convert.ToInt32(text半年调资额.Text);
            //统计
            gsa.Calculate();
            gsa.Save();
            //刷新
            grade.Refresh();
            //触发完成事件
            if (OnFinished != null)
            {
                OnFinished(grade, gsa, rows);
            }
            this.Close();
        }
        private void btn保存提交_Click(object sender, EventArgs e)
        {
            bool isSameEditor = false;
            if (grade_list.Count > 0 && grade_list[0].职级工资表 != null)
            {
                if (grade_list[0].职级工资表.Count > 0)
                {
                    RankSalaryStandardInput rss_1 = grade_list[0].职级工资表[0];
                    string editor = rss_1.录入人;
                    string editor_opposite = rss_1.另一人录入的记录 != null ? rss_1.另一人录入的记录.录入人.Trim() : "";
                    if (AccessController.CurrentUser.姓名 == editor_opposite && editor_opposite != "")
                    {
                        isSameEditor = true;
                    }
                }
            }

            if (isSameEditor)
            {
                CloseWaitDialog();

                MessageBox.Show("两次录入不能是同一个人");
                this.Close();
            }

            date开始执行日期.ForeColor = Color.Black;
            date开始执行日期.BackColor = Color.Transparent;
            
            if (date开始执行日期.DateTime.Year < 2018)
            {
                MessageBox.Show("提交失败:开始执行日期不正确");
                return;
            }

            CreateWaitDialog("正在准备保存...", "请稍等");
            try
            {
                //保存执行日期
                foreach (AdjustJobGrade grade in grade_list)
                {
                    if (grade.职级工资表 == null) continue;
                    foreach (RankSalaryStandardInput rss in grade.职级工资表)
                    {
                        rss.开始执行日期 = date开始执行日期.DateTime;
                        rss.录入人 = AccessController.CurrentUser.姓名;
                        rss.录入时间 = DateTime.Now;
                        rss.Save();
                    }
                }

                //检查是否所有职等都录入完成
                foreach (AdjustJobGrade grade in grade_list)
                {
                    if (grade.is_separator) continue;

                    if (grade.职级工资表 == null || grade.职级工资表.Count == 0)
                    {
                        MessageBox.Show("提交失败:职级工资未录入完成");
                        return;
                    }
                    foreach (RankSalaryStandardInput rss in grade.职级工资表)
                    {
                        if (rss.月薪 == 0)
                        {
                            MessageBox.Show("提交失败:月薪不能为 0");
                            return;
                        }
                    }
                }
                //如果另一个人没有录入,返回
                RankSalaryStandardInput rss_1 = grade_list[0].职级工资表[0];
                if (rss_1.另一人录入的记录 == null)
                {
                    CloseWaitDialog();
                    MessageBox.Show("提交失败:另一个人还没有录入");
                    return;
                }

                SetWaitDialogCaption("正在比较双人录入是否一致...");
                
                LoadData(true);
                //检查差异
                bool all_same = true;
                bool startdate_err = false;
                foreach (AdjustJobGrade grade in grade_list)
                {
                    if (grade.is_separator) continue; //忽略分割行
                    
                    //手动比较录入的内容
                    grade.CompareInputContent();

                    if (grade.内容不同的字段.Count > 0)
                    {
                        if (grade.内容不同的字段.Find(a => a.名称 == "开始执行日期") != null) startdate_err = true;
                        all_same = false;
                        break;
                    }
                }
                if (all_same)
                {
                    date开始执行日期.ForeColor = Color.Black;
                    date开始执行日期.BackColor = Color.Transparent;
                    //转成正式
                    foreach (AdjustJobGrade grade in grade_list)
                    {
                        if (grade.is_separator) continue; //忽略分割行
                        if (grade.职级工资表 == null) continue;
                        foreach (RankSalaryStandardInput rss in grade.职级工资表)
                        {
                            rss.UpdateToFormalTable();
                        }
                        grade.调整记录.UpdateToFormalRecord();
                    }
                    CloseWaitDialog();
                    MessageBox.Show("双人录入成功");
                }
                else
                {
                    //显示差异
                    gridControl1.RefreshDataSource();
                    gridControl1.Refresh();
                    //设置开始执行日期颜色
                    if(startdate_err)
                    {
                        date开始执行日期.ForeColor = Color.Yellow;
                        date开始执行日期.BackColor = Color.Red;
                    }
                    //转成正式
                    MessageBox.Show("红色项目不一致,请重新核对修改");
                }
                gridControl1.Focus();
                this.Refresh();                    
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
            finally
            {
                CloseWaitDialog();
            }
        }