/// <summary> /// 生成考勤信息集合List /// </summary> /// <param name="AttendanceXml">考勤信息XML</param> /// <returns></returns> private IList <EyouSoft.Model.AdminCenterStructure.AttendanceInfo> GetAttendanceList(string AttendanceXml) { if (string.IsNullOrEmpty(AttendanceXml)) { return(null); } IList <EyouSoft.Model.AdminCenterStructure.AttendanceInfo> ResultList = null; ResultList = new List <EyouSoft.Model.AdminCenterStructure.AttendanceInfo>(); XElement root = XElement.Parse(AttendanceXml); IEnumerable <XElement> xRow = root.Elements("row"); foreach (XElement tmp1 in xRow) { EyouSoft.Model.AdminCenterStructure.AttendanceInfo model = new EyouSoft.Model.AdminCenterStructure.AttendanceInfo() { AddDate = DateTime.Parse(tmp1.Attribute("AddDate").Value), StaffNo = int.Parse(tmp1.Attribute("StaffNo").Value), WorkStatus = (EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus)Enum.Parse(typeof(EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus), tmp1.Attribute("WorkStatus").Value) }; ResultList.Add(model); model = null; } return(ResultList); }
/// <summary> /// 考勤新增 /// </summary> /// <param name="model">考勤管理信息实体</param> /// <returns></returns> public bool Add(EyouSoft.Model.AdminCenterStructure.AttendanceInfo model) { bool IsTrue = false; IList <EyouSoft.Model.AdminCenterStructure.AttendanceInfo> lists = new List <EyouSoft.Model.AdminCenterStructure.AttendanceInfo>(); lists.Add(model); IsTrue = this.Add(lists); lists = null; return(IsTrue); }
/// <summary> /// 根据考勤编号获取单个考勤信息 /// </summary> /// <param name="CompanyId">公司编号</param> /// <param name="Id">考勤编号</param> /// <returns></returns> public EyouSoft.Model.AdminCenterStructure.AttendanceInfo GetModel(int CompanyId, string Id) { EyouSoft.Model.AdminCenterStructure.AttendanceInfo model = null; model = (from item in dcDal.AttendanceInfo where item.CompanyId == CompanyId && item.Id == Id select new EyouSoft.Model.AdminCenterStructure.AttendanceInfo { Id = item.Id, AddDate = item.AddDate, BeginDate = item.BeginDate, CompanyId = item.CompanyId, EndDate = item.EndDate, OperatorId = item.OperatorId, Reason = item.Reason, OutTime = item.OutTime, WorkStatus = (EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus)Enum.Parse(typeof(EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus), item.WorkStatus.ToString()) }).FirstOrDefault(); return(model); }
protected string WorkOverTimeNum = string.Empty; //加班天数 #endregion protected void Page_Load(object sender, EventArgs e) { int WorkerID = Utils.GetInt(Request.QueryString["WorkerID"], -1); string currDateTime = Utils.GetQueryStringValue("DateTime"); //考勤日期 string Method = Utils.GetFormValue("hidMethod"); if (!IsPostBack && WorkerID != -1 && Method == "" && currDateTime != "") { #region 初始化 int count = 0; //记数 this.hidWorkerID.Value = WorkerID.ToString(); int year = Utils.GetInt(currDateTime.Substring(0, 4)); int month = Utils.GetInt(currDateTime.Substring(4, 2)); int day = Utils.GetInt(currDateTime.Substring(6, 2)); EyouSoft.BLL.AdminCenterStructure.AttendanceInfo bllAttendance = new EyouSoft.BLL.AdminCenterStructure.AttendanceInfo(); IList <EyouSoft.Model.AdminCenterStructure.AttendanceInfo> listAttendanceInfo = bllAttendance.GetList(CurrentUserCompanyID, WorkerID, new DateTime(year, month, day)); if (listAttendanceInfo != null && listAttendanceInfo.Count > 0) { arrCheckboxValue = new string[listAttendanceInfo.Count]; this.crptAttUpdate.DataSource = listAttendanceInfo; this.crptAttUpdate.DataBind(); foreach (EyouSoft.Model.AdminCenterStructure.AttendanceInfo modelAttendance in listAttendanceInfo) { AttStartDate = modelAttendance.AddDate; switch ((int)modelAttendance.WorkStatus) { case 0: case 1: case 3: case 4: case 7: radioValue = (int)(modelAttendance.WorkStatus); break; case 2: case 5: case 6: case 8: arrCheckboxValue[count] = ((int)(modelAttendance.WorkStatus)).ToString(); count++; break; default: break; } if ((int)(modelAttendance.WorkStatus) == 7) //请假 { LeaveWhy = modelAttendance.Reason; LeaveForStartDate = modelAttendance.BeginDate; LeaveForEndDate = modelAttendance.EndDate; LeaveDayNum = decimal.Round(modelAttendance.OutTime, 1).ToString(); } if ((int)(modelAttendance.WorkStatus) == 8) //加班 { WorkOverTimeContent = modelAttendance.Reason; WorkOverTimeDateStart = modelAttendance.BeginDate; WorkOverTimeDateEnd = modelAttendance.EndDate; WorkOverTimeNum = decimal.Round(modelAttendance.OutTime, 1).ToString(); } } } else { this.crptAttUpdate.EmptyText = "<tr><td colspan=\"3\"><div style=\"text-align:center; margin-top:10px; margin-bottom:10px;\">没有相关的数据!</div></td></tr>"; } #endregion } if (WorkerID != -1 && Method == "Save") { if (!CheckGrant(global::Common.Enum.TravelPermission.行政中心_考勤管理_考勤登记)) { Utils.ResponseNoPermit(global::Common.Enum.TravelPermission.行政中心_考勤管理_考勤登记, true); } #region 保存 AttStartDate = Utils.GetDateTime(Request.Form["txt_AttStartDate"]); radioValue = Utils.GetInt(Request.Form["radio1"]); arrCheckboxValue = Utils.GetFormValues("checkbox1"); EyouSoft.BLL.AdminCenterStructure.AttendanceInfo bllAttendance = new EyouSoft.BLL.AdminCenterStructure.AttendanceInfo(); IList <EyouSoft.Model.AdminCenterStructure.AttendanceInfo> listAttendance = new List <EyouSoft.Model.AdminCenterStructure.AttendanceInfo>(); EyouSoft.Model.AdminCenterStructure.AttendanceInfo modelAttendance = null; if (AttStartDate.ToString() == "0001-1-1 0:00:00") { MessageBox.Show(this, "考勤时间不能为空!"); return; } if (radioValue >= 0) //单选情况 { modelAttendance = new EyouSoft.Model.AdminCenterStructure.AttendanceInfo(); modelAttendance.StaffNo = WorkerID; modelAttendance.CompanyId = CurrentUserCompanyID; modelAttendance.OperatorId = SiteUserInfo.ID; modelAttendance.AddDate = AttStartDate; modelAttendance.WorkStatus = (EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus)(radioValue); if (radioValue == 7) { modelAttendance.Reason = Utils.GetFormValue("txt_LeaveWhy"); modelAttendance.BeginDate = Utils.GetDateTimeNullable(Request.Form["txt_LeaveForStartDate"]); modelAttendance.EndDate = Utils.GetDateTimeNullable(Request.Form["txt_LeaveForEndDate"]); modelAttendance.OutTime = Utils.GetDecimal(Request.Form["txt_LeaveDayNum"]); } listAttendance.Add(modelAttendance); } if (arrCheckboxValue != null && arrCheckboxValue.Length > 0) //多选情况 { for (int i = 0; i < arrCheckboxValue.Length; i++) { modelAttendance = new EyouSoft.Model.AdminCenterStructure.AttendanceInfo(); modelAttendance.StaffNo = WorkerID; modelAttendance.CompanyId = CurrentUserCompanyID; modelAttendance.OperatorId = SiteUserInfo.ID; modelAttendance.AddDate = AttStartDate; modelAttendance.WorkStatus = (EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus)(Utils.GetInt(arrCheckboxValue[i])); if (arrCheckboxValue[i] == "8") { modelAttendance.Reason = Utils.GetFormValue("txt_WorkOverTimeContent"); modelAttendance.BeginDate = Utils.GetDateTimeNullable(Request.Form["txt_WorkOverTimeDateStart"]); modelAttendance.EndDate = Utils.GetDateTimeNullable(Request.Form["txt_WorkOverTimeDateEnd"]); modelAttendance.OutTime = Utils.GetDecimal(Request.Form["txt_WorkOverTimeNum"]); } listAttendance.Add(modelAttendance); } } if (bllAttendance.Update(CurrentUserCompanyID, listAttendance, AttStartDate)) { MessageBox.ResponseScript(this, string.Format("alert('{0}');window.parent.Boxy.getIframeDialog('{1}').hide();window.parent.Boxy.getIframeDocument('{2}').location.reload();", "保存成功!", Utils.GetQueryStringValue("iframeId"), Utils.GetQueryStringValue("desid"))); } else { MessageBox.Show(this.Page, "修改失败!"); } #endregion } }
protected void Page_Load(object sender, EventArgs e) { int WorkerID = Utils.GetInt(Request.QueryString["WorkerID"], -1); string Method = Utils.GetFormValue("hidMethod"); if (WorkerID != -1 && !IsPostBack) //考勤登记 { this.hidWorkerID.Value = WorkerID.ToString(); this.spanMany.Visible = false; this.spanState1.Visible = true; this.spanState2.Visible = true; } if (WorkerID == -1 && !IsPostBack) //批量考勤 { this.spanMany.Visible = true; this.spanState1.Visible = false; this.spanState2.Visible = false; } if (Method != "") { if (!CheckGrant(global::Common.Enum.TravelPermission.行政中心_考勤管理_考勤登记)) { Utils.ResponseNoPermit(global::Common.Enum.TravelPermission.行政中心_考勤管理_考勤登记, true); } bool result = false; DateTime AttStartDate = Utils.GetDateTime(Request.Form["txt_AttStartDate"]); string Radio = Utils.GetFormValue("radio1"); //准点 迟到 旷工 休假 请假 EyouSoft.BLL.AdminCenterStructure.AttendanceInfo bllAttendanceInfo = new EyouSoft.BLL.AdminCenterStructure.AttendanceInfo(); EyouSoft.Model.AdminCenterStructure.AttendanceInfo modelAttendanceInfo = new EyouSoft.Model.AdminCenterStructure.AttendanceInfo(); if (WorkerID != -1 && Method == "Save")//考勤登记 { #region 考勤登记 string msg = string.Empty; string[] Checkboxs = Utils.GetFormValues("checkbox1"); //加班 早退 外出 出团 #region 加班 请假 string LeaveWhy = Utils.GetFormValue("txt_LeaveWhy"); DateTime?LeaveForStartDate = Utils.GetDateTimeNullable(Request.Form["txt_LeaveForStartDate"]); DateTime?LeaveForEndDate = Utils.GetDateTimeNullable(Request.Form["txt_LeaveForEndDate"]); int LeaveDayNum = Utils.GetInt(Request.Form["txt_LeaveDayNum"]); string WorkOverTimeContent = Utils.GetFormValue("txt_WorkOverTimeContent"); DateTime?WorkOverTimeDateStart = Utils.GetDateTimeNullable(Request.Form["txt_WorkOverTimeDateStart"]); DateTime?WorkOverTimeDateEnd = Utils.GetDateTimeNullable(Request.Form["txt_WorkOverTimeDateEnd"]); int WorkOverTimeNum = Utils.GetInt(Request.Form["txt_WorkOverTimeNum"]); #endregion #region 验证必填项 if (AttStartDate == null) { msg += "考勤时间不能为空!<br/>"; } if (Radio != "" && Radio == "5") { if (LeaveForStartDate == null) { msg += "请假起始时间不能为空!<br/>"; } if (LeaveForEndDate == null) { msg += "请假结束时间不能为空!<br/>"; } } if (Checkboxs != null && Checkboxs.Length > 0) { foreach (string value in Checkboxs) { if (value == "8") { if (WorkOverTimeDateStart == null) { msg += "加班起始时间不能为空!<br/>"; } if (WorkOverTimeDateEnd == null) { msg += "加班结束时间不能为空!<br/>"; } } } } if (!string.IsNullOrEmpty(msg)) { MessageBox.Show(this.Page, msg); return; } #endregion modelAttendanceInfo.CompanyId = CurrentUserCompanyID; modelAttendanceInfo.OperatorId = SiteUserInfo.ID; modelAttendanceInfo.StaffNo = WorkerID; //考勤ID modelAttendanceInfo.AddDate = AttStartDate; if (Radio != "") { modelAttendanceInfo.WorkStatus = (EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus)Utils.GetInt(Radio); if (Radio == "7") { modelAttendanceInfo.Reason = LeaveWhy; modelAttendanceInfo.BeginDate = LeaveForStartDate; modelAttendanceInfo.EndDate = LeaveForEndDate; modelAttendanceInfo.OutTime = LeaveDayNum; } result = bllAttendanceInfo.Add(modelAttendanceInfo); if (!result) { MessageBox.Show(this, "考勤失败!"); return; } } if (Checkboxs != null && Checkboxs.Length > 0) { for (int i = 0; i < Checkboxs.Length; i++) { modelAttendanceInfo.WorkStatus = (EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus)Utils.GetInt(Checkboxs[i]); if (Checkboxs[i] == "8") { modelAttendanceInfo.Reason = WorkOverTimeContent; modelAttendanceInfo.BeginDate = WorkOverTimeDateStart; modelAttendanceInfo.EndDate = WorkOverTimeDateEnd; modelAttendanceInfo.OutTime = WorkOverTimeNum; } result = bllAttendanceInfo.Add(modelAttendanceInfo); if (!result) { MessageBox.Show(this, "考勤失败!"); return; } } } if (result) { MessageBox.ResponseScript(this, string.Format("alert('{0}');window.parent.Boxy.getIframeDialog('{1}').hide();window.parent.location='{2}';", "考勤成功!", Utils.GetQueryStringValue("iframeId"), "/administrativeCenter/attendanceManage/Default.aspx")); } #endregion } else if (WorkerID == -1 && Method == "Save")//批量考勤 { #region 批量考勤 string msg = string.Empty; DateTime AttEndDate = Utils.GetDateTime(Request.Form["txt_AttEndDate"]); string Name = Utils.GetFormValue("txt_Name"); string ID = Utils.GetFormValue("hiddenID"); double num = AttEndDate.Subtract(AttStartDate).TotalDays; //考勤天数 string[] ids = ID.Split(','); //考勤人数 DateTime tempTime; if (AttStartDate == null) { msg += "考勤开始时间不能为空!<br/>"; } if (AttEndDate == null) { msg += "考勤结束时间不能为空!<br/>"; } if (Name == "") { msg += "考勤选择人员不能为空!"; } if (AttStartDate == null || AttEndDate == null || Name == "") { MessageBox.Show(this.Page, msg); return; } modelAttendanceInfo.CompanyId = CurrentUserCompanyID; modelAttendanceInfo.OperatorId = SiteUserInfo.ID; modelAttendanceInfo.AddDate = AttStartDate; if (Radio != "") { #region 单选情况: 准点 迟到 旷工 休假 请假 modelAttendanceInfo.WorkStatus = (EyouSoft.Model.EnumType.AdminCenterStructure.WorkStatus)Utils.GetInt(Radio); tempTime = AttStartDate; for (int i = 0; i < num; i++) { modelAttendanceInfo.AddDate = tempTime; for (int n = 0; n < ids.Length; n++) { modelAttendanceInfo.StaffNo = Utils.GetIntNull(ids[n]); result = bllAttendanceInfo.Add(modelAttendanceInfo); if (!result) { MessageBox.Show(this, "考勤失败!"); return; } } tempTime = tempTime.AddDays(1); } #endregion } if (result) { MessageBox.ResponseScript(this, string.Format("alert('{0}');window.parent.Boxy.getIframeDialog('{1}').hide();window.parent.location='{2}';", "批量考勤成功!", Utils.GetQueryStringValue("iframeId"), "/administrativeCenter/attendanceManage/Default.aspx")); } #endregion } } }