public static void TinhPCTC_CuaNgay(cNgayCong ngayCong, bool choPhepTinhTC) { ngayCong.TinhPC50 = choPhepTinhTC; Tinh_PCTC5(choPhepTinhTC, ngayCong.QuaDem, ngayCong.TG5.TongGioLamDem, ngayCong.TG5.TongGioTangCuong, ngayCong.TG5.HuongPC_Dem, ngayCong.TG5.HuongPC_TangCuongNgay, ngayCong.TG5.HuongPC_TangCuongDem, out ngayCong.PhuCaps._30_dem, out ngayCong.PhuCaps._50_TC, out ngayCong.PhuCaps._100_TCC3, out ngayCong.PhuCaps._TongPC); }
private void LoadGroup_Suaa(cNgayCong ngayCong, cChk check) { if (check == null) { BUS.MyUtility.EnableDisableControl(false, new Control[] { btnSuaa, btnChuyenDoi, radVao, radRaa, dtpGioMoi_Sua }); // ko tồn tại giờ cũ nên ko cho sửa, chuyển đổi BUS.MyUtility.ClearControlText(new Control[] { tbGioCu_Suaa, tbGhiChu_Suaa }); cbCa_Suaa.DataSource = null; } 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"); radVao.Checked = (check.MachineNo % 2 == 1); radRaa.Checked = (check.MachineNo % 2 == 0); var dataSource_DSCa = new List <cCaAbs>(dsCa); if (cbCa_Suaa.DataSource == null) { cbCa_Suaa.ValueMember = "ID"; cbCa_Suaa.DisplayMember = "Code"; cbCa_Suaa.DataSource = dataSource_DSCa; } dtpGioMoi_Sua.Value = new DateTime(ngayCong.Ngay.Year, ngayCong.Ngay.Month, ngayCong.Ngay.Day, 0, 0, 1); cbLyDo_Suaa.SelectedIndex = 0; tbGhiChu_Suaa.Text = string.Empty; //tồn tại giờ cũ nên cho phép sửa BUS.MyUtility.EnableDisableControl(true, new Control[] { btnSuaa, btnChuyenDoi, radVao, radRaa, dtpGioMoi_Sua }); } }
public static void TinhPCTC_CuaNgay(cNgayCong ngayCong, List <structPCTC> DSXNPhuCap50) { var IndexngayTinhLaiPCTC1 = DSXNPhuCap50.FindIndex(item => item.Ngay == ngayCong.Ngay); var kq1 = (IndexngayTinhLaiPCTC1 >= 0) && (DSXNPhuCap50[IndexngayTinhLaiPCTC1].TinhPC50); TinhPCTC_CuaNgay(ngayCong, kq1); }
public static void HuyBo_TinhPCDB(cUserInfo nhanvien, cNgayCong ngayCong, List <structPCDB> dsxnPhuCapDb) { var cTemp = dsxnPhuCapDb.FindIndex(item => item.Ngay == ngayCong.Ngay); if (cTemp < 0) { } else { var n1 = DAO5.DeleteTinhPCDB(nhanvien.MaCC, ngayCong.Ngay); //info đã log dsxnPhuCapDb.Remove(dsxnPhuCapDb[cTemp]); ngayCong.TinhPCDB = false; ngayCong.PhuCaps._100_LVNN_Ngay = 0f; ngayCong.PhuCaps._150_LVNN_Dem = 0f; ngayCong.PhuCaps._200_LeTet_Ngay = 0f; ngayCong.PhuCaps._250_LeTet_Dem = 0f; ngayCong.PhuCaps._Cus = 0f; ngayCong.PhuCaps._TongPC = 0f; ngayCong.TG.Tinh200 = TimeSpan.Zero; ngayCong.TG.Tinh260 = TimeSpan.Zero; ngayCong.TG.Tinh300 = TimeSpan.Zero; ngayCong.TG.Tinh390 = TimeSpan.Zero; ngayCong.TG.TinhPCCus = TimeSpan.Zero; TinhPCTC_CuaNgay(ngayCong, nhanvien.DSXNPhuCap50); } }
public static void TinhPCDB_CuaNgay(cNgayCong ngayCong, int loaiPCDB, float PCNgay, float PCDem) { ngayCong.TinhPCDB = true; ngayCong.LoaiPCDB = loaiPCDB; TinhPCDB(ngayCong.TinhPCDB, ngayCong.TG.GioLamViec5, ngayCong.TG.LamBanDem, ngayCong.QuaDem, ngayCong.LoaiPCDB, PCNgay, PCDem, //tbd out ngayCong.TG.Tinh200, out ngayCong.TG.Tinh260, out ngayCong.TG.Tinh300, out ngayCong.TG.Tinh390, out ngayCong.TG.TinhPCCus, out ngayCong.PhuCaps._100_LVNN_Ngay, out ngayCong.PhuCaps._150_LVNN_Dem, out ngayCong.PhuCaps._200_LeTet_Ngay, out ngayCong.PhuCaps._250_LeTet_Dem, out ngayCong.PhuCaps._Cus, ref ngayCong.PhuCaps._TongPC); }
public static void TinhCong_HangNgay(cNgayCong ngayCong, TimeSpan startNT, TimeSpan endddNT, out ThoiGian TG, out PhuCap PhuCaps, out float TongCong, out float TongNgayLV, out bool QuaDem) { TG = new ThoiGian(); PhuCaps = new PhuCap(); TongCong = 0f; TongNgayLV = 0f; //ver4.0.0.1 QuaDem = false; }
public static void TinhPCDB_CuaNgay(cNgayCong ngayCong, List <structPCDB> DSXNPCDB) { var ngayTinhLaiPCDB = DSXNPCDB.FindIndex(item => item.Ngay == ngayCong.Ngay); if (ngayTinhLaiPCDB >= 0) { TinhPCDB_CuaNgay(ngayCong, DSXNPCDB[ngayTinhLaiPCDB].LoaiPC, DSXNPCDB[ngayTinhLaiPCDB].PCNgay, DSXNPCDB[ngayTinhLaiPCDB].PCDem); } }
private void LapDSNgayCongDeXuLy(int MaCC, FromToDateTime KhoangTG, out List <cNgayCong> DSNgayDaCC) { DSNgayDaCC = new List <cNgayCong>(); for (DateTime i = KhoangTG.From; i <= KhoangTG.To; i = i.Add(GlobalVariables._1ngay)) { cNgayCong ngayCong = new cNgayCong { Ngay = i, MaCC = MaCC }; //ngayCong.DSVaoRa = (from cCheckInOut_DaCC item in DS_CIO_DaCC where item.Ngay == ngayCong.Ngay select item).ToList(); DSNgayDaCC.Add(ngayCong); } }
private void frm_ThongTinThemGio_Load(object sender, EventArgs e) { // 1. lấy thông tin nhân viên, fill thông tin vào 2 tb mã và tên nv nhanvien_goc = selectedRow["cUserInfo"] as cUserInfo; NgayCong_goc = selectedRow["cNgayCong"] as cNgayCong; tbMaCC.Text = nhanvien_goc.MaNV; tbTenNV.Text = nhanvien_goc.TenNV; // // .triển khai load datagrid, trong khi load datagrid cũng đồng thời triển khai load dataSource cho các combobox loadGrid(); }
private static void ThongKeNgay(ref ThongKeCong_PC thongKeThang, cNgayCong ngayCong) { thongKeThang.Cong += ngayCong.TongCong; thongKeThang.TongNgayLV += ngayCong.TongNgayLV;//ver4.0.0.1 thongKeThang.PhuCaps._TongPC += ngayCong.PhuCaps._TongPC; thongKeThang.PhuCaps._30_dem += ngayCong.PhuCaps._30_dem; thongKeThang.PhuCaps._50_TC += ngayCong.PhuCaps._50_TC; thongKeThang.PhuCaps._100_TCC3 += ngayCong.PhuCaps._100_TCC3; thongKeThang.PhuCaps._100_LVNN_Ngay += ngayCong.PhuCaps._100_LVNN_Ngay; thongKeThang.PhuCaps._150_LVNN_Dem += ngayCong.PhuCaps._150_LVNN_Dem; thongKeThang.PhuCaps._200_LeTet_Ngay += ngayCong.PhuCaps._200_LeTet_Ngay; thongKeThang.PhuCaps._250_LeTet_Dem += ngayCong.PhuCaps._250_LeTet_Dem; thongKeThang.PhuCaps._Cus += ngayCong.PhuCaps._Cus; thongKeThang.NgayQuaDem += (ngayCong.QuaDem) ? 1 : 0; foreach (var xpVang in ngayCong.DSVang) { var WorkingDay = xpVang.WorkingDay; switch (xpVang.MaLV_Code) { case "L": thongKeThang.Le = thongKeThang.Le + WorkingDay; break; case "P": thongKeThang.Phep = thongKeThang.Phep + WorkingDay; break; case "CV": thongKeThang.CongCV_KB = thongKeThang.CongCV_KB + WorkingDay; // tính trước công chờ việc khai báo, tính công chờ việc tự động sau break; case "BH": case "TS": case "BD": //info new version thongKeThang.BHXH = thongKeThang.BHXH + WorkingDay; break; case "H": case "CT": case "PT": thongKeThang.H_CT_PT = thongKeThang.H_CT_PT + WorkingDay; break; case "PD": thongKeThang.PTDT = thongKeThang.PTDT + WorkingDay; //DANGLAM break; case "RO": thongKeThang.NghiRo = thongKeThang.NghiRo + WorkingDay; break; } } }
public static void LoadNgayCong(int macc, List <cNgayCong> dsNgayCong, DateTime indexNgay, DataTable tableKetcongNgay, DataTable tableKetcongCa) { cNgayCong ngayCong = new cNgayCong { DSVang = new List <cLoaiVang>(), DSVaoRa = new List <cCheckInOut>(), Ngay = indexNgay, PhuCaps = new PhuCap(), TG = new ThoiGian() }; //load ket cong ngay foreach (DataRow row in tableKetcongNgay.Rows.Cast <DataRow>() .Where(o => ((int)o["UserEnrollNumber"]) == macc && ((DateTime)o["Ngay"]) == indexNgay)) { //v9 xem lai them cac truong khac cua ngaycong //1.isEdit, next, prev, trangthaidiemdanh ko su dung //info ko can loaipcdb, tinhpc50,tinhpcdb, vi đã tính rồi ngayCong.Ngay = (DateTime)row["Ngay"]; ngayCong.TongCong_4008 = (float)row["TongCong"]; //ngayCong.TongNgayLV = (row["TongNgayLV"] != DBNull.Value) ? (float)row["TongNgayLV"] : 0f;//ver4.0.0.1 ngayCong.CongDinhMucDuoi8Tieng = (float)row["CongDinhMucDuoi8Tieng"]; //ver 4.0.0.8 ngayCong.CongTichLuy = (float)row["CongTichLuy"]; //ver 4.0.0.8 ngayCong.TruCongTreVR = (float)row["TruCongTreVR"]; //ver 4.0.0.8 ngayCong.TruCongSomVR = (float)row["TruCongSomVR"]; //ver 4.0.0.8 ngayCong.TruCongTreBu = (float)row["TruCongTreBu"]; //ver 4.0.0.8 ngayCong.TruCongSomBu = (float)row["TruCongSomBu"]; //ver 4.0.0.8 ngayCong.CongBuPhepTre = (float)row["CongBuPhepTre"]; //ver 4.0.0.8 ngayCong.CongBuPhepSom = (float)row["CongBuPhepSom"]; //ver 4.0.0.8 ngayCong.PhuCaps = new PhuCap { _TongPC = (float)row["TongPC"], _30_dem = (float)row["PCDem"], _50_TC = (float)row["PCTangCuong"], _100_TCC3 = (float)row["PCTangCuong_Dem"], _100_LVNN_Ngay = (float)row["PC200"], _150_LVNN_Dem = (float)row["PC260"], _200_LeTet_Ngay = (float)row["PC300"], _250_LeTet_Dem = (float)row["PC390"], _Cus = (float)row["PCCus"] }; ngayCong.QuaDem = (bool)row["IsOverNight"]; ngayCong.TG = new ThoiGian { GioLamViec = (TimeSpan)row["TGLamViec"], LamThem = (TimeSpan)row["TGLamThem"], LamBanDem = (TimeSpan)row["TGLamDem"], GioThuc = (TimeSpan)row["TGThuc"], //info xem lai cac truong khac cua ngayCong.TG, vào trễ? ra sớm?--> do CIO lưu }; ngayCong.DSVang = new List <cLoaiVang>(); //info danh sách vắng load ở hàm xử lý sau ngayCong.DSVaoRa = new List <cCheckInOut>(); LoadDSVaoRa(macc, indexNgay, ngayCong.DSVaoRa, tableKetcongCa); } dsNgayCong.Add(ngayCong); }
private void XemCong2(List <cUserInfo> DSNV, FromToDateTime KhoangTG) { List <int> arrayUEN = (from cUserInfo item in DSNV select item.MaCC).ToList(); DataTable tableArrayUEN = MyUtility.Array_To_DataTable("tableName", arrayUEN); List <cCheckInOut_DaCC> DS_CIO_DaCC; List <cXacNhanPhuCapNgay> DS_XN_PC_Ngay; List <cKhaiBaoVang> DS_KhaiBaoVang; List <DateTime> DS_NgayLe; DAL_CheckInCheckOut dal = new DAL_CheckInCheckOut(); dal.GetCIOData(tableArrayUEN, KhoangTG, out DS_CIO_DaCC); dal.GetXacNhanPhuCapNgayData(tableArrayUEN, KhoangTG, out DS_XN_PC_Ngay); dal.GetNgayVangData(tableArrayUEN, KhoangTG, out DS_KhaiBaoVang); dal.GetNgayLeData(KhoangTG, out DS_NgayLe); foreach (cUserInfo nhanvien in DSNV) { int maCC = nhanvien.MaCC; LapDSNgayCongDeXuLy(maCC, KhoangTG, out nhanvien.DSNgayDaCC); foreach (cXacNhanPhuCapNgay xacNhanPhuCapNgay in DS_XN_PC_Ngay) { cNgayCong ngayCoPhuCap = nhanvien.DSNgayDaCC.Single(item => item.Ngay == xacNhanPhuCapNgay.Ngay); ngayCoPhuCap.SetXacNhanPhuCap(xacNhanPhuCapNgay.DuocTinhPCTC, xacNhanPhuCapNgay.DuocTinhPCNgayNghi, xacNhanPhuCapNgay.DuocTinhPCNgayLe, xacNhanPhuCapNgay.DuocTinhPCThuCong, xacNhanPhuCapNgay.PhuCapTay); //ngayCoPhuCap.TinhLaiPhuCap(); } foreach (cKhaiBaoVang khaiBaoVang in DS_KhaiBaoVang) { cNgayCong ngayCoKBVang = nhanvien.DSNgayDaCC.Single(item => item.Ngay == khaiBaoVang.Ngay); ngayCoKBVang.DSVang.Add(khaiBaoVang); } foreach (DateTime ngayLe in DS_NgayLe) { cNgayCong ngayDuocChamCongLe = nhanvien.DSNgayDaCC.Single(item => item.Ngay == ngayLe); ngayDuocChamCongLe.IsHoliday = true; } foreach (cNgayCong ngayCong in nhanvien.DSNgayDaCC) { DateTime ngay = ngayCong.Ngay; foreach (cCheckInOut_DaCC CIO_DaCC in DS_CIO_DaCC.Where(item => item.Ngay == ngay && item.MaCC == maCC)) { ngayCong.Them_CheckInOut_DaCC(CIO_DaCC); } ngayCong.TinhLaiPhuCap(); } } }
public static void LoadNgayLe(List <cNgayCong> dsNgayCong, DataTable tableNgayLe) { foreach (DataRow row in tableNgayLe.Rows.Cast <DataRow>()) { cLoaiVang vangLe = new cLoaiVang { MaLV_Code = "L", MoTa = "Lễ, tết", Ngay = (DateTime)row["HDate"], WorkingDay = 1f }; cNgayCong ngayCong = dsNgayCong.Find(o => o.Ngay == vangLe.Ngay); ngayCong.DSVang.Add(vangLe); } }
private DataRow CreateDataRow_CIO_ThieuChamCong(DataTable dataTable, cUserInfo Nhanvien, cNgayCong NgayCong, cCheckInOut CIO) { DataRow kq = dataTable.NewRow(); kq["UserEnrollNumber"] = Nhanvien.MaCC; kq["UserFullName"] = Nhanvien.TenNV; kq["UserFullCode"] = Nhanvien.MaNV; kq["Ngay"] = NgayCong.Ngay; kq["GioVao"] = CIO.Vao != null ? CIO.Vao.Time : (object)DBNull.Value; kq["GioRa"] = CIO.Raa != null ? CIO.Raa.Time : (object)DBNull.Value; kq["DSCa"] = CIO.ExportKyHieuThuocCa1_5(true).XoaKyTuPhanCachDauTien(); kq["cCheckInOut"] = CIO; kq["cUserInfo"] = Nhanvien; kq["cNgayCong"] = NgayCong; return(kq); }
private void frm_ThongTinThemGio_Load(object sender, EventArgs e) { // 1. lấy thông tin nhân viên, fill thông tin vào 2 tb mã và tên nv nhanvien_goc = selectedRow["cUserInfo"] as cUserInfo; NgayCong_goc = selectedRow["cNgayCong"] as cNgayCong; tbMaCC.Text = nhanvien_goc.MaNV; tbTenNV.Text = nhanvien_goc.TenNV; //tạo dsCa gốc cho toàn form, combobox nào muốn sử dụng lại thì tạo mới từ cái gốc này và thay đổi tùy ý để giữ cái này làm gốc ko bị thay đổi dsCa = new List <cCaAbs>(nhanvien_goc.LichTrinhLV.DSCa);; dsCa.Insert(0, new cCaChuan { ID = -1, Code = "--" }); // // .triển khai load datagrid, trong khi load datagrid cũng đồng thời triển khai load dataSource cho các combobox loadGrid(); }
public static void LoadDSXPVang(int macc, List <cNgayCong> dsNgayCong, DataTable tableXpVang) { foreach (DataRow row in tableXpVang.Rows.Cast <DataRow>() .Where(o => ((int)o["UserEnrollNumber"] == macc)) ) { cLoaiVang xpVang = new cLoaiVang { MaLV_Code = row["AbsentCode"].ToString(), MoTa = row["AbsentDescription"].ToString(), Ngay = (DateTime)row["TimeDate"], WorkingDay = (float)row["Workingday"], }; cNgayCong ngayCong = dsNgayCong.Find(o => o.Ngay == xpVang.Ngay); if (ngayCong != null) { ngayCong.DSVang.Add(xpVang); } } }
private void toolTipController1_GetActiveObjectInfo(object sender, DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventArgs e) { if (e.SelectedControl != gridControl1) { return; } ToolTipControlInfo info = null; //Get the view at the current mouse position GridView view = gridControl1.GetViewAt(e.ControlMousePosition) as GridView; if (view == null) { return; } //Get the view's element information that resides at the current position GridHitInfo hi = view.CalcHitInfo(e.ControlMousePosition); //Display a hint for row indicator cells if (hi.HitTest == GridHitTest.RowCell) { //An object that uniquely identifies a row indicator cell DataRow dataRow = view.GetDataRow(hi.RowHandle); cNgayCong ngayCong = (cNgayCong)dataRow["cNgayCong"]; if (ngayCong == null) { return; } string text = XL.TaoTooltip5(ngayCong); object o = hi.HitTest.ToString() + hi.RowHandle.ToString(); //string text = "Row " + hi.RowHandle.ToString(); info = new ToolTipControlInfo(o, text); } //Supply tooltip information if applicable, otherwise preserve default tooltip (if any) if (info != null) { e.Info = info; } }
private void loadRow(cUserInfo nhanvien_goc, cNgayCong ngayCong) { if (ngayCong == null || ngayCong.DSVaoRa.Count == 0) { return; } foreach (var CIO in ngayCong.DSVaoRa) { var row = m_Bang_ChiTiet.NewRow(); row["UserEnrollNumber"] = nhanvien_goc.MaCC; row["UserFullName"] = nhanvien_goc.TenNV; row["UserFullCode"] = nhanvien_goc.MaNV; row["TimeStrNgay"] = ngayCong.Ngay; row["TimeStrVao"] = (CIO.Vao != null) ? CIO.Vao.Time : (object)DBNull.Value; row["TimeStrRaa"] = (CIO.Raa != null) ? CIO.Raa.Time : (object)DBNull.Value; row["ShiftCode"] = CIO.CIOCodeFull(); row["cUserInfo"] = nhanvien_goc; row["cCheckInOut"] = CIO; row["cNgayCong"] = ngayCong; m_Bang_ChiTiet.Rows.Add(row); } }
public static void TinhPCDB(cUserInfo nhanvien, cNgayCong ngayCong, DateTime ngay, int loai, int pcBanNgay, int pcBanDem, string noidungLog) { var n1 = DAO5.UpdIns_TinhPCDB(nhanvien.MaCC, ngay, loai, pcBanNgay, pcBanDem, noidungLog); var index = nhanvien.DSXNPhuCapDB.FindIndex(o => o.Ngay == ngay); if (index < 0) // chưa có --> tạo mới trong DSXNPhuCapDB { var structpc = new structPCDB { LoaiPC = loai, PCNgay = pcBanNgay, PCDem = pcBanDem, Ngay = ngay, Duyet = true }; nhanvien.DSXNPhuCapDB.Add(structpc); nhanvien.DSXNPhuCapDB.Sort(new cTempComparer()); } else // đã có --> update trong DSXNPhuCapDB { nhanvien.DSXNPhuCapDB[index] = new structPCDB { LoaiPC = loai, PCNgay = pcBanNgay, PCDem = pcBanDem, Ngay = ngay, Duyet = true }; } // sau khi thực hiện trong DSXNPhuCapDB xong thì tính phụ cấp cho ngày ngày TinhPCDB_CuaNgay(ngayCong, loai, pcBanNgay, pcBanDem); }
public static string TaoTooltip5(cNgayCong ngayCong) { if (ngayCong == null) { return(string.Empty); } //string kq = "{0}\n{1}\n{2}\n{3}\n{4}\n{5}"; string template = "{0}\n{1}\n{2}"; string kq = string.Empty; string vaoRaHomTruoc = string.Empty, vaoRaHomNay = string.Empty, vaoRaHomSau = string.Empty; if (ngayCong.prev != null) { vaoRaHomTruoc = ngayCong.prev.ExportString5(); } vaoRaHomNay = ngayCong.ExportString5(); if (ngayCong.next != null) { vaoRaHomSau = ngayCong.next.ExportString5(); } kq = string.Format(template, vaoRaHomTruoc, vaoRaHomNay, vaoRaHomSau); return(kq); }
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 void XuatTableXemCong_AddNewRow(DataRow dataRow, cUserInfo nhanVien, cNgayCong ngayCong, ref int SoTH_ThieuCC, ref int SoTH_TreSom, ref int SoTH_ChoPhepTreSom) { foreach (var checkInOutDaCc in ngayCong.DSVaoRa) { if (checkInOutDaCc.CheckVT != TrangThaiCheck.CheckDayDu) { SoTH_ThieuCC++; } if ((checkInOutDaCc.ChoPhepTre == false && checkInOutDaCc.Tre > TimeSpan.Zero) || (checkInOutDaCc.ChoPhepSom == false && checkInOutDaCc.Som > TimeSpan.Zero)) { SoTH_TreSom++; } if (checkInOutDaCc.ChoPhepTre || checkInOutDaCc.ChoPhepSom) { SoTH_ChoPhepTreSom++; } } dataRow[f2.UserEnrollNumber.ToString()] = nhanVien.MaCC; dataRow[f2.UserFullName.ToString()] = nhanVien.TenNV; dataRow[f2.UserFullCode.ToString()] = nhanVien.MaNV; dataRow[f2.Ngay.ToString()] = ngayCong.Ngay; dataRow[f2.KyHieuCa.ToString()] = ngayCong.KyHieuCa_1Ngay; //todo dataRow[f2.KyHieuVang.ToString()] = ngayCong.KyHieuVang_1Ngay; //todo dataRow[f2.TongCong.ToString()] = ngayCong.TongCong; //todo dataRow[f2.TongPhuCap.ToString()] = ngayCong.TongPhuCap; dataRow[f2.TongGioLamViec.ToString()] = ngayCong.LamViec; dataRow[f2.TongGioHienDien.ToString()] = ngayCong.HienDien; //todo dataRow[f2.TongPhutTreSom.ToString()] = ngayCong.Tre + ngayCong.Som; dataRow[f2.TongPhutTre.ToString()] = ngayCong.Tre; dataRow[f2.TongPhutSom.ToString()] = ngayCong.Som; dataRow[f2.TongGioLamDem.ToString()] = ngayCong.LamDem; dataRow[f2.TongGioLamThem.ToString()] = ngayCong.LamThem; }
private void btnSuaGio_Click(object sender, EventArgs e) { DataRowView row = dgrdTongHop.Tag as DataRowView; if (row == null) { return; } cUserInfo tmpNV = flstDSNVChk.Find(o => o.UserEnrollNumber == (int)row["UserEnrollNumber"]); DateTime tmpOldVao = (row["TimeStrVao"] != DBNull.Value) ? (DateTime)row["TimeStrVao"] : DateTime.MinValue; DateTime tmpOldRaa = (row["TimeStrRa"] != DBNull.Value) ? (DateTime)row["TimeStrRa"] : DateTime.MinValue; DateTime tmpNgayCong = (DateTime)row["TimeStrNgay"]; cNgayCong ngayCong = tmpNV.DSNgayCong.Find(o => o.NgayCong == tmpNgayCong); cChkInOut old_CIO; if (ngayCong.HasCheck == false || (tmpOldVao == DateTime.MinValue && tmpOldRaa == DateTime.MinValue)) { old_CIO = null; } else if (tmpOldVao == DateTime.MinValue) { old_CIO = ngayCong.DSVaoRa.Find(o => o.HaveINOUT < 0 && o.Raa.TimeStr == tmpOldRaa); } else if (tmpOldRaa == DateTime.MinValue) { old_CIO = ngayCong.DSVaoRa.Find(o => o.HaveINOUT < 0 && o.Vao.TimeStr == tmpOldVao); } else { old_CIO = ngayCong.DSVaoRa.Find(o => o.HaveINOUT > 0 && o.Vao.TimeStr == tmpOldVao && o.Raa.TimeStr == tmpOldRaa); } if (old_CIO != null && old_CIO.DaXN == true) { MessageBox.Show("Không thể sửa giờ đã được xác nhận.", "Thông báo"); return; } string Lydo = string.Empty; if (string.IsNullOrEmpty(cbLyDo_Sua.Text) == false) { Lydo = cbLyDo_Sua.Text; } else if (cbLyDo_Sua.SelectedItem != null) { Lydo = (string)cbLyDo_Sua.SelectedItem; } if (checkVao_Sua.Checked) { dtpVao_Sua.Update(); cChk tmpCheck = tmpNV.ds_CheckAuto.Find(o => o.TimeStr == tmpOldVao && o.MachineNo % 2 == 1); if (XL.SuaGioChoNV(tmpNV.UserEnrollNumber, tmpCheck, dtpVao_Sua.Value, true, Lydo, tbGhiChu_Sua.Text) == false) { MessageBox.Show("Không sửa được giờ cho nhân viên. Vui lòng thử lại.", "Lỗi"); } } if (checkRa_Sua.Checked) { dtpRa_Sua.Update(); cChk tmpCheck = tmpNV.ds_CheckAuto.Find(o => o.TimeStr == tmpOldRaa && o.MachineNo % 2 == 0); if (XL.SuaGioChoNV(tmpNV.UserEnrollNumber, tmpCheck, dtpRa_Sua.Value, false, Lydo, tbGhiChu_Sua.Text) == false) { MessageBox.Show("Không sửa được giờ cho nhân viên. Vui lòng thử lại.", "Lỗi"); } } try { XL.XemCong(flstDSNVChk, fNgayBD, fNgayKT); loadTable(); } catch (Exception) { MessageBox.Show("Mất kết nối đến máy chủ. Vui lòng thử lại sau.", "Lỗi"); return; } GC.Collect(); }
private void btnDaoKieuChamCong_Click(object sender, EventArgs e) { dgrdTongHop.EndEdit(); DataTable table = (dgrdTongHop.DataSource) as DataTable; if (table == null) { return; } DataRow[] arrRecord = table.Select("check = true", "UserEnrollNumber asc"); if (arrRecord.Length == 0) { AutoClosingMessageBox.Show("Chưa chọn dòng dữ liệu thao tác.", "Thông báo", 2000); return; } bool flag = false; foreach (DataRow row in arrRecord) { // kiểm tra trước khi thực hiện if (row["TimeStrVao"] != DBNull.Value && row["TimeStrRa"] != DBNull.Value) { flag = true; continue; } cUserInfo tmpNV = flstDSNVChk.Find(item => item.UserEnrollNumber == (int)row["UserEnrollNumber"]); cNgayCong tmpNgay = tmpNV.DSNgayCong.Find(item => item.NgayCong == (DateTime)row["TimeStrNgay"]); DateTime tmpOldTime; cChk tmpChkOld; bool tmpIsCheckInOld; if (row["TimeStrVao"] != DBNull.Value) { tmpOldTime = (DateTime)row["TimeStrVao"]; tmpChkOld = tmpNV.ds_CheckAuto.Find(item => item.TimeStr == tmpOldTime && item.GetType() == typeof(cChkIn)); tmpIsCheckInOld = true; } else { tmpOldTime = (DateTime)row["TimeStrRa"]; tmpChkOld = tmpNV.ds_CheckAuto.Find(item => item.TimeStr == tmpOldTime && item.GetType() == typeof(cChkOut)); tmpIsCheckInOld = false; } if (tmpChkOld == null) { MessageBox.Show("Không thể sửa giờ đã được xác nhận.", "Thông báo"); continue; } if (XL.SuaGioChoNV(tmpNV.UserEnrollNumber, tmpChkOld, tmpChkOld.TimeStr, !tmpIsCheckInOld, "Chấm nhầm máy", "Thay đổi Số máy check") == false) { MessageBox.Show("Không sửa được giờ cho nhân viên. Vui lòng thử lại.", "Lỗi"); break; } } if (flag) { AutoClosingMessageBox.Show("Không thể đảo ngược giờ có đủ giờ vào và giờ ra", "Thông báo", 2000); } try { XL.XemCong(flstDSNVChk, fNgayBD, fNgayKT); loadTable(); } catch (Exception) { MessageBox.Show("Mất kết nối đến máy chủ. Vui lòng thử lại sau.", "Lỗi"); } GC.Collect(); }
private void loadTable() { DataTable table = (dgrdTongHop.DataSource) as DataTable; if (table == null || table.Rows.Count != 0) { table = TaoCauTrucTableCTGioVaoRa(); } else { table.Rows.Clear(); } //[TBD] nhớ check null int lastRowIndex = (int)xemCT[0, 0]; for (int i = 1; i < lastRowIndex; i++) { int UserEnrollNumber = (int)xemCT[i, 1]; cUserInfo tmpNV = flstDSNVChk.Find(o => o.UserEnrollNumber == UserEnrollNumber); int slcot = (int)xemCT[i, 0]; int j = 2; while (j < slcot && xemCT[i, j] != null) { DateTime ngay = (DateTime)xemCT[i, j]; cNgayCong tmpNgayCong = tmpNV.DSNgayCong.Find(o => o.NgayCong.Date == ngay.Date); //DataRow row = table.NewRow(); #region neu ngày đó vắng => các giá trị null if (tmpNgayCong.HasCheck == false) { DataRow subrow = table.NewRow(); subrow["check"] = false; subrow["UserEnrollNumber"] = tmpNV.UserEnrollNumber; subrow["UserFullName"] = tmpNV.UserFullName; subrow["TimeStrNgay"] = subrow["TimeStrThu"] = tmpNgayCong.NgayCong; subrow["TimeStrVao"] = subrow["TimeStrRa"] = subrow["ShiftCode"] = subrow["ShiftID"] = DBNull.Value; table.Rows.Add(subrow); j++; continue; } #endregion #region nếu có check thì gán giá trị foreach (cChkInOut chkInOut in tmpNgayCong.DSVaoRa) { DataRow subrow = table.NewRow(); subrow["check"] = false; subrow["UserEnrollNumber"] = tmpNV.UserEnrollNumber; subrow["UserFullName"] = tmpNV.UserFullName; subrow["TimeStrNgay"] = subrow["TimeStrThu"] = tmpNgayCong.NgayCong; subrow["TimeStrVao"] = (chkInOut.Vao != null) ? chkInOut.Vao.TimeStr : (object)DBNull.Value; subrow["TimeStrRa"] = (chkInOut.Raa != null) ? chkInOut.Raa.TimeStr : (object)DBNull.Value; subrow["ShiftCode"] = (chkInOut.ThuocCa != null) ? chkInOut.ThuocCa.ShiftCode : (object)DBNull.Value; subrow["ShiftID"] = (chkInOut.ThuocCa != null) ? chkInOut.ThuocCa.ShiftID : (object)DBNull.Value; table.Rows.Add(subrow); } #endregion j++; } } dgrdTongHop.DataSource = table; dgrdTongHop.Select(); }
private void dgrdTongHop_RowEnter(object sender, DataGridViewCellEventArgs e) { DataTable tmpTable = (dgrdTongHop.DataSource as DataTable); if (tmpTable == null || tmpTable.Rows.Count == 0) { return; } if (e.RowIndex == -1) { return; } DataRowView dataRowView = dgrdTongHop.Rows[e.RowIndex].DataBoundItem as DataRowView; dgrdTongHop.Tag = dataRowView; if (dataRowView == null) { return; } int tmpUserEnrollNumber = (int)dataRowView["UserEnrollNumber"]; cUserInfo tmpNV = flstDSNVChk.Find(o => o.UserEnrollNumber == tmpUserEnrollNumber); DateTime tmpNgayCong = (DateTime)dataRowView["TimeStrNgay"]; //test += "\nTimeStrNgay:" + tmpNgayCong.ToShortDateString() + " "; DateTime tmpVao = (dataRowView["TimeStrVao"] == DBNull.Value) ? DateTime.MinValue : (DateTime)dataRowView["TimeStrVao"]; DateTime tmpRa = (dataRowView["TimeStrRa"] == DBNull.Value) ? DateTime.MinValue : (DateTime)dataRowView["TimeStrRa"]; //test += "\ttmpVao:" + tmpVao.ToShortTimeString() + " \ttmpRa" + tmpRa.ToShortTimeString(); cNgayCong ngayCong = tmpNV.DSNgayCong.Find(o => o.NgayCong == tmpNgayCong); //test += tmpNV + "\n " + ngayCong; //log.Info(test); cChkInOut old_CIO = new cChkInOut(); try { if (ngayCong.HasCheck == false || (tmpVao == DateTime.MinValue && tmpRa == DateTime.MinValue)) { old_CIO = null; } else if (tmpVao == DateTime.MinValue && tmpRa != DateTime.MinValue) { old_CIO = ngayCong.DSVaoRa.Find(o => o.HaveINOUT == -1 && o.Raa.TimeStr == tmpRa); } else if (tmpRa == DateTime.MinValue && tmpVao != DateTime.MinValue) { old_CIO = ngayCong.DSVaoRa.Find(o => o.HaveINOUT == -2 && o.Vao.TimeStr == tmpVao); } else { old_CIO = ngayCong.DSVaoRa.Find(o => o.HaveINOUT > 0 && o.Vao.TimeStr == tmpVao && o.Raa.TimeStr == tmpRa); } LoadTabThemGio(tmpNV, tmpNgayCong, old_CIO); LoadTabSuaGio(tmpNV, tmpNgayCong, old_CIO); cbLyDo_Xoa.SelectedIndex = 0; cbLyDo_Xoa.Text = string.Empty; tbGhiChu_Xoa.Text = string.Empty; } catch (Exception ex) { string temp = "\n--start \n NV: " + tmpNV + "\nCIO: "; temp += (old_CIO != null) ? old_CIO.ToString() : "null"; temp += "\n--end"; log.Fatal(ex.StackTrace + temp); AutoClosingMessageBox.Show("Có lỗi trong quá trình thao tác.", "Lỗi", 1500); } }
private void loadRow(cNgayCong ngayCong, bool isEnableEdit) { if (ngayCong.DSVaoRa.Count == 0) { var row1 = m_Bang_ChiTiet.NewRow(); var row2 = m_Bang_ChiTiet.NewRow(); row1["cNgayCong"] = row2["cNgayCong"] = ngayCong; row1["cUserInfo"] = row2["cUserInfo"] = nhanvien_goc; row1["TimeStrThu"] = row1["TimeStrNgay"] = ngayCong.Ngay.Date; row2["TimeStrThu"] = row2["TimeStrNgay"] = ngayCong.Ngay.Date; row1["Loai"] = "Vào"; row2["Loai"] = "Ra"; row1["IsEdited"] = (ngayCong.IsEdited > 0); row2["IsEdited"] = (ngayCong.IsEdited > 0); row1["IsEnableEdit"] = isEnableEdit; row2["IsEnableEdit"] = isEnableEdit; m_Bang_ChiTiet.Rows.Add(row1); m_Bang_ChiTiet.Rows.Add(row2); return; } foreach (var CIO in ngayCong.DSVaoRa) { var row1 = m_Bang_ChiTiet.NewRow(); var row2 = m_Bang_ChiTiet.NewRow(); row1["Loai"] = "Vào"; row2["Loai"] = "Ra"; row1["cNgayCong"] = row2["cNgayCong"] = ngayCong; row1["cUserInfo"] = row2["cUserInfo"] = nhanvien_goc; row1["TimeStrThu"] = row1["TimeStrNgay"] = ngayCong.Ngay.Date; row2["TimeStrThu"] = row2["TimeStrNgay"] = ngayCong.Ngay.Date; var temp = CIO.CIOCodeFull(); if (CIO.HaveINOUT == -1) { row1["cChk"] = CIO.Vao; row1["TimeStr"] = CIO.Vao.Time; row1["MachineNo"] = CIO.Vao.MachineNo; row1["Source"] = CIO.Vao.Source; row1["ShiftCode"] = temp; } else if (CIO.HaveINOUT == -2) { row2["cChk"] = CIO.Raa; row2["TimeStr"] = CIO.Raa.Time; row2["MachineNo"] = CIO.Raa.MachineNo; row2["Source"] = CIO.Raa.Source; row2["ShiftCode"] = temp; } else { row1["cChk"] = CIO.Vao; row2["cChk"] = CIO.Raa; row1["TimeStr"] = CIO.Vao.Time; row2["TimeStr"] = CIO.Raa.Time; row1["MachineNo"] = CIO.Vao.MachineNo; row2["MachineNo"] = CIO.Raa.MachineNo; row1["Source"] = CIO.Vao.Source; row2["Source"] = CIO.Raa.Source; row1["ShiftCode"] = row2["ShiftCode"] = temp; } row1["IsEdited"] = (CIO.IsEdited > 0); row2["IsEdited"] = (CIO.IsEdited > 0); row1["IsEnableEdit"] = isEnableEdit; row2["IsEnableEdit"] = isEnableEdit; m_Bang_ChiTiet.Rows.Add(row1); m_Bang_ChiTiet.Rows.Add(row2); } }
private void btnChuyenDoi_Click(object sender, EventArgs e) { if (SqlDataAccessHelper.TestConnection(SqlDataAccessHelper.ConnectionString) == false) { AutoClosingMessageBox.Show("Mất kết nối với CSDL. Vui lòng thử lại sau.", "Lỗi", 2000); return; } IsReload = true; var row = ((DataRowView)((dgrdGioKDQD.SelectedRows[0]).DataBoundItem)).Row; var checkold = (cChk)row["cChk"]; var loaiCuu = (checkold.GetType() == typeof(cChkInn_A)); var loaiMoi = !loaiCuu; 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 (checkold is cChkInn_V || checkold is cChkOut_V) { MessageBox.Show(Resources.GioDaXacnhanKhongTheThayDoi, Resources.capThongBao); return; } #endregion #region hỏi lại trước khi sửa if (loaiCuu) { if (MessageBox.Show(string.Format(Resources.xacNhanChuyenDoiGioDonGian, "vào", giocuu.ToString("H:mm dddd d/M"), "ra", nhanvien_goc.TenNV), Resources.capXacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } } else { if (MessageBox.Show(string.Format(Resources.xacNhanChuyenDoiGioDonGian, "ra", giocuu.ToString("H:mm dddd d/M"), "vào", nhanvien_goc.TenNV), Resources.capXacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } } #endregion var ds_raa3_vao1 = new List <cChk>(); var DS_Check_KoHopLe = new List <cChk>(); cChk checknew; if (loaiMoi) { checknew = new cChkInn_A { 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 } } } ; // tbd trạng thái?? tạm thời lấy int.maxvalue tức sửa > 0 else { checknew = new cChkOut_A { 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 } } }; // tbd trạng thái?? tạm thời lấy int.maxvalue tức sửa > 0 XL.SuaGioChoNV(checkold, checknew, nhanvien_goc, XL2.currUserID, lydo, ghichu); XL.SapXepDS_Check(new[] { nhanvien_goc.DS_Check_A }); XL.LoaiBoCheckCungLoaiTrong30phut(nhanvien_goc.DS_Check_A, nhanvien_goc.DS_Check_KoHopLe); XL.GhepCIO_A(nhanvien_goc.DS_Check_A, nhanvien_goc.DS_CIO_A); XL.LoaiBoCIOKoHopLe(nhanvien_goc.DS_CIO_A, nhanvien_goc.DS_Check_A, nhanvien_goc.DS_Check_KoHopLe); if (nhanvien_goc.DS_Check_KoHopLe.Count > 0) { DS_Check_KoHopLe.AddRange(nhanvien_goc.DS_Check_KoHopLe); nhanvien_goc.DS_Check_KoHopLe.Clear(); } XL.XetCa_CIO_A(nhanvien_goc.DS_CIO_A, nhanvien_goc.LichTrinhLV.DSCa, ds_raa3_vao1, nhanvien_goc.DS_Check_A); //nhanvien_goc.MacDinhTinhPC50, //[140615_4] XL.TronDS_CIO_A_V(nhanvien_goc.DS_CIO_A, nhanvien_goc.DS_CIO_V, nhanvien_goc.DSVaoRa); XL.TinhCongTheoNgay(nhanvien_goc.DSVaoRa, nhanvien_goc.NgayCongBD_Bef2D, nhanvien_goc.NgayCongKT_Aft2D, nhanvien_goc.DSVang, nhanvien_goc.DSNgayCong, nhanvien_goc.MacDinhTinhPC50); XL.TinhLaiPhuCapTC(nhanvien_goc.DSXNPhuCap50, nhanvien_goc.DSNgayCong); XL.TinhLaiPhuCapDB(nhanvien_goc.DSXNPhuCapDB, nhanvien_goc.DSNgayCong); NgayCong_goc = nhanvien_goc.DSNgayCong.Find(o => o.Ngay == NgayCong_goc.Ngay); if (DS_Check_KoHopLe.Count > 0) { DAL.LoaiGioLienQuan(DS_Check_KoHopLe); } if (ds_raa3_vao1.Count > 0) { DAL.ThemGio_ra3_vao1(ds_raa3_vao1); } m_Bang_ChiTiet.Rows.Clear(); loadGrid(); }
private void btnXoaa_Click(object sender, EventArgs e) { if (SqlDataAccessHelper.TestConnection(SqlDataAccessHelper.ConnectionString) == false) { AutoClosingMessageBox.Show("Mất kết nối với CSDL. Vui lòng thử lại sau.", "Lỗi", 2000); return; } IsReload = true; #region lấy thông tin từ màn hình var row = ((DataRowView)((dgrdGioKDQD.SelectedRows[0]).DataBoundItem)).Row; var check = (cChk)row["cChk"]; var lydo = (cbLyDo_Xoaa.SelectedItem != null) ? cbLyDo_Xoaa.SelectedItem.ToString() : cbLyDo_Xoaa.SelectedText; var ghichu = tbGhiChu_Xoaa.Text; #endregion #region thông báo ko cho sửa nếu đã xác nhận rồi if (check is cChkInn_V || check is cChkOut_V) { MessageBox.Show(Resources.GioDaXacnhanKhongTheThayDoi, Resources.capThongBao); return; } #endregion #region hỏi lại trước khi sửa if (MessageBox.Show((string.Format(Resources.xacNhanXoaGioDonGian, check.Time.ToString("H:mm dddd d/M"))), Resources.capXacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion var ds_raa3_vao1 = new List <cChk>(); var DS_Check_KoHopLe = new List <cChk>(); // xóa khỏi ds nên ko cần sắp xếp lại if (XL.XoaGioChoNV(check, nhanvien_goc, XL2.currUserID, lydo, ghichu)) { XL.LoaiBoCheckCungLoaiTrong30phut(nhanvien_goc.DS_Check_A, nhanvien_goc.DS_Check_KoHopLe); XL.GhepCIO_A(nhanvien_goc.DS_Check_A, nhanvien_goc.DS_CIO_A); XL.LoaiBoCIOKoHopLe(nhanvien_goc.DS_CIO_A, nhanvien_goc.DS_Check_A, nhanvien_goc.DS_Check_KoHopLe); if (nhanvien_goc.DS_Check_KoHopLe.Count > 0) { DS_Check_KoHopLe.AddRange(nhanvien_goc.DS_Check_KoHopLe); nhanvien_goc.DS_Check_KoHopLe.Clear(); } XL.XetCa_CIO_A(nhanvien_goc.DS_CIO_A, nhanvien_goc.LichTrinhLV.DSCa, ds_raa3_vao1, nhanvien_goc.DS_Check_A); //nhanvien_goc.MacDinhTinhPC50, //[140615_4] XL.TronDS_CIO_A_V(nhanvien_goc.DS_CIO_A, nhanvien_goc.DS_CIO_V, nhanvien_goc.DSVaoRa); XL.TinhCongTheoNgay(nhanvien_goc.DSVaoRa, nhanvien_goc.NgayCongBD_Bef2D, nhanvien_goc.NgayCongKT_Aft2D, nhanvien_goc.DSVang, nhanvien_goc.DSNgayCong, nhanvien_goc.MacDinhTinhPC50); XL.TinhLaiPhuCapTC(nhanvien_goc.DSXNPhuCap50, nhanvien_goc.DSNgayCong); XL.TinhLaiPhuCapDB(nhanvien_goc.DSXNPhuCapDB, nhanvien_goc.DSNgayCong); NgayCong_goc = nhanvien_goc.DSNgayCong.Find(o => o.Ngay == NgayCong_goc.Ngay); } if (DS_Check_KoHopLe.Count > 0) { DAL.LoaiGioLienQuan(DS_Check_KoHopLe); } if (ds_raa3_vao1.Count > 0) { DAL.ThemGio_ra3_vao1(ds_raa3_vao1); } // update lại table m_Bang_ChiTiet.Rows.Clear(); loadGrid(); }
private void btnThem_Click(object sender, EventArgs e) { if (SqlDataAccessHelper.TestConnection(SqlDataAccessHelper.ConnectionString) == false) { AutoClosingMessageBox.Show("Mất kết nối với CSDL. Vui lòng thử lại sau.", "Lỗi", 2000); 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; #endregion if (chkGioVao.Checked) { #region hỏi lại trước khi thêm if (MessageBox.Show(string.Format(Resources.xacNhanThemGioVaoDonGian, giovao.ToString("H:mm dddd d/M"), nhanvien_goc.TenNV), Resources.capXacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion var checkinn = new cChkInn_A { IsEdited = 1, Type = "I", MachineNo = 21, Source = "PC", MaCC = UserEnrollNumber, Time = giovao, PhucHoi = new cPhucHoi { Them = true, IDGioGoc = -1, Xoaa = false } }; XL.ThemGioChoNV(checkinn, nhanvien_goc, XL2.currUserID, lydo, ghichu); } if (chkGioRaa.Checked) { #region hỏi lại trước khi thêm if (MessageBox.Show(string.Format(Resources.xacNhanThemGioRaaDonGian, gioraa.ToString("H:mm dddd d/M"), nhanvien_goc.TenNV), Resources.capXacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion var checkout = new cChkOut_A { IsEdited = 1, Type = "O", MachineNo = 22, Source = "PC", MaCC = UserEnrollNumber, Time = gioraa, PhucHoi = new cPhucHoi { Them = true, IDGioGoc = -1, Xoaa = false } }; XL.ThemGioChoNV(checkout, nhanvien_goc, XL2.currUserID, lydo, ghichu); } var ds_raa3_vao1 = new List <cChk>(); var DS_Check_KoHopLe = new List <cChk>(); XL.SapXepDS_Check(new[] { nhanvien_goc.DS_Check_A }); XL.LoaiBoCheckCungLoaiTrong30phut(nhanvien_goc.DS_Check_A, nhanvien_goc.DS_Check_KoHopLe); XL.GhepCIO_A(nhanvien_goc.DS_Check_A, nhanvien_goc.DS_CIO_A); XL.LoaiBoCIOKoHopLe(nhanvien_goc.DS_CIO_A, nhanvien_goc.DS_Check_A, nhanvien_goc.DS_Check_KoHopLe); if (nhanvien_goc.DS_Check_KoHopLe.Count > 0) { DS_Check_KoHopLe.AddRange(nhanvien_goc.DS_Check_KoHopLe); nhanvien_goc.DS_Check_KoHopLe.Clear(); } XL.XetCa_CIO_A(nhanvien_goc.DS_CIO_A, nhanvien_goc.LichTrinhLV.DSCa, ds_raa3_vao1, nhanvien_goc.DS_Check_A); //nhanvien_goc.MacDinhTinhPC50, //[140615_4] XL.TronDS_CIO_A_V(nhanvien_goc.DS_CIO_A, nhanvien_goc.DS_CIO_V, nhanvien_goc.DSVaoRa); XL.TinhCongTheoNgay(nhanvien_goc.DSVaoRa, nhanvien_goc.NgayCongBD_Bef2D, nhanvien_goc.NgayCongKT_Aft2D, nhanvien_goc.DSVang, nhanvien_goc.DSNgayCong, nhanvien_goc.MacDinhTinhPC50); XL.TinhLaiPhuCapTC(nhanvien_goc.DSXNPhuCap50, nhanvien_goc.DSNgayCong); XL.TinhLaiPhuCapDB(nhanvien_goc.DSXNPhuCapDB, nhanvien_goc.DSNgayCong); NgayCong_goc = nhanvien_goc.DSNgayCong.Find(o => o.Ngay == NgayCong_goc.Ngay); if (DS_Check_KoHopLe.Count > 0) { DAL.LoaiGioLienQuan(DS_Check_KoHopLe); } if (ds_raa3_vao1.Count > 0) { DAL.ThemGio_ra3_vao1(ds_raa3_vao1); } m_Bang_ChiTiet.Rows.Clear(); loadGrid(); }