public JsonResult Create(WorkTimeDto dto) { string strWorkWeeks = Request["WorkWeek"]; dto.WorkWeek = strWorkWeeks; var res = _workTimeContract.Insert(dto); return(Json(res)); }
public JsonResult Update(WorkTimeDto dto) { string strWorkWeeks = Request["WorkWeek"]; dto.WorkWeek = strWorkWeeks; dto.IsPersonalTime = false; if (dto.IsFlexibleWork) { dto.PmStartTime = "00:00"; dto.PmEndTime = "00:00"; dto.AmStartTime = "00:00"; dto.AmEndTime = "00:00"; } dto.AmEndTime = string.IsNullOrEmpty(dto.AmEndTime) ? "00:00" : Convert.ToDateTime(dto.AmEndTime).ToShortTimeString(); dto.AmStartTime = string.IsNullOrEmpty(dto.AmStartTime) ? "00:00" : Convert.ToDateTime(dto.AmStartTime).ToShortTimeString(); dto.PmEndTime = string.IsNullOrEmpty(dto.PmEndTime) ? "00:00" : Convert.ToDateTime(dto.PmEndTime).ToShortTimeString(); dto.PmStartTime = string.IsNullOrEmpty(dto.PmStartTime) ? "00:00" : Convert.ToDateTime(dto.PmStartTime).ToShortTimeString(); dto.AdminId = AuthorityHelper.OperatorId; var res = _workTimeContract.Update(dto); return(Json(res)); }
AutofacConfig AutofacConfig = new AutofacConfig(); //调用配置类 #endregion /// <summary> /// 页面加载,显示 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmAttendanceMain_Load(object sender, EventArgs e) { try { if ((ATMainState)Enum.Parse(typeof(ATMainState), enter.ToString()) == ATMainState.考勤签到) { UserID = Client.Session["U_ID"].ToString(); //用户ID } if (string.IsNullOrEmpty(DayTime) == true) //进入签到页面 { lblWeekDay.Text = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(DateTime.Today.DayOfWeek); //显示当前星期几 lblDate.Text = DateTime.Now.ToString("yyyy年MM月dd日"); //显示当前日期 } else //进入统计查看页面 { string[] Day = DayTime.Split(' '); lblWeekDay.Text = Day[4]; //界面上显示星期几 lblDate.Text = Day[0]; //界面上显示年月日 } WorkTimeDto WorkTime = AutofacConfig.attendanceService.GetCurrantASByUser(UserID); if ((ATMainState)Enum.Parse(typeof(ATMainState), enter.ToString()) == ATMainState.统计查看) { Bind(); } else { if (WorkTime != null) { // this.gps1.TimeOut = 2000; //获取定位信息:经纬度和所处位置 if ((ATMainState)Enum.Parse(typeof(ATMainState), enter.ToString()) != ATMainState.统计查看) //只有进行签到时候才获取定位信息 { this.gps1.GetGps(new GpsCallBackHandler((object ss, Smobiler.Core.Controls.GPSResultArgs ee) => { if (ee.isError == true) { hasgps = false; } else { hasgps = true; } if ((ee.Latitude == Convert.ToDouble(WorkTime.AT_Latitude) && ee.Longitude == Convert.ToDouble(WorkTime.AT_Longitude)) || ATAddressDistance.GetDistance(Convert.ToDouble(ee.Latitude), Convert.ToDouble(ee.Longitude), Convert.ToDouble(WorkTime.AT_Latitude), Convert.ToDouble(WorkTime.AT_Longitude)) < Convert.ToDouble(WorkTime.AT_AllowableDeviation.ToString())) { LocState = 1; Location = ee.Location; //定位签到所在位置 } else { LocState = 2; } })); } Bind(); //数据绑定 } else { this.lblInfo.Visible = true; this.lblInfo.Text = "你暂时没有排班,请联系管理员!"; } } } catch (Exception ex) { Toast(ex.Message); } }
/// <summary> /// 数据绑定 /// </summary> public void Bind() { try { DataTable table = new DataTable(); table.Columns.Add("ID"); //签到模板编号 table.Columns.Add("Picture"); //签到图片 table.Columns.Add("Description"); //签到描述 table.Columns.Add("Time", typeof(System.String)); //签到时间 table.Columns.Add("Img"); //图片ID table.Columns.Add("Action"); //签到或签退 table.Columns.Add("Info"); //显示当前是否能签到,是否已经签到 if ((ATMainState)Enum.Parse(typeof(ATMainState), enter.ToString()) == ATMainState.统计查看) //统计页面进入查看 { List <ALDto> listStats = AutofacConfig.attendanceService.GetALByUserAndDate(UserID, Convert.ToDateTime(DayTime)); CommutingType = listStats[0].AL_CommutingType; //上下班类型 if ((WorkTimeType)Enum.Parse(typeof(WorkTimeType), listStats[0].AL_CommutingType) == WorkTimeType.一天一上下班) //一天一上下班 { table.Rows.Add("4", "shangban2", "上班", listStats[0].AL_OnTime.ToString("HH:mm"), null, null, "未开始"); table.Rows.Add("5", "xiaban2", "下班", listStats[1].AL_OnTime.ToString("HH:mm"), null, null, "未开始"); } else //一天两上下班 { table.Rows.Add("0", "shangban2", "上午上班", listStats[0].AL_OnTime.ToString("HH:mm"), null, null, "未开始"); table.Rows.Add("1", "gongzuozhong2", "上午下班", listStats[1].AL_OnTime.ToString("HH:mm"), null, null, "未开始"); table.Rows.Add("2", "gongzuozhong2", "下午上班", listStats[2].AL_OnTime.ToString("HH:mm"), null, null, "未开始"); table.Rows.Add("3", "xiaban2", "下午下班", listStats[3].AL_OnTime.ToString("HH:mm"), null, null, "未开始"); } } else //进入签到页面 { WorkTimeDto Mode = AutofacConfig.attendanceService.GetCurrantASByUser(UserID); CommutingType = Mode.AT_CommutingType; //上下班类型 if (Mode.AT_ASType == "上班") { if ((WorkTimeType)Enum.Parse(typeof(WorkTimeType), Mode.AT_CommutingType) == WorkTimeType.一天一上下班) //一天一上下班 { table.Rows.Add("4", "shangban1", "上班", Convert.ToDateTime(Mode.AT_StartTime).ToString("HH:mm"), null, null, "未开始"); table.Rows.Add("5", "xiaban1", "下班", Convert.ToDateTime(Mode.AT_EndTime).ToString("HH:mm"), null, null, "未开始"); } else //一天两上下班 { table.Rows.Add("0", "shangban1", "上午上班", Convert.ToDateTime(Mode.AT_AMStartTime).ToString("HH:mm"), null, null, "未开始"); table.Rows.Add("1", "gongzuozhong1", "上午下班", Convert.ToDateTime(Mode.AT_AMEndTime).ToString("HH:mm"), null, null, "未开始"); table.Rows.Add("2", "gongzuozhong1", "下午上班", Convert.ToDateTime(Mode.AT_PMStartTime).ToString("HH:mm"), null, null, "未开始"); table.Rows.Add("3", "xiaban1", "下午下班", Convert.ToDateTime(Mode.AT_PMEndTime).ToString("HH:mm"), null, null, "未开始"); } } else { this.lblInfo.Visible = true; this.lblInfo.Text = "今天是休息日!"; } } List <ALDto> listLogs = AutofacConfig.attendanceService.GetALByUserAndDate(UserID, DateTime.Now); //判断当天是否已经有签到 if (listLogs.Count == table.Rows.Count && (ATMainState)Enum.Parse(typeof(ATMainState), enter.ToString()) == ATMainState.考勤签到) //如果当天已完成所有签到 { DayTime = DateTime.Now.ToString(); //给DayTime值,使得页面显示统计模式 } if (string.IsNullOrEmpty(DayTime) == false) //如果进入的是统计查看页面 { List <ALDto> listStats = AutofacConfig.attendanceService.GetALByUserAndDate(UserID, Convert.ToDateTime(DayTime)); for (int i = 0; i < table.Rows.Count; i++) { //table.Rows[i]["Action"] = null; //隐藏签到(签退)按钮 foreach (ALDto Row in listStats) { if (Row.AL_OnTime.ToString("HH:mm") == table.Rows[i]["Time"].ToString()) { AL_Date = Row.AL_Date; //签到时间 switch ((AttendanceType)Enum.Parse(typeof(AttendanceType), Row.AL_Status)) { case AttendanceType.未签到: case AttendanceType.未签退: table.Rows[i]["Info"] = Row.AL_Status; break; case AttendanceType.迟到: case AttendanceType.早退: case AttendanceType.准点: if (Convert.ToInt32(table.Rows[i]["ID"].ToString()) % 2 == 0) //奇数行 { table.Rows[i]["Info"] = "已签到" + " " + AL_Date.ToString("HH:mm"); } else { table.Rows[i]["Info"] = "已签退" + " " + AL_Date.ToString("HH:mm"); } break; } } if (string.IsNullOrEmpty(Row.AL_Reason) == false && Row.AL_LogTimeType == table.Rows[i]["Description"] + "时间") //如果有迟到早退原因,则显示信息提示框 { table.Rows[i]["Img"] = "!\\ue85d000146223"; } ATMainPicture.AllBlackWhite(table); //签到状态下,将图片显示为黑白 } } } else //判断当天哪几次已经签到,并且进行显示(签到页面) { int x = 0; while (x < table.Rows.Count - 1) //当上一条行项未签到,且时间已超过下一行项的签到时间时,显示未签到 { if (DateTime.Now >= Convert.ToDateTime(table.Rows[x + 1]["Time"])) { if (Convert.ToInt32(table.Rows[x]["ID"].ToString()) % 2 == 0) { table.Rows[x]["Info"] = "未签到"; } else { table.Rows[x]["Info"] = "未签退"; } x++; } else { x++; break; } } int count = 0; //当前页面未签到和未签退的行项数 foreach (DataRow Row in table.Rows) { if (Row["Info"].ToString() == "未签到" || Row["Info"].ToString() == "未签退") { count++; } } for (int i = listLogs.Count; i < count; i++)//当未签行项数大于数据库已记录未签条数时 { if (table.Rows[i]["Info"].ToString() == "未签到" || table.Rows[i]["Info"].ToString() == "未签退") { newLog.AL_Reason = null; switch ((StatisticsTime)Enum.Parse(typeof(StatisticsTime), table.Rows[i]["Description"] + "时间")) { case StatisticsTime.午上班时间: newLog.AL_LogTimeType = StatisticsTime.午上班时间; break; case StatisticsTime.午下班时间: newLog.AL_LogTimeType = StatisticsTime.午下班时间; break; case StatisticsTime.午上班时间: newLog.AL_LogTimeType = StatisticsTime.午上班时间; break; case StatisticsTime.午下班时间: newLog.AL_LogTimeType = StatisticsTime.午下班时间; break; case StatisticsTime.班时间: newLog.AL_LogTimeType = StatisticsTime.班时间; break; case StatisticsTime.班时间: newLog.AL_LogTimeType = StatisticsTime.班时间; break; } newLog.AL_Date = DateTime.Now; //考勤日期 newLog.AL_UserID = UserID; //用户ID if ((WorkTimeType)Enum.Parse(typeof(WorkTimeType), CommutingType) == WorkTimeType.一天一上下班) { newLog.AL_CommutingType = WorkTimeType.一天一上下班; //上下班类型 } else { newLog.AL_CommutingType = WorkTimeType.一天二上下班; //上下班类型 } newLog.AL_Position = "无签到地点"; //考勤地点 newLog.AL_OnTime = Convert.ToDateTime(table.Rows[i]["Time"]); //签到准点时间 if (Convert.ToInt32(table.Rows[i]["ID"].ToString()) % 2 == 0) //判断考勤状态 { newLog.AL_Status = AttendanceType.未签到; } else { newLog.AL_Status = AttendanceType.未签退; } ReturnInfo r = AutofacConfig.attendanceService.AddAttendanceLog(newLog); } } if (Convert.ToInt32(table.Rows[x - 1]["ID"]) % 2 == 0) { table.Rows[x - 1]["Action"] = "签到"; //尚未签到的第一行,显示签到(签退)按钮 } else { table.Rows[x - 1]["Action"] = "签退"; //尚未签到的第一行,显示签到(签退)按钮 } List <ALDto> listNewLogs = AutofacConfig.attendanceService.GetALByUserAndDate(UserID, DateTime.Now); //判断当天是否已经有签到 for (int i = 0; i < listNewLogs.Count; i++) { table.Rows[i]["Action"] = null; //隐藏已签到这行的签到按钮 if (Convert.ToInt32(table.Rows[i + 1]["ID"]) % 2 == 0) { table.Rows[i + 1]["Action"] = "签到"; //尚未签到的第一行,显示签到(签退)按钮 } else { table.Rows[i + 1]["Action"] = "签退"; //尚未签到的第一行,显示签到(签退)按钮 } foreach (ALDto Row in listNewLogs) { AL_Date = Row.AL_Date; //考勤时间 if (Convert.ToInt32(table.Rows[i]["ID"].ToString()) % 2 == 0 && listNewLogs[i].AL_Status != "未签到") //显示已签和签到时间 { table.Rows[i]["Info"] = "已签到" + " " + AL_Date.ToString("HH:mm"); } else if (Convert.ToInt32(table.Rows[i]["ID"].ToString()) % 2 == 1 && listNewLogs[i].AL_Status != "未签退") { table.Rows[i]["Info"] = "已签退" + " " + AL_Date.ToString("HH:mm"); } if (Row.AL_OnTime == Convert.ToDateTime(table.Rows[i]["Time"])) { if (Row.AL_Status == "未签到" || Row.AL_Status == "未签退") //显示未签 { table.Rows[i]["Info"] = Row.AL_Status; } if (string.IsNullOrEmpty(Row.AL_Reason) == false) //如果有迟到早退原因,显示信息提示框 { table.Rows[i]["Img"] = "!\\ue85d000146223"; } } } ATMainPicture.BlackWhite(table, i); //已经签到的行项中,图片显示黑白 } ATMainPicture.getPictures(table); //对每个行项进行匹配,显示正确的图片信息 } gridATdata.Rows.Clear(); if (table.Rows.Count > 0) //如果数据不为空 { this.gridATdata.DataSource = table; this.gridATdata.DataBind(); } } catch (Exception ex) { Toast(ex.Message); } }
/// <summary> /// 更新自定义日期 /// </summary> private void upSettingDateType() { if (string.IsNullOrEmpty(ATNo) == true) { //创建考勤时,日历选中日期大于现在日期,若模板存在自定义,则显示自定义状态 if (calendar1.SelectDate.Date >= DateTime.Now.AddDays(+1).Date) { string startTime = null; //上班时间 string endTime = null; //下班时间 string amStartTime = null; //上午上班时间 string amEndTime = null; //上午下班时间 string pmStartTime = null; //下午上班时间 string pmEndTime = null; //下午下班时间 atcdInput = new AT_CDInputDto(); //考勤自定义日期 atcdInput.AT_CD_Date = calendar1.SelectDate.Date; //考勤上下班类型 atcdInput.AT_CD_CommutingType = atWorkDate.AT_Type; //创建考勤时,现日期之后的选中日期如果已自定义且考勤模式相等,则将自定义日期日期赋值给当前自定义日期控件 if (IsCATSettingDay(atcdInput.AT_CD_Date) == true) { foreach (AT_CDInputDto atcdInputDto in listatcdInput) { if (atcdInputDto.AT_CD_Date.Date.Equals(atcdInput.AT_CD_Date.Date) & atcdInputDto.AT_CD_CommutingType == atWorkDate.AT_Type & workType == WorkOrRest.班) { //workType = atcdInputDto.AT_CD_CDType; //上班时间 if (atcdInputDto.AT_CD_StartTime != null) { startTime = atcdInputDto.AT_CD_StartTime.ToString(); } else { startTime = atWorkDate.AT_StartTime.ToString(); } //下班时间 if (atcdInputDto.AT_CD_EndTime != null) { endTime = atcdInputDto.AT_CD_EndTime.ToString(); } else { endTime = atWorkDate.AT_EndTime.ToString(); } //上午上班时间 if (atcdInputDto.AT_CD_AMStartTime != null) { amStartTime = atcdInputDto.AT_CD_AMStartTime.ToString(); } else { amStartTime = atWorkDate.AT_AMStartTime.ToString(); } //上午下班时间 if (atcdInputDto.AT_CD_AMEndTime != null) { amEndTime = atcdInputDto.AT_CD_AMEndTime.ToString(); } else { amEndTime = atWorkDate.AT_AMEndTime.ToString(); } //下午上班时间 if (atcdInputDto.AT_CD_PMStartTime != null) { pmStartTime = atcdInputDto.AT_CD_PMStartTime.ToString(); } else { pmStartTime = atWorkDate.AT_PMStartTime.ToString(); } //下午下班时间 if (atcdInputDto.AT_CD_PMEndTime != null) { pmEndTime = atcdInputDto.AT_CD_PMEndTime.ToString(); } else { pmEndTime = atWorkDate.AT_PMEndTime.ToString(); } break; } } } else { //上班时间 if (atWorkDate.AT_StartTime != null) { startTime = atWorkDate.AT_StartTime.ToString(); } //下班时间 if (atWorkDate.AT_EndTime != null) { endTime = atWorkDate.AT_EndTime.ToString(); } //上午上班时间 if (atWorkDate.AT_AMStartTime != null) { amStartTime = atWorkDate.AT_AMStartTime.ToString(); } //上午下班时间 if (atWorkDate.AT_AMEndTime != null) { amEndTime = atWorkDate.AT_AMEndTime.ToString(); } //下午上班时间 if (atWorkDate.AT_PMStartTime != null) { pmStartTime = atWorkDate.AT_PMStartTime.ToString(); } //下午下班时间 if (atWorkDate.AT_PMEndTime != null) { pmEndTime = atWorkDate.AT_PMEndTime.ToString(); } } upsettingDate(atcdInput.AT_CD_CommutingType, startTime, endTime, amStartTime, amEndTime, pmStartTime, pmEndTime); atcdInput.AT_CD_CDType = workType; } } //编辑考勤自定义日期类型 else { //编辑考勤时,日历选中日期小于等于现在日期,若模板存在自定义,则显示自定义状态 if (calendar1.SelectDate.Date < DateTime.Now.AddDays(+1).Date) { WorkTimeDto atcd = AutofacConfig.attendanceService.GetASByATIDAndDate(ATNo, calendar1.SelectDate.Date); if (atcd != null) { switch ((WorkOrRest)Enum.Parse(typeof(WorkOrRest), atcd.AT_ASType)) { case WorkOrRest.班: switch ((WorkTimeType)Enum.Parse(typeof(WorkTimeType), atcd.AT_CommutingType)) { case WorkTimeType.一天一上下班: if (atcd.AT_StartTime != null) { dpStartWork.Value = Convert.ToDateTime(atcd.AT_StartTime); } if (atcd.AT_EndTime != null) { dpEndWork.Value = Convert.ToDateTime(atcd.AT_EndTime); } break; case WorkTimeType.一天二上下班: if (atcd.AT_AMStartTime != null) { dpAMStartWork.Value = Convert.ToDateTime(atcd.AT_AMStartTime); } if (atcd.AT_AMEndTime != null) { dpAMEndWork.Value = Convert.ToDateTime(atcd.AT_AMEndTime); } if (atcd.AT_PMStartTime != null) { dpPMStartWork.Value = Convert.ToDateTime(atcd.AT_PMStartTime); } if (atcd.AT_PMEndTime != null) { dpPMEndWork.Value = Convert.ToDateTime(atcd.AT_PMEndTime); } break; } break; } } } if (calendar1.SelectDate.Date >= DateTime.Now.AddDays(+1).Date) { string startTime = null; //上班时间 string endTime = null; //下班时间 string amStartTime = null; //上午上班时间 string amEndTime = null; //上午下班时间 string pmStartTime = null; //下午上班时间 string pmEndTime = null; //下午下班时间 atcdInput = new AT_CDInputDto(); //考勤自定义日期 atcdInput.AT_CD_Date = calendar1.SelectDate.Date; //考勤上下班类型 atcdInput.AT_CD_CommutingType = atWorkDate.AT_Type; //编辑考勤时,现日期之后的选中日期如果已自定义且考勤模式相等,则将自定义日期日期赋值给当前自定义日期控件 if (IsCATSettingDay(atcdInput.AT_CD_Date) == true) { foreach (AT_CDInputDto atcdInputDto in listatcdInput) { if (atcdInputDto.AT_CD_Date.Date.Equals(atcdInput.AT_CD_Date.Date) & atcdInputDto.AT_CD_CommutingType == atWorkDate.AT_Type & workType == WorkOrRest.班) { //workType = atcdInputDto.AT_CD_CDType; //上班时间 if (atcdInputDto.AT_CD_StartTime != null) { startTime = atcdInputDto.AT_CD_StartTime.ToString(); } else { startTime = atWorkDate.AT_StartTime.ToString(); } //下班时间 if (atcdInputDto.AT_CD_EndTime != null) { endTime = atcdInputDto.AT_CD_EndTime.ToString(); } else { endTime = atWorkDate.AT_EndTime.ToString(); } //上午上班时间 if (atcdInputDto.AT_CD_AMStartTime != null) { amStartTime = atcdInputDto.AT_CD_AMStartTime.ToString(); } else { amStartTime = atWorkDate.AT_AMStartTime.ToString(); } //上午下班时间 if (atcdInputDto.AT_CD_AMEndTime != null) { amEndTime = atcdInputDto.AT_CD_AMEndTime.ToString(); } else { amEndTime = atWorkDate.AT_AMEndTime.ToString(); } //下午上班时间 if (atcdInputDto.AT_CD_PMStartTime != null) { pmStartTime = atcdInputDto.AT_CD_PMStartTime.ToString(); } else { pmStartTime = atWorkDate.AT_PMStartTime.ToString(); } //下午下班时间 if (atcdInputDto.AT_CD_PMEndTime != null) { pmEndTime = atcdInputDto.AT_CD_PMEndTime.ToString(); } else { pmEndTime = atWorkDate.AT_PMEndTime.ToString(); } break; } } } else { //获取当前选中日期考勤的自定义 WorkTimeDto atcd = AutofacConfig.attendanceService.GetASByATIDAndDate(ATNo, calendar1.SelectDate.Date); //如果考勤存在自定义日期且自定义类型与考勤类型一致时,获取考勤上班时间 if (atcd != null) { atcdInput.AT_CD_ATID = ATNo; //类型不对,得到的值等于false if (atWorkDate.AT_Type.Equals((WorkTimeType)Enum.Parse(typeof(WorkTimeType), atcd.AT_CommutingType))) { workType = (WorkOrRest)Enum.Parse(typeof(WorkOrRest), atcd.AT_ASType); if (workType == WorkOrRest.班) { //上班时间 if (atcd.AT_StartTime != null) { startTime = atcd.AT_StartTime.ToString(); } else { startTime = atWorkDate.AT_StartTime.ToString(); } //下班时间 if (atcd.AT_EndTime != null) { endTime = atcd.AT_EndTime.ToString(); } else { endTime = atWorkDate.AT_EndTime.ToString(); } //上午上班时间 if (atcd.AT_AMStartTime != null) { amStartTime = atcd.AT_AMStartTime.ToString(); } else { amStartTime = atWorkDate.AT_AMStartTime.ToString(); } //上午下班时间 if (atcd.AT_AMEndTime != null) { amEndTime = atcd.AT_AMEndTime.ToString(); } else { amEndTime = atWorkDate.AT_AMEndTime.ToString(); } //下午上班时间 if (atcd.AT_PMStartTime != null) { pmStartTime = atcd.AT_PMStartTime.ToString(); } else { pmStartTime = atWorkDate.AT_PMStartTime.ToString(); } //下午下班时间 if (atcd.AT_PMEndTime != null) { pmEndTime = atcd.AT_PMEndTime.ToString(); } else { pmEndTime = atWorkDate.AT_PMEndTime.ToString(); } } } else { switch (workType) { case WorkOrRest.班: //上班时间 if (atWorkDate.AT_StartTime != null) { startTime = atWorkDate.AT_StartTime.ToString(); } //下班时间 if (atWorkDate.AT_EndTime != null) { endTime = atWorkDate.AT_EndTime.ToString(); } //上午上班时间 if (atWorkDate.AT_AMStartTime != null) { amStartTime = atWorkDate.AT_AMStartTime.ToString(); } //上午下班时间 if (atWorkDate.AT_AMEndTime != null) { amEndTime = atWorkDate.AT_AMEndTime.ToString(); } //下午上班时间 if (atWorkDate.AT_PMStartTime != null) { pmStartTime = atWorkDate.AT_PMStartTime.ToString(); } //下午下班时间 if (atWorkDate.AT_PMEndTime != null) { pmEndTime = atWorkDate.AT_PMEndTime.ToString(); } break; } } } else { switch (workType) { case WorkOrRest.班: //上班时间 if (atWorkDate.AT_StartTime != null) { startTime = atWorkDate.AT_StartTime.ToString(); } //下班时间 if (atWorkDate.AT_EndTime != null) { endTime = atWorkDate.AT_EndTime.ToString(); } //上午上班时间 if (atWorkDate.AT_AMStartTime != null) { amStartTime = atWorkDate.AT_AMStartTime.ToString(); } //上午下班时间 if (atWorkDate.AT_AMEndTime != null) { amEndTime = atWorkDate.AT_AMEndTime.ToString(); } //下午上班时间 if (atWorkDate.AT_PMStartTime != null) { pmStartTime = atWorkDate.AT_PMStartTime.ToString(); } //下午下班时间 if (atWorkDate.AT_PMEndTime != null) { pmEndTime = atWorkDate.AT_PMEndTime.ToString(); } break; } } } upsettingDate(atcdInput.AT_CD_CommutingType, startTime, endTime, amStartTime, amEndTime, pmStartTime, pmEndTime); atcdInput.AT_CD_CDType = workType; } } if (atcdInput != null) { if (listatcdInput != null & listatcdInput.Count > 0) { foreach (AT_CDInputDto atcdInputDto in listatcdInput) { if (atcdInputDto.AT_CD_Date.Date.Equals(atcdInput.AT_CD_Date.Date)) { listatcdInput.Remove(atcdInputDto);//先清空集合中等于选中日期的数据 break; } } } listatcdInput.Add(atcdInput); //添加选中日期数据 } upSettingDateTypeControl(); }
/// <summary> /// 更新日期自定义类型控件 /// </summary> private void upSettingDateTypeControl() { if (calendar1.SelectDate.Date < DateTime.Now.AddDays(+1).Date) { //创建考勤时,当前选中日期小于现日期时,自定义日期考勤控件不显示 if (string.IsNullOrEmpty(ATNo) == true) { lblRest.Visible = false; dpStartWork.Visible = false; dpEndWork.Visible = false; lblPMEndWork.Visible = false; lblPMStartWork.Visible = false; dpAMStartWork.Visible = false; dpAMEndWork.Visible = false; dpPMStartWork.Visible = false; dpPMEndWork.Visible = false; lblStartWork.Visible = false;; lblEndWork.Visible = false; btnCDType.Visible = false; } else { //编辑考勤时,日历选中日期小于等于现在日期,若模板存在自定义,则显示自定义状态 WorkTimeDto atcd = AutofacConfig.attendanceService.GetASByATIDAndDate(ATNo, calendar1.SelectDate.Date); if (atcd != null) { switch ((WorkOrRest)Enum.Parse(typeof(WorkOrRest), atcd.AT_ASType)) { case WorkOrRest.班: switch ((WorkTimeType)Enum.Parse(typeof(WorkTimeType), atcd.AT_CommutingType)) { case WorkTimeType.一天一上下班: if (atcd.AT_StartTime != null) { dpStartWork.Value = Convert.ToDateTime(atcd.AT_StartTime); } if (atcd.AT_EndTime != null) { dpEndWork.Value = Convert.ToDateTime(atcd.AT_EndTime); } break; case WorkTimeType.一天二上下班: if (atcd.AT_AMStartTime != null) { dpAMStartWork.Value = Convert.ToDateTime(atcd.AT_AMStartTime); } if (atcd.AT_AMEndTime != null) { dpAMEndWork.Value = Convert.ToDateTime(atcd.AT_AMEndTime); } if (atcd.AT_PMStartTime != null) { dpPMStartWork.Value = Convert.ToDateTime(atcd.AT_PMStartTime); } if (atcd.AT_PMEndTime != null) { dpPMEndWork.Value = Convert.ToDateTime(atcd.AT_PMEndTime); } break; } break; } switch ((WorkOrRest)Enum.Parse(typeof(WorkOrRest), atcd.AT_ASType)) { case WorkOrRest.休息: lblRest.Visible = true; dpStartWork.Visible = false; dpEndWork.Visible = false; lblPMEndWork.Visible = false; lblPMStartWork.Visible = false; dpAMStartWork.Visible = false; dpAMEndWork.Visible = false; dpPMStartWork.Visible = false; dpPMEndWork.Visible = false; lblStartWork.Visible = false;; lblEndWork.Visible = false; btnCDType.Visible = false; break; case WorkOrRest.班: lblStartWork.Top = lblRest.Top; lblRest.Visible = false; switch ((WorkTimeType)Enum.Parse(typeof(WorkTimeType), atcd.AT_CommutingType)) { case WorkTimeType.一天一上下班: lblStartWork.Visible = true; lblEndWork.Visible = true; dpStartWork.Visible = true; dpEndWork.Visible = true; dpStartWork.Enabled = false; dpEndWork.Enabled = false; lblPMEndWork.Visible = false; lblPMStartWork.Visible = false; dpAMStartWork.Visible = false; dpAMEndWork.Visible = false; dpPMStartWork.Visible = false; dpPMEndWork.Visible = false; lblStartWork.Text = "上班时间"; lblEndWork.Text = "下班时间"; dpStartWork.Top = lblStartWork.Top; dpEndWork.Top = lblEndWork.Top; break; case WorkTimeType.一天二上下班: lblStartWork.Visible = true; lblEndWork.Visible = true; dpStartWork.Visible = false; dpEndWork.Visible = false; lblPMEndWork.Visible = true; lblPMStartWork.Visible = true; dpAMStartWork.Visible = true; dpAMEndWork.Visible = true; dpPMStartWork.Visible = true; dpPMEndWork.Visible = true; dpAMStartWork.Enabled = false; dpAMEndWork.Enabled = false; dpPMStartWork.Enabled = false; dpPMEndWork.Enabled = false; lblStartWork.Text = "上午上班"; lblEndWork.Text = "上午下班"; dpAMStartWork.Top = lblStartWork.Top; dpAMEndWork.Top = lblEndWork.Top; lblPMStartWork.Top = lblEndWork.Top + lblEndWork.Height; dpPMStartWork.Top = lblPMStartWork.Top; lblPMEndWork.Top = lblPMStartWork.Top + lblPMStartWork.Height; dpPMEndWork.Top = lblPMEndWork.Top; break; } btnCDType.Visible = false; break; } } else { lblRest.Visible = false; dpStartWork.Visible = false; dpEndWork.Visible = false; lblPMEndWork.Visible = false; lblPMStartWork.Visible = false; dpAMStartWork.Visible = false; dpAMEndWork.Visible = false; dpPMStartWork.Visible = false; dpPMEndWork.Visible = false; lblStartWork.Visible = false;; lblEndWork.Visible = false; btnCDType.Visible = false; } } } //创建编辑考勤时,日历选中日期大于现在日期,根据选中日期自定义类型显示考勤控件 if (calendar1.SelectDate.Date >= DateTime.Now.AddDays(+1).Date) { switch (workType) { case WorkOrRest.班: lblRest.Visible = false; // lblStartWork.Top = calendar1.Top + calendar1.Height + 10; lblStartWork.Top = lblRest.Top; lblEndWork.Top = lblStartWork.Top + lblStartWork.Height; switch (atWorkDate.AT_Type) { case WorkTimeType.一天一上下班: lblStartWork.Visible = true; lblEndWork.Visible = true; dpStartWork.Visible = true; dpEndWork.Visible = true; dpStartWork.Enabled = true; dpEndWork.Enabled = true; lblPMEndWork.Visible = false; lblPMStartWork.Visible = false; dpAMStartWork.Visible = false; dpAMEndWork.Visible = false; dpPMStartWork.Visible = false; dpPMEndWork.Visible = false; lblStartWork.Text = "上班时间"; lblEndWork.Text = "下班时间"; dpStartWork.Top = lblStartWork.Top; dpEndWork.Top = lblEndWork.Top; btnCDType.Top = lblEndWork.Top + lblEndWork.Height; break; case WorkTimeType.一天二上下班: dpStartWork.Visible = false; dpEndWork.Visible = false; lblStartWork.Visible = true; lblEndWork.Visible = true; lblPMEndWork.Visible = true; lblPMStartWork.Visible = true; dpAMStartWork.Visible = true; dpAMEndWork.Visible = true; dpPMStartWork.Visible = true; dpPMEndWork.Visible = true; dpAMStartWork.Enabled = true; dpAMEndWork.Enabled = true; dpPMStartWork.Enabled = true; dpPMEndWork.Enabled = true; lblStartWork.Text = "上午上班"; lblEndWork.Text = "上午下班"; dpAMStartWork.Top = lblStartWork.Top; dpAMEndWork.Top = lblEndWork.Top; lblPMStartWork.Top = lblEndWork.Top + lblEndWork.Height; dpPMStartWork.Top = lblPMStartWork.Top; lblPMEndWork.Top = lblPMStartWork.Top + lblPMStartWork.Height; dpPMEndWork.Top = lblPMEndWork.Top; btnCDType.Top = lblPMEndWork.Top + lblPMEndWork.Height; break; } btnCDType.Visible = true; btnCDType.Text = "设置为休息"; break; case WorkOrRest.休息: dpStartWork.Visible = false; dpEndWork.Visible = false; lblPMEndWork.Visible = false; lblPMStartWork.Visible = false; dpAMStartWork.Visible = false; dpAMEndWork.Visible = false; dpPMStartWork.Visible = false; dpPMEndWork.Visible = false; lblStartWork.Visible = false;; lblEndWork.Visible = false; lblRest.Visible = true; btnCDType.Visible = true; btnCDType.Top = lblRest.Top + lblRest.Height; btnCDType.Text = "设置为考勤"; break; } } }