/// <summary> /// /// </summary> /// <param name="recordId"></param> /// <param name="startDate"></param> /// <param name="endDate"></param> /// <param name="listLogs"></param> private void UpdateTimeLogs(int recordId, DateTime startDate, DateTime endDate, List <hr_TimeSheetLog> listLogs) { //Check if not save log into DB => create else update var condition = Constant.ConditionDefault; condition += " AND [RecordId] = {0}".FormatWith(recordId) + " AND [StartDate] >= '{0}'".FormatWith(startDate.ToString("yyyy-MM-dd")) + " AND [StartDate] <= '{0}'".FormatWith(endDate.AddDays(1).ToString("yyyy-MM-dd")); var checkTimeSheet = hr_TimeSheetServices.GetByCondition(condition); var timeLogs = string.Join(" | ", listLogs.Select(d => d.TimeDate.ToString("HH:mm:ss")).ToArray()); if (checkTimeSheet == null) { var timeSheet = new hr_TimeSheet() { RecordId = recordId, StartDate = startDate, EndDate = endDate, CreatedDate = DateTime.Now, TimeLogs = timeLogs }; hr_TimeSheetServices.Create(timeSheet); } else { checkTimeSheet.RecordId = recordId; checkTimeSheet.TimeLogs = timeLogs; checkTimeSheet.StartDate = startDate; checkTimeSheet.EndDate = endDate; checkTimeSheet.EditedDate = DateTime.Now; hr_TimeSheetServices.Update(checkTimeSheet); } }
/// <summary> /// update save DB /// </summary> /// <param name="timeSheet"></param> private void UpdateTimeSheet(hr_TimeSheet timeSheet) { var events = hr_TimeSheetEventServices.GetAllEventsByTimeSheetId(timeSheet.Id, EventStatus.Active); EditWorkConvertTimeSheet(events, timeSheet); timeSheet.Detail = events.ToJson(); hr_TimeSheetServices.Update(timeSheet); }
/// <summary> /// update save DB /// </summary> /// <param name="timeSheet"></param> private void UpdateTimeSheet(hr_TimeSheet timeSheet) { var events = hr_TimeSheetEventServices.GetAllEventsByCondition(timeSheet.Id, EventStatus.Active, null); EditWorkConvertTimeSheet(events, timeSheet); timeSheet.Detail = events.ToJson(); timeSheet.EditedDate = DateTime.Now; hr_TimeSheetServices.Update(timeSheet); }
/// <summary> /// Chấm công theo ngày /// </summary> private void SaveTimeSheetForDay(object sender, DirectEventArgs e) { try { var timeSheetEvent = new hr_TimeSheetEvent(); var timeSheetId = 0;//Id bang cham cong if (!string.IsNullOrEmpty(hdfTimeSheetId.Text)) { timeSheetId = Convert.ToInt32(hdfTimeSheetId.Text); if (timeSheetId == 0) { var timeSheet = new hr_TimeSheet(); if (!string.IsNullOrEmpty(hdfDay.Text)) { timeSheet.Day = Convert.ToInt32(hdfDay.Text); } if (!string.IsNullOrEmpty(hdfMonth.Text)) { timeSheet.Month = Convert.ToInt32(hdfMonth.Text); } if (!string.IsNullOrEmpty(hdfYear.Text)) { timeSheet.Year = Convert.ToInt32(hdfYear.Text); } timeSheet.CreatedDate = DateTime.Now; timeSheet.Detail = " "; if (!string.IsNullOrEmpty(hdfRecordId.Text)) { timeSheet.RecordId = Convert.ToInt32(hdfRecordId.Text); } timeSheet.TimeSheetCode = hdfTimeSheetCode.Text; hr_TimeSheetServices.Create(timeSheet); timeSheetEvent.TimeSheetId = timeSheet.Id; timeSheetId = timeSheet.Id; } else { timeSheetEvent.TimeSheetId = timeSheetId; } } timeSheetEvent.CreatedDate = DateTime.Now; //Add moi event AddNewTimeSheetEvent(timeSheetEvent); var timeSheetEdit = hr_TimeSheetServices.GetById(timeSheetId); //update timesheet UpdateTimeSheet(timeSheetEdit); } catch (Exception ex) { Dialog.ShowNotification("Có lỗi xảy ra" + ex.Message); } }
/// <summary> /// Edit work by day /// </summary> /// <param name="events"></param> /// <param name="timeSheet"></param> private void EditWorkConvertTimeSheet(List <hr_TimeSheetEvent> events, hr_TimeSheet timeSheet) { var workConvert = 0.0; var moneyConvert = 0.0; foreach (var itemEvent in events) { workConvert += itemEvent.WorkConvert; moneyConvert += itemEvent.MoneyConvert; } timeSheet.WorkConvert = workConvert; timeSheet.MoneyConvert = moneyConvert; }
private void EditDataTimeSheet(hr_TimeSheet timeSheet, hr_TimeSheetCode code) { if (!string.IsNullOrEmpty(hdfMonth.Text)) { timeSheet.Month = Convert.ToInt32(hdfMonth.Text); } if (!string.IsNullOrEmpty(hdfYear.Text)) { timeSheet.Year = Convert.ToInt32(hdfYear.Text); } timeSheet.RecordId = code.RecordId; timeSheet.TimeSheetCode = code.Code; timeSheet.CreatedDate = DateTime.Now; timeSheet.Detail = "Bình thường"; }
/// <summary> /// Add moi timeSheetEvent /// </summary> /// <param name="timeSheetEvent"></param> private void AddNewTimeSheetEvent(hr_TimeSheet timeSheet, hr_TimeSheetEvent timeSheetEvent, int recordId) { var rowSelecteds = RowSelectionModel2.SelectedRows; if (rowSelecteds != null && rowSelecteds.Count > 0) { //Lay thong tin tu bang ky hieu cham cong cat_TimeSheetSymbol foreach (var item in rowSelecteds) { var timeSymbol = cat_TimeSheetSymbolServices.GetById(int.Parse("0" + item.RecordID)); if (timeSymbol != null) { timeSheetEvent.SymbolDisplay = "<span class='badge badge-normal' title='{1}' >{0}</span>".FormatWith(timeSymbol.Code, timeSymbol.Name); CreateNewTimeSheetEvent(timeSheetEvent, timeSymbol); timeSheet.OverTimeConvert += timeSymbol.TimeConvert; } } } }
/// <summary> /// Edit work by day /// </summary> /// <param name="events"></param> /// <param name="timeSheet"></param> private void EditWorkConvertTimeSheet(List <hr_TimeSheetEvent> events, hr_TimeSheet timeSheet) { var workConvert = 0.0; var moneyConvert = 0.0; var timeConvert = 0.0; foreach (var itemEvent in events) { workConvert += itemEvent.WorkConvert; moneyConvert += itemEvent.MoneyConvert; if (itemEvent.TimeConvert != null && itemEvent.TypeGroup == ConstOverTime) { timeConvert += itemEvent.TimeConvert.Value; } } timeSheet.WorkConvert = workConvert; timeSheet.MoneyConvert = moneyConvert; timeSheet.OverTimeConvert = timeConvert; }
private void UpdateAnnualLeaveConfig(hr_TimeSheet timeSheet, hr_AnnualLeaveHistory annual) { //update nguoc lai bang phep var leaveConfig = hr_AnnualLeaveConfigureServices.GetAnnualLeaveConfigByRecordId( timeSheet.RecordId, annual.UsedLeaveDate.Year); if (leaveConfig != null) { leaveConfig.UsedLeaveDay = annual.UsedLeaveDay + leaveConfig.UsedLeaveDay; if (leaveConfig.AnnualLeaveDay > 0) { leaveConfig.RemainLeaveDay = leaveConfig.AnnualLeaveDay - leaveConfig.UsedLeaveDay; } leaveConfig.EditedDate = DateTime.Now; leaveConfig.EditedBy = CurrentUser.User.UserName; } hr_AnnualLeaveConfigureServices.Update(leaveConfig); }
/// <summary> /// Tạo bảng chấm công theo đơn vị lựa chọn /// </summary> /// <param name="timeReportId"></param> private void CreateTimeSheetByDepartment(int timeReportId) { var timeSheets = hr_TimeSheetServices.GetAllTimeSheets(Convert.ToInt32(hdfMonth.Text), Convert.ToInt32(hdfYear.Text), ConstTypeTimeSheet, null); if (!string.IsNullOrEmpty(hdfDepartmentId.Text)) { var rootId = 0; var rootParentId = 0; int parseId; var selectedDepartment = "{0},".FormatWith(hdfDepartmentId.Text); if (int.TryParse(hdfDepartmentId.Text, out parseId)) { rootId = parseId; } var objDept = CurrentUser.RootDepartment; if (objDept != null) { rootParentId = objDept.Id; } var lstDepartment = cat_DepartmentServices.GetTree(rootId).Select(d => d.Id).ToList(); if (lstDepartment.Count > 0) { selectedDepartment = lstDepartment.Aggregate(selectedDepartment, (current, d) => current + "{0},".FormatWith(d)); } if (rootId != rootParentId) { selectedDepartment = "{0}".FormatWith(selectedDepartment.TrimEnd(',')); } else { selectedDepartment = "{0}".FormatWith(selectedDepartment.TrimEnd(',').Remove(0, 2)); } //Get list employee by department selected var listEmp = hr_RecordServices.GetAllEmployee(selectedDepartment, null, null, null).Select(d => d.Id).ToList(); if (listEmp.Count > 0) { foreach (var item in timeSheets) { if (listEmp.Contains(item.RecordId)) { var newTimeSheet = new hr_TimeSheet(); newTimeSheet = item; newTimeSheet.TimeSheetReportId = timeReportId; newTimeSheet.CreatedDate = DateTime.Now; //Create hr_TimeSheetServices.Create(newTimeSheet); var objEvent = JSON.Deserialize <List <TimeSheetEventModel> >(newTimeSheet.Detail); //Create timeSheetEvent foreach (var itemEvent in objEvent) { var timeEvent = new hr_TimeSheetEvent() { StatusId = EventStatus.Active, TypeGroup = itemEvent.TypeGroup, Description = itemEvent.Description, WorkConvert = itemEvent.WorkConvert, MoneyConvert = itemEvent.MoneyConvert, TimeConvert = itemEvent.TimeConvert, Symbol = itemEvent.Symbol, SymbolDisplay = itemEvent.SymbolDisplay, }; timeEvent.TimeSheetId = newTimeSheet.Id; timeEvent.CreatedDate = DateTime.Now; timeEvent.CreatedBy = CurrentUser.User.UserName; hr_TimeSheetEventServices.Create(timeEvent); } //update timesheet UpdateTimeSheet(newTimeSheet); } } } } }
/// <summary> /// Chấm công ngày hôm nay cho tất cả nhân viên /// </summary> private void SaveTimeSheetAllEmployee(object sender, DirectEventArgs e) { try { //Chọn ngày if (groupPaySalaryAllEmp.CheckedItems.Count <= 0) { return; } var departments = hdfDepartments.Text; var month = int.Parse(hdfMonth.Text); var year = int.Parse(hdfYear.Text); var arrDepartment = string.IsNullOrEmpty(departments) ? new string[] { } : departments.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries); for (var j = 0; j < arrDepartment.Length; j++) { arrDepartment[j] = "'{0}'".FormatWith(arrDepartment[j]); } //Lay tat ca ma cham cong de duyet var lstTimeSheetCode = hr_TimeSheetCodeServices.GetTimeSheetCodes(string.Join(",", arrDepartment), null, null, null, null); // Lấy tất cả các bản ghi trong bảng timesheet theo mã nhân viên, tháng, năm var timeSheetCodes = string.Join(",", lstTimeSheetCode.Select(code => code.RecordId)); var arrCodes = string.IsNullOrEmpty(timeSheetCodes) ? new string[] { } : timeSheetCodes.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries); for (var j = 0; j < arrCodes.Length; j++) { arrCodes[j] = "'{0}'".FormatWith(arrCodes[j]); } var timeReportId = 0; if (!string.IsNullOrEmpty(hdfTimeSheetReportId.Text)) { timeReportId = Convert.ToInt32(hdfTimeSheetReportId.Text); } var lstTimesheet = hr_TimeSheetServices.GetByMonth(string.Join(",", arrCodes), month, year, null, timeReportId); var startDate = timeSheetFromDate.SelectedDate; var endDate = timeSheetToDate.SelectedDate; //Voi moi ma cham cong lay timesheet foreach (var code in lstTimeSheetCode) { for (var i = startDate.Day; i <= endDate.Day; i++) { var date = new DateTime(timeSheetFromDate.SelectedDate.Year, timeSheetFromDate.SelectedDate.Month, i); var typeDay = string.Empty; //Bo nghi le tet //Lay danh sach ngay nghi le tet //Kiem tra xem ngay do co phai la ngay le khong. Neu la ngay le thi bo qua khong di dang ky if (chkTetHoliday.Checked) { var holiday = cat_HolidayServices.GetAll(); var isProcess = false; foreach (var itemHoliday in holiday) { if (itemHoliday.DaySolar == i && itemHoliday.MonthSolar == timeSheetFromDate.SelectedDate.Month && itemHoliday.YearSolar == timeSheetFromDate.SelectedDate.Year) { isProcess = true; } } if (isProcess) { continue; } } if (chkSaturday.Checked && date.DayOfWeek.ToString() == "Saturday") //Nếu chọn thứ 7 { typeDay = "Saturday"; } if (!chkSaturday.Checked && date.DayOfWeek.ToString() == "Saturday") //Nếu chọn thứ 7 { continue; } //Nếu chọn CN if (chkSunday.Checked && date.DayOfWeek.ToString() == "Sunday") { typeDay = "Sunday"; } if (!chkSunday.Checked && date.DayOfWeek.ToString() == "Sunday") { continue; } var item = lstTimesheet.FirstOrDefault(ts => ts.RecordId == code.RecordId && ts.Day == i); var timeSheetId = 0; //TH timeSheet khac null cap nhat lai theo event duoc add moi vao if (item != null) { timeSheetId = item.Id; //Add moi timeSheetEvent CreatNewTimeSheetEvent(item.Id, typeDay); } else { //TH timeSheet null -> tao moi var timeSheet = new hr_TimeSheet(); EditDataTimeSheet(timeSheet, code); timeSheet.Day = i; if (!string.IsNullOrEmpty(hdfTimeSheetReportId.Text)) { timeSheet.TimeSheetReportId = Convert.ToInt32(hdfTimeSheetReportId.Text); } hr_TimeSheetServices.Create(timeSheet); if (timeSheet.Id > 0) { timeSheetId = timeSheet.Id; //Add moi timeSheetEvent CreatNewTimeSheetEvent(timeSheet.Id, typeDay); } } var timeSheetEdit = hr_TimeSheetServices.GetById(timeSheetId); //update timesheet UpdateTimeSheet(timeSheetEdit); } } } catch (Exception ex) { Dialog.ShowNotification("Có lỗi xảy ra" + ex.Message); } }
/// <summary> /// Chấm công theo ngày /// </summary> private void SaveTimeSheetForDay(object sender, DirectEventArgs e) { try { var listId = e.ExtraParams["ListRecordId"].Split(','); if (startDate.SelectedValue == null) { ExtNet.Msg.Alert("Thông báo", "Bạn chưa chọn ngày cần hiệu chỉnh").Show(); return; } var day = startDate.SelectedDate.Day; var month = startDate.SelectedDate.Month; var year = startDate.SelectedDate.Year; for (var i = 0; i < listId.Length - 1; i++) { var recordId = listId[i]; //Lay ma cham cong theo recordId var timeSheetCode = GetTimeSheetCode(recordId); if (timeSheetCode != null) { var timeSheet = hr_TimeSheetServices.GetTimeSheetByCondition(day, month, year, Convert.ToInt32(recordId), Convert.ToInt32(hdfTimeSheetReport.Text), TypeTimeSheet); if (timeSheet != null) { var timeSheetEvent = new hr_TimeSheetEvent { TimeSheetId = timeSheet.Id, StatusId = EventStatus.Active, CreatedDate = DateTime.Now, CreatedBy = CurrentUser.User.UserName }; //Add moi event AddNewTimeSheetEvent(timeSheetEvent, Convert.ToInt32(recordId)); var events = hr_TimeSheetEventServices.GetAllEventsByTimeSheetId(timeSheet.Id, EventStatus.Active); //update timesheet timeSheet.Detail = events.ToJson(); hr_TimeSheetServices.Update(timeSheet); } else { //create new timesheet by day selected var newTimeSheet = new hr_TimeSheet() { RecordId = Convert.ToInt32(recordId), TimeSheetCode = timeSheetCode.Code, Month = month, Year = year, Day = day, Detail = " ", CreatedDate = DateTime.Now, CreatedBy = CurrentUser.User.UserName, Type = TypeTimeSheet, }; hr_TimeSheetServices.Create(newTimeSheet); var timeSheetEvent = new hr_TimeSheetEvent() { TimeSheetId = newTimeSheet.Id, StatusId = EventStatus.Active, CreatedDate = DateTime.Now, CreatedBy = CurrentUser.User.UserName }; //Add moi event AddNewTimeSheetEvent(timeSheetEvent, Convert.ToInt32(recordId)); var events = hr_TimeSheetEventServices.GetAllEventsByTimeSheetId(newTimeSheet.Id, EventStatus.Active); //update timesheet newTimeSheet.Detail = events.ToJson(); hr_TimeSheetServices.Update(newTimeSheet); } } } } catch (Exception ex) { Dialog.ShowNotification("Có lỗi xảy ra" + ex.Message); } }