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; } }
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); }
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(); } }