// private void fmDSCa_Load(object sender, EventArgs e) { #region gán datasource cho các datagrid var dscaThuong = (from ca in XL.DSCa select new { ca = ca, ID = ca.ID, Code = ca.Code, VaoCa = ca.TOD_Duty.Onn, RaaCa = ca.TOD_Duty.Off, QuaDem = ca.QuaDem, MoTa = ca.MoTa, WorkingTime = ca.WorkingTimeTS }).ToList(); var dsCaTuDo = new List <dynamic>(); cCa ca8h = new cCa { ID = int.MinValue + 0, Code = Properties.Settings.Default.shiftCodeCa8h, MoTa = string.Format(Settings.Default.MoTaCaTuDo, 8), Workingday = 1f }; cCa ca12h = new cCa { ID = int.MinValue + 1, Code = Properties.Settings.Default.shiftCodeCa12h, MoTa = string.Format(Settings.Default.MoTaCaTuDo, 12), Workingday = 1.5f }; cCa ca4h = new cCa { ID = int.MinValue + 2, Code = Properties.Settings.Default.shiftCodeCa4h, MoTa = string.Format(Settings.Default.MoTaCaTuDo, 4), Workingday = 0.5f }; //ver 4.0.0.4 cCa ca16h = new cCa { ID = int.MinValue + 3, Code = Properties.Settings.Default.shiftCodeCa16h, MoTa = string.Format(Settings.Default.MoTaCaTuDo, 16), Workingday = 2f }; //ver 4.0.0.4 dynamic dCa8h = new { ca = ca8h, ID = ca8h.ID, Code = ca8h.Code, VaoCa = TimeSpan.Zero, RaaCa = TimeSpan.Zero, QuaDem = false, MoTa = ca8h.MoTa, WorkingTime = XL2._08gio }; dynamic dCa12h = new { ca = ca12h, ID = ca12h.ID, Code = ca12h.Code, VaoCa = TimeSpan.Zero, RaaCa = TimeSpan.Zero, QuaDem = false, MoTa = ca12h.MoTa, WorkingTime = XL2._12gio }; dynamic dCa4h = new { ca = ca4h, ID = ca4h.ID, Code = ca4h.Code, VaoCa = TimeSpan.Zero, RaaCa = TimeSpan.Zero, QuaDem = false, MoTa = ca4h.MoTa, WorkingTime = XL2._04gio }; dynamic dCa16h = new { ca = ca16h, ID = ca16h.ID, Code = ca16h.Code, VaoCa = TimeSpan.Zero, RaaCa = TimeSpan.Zero, QuaDem = false, MoTa = ca16h.MoTa, WorkingTime = XL2._16gio }; dsCaTuDo.Add(dCa8h); dsCaTuDo.Add(dCa12h); dsCaTuDo.Add(dCa4h); dsCaTuDo.Add(dCa16h); DSTatCaCacCa = new List <dynamic>(); DSTatCaCacCa.AddRange(dsCaTuDo); DSTatCaCacCa.AddRange(dscaThuong); #endregion radioChonTGLV.SelectedIndex = 0; radioChonTGLV_SelectedIndexChanged(null, null); radioChonTGLV.Update(); }
private void cbCa_SelectedIndexChanged(object sender, EventArgs e) { cCa tmpCa = (cCa)cbCa.SelectedItem; DateTime gio = (radVao.Checked) ? dateTimeGioMoi.Value.Date.Add(tmpCa.Duty.Onn) : dateTimeGioMoi.Value.Date.Add(tmpCa.Duty.Off); dateTimeGioMoi.Value = new DateTime(gio.Year, gio.Month, gio.Day, gio.Hour, gio.Minute, 0); }
public static void XacNhanCa(cUserInfo nv, cCheckInOut CIO, cCa currShift, bool bDuyetCPTre, bool bDuyetCPSom, int soPhutLamThem, bool choPhepTinhPc50, string lydo, string ghichu, bool bVaoTreLaCV, bool bRaaSomLaCV, TS NightTime)//ver 4.0.0.4 //if (CIO.Vao.Time <= XL2.NgayCuoiThangKetCong) return; { if (currShift.TachCaDem) { if (CIO.DaXN) { XacNhan_CIO_V_CoTachCa(nv, CIO, currShift, bDuyetCPTre, bDuyetCPSom, soPhutLamThem, choPhepTinhPc50, lydo, ghichu, bVaoTreLaCV, bRaaSomLaCV, NightTime); //ver 4.0.0.4 } else { XacNhan_CIO_A_CoTachCa(nv, CIO, currShift, bDuyetCPTre, bDuyetCPSom, soPhutLamThem, choPhepTinhPc50, lydo, ghichu, bVaoTreLaCV, bRaaSomLaCV, NightTime); //ver 4.0.0.4 } } else { if (CIO.DaXN) { XacNhan_CIO_V(nv, CIO, currShift, bDuyetCPTre, bDuyetCPSom, soPhutLamThem, choPhepTinhPc50, lydo, ghichu, bVaoTreLaCV, bRaaSomLaCV, NightTime); //ver 4.0.0.4 } else { XacNhan_CIO_A(nv, CIO, currShift, bDuyetCPTre, bDuyetCPSom, soPhutLamThem, choPhepTinhPc50, lydo, ghichu, bVaoTreLaCV, bRaaSomLaCV, NightTime); //ver 4.0.0.4 } } }
public void TaoCaTuDo(int ID, DateTime CheckInTime, out cCa Ca) { //var temp = CheckInTime.TimeOfDay;//ver 4.0.0.0//tbd xem lại ngày công Ca = new cCa { ID = ID }; var gioVaoLamTron = MyUtility.LamTronPhut(CheckInTime.TimeOfDay); //ver 4.0.0.1 bỏ phần giây, chỉ giữ phần giờ, phút //if (CheckInTime.TimeOfDay < GlobalVariables._03gio) temp = Ca.Duty.From.Add(GlobalVariables._1ngay); //ca 3 , ca 3 va 1 vẫn giữ nguyên vì 21h > 4h//tbd xem lại ngày công if (Ca.ID == int.MinValue + 0) { Ca.Duty = new FromToTimeSpan { From = gioVaoLamTron, To = gioVaoLamTron.Add(GlobalVariables._08gio) }; Ca.WorkingTimeTS = GlobalVariables._08gio; Ca.Workingday = 1f; Ca.Code = Properties.Settings.Default.shiftCodeCa8h; //todo xem lại Ca.MoTa = string.Format(Properties.Settings.Default.MoTaCaTuDo, 8); //todo xem lauị Ca.KyHieuCC = Properties.Settings.Default.kyHieuCCCa8h; } Ca.Is_CaTuDo = true; Ca.TachCaDem = false; Ca.NightTime = GlobalVariables.NightTime22h; Ca.LateeMin = GlobalVariables.default_LateMin; Ca.EarlyMin = GlobalVariables.default_EarlyMin; Ca.AfterOTMin = GlobalVariables.default_AfterOTMin; Ca.LunchMin = GlobalVariables.default_LunchMin; Ca.DayCount = Ca.Duty.To.Days; Ca.QuaDem = (Ca.Duty.To.Days == 1); Ca.OnTimeInMin = 5; //setting nhưng ko ý nghĩa Ca.CutInMin = 5; //setting nhưng ko ý nghĩa Ca.OnTimeOutMin = 5; //setting nhưng ko ý nghĩa Ca.CutOutMin = 5; //setting nhưng ko ý nghĩa }
private void TinhCong(cCheckInOut CIO, cCa Ca) { TinhCong(CIO.Tre, CIO.Som, CIO.ChoPhepTre, CIO.ChoPhepSom, CIO.VaoTuDo, CIO.RaaTuDo, CIO.LamTrongGio, CIO.LamNgoaiGio, Ca.WorkingTimeTS, Ca.Workingday, out CIO.TruCongTre, out CIO.TruCongSom, out CIO.TrongGio, out CIO.NgoaiGio, out CIO.DinhMuc, out CIO.Tong); }
public static void TaoCaTuDo(DateTime CheckInTime, int LoaiCaTuDo, out cCa Ca) { //var temp = CheckInTime.TimeOfDay;//ver 4.0.0.0//tbd xem lại ngày công Ca = new cCa { ID = LoaiCaTuDo, }; var temp = new TimeSpan(CheckInTime.TimeOfDay.Hours, CheckInTime.TimeOfDay.Minutes, 0); //ver 4.0.0.1 bỏ phần giây, chỉ giữ phần giờ, phút if (CheckInTime.TimeOfDay < XL2._03gio) { temp = Ca.TOD_Duty.Onn.Add(XL2._1ngay); //ca 3 , ca 3 va 1 vẫn giữ nguyên vì 21h > 4h//tbd xem lại ngày công } if (LoaiCaTuDo == int.MinValue + 0) { Ca.TOD_Duty = new TS { Onn = temp, Off = temp.Add(XL2._08gio) }; Ca.WorkingTimeTS = XL2._08gio; Ca.Workingday = 1f; Ca.Code = mySetting.Default.shiftCodeCa8h; Ca.MoTa = string.Format(mySetting.Default.MoTaCaTuDo, 8); Ca.KyHieuCC = mySetting.Default.kyHieuCCCa8h; } else if (LoaiCaTuDo == int.MinValue + 1) { Ca.TOD_Duty = new TS { Onn = temp, Off = temp.Add(XL2._12gio) }; Ca.WorkingTimeTS = XL2._12gio; Ca.Workingday = 1.5f; Ca.Code = mySetting.Default.shiftCodeCa12h; Ca.MoTa = string.Format(mySetting.Default.MoTaCaTuDo, 12); Ca.KyHieuCC = mySetting.Default.kyHieuCCCa12h; } else if (LoaiCaTuDo == int.MinValue + 2) { Ca.TOD_Duty = new TS { Onn = temp, Off = temp.Add(XL2._04gio) }; Ca.WorkingTimeTS = XL2._04gio; Ca.Workingday = 0.5f; Ca.Code = mySetting.Default.shiftCodeCa4h; Ca.MoTa = string.Format(mySetting.Default.MoTaCaTuDo, 4); Ca.KyHieuCC = mySetting.Default.kyHieuCCCa4h; } else if (LoaiCaTuDo == int.MinValue + 3) { Ca.TOD_Duty = new TS { Onn = temp, Off = temp.Add(XL2._16gio) }; Ca.WorkingTimeTS = XL2._16gio; Ca.Workingday = 2f; Ca.Code = mySetting.Default.shiftCodeCa16h; Ca.MoTa = string.Format(mySetting.Default.MoTaCaTuDo, 16); Ca.KyHieuCC = mySetting.Default.kyHieuCCCa16h; } Ca.PhutToiThieuTinhOT = XL2.default_PhutAfterOTMin; Ca.TOD_NightTime = XL2.TOD_NightTime22h; }
public void LapDSTatCaCa_ChamCong(out List <cCa> DSCa) // lập danh sách tất cả các ca để chấm công (chỉ có enable ) { DSCa = new List <cCa>(); DataTable tableCa = SqlDataAccessHelper.ExecSPQuery(SPName6.Shift_DocTatCaShiftV6.ToString(), new SqlParameter("@Enable", true)); foreach (DataRow row in tableCa.Rows) { #region nạp dữ liệu cCa ca = new cCa(); ca.ID = (int)row["ShiftID"]; ca.Code = row["ShiftCode"].ToString(); if (TimeSpan.TryParse(row["Onduty"].ToString(), out ca.Duty.From) == false) { ACMessageBox.Show("Không xử lý được dữ liệu Ca.", Resources.Caption_Loi, 2000); break; } if (TimeSpan.TryParse(row["Offduty"].ToString(), out ca.Duty.To) == false) { ACMessageBox.Show("Không xử lý được dữ liệu Ca.", Resources.Caption_Loi, 2000); break; } ca.DayCount = (int)row["DayCount"]; ca.QuaDem = (ca.DayCount == 1); ca.Duty.To = ca.Duty.To.Add(new TimeSpan(ca.DayCount, 0, 0, 0)); ca.NightTime = new FromToTimeSpan { From = GlobalVariables._22h00, To = GlobalVariables._6gHomSau }; ca.OnTimeInMin = (int)row["OnTimeIn"]; ca.CutInMin = (int)row["CutIn"]; ca.OnTimeOutMin = (int)row["OnTimeOut"]; ca.CutOutMin = (int)row["CutOut"]; //nhận diện vào, nhận diện ra tự động tính toán bên kia ca.AfterOTMin = new TimeSpan(0, (int)row["AfterOT"], 0); ca.LateeMin = new TimeSpan(0, (int)row["LateGrace"], 0); ca.EarlyMin = new TimeSpan(0, (int)row["EarlyGrace"], 0); //tính timeOfDay ChoPhépTrễ, Sớm, AfterOT tính toán bên class var tOnLunch = TimeSpan.Zero; var tOffLunch = TimeSpan.Zero; if (row["OnLunch"] != DBNull.Value && row["OffLunch"] != DBNull.Value) { TimeSpan.TryParse(row["OnLunch"].ToString(), out tOnLunch); TimeSpan.TryParse(row["OffLunch"].ToString(), out tOffLunch); } ca.LunchMin = tOffLunch - tOnLunch; ca.WorkingTimeTS = new TimeSpan(0, int.Parse(row["WorkingTime"].ToString()), 0); ca.Workingday = (Single)row["Workingday"]; ca.KyHieuCC = row["KyHieuCC"].ToString(); ca.MoTa = row["Description"].ToString(); ca.Is_CaTuDo = false; #endregion DSCa.Add(ca); } }
public int ValidateCIO(DataRow row, cCa CaDuocChon, bool CheckVaoTreTinhCV, bool CheckRaaSomTinhCV, bool CheckChoPhepTre, bool CheckChoPhepSom, TimeSpan soPhutLamThemDaXN) { /* -1 : Làm thêm > Ở lại*/ int kq = 0; cCheckInOut cio = (cCheckInOut)row["cCheckInOut"]; if (soPhutLamThemDaXN > cio.TG5.OLai) { return(-1); // } TS TOD_Duty, gioiHanChoPhepTreSom; DateTime td_batdau_lv, td_ketthuc_lv; TimeSpan tre, som; if (CaDuocChon.ID < 0) //ca tự do { TOD_Duty.Onn = new TimeSpan(cio.Vao.Time.TimeOfDay.Hours, cio.Vao.Time.TimeOfDay.Minutes, 0); TOD_Duty.Off = TOD_Duty.Onn.Add(CaDuocChon.WorkingTimeTS); XL.Vao(cio.Vao.Time, cio.ThuocNgayCong.Add(TOD_Duty.Onn), CaDuocChon.ThoiDiemTre(cio.ThuocNgayCong.Date), out td_batdau_lv, out tre); XL.Raa(cio.Raa.Time, cio.ThuocNgayCong.Add(TOD_Duty.Off), CaDuocChon.ThoiDiemSom(cio.ThuocNgayCong.Date), out td_ketthuc_lv, out som); } else //ca chuẩn { } //var temp1 = cio.ShiftID < 0 ? cio.Vao.Time.TimeOfDay cio.ThuocNgayCong.Add(CaDuocChon.TOD_Duty.Onn); var temp2 = cio.ThuocNgayCong.Add(CaDuocChon.TOD_Duty.Off); DateTime TD_BD_LV, TD_KT_LV, TD_KT_LV_TrongCa, TD_BD_LV_Ca3, TD_KT_LV_Ca3; bool QuaDem; TimeSpan TGThucTe, TGGioLamViec, TGVaoTre, TGRaaSom, TGGioLamViecTrongCa, TGOLai, TGLamBanDem; XL.TinhTG_LV_LVCa3_LamThem_1CIO5(cio.ThuocNgayCong, cio.HaveINOUT, true, CheckChoPhepTre, CheckChoPhepSom, cio.Vao.Time, cio.Raa.Time, CaDuocChon.TOD_Duty.Onn, CaDuocChon.TOD_Duty.Off, CaDuocChon.TS_PhutChoTre, CaDuocChon.TS_PhutChoSom, CaDuocChon.TS_PhutAfterOT, CaDuocChon.TS_PhutNghiTrua, soPhutLamThemDaXN, XL2.TOD_NightTime22h, //tbd start NT, endNT out TD_BD_LV, out TD_KT_LV, out TD_KT_LV_TrongCa, out TD_BD_LV_Ca3, out TD_KT_LV_Ca3, out TGThucTe, out TGGioLamViec, out TGVaoTre, out TGRaaSom, out TGGioLamViecTrongCa, out TGOLai, out QuaDem, out TGLamBanDem ); if (TGGioLamViec < XL2._10phut) { return(-2); } float congCaQuyDinh, congTre, congSom, congThucTeTrongCa, congThucTeNgoaiCa, congThucTe, tongCongBu, tongCongTru, dinhMucCong; XL.TinhCong_1_CIO_5(CaDuocChon.Workingday, CaDuocChon.WorkingTimeTS, TGVaoTre, TGRaaSom, CheckVaoTreTinhCV, CheckRaaSomTinhCV, soPhutLamThemDaXN, out congCaQuyDinh, out congTre, out congSom, out congThucTeTrongCa, out congThucTeNgoaiCa, out congThucTe, out tongCongBu, out tongCongTru, out dinhMucCong); if (Math.Abs(congThucTe - 0f) < 0.001f) { return(-2); } return(kq); }
void dateTimeGioMoi_ValueChanged(object sender, EventArgs e) { cCa tmpCa = (cCa)cbCa.SelectedItem; bool tmpCheckIn = radVao.Checked; if (!((tmpCheckIn && dateTimeGioMoi.Value.TimeOfDay == tmpCa.Duty.Onn) || (tmpCheckIn == false && dateTimeGioMoi.Value.TimeOfDay == tmpCa.Duty.Off))) { cbCa.SelectedIndexChanged -= cbCa_SelectedIndexChanged; cbCa.SelectedIndex = 0; cbCa.Refresh(); cbCa.SelectedIndexChanged += cbCa_SelectedIndexChanged; } }
public void TinhTG_LV_LVCa3_LamThem1Ca(cCheckInOut CIO, cCa ca, FromToTimeSpan NightTime) { bool tempQuaDem; TinhTG_LV_LVCa3_LamThem1Ca(CIO.ThuocNgayCong, CIO.CheckVT, CIO.Vao.Time, CIO.Raa.Time, ca.Duty.From, ca.Duty.To, ca.ChoPhepTre_TimeOfDay, ca.ChophepSom_TimeOfDay, ca.BatdauOT_TimeOfDay, ca.LunchMin, NightTime, out CIO.VaoLamTron, out CIO.RaaLamTron, out CIO.BD_LV, out CIO.KT_LV_TrongCa, out CIO.KT_LV, out CIO.BD_LV_Ca3, out CIO.KT_LV_Ca3, out CIO.HienDien, out CIO.VaoSauCa, out CIO.RaTruocCa, out CIO.Tre, out CIO.Som, out CIO.OLaiVR, out CIO.LamTrongGio, out CIO.LamDem, out tempQuaDem); CIO.QuaDem = tempQuaDem; // ko cho phép out CIO.QuaDem nên fix tạm bằng cách dùng biến trung gian cục bộ và gán lại }
private void timeEditBoSungVao_Properties_ButtonClick(object sender, ButtonPressedEventArgs e) { /* 1. xác định CIO nào đang chọn để lấy thời gian vào hoặc ra * 2. trường hợp đặc biệt thỏa các điều kiện : * - đang chọn 1 row, chọn ca tự do, chế độ nhập bổ sung thì tự động thêm */ if (e.Button.Kind == ButtonPredefines.Search) { fmDSCa formDSCa = new fmDSCa(); formDSCa.ShowDialog(); if (formDSCa.m_YesNoCancel == YesNoCancel.Yes) { cCa selectedCa = formDSCa.selectedCa; TimeSpan timeVao, timeRaa; this.GetThoigianVaoraCa(selectedCa, out timeVao, out timeRaa); int[] selectingRowHandle = gridView1.GetSelectedRows(); if ((TimeEdit)sender == timeEditBoSungVao || (TimeEdit)sender == timeEditBoSungRaa) { if (selectingRowHandle.Count() == 1 && selectedCa.ID < 0) { cCheckInOut selectingCheckInOut = (gridView1.GetDataRow(selectingRowHandle[0]) != null) ? (cCheckInOut)(gridView1.GetDataRow(selectingRowHandle[0])["cCheckInOut"]) : null; if (selectingCheckInOut == null) { goto point1; } if (selectingCheckInOut.HaveINOUT == -1) { timeVao = TimeSpan.Zero; DateTime dateTimeVao = (selectingCheckInOut.Vao.Time.Add(selectedCa.WorkingTimeTS)); timeRaa = dateTimeVao.TimeOfDay; } else if (selectingCheckInOut.HaveINOUT == -2) { timeRaa = TimeSpan.Zero; DateTime dateTimeRaa = (selectingCheckInOut.Raa.Time.Add(-selectedCa.WorkingTimeTS)); timeVao = dateTimeRaa.TimeOfDay; } } point1: timeEditBoSungVao.Time = DateTime.Today.Date.Add(timeVao); timeEditBoSungRaa.Time = DateTime.Today.Date.Add(timeRaa); } else if ((TimeEdit)sender == timeEditSuaVao || (TimeEdit)sender == timeEditSuaRaa) { timeEditSuaVao.Time = DateTime.Today.Date.Add(timeVao); timeEditSuaRaa.Time = DateTime.Today.Date.Add(timeRaa); } } } }
private void switchButton1_ValueChanged(object sender, EventArgs e) { cCa tmpCa = (cCa)cbCa.SelectedItem; bool tmpKieuGioVao = radVao.Checked; if (!((tmpKieuGioVao && dateTimeGioMoi.Value.TimeOfDay == tmpCa.Duty.Onn) || (tmpKieuGioVao == false && dateTimeGioMoi.Value.TimeOfDay == tmpCa.Duty.Off))) { cbCa.SelectedIndexChanged -= cbCa_SelectedIndexChanged; cbCa.SelectedIndex = 0; cbCa.Refresh(); cbCa.SelectedIndexChanged += cbCa_SelectedIndexChanged; } lbKieuGio.Text = string.Format("Giờ {0}", (radVao.Checked ? "vào" : "ra")); }
private void GetThoigianVaoraCa(cCa selectedCa, out TimeSpan timeVao, out TimeSpan timeRaa) { if (selectedCa.ID < 0) //ca tự do { timeVao = TimeSpan.Zero; timeRaa = TimeSpan.Zero; } else //ca chuẩn { cCa ca = selectedCa; timeVao = ca.TOD_Duty.Onn; timeRaa = ca.TOD_Duty.Off; } }
private void XuLyDon(DataRowView dataRow, cCa currShift, bool bDuyetCPTre, bool bDuyetCPSom, int soPhutLamThem, bool choPhepTinhPc50, string lydo, string ghichu, bool bVaoTreLaCV, bool bRaaSomLaCV)//ver 4.0.0.4 { var nv = (cUserInfo)dataRow["cUserInfo"]; var CIO = (cCheckInOut)dataRow["cCheckInOut"]; var timevao = CIO.Vao.Time; var timeraa = CIO.Raa.Time; if (currShift.TachCaDem) { DateTime td_bd_lv, td_kt_lv_chuaOT, td_kt_lv_DaCoOT; TimeSpan tempSom, tempTre; DateTime td_bd_ca3 = CIO.ThuocNgayCong.Add(currShift.TOD_Duty.Onn); DateTime td_kt_ca3 = td_bd_ca3.Add(currShift.catruoc.WorkingTimeTS); DateTime td_bd_ca1 = td_bd_ca3.Add(currShift.catruoc.WorkingTimeTS).Add(XL2._01giay); DateTime td_kt_ca3va1 = CIO.ThuocNgayCong.Add(currShift.TOD_Duty.Off); XL.Vao(timevao, td_bd_ca3, CIO.ThuocNgayCong.Add(currShift.TOD_Duty.Onn.Add(currShift.TS_PhutChoTre)), out td_bd_lv, out tempTre); XL.Raa(timeraa, td_kt_ca3va1, CIO.ThuocNgayCong.Add(currShift.TOD_Duty.Off.Subtract(currShift.TS_PhutChoSom)), out td_kt_lv_chuaOT, out tempSom); td_kt_lv_DaCoOT = td_kt_lv_chuaOT + new TimeSpan(0, soPhutLamThem, 0); if (td_bd_lv > td_bd_ca3 + XL2._04gio || td_kt_lv_DaCoOT < td_bd_ca1 + XL2._02gio) { MessageBox.Show(Resources.Text_KhongTheXacNhanCaTach_KoDuDieuKienTach, Resources.Caption_ThongBao, MessageBoxButtons.OK); } else { XL.XacNhanCa(nv, CIO, currShift, bDuyetCPTre, bDuyetCPSom, soPhutLamThem, choPhepTinhPc50, lydo, ghichu, bVaoTreLaCV, bRaaSomLaCV, currShift.TOD_NightTime); //ver 4.0.0.4 } } else { DateTime td_kt_lv_chuaOT; TimeSpan tempSom, tempOLai; XL.Raa(timeraa, CIO.ThuocNgayCong.Add(currShift.TOD_Duty.Off), CIO.ThuocNgayCong.Add(currShift.TOD_Duty.Onn.Add(currShift.TS_PhutChoTre)), out td_kt_lv_chuaOT, out tempSom); XL.OLai(timeraa, CIO.ThuocNgayCong.Add(currShift.TOD_Duty.Off), CIO.ThuocNgayCong.Add(currShift.TOD_Duty.Off.Subtract(currShift.TS_PhutChoSom)), out tempOLai); if (soPhutLamThem > tempOLai.TotalMinutes) { soPhutLamThem = Convert.ToInt32(tempOLai.TotalMinutes); } XL.XacNhanCa(nv, CIO, currShift, bDuyetCPTre, bDuyetCPSom, soPhutLamThem, choPhepTinhPc50, lydo, ghichu, bVaoTreLaCV, bRaaSomLaCV, currShift.TOD_NightTime); //ver 4.0.0.4 } }
private void btnOK_Click(object sender, EventArgs e) { DataGridView dataGrid = GetDataGrid(tabControl1); // chưa chọn dòng nào thì thoát, ko gán selectedShift if (dataGrid.SelectedRows.Count == 0) { MessageBox.Show(Resources.Text_ChuaLuaChonCa, Resources.Caption_ThongBao); } else { var selectedRow = dataGrid.SelectedRows[0]; dynamic d = (selectedRow.DataBoundItem); SelectedShift = d.ca; } Close(); }
public void ValidateCIO(List <DataRow> List_CIO_Input, cCa ca, out List <DataRow> List_CIO_HaveError, out List <DataRow> List_CIO_HopLe) { List_CIO_HaveError = new List <DataRow>(); List_CIO_HopLe = new List <DataRow>(); foreach (DataRow row in List_CIO_Input) { int kq = ValidateCIO(row, ca, m_CheckVaoTreTinhCV, m_CheckRaaSomTinhCV, m_ChoPhepVaoTre, m_ChoPhepRaaSom, m_SoPhutLamThem); if (kq < 0) { List_CIO_HaveError.Add(row); } else { List_CIO_HaveError.Add(row); } } return; }
private void frm_ChamCongTay_Load(object sender, EventArgs e) { #region kiểm tra kết nối csdl, mất kết nối thì thoát if (SqlDataAccessHelper.TestConnection(SqlDataAccessHelper.ConnectionString) == false) { ACMessageBox.Show(Resources.Text_MatKetNoiCSDL, Resources.Caption_Loi, 2000); Close(); return; } #endregion dtpBDLam.ValueChanged += dtp_ValueChanged; dtpKTLam.ValueChanged += dtp_ValueChanged; #region //2. lấy dữ liệu phòng ban được phép thao tác và load treePhongBan , // trường hợp ko có phòng ban nào được phép thao tác thì báo và thoát form XL.KhoiTaoDSPhongBan(m_DSPhg, XL2.currUserID); if (m_DSPhg.Count == 0) { ACMessageBox.Show(Resources.Text_ChuaCapQuyenPhongBanThaoTac, Resources.Caption_ThongBao, 5000); Close(); return; } XL.loadTreePhgBan(treePhongBan, XL2.TatcaPhongban, m_DSPhg); #endregion // đăng ký sự kiện cho tree và chọn topNode treePhongBan.AfterSelect += treePhongBan_AfterSelect; treePhongBan.SelectedNode = treePhongBan.TopNode; #region chọn mặc định ca hành chánh cho cấp quản lý cCa defaultShift = XL.DSCa.Find(item => item.Duty.Onn == XL2._07h30 && item.Duty.Off == XL2._16gio && Math.Abs(item.Workingday - 1f) < 0.01f); //tbd tbCa.Tag = defaultShift; tbCa.Text = defaultShift.Code; dtpBDLam.Value = DateTime.Today.Date.Add(defaultShift.Duty.Onn); dtpKTLam.Value = DateTime.Today.Date.Add(defaultShift.Duty.Off); #endregion }
private void btnOK_Click(object sender, EventArgs e) { int[] selectedRowHandle = gridView1.GetSelectedRows(); if (selectedRowHandle.Count() > 1) { MessageBox.Show("chọn quá nhiều row"); return; } dynamic objectCa = gridView1.GetRow(selectedRowHandle[0]); if (objectCa == null || objectCa.ca == null) { return; } selectedCa = objectCa.ca; m_YesNoCancel = YesNoCancel.Yes; Close(); }
private void btnChonCa_Properties_ButtonClick(object sender, ButtonPressedEventArgs e) { if (e.Button.Kind != ButtonPredefines.Search) { return; // không phải bấm button chọn ca thì thoát } /* thực hiện xử lý * 1. xác định ca được */ fmDSCa formDSCa = new fmDSCa(); formDSCa.ShowDialog(); if (formDSCa.m_YesNoCancel == YesNoCancel.Yes) { cCa selectedCa = formDSCa.selectedCa; btnChonCa.Tag = selectedCa; btnChonCa.Text = selectedCa.Code; m_DaChonCaKhac = true; } }
internal void LayTatCaLichTrinhVaCa(ref List <cNhomCa> DSNhomCa) { //1. lập ds các ca đang enable trước, sau đó duyệt trong bảng phân bố để lọc các ca theo ID Lịch trình List <cCa> DSTatCaCa; LapDSTatCaCa_ChamCong(out DSTatCaCa); DataTable tableNhomCa = SqlDataAccessHelper.ExecSPQuery(SPName6.Schedule_DocLichTrinhV6.ToString()); DataTable tablePhanBoCaTheoNhom = SqlDataAccessHelper.ExecSPQuery(SPName6.ShiftSch_DocDSCaV6.ToString()); DSNhomCa.Clear(); //2. lập danh sách các lịch trình, sau đó mới duyệt bảng phân bố ca để đưa ds các ca vào foreach (DataRow dataRow in tableNhomCa.Rows) { cNhomCa nhomCa = new cNhomCa { IDDescription = new ID_Description { ID = (int)dataRow["SchID"], Description = dataRow["SchName"].ToString() }, DSCa = new List <cCa>() }; DSNhomCa.Add(nhomCa); } // 3. dựa vào bảng phân bố xác định danh sách các ca foreach (cNhomCa nhomCa in DSNhomCa) { // xác định các record của 1 lịch trình DataRow[] dataRows = tablePhanBoCaTheoNhom.Select("SchID=" + nhomCa.IDDescription.ID); // xác định ID của ca để add vào danh sách foreach (DataRow row in dataRows) { int shiftID = (int)row["T1"]; cCa ca = (from cCa item in DSTatCaCa where item.ID == shiftID select item).SingleOrDefault(); if (ca != null) { nhomCa.DSCa.Add(ca); } } } }
public static void KiemtraThuocCa(DateTime t_vao, DateTime t_raa, DateTime ngay, List <cCa> DSCa, out bool ThuocDSCa, out cCa Result) { ThuocDSCa = true; Result = DSCa.FirstOrDefault(ca => t_vao >= ngay.Add(ca.NhanDienVao.From) && t_vao <= ngay.Add(ca.NhanDienVao.To) && t_raa >= ngay.Add(ca.NhanDienRaa.From) && t_raa <= ngay.Add(ca.NhanDienRaa.To)); if (Result == null) { ThuocDSCa = false; } }
public static void ChuanBiDSLichTrinhVaCa() { XL.DSCaMoRong.Clear(); XL.DSCa.Clear(); //lấy danh sách tất cả các ca var tableDSCa = DAO5.LayDSCa(); List <cCa> tempList = new List <cCa>(); foreach (DataRow row in tableDSCa.Rows) { #region transfer dữ liệu từ row sang đối tượng var iShiftID = (int)row["ShiftID"]; var sShiftCode = row["ShiftCode"].ToString(); TimeSpan tsOnDuty; TimeSpan.TryParse(row["Onduty"].ToString(), out tsOnDuty); TimeSpan tOffDuty; TimeSpan.TryParse(row["Offduty"].ToString(), out tOffDuty); var iDayCount = (int)row["DayCount"]; tOffDuty = tOffDuty.Add(new TimeSpan(iDayCount, 0, 0, 0)); TimeSpan timespanStartNightTime, timespanEndddNightTime; if (row["StartNT"] == DBNull.Value || TimeSpan.TryParse(row["StartNT"].ToString(), out timespanStartNightTime) == false) { timespanStartNightTime = XL2._22h00; //ver 4.0.0.4 } if (row["EndNT"] == DBNull.Value || TimeSpan.TryParse(row["EndNT"].ToString(), out timespanEndddNightTime) == false) { timespanEndddNightTime = XL2._06h00; //ver 4.0.0.4 } var tOnLunch = XL2._0gio; var tOffLunch = XL2._0gio; if (row["OnLunch"] != DBNull.Value && row["OffLunch"] != DBNull.Value) { TimeSpan.TryParse(row["OnLunch"].ToString(), out tOnLunch); TimeSpan.TryParse(row["OffLunch"].ToString(), out tOffLunch); } var LunchMin = tOffLunch.Subtract(tOnLunch); var tempWorkingTime = int.Parse(row["WorkingTime"].ToString()); var kyhieucc = row["KyHieuCC"].ToString(); var tachcadem = (row["IsSplited"] != DBNull.Value) && (bool)row["IsSplited"]; var idCaTruoc = (row["ShiftID1"] != DBNull.Value) ? (int)row["ShiftID1"] : -1; var idCaSauuu = (row["ShiftID2"] != DBNull.Value) ? (int)row["ShiftID2"] : -1; var isextend = (row["IsExtended"] != DBNull.Value) && (bool)row["IsExtended"]; var tempShift = new cCa { ID = iShiftID, Code = sShiftCode, TOD_Duty = new TS { Onn = tsOnDuty, Off = tOffDuty }, PhutOnnInn = (int)row["OnTimeIn"], PhutCutInn = (int)row["CutIn"], PhutOnnOut = (int)row["OnTimeOut"], PhutCutOut = (int)row["CutOut"], PhutToiThieuTinhOT = (int)row["AfterOT"], PhutChoTre = (int)row["LateGrace"], PhutChoSom = (int)row["EarlyGrace"], //LateeMin = tLateGrace, //EarlyMin = tEarlyGrace, Workingday = (Single)row["Workingday"], WorkingTimeTS = new TimeSpan(0, tempWorkingTime, 0), PhutNghiTrua = Convert.ToInt32(LunchMin.TotalMinutes), TachCaDem = tachcadem, idCaTruoc = idCaTruoc, idCaSauuu = idCaSauuu, KyHieuCC = kyhieucc, MoTa = row["Description"].ToString(), IsExtended = isextend, TOD_NightTime = new TS { Onn = timespanStartNightTime, Off = timespanEndddNightTime } }; //tempShift.TOD_NhanDienVao = new TS { Onn = tempShift.ThoiDiemOnnInn(), Off = tod_CutIn }, //tempShift.TOD_NhanDienRaa = new TS { Onn = tod_OnTimeOut, Off = tod_CutOut }, #endregion tempList.Add(tempShift); } // ra khỏi vòng lặp,ca 3&1, ca 3&1A chưa cập nhật ca trước, ca sau--> cập nhật #region update lại ca tách qua đêm trong ds ca foreach (cCa ca in tempList.Where(item => item.TachCaDem)) { var catruoc = tempList.Find(item => item.ID == ca.idCaTruoc); var casauuu = tempList.Find(item => item.ID == ca.idCaSauuu); ca.catruoc = catruoc; ca.casauuu = casauuu; } #endregion // có được toàn bộ ds ca --> gán cho DSCa toàn cục, DSCaMR toàn cục XL.DSCa = tempList; XL.DSCaMoRong = tempList.Where(item => item.IsExtended).ToList(); //DSCaMoRong chỉ bao gồm các ca ghép Ca1&2A, Ca1B&2, mỗi ca có caTrước caSau // gán lịch trình XL.DSLichTrinh.Clear(); // lấy danh sách lịch trình, mỗi dòng là 1 ca thuộc lịch trình => để duyệt từng lịch trình thì phải lấy dicstint var tableLichTrinh = DAO5.LayDSLichTrinh(); var arrRows_Distinct = (from DataRow row in tableLichTrinh.Rows select new { SchID = (int)(row["SchID"]), SchName = row["SchName"].ToString() }) .Distinct(); foreach (var row in arrRows_Distinct) { var arrRows1 = tableLichTrinh.Select("SchID=" + row.SchID, ""); var lichtrinh = new cShiftSchedule { SchID = row.SchID, TenLichTrinh = row.SchName, DSCaThu = new List <List <cCa> >(7), DSCaMRThu = new List <List <cCa> >(7), }; // mỗi lịch trình chứa 7T, mỗi T là 1 danh sách ca for (int i = 0; i < 7; i++) { lichtrinh.DSCaThu.Add(new List <cCa>()); lichtrinh.DSCaMRThu.Add(new List <cCa>()); } foreach (var row1 in arrRows1) { for (int i = 0; i < 7; i++) { if (row1["T" + (i + 1)] == DBNull.Value) { continue; } var shiftid = (int)row1["T" + (i + 1)]; var ca = XL.DSCa.Find(o => o.ID == shiftid); if (ca != null) { lichtrinh.DSCaThu[i].Add(ca); } } } for (int i = 0; i < 7; i++) { List <cCa> dscathu = lichtrinh.DSCaThu[i]; foreach (var ca in from ca in XL.DSCaMoRong let catruoc = ca.catruoc let casauuu = ca.casauuu where dscathu.Exists(item => item.ID == catruoc.ID) && dscathu.Exists(item => item.ID == casauuu.ID) select ca) { lichtrinh.DSCaMRThu[i].Add(ca); } } //var ca3 = lichtrinh.DSCaThu[0].FirstOrDefault(o => o.QuaDem && Math.Abs(o.Workingday - 1f) < 0.01f);//ver 4.0.0.4 //xác định ca 3 có giờ qua đêm 21h45 hay 22 giờ để gán //if (ca3 == null) lichtrinh.TGLamDemTheoQuyDinh = TGLamDemTheoQuyDinh._22h00;//ver 4.0.0.4 //else if (ca3.StartNT == XL2._21h45) lichtrinh.TGLamDemTheoQuyDinh = TGLamDemTheoQuyDinh._21h45;//ver 4.0.0.4 //else lichtrinh.TGLamDemTheoQuyDinh = TGLamDemTheoQuyDinh._22h00;//ver 4.0.0.4 XL.DSLichTrinh.Add(lichtrinh); } if (XL.DSLichTrinh.Count == 0) { throw new NullReferenceException("Không có ds lịch trình"); } }
public static void XacNhan_CIO_A(cUserInfo nv, cCheckInOut CIO, cCa currShift, bool bDuyetCPTre, bool bDuyetCPSom, int soPhutLamThem, bool choPhepTinhPc50, string lydo, string ghichu, bool bVaoTreLaCV, bool bRaaSomLaCV, TS NightTime)//ver 4.0.0.4 { }
public static void XacNhan_CIO_A(int MaCC, DateTime timevao, DateTime timeraa, cCa currShift, bool bDuyetCPTre, bool bDuyetCPSom, int soPhutLamThem, bool choPhepTinhPc50, string lydo, string ghichu, bool bVaoTreLaCV, bool bRaaSomLaCV)//ver 4.0.0.4 { if (timeraa - timevao <= TimeSpan.Zero || timeraa - timevao > XL2._24h00) { return; // ko đủ điều kiện xác nhận } int outputIDXN; // 2. xác nhận ca dưới csdl DAO5.XacNhanCa(MaCC, timevao, 21, "PC", timeraa, 22, "PC", currShift.ID, currShift.Code, bDuyetCPTre, bDuyetCPSom, soPhutLamThem, lydo, ghichu, out outputIDXN, bVaoTreLaCV, bRaaSomLaCV); //ver 4.0.0.4 DAO5.CheckTinhPC50(MaCC, timevao.Date, choPhepTinhPc50); }
private void linkTinhLaiCong_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { DateTime td_batdau_lv, td_ketthuc_lv_chuaOT, td_ketthuc_lv_daCoOT, TD_BD_LV_Ca3, TD_KT_LV_Ca3; TimeSpan tre, som, treKoTruVR, somKoTruVR, tongGiothuc = TimeSpan.Zero, TGGioLamViec = TimeSpan.Zero, TGLamBanDem, tgTinhPC30, tgTinhPC50, tgTinhPCTCC3; float Cong = 0f, PhuCap30, PhuCapTC, PhuCapTCC3, TongPhuCap = 0f; bool QuaDem; var ngay = DateTime.Today; TimeSpan timespanBD = dtpBDLam.Value.TimeOfDay; TimeSpan timeSpanKT = dtpKTLam.Value.TimeOfDay; var timeBD = ngay.Add(timespanBD); var timeKT = ngay.Add(timeSpanKT); if (timespanBD > timeSpanKT) { timeKT = timeKT.AddDays(1d); } cCa ca = tbCa.Tag as cCa; if (ca == null) { goto point; } /* * if (ca.ID < 0 ) * { * ca.Duty = new TS {Onn = timespanBD, Off = timeSpanKT}; * XL.TaoCaTuDo(ca, timeBD, XL2._08gio, XL2.ChoPhepTre, XL2.ChoPhepSom, XL2.LamThemAfterOT, 1f, "8", false);//fix lỗi * } */ if (ca.ID < int.MinValue + 100) { //ca.Duty = new TS {Onn = timespanBD, Off = timeSpanKT}; //XL.TaoCaTuDo(ca, timeBD, XL2._08gio, XL2.ChoPhepTre, XL2.ChoPhepSom, XL2.LamThemAfterOT, 1f, "8", false);//fix lỗi XL.TaoCaTuDo(ca, timeBD); } else if (timeBD > ngay.Add(ca.Duty.Off) || timeKT < ngay.Add(ca.Duty.Onn)) { goto point; } //var sophutOT = (checkXNLamThem.Checked && numSoPhutOT.Value > 0) ? (int)numSoPhutOT.Value : 0; TimeSpan OTCa = TimeSpan.Zero; //ver 4.0.0.4 if (checkXNLamThem.Checked) { TimeSpan.TryParseExact(maskPhutTinhLamThem.Text, @"hh\:mm", CultureInfo.InvariantCulture, out OTCa); } var sophutOT = Convert.ToInt32(OTCa.TotalMinutes); //ver 4.0.0.4 var tinhPCTC = (checkTinhPC150.Checked); tongGiothuc = timeKT - timeBD; TimeSpan TGGioLamViecTrongCa; XL.Vao(timeBD, ngay.Add(ca.Duty.Onn), ngay.Add(ca.chophepTreTS), true, true, out td_batdau_lv, out tre, out treKoTruVR); //todo 4.0.0.8 XL.Raa(timeKT, ngay.Add(ca.Duty.Off), ngay.Add(ca.chophepSomTS), false, false, out td_ketthuc_lv_chuaOT, out som, out somKoTruVR); //todo 4.0.0.8 XL.LamThem(td_ketthuc_lv_chuaOT, new TimeSpan(0, sophutOT, 0), out td_ketthuc_lv_daCoOT); if (timeKT < td_ketthuc_lv_daCoOT) { timeKT = ngay.Add(ca.Duty.Off).Add(new TimeSpan(0, sophutOT, 0)); dtpKTLam.Value = timeKT; } XL.Tinh_TGLamViecTrongCa(td_batdau_lv, td_ketthuc_lv_chuaOT, ca.LunchMin, out TGGioLamViecTrongCa); TGGioLamViec = TGGioLamViecTrongCa + OTCa; //ver 4.0.0.4 XL.Tinh_TGLamViec_Ca3(td_batdau_lv, td_ketthuc_lv_daCoOT, ngay.Add(XL2._22h00), ngay.AddDays(1d).Add(XL2._06h00), out TD_BD_LV_Ca3, out TD_KT_LV_Ca3, out TGLamBanDem, out QuaDem); TimeSpan TGLamThem = XL.Tinh_TGLamThem(TGGioLamViec); //(TGGioLamViec - XL2._08gio) >= XL2._01phut ? (TGGioLamViec - XL2._08gio) : TimeSpan.Zero; float cong_trong_ca = Convert.ToSingle(Math.Round(((TGGioLamViecTrongCa.TotalHours / ca.WorkingTimeTS.TotalHours) * ca.Workingday), 2)); float cong_ngoai_ca = Convert.ToSingle(Math.Round((OTCa.TotalHours / 8f), 2)); Cong = cong_trong_ca + cong_ngoai_ca; XL.Tinh_PCTC(tinhPCTC, QuaDem, TGLamBanDem, TGLamThem, out tgTinhPC30, out tgTinhPC50, out tgTinhPCTCC3, out PhuCap30, out PhuCapTC, out PhuCapTCC3, out TongPhuCap); point: tbTongGio.Text = tongGiothuc.ToString(@"hh\gmm\p"); tbGioLam.Text = TGGioLamViec.ToString(@"hh\gmm\p"); tbCong.Text = (Math.Round(Cong, 2)).ToString(); tbPC.Text = (TongPhuCap.ToString("0.0#")); }
private void frmDSCa_Load(object sender, EventArgs e) { #region gán datasource cho các datagrid dgrd4h.AutoGenerateColumns = dgrd8h.AutoGenerateColumns = dgrd16h.AutoGenerateColumns = dgrdCaTuDo.AutoGenerateColumns = false; var dsca4h = (from ca in XL.DSCa where Math.Abs(ca.Workingday - 0.5f) < 0.01f select new { ca = ca, ID = ca.ID, Code = ca.Code, VaoCa = ca.TOD_Duty.Onn, RaaCa = ca.TOD_Duty.Off, QuaDem = ca.QuaDem, MoTa = ca.MoTa }).ToList(); //select ca).ToList(); var dsca8h = (from ca in XL.DSCa where Math.Abs(ca.Workingday - 1f) < 0.01f select new { ca = ca, ID = ca.ID, Code = ca.Code, VaoCa = ca.TOD_Duty.Onn, RaaCa = ca.TOD_Duty.Off, QuaDem = ca.QuaDem, MoTa = ca.MoTa }).ToList(); //select ca).ToList(); var dsca12h = (from ca in XL.DSCa where Math.Abs(ca.Workingday - 1.5f) < 0.01f select new { ca = ca, ID = ca.ID, Code = ca.Code, VaoCa = ca.TOD_Duty.Onn, RaaCa = ca.TOD_Duty.Off, QuaDem = ca.QuaDem, MoTa = ca.MoTa }).ToList(); //select ca).ToList(); var dsca16h = (from ca in XL.DSCa where Math.Abs(ca.Workingday - 2f) < 0.01f select new { ca = ca, ID = ca.ID, Code = ca.Code, VaoCa = ca.TOD_Duty.Onn, RaaCa = ca.TOD_Duty.Off, QuaDem = ca.QuaDem, MoTa = ca.MoTa }).ToList(); //select ca).ToList(); var dsCaTuDo = new List <dynamic>(); cCa ca8h = new cCa { ID = int.MinValue + 0, Code = Properties.Settings.Default.shiftCodeCa8h, MoTa = string.Format(Settings.Default.MoTaCaTuDo, 8) }; cCa ca12h = new cCa { ID = int.MinValue + 1, Code = Properties.Settings.Default.shiftCodeCa12h, MoTa = string.Format(Settings.Default.MoTaCaTuDo, 12) }; cCa ca4h = new cCa { ID = int.MinValue + 2, Code = Properties.Settings.Default.shiftCodeCa4h, MoTa = string.Format(Settings.Default.MoTaCaTuDo, 4) }; //ver 4.0.0.4 cCa ca16h = new cCa { ID = int.MinValue + 3, Code = Properties.Settings.Default.shiftCodeCa16h, MoTa = string.Format(Settings.Default.MoTaCaTuDo, 16) }; //ver 4.0.0.4 /* * XL.TaoCaTuDo(ca8h, DateTime.MinValue, XL2._08gio, XL2.ChoPhepTre, XL2.ChoPhepSom, XL2.LamThemAfterOT, 1f, MySetting.Default.kyHieuCCCa8h); * XL.TaoCaTuDo(ca12h, DateTime.MinValue, XL2._12gio, XL2.ChoPhepTre, XL2.ChoPhepSom, XL2.LamThemAfterOT, 1f, MySetting.Default.kyHieuCCCa12h); * XL.TaoCaTuDo(ca4h, DateTime.MinValue, XL2._04gio, XL2.ChoPhepTre, XL2.ChoPhepSom, XL2.LamThemAfterOT, 1f, MySetting.Default.kyHieuCCCa4h);//ver 4.0.0.4 * XL.TaoCaTuDo(ca16h, DateTime.MinValue, XL2._16gio, XL2.ChoPhepTre, XL2.ChoPhepSom, XL2.LamThemAfterOT, 1f, MySetting.Default.kyHieuCCCa16h);//ver 4.0.0.4 * dsCaTuDo.Add(new { ca = ca8h, ID = ca8h.ID, Code = ca8h.Code, VaoCa = DBNull.Value, RaaCa = DBNull.Value, QuaDem = false, MoTa = string.Format(Settings.Default.MoTaCaCoSo, 8) }); * dsCaTuDo.Add(new { ca = ca12h, ID = ca12h.ID, Code = ca12h.Code, VaoCa = DBNull.Value, RaaCa = DBNull.Value, QuaDem = false, MoTa = string.Format(Settings.Default.MoTaCaCoSo, 12) }); * dsCaTuDo.Add(new { ca = ca4h, ID = ca4h.ID, Code = ca4h.Code, VaoCa = DBNull.Value, RaaCa = DBNull.Value, QuaDem = false, MoTa = string.Format(Settings.Default.MoTaCaCoSo, 4) });//ver 4.0.0.4 * dsCaTuDo.Add(new { ca = ca16h, ID = ca16h.ID, Code = ca16h.Code, VaoCa = DBNull.Value, RaaCa = DBNull.Value, QuaDem = false, MoTa = string.Format(Settings.Default.MoTaCaCoSo, 16) });//ver 4.0.0.4 */ dynamic dCa8h = new { ca = ca8h, ID = ca8h.ID, Code = ca8h.Code, MoTa = ca8h.MoTa }; dynamic dCa12h = new { ca = ca12h, ID = ca12h.ID, Code = ca12h.Code, MoTa = ca12h.MoTa }; dynamic dCa4h = new { ca = ca4h, ID = ca4h.ID, Code = ca4h.Code, MoTa = ca4h.MoTa }; dynamic dCa16h = new { ca = ca16h, ID = ca16h.ID, Code = ca16h.Code, MoTa = ca16h.MoTa }; dsCaTuDo.Add(dCa8h); dsCaTuDo.Add(dCa12h); dsCaTuDo.Add(dCa4h); dsCaTuDo.Add(dCa16h); dgrd4h.DataSource = dsca4h; dgrd8h.DataSource = dsca8h; dgrd16h.DataSource = dsca16h; dgrdCaTuDo.DataSource = dsCaTuDo; #endregion //set mặc định ca được chọn là ca từ form gọi truyền qua if (SelectedShift == null) // chế độ hàng loạt, các ca gồm nhiều loại khác nhau { // mặc định chọn tab 8h tabControl1.SelectTab(tab8h); tabControl1.Update(); } else if (SelectedShift.ID < int.MinValue + 100) // ca tự do { tabControl1.SelectTab(tabCaTuDo); tabControl1.Update(); dgrdCaTuDo.Rows[0].Selected = true; dgrdCaTuDo.Update(); } else // ca chuẩn { // 1. xác định ca chuẩn thuộc grid nào thì chọn mặc định grid đó, // 2. tìm trong grid có ca đang chọn ko? nếu có thì mặc định chọn dòng đó,tab đó; ko thì chọn mặc định tab đầu tiên, //set selected tab tabControl1.SelectedTab = GetTabPage(SelectedShift.Workingday); tabControl1.Update(); DataGridView dataGrid = GetDataGrid(SelectedShift.Workingday); var currRow = (from DataGridViewRow dataGridViewRow in dataGrid.Rows let rowView = dataGridViewRow.DataBoundItem as dynamic where rowView.ID == SelectedShift.ID select dataGridViewRow).Single(); // set selected row dataGrid.Rows[currRow.Index].Selected = true; dataGrid.FirstDisplayedScrollingRowIndex = currRow.Index; dataGrid.Refresh(); dataGrid.Update(); } }
private void XuLyDon(DataRowView dataRow, cCa currShift, bool bDuyetCPTre, bool bDuyetCPSom, int soPhutLamThem, bool choPhepTinhPc50, string lydo, string ghichu, bool bVaoTreLaCV, bool bRaaSomLaCV)//ver 4.0.0.4 { }