private void frm4LuuHSPC_Load(object sender, EventArgs e) { var ngayDauThang = m_Thang; groupBox2.Text = string.Format(groupBox2.Text, ngayDauThang.ToString("MM/yyyy")); tbTenNVLapbieuLuong.Text = Settings.Default.LastTenNVLapBieuLuong; var tableThongsoKetluongThang = DAO5.LayThongsoKetluongThang(ngayDauThang); numSanLuong.Value = (tableThongsoKetluongThang.Rows.Count == 0) ? Settings.Default.LastSanLuong : (int)tableThongsoKetluongThang.Rows[0]["SanLuong"]; numDonGia.Value = (tableThongsoKetluongThang.Rows.Count == 0) ? Settings.Default.LastDonGia : (int)tableThongsoKetluongThang.Rows[0]["DonGia"]; numSanluongGiacongNoibo.Value = (tableThongsoKetluongThang.Rows.Count == 0) ? Settings.Default.LastSanluongGiaCongNoibo : (int)tableThongsoKetluongThang.Rows[0]["SanLuongGiaCongNoiBo"]; numDongiaGiacongNoibo.Value = (tableThongsoKetluongThang.Rows.Count == 0) ? Settings.Default.LastDongiaGiacongNoibo : (int)tableThongsoKetluongThang.Rows[0]["DonGiaGiaCongNoiBo"]; numSanluongGiacongNgoai.Value = (tableThongsoKetluongThang.Rows.Count == 0) ? Settings.Default.LastSanluongGiacongNgoai : (int)tableThongsoKetluongThang.Rows[0]["SanLuongGiaCongNgoai"]; numDongiaGiacongNgoai.Value = (tableThongsoKetluongThang.Rows.Count == 0) ? Settings.Default.LastDongiaGiacongNgoai : (int)tableThongsoKetluongThang.Rows[0]["DonGiaGiaCongNgoai"]; numTrichQuyLuong.Value = (tableThongsoKetluongThang.Rows.Count == 0) ? Settings.Default.LastTrichQuyLuong : (int)tableThongsoKetluongThang.Rows[0]["TrichQuyLuong"]; numLuongTT.Value = (tableThongsoKetluongThang.Rows.Count == 0) ? Convert.ToDecimal(Settings.Default.LastLuongToiThieu) : Convert.ToDecimal(tableThongsoKetluongThang.Rows[0]["MucLuongToiThieu"]); numBoiDuongCa3.Value = (tableThongsoKetluongThang.Rows.Count == 0) ? (Settings.Default.LastBoiDuongCa3) : Convert.ToDecimal(tableThongsoKetluongThang.Rows[0]["BoiDuongCa3"]); numDinhMucComTrua.Value = (tableThongsoKetluongThang.Rows.Count == 0) ? Convert.ToDecimal(Settings.Default.LastDinhMucComTrua) : Convert.ToDecimal(tableThongsoKetluongThang.Rows[0]["DinhMucComTrua"]); }
private void frm_KBVang_Nhanh_Load(object sender, EventArgs e) { #region mất kết nối csdl thì báo if (SqlDataAccessHelper.TestConnection(SqlDataAccessHelper.ConnectionString) == false) { ACMessageBox.Show(Resources.Text_MatKetNoiCSDL, Resources.Caption_Loi, 2000); Close(); return; } #endregion var tableLoaiVang = DAO5.LayDSLoaiVang(); cbLoaiVang.DataSource = tableLoaiVang; cbLoaiVang.ValueMember = "AbsentCode"; cbLoaiVang.DisplayMember = "AbsentDescription"; List <frm_KBVang.Working> list = new List <frm_KBVang.Working> { new frm_KBVang.Working { cong = 0.5f, hour = 4f }, new frm_KBVang.Working { cong = 1f, hour = 8f }, }; cbSoBuoi.DataSource = list; cbSoBuoi.ValueMember = "Hour"; cbSoBuoi.DisplayMember = "Cong"; cbSoBuoi.SelectedIndex = 1; // mặc định cho số buổi là 1 }
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 dtpThang_ValueChanged(object sender, EventArgs e) { try //general try catch { var ngaydauthang = new DateTime(dtpThang.Value.Year, dtpThang.Value.Month, 1); Settings.Default.LastThangKetCong = ngaydauthang; Settings.Default.Save(); #region lấy ds phòng đã kết công và check sẵn DataTable table = DAO5.LayDSPhongDaKetcong(ngaydauthang); //tbd treePhongBan.AfterCheck -= treePhongBan_AfterCheck; //duyệt từng rows trong table và check node có id phòng, //chỉ check node có id tương ứng ko thực hiện check đệ quy var root = treePhongBan.Nodes[0]; //clear các check cũ ClearCheckedNode(false, root); for (int i = 0; i < table.Rows.Count; i++) { int idPhong = (int)table.Rows[i]["IDPhong"]; setCheckedNode_PhongDaKetcong(idPhong, root); //suyệt đệ quy chứ ko check đệ quy } treePhongBan.AfterCheck += treePhongBan_AfterCheck; #endregion } 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); } }
public static void XemCongThoiGianChuaKetLuong(List <cUserInfo> DSNV, DateTime ngayBD, DateTime ngayKT) { XmlConfigurator.Configure(); if (DSNV.Count == 0) { return; } #region nạp dữ liệu từ database var Arr_MaCC = (from nv in DSNV select nv.MaCC).ToList(); // tạo mảng danh sách mã chấm công để viết chuỗi query : or.. or DataTable tableArrayMaCC = MyUtility.Array_To_DataTable("tableArrayMaCC", Arr_MaCC); var tableCheck_A = DAO5.LayTableCIO_A5(tableArrayMaCC, ngayBD, ngayKT); var tableCheck_V = DAO5.LayTableCIO_V5(tableArrayMaCC, ngayBD, ngayKT); var tableXPVang = DAO5.LayTableXPVang5(tableArrayMaCC, ngayBD, ngayKT); var tableXNPC = DAO5.LayTableXacNhanPhuCap(tableArrayMaCC, ngayBD, ngayKT, Duyet: true); var tableNgayLe = DAO5.DocNgayLe(ngayBD, ngayKT); #endregion #region transfer dữ liệu sang object foreach (var nv in DSNV) { var tempMaCC = nv.MaCC; nv.NgayCongBD_Bef2D = ngayBD; nv.NgayCongKT_Aft2D = ngayKT; LoadDSCheck_A5(tempMaCC, tableCheck_A, out nv.DS_Check_A); LoadDSCIO_V5(tempMaCC, tableCheck_V, out nv.DS_CIO_V); LoadDSXPVang_Le(tempMaCC, tableXPVang, tableNgayLe, nv.DSVang); LoadDSXNPC5(tempMaCC, tableXNPC, out nv.DSXNPC5); // khởi tạo danh sách ngày công KhoiTaoDSNgayCong(nv.DSNgayCong, ngayBD.AddDays(-2d), ngayKT.AddDays(2d)); } #endregion #region xử lý var DS_Check_KoHopLe_AllNV = new List <cCheck>(); var ds_raa3_vao1 = new List <cCheck>(); foreach (var nv in DSNV) { List <cCheck> DS_Check_KoHopLe_1NV; LoaiBoCheckKoHopLe15(nv.DS_Check_A, out DS_Check_KoHopLe_1NV); // loại bỏ check cùng loại trong 30ph, IO 30 phút DS_Check_KoHopLe_AllNV.AddRange(DS_Check_KoHopLe_1NV); // add vào ds ko hợp lệ của nhiều nhân viên để xóa sau GhepCIO_A2(nv.DS_Check_A, out nv.DS_CIO_A); XetCa_ListCIO_A3_5(nv.DS_CIO_A, nv.LichTrinhLV, ds_raa3_vao1, nv.DS_Check_A); // xét thuộc ThuocCa, update thuộc ngày công, tách ThuocCa 3&1 nếu có, rồi tính công//nv.MacDinhTinhPC50, //[140615_4] XetCa_ListCIO_V4_5(nv.DS_CIO_V); TronDS_CIO_A_V5(nv.DS_CIO_A, nv.DS_CIO_V, out nv.DSVaoRa); PhanPhoi_DSVaoRa6(nv.DSVaoRa, nv.DSNgayCong); PhanPhoi_DSVang7(nv.DSVang, nv.DSNgayCong); TinhCong_ListNgayCong8_5(nv.DSNgayCong); //ver 4.0.0.4 TinhPhuCap_ListNgayCong9_5(nv.DSNgayCong, nv.DSXNPC5); } if (DS_Check_KoHopLe_AllNV.Count > 0) { DAO5.LoaiGioLienQuan(DS_Check_KoHopLe_AllNV); } if (ds_raa3_vao1.Count > 0) { DAO5.ThemGio_ra3_vao1(ds_raa3_vao1); } #endregion }
public void LoadGrid() { //kiem tra ket noi csdl DataTable tableShift = DAO5.LoadDataSourceShift(); gridControl.DataSource = tableShift; }
private void btnThem_Capnhat_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương if (XL.Kiemtra(m_thang.Date, MyUtility.LastDayOfMonth(m_thang))) { MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "chỉnh sửa thu chi tháng", "thực hiện thao tác", ""), Resources.Caption_ThongBao, MessageBoxButtons.OK); return; } #endregion #region lấy thông tin từ form int?macc = (int?)lbUserEnrollNumber.Tag; if (macc == null) { ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000); return; } double tamung = 0d, thuchiKhac = 0d, luongDieuchinh = 0d; float mucDongBHXH = 0f; if (float.TryParse(tbMucDongBHXH.Text, out mucDongBHXH) == false) { ACMessageBox.Show("Mức đóng BHXH chưa hợp lệ. Vui lòng nhập lại.", Resources.Caption_Loi, 2000); return; } tamung = Convert.ToDouble(numTamUng.Value); thuchiKhac = Convert.ToDouble(numThuchiKhac.Value); luongDieuchinh = Convert.ToDouble(numLuongdieuchinh.Value); #endregion // thực hiện query int kq = DAO5.CapnhatThuchiThang((int)macc, m_thang, luongDieuchinh, tamung, thuchiKhac, mucDongBHXH); DAO5.GhiNhatKyThaotac("Thêm khoản thu chi tháng", string.Format("Thêm tạm ứng [{2}], lương điều chỉnh [{3}], mức đóng BHXH [{4}], thu chi khác [{5}] tháng [{0}]... cho 1 NV có mã chấm công [{1}]", m_thang.ToString("dd/MM/yyyy"), macc, tamung.ToString("###,###,###,###,###,##0"), luongDieuchinh.ToString("###,###,###,###,###,##0"), mucDongBHXH.ToString("#0.00"), thuchiKhac.ToString("###,###,###,###,###,##0")), maCC: macc); if (kq == 0) { MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } reloadGridDSThuChi(); }
public static void XemCong_v08_2(List <cUserInfo> dsnv, DateTime ngayBD_Bef2D, DateTime ngayKT_Aft2D) { if (dsnv.Count == 0) { return; } #region nạp dữ liệu từ database var Arr_MaCC = (from nv in dsnv select nv.MaCC).ToList(); // tạo mảng danh sách mã nv chấm công DataTable tableArrayMaCC = MyUtility.Array_To_DataTable("tableArrayMaCC", Arr_MaCC); var tableCheck_A = DAO5.LayTableCIO_A5(tableArrayMaCC, ngayBD_Bef2D, ngayKT_Aft2D); var tableCheck_V = DAO5.LayTableCIO_V5(tableArrayMaCC, ngayBD_Bef2D, ngayKT_Aft2D); var tableXPVang = DAO5.LayTableXPVang5(tableArrayMaCC, ngayBD_Bef2D, ngayKT_Aft2D); var tableXNPC = DAO5.LayTableXacNhanPhuCap(tableArrayMaCC, ngayBD_Bef2D, ngayKT_Aft2D, Duyet: true); var tableNgayLe = DAO5.DocNgayLe(ngayBD_Bef2D, ngayKT_Aft2D); #endregion #region transfer dữ liệu sang object foreach (var nv in dsnv) { var tempMaCC = nv.MaCC; nv.NgayCongBD_Bef2D = ngayBD_Bef2D; nv.NgayCongKT_Aft2D = ngayKT_Aft2D; LoadDSCheck_A5(tempMaCC, tableCheck_A, out nv.DS_Check_A); LoadDSCIO_V5(tempMaCC, tableCheck_V, out nv.DS_CIO_V); LoadDSXPVang_Le(tempMaCC, tableXPVang, tableNgayLe, nv.DSVang); LoadDSXNPC50(tempMaCC, tableXNPC, nv.DSXNPhuCap50); // khởi tạo danh sách ngày công KhoiTaoDSNgayCong(nv.DSNgayCong, ngayBD_Bef2D, ngayKT_Aft2D); } #endregion #region xử lý //var DS_Check_KoHopLe_AllNV = new List<cCheck>(); //var ds_raa3_vao1 = new List<cCheck>(); //foreach (var nv in dsnv) { // var DS_Check_KoHopLe_1NV = new List<cCheck>(); // LoaiBoCheckKoHopLe1(nv.DS_Check_A, ref DS_Check_KoHopLe_1NV);// loại bỏ check cùng loại trong 30ph, IO 30 phút // DS_Check_KoHopLe_AllNV.AddRange(DS_Check_KoHopLe_1NV);// add vào ds ko hợp lệ của nhiều nhân viên để xóa sau // GhepCIO_A2(nv.DS_Check_A, nv.DS_CIO_A); // XetCa_ListCIO_A3(nv.DS_CIO_A, nv.LichTrinhLV, ds_raa3_vao1, nv.DS_Check_A);// xét thuộc ca, update thuộc ngày công, tách ca 3&1 nếu có, rồi tính công//nv.MacDinhTinhPC50, //[140615_4] // XetCa_ListCIO_V4_5(nv.DS_CIO_V, nv.LichTrinhLV); // TronDS_CIO_A_V5(nv.DS_CIO_A, nv.DS_CIO_V, nv.DSVaoRa); // PhanPhoi_DSVaoRa6(nv.DSVaoRa, nv.DSNgayCong); // PhanPhoi_DSVang7(nv.DSVang, nv.DSNgayCong); // TinhCong_ListNgayCong8(nv.DSNgayCong, nv.StartNT, nv.EndddNT);//ver 4.0.0.4 // TinhPCTC_TrongListXNPCTC9(nv.DSXNPhuCap50, nv.DSNgayCong); // TinhPCDB_TrongListXNPCDB10(nv.DSXNPhuCapDB, nv.DSNgayCong); //} //if (DS_Check_KoHopLe_AllNV.Count > 0) DAO.LoaiGioLienQuan(DS_Check_KoHopLe_AllNV); //if (ds_raa3_vao1.Count > 0) DAO.ThemGio_ra3_vao1(ds_raa3_vao1); #endregion }
public static bool HuyKetLuongThang(DateTime ngaydauthang) { var query = @" delete from ThongSoKetLuongThang where Thang=@Thang delete from KetLuongThang where Thang=@Thang " ; var kq = SqlDataAccessHelper.ExecNoneQueryString(query, new string[] { "@Thang" }, new object[] { ngaydauthang }); DAO5.GhiNhatKyThaotac("Huỷ kết lương tháng", string.Format("Huỷ kết lương tháng [{0}]", ngaydauthang.ToString("MM/yyyy"))); if (kq == 0) { return(false); } return(true); }
private void dtpThang_ValueChanged(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } // kiểm tra nếu tháng đó đã kết công thì ko cho nhập m_thang = new DateTime(dtpThang.Value.Year, dtpThang.Value.Month, 1); DataTable tableThangketcong = DAO5.KiemtraTinhtrangKetcongThang(m_thang, (int)m_currRowNV["UserEnrollNumber"]); DataTable tableKhoangThoigianCongnhat = DAO5.LayKhoangThoigianCongnhat(m_thang, (int)m_currRowNV["UserEnrollNumber"]); if (tableThangketcong.Rows.Count > 0) // đã kết công --> ko cho nhập { checkLamCongnhat.Enabled = false; checkNVChinhThuc.Enabled = false; if (tableKhoangThoigianCongnhat.Rows.Count == 0) // chưa khai báo công nhật tháng này { checkLamCongnhat.Checked = false; dtpNgayBDCongnhat.Value = m_thang; dtpNgayKTCongnhat.Value = m_thang; checkNVChinhThuc.Checked = false; } else // đã khai báo công nhật tháng này { checkLamCongnhat.Checked = true; dtpNgayBDCongnhat.Value = (DateTime)tableKhoangThoigianCongnhat.Rows[0]["NgayBatDau"]; dtpNgayKTCongnhat.Value = (DateTime)tableKhoangThoigianCongnhat.Rows[0]["NgayKetThuc"]; checkNVChinhThuc.Checked = (bool)tableKhoangThoigianCongnhat.Rows[0]["NVChinhThuc"]; } } else // chưa kết công cho phép nhập, kiểm tra nv đó có nhập ngày công nhật chưa, có thì fill, ko thì check false { checkLamCongnhat.Enabled = true; checkNVChinhThuc.Enabled = true; if (tableKhoangThoigianCongnhat.Rows.Count == 0) // chưa khai báo công nhật tháng này -> cho phép nhập { checkLamCongnhat.Checked = false; dtpNgayBDCongnhat.Value = m_thang; // cập nhật mặc định ngày đầu tháng dtpNgayKTCongnhat.Value = m_thang; checkNVChinhThuc.Checked = false; } else // đã khai báo công nhật --> fill { checkLamCongnhat.Checked = true; dtpNgayBDCongnhat.Value = (DateTime)tableKhoangThoigianCongnhat.Rows[0]["NgayBatDau"]; dtpNgayKTCongnhat.Value = (DateTime)tableKhoangThoigianCongnhat.Rows[0]["NgayKetThuc"]; checkNVChinhThuc.Checked = (bool)tableKhoangThoigianCongnhat.Rows[0]["NVChinhThuc"]; } } }
private void btnXoa_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương if (XL.Kiemtra(new DateTime(dtpThang.Value.Year, dtpThang.Value.Month, 1), new DateTime(dtpThang.Value.Year, dtpThang.Value.Month, DateTime.DaysInMonth(dtpThang.Value.Year, dtpThang.Value.Month)))) { MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "khai báo vắng", "xoá khai báo vắng", ""), Resources.Caption_ThongBao, MessageBoxButtons.OK); return; } #endregion #region hỏi lại trước khi thực hiện if (MessageBox.Show(Resources.Text_XacNhanXoaKhaiBaoVang, Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } #endregion dgrdNgayVang.EndEdit(); dgrdNgayVang.Update(); var arrRecord = (from DataGridViewRow dataGridViewRow in dgrdNgayVang.SelectedRows select((DataRowView)dataGridViewRow.DataBoundItem)).ToList(); if (arrRecord.Count == 0) { return; } var kqThaotac = DAO5.XoaNgayVangNV(arrRecord); if (kqThaotac == false) { MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } GC.Collect(); Thread.Sleep(20); btnLietKe.PerformClick(); }
internal static List <int> LayPhanQuyen() { List <int> kq = new List <int>(); DataTable dt = DAO5.PhanQuyenMenu(XL2.currUserID); for (int i = 0; i < dt.Rows.Count; i++) { bool enable = (bool)dt.Rows[i]["IsYes"]; if (enable) { kq.Add((int)dt.Rows[i]["MenuID"]); } } return(kq); }
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 btnXoaKBVang_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương if (XL.Kiemtra(dtpNgayBD.Value.Date, dtpNgayKT.Value.Date)) { MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "xem công", "xoá khai báo vắng", "xem công"), Resources.Caption_ThongBao, MessageBoxButtons.OK); return; } #endregion DataGridView currDataGrid = XacDinhDataGridViewDangChon(); if (MessageBox.Show("Xoá các khai báo vắng của nhân viên với các ngày được chọn?", Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } if (currDataGrid.SelectedRows.Count != 0) { IEnumerable <dynamic> arrRecord = (from DataGridViewRow row in currDataGrid.SelectedRows let rowViews = (DataRowView)row.DataBoundItem select new { MaCC = (int)rowViews["UserEnrollNumber"], NgayVang = (DateTime)rowViews["TimeStrNgay"] }).ToList(); if (arrRecord.Any() == false) { return; } string query = " delete from Absent where UserEnrollNumber = @UserEnrollNumber and TimeDate = @TimeDate "; foreach (dynamic obj in arrRecord) { int kq = SqlDataAccessHelper.ExecNoneQueryString( query, new string[] { "@UserEnrollNumber", "@TimeDate" }, new object[] { obj.MaCC, obj.NgayVang }); DAO5.GhiNhatKyThaotac("Xoá các khai báo vắng trong ngày", string.Format("Xoá tất cả khai báo vắng của NV có mã chấm công [{0}] trong ngày [{1}]", (int)obj.MaCC, ((DateTime)obj.NgayVang).ToString("dd/MM/yyyy")), maCC: (int)obj.MaCC); } btnXem.PerformClick(); } }
private void frmCapNhatNVHangLoat_Load(object sender, EventArgs e) { List <cPhongBan> dspb = new List <cPhongBan>(); XL.KhoiTaoDSPhongBan(dspb); XL.loadTreePhgBan(treePhongBan, XL2.TatcaPhongban, dspb); cbChucVu.DataSource = DAO5.LoadDataSourceChucVu(false); cbChucVu.DisplayMember = "ChucVu"; cbChucVu.ValueMember = "IDChucVu"; var tableLichTrinh = SqlDataAccessHelper.ExecuteQueryString("select * from Schedule"); cbLichTrinh.DataSource = tableLichTrinh; cbLichTrinh.DisplayMember = "SchName"; cbLichTrinh.ValueMember = "SchID"; }
private void dtpThang_ValueChanged(object sender, EventArgs e) { var ngaydauthang = new DateTime(dtpThang.Value.Year, dtpThang.Value.Month, 1); XL.loadTreePhgBan(treePhongBan, XL2.TatcaPhongban, XL2.TatcaPhongban); treePhongBan.ExpandAll(); #region lấy ds phòng đã kết công và check sẵn DataTable table = DAO5.LayDSPhongDaKetcong(ngaydauthang); //tbd //duyệt từng rows trong table và check node có id phòng, //chỉ check node có id tương ứng ko thực hiện check đệ quy for (int i = 0; i < table.Rows.Count; i++) { int idPhong = (int)table.Rows[i]["IDPhong"]; setCheckedNode_PhongDaKetcong(idPhong, treePhongBan.Nodes[0]); } #endregion }
private void btnXoaKBVang_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region chưa chọn nhân viên thì báo var listMaCC_NV = (from DataGridViewRow dataGridViewRow in dgrdTongHop.SelectedRows let row = (DataRowView)dataGridViewRow.DataBoundItem select(int) row["UserEnrollNumber"]).ToList(); if (listMaCC_NV.Count == 0) { ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000); return; } #endregion if (MessageBox.Show(string.Format("Xoá tất cả khai báo vắng ngày {0} của các nhân viên được chọn?", dtpNgay.Value.Date.ToString("dddd dd/MM/yyyy")), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No) { return; } IEnumerable <dynamic> templist = (from macc in listMaCC_NV select new { MaCC = macc, NgayVang = dtpNgay.Value.Date }); string query = " delete from Absent where UserEnrollNumber = @UserEnrollNumber and TimeDate = @TimeDate "; try { foreach (dynamic obj in templist) { SqlDataAccessHelper.ExecNoneQueryString( query, new string[] { "@UserEnrollNumber", "@TimeDate" }, new object[] { obj.MaCC, obj.NgayVang }); DAO5.GhiNhatKyThaotac("Xoá các khai báo vắng trong ngày", string.Format("Xoá tất cả khai báo vắng của NV có mã chấm công [{0}] trong ngày [{1}]", (int)obj.MaCC, ((DateTime)obj.NgayVang).ToString("dd/MM/yyyy")), maCC: (int)obj.MaCC); } } catch (Exception ex) { lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), ex); MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } dtpNgay_ValueChanged(null, null); }
private void frmQLLuongCongNhat_Load(object sender, EventArgs e) { groupBox1.Text = string.Format(groupBox1.Text, m_thang.ToString("MM/yyyy")); // danh sách nhân viên chi công nhật tháng {0} #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, 4000); return; } #endregion // load danh sách nv tính lương công nhật trong tháng m_OriginTableCongNhat = DAO5.LayTableCongNhat(m_thang); dgrdDSLuongCongnhat.DataSource = m_OriginTableCongNhat; dgrdDSLuongCongnhat.ClearSelection(); }
public static bool CheckLogIn(string tempUsername, string tempPassword, string passroot, ref string tmpConnStr, ref int loaiTK, ref int currUserID, ref string currUserAccount) { var kqDocFile = KiemtraDocFileKetnoiDL(Settings.Default.ConnectionStringPath, ref tmpConnStr); var kq = false; if (!kqDocFile) // ko đọc được file thì trả về false { return(false); } // đọc được file thành công, kiểm tra kết nối csdl if (SqlDataAccessHelper.TestConnection(tmpConnStr) == false) { ACMessageBox.Show(Resources.Text_MatKetNoiCSDL, Resources.Caption_Loi, 3000); return(false); } // kết nối csdl thành công, kiểm tra loại tài khoản SqlDataAccessHelper.ConnectionString = tmpConnStr; if (tempUsername == "root" && tempPassword == passroot) //log in bằng tài khoản root { currUserID = int.MaxValue; currUserAccount = tempUsername; loaiTK = 1; kq = true; } else // kiểm tra login bằng tài khoản thường { string passEncrypt = MyUtility.Mahoa(tempPassword); DataTable dt = DAO5.LogIn(tempUsername, passEncrypt); if (dt.Rows.Count != 0) // tài khoản thường -> { currUserID = (int)dt.Rows[0]["UserID"]; currUserAccount = dt.Rows[0]["UserAccount"].ToString(); loaiTK = 0; kq = true; } else { MessageBox.Show(Resources.Text_Acc_Pass_incorrect, Resources.Caption_ThongBao, MessageBoxButtons.OK); kq = false; } } return(kq); }
private void PhucHoiGioXoa(List <DataRowView> listRowView) { if (listRowView.Count == 0) { return; } foreach (DataRowView rowView in listRowView) { var UserEnrollNumber = (int)rowView["UserEnrollNumber"]; var MachineNo = (int)rowView["MachineNo"]; var TimeStr = (DateTime)rowView["TimeStr"]; var kq = DAO5.PhucHoiGioXoa(UserEnrollNumber, MachineNo, TimeStr); if (kq == 0) { MessageBox.Show("Xảy ra lỗi trong quá trình thao tác. Vui lòng thử lại sau."); break; } } }
private void buttonXoa_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } var shiftid = (lbShiftID.Tag != null) ? (int)(lbShiftID.Tag) : -1; if (shiftid != -1) { int n = DAO5.DelCa(shiftid); if (n == 0) { MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi, MessageBoxButtons.OK, MessageBoxIcon.Error); } } LoadGrid(); // thêm hoặc sửa xong thì load lại grid }
public static DataTable LayDSNV(bool?UserEnabled = null, int[] arrIDPhongBan = null) { var tableNV = DAO5.LayDSNV(arrIDPhongBan); var tableKQ = tableNV.Clone(); foreach (DataRow dataRow in tableNV.Rows) { if (UserEnabled != null) // nếu có truyền trạng thái thì lấy theo trạng thái { if (dataRow["UserEnabled"] == DBNull.Value || (bool)dataRow["UserEnabled"] != UserEnabled) { continue; } } tableKQ.ImportRow(dataRow); // ko truyền trạng thái thì lấy hết } return(tableKQ); }
private void btnLietKe_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } //1. lấy dữ liệu từ form dtpThang.Update(); currMonth = dtpThang.Value; var ngayBD = DateTime.MinValue; var ngayKT = DateTime.MinValue; ngayBD = new DateTime(currMonth.Year, currMonth.Month, 1); ngayKT = new DateTime(currMonth.Year, currMonth.Month, DateTime.DaysInMonth(currMonth.Year, currMonth.Month)); //-----------INFO bắt buộc EndEdit thao tác trên Grid rồi mới thực hiện xử lý tác vụ dgrdDSNVTrgPhg.EndEdit(); dgrdDSNVTrgPhg.Update(); //2. lấy danh sách nhân viên check, nếu chưa có nv nào check thì thông báo BindingContext[dgrdDSNVTrgPhg.DataSource].EndCurrentEdit(); var listNV = (from DataGridViewRow dataGridViewRow in dgrdDSNVTrgPhg.Rows let row = (DataRowView)dataGridViewRow.DataBoundItem where (row["check"] != DBNull.Value && (bool)row["check"]) select((cUserInfo)row["cUserInfo"]).MaCC).ToList(); if (listNV.Count == 0) { ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000); return; } var table = DAO5.LietKeNgayVangChoNV(listNV, ngayBD, ngayKT); dgrdNgayVang.DataSource = table; if (table.Rows.Count == 0) { ACMessageBox.Show("Các nhân viên đang chọn không vắng ngày nào trong tháng.", "Thông báo", 1500); } GC.Collect(); }
private void btnSave_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } var val30 = (int)numPC30.Value; DAO5.UpdSetting((int)numPC30.Tag, val30.ToString()); var val50 = (int)numPC50.Value; DAO5.UpdSetting((int)numPC50.Tag, val50.ToString()); var valPCTCC3 = (int)numPCTCC3.Value; DAO5.UpdSetting((int)numPCTCC3.Tag, valPCTCC3.ToString()); var val100 = (int)numPC100.Value; DAO5.UpdSetting((int)numPC100.Tag, val100.ToString()); var val160 = (int)numPC160.Value; DAO5.UpdSetting((int)numPC160.Tag, val160.ToString()); var val200 = (int)numPC200.Value; DAO5.UpdSetting((int)numPC200.Tag, val200.ToString()); var val290 = (int)numPC290.Value; DAO5.UpdSetting((int)numPC290.Tag, val290.ToString()); var valTGLamDemToiThieu = dateTimePicker1.Value.TimeOfDay; DAO5.UpdSetting((int)dateTimePicker1.Tag, valTGLamDemToiThieu.ToString(@"hh\:mm\:") + "00"); var valChoPhepTre = (int)numPhutTre.Value; DAO5.UpdSetting((int)numPhutTre.Tag, valChoPhepTre.ToString()); var valChoPhepSom = (int)numPhutSom.Value; DAO5.UpdSetting((int)numPhutSom.Tag, valChoPhepSom.ToString()); var valLamThemAfterOT = (int)numPhutAfterOT.Value; DAO5.UpdSetting((int)numPhutAfterOT.Tag, valLamThemAfterOT.ToString()); ACMessageBox.Show("Lưu thông số thành công.", "Thông báo", 2000); }
private void btnCapNhat_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region ko cho cập nhật lương công nhật nếu tháng này đã đã kết lương if (XL.Kiemtra(m_thang, MyUtility.LastDayOfMonth(m_thang))) { MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "cập nhật thông tin làm việc công nhật", "cập nhật thông tin làm việc công nhật", ""), Resources.Caption_ThongBao, MessageBoxButtons.OK); return; } #endregion // lấy thông tin từ form var UserEnrollNumber = (lbUserEnrollNumber.Tag == null) ? -1 : (int)lbUserEnrollNumber.Tag; var DonGiaLuong = (int)numDonGiaLuong.Value; var TamUng = Convert.ToDouble(numTamUng.Value); #region update đơn giá lương , tạm ứng xuống csdl //info ko cần lưu thành tiền vì lúc lưu xuống đã tính thành tiền để có cơ sở tính lương, lúc lấy lên thì tính ra số tổng rồi mới xuất bb string query = @" update DSNVChiCongNhatThang set DonGiaLuong=@DonGiaLuong, TamUng=@TamUng where UserEnrollNumber=@UserEnrollNumber and Thang=@Thang "; int kq2 = SqlDataAccessHelper.ExecNoneQueryString(query, new string[] { "@DonGiaLuong", "@TamUng", "@UserEnrollNumber", "@Thang" }, new object[] { DonGiaLuong, TamUng, UserEnrollNumber, m_thang }); DAO5.GhiNhatKyThaotac("Cập nhật lương công nhật và tạm ứng", string.Format("Cập nhật đơn giá lương công nhật [{1}], tạm ứng [{2}] cho NV có mã chấm công [{0}]", UserEnrollNumber, DonGiaLuong.ToString(Settings.Default.numFormatMoney), TamUng.ToString(Settings.Default.numFormatMoney)), maCC: UserEnrollNumber); #endregion // sau khi cập nhật thì reload lại var table = DAO5.LayTableCongNhat(m_thang); dgrdDSLuongCongnhat.DataSource = table; dgrdDSLuongCongnhat.ClearSelection(); }
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 }; } }
public static void KhoiTaoDSPhongBan(List <cPhongBan> phongBans) { phongBans.Clear(); DataTable table = DAO5.LayDSTatCaPhongBan(); phongBans.AddRange(from DataRow row in table.Rows select new cPhongBan { ID = (int)row["ID"], Ten = row["Description"].ToString(), ViTri = (row["ViTri"] != DBNull.Value) ? (int)row["ViTri"] : int.MaxValue, // các phòng chưa được set thứ tự thì nằm bên dưới idParent = (int)row["RelationID"], //info ở đây sẽ ko xảy ra TH = null vì từ csdl sẽ ko null nhưng vẫn làm đúng, chỉ group phòng ban theo nv là bị null ChoPhep = false }); foreach (cPhongBan phong in phongBans) { cPhongBan parent = phongBans.FirstOrDefault(item => item.ID == phong.idParent); // info idparent = 0 nghĩa là node gốc phong.parent = parent; } }
private void lstTaikhoan_SelectedValueChanged(object sender, EventArgs e) { // lấy userid để load tree view, update check phòng ban chức năng DataRowView rowView = lstTaikhoan.SelectedItem as DataRowView; int Selected_UserID = (int)rowView["UserID"]; // check, uncheck quyền cho các phòng ban trước, ds thao tác sau // VD: tk login duoc phan quyen 1_21; 2_21; 3_21; 7_21; 9_21 (format <idquyen>_<id_tk> thì lấy hết dspb này cho tk được phân quyền, // id nào có check thì phân quyền true, ko có thì phân quyền false. // VD: lấy lên chỉ được 1_25; 9_25 thì set true, còn lại 2_21; 3_21; 7_21; ko có trong kq lấy lên thì set false DataTable table1 = DAO5.LayDSPhong(Selected_UserID); treePhongBan.AfterCheck -= treePhongBan_AfterCheck; //set check ko đệ quy // đưa về root node trước khi thực hiện var root = treePhongBan.TopNode; GetTopLevelNode(ref root); // mỗi lần duyệt node sẽ làm root node chuyển về parent của node cuối nên phải trả về node gốc để duyệt từ đầu while (root.PrevNode != null) { root = root.PrevNode; } SetQuyenPhongBan(root, table1); treePhongBan.AfterCheck += treePhongBan_AfterCheck; // check, uncheck quyền ds thao tác DataTable chucnang = LayDSChucNang(Selected_UserID); #region debug /* for (int i = 0; i < chucnang.Rows.Count; i++) { * DataRow r = chucnang.Rows[i]; * Debug.WriteLine("Selected_UserID=" + r["UserID"].ToString() + "\tMenuID=" + r["MenuID"].ToString() + "\tIsYes=" + r["IsYes"].ToString()); * }*/ #endregion checkQuyenThaotac.ItemCheck -= checkQuyenThaotac_ItemCheck; SetQuyenThaotac(chucnang); checkQuyenThaotac.ItemCheck += checkQuyenThaotac_ItemCheck; }
private void btnXoa_Click(object sender, EventArgs e) { if (XL2.KiemtraKetnoiCSDL() == false) { return; } #region ko cho chỉnh sửa giờ nếu khoảng thời gian xem công tồn tại các ngày đã kết lương if (XL.Kiemtra(m_thang.Date, MyUtility.LastDayOfMonth(m_thang))) { MessageBox.Show(string.Format(Resources.Text_KhoangTGDaKetCong_KoChinhSuaGioCC, "chỉnh sửa thu chi tháng", "thực hiện thao tác", ""), Resources.Caption_ThongBao, MessageBoxButtons.OK); return; } #endregion #region lấy thông tin từ form int?macc = (int?)lbUserEnrollNumber.Tag; if (macc == null) { ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000); return; } #endregion // thực hiện query int kq = SqlDataAccessHelper.ExecNoneQueryString( " delete from DSThuChiThang where Thang=@Thang and UserEnrollNumber=@UserEnrollNumber ", new string[] { "@Thang", "@UserEnrollNumber" }, new object[] { m_thang, macc }); DAO5.GhiNhatKyThaotac("Xoá khoản thu chi tháng", string.Format("Xoá tạm ứng, lương điều chỉnh, mức đóng BHXH, thu chi khác tháng [{0}]... của 1 NV có mã chấm công [{1}]", m_thang.ToString("dd/MM/yyyy"), macc), maCC: macc); if (kq == 0) { MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi); } reloadGridDSThuChi(); }
public static DataTable LayDSNVChuaSX(bool?UserEnabled) { var tableNV = DAO5.LayDSNV(); var tableKQ = tableNV.Clone(); foreach (DataRow dataRow in tableNV.Rows) { if (UserEnabled != null) // nếu có truyền trạng thái thì { if (dataRow["UserEnabled"] == DBNull.Value || (bool)dataRow["UserEnabled"] != UserEnabled) { continue; } } if (dataRow["MaPhong"] == DBNull.Value || (int)dataRow["MaPhong"] == 0) // chỉ lấy các nhân viên mới, ko lấy các nv khác { tableKQ.ImportRow(dataRow); } } return(tableKQ); }