private void btn重新同步_Click(object sender, EventArgs e) { if (MessageBox.Show("重新同步后需重新审核,确实重新同步吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, 0, false) == DialogResult.Yes) { Thread.Sleep(200); CreateWaitDialog("正在同步...", "请耐心等待"); //删除历史数据 SalaryAuditingResult.ClearAuditingResult((string)cbb日历组.EditValue, (string)ccb薪资组.EditValue); //删除工资表 PrivateSalary.ClearPrivateSalary((string)cbb日历组.EditValue, (string)ccb薪资组.EditValue); //清除旧的抽查记录 PayCheckRecord.ClearPayCheckRecord((string)cbb日历组.EditValue, (string)ccb薪资组.EditValue); //同步基础工资 StringBuilder sb = SalaryResult.SychSalaryResult((string)cbb日历组.EditValue, (string)ccb薪资组.EditValue); //同步工资明细 StringBuilder sbItem = SalaryResultItem.SychSalaryResultItem((string)cbb日历组.EditValue, (string)ccb薪资组.EditValue); sb.Append(sbItem.ToString()); CloseWaitDialog(); MyHelper.WriteLog(LogType.信息, "重新同步上表工资", String.Format("日历组:{0}, {1} 薪资组: {2}, {3}", (string)cbb日历组.EditValue, cbb日历组.Text, (string)ccb薪资组.EditValue, ccb薪资组.Text)); string msg = sb.ToString(); if (string.IsNullOrEmpty(msg)) { LoadData(true); } else { MessageBox.Show(msg); } } SetButtonEnabled(); }
private void btn生成工资表_Click(object sender, EventArgs e) { SalaryAuditingResult checkInfo = SalaryAuditingResult.GetSalaryAuditingResult((string)ccb薪资组.EditValue, (string)cbb日历组.EditValue); if (checkInfo != null && checkInfo.表工资已审核) { CreateWaitDialog("正在生成工资表...", "请稍等"); //清空已有的工资表 PrivateSalary.ClearPrivateSalary(checkInfo.日历组, checkInfo.薪资组); PayCounter payCounter = new PayCounter(checkInfo); //如果计算成功 bool successed = payCounter.Calculate(); #if (DEBUG) //为了方便测试,在普通网使用不控制 if (MyHelper.GetLocalIp()[0].StartsWith("192.168.")) { successed = true; //保存计算时间 payCounter.审核情况表.工资计算时间 = DateTime.Now; payCounter.审核情况表.制表人 = AccessController.CurrentUser.姓名; payCounter.审核情况表.制表时间 = DateTime.Now; payCounter.审核情况表.Save(); payCounter.审核情况表.UnLock(); } #endif if (successed) { //保存工资表 foreach (SalaryCalculator cal in payCounter.员工工资计算器列表) { cal.Save(); } SetWaitDialogCaption("正在加载数据..."); LoadData(true); CloseWaitDialog(); MyHelper.WriteLog(LogType.信息, "生成工资表", checkInfo.ToString <SalaryAuditingResult>()); } else { CloseWaitDialog(); MessageBox.Show("生成工资表失败,详细原因点击确定后显示", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); //显示错误列表 ErrorDialog form = new ErrorDialog(payCounter.错误列表); form.ShowDialog(); } } else { MessageBox.Show("生成工资表失败:基础工资表未审核。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void Error(string errMsg) { //删除工资 PrivateSalary.ClearPrivateSalary(日历组, 薪资组); //删除计算时间 SalaryAuditingResult 审核情况表 = this.工资计算器.审核情况表; 审核情况表.工资计算时间 = DateTime.MinValue; 审核情况表.Save(); throw new Exception(errMsg); }
private void btn重新计算_Click(object sender, EventArgs e) { SalaryAuditingResult checkInfo = SalaryAuditingResult.GetSalaryAuditingResult((string)cb薪资组.EditValue, (string)cbb日历组.EditValue); if (checkInfo != null) { if (checkInfo.已冻结 == false) { if (MessageBox.Show("重新计算后系统自动重建抽查记录,您确定要重新计算吗?", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, 0, false) == DialogResult.Yes) { CreateWaitDialog("正在计算工资...", "请稍等"); //清空已有的工资表 PrivateSalary.ClearPrivateSalary(checkInfo.日历组, checkInfo.薪资组); checkInfo.UndoAuditing(); PayCounter payCounter = new PayCounter(checkInfo); //如果计算成功 bool successed = payCounter.Calculate(); #if (DEBUG) //为了方便测试,在普通网使用不控制 if (MyHelper.GetLocalIp()[0].StartsWith("192.168.")) { successed = true; //保存计算时间 payCounter.审核情况表.工资计算时间 = DateTime.Now; payCounter.审核情况表.制表人 = AccessController.CurrentUser.姓名; payCounter.审核情况表.制表时间 = DateTime.Now; payCounter.审核情况表.Save(); payCounter.审核情况表.UnLock(); } #endif if (successed) { //保存工资表 foreach (SalaryCalculator cal in payCounter.员工工资计算器列表) { cal.Save(); } SetWaitDialogCaption("正在加载数据..."); LoadData(true); CloseWaitDialog(); //显示错误列表 if (payCounter.错误列表.Count > 0) { ErrorDialog form = new ErrorDialog(payCounter.错误列表); form.ShowDialog(); } MyHelper.WriteLog(LogType.信息, "重新计算工资", checkInfo.ToString <SalaryAuditingResult>()); } else { CloseWaitDialog(); MessageBox.Show("重新计算失败,详细原因点击确定后显示", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); //显示错误列表 ErrorDialog form = new ErrorDialog(payCounter.错误列表); form.ShowDialog(); } } } else { MessageBox.Show("重新计算失败:已冻结的工资表不能反审重新计算。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("重新计算失败:数据错误,请重新生成工资表后再试。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } }