protected void HandleChanges(object sender, BeforeStoreChangedEventArgs e) { try { ChangeRecords <DangKyLamThemGioHangLoatInfo> dky = e.DataHandler.ObjectData <DangKyLamThemGioHangLoatInfo>(); string error = string.Empty; foreach (DangKyLamThemGioHangLoatInfo created in dky.Created) { DAL.DangKyLamThemGio lamtg = new DangKyLamThemGio { MaCB = created.MA_CB, FrkeyMaCa = int.Parse(cbxChonCaHL.SelectedItem.Value), TuNgay = dfTuNgayHL.SelectedDate, DenNgay = dfDenNgayHL.SelectedDate, GioBatDauSauCa = GetTime(tfGioBatDauHL.Text), GioKetThucSauCa = GetTime(tfGioKetThucHL.Text), CreatedBy = CurrentUser.ID, CreatedDate = DateTime.Now, GhiChu = txtGhiChuHL.Text, }; List <DAL.DangKyLamThemGio> tmp = new DangKyLamThemGioController().GetByMaCanBoAndFrkeyCa(lamtg.MaCB, lamtg.FrkeyMaCa); if (CheckGiaoNhau(tmp, lamtg) == false) { new DangKyLamThemGioController().Insert(lamtg); } else { error += lamtg.MaCB + ", "; } } grpDangKyLamThemGio.Reload(); if (string.IsNullOrEmpty(error)) { Dialog.ShowNotification("Đăng ký thành công!"); } else { error = error.Remove(error.LastIndexOf(',')); X.Msg.Alert("Thông báo từ hệ thống", "Các cán bộ có mã " + error + " đã đăng ký trùng giờ làm thêm").Show(); } wdThemCanBoHangLoat.Hide(); } catch (Exception ex) { X.Msg.Alert("Thông báo từ hệ thống", "Có lỗi xảy ra: " + ex.Message).Show(); } }
/// <summary> /// Kiểm tra sự giao nhau của các lần đăng ký làm thêm giờ /// </summary> /// <param name="dkys">Danh sách các lần đã đăng ký</param> /// <param name="dkyNew">lần đăng ký cần kiểm tra</param> /// <returns><b>true</b> nếu giao nhau, <b>false</b> nếu không giao nhau</returns> private bool CheckGiaoNhau(List <DAL.DangKyLamThemGio> dkys, DangKyLamThemGio dkyNew) { TimeController timeController = new TimeController(); foreach (var item in dkys) { if (item.TuNgay <= dkyNew.TuNgay && dkyNew.TuNgay <= item.DenNgay || item.TuNgay <= dkyNew.DenNgay && dkyNew.DenNgay <= item.DenNgay) { if (timeController.GetTotalTimeInMinutes(item.GioBatDauSauCa, dkyNew.GioBatDauSauCa) >= 0 && timeController.GetTotalTimeInMinutes(item.GioKetThucSauCa, dkyNew.GioBatDauSauCa) <= 0 || timeController.GetTotalTimeInMinutes(item.GioBatDauSauCa, dkyNew.GioKetThucSauCa) >= 0 && timeController.GetTotalTimeInMinutes(item.GioKetThucSauCa, dkyNew.GioKetThucSauCa) <= 0) { return(true); } } } return(false); }
protected void btnCapNhat_Click(object sender, DirectEventArgs e) { try { string error = string.Empty; DAL.DangKyLamThemGio dk = new DangKyLamThemGio { MaCB = hdfChonCanBo.Text, CreatedBy = CurrentUser.ID, CreatedDate = DateTime.Now, GhiChu = txtGhiChu.Text, GioBatDauSauCa = GetTime(tfGioBatDauSauCa.Text), GioKetThucSauCa = GetTime(tfGioKetThucSauCa.Text), FrkeyMaCa = int.Parse(cbxChonCa.SelectedItem.Value), }; if (!util.IsDateNull(dfTuNgay.SelectedDate)) { dk.TuNgay = dfTuNgay.SelectedDate; } if (!util.IsDateNull(dfDenNgay.SelectedDate)) { dk.DenNgay = dfDenNgay.SelectedDate; } if (e.ExtraParams["Command"] == "Edit") { dk.ID = int.Parse(hdfRecordID.Text); new DangKyLamThemGioController().Update(dk); Dialog.ShowNotification("Cập nhật dữ liệu thành công"); wdThemCanBo.Hide(); } else { List <DAL.DangKyLamThemGio> tmp = new DangKyLamThemGioController().GetByMaCanBoAndFrkeyCa(dk.MaCB, dk.FrkeyMaCa); if (CheckGiaoNhau(tmp, dk) == false) { new DangKyLamThemGioController().Insert(dk); Dialog.ShowNotification("Đăng ký làm thêm thành công"); } else { error += dk.MaCB + ", "; } if (string.IsNullOrEmpty(error)) { Dialog.ShowNotification("Đăng ký thành công!"); } else { error = error.Remove(error.LastIndexOf(',')); X.Msg.Alert("Thông báo từ hệ thống", "Các cán bộ có mã " + error + " đã đăng ký trùng giờ làm thêm").Show(); } if (e.ExtraParams["Close"] == "True") { wdThemCanBo.Hide(); } else { RM.RegisterClientScriptBlock("rs1", "ResetWdThemCanBo();"); } } grpDangKyLamThemGio.Reload(); } catch (Exception ex) { X.Msg.Alert("Thông báo từ hệ thống", "Có lỗi xảy ra: " + ex.Message).Show(); } }