private void 综合查询toolStripButton3_Click(object sender, EventArgs e) { IAuthorization authorization = PlatformFactory.GetObject <IAuthorization>(); string businessID = ""; IQueryResult qr = null; List <string> lstFindField = new List <string>(); IQueryable <View_HR_PersonnelArchive> directorGroup3 = m_personnerServer.GetDeptDirector(BasicInfo.DeptCode, "0"); IQueryable <View_HR_PersonnelArchive> directorGroup = m_personnerServer.GetDeptDirector(BasicInfo.DeptCode, "1"); IQueryable <View_HR_PersonnelArchive> directorGroup2 = m_personnerServer.GetDeptDirector(BasicInfo.DeptCode, "2"); authorization = PlatformFactory.GetObject <IAuthorization>(); businessID = "出差综合查询"; string[] pare = { BasicInfo.DeptCode }; qr = authorization.QueryMultParam(businessID, null, pare); DataColumnCollection columns = qr.DataCollection.Tables[0].Columns; if (qr.Succeeded && columns.Count > 0) { for (int i = 0; i < columns.Count; i++) { lstFindField.Add(columns[i].ColumnName); } } FormConditionFind formFindCondition = new FormConditionFind(this, lstFindField.ToArray(), businessID, labelTitle.Text); formFindCondition.ShowDialog(); }
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> /// <returns>信息正确返回True,失败返回False</returns> bool CheckControl() { if (dtpEndTime.Value <= dtpBeginTime.Value) { MessageDialog.ShowPromptMessage("【起始时间】必须小于【结束时间】"); return(false); } if (MessageDialog.ShowEnquiryMessage("请确认您的\r\n【加班起始时间】:" + dtpBeginTime.Value.ToString("yyyy-MM-dd HH:mm") + "\r\n【加班结束时间】:" + dtpEndTime.Value.ToString("yyyy-MM-dd HH:mm")) == DialogResult.No) { return(false); } if (txtErrand.Text.Trim() == "") { MessageDialog.ShowPromptMessage("请填写加班任务描述!"); return(false); } if (numHours.Value == 0) { MessageDialog.ShowPromptMessage("请填写需要加班小时!"); return(false); } if (cmbCompensateMode.Text.Trim() == "") { MessageDialog.ShowPromptMessage("请选择加班补偿方式!"); return(false); } if (cmbOvertimeAddress.SelectedIndex == -1) { MessageDialog.ShowPromptMessage("请选择加班地点!"); return(false); } if (dataGridView2.Rows.Count > 0) { DateTime starDate = ServerTime.Time; DateTime endDate = ServerTime.Time; if (cmbCompensateMode.SelectedIndex == 0) { string month = ""; if (dtpBeginTime.Value.Month < 10) { month = "0" + dtpBeginTime.Value.Month; } else { month = dtpBeginTime.Value.Month.ToString(); } starDate = Convert.ToDateTime(dtpBeginTime.Value.Year.ToString() + "-" + month + "-" + "01"); endDate = Convert.ToDateTime(dtpBeginTime.Value.Year.ToString() + "-" + month + "-" + GetDays()); if (m_highDept.Contains("ZZ") || m_highDept == "SC") { if (dtpBeginTime.Value.Month == 1) { starDate = Convert.ToDateTime((dtpBeginTime.Value.Year - 1).ToString() + "-12-26"); endDate = Convert.ToDateTime(dtpBeginTime.Value.Year.ToString() + "-" + month + "-" + "26"); } else { starDate = Convert.ToDateTime(dtpBeginTime.Value.Year.ToString() + "-" + (dtpBeginTime.Value.Month - 1).ToString() + "-" + "26"); endDate = Convert.ToDateTime(dtpBeginTime.Value.Year.ToString() + "-" + month + "-" + "26"); } } } for (int i = 0; i < dataGridView2.Rows.Count; i++) { DataGridViewCellCollection cells = dataGridView2.Rows[i].Cells; if (cells["员工编号"].Value == null || GlobalObject.GeneralFunction.IsNullOrEmpty(cells["员工编号"].Value.ToString())) { MessageDialog.ShowPromptMessage(string.Format("第 {0} 行, 请选择加班人员", i + 1)); return(false); } if (cmbCompensateMode.SelectedIndex == 0) { if (!m_attendanceServer.GetAllowMobileVacationHour(cells["员工编号"].Value.ToString())) { if (m_overTimeServer.GetMonthRealHour(cells["员工编号"].Value.ToString(), starDate, endDate) <= 0) { MessageDialog.ShowPromptMessage(UniversalFunction.GetPersonnelName(cells["员工编号"].Value.ToString()) + "有欠班,只能选择调休!"); return(false); } } } } } else if (dataGridView2.Rows.Count == 0) { MessageDialog.ShowPromptMessage("请选择加班人员"); return(false); } IQueryable <View_HR_PersonnelArchive> directorGroup = m_personnerServer.GetDeptDirector( m_personnerServer.GetPersonnelInfo(txtApplicant.Tag.ToString()).Dept, "2"); bool flag = false; if (directorGroup != null && directorGroup.Count() > 0) { foreach (var item in directorGroup) { if (BasicInfo.LoginID == item.员工编号) { flag = true; break; } } } if (flag) { MessageDialog.ShowPromptMessage("您是分管领导,不用填写加班单!"); return(false); } if ((ServerTime.Time - dtpBeginTime.Value).Days > 3 && !BasicInfo.ListRoles.Contains(CE_RoleEnum.人力资源部办公室文员.ToString())) { string starTemp = dtpBeginTime.Value.ToShortDateString() + " " + "08:30"; DataTable dt = m_holidayServer.GetHolidayDays(Convert.ToDateTime(starTemp), ServerTime.Time); if (dt != null && dt.Rows.Count > 0) { int days = Convert.ToInt32(dt.Rows[0]["days"] == DBNull.Value ? "0" : dt.Rows[0]["days"]); if (days > 0) { if ((ServerTime.Time - dtpBeginTime.Value).Days > 3 + days) { MessageDialog.ShowPromptMessage("只能补三天内的加班单!"); return(false); } } else { MessageDialog.ShowPromptMessage("只能补三天内的加班单!"); return(false); } } else { MessageDialog.ShowPromptMessage("只能补三天内的加班单!"); return(false); } } HR_AttendanceSetting attendanceSet = m_attendanceSchemeServer.GetAttendanceSettingByWorkID(BasicInfo.LoginID); string[] schemeCode = attendanceSet.SchemeCode.Split(' '); string mode = m_attendanceSchemeServer.GetAttendanceSchemeByCode(schemeCode[0]).AttendanceMode; Hashtable hsTable = new Hashtable(); hsTable.Add("@ParentCode", "ZZGC"); hsTable.Add("@WorkID", BasicInfo.LoginID); DataTable tempTable = GlobalObject.DatabaseServer.QueryInfoPro("HR_Personnel_GetParentDept", hsTable, out error); #region 2017.10.27 夏石友, 向菲菲将工务人员、车间人员修改为非自然月排班考勤后出现必须加班2小时才可以填写加班单的现象 //if (mode.Contains("非自然月考勤")) if (mode.Contains("非自然月考勤") || mode.Contains("非自然月排班考勤") || tempTable.Rows.Count > 0) #endregion { if (numHours.Value < 1) { MessageDialog.ShowPromptMessage("加班1小时以上才可以填写加班申请单!"); return(false); } } else { if (numHours.Value < 2) { MessageDialog.ShowPromptMessage("加班2小时以上才可以填写加班申请单!"); return(false); } } return(true); }