public void GetCheckInCheckOutData(FromToDateTime KhoangThoiGian, List <int> ArrayUEN, out List <cCheck> ResultListCheck) { DataTable tableArrayUEN = MyUtility.Array_To_DataTable("tableName", ArrayUEN); DataTable tableCheck = SqlDataAccessHelper.ExecSPQuery(SPName6.CheckInOut_DocCheckChuaXuLyV6.ToString(), new SqlParameter("@From", KhoangThoiGian.From), new SqlParameter("@To", KhoangThoiGian.To), new SqlParameter { ParameterName = "@ArrayUserEnrollNumber", SqlDbType = SqlDbType.Structured, Value = tableArrayUEN }, new SqlParameter("@DaChamCong", false), new SqlParameter("@Loai", false)); ResultListCheck = new List <cCheck>(); foreach (DataRow dataRow in tableCheck.Rows) { cCheck check = new cCheck { MaCC = (int)dataRow["UserEnrollNumber"], Source = dataRow["Source"].ToString(), Time = (DateTime)dataRow["TimeStr"], MachineNo = (int)dataRow["MachineNo"], TypeColumn = dataRow["OriginType"].ToString() }; check.Type = (check.MachineNo % 2 == 1) ? "I" : "O"; ResultListCheck.Add(check); } }
private void Update_Check_DaChamCong(int UEN, cCheck check) { int kq = SqlDataAccessHelper.ExecSPNoneQuery(SPName6.CheckInOut_Upd_Check_DaChamCongV6.ToString(), new SqlParameter("@UserEnrollNumber", UEN), new SqlParameter("@TimeStr", check.Time), new SqlParameter("@MachineNo", check.MachineNo), new SqlParameter("@DaChamCong", true)); if (kq == 0) { ACMessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi, 2000); } }
private void LoadGroup_Xoaa(cCheck check) { if (check == null) // check null thì reset group { MyUtility.ClearControlText(tbGioCuu_ChuyenDoi, tbGioCu_Xoaa, tbGhiChu_Xoaa); cbLyDo_Xoaa.SelectedIndex = 0; MyUtility.EnableDisableControl(false, btnChuyenDoi, btnXoaa); } else // check ko null { tbGioCu_Xoaa.Text = tbGioCuu_ChuyenDoi.Text = ((check.MachineNo % 2 == 1) ? "Vào" : "Ra") + " " + check.Time.ToString("H:mm ddd d/M", Application.CurrentCulture); cbLyDo_Xoaa.SelectedIndex = 0; tbGhiChu_Xoaa.Text = string.Empty; MyUtility.EnableDisableControl(true, btnChuyenDoi, btnXoaa); } }
private void LoadGroup_Suaa(cNgayCong ngayCong, cCheckInOut cio, cCheck check) { if (check == null) { MyUtility.ClearControlText(tbGioCu_Suaa, tbCa_Suaa, tbGhiChu_Suaa); tbCa_Suaa.Tag = null; MyUtility.EnableDisableControl(false, btnChonCa_Suaa, btnSuaa); // ko tồn tại giờ cũ nên ko cho sửa, chuyển đổi cbLyDo_Suaa.SelectedIndex = 0; } else { // xem xét check là CIO_V hay CIO_A, CIO_A cho sửa, CIO_V ko cho sửa, trong CIO_A coi có phải là check đệm giữa ca ko tbGioCu_Suaa.Text = ((check.MachineNo % 2 == 1) ? "Vào" : "Ra") + " " + check.Time.ToString("H:mm ddd d/M"); dtpGioMoi_Sua.Value = new DateTime(check.Time.Year, check.Time.Month, check.Time.Day, check.Time.Hour, check.Time.Minute, check.Time.Second); tbCa_Suaa.Tag = (cio == null || cio.HaveINOUT < 0) ? null : cio.ThuocCa; tbCa_Suaa.Text = (cio == null || cio.HaveINOUT < 0) ? string.Empty : cio.ThuocCa.Code; cbLyDo_Suaa.SelectedIndex = 0; tbGhiChu_Suaa.Text = string.Empty; //tồn tại giờ cũ nên cho phép sửa MyUtility.EnableDisableControl(true, btnChonCa_Suaa, btnSuaa); } }
public static bool ThemGio_ra3_vao1(List <cCheck> kq2) { var query = String.Empty; var param = new string[6 * kq2.Count]; var obj = new object[6 * kq2.Count]; var dem = 0; foreach (cCheck o in kq2) { if (o.Type == "I") { cCheck checkInn = o; param[6 * dem] = "@UserEnrollNumber" + dem; param[6 * dem + 1] = "@TimeDate" + dem; param[6 * dem + 2] = "@TimeStr" + dem; param[6 * dem + 3] = "@OriginType" + dem; param[6 * dem + 4] = "@MachineNo" + dem; param[6 * dem + 5] = "@Source" + dem; obj[6 * dem] = checkInn.MaCC; obj[6 * dem + 1] = checkInn.Time.Date; obj[6 * dem + 2] = checkInn.Time; obj[6 * dem + 3] = "I"; obj[6 * dem + 4] = 21; obj[6 * dem + 5] = "PC"; query += @" insert into CheckInOut (UserEnrollNumber, TimeDate, TimeStr, OriginType, MachineNo, Source, WorkCode, Them)"; var temp = string.Format(" values ( @UserEnrollNumber{0}, @TimeDate{0}, @TimeStr{0}, @OriginType{0}, @MachineNo{0}, @Source{0}, 0, 1) ", dem); query += temp; } else { cCheck checkOut = o; param[6 * dem] = "@UserEnrollNumber" + dem; param[6 * dem + 1] = "@TimeDate" + dem; param[6 * dem + 2] = "@TimeStr" + dem; param[6 * dem + 3] = "@OriginType" + dem; param[6 * dem + 4] = "@MachineNo" + dem; param[6 * dem + 5] = "@Source" + dem; obj[6 * dem] = checkOut.MaCC; obj[6 * dem + 1] = checkOut.Time.Date; obj[6 * dem + 2] = checkOut.Time; obj[6 * dem + 3] = "O"; obj[6 * dem + 4] = 22; obj[6 * dem + 5] = "PC"; query += @" insert into CheckInOut (UserEnrollNumber, TimeDate, TimeStr, OriginType, MachineNo, Source, WorkCode, Them) "; var temp = string.Format(" values ( @UserEnrollNumber{0}, @TimeDate{0}, @TimeStr{0}, @OriginType{0}, @MachineNo{0}, @Source{0}, 0, 1) ", dem); query += temp; } dem++; } if (param.Length == 0) { return(true); } if (SqlDataAccessHelper.ExecNoneQueryString(query, param, obj) == 0) { return(false); } return(true); }
private void btnSuaa_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } IsReload = true; var timespanGioVao = dtpVao.Value.TimeOfDay; var timespanGioRaa = dtpRaa.Value.TimeOfDay; var lydo = (cbLyDo.SelectedItem != null) ? cbLyDo.SelectedItem.ToString() : cbLyDo.Text; var ghichu = tbGhiChu.Text; if (dgrdDSGioVaoRa.SelectedRows.Count == 0) { return; } #region hỏi lại trước khi sửa if (MessageBox.Show(string.Format(Resources.Text_xacNhanSuaGioHangLoat, (radGioVao.Checked)?"vào":"ra", (radGioVao.Checked)?dtpVao.Value.ToString("H:mm"): dtpRaa.Value.ToString("H:mm")), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion try //general try catch { var flagThongBao = false; // flag thông báo không cho phép sửa giờ đã CN var arrRecord = (from DataGridViewRow dataGridViewRow in dgrdDSGioVaoRa.SelectedRows let row = (DataRowView)dataGridViewRow.DataBoundItem let nv = (cUserInfo)row["cUserInfo"] let cCheckInOut = (cCheckInOut)row["cCheckInOut"] let ngay = (DateTime)row["TimeStrNgay"] select new { nhanvien = nv, CIO = cCheckInOut, Ngay = ngay }).GroupBy(o => o.nhanvien).ToList(); var ds_raa3_vao1 = new List <cCheck>(); var DS_Check_KoHopLe = new List <cCheck>(); foreach (var group in arrRecord) { var nhanvien = group.Key; foreach (var item in group) { if (item.CIO.DaXN) // ko cho sửa các giờ đã xác nhận { flagThongBao = true; continue; } if (radGioVao.Checked) { if (item.CIO.HaveINOUT == -2) { continue; } var giovao = item.Ngay.Add(timespanGioVao); var checkinnold = item.CIO.Vao; var checkinnnew = new cCheck { MaCC = nhanvien.MaCC, Type = "I", Time = giovao, Source = "PC", MachineNo = 21, PhucHoi = new cPhucHoi { IDGioGoc = int.MaxValue, Them = checkinnold.PhucHoi.Them, Xoaa = checkinnold.PhucHoi.Xoaa } }; XL.SuaGioChoNV(nhanvien.MaCC, checkinnold, checkinnnew, nhanvien.DS_Check_A, lydo, ghichu); } else { if (item.CIO.HaveINOUT == -1) { continue; } var gioraa = item.Ngay.Add(timespanGioRaa); var checkoutold = item.CIO.Raa; var checkoutnew = new cCheck { MaCC = nhanvien.MaCC, Type = "O", Time = gioraa, Source = "PC", MachineNo = 22, PhucHoi = new cPhucHoi { IDGioGoc = int.MaxValue, Them = checkoutold.PhucHoi.Them, Xoaa = checkoutold.PhucHoi.Xoaa } }; XL.SuaGioChoNV(nhanvien.MaCC, checkoutold, checkoutnew, nhanvien.DS_Check_A, lydo, ghichu); } } XL.LoaiBoCheckKoHopLe1(nhanvien.DS_Check_A, ref DS_Check_KoHopLe); XL.GhepCIO_A2(nhanvien.DS_Check_A, nhanvien.DS_CIO_A); XL.XetCa_ListCIO_A3(nhanvien.DS_CIO_A, nhanvien.LichTrinhLV, ds_raa3_vao1, nhanvien.DS_Check_A); XL.TronDS_CIO_A_V5(nhanvien.DS_CIO_A, nhanvien.DS_CIO_V, nhanvien.DSVaoRa); XL.PhanPhoi_DSVaoRa6(nhanvien.DSVaoRa, nhanvien.DSNgayCong); XL.PhanPhoi_DSVang7(nhanvien.DSVang, nhanvien.DSNgayCong); XL.TinhCong_ListNgayCong8(nhanvien.DSNgayCong, nhanvien.StartNT, nhanvien.EndddNT); //ver 4.0.0.4 XL.TinhPCTC_TrongListXNPCTC9(nhanvien.DSXNPhuCap50, nhanvien.DSNgayCong); XL.TinhPCDB_TrongListXNPCDB10(nhanvien.DSXNPhuCapDB, nhanvien.DSNgayCong); XL.TinhPCNgayVang(nhanvien.DSVang, nhanvien.DSNgayCong); } if (DS_Check_KoHopLe.Count > 0) { DAO.LoaiGioLienQuan(DS_Check_KoHopLe); } if (ds_raa3_vao1.Count > 0) { DAO.ThemGio_ra3_vao1(ds_raa3_vao1); } loadGrid(); if (flagThongBao) { ACMessageBox.Show(Resources.Text_KoTheSuaXoaGioDaXN, Resources.Caption_ThongBao, 2000); } } catch (Exception ex) //general try catch { lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), ex); MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } }
private void btnThem_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } IsReload = true; #region lấy thông tin var timespanGioVao = dtpVao.Value.TimeOfDay; var timespanGioRaa = dtpRaa.Value.TimeOfDay; var lydo = (cbLyDo.SelectedItem != null) ? cbLyDo.SelectedItem.ToString() : cbLyDo.Text; var ghichu = tbGhiChu.Text; #endregion var tempstring = radGioVao.Checked ? "vào" : "ra"; var temptime = (radGioVao.Checked) ? dtpVao.Value : dtpRaa.Value; if (dgrdDSGioVaoRa.SelectedRows.Count == 0) { return; } #region hỏi lại trước khi thêm if (MessageBox.Show(string.Format(Resources.Text_xacNhanThemGioHangLoat, tempstring, temptime.ToString("H:mm")), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion try //general try catch { #region lấy ds các giờ vào ra, group lại theo từng nhân viên để thực hiện thêm 1 loạt rồi sau đó xử lý tính toán lại checkinout và ngày công var arrRecord = (from DataGridViewRow dataGridViewRow in dgrdDSGioVaoRa.SelectedRows let row = (DataRowView)dataGridViewRow.DataBoundItem let nv = (cUserInfo)(row["cUserInfo"]) let cCheckInOut = (cCheckInOut)(row["cCheckInOut"]) let ngay = (DateTime)(row["TimeStrNgay"]) select new { nhanvien = nv, CIO = cCheckInOut, Ngay = ngay }).GroupBy(o => o.nhanvien).ToList(); #endregion var ds_raa3_vao1 = new List <cCheck>(); var DS_Check_KoHopLe = new List <cCheck>(); foreach (var group in arrRecord) { var nhanvien = group.Key; foreach (var item in @group.Where(item => item.CIO.HaveINOUT != 0)) { if (radGioVao.Checked) //2. thêm I cho O kv { if (item.CIO.HaveINOUT == -2) { var giovao = item.Ngay.Add(timespanGioVao); if (giovao > item.CIO.Raa.Time) { giovao = giovao.AddDays(-1d); // trừ đi 1 ngày nếu (giờ vào thêm) > giờ ra } var checkinn = new cCheck { MaCC = item.nhanvien.MaCC, Type = "I", Time = giovao, Source = "PC", MachineNo = 21, PhucHoi = new cPhucHoi { Them = true, IDGioGoc = -1, Xoaa = false } }; XL.ThemGioChoNV(item.nhanvien.MaCC, checkinn, item.nhanvien.DS_Check_A, lydo, ghichu); } } else { if (item.CIO.HaveINOUT == -1) //3. thêm O cho I kr { var gioraa = item.Ngay.Add(timespanGioRaa); if (gioraa < item.CIO.Vao.Time) { gioraa = gioraa.AddDays(1d); // cộng thêm 1 ngày nếu (giờ vào thêm) > giờ ra } var checkout = new cCheck { MaCC = item.nhanvien.MaCC, Type = "O", Time = gioraa, Source = "PC", MachineNo = 22, PhucHoi = new cPhucHoi { Them = true, IDGioGoc = -1, Xoaa = false } }; XL.ThemGioChoNV(item.nhanvien.MaCC, checkout, item.nhanvien.DS_Check_A, lydo, ghichu); } } } XL.LoaiBoCheckKoHopLe1(nhanvien.DS_Check_A, ref DS_Check_KoHopLe); XL.GhepCIO_A2(nhanvien.DS_Check_A, nhanvien.DS_CIO_A); XL.XetCa_ListCIO_A3(nhanvien.DS_CIO_A, nhanvien.LichTrinhLV, ds_raa3_vao1, nhanvien.DS_Check_A); XL.TronDS_CIO_A_V5(nhanvien.DS_CIO_A, nhanvien.DS_CIO_V, nhanvien.DSVaoRa); XL.PhanPhoi_DSVaoRa6(nhanvien.DSVaoRa, nhanvien.DSNgayCong); XL.PhanPhoi_DSVang7(nhanvien.DSVang, nhanvien.DSNgayCong); XL.TinhCong_ListNgayCong8(nhanvien.DSNgayCong, nhanvien.StartNT, nhanvien.EndddNT); //ver 4.0.0.4 XL.TinhPCTC_TrongListXNPCTC9(nhanvien.DSXNPhuCap50, nhanvien.DSNgayCong); XL.TinhPCDB_TrongListXNPCDB10(nhanvien.DSXNPhuCapDB, nhanvien.DSNgayCong); XL.TinhPCNgayVang(nhanvien.DSVang, nhanvien.DSNgayCong); } if (DS_Check_KoHopLe.Count > 0) { DAO.LoaiGioLienQuan(DS_Check_KoHopLe); } if (ds_raa3_vao1.Count > 0) { DAO.ThemGio_ra3_vao1(ds_raa3_vao1); } loadGrid(); } catch (Exception ex) //general try catch { lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), ex); MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } }
private void btnChuyenDoi_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } IsReload = true; var row = (DataRowView)((dgrdGioKDQD.SelectedRows[0]).DataBoundItem); var checkold = (cCheck)row["cCheck"]; var CIO = (cCheckInOut)row["cCheckInOut"]; var VAO_to_RAA = (checkold.MachineNo % 2 == 1); var giocuu = checkold.Time; var lydo = (cbLyDo_Suaa.SelectedItem != null) ? cbLyDo_Suaa.SelectedItem.ToString() : cbLyDo_Suaa.SelectedText; var ghichu = tbGhiChu_Suaa.Text; #region thông báo ko cho chuyển đõi nếu đã xn if (CIO.DaXN) { MessageBox.Show(Resources.Text_GioDaXacnhanKhongTheThayDoi, Resources.Caption_ThongBao); return; } #endregion #region hỏi lại trước khi sửa //tbd if (CIO.HaveINOUT < 0 && MessageBox.Show(string.Format(Resources.Text_xacNhanChuyenDoiGioDonGian, VAO_to_RAA ? "vào" : "ra", giocuu.ToString("H:mm dddd d/M"), VAO_to_RAA ? "ra" : "vào", giocuu.ToString("H:mm dddd d/M"), nhanvien_goc.TenNV), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } if (CIO.HaveINOUT == 0 && MessageBox.Show(string.Format(Resources.Text_xacNhanChuyenDoiGioDonGian, VAO_to_RAA ? "vào" : "ra", giocuu.ToString("H:mm dddd d/M"), VAO_to_RAA ? "ra" : "vào", giocuu.ToString("H:mm dddd d/M"), nhanvien_goc.TenNV), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion var ds_raa3_vao1 = new List <cCheck>(); var DS_Check_KoHopLe = new List <cCheck>(); cCheck checknew = !VAO_to_RAA ? new cCheck { Type = "I", MaCC = nhanvien_goc.MaCC, IsEdited = 1, Time = giocuu, Source = "PC", MachineNo = 21, PhucHoi = new cPhucHoi { IDGioGoc = int.MaxValue, Them = checkold.PhucHoi.Them, Xoaa = checkold.PhucHoi.Xoaa } } : new cCheck { Type = "O", MaCC = nhanvien_goc.MaCC, IsEdited = 1, Time = giocuu, Source = "PC", MachineNo = 22, PhucHoi = new cPhucHoi { IDGioGoc = int.MaxValue, Them = checkold.PhucHoi.Them, Xoaa = checkold.PhucHoi.Xoaa } }; XL.SuaGioChoNV(nhanvien_goc.MaCC, checkold, checknew, nhanvien_goc.DS_Check_A, lydo, ghichu); XL.LoaiBoCheckKoHopLe1(nhanvien_goc.DS_Check_A, ref DS_Check_KoHopLe); XL.GhepCIO_A2(nhanvien_goc.DS_Check_A, out nhanvien_goc.DS_CIO_A); XL.XetCa_ListCIO_A3(nhanvien_goc.DS_CIO_A, nhanvien_goc.LichTrinhLV, ds_raa3_vao1, nhanvien_goc.DS_Check_A); //nhanvien_goc.MacDinhTinhPC50, //[140615_4] XL.TronDS_CIO_A_V5(nhanvien_goc.DS_CIO_A, nhanvien_goc.DS_CIO_V, out nhanvien_goc.DSVaoRa); XL.PhanPhoi_DSVaoRa6(nhanvien_goc.DSVaoRa, nhanvien_goc.DSNgayCong); XL.PhanPhoi_DSVang7(nhanvien_goc.DSVang, nhanvien_goc.DSNgayCong); XL.TinhCong_ListNgayCong8(nhanvien_goc.DSNgayCong); //ver 4.0.0.4 XL.TinhPCTC_TrongListXNPCTC9(nhanvien_goc.DSXNPhuCap50, nhanvien_goc.DSNgayCong); XL.TinhPCDB_TrongListXNPCDB10(nhanvien_goc.DSXNPhuCapDB, nhanvien_goc.DSNgayCong); if (DS_Check_KoHopLe.Count > 0) { DAO5.LoaiGioLienQuan(DS_Check_KoHopLe); } if (ds_raa3_vao1.Count > 0) { DAO5.ThemGio_ra3_vao1(ds_raa3_vao1); } loadGrid(); }
private void btnThem_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } IsReload = true; #region lấy thông tin từ màn hình var giovao = dtpVao_Them.Value.Add(XL2._01giay); var gioraa = dtpRaa_Them.Value; var lydo = (cbLyDo_Them.SelectedItem != null) ? cbLyDo_Them.SelectedItem.ToString() : cbLyDo_Them.SelectedText; var ghichu = tbGhichu_Them.Text; var UserEnrollNumber = nhanvien_goc.MaCC; var themVao = chkGioVao.Checked; var themRaa = chkGioRaa.Checked; var currentRow = ((DataRowView)dgrdGioKDQD.SelectedRows[0].DataBoundItem); var currentCIO = (currentRow["cCheckInOut"] != DBNull.Value) ? (cCheckInOut)currentRow["cCheckInOut"] : null; #endregion // Xét mục đích trước var dungMucDich = false; if (currentCIO != null) { if (currentCIO.HaveINOUT == -1 && themRaa) { if (gioraa - currentCIO.Vao.Time < TimeSpan.Zero || gioraa - currentCIO.Vao.Time > XL2._21h45) { dungMucDich = false; } else { dungMucDich = true; } } if (currentCIO.HaveINOUT == -2 && themVao) { if (currentCIO.Raa.Time - giovao < TimeSpan.Zero || currentCIO.Raa.Time - giovao > XL2._21h45) { dungMucDich = false; } else { dungMucDich = true; } } } if (chkGioVao.Checked) { #region hỏi lại trước khi thêm if (dungMucDich) { if (MessageBox.Show(string.Format(Resources.Text_xacNhanThemGioDonGian_dungmucdich, "vào", giovao.ToString("H:mm dddd d/M"), nhanvien_goc.TenNV), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } } else { if (MessageBox.Show(string.Format(Resources.Text_xacNhanThemGioDonGian_saimucdic, "vào", giovao.ToString("H:mm dddd d/M"), nhanvien_goc.TenNV), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } } #endregion var checkinn = new cCheck { IsEdited = 1, Type = "I", MachineNo = 21, Source = "PC", MaCC = UserEnrollNumber, Time = giovao, PhucHoi = new cPhucHoi { Them = true, IDGioGoc = -1, Xoaa = false } }; XL.ThemGioChoNV(nhanvien_goc.MaCC, checkinn, nhanvien_goc.DS_Check_A, lydo, ghichu); } if (chkGioRaa.Checked) { #region hỏi lại trước khi thêm if (dungMucDich) { if (MessageBox.Show(string.Format(Resources.Text_xacNhanThemGioDonGian_dungmucdich, "ra", gioraa.ToString("H:mm dddd d/M"), nhanvien_goc.TenNV), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } } else { if (MessageBox.Show(string.Format(Resources.Text_xacNhanThemGioDonGian_saimucdic, "ra", gioraa.ToString("H:mm dddd d/M"), nhanvien_goc.TenNV), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } } #endregion var checkout = new cCheck { IsEdited = 1, Type = "O", MachineNo = 22, Source = "PC", MaCC = UserEnrollNumber, Time = gioraa, PhucHoi = new cPhucHoi { Them = true, IDGioGoc = -1, Xoaa = false } }; XL.ThemGioChoNV(nhanvien_goc.MaCC, checkout, nhanvien_goc.DS_Check_A, lydo, ghichu); } var ds_raa3_vao1 = new List <cCheck>(); var DS_Check_KoHopLe = new List <cCheck>(); XL.LoaiBoCheckKoHopLe1(nhanvien_goc.DS_Check_A, ref DS_Check_KoHopLe); XL.GhepCIO_A2(nhanvien_goc.DS_Check_A, out nhanvien_goc.DS_CIO_A); XL.XetCa_ListCIO_A3(nhanvien_goc.DS_CIO_A, nhanvien_goc.LichTrinhLV, ds_raa3_vao1, nhanvien_goc.DS_Check_A); if (DS_Check_KoHopLe.Count > 0) { DS_Check_KoHopLe.AddRange(DS_Check_KoHopLe); } XL.TronDS_CIO_A_V5(nhanvien_goc.DS_CIO_A, nhanvien_goc.DS_CIO_V, out nhanvien_goc.DSVaoRa); XL.PhanPhoi_DSVaoRa6(nhanvien_goc.DSVaoRa, nhanvien_goc.DSNgayCong); XL.PhanPhoi_DSVang7(nhanvien_goc.DSVang, nhanvien_goc.DSNgayCong); XL.TinhCong_ListNgayCong8(nhanvien_goc.DSNgayCong); //ver 4.0.0.4 XL.TinhPCTC_TrongListXNPCTC9(nhanvien_goc.DSXNPhuCap50, nhanvien_goc.DSNgayCong); XL.TinhPCDB_TrongListXNPCDB10(nhanvien_goc.DSXNPhuCapDB, nhanvien_goc.DSNgayCong); if (DS_Check_KoHopLe.Count > 0) { DAO5.LoaiGioLienQuan(DS_Check_KoHopLe); } if (ds_raa3_vao1.Count > 0) { DAO5.ThemGio_ra3_vao1(ds_raa3_vao1); } loadGrid(); }
private void btnSuaa_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } IsReload = true; #region lấy thông tin từ màn hình var row = ((DataRowView)((dgrdGioKDQD.SelectedRows[0]).DataBoundItem)).Row; var CIO = (cCheckInOut)row["cCheckInOut"]; var checkold = (cCheck)row["cCheck"]; var suagiovao = (checkold.MachineNo % 2 == 1); var gioMoi = dtpGioMoi_Sua.Value; var lydo = (cbLyDo_Suaa.SelectedItem != null) ? cbLyDo_Suaa.SelectedItem.ToString() : cbLyDo_Suaa.Text; var ghichu = tbGhiChu_Suaa.Text; #endregion #region thông báo không cho sửa nếu là giờ đã xn if (CIO.DaXN) { MessageBox.Show(Resources.Text_GioDaXacnhanKhongTheThayDoi, Resources.Caption_ThongBao); return; } #endregion bool hoiLai = (gioMoi - checkold.Time).Duration() > XL2._04gio; #region hỏi lại trước khi sửa if (hoiLai == false && MessageBox.Show(string.Format(Resources.Text_xacNhanSuaGioDonGian_dungmucdich, suagiovao ? "vào" : "ra", checkold.Time.ToString("H:mm dddd d/M"), gioMoi.ToString("H:mm dddd d/M")), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } if (hoiLai && MessageBox.Show(string.Format(Resources.Text_xacNhanSuaGioDonGian_saimucdich, suagiovao ? "vào" : "ra", checkold.Time.ToString("H:mm dddd d/M"), gioMoi.ToString("H:mm dddd d/M"), nhanvien_goc.TenNV), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion var ds_raa3_vao1 = new List <cCheck>(); var DS_Check_KoHopLe = new List <cCheck>(); cCheck checknew = suagiovao ? new cCheck { Type = "I", MaCC = nhanvien_goc.MaCC, Time = gioMoi, Source = "PC", MachineNo = 21, PhucHoi = new cPhucHoi { IDGioGoc = int.MaxValue, Them = checkold.PhucHoi.Them, Xoaa = checkold.PhucHoi.Xoaa } } : new cCheck { Type = "O", MaCC = nhanvien_goc.MaCC, Time = gioMoi, Source = "PC", MachineNo = 22, PhucHoi = new cPhucHoi { IDGioGoc = int.MaxValue, Them = checkold.PhucHoi.Them, Xoaa = checkold.PhucHoi.Xoaa } }; XL.SuaGioChoNV(nhanvien_goc.MaCC, checkold, checknew, nhanvien_goc.DS_Check_A, lydo, ghichu); XL.LoaiBoCheckKoHopLe1(nhanvien_goc.DS_Check_A, ref DS_Check_KoHopLe); XL.GhepCIO_A2(nhanvien_goc.DS_Check_A, nhanvien_goc.DS_CIO_A); XL.XetCa_ListCIO_A3(nhanvien_goc.DS_CIO_A, nhanvien_goc.LichTrinhLV, ds_raa3_vao1, nhanvien_goc.DS_Check_A); //nhanvien_goc.MacDinhTinhPC50, //[140615_4] XL.TronDS_CIO_A_V5(nhanvien_goc.DS_CIO_A, nhanvien_goc.DS_CIO_V, nhanvien_goc.DSVaoRa); XL.PhanPhoi_DSVaoRa6(nhanvien_goc.DSVaoRa, nhanvien_goc.DSNgayCong); XL.PhanPhoi_DSVang7(nhanvien_goc.DSVang, nhanvien_goc.DSNgayCong); XL.TinhCong_ListNgayCong8(nhanvien_goc.DSNgayCong, nhanvien_goc.StartNT, nhanvien_goc.EndddNT); //ver 4.0.0.4 XL.TinhPCTC_TrongListXNPCTC9(nhanvien_goc.DSXNPhuCap50, nhanvien_goc.DSNgayCong); XL.TinhPCDB_TrongListXNPCDB10(nhanvien_goc.DSXNPhuCapDB, nhanvien_goc.DSNgayCong); XL.TinhPCNgayVang(nhanvien_goc.DSVang, nhanvien_goc.DSNgayCong); if (DS_Check_KoHopLe.Count > 0) { DAO.LoaiGioLienQuan(DS_Check_KoHopLe); } if (ds_raa3_vao1.Count > 0) { DAO.ThemGio_ra3_vao1(ds_raa3_vao1); } loadGrid(); }
public void XetCa_ListCIO_A3_V6(List <cCheckInOut> ds_CIO_A, List <cCa> DSCa) { try { var i = 0; while (i < ds_CIO_A.Count) { var CIO = ds_CIO_A[i]; #region nếu giờ quên check thì chỉ kiểm tra khoảng hiểu ca if (CIO.CheckVT != TrangThaiCheck.CheckDayDu) { CIO.ThuocNgayCong = ThuocNgayCong(CIO.TimeDaiDien); Tim_DSCa_NhanDienDuoc(CIO.TimeDaiDien, CIO.ThuocNgayCong, CIO.CheckVT, DSCa, out CIO.DSCaNhanDien); i++; continue; } #endregion var ngay = ThuocNgayCong(CIO.TimeDaiDien); CIO.ThuocNgayCong = ngay; bool namTrongDSCa; cCa caNhanDien; KiemtraThuocCa(CIO.Vao.Time, CIO.Raa.Time, CIO.ThuocNgayCong, DSCa, out namTrongDSCa, out caNhanDien); #region nếu thuộc khoảng hiểu ca thì set ca if (namTrongDSCa && caNhanDien.TachCaDem == false) // ko phải ca 3 và 1 { CIO.ThuocCa = caNhanDien; i++; } else if (namTrongDSCa == false) // ko thuộc ca nào -> ca tự do { cCa caTuDo; TaoCaTuDo(int.MinValue, CIO.Vao.Time, out caTuDo); CIO.ThuocCa = caTuDo; i++; } else // trúng ca 3 và 1 thì tách ra 2 ca { #region check inn, check out vao 3 ra 3, vao 1 ra 1 var vaoca3 = CIO.Vao; var raaca3 = new cCheck { Type = "O", MachineNo = 22, Source = "PC", MaCC = CIO.Vao.MaCC, TypeColumn = "O", Time = ngay.Add(GlobalVariables._22h00) }; var vaoca1 = new cCheck { Type = "I", MachineNo = 21, Source = "PC", MaCC = CIO.Raa.MaCC, TypeColumn = "I", Time = ngay.Date.Add(GlobalVariables._6gHomSau).Add(GlobalVariables._01giay), //todo lưu ý ở đây cộng thêm 1 ngày, 1 giây để ko bị trùng check cùng giờ 2 máy }; var raaca1 = CIO.Raa; #endregion bool thuocDSCa3, thuocDSCa1; cCa thuocCa3, thuocCa1, caTuDo3, caTuDo1; ds_CIO_A[i] = new cCheckInOut { Vao = vaoca3, Raa = raaca3, ThuocNgayCong = ngay, TimeDaiDien = vaoca3.Time, }; KiemtraThuocCa(vaoca3.Time, raaca3.Time, ds_CIO_A[i].ThuocNgayCong, DSCa, out thuocDSCa3, out thuocCa3); if (thuocDSCa3) { ds_CIO_A[i].ThuocCa = thuocCa3; } else { TaoCaTuDo(int.MinValue, ds_CIO_A[i].Vao.Time, out caTuDo3); ds_CIO_A[i].ThuocCa = caTuDo3; } var newCIO = new cCheckInOut { Vao = vaoca1, Raa = raaca1, ThuocNgayCong = ngay.AddDays(1d), TimeDaiDien = vaoca1.Time, }; KiemtraThuocCa(vaoca1.Time, raaca1.Time, newCIO.ThuocNgayCong, DSCa, out thuocDSCa1, out thuocCa1); if (thuocDSCa1) { newCIO.ThuocCa = thuocCa1; } else { TaoCaTuDo(int.MinValue, newCIO.Vao.Time, out caTuDo1); newCIO.ThuocCa = caTuDo1; } // vì hàm insert ko cho phép chèn ở vị trí > số lượng phần tử // => nên nếu i là phần tử cuối thì add vào cuối danh sách, ngược lại thì insert vào vị trí i+1 if (i == (ds_CIO_A.Count - 1)) { ds_CIO_A.Add(newCIO); } else { ds_CIO_A.Insert(i + 1, newCIO); } i = i + 2; // +2 vì i là ca3, i+1 là ca 1 } #endregion } } catch (Exception e) { //lg.Error(string.Format("[{0}]_[{1}]\n", "XLChamCong", System.Reflection.MethodBase.GetCurrentMethod().Name), e); } }