private void btnSave_Click(object sender, RoutedEventArgs e) { string workerId = txtWorkerId.Text; DateTime startDate = dpStartDate.SelectedDate.Value; DateTime endDate = dpEndDate.SelectedDate.Value; LeaveTypeModel leaveType = cboLeaveType.SelectedItem as LeaveTypeModel; if (leaveType == null) { return; } WorkerLeaveModel model = new WorkerLeaveModel { WorkerLeaveId = workerLeaveId, WorkerId = workerId, StartDate = startDate, EndDate = endDate, LeaveType = leaveType.LeaveTypeId, }; if (String.IsNullOrEmpty(model.WorkerId) == true || model.StartDate.Date > model.EndDate.Date) { return; } if (threadInsert.IsBusy == false) { this.Cursor = Cursors.Wait; btnSave.IsEnabled = false; threadInsert.RunWorkerAsync(model); } }
private int CalculateNumberOfDayAbsent(int year, int month, List <SourceModel> sourceList, List <WorkerLeaveModel> workerLeaveList, List <HolidayModel> holidayList) { int numberOfDayAbsent = 0; DateTime startDate = new DateTime(year, month, 1); DateTime endDate = startDate.AddDays(DateTime.DaysInMonth(year, month) - 1); for (DateTime date = startDate; date <= endDate; date = date.AddDays(1)) { SourceModel source = sourceList.Where(s => s.Date.Date == date.Date).FirstOrDefault(); if (source == null && date.DayOfWeek != DayOfWeek.Sunday && holidayList.Select(h => h.Date.Date).Contains(date.Date) == false) { List <WorkerLeaveModel> workerLeaveList_D1 = workerLeaveList.Where(w => w.StartDate.Date <= date.Date && date.Date <= w.EndDate.Date).ToList(); if (workerLeaveList_D1.Count > 0) { WorkerLeaveModel workerLeave = workerLeaveList_D1.OrderBy(w => w.CreatedDate).Last(); LeaveTypeModel leaveType = leaveTypeList.Where(l => l.LeaveTypeId == workerLeave.LeaveType).FirstOrDefault(); if (leaveType != null && leaveType.HaveIncentive == false) { numberOfDayAbsent += 1; } } else { numberOfDayAbsent += 1; } } } return(numberOfDayAbsent); }
void threadInsert_DoWork(object sender, DoWorkEventArgs e) { WorkerLeaveModel model = e.Argument as WorkerLeaveModel; if (model.WorkerLeaveId == 0) { e.Result = WorkerLeaveController.Insert(model); } else { e.Result = WorkerLeaveController.Update(model); } }
public static bool Insert(WorkerLeaveModel model) { SaovietCheckInEntities db = new SaovietCheckInEntities(); var @WorkerId = new SqlParameter("@WorkerId", model.WorkerId); var @StartDate = new SqlParameter("@StartDate", model.StartDate); var @EndDate = new SqlParameter("@EndDate", model.EndDate); var @LeaveType = new SqlParameter("@LeaveType", model.LeaveType); if (db.ExecuteStoreCommand("EXEC spm_InsertWorkerLeave_1 @WorkerId, @StartDate, @EndDate, @LeaveType", @WorkerId, @StartDate, @EndDate, @LeaveType) > 0) { return(true); } return(false); }
void threadShow_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { List <SourceModel> sourceList = e.Result as List <SourceModel>; DateTime startDate = new DateTime(year, month, 1); DateTime endDate = startDate.AddDays(DateTime.DaysInMonth(year, month) - 1); List <PersonalModel> personalList_D1 = personalList.Where(p => p.Department == line).OrderBy(p => p.WorkerId).ToList(); List <DateTime> holidayList_D1 = holidayList.Select(h => h.Date.Date).ToList(); dtPrint.Rows.Clear(); int i = 1; foreach (PersonalModel personal in personalList_D1) { List <SourceModel> sourceList_D1 = sourceList.Where(w => w.CardId == personal.CardId).ToList(); List <WorkerLeaveModel> workerLeaveList_D1 = workerLeaveList.Where(w => w.WorkerId.ToLower() == personal.WorkerId.ToLower()).ToList(); DataRow dr = dt.NewRow(); dr["NumberOf"] = i; if (personal != null) { dr["Name"] = personal.Name; } dr["WorkerId"] = personal.WorkerId; for (DateTime date = startDate; date <= endDate; date = date.AddDays(1)) { DataRow drPrint = dtPrint.NewRow(); drPrint["NumberOf"] = i; if (personal != null) { drPrint["Name"] = personal.Name; } drPrint["WorkerId"] = personal.WorkerId; drPrint["Day"] = date.Day; SourceModel source = sourceList_D1.Where(w => w.Date.Date == date.Date).FirstOrDefault(); if (source != null) { dr[String.Format("Day_{0}", date.Day)] = "√"; dr[String.Format("Day_{0}_Background", date.Day)] = Brushes.LightGray; drPrint["Working"] = "√"; drPrint["Background"] = "LightGrey"; } else { dr[String.Format("Day_{0}_Background", date.Day)] = Brushes.Transparent; drPrint["Background"] = "Transparent"; if (date.DayOfWeek != DayOfWeek.Sunday && holidayList_D1.Contains(date.Date) == false) { List <WorkerLeaveModel> workerLeaveList_D2 = workerLeaveList_D1.Where(w => w.StartDate.Date <= date.Date && date.Date <= w.EndDate.Date).ToList(); if (workerLeaveList_D2.Count > 0) { WorkerLeaveModel workerLeave = workerLeaveList_D2.OrderBy(w => w.CreatedDate).Last(); LeaveTypeModel leaveType = leaveTypeList.Where(l => l.LeaveTypeId == workerLeave.LeaveType).FirstOrDefault(); if (leaveType != null) { dr[String.Format("Day_{0}_Background", date.Day)] = leaveType.BackgroundColor; drPrint["Background"] = leaveType.ReportBackgroundColor; } } else { dr[String.Format("Day_{0}_Background", date.Day)] = Brushes.Red; drPrint["Background"] = "Red"; } } drPrint["Working"] = ""; } dtPrint.Rows.Add(drPrint); } dt.Rows.Add(dr); i = i + 1; } dgMain.ItemsSource = null; dgMain.ItemsSource = dt.AsDataView(); btnPrint.IsEnabled = true; btnShow.IsEnabled = true; this.Cursor = null; }