/// <summary> /// 新增排班信息 /// </summary> /// <param name="schedule">排班信息主信息</param> /// <param name="personnel">排班人员</param> /// <param name="error">错误信息</param> /// <returns>成功返回新增的单据编号,失败返回-1</returns> public int AddWorkScheduling(HR_WorkScheduling schedule, List <HR_WorkSchedulingDetail> personnel, out string error) { error = ""; try { DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext; dataContxt.HR_WorkScheduling.InsertOnSubmit(schedule); dataContxt.SubmitChanges(); int billID = -1; var result = from a in dataContxt.HR_WorkScheduling where a.CreaterWorkID == schedule.CreaterWorkID && a.Year == schedule.Year && a.CreateDate == schedule.CreateDate select a; if (result.Count() == 1) { billID = result.Single().ID; foreach (var item in personnel) { HR_WorkSchedulingDetail personnleList = item; personnleList.ParentID = billID; personnleList.WorkID = item.WorkID; personnleList.Code = item.Code; personnleList.Date = item.Date; personnleList.Remark = ""; dataContxt.HR_WorkSchedulingDetail.InsertOnSubmit(personnleList); } } dataContxt.SubmitChanges(); return(billID); } catch (Exception ex) { error = ex.Message; return(-1); } }
private void 提交toolStripButton_Click(object sender, EventArgs e) { if (txtStatus.Text.Trim() != "新建单据") { MessageDialog.ShowPromptMessage("请确认单据状态"); return; } if (m_workSchedulingServer.IsExise(BasicInfo.LoginID, Convert.ToInt32(numMonth.Value.ToString()))) { MessageDialog.ShowPromptMessage(numMonth.Value + "月已经存在排班!"); return; } if (!CheckControl()) { return; } List <HR_WorkSchedulingDetail> lstPersonnel = new List <HR_WorkSchedulingDetail>(); int day1 = GlobalObject.Year.GetDays(dtpBegin.Value); int days = 0; for (int i = dtpBegin.Value.Day; i <= day1; i++) { days++; } for (int i = 0; i < dataGridView1.Rows.Count; i++) { DataGridViewCellCollection cells = dataGridView1.Rows[i].Cells; for (int j = 0; j < dataGridView1.Columns.Count; j++) { HR_WorkSchedulingDetail personnel = new HR_WorkSchedulingDetail(); DataGridViewComboBoxColumn dgvComboBoxColumn = dataGridView1.Columns[j] as DataGridViewComboBoxColumn; if (dataGridView1.Columns[j].CellType.Name == "DataGridViewComboBoxCell" && cells[j].Value != null) { personnel.WorkID = dataGridView1.Rows[i].Cells["工号"].Value.ToString(); if (dtpBegin.Value.Month == dtpEnd.Value.Month) { //personnel.Date = Convert.ToDateTime(numYear.Value + "-" + dtpBegin.Value.Month + "-" + dataGridView1.Columns[j].HeaderText); if (j - 1 <= days) { personnel.Date = Convert.ToDateTime(numYear.Value + "-" + dtpBegin.Value.Month + "-" + dataGridView1.Columns[j].HeaderText); } else { break; } } else { if (j - 1 <= days) { personnel.Date = Convert.ToDateTime(numYear.Value + "-" + dtpBegin.Value.Month + "-" + dataGridView1.Columns[j].HeaderText); } else { personnel.Date = Convert.ToDateTime(numYear.Value + "-" + dtpEnd.Value.Month + "-" + dataGridView1.Columns[j].HeaderText); } } personnel.Code = cells[j].Value == DBNull.Value ? "" : cells[j].Value.ToString(); lstPersonnel.Add(personnel); } } } HR_WorkScheduling workSchedule = new HR_WorkScheduling(); bool isDeptDirector = false; IQueryable <View_HR_PersonnelArchive> directorGroup = m_personnerServer.GetDeptDirector(m_personnerServer.GetPersonnelInfo(txtCreaterWorkID.Tag.ToString()).Dept, "0"); bool flag = false; if (directorGroup != null && directorGroup.Count() > 0) { isDeptDirector = true; foreach (var item in directorGroup) { if (BasicInfo.LoginID == item.员工编号) { flag = true; break; } } } IQueryable <View_HR_PersonnelArchive> directorGroup1 = m_personnerServer.GetDeptDirector(m_personnerServer.GetPersonnelInfo(txtCreaterWorkID.Tag.ToString()).Dept, "1"); bool flagPri = false; if (directorGroup1 != null && directorGroup1.Count() > 0) { foreach (var item in directorGroup1) { if (BasicInfo.LoginID == item.员工编号) { flagPri = true; break; } } } if (!flag && !flagPri) { if (isDeptDirector) { workSchedule.BillStatus = OverTimeBillStatus.等待主管审核.ToString(); } else { workSchedule.BillStatus = OverTimeBillStatus.等待部门负责人审核.ToString(); } } else if (flag && !flagPri) { workSchedule.BillStatus = OverTimeBillStatus.等待部门负责人审核.ToString(); } workSchedule.ScheduleName = txtScheduleName.Text; workSchedule.CreateDate = dtpCreateDate.Value; workSchedule.CreaterWorkID = txtCreaterWorkID.Tag.ToString(); workSchedule.BeginDate = dtpBegin.Value; workSchedule.EndDate = dtpEnd.Value; workSchedule.Remark = txtRemark.Text; workSchedule.Year = Convert.ToInt32(numYear.Value); workSchedule.Month = Convert.ToInt32(numMonth.Value); workSchedule.PendingDate = Convert.ToDateTime(dateTimePendingDate.Value.ToShortDateString()); txtBillNo.Text = m_workSchedulingServer.AddWorkScheduling(workSchedule, lstPersonnel, out error).ToString(); if (Convert.ToInt32(txtBillNo.Text) < 0) { MessageDialog.ShowPromptMessage(error); return; } else { MessageDialog.ShowPromptMessage("新增成功!"); m_billMessageServer.DestroyMessage(txtBillNo.Text); if (workSchedule.BillStatus.Equals(OverTimeBillStatus.等待主管审核.ToString())) { m_billMessageServer.SendNewFlowMessage(txtBillNo.Text, string.Format("{0}号请假申请单,请主管审核", txtBillNo.Text), BillFlowMessage_ReceivedUserType.角色, m_billMessageServer.GetDeptDirectorRoleName( m_personnerServer.GetPersonnelViewInfo(txtCreaterWorkID.Tag.ToString()).部门编号).ToList()); } else if (workSchedule.BillStatus == OverTimeBillStatus.等待部门负责人审核.ToString()) { m_billMessageServer.SendNewFlowMessage(txtBillNo.Text, string.Format("{0}号请假申请单,请部门负责人审核", m_billNo), BillFlowMessage_ReceivedUserType.角色, m_billMessageServer.GetDeptPrincipalRoleName( m_personnerServer.GetPersonnelViewInfo(txtCreaterWorkID.Tag.ToString()).部门编号).ToList()); } } this.Close(); }
private void 修改toolStripButton_Click(object sender, EventArgs e) { if (txtStatus.Text.Trim() == "已完成" || txtStatus.Text.Trim() == "等待下次排班") { MessageDialog.ShowPromptMessage("单据已经完成,不能修改"); return; } if (!CheckControl()) { return; } List <HR_WorkSchedulingDetail> lstPersonnel = new List <HR_WorkSchedulingDetail>(); int day1 = GlobalObject.Year.GetDays(dtpBegin.Value); int days = 0; for (int i = dtpBegin.Value.Day; i <= day1; i++) { days++; } for (int i = 0; i < dataGridView1.Rows.Count; i++) { DataGridViewCellCollection cells = dataGridView1.Rows[i].Cells; for (int j = 0; j < dataGridView1.Columns.Count; j++) { HR_WorkSchedulingDetail personnel = new HR_WorkSchedulingDetail(); DataGridViewComboBoxColumn dgvComboBoxColumn = dataGridView1.Columns[j] as DataGridViewComboBoxColumn; if (dataGridView1.Columns[j].CellType.Name == "DataGridViewComboBoxCell" && cells[j].Value != null) { personnel.WorkID = dataGridView1.Rows[i].Cells["工号"].Value.ToString(); personnel.Code = cells[j].Value.ToString(); if (dtpBegin.Value.Month == dtpEnd.Value.Month) { if (j - 1 <= days) { personnel.Date = Convert.ToDateTime(numYear.Value + "-" + dtpBegin.Value.Month + "-" + dataGridView1.Columns[j].HeaderText); } else { break; } } else { if (j - 1 <= days) { personnel.Date = Convert.ToDateTime(numYear.Value + "-" + dtpBegin.Value.Month + "-" + dataGridView1.Columns[j].HeaderText); } else { personnel.Date = Convert.ToDateTime(numYear.Value + "-" + dtpEnd.Value.Month + "-" + dataGridView1.Columns[j].HeaderText); } } lstPersonnel.Add(personnel); } } } HR_WorkScheduling workSchedule = new HR_WorkScheduling(); bool isDeptDirector = false; IQueryable <View_HR_PersonnelArchive> directorGroup = m_personnerServer.GetDeptDirector(m_personnerServer.GetPersonnelInfo(txtCreaterWorkID.Tag.ToString()).Dept, "0"); bool flag = false; if (directorGroup != null && directorGroup.Count() > 0) { isDeptDirector = true; foreach (var item in directorGroup) { if (BasicInfo.LoginID == item.员工编号) { flag = true; break; } } } IQueryable <View_HR_PersonnelArchive> directorGroup1 = m_personnerServer.GetDeptDirector(m_personnerServer.GetPersonnelInfo(txtCreaterWorkID.Tag.ToString()).Dept, "1"); bool flagPri = false; if (directorGroup1 != null && directorGroup1.Count() > 0) { foreach (var item in directorGroup1) { if (BasicInfo.LoginID == item.员工编号) { flagPri = true; break; } } } if (!flag && !flagPri) { if (isDeptDirector) { workSchedule.BillStatus = OverTimeBillStatus.等待主管审核.ToString(); } else { workSchedule.BillStatus = OverTimeBillStatus.等待部门负责人审核.ToString(); } } else if (flag && !flagPri) { workSchedule.BillStatus = OverTimeBillStatus.等待部门负责人审核.ToString(); } else { workSchedule.BillStatus = OverTimeBillStatus.已完成.ToString(); } workSchedule.ScheduleName = txtScheduleName.Text; workSchedule.CreateDate = dtpCreateDate.Value; workSchedule.CreaterWorkID = txtCreaterWorkID.Tag.ToString(); workSchedule.BeginDate = dtpBegin.Value; workSchedule.EndDate = dtpEnd.Value; workSchedule.Remark = txtRemark.Text; workSchedule.Year = Convert.ToInt32(numYear.Value); workSchedule.Month = Convert.ToInt32(numMonth.Value); workSchedule.PendingDate = Convert.ToDateTime(dateTimePendingDate.Value.ToShortDateString()); if (!m_workSchedulingServer.UpdateWorkScheduling(workSchedule, lstPersonnel, Convert.ToInt32(txtBillNo.Text), out error)) { MessageDialog.ShowPromptMessage(error); return; } else { MessageDialog.ShowPromptMessage("修改成功!"); } this.Close(); }
/// <summary> /// 编制人修改排班信息 /// </summary> /// <param name="schedule">排班信息</param> /// <param name="personnel">排班人员</param> /// <param name="billID">单据号</param> /// <param name="error">错误信息</param> /// <returns>成功返回True失败返回False</returns> public bool UpdateWorkScheduling(HR_WorkScheduling schedule, List <HR_WorkSchedulingDetail> personnel, int billID, out string error) { error = ""; try { DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext; var resultMain = from a in dataContxt.HR_WorkScheduling where a.ID == billID select a; if (resultMain.Count() != 1) { error = "信息有误,请查证后再操作!"; return(false); } else { HR_WorkScheduling bill = resultMain.Single(); bill.BillStatus = schedule.BillStatus; bill.CreateDate = schedule.CreateDate; bill.BeginDate = schedule.BeginDate; bill.EndDate = schedule.EndDate; bill.ScheduleName = schedule.ScheduleName; bill.CompletionDate = schedule.CompletionDate; bill.Year = schedule.Year; bill.Remark = schedule.Remark; bill.CompletionDate = schedule.CompletionDate; bill.Month = schedule.Month; bill.PendingDate = schedule.PendingDate; } var result = from c in dataContxt.HR_WorkSchedulingDetail where c.ParentID == billID select c; dataContxt.HR_WorkSchedulingDetail.DeleteAllOnSubmit(result); foreach (var item in personnel) { HR_WorkSchedulingDetail personnleList = item; personnleList.ParentID = billID; personnleList.Code = item.Code; personnleList.WorkID = item.WorkID; personnleList.Date = item.Date; personnleList.Remark = ""; dataContxt.HR_WorkSchedulingDetail.InsertOnSubmit(personnleList); } dataContxt.SubmitChanges(); return(true); } catch (Exception ex) { error = ex.Message; return(false); } }