private void btnXacNhan_Click(object sender, EventArgs e) { #region lấy dữ liệu từ form DataGridView tmpDatagrid = dgrdGioCoLamThem; DataGridViewRow tmpSelectedRow = tmpDatagrid.SelectedRows[0]; DataRowView rowView = tmpSelectedRow.DataBoundItem as DataRowView; int tmpUserEnrollNumber = (int)rowView["UserEnrollNumber"]; DateTime tmpOldChkInTime = (DateTime)rowView["TimeStrVao"]; DateTime tmpOldChkOutTime = (DateTime)rowView["TimeStrRa"]; cUserInfo tmpNV = fListNVChk.Find(item => item.UserEnrollNumber == tmpUserEnrollNumber); cChkInOut tmpOldChkINOUT = tmpNV.DSVaoRa.Find(item => (item.HaveINOUT > 0) && item.Vao.TimeStr == tmpOldChkInTime && item.Raa.TimeStr == tmpOldChkOutTime); cShift tmpOldShift = tmpOldChkINOUT.ThuocCa; if (lbCheckINOUT.Tag == null) { AutoClosingMessageBox.Show("lbCheckINOUT.Tag == null", "Error", 1000); return; } cShift tmpNewShift = (cShift)cbChonCa.SelectedItem; cChkInOut tmpNewChkINOUT = (cChkInOut)lbCheckINOUT.Tag; // lúc tính công chưa có gán THUOCCA lại nên ở đây phải gán lại tmpNewChkINOUT.ThuocCa = tmpNewShift; int tmpNewShiftID = tmpNewShift.ShiftID; // shiftID của DSCa mở rộng int tmpTre = int.Parse(lbTre.Tag.ToString()); TimeSpan tmpTreTS = new TimeSpan(0, tmpTre, 0); int tmpSom = int.Parse(lbSom.Tag.ToString()); TimeSpan tmpSomTS = new TimeSpan(0, tmpSom, 0); int tmpSoPhutTreSom = int.Parse(tbTreSom.Tag.ToString()); // > 0 nếu (chấm tay < 8h => ra sớm), đúng ca nhưng có vào trễ ra sớm TimeSpan tmpSoPhutTreSomTS = new TimeSpan(0, tmpSoPhutTreSom, 0); int tmpSoPhutOLaiThem = int.Parse(tbOLaiThem.Tag.ToString()); TimeSpan tmpSoPhutOLaiThemTS = new TimeSpan(0, tmpSoPhutOLaiThem, 0); bool tmpIsOT = checkXacNhanLamThem.Checked; int tmpSoPhutLamThem = (tmpIsOT) ? (int)numPhutTinhLamThem.Value : 0; TimeSpan tmpSoPhutLamThemTS = new TimeSpan(0, tmpSoPhutLamThem, 0); #endregion bool pTinhPC150 = checkTinhPC150.Checked; if (tmpNewShift.OnnDutyTS > ThamSo._20h00 && tmpNewShift.Workingday > 1f) { cChkInOut[] arrCIO = XL.TachGio2Ca3Va1(tmpNV.DSCa, tmpNewChkINOUT, tmpNewChkINOUT.ThuocCa); XL.TinhCongTheoCa(arrCIO[0], arrCIO[0].ThuocCa); XL.TinhCongTheoCa(arrCIO[1], arrCIO[1].ThuocCa); XL.BUS_TachCaVaXacNhan(tmpNV, tmpOldChkINOUT, arrCIO, tmpIsOT, tmpSoPhutLamThem, tmpSoPhutLamThemTS, pTinhPC150); XL.XemCong(new List <cUserInfo>() { tmpNV }, fNgayBD, fNgayKT); } else { XL.BUS_XacNhan(tmpNV, tmpOldChkINOUT, tmpNewChkINOUT, tmpIsOT, tmpSoPhutLamThem, tmpSoPhutLamThemTS, pTinhPC150); XL.XemCong(new List <cUserInfo>() { tmpNV }, fNgayBD, fNgayKT); } LoadDataGrid(); }
private void ThucHienXoaGioXuongCSDL(ref List <cUserInfo> DSNVReload, ref List <DataRow> listSelectedRow, bool checkXoaVao, bool checkXoaRaa) { foreach (DataRow dataRow in listSelectedRow) { cCheckInOut currentCIO = (cCheckInOut)dataRow["cCheckInOut"]; cUserInfo currentNhanVien = (cUserInfo)dataRow["cUserInfo"]; if (DSNVReload.Any(item => item.MaCC == currentNhanVien.MaCC) == false) { DSNVReload.Add(currentNhanVien); } int UEN = (int)dataRow["UserEnrollNumber"]; if (currentCIO == null || currentNhanVien == null) { continue; } if (checkXoaVao) { this.XoaGio(currentCIO, UEN); } if (checkXoaRaa) { this.XoaGio(currentCIO, UEN); } } //tbd thông báo lỗi các trường hợp không thể thêm giờ }
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 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); } }
private void KhoitaoDSNV(DataTable TableDSNV, List <cUserInfo> dsnv) { if (TableDSNV == null || TableDSNV.Rows.Count == 0) { return; } foreach (DataRow row in TableDSNV.Rows) { cShiftSchedule tmpLichTrinh = ThamSo.DSLichTrinh.Find(item => item.SchID == (int)row["SchID"]); List <cShift> tmpDSCa = tmpLichTrinh.ListT1; //List<cShift> tmpDSCaChonGio = new List<cShift>(ThamSo.DSCa); cUserInfo nhanvien = new cUserInfo() { UserEnrollNumber = (int)row["UserEnrollNumber"], UserFullName = row["UserFullName"].ToString(), LichTrinhLV = tmpLichTrinh, DSCa = tmpDSCa, HeSoLuongCB = (Single)row["HeSoLuongCB"], HeSoLuongSP = (Single)row["HeSoLuongSP"], BoPhan = new cPhongBan() { ID = (int)row["UserIDD"], TenPhongBan = row["Description"].ToString() }, }; dsnv.Add(nhanvien); } }
private void loadRow(cUserInfo nhanvien_goc, DateTime ngayCong) { var cNgayCong = nhanvien_goc.DSNgayCong.FirstOrDefault(item => item.Ngay == ngayCong); if (cNgayCong == null || cNgayCong.HasCheck == false) { return; } foreach (var CIO in cNgayCong.DSVaoRa) { var row = m_Bang_ChiTiet.NewRow(); row["UserEnrollNumber"] = nhanvien_goc.MaCC; row["UserFullName"] = nhanvien_goc.TenNV; row["UserFullCode"] = nhanvien_goc.MaNV; row["TimeStrNgay"] = cNgayCong.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["cChkInOut"] = CIO; row["cNgayCong"] = cNgayCong; row["IsEdited"] = CIO.IsEdited; m_Bang_ChiTiet.Rows.Add(row); } }
private void KhoitaoDSNV(DataTable TableDSNV, List <cUserInfo> dsnv) { if (TableDSNV == null || TableDSNV.Rows.Count == 0) { return; } foreach (DataRow row in TableDSNV.Rows) { cShiftSchedule tmpLichTrinh = ThamSo.DSLichTrinh.Find(item => item.SchID == (int)row["SchID"]); List <cShift> tmpDSCa = tmpLichTrinh.ListT1; List <cShift> tmpDSCaMoRong = ThamSo.TaoDSCaMoRong(tmpDSCa); // đã bao gồm Khác(int.Minvalue) //List<cShift> tmpDSCaChonGio = new List<cShift>(ThamSo.DSCa); cUserInfo nhanvien = new cUserInfo() { UserEnrollNumber = (int)row["UserEnrollNumber"], UserFullName = row["UserFullName"].ToString(), LichTrinhLV = tmpLichTrinh, DSCa = tmpDSCa, DSCaMoRong = tmpDSCaMoRong, HeSoLuongCB = (Single)row["HeSoLuongCB"], HeSoLuongSP = (Single)row["HeSoLuongSP"], //BoPhan = new cPhongBan() { ID = (int)row["UserIDD"], TenPhongBan = row["Description"].ToString() }, MacDinhTinhPC150 = (bool)row["TinhPC150"], Luong = new cLuongThang(), }; nhanvien.ClearAll(); dsnv.Add(nhanvien); } }
private DataTable ThongKeCong_PC_Phep(DateTime ngayBD, DateTime ngayKT, DataTable TableUserIDD, List <int> dsExcludeMaCC, List <int> dsNhiemVuDangChon) { /* 1. chia thành các đoạn thời gian, xác định rõ đoạn nào đã kết công, đoạn nào chưa kết công * 2. thống kê các đoạn đã kết công * 3. thống kê các đoạn chưa kết công * 4. tổng hợp */ //tbd nhớ kiểm tra khoảng thời gian tìm kiếm quá xa nhau thì báo vì dữ liệu quá nhiều sẽ gây lỗi List <List <DateTime> > arrDoanThoigian; ChiaDoanThoiGian(ngayBD, ngayKT, out arrDoanThoigian); List <List <DateTime> > arrDoanTGDaKetCong; List <List <DateTime> > arrDoanTGChuaKetCong; TachKC_ChuaKC(arrDoanThoigian, out arrDoanTGChuaKetCong, out arrDoanTGDaKetCong); DataTable tableNhanVien = this.LayDSNhanVien(TableUserIDD, dsExcludeMaCC, dsNhiemVuDangChon); List <cUserInfo> listNhanVien = new List <cUserInfo>(); foreach (DataRow row in tableNhanVien.Rows) { cUserInfo nhanvien = new cUserInfo { MaCC = (int)row["UserEnrollNumber"], MaNV = row["UserFullCode"].ToString(), TenNV = row["UserFullName"].ToString(), }; XL.GetLichTrinhNV(nhanvien, row["SchID"] != DBNull.Value ? (int)row["SchID"] : (int?)null); listNhanVien.Add(nhanvien); } DataTable tableThongKe = this.ThongKe(listNhanVien, arrDoanTGChuaKetCong, arrDoanTGDaKetCong); return(tableThongKe); }
private void RemoveDSNVCanReload(ref List <cUserInfo> DSNVReload) { for (int i = 0; i < DSNVReload.Count; i++) { cUserInfo nhanvien = DSNVReload[i]; this.m_DSNV.Remove(nhanvien); } }
public static int InsKetLuongThang(DateTime Thang, cUserInfo nv) { //info đã thực hiện log. log do hàm gọi thực hiện #region query //DANGLAM var query = @" INSERT INTO KetLuongThang (Thang, UserEnrollNumber, HSLCB, HSLCV, HSBHCongThem, IDPhong, TenPhong, ViTriPhong, LevelDept, RelationIDDept, IDChucVu, ChucVu, TongCong, TongLe, TongPhep, TongH_CT_PT, TongQuaDem, TongCongCV, TongBHXH, TongRo, TongPTDT, TongPCDem, TongPCTC, TongPCTC_dem, TongPC200, TongPC260, TongPC300, TongPC390, TongPCCus, TongPC, LuongCB_TheoCongThucTe, LuongCB_TheoCheDoNghi, LuongCB_TheoCongCV, PCLuongCB, LuongSP_TheoCongThucTe, LuongSP_TheoCheDoNghi, PCLuongSP, LuongDieuChinh, BoiDuongCa3, TamUng, MucDongBHXH, KhauTruBHXH, ThuChiKhac, TienComTrua, ThucLanh ) VALUES ( @Thang, @UserEnrollNumber, @HSLCB, @HSLCV, @HSBHCongThem, @IDPhong, @TenPhong, @ViTriPhong, @LevelDept, @RelationIDDept, @IDChucVu, @ChucVu, @TongCong, @TongLe, @TongPhep, @TongH_CT_PT, @TongQuaDem, @TongCongCV, @TongBHXH, @TongRo, @TongPTDT, @TongPCDem, @TongPCTC, @TongPCTC_dem, @TongPC200, @TongPC260, @TongPC300, @TongPC390, @TongPCCus, @TongPC, @LuongCB_TheoCongThucTe, @LuongCB_TheoCheDoNghi, @LuongCB_TheoCongCV, @PCLuongCB, @LuongSP_TheoCongThucTe, @LuongSP_TheoCheDoNghi, @PCLuongSP, @LuongDieuChinh, @BoiDuongCa3, @TamUng, @MucDongBHXH, @KhauTruBHXH, @ThuChiKhac, @TienComTrua, @ThucLanh ) " ; #endregion return(SqlDataAccessHelper.ExecNoneQueryString(query, new string[] //DANGLAM { "@Thang", "@UserEnrollNumber", "@HSLCB", "@HSLCV", "@HSBHCongThem", "@IDPhong", "@TenPhong", "@ViTriPhong", "@LevelDept", "@RelationIDDept", "@IDChucVu", "@ChucVu", "@TongCong", "@TongLe", "@TongPhep", "@TongH_CT_PT", "@TongQuaDem", "@TongCongCV", "@TongBHXH", "@TongRo", "@TongPTDT", "@TongPCDem", "@TongPCTC", "@TongPCTC_dem", "@TongPC200", "@TongPC260", "@TongPC300", "@TongPC390", "@TongPCCus", "@TongPC", "@LuongCB_TheoCongThucTe", "@LuongCB_TheoCheDoNghi", "@LuongCB_TheoCongCV", "@PCLuongCB", "@LuongSP_TheoCongThucTe", "@LuongSP_TheoCheDoNghi", "@PCLuongSP", "@BoiDuongCa3", "@LuongDieuChinh", "@TamUng", "@MucDongBHXH", "@KhauTruBHXH", "@ThuChiKhac", "@TienComTrua", "@ThucLanh" }, new object[] { Thang, nv.MaCC, nv.HeSo.LuongCB, nv.HeSo.LuongCV, nv.HeSo.BHCongThem_ChoGD_PGD, nv.PhongBan.ID, nv.PhongBan.Ten, nv.PhongBan.ViTri, 0 /*leveldept*/, nv.PhongBan.idParent, //info xem lại nếu phòng ban null thì id và tên ntn--> đã giải quyết //info id parent nếu null --> đã giải quyết nv.IDChucVu, nv.ChucVu, nv.ThongKeThang.Cong, nv.ThongKeThang.Le, nv.ThongKeThang.Phep, nv.ThongKeThang.H_CT_PT, nv.ThongKeThang.NgayQuaDem, nv.ThongKeThang.CongCV, nv.ThongKeThang.BHXH, nv.ThongKeThang.NghiRo, nv.ThongKeThang.PTDT,//DANGLAM nv.ThongKeThang.PhuCaps._30_dem, nv.ThongKeThang.PhuCaps._50_TC, nv.ThongKeThang.PhuCaps._100_TCC3, nv.ThongKeThang.PhuCaps._100_LVNN_Ngay, nv.ThongKeThang.PhuCaps._150_LVNN_Dem, nv.ThongKeThang.PhuCaps._200_LeTet_Ngay, nv.ThongKeThang.PhuCaps._250_LeTet_Dem, nv.ThongKeThang.PhuCaps._Cus, nv.ThongKeThang.PhuCaps._TongPC, nv.chiTietLuong.LCB_Theo.CongThucTe, nv.chiTietLuong.LCB_Theo.CheDoNghi, nv.chiTietLuong.LCB_Theo.CongCV, nv.chiTietLuong.LCB_Theo.PhuCap, nv.chiTietLuong.LSP_Theo.CongThucTe, nv.chiTietLuong.LSP_Theo.CheDoNghi, nv.chiTietLuong.LSP_Theo.PhuCap, nv.chiTietLuong.BoiDuongQuaDem, nv.chiTietLuong.LuongDieuChinh, nv.chiTietLuong.KhauTru.TamUng, nv.chiTietLuong.MucDongBHXH, nv.chiTietLuong.KhauTru.BHXH, nv.chiTietLuong.KhauTru.ThuChiKhac, nv.chiTietLuong.TienComTrua, nv.chiTietLuong.ThucLanh, })); }
public void SetData(cUserInfo _UserInfo, int _index) { if (m_labelList.Length != 3) { Debug.LogError("라벨 셋팅이 잘못되었습니다."); } m_index = _index; m_labelList[0].text = _UserInfo.m_name; m_labelList[1].text = _UserInfo.m_level.ToString();; m_labelList[2].text = "[" + _UserInfo.m_time.ToString() + "초전]"; }
//정렬관련 기능 //===================================================================================================================================== bool SortByLevel(cUserInfo _a, cUserInfo _b) { if (_a.m_level > _b.m_level) { return(true); } else { return(false); } }
bool SortByTime(cUserInfo _a, cUserInfo _b) { if (_a.m_time > _b.m_time) { return(true); } else { return(false); } }
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(); }
public void LayDSNVXemCong(DataTable pTableDSNVTrongPhong, List <cUserInfo> plstDSNVDiemDanh, List <cUserInfo> plstDSNV) { if (pTableDSNVTrongPhong == null || pTableDSNVTrongPhong.Rows.Count == 0) { return; } foreach (DataRow row in pTableDSNVTrongPhong.Rows) { cUserInfo nhanvien = plstDSNV.Find(info => info.UserEnrollNumber == (int)row["UserEnrollNumber"]); nhanvien.ClearAll(); plstDSNVDiemDanh.Add(nhanvien); } }
public void LayDSNVXemCong(DataTable pdataTableDSNVCheck, List <cUserInfo> plstDSNVChkXemCong, List <cUserInfo> pDSNVDuocPhepThaoTac) { DataRow[] arrRecord = pdataTableDSNVCheck.Select("check = true", "UserEnrollNumber asc", DataViewRowState.CurrentRows); if (arrRecord.Length == 0) { plstDSNVChkXemCong.Clear(); return; } foreach (DataRow row in arrRecord) { cUserInfo nhanvien = pDSNVDuocPhepThaoTac.Find(info => info.UserEnrollNumber == (int)row["UserEnrollNumber"]); nhanvien.ClearAll(); plstDSNVChkXemCong.Add(nhanvien); } }
public static void GetLichTrinhNV(cUserInfo nhanvien, int?schID) { #region xét lịch trình cho nv // chưa có lịch trình thì tạo lịch trình ko có ca if (schID == null) { nhanvien.LichTrinhLV = new cShiftSchedule { SchID = int.MinValue, TenLichTrinh = "Chưa SX", DSCaThu = new List <List <cCa> >(7), DSCaMRThu = new List <List <cCa> >(7) }; for (int i = 0; i < 7; i++) { nhanvien.LichTrinhLV.DSCaThu.Add(new List <cCa>()); nhanvien.LichTrinhLV.DSCaMRThu.Add(new List <cCa>()); } nhanvien.LichTrinhLV.TGLamDemTheoQuyDinh = TGLamDemTheoQuyDinh._22h00; //ver 4.0.0.4 } else { // tìm lịch trình có ID, nếu ko tìm thấy thì mặc định là chưa sắp xếp nhanvien.LichTrinhLV = XL.DSLichTrinh.FirstOrDefault(o => o.SchID == schID); if (nhanvien.LichTrinhLV == null) { nhanvien.LichTrinhLV = new cShiftSchedule { SchID = int.MinValue, TenLichTrinh = "Chưa SX", DSCaThu = new List <List <cCa> >(7), DSCaMRThu = new List <List <cCa> >(7) }; for (int i = 0; i < 7; i++) { nhanvien.LichTrinhLV.DSCaThu.Add(new List <cCa>()); nhanvien.LichTrinhLV.DSCaMRThu.Add(new List <cCa>()); } nhanvien.LichTrinhLV.TGLamDemTheoQuyDinh = TGLamDemTheoQuyDinh._22h00; //ver 4.0.0.4 } } if (nhanvien.LichTrinhLV.TGLamDemTheoQuyDinh == TGLamDemTheoQuyDinh._22h00) { nhanvien.StartNT = XL2._22h00; nhanvien.EndddNT = XL2._06h00; } else { nhanvien.StartNT = XL2._21h45; nhanvien.EndddNT = XL2._05h45; } #endregion }
private void ThucHienDaoGioCCXuongCSDL(ref List <cUserInfo> DSNVReload, ref List <DataRow> listSelectedRow) { foreach (DataRow dataRow in listSelectedRow) { cCheckInOut currentCIO = (cCheckInOut)dataRow["cCheckInOut"]; cUserInfo currentNhanVien = (cUserInfo)dataRow["cUserInfo"]; if (DSNVReload.Any(item => item.MaCC == currentNhanVien.MaCC) == false) { DSNVReload.Add(currentNhanVien); } int UEN = (int)dataRow["UserEnrollNumber"]; if (currentCIO == null || currentNhanVien == null) { continue; } DateTime timeString; int machineNoOld; string sourceOld; MayCheck mayCheckMoi; if (currentCIO.HaveINOUT == -1) { timeString = currentCIO.Vao.Time; machineNoOld = currentCIO.Vao.MachineNo; sourceOld = currentCIO.Vao.Source; mayCheckMoi = MayCheck.O; // đảo vào thành ra } else if (currentCIO.HaveINOUT == -2) { timeString = currentCIO.Raa.Time; machineNoOld = currentCIO.Raa.MachineNo; sourceOld = currentCIO.Raa.Source; mayCheckMoi = MayCheck.I; // đảo ra thành vào } else { continue; } int kq = SqlDataAccessHelper.ExecSPNoneQuery(SPName.CheckInOut_InvertKieuChamCong.ToString(), new SqlParameter("@UserEnrollNumber", UEN), new SqlParameter("@TimeStr", timeString), new SqlParameter("@MachineNoOld", machineNoOld), new SqlParameter("@SourceOld", sourceOld), new SqlParameter("@TimeDateNew", timeString.Date), new SqlParameter("@MachineNoNew", (int)mayCheckMoi), new SqlParameter("@SourceNew", "PC")); } //tbd thông báo lỗi các trường hợp không thể thêm giờ }
private void btnDocFile_Click(object sender, EventArgs e) { // đọc từ file tạm ứng, lưu biến đếm số lượng nhân viên tìm thấy được và gán vào biến tạm ứng trong danh sách nhân viên. bool flag = true; try { using (ExcelPackage excelPkg = new ExcelPackage()) { using (FileStream stream = new FileStream(dialogOpenExcel.FileName, FileMode.Open)) { excelPkg.Load(stream); ExcelWorksheet oSheet = excelPkg.Workbook.Worksheets[1]; DataTable table = WorksheetToDataTable(oSheet); cUserInfo nhanvien = null; int dem = 0; foreach (DataRow row in table.Rows) { nhanvien = m_dsnv.Find(o => o.MaNV == row["UserFullCode"].ToString()); if (nhanvien == null) { continue; // tìm ko thấy thì chuyển sang nhân viên tiếp theo } // neu tim thay thi tang bien dem dem++; nhanvien.Luong.TamUng = Convert.ToDouble(row["TamUng"].ToString()); nhanvien.Luong.ThuChiKhac = Convert.ToDouble(row["ThuChiKhac"].ToString()); } } } temp = true; // cho biết form này đọc file thành công. } catch (Exception exception) { log4net.Config.XmlConfigurator.Configure(); ILog lg = LogManager.GetLogger("frm_DocFileTamUng"); string temp = "file name=" + dialogOpenExcel.FileName; lg.Error(temp, exception); flag = false; } // nếu trong qquá trình đọc file xảy ra lỗi thì báo // nếu đọc file thành công thì thoát if (flag == false) { temp = false; // cho biết form này đọc file bị lỗi. MessageBox.Show("Xảy ra lỗi trong quá trình đọc file tạm ứng lương. Vui lòng kiểm tra lại file.", "Lỗi"); } else { temp = true; // cho biết form này đọc file thành công AutoClosingMessageBox.Show("Đọc file thành công. Hãy chọn thư mục lưu trữ bảng lương.", "Thông báo", 2000); this.Close(); } }
private void checkBox_Sua_CheckedChanged(object sender, EventArgs e) { if (sender == checkVao_Sua) { if (checkVao_Sua.Checked) { DataRowView row = (DataRowView)dgrdTongHop.Tag; cUserInfo tmpNV = flstDSNVChk.Find(o => o.UserEnrollNumber == (int)row["UserEnrollNumber"]); dtpVao_Sua.ValueChanged -= dtp_Sua_OnValueChanged; dtpVao_Sua.Value = ((DateTime)row["TimeStrNgay"]); LoadComboBoxSua(cbCaVao_Sua, tmpNV.DSCa); dtpVao_Sua.ValueChanged += dtp_Sua_OnValueChanged; dtpVao_Sua.Enabled = true; cbCaVao_Sua.Enabled = true; } else { DataRowView row = (DataRowView)dgrdTongHop.Tag; dtpVao_Sua.ValueChanged -= dtp_Sua_OnValueChanged; dtpVao_Sua.Value = ((DateTime)row["TimeStrNgay"]); LoadComboBoxSua(cbCaVao_Sua, null); dtpVao_Sua.Enabled = false; cbCaVao_Sua.Enabled = false; } } else { if (checkRa_Sua.Checked) { DataRowView row = (DataRowView)dgrdTongHop.Tag; cUserInfo tmpNV = flstDSNVChk.Find(o => o.UserEnrollNumber == (int)row["UserEnrollNumber"]); dtpRa_Sua.ValueChanged -= dtp_Sua_OnValueChanged; dtpRa_Sua.Value = ((DateTime)row["TimeStrNgay"]); LoadComboBoxSua(cbCaRa_Sua, tmpNV.DSCa); dtpRa_Sua.ValueChanged += dtp_Sua_OnValueChanged; dtpRa_Sua.Enabled = true; cbCaRa_Sua.Enabled = true; } else { DataRowView row = (DataRowView)dgrdTongHop.Tag; dtpRa_Sua.ValueChanged -= dtp_Sua_OnValueChanged; dtpRa_Sua.Value = ((DateTime)row["TimeStrNgay"]); LoadComboBoxSua(cbCaRa_Sua, null); dtpRa_Sua.Enabled = false; cbCaRa_Sua.Enabled = false; } } }
private void btnThemGio_Click(object sender, EventArgs e) { IsReload = true; #region lấy thông tin DataRowView row = dgrdTongHop.SelectedRows[0].DataBoundItem as DataRowView; if (row == null) { return; } int iUserEnrollNumber = (int)row["UserEnrollNumber"]; cUserInfo tmpNV = flstDSNVChk.Find(o => o.UserEnrollNumber == iUserEnrollNumber); string Lydo = string.Empty; if (cbLyDo_Them.SelectedItem == null) { Lydo = cbLyDo_Them.Text; } else if (cbLyDo_Them.SelectedItem != null) { Lydo = (string)cbLyDo_Them.SelectedItem; } if (checkVao_Them.Checked) { dtpVao_Them.Update(); if (DAL.ThemGioChoNV(iUserEnrollNumber, dtpVao_Them.Value.Add(new TimeSpan(0, 0, 1)), true, 21, ThamSo.currUserID, Lydo, tbGhiChu_Them.Text) == false) { MessageBox.Show("Không thêm được giờ vào cho nhân viên. Vui lòng thử lại.", "Lỗi"); } } if (checkRa_Them.Checked) { dtpRa_Them.Update(); if (DAL.ThemGioChoNV(iUserEnrollNumber, dtpRa_Them.Value, false, 22, ThamSo.currUserID, Lydo, tbGhiChu_Them.Text) == false) { MessageBox.Show("Không thêm được giờ ra cho nhân viên. Vui lòng thử lại.", "Lỗi"); } } try { XL.XemCong(tmpNV, fNgayBD, fNgayKT); loadTable(); GC.Collect(); } catch (Exception) { MessageBox.Show("Mất kết nối đến máy chủ. Vui lòng thử lại.", "Lỗi", MessageBoxButtons.OK); } #endregion }
int QuiqSortDown(cUserInfo _a, cUserInfo _b) { if (_a.m_level > _b.m_level) { return(-1); } else if (_a.m_level < _b.m_level) { return(1); } else { return(0); } }
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(); }
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 Start() { m_userList = new List <cUserInfo>(); cObjectPool.INSTANCE.Setting(cPrefabManager.INSTANCE.FindPrefab("Prefab_Popup_FriendListGrid").name, 10, cPrefabManager.INSTANCE.FindPrefab("Prefab_Popup_FriendListGrid")); for (int i = 0; i < 1000000; i++) { cUserInfo tmpUser = new cUserInfo(); tmpUser.m_name = "Name" + i.ToString(); tmpUser.m_level = i; tmpUser.m_time = Random.Range(0, 10); m_userList.Add(tmpUser); } if (m_userList.Count <= m_gridCount) { for (int i = 0; i < m_userList.Count; i++) { ObjectPoolGridPush(); } } else { for (int i = 0; i < m_gridCount; i++) { ObjectPoolGridPush(); } } m_FirstIndexByList = 0; m_firstFriendCount = m_userList.Count; ChangeNumberOfFriend(); UIScrollView.m_offsetY = 0.0f; m_grid.Reposition(); m_scrollView.ResetPosition(); m_standard_posY = m_scrollView.transform.localPosition.y; GridReChangeData(0); cEventListner.INSTANCE.Register(cEventListner.EVENTKEY.cUiPopUp_FrindList_Grid_DeleteClick, DeleteEvent); }
public static void CheckTinhPC50_UpdORInsNew_Sort(cUserInfo nhanvien, DateTime ngay, bool giatri) { var n1 = DAO5.CheckTinhPC50(nhanvien.MaCC, ngay, giatri); var index = nhanvien.DSXNPhuCap50.FindIndex(o => o.Ngay == ngay); if (index < 0) // chưa có --> tạo mới { var ngayXN_PCTC = new structPCTC { Ngay = ngay, TinhPC50 = giatri }; nhanvien.DSXNPhuCap50.Add(ngayXN_PCTC); nhanvien.DSXNPhuCap50.Sort(new cTemp1Comparer()); } else // đã có --> cập nhật { nhanvien.DSXNPhuCap50[index] = new structPCTC { Ngay = ngay, TinhPC50 = giatri }; } }
internal void KhoiTaoNV(DataRow dataRow, IEnumerable <cNhomCa> List_NhomCa, out cUserInfo nhanvien) { nhanvien = new cUserInfo { MaCC = (int)dataRow[f1.UserEnrollNumber.ToString()], MaNV = dataRow[f1.UserFullCode.ToString()].ToString(), TenNV = dataRow[f1.UserFullName.ToString()].ToString(), ChucVu = new ID_Description() { ID = (int)dataRow[f1.IDChucVu.ToString()], Description = dataRow[f1.ChucVu.ToString()].ToString() }, //LichTrinh = new ID_Description() { ID = (int)row[Field.SchID.ToString()], Description = row[Field.SchName.ToString()].ToString()}, PhongBan_ID_Des = new ID_Description { ID = (int)dataRow["UserIDDepartment"], Description = dataRow["DepartmentDescription"].ToString() } //todo còn các trường khác }; //user.PhongBan = XacDinhPhongBan((int)dataRow[Field.UserIDDepartment.ToString()], List_Phong); nhanvien.NhomCa = XacDinhNhomCa((int)dataRow["SchID"], List_NhomCa); //todo trường hợp nhóm ca null thì sao?? }
private void KhoitaoDSNV(DataTable fTableDSNV, List <cUserInfo> dsnv) { if (fTableDSNV == null || fTableDSNV.Rows.Count == 0) { return; } foreach (DataRow row in fTableDSNV.Rows) { cShiftSchedule tmpLichTrinh = ThamSo.DSLichTrinh.Find(item => item.SchID == (int)row["SchID"]); List <cShift> tmpDSCa = tmpLichTrinh.ListT1; List <cShift> tmpDSCaMoRong = ThamSo.TaoDSCaMoRong(tmpDSCa); // đã bao gồm Khác(int.Minvalue) cUserInfo nhanvien = new cUserInfo() { UserEnrollNumber = (int)row["UserEnrollNumber"], UserFullName = row["UserFullName"].ToString(), HeSoLuongCB = (Single)row["HeSoLuongCB"], HeSoLuongSP = (Single)row["HeSoLuongSP"], LichTrinhLV = tmpLichTrinh, DSCa = tmpDSCa, DSCaMoRong = tmpDSCaMoRong }; dsnv.Add(nhanvien); } }
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); }
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); } }