Пример #1
0
        public frmQLNV()
        {
            InitializeComponent();
            log4net.Config.XmlConfigurator.Configure();

            #region kh?i t?o các bi?n c?c b?
            m_DSPhg          = new List <cPhongBan>();
            m_listIDPhongBan = new List <int>();
            m_DSNV           = new List <cUserInfo>();
            #endregion

            // không cho autogen các column khi bind d? li?u: 4 cái
            dgrdDSNVTrgPhg.AutoGenerateColumns = false;


            #region gán template vào các dataSource, ho?c dataView vào các dataSource

            DataView dataView = new DataView(m_Bang_DSNV);
            dgrdDSNVTrgPhg.DataSource = dataView;

            #endregion

            //3. v? 3 checkbox checkall cho DSNV trong pḥng
            XL2.VeCheckBox_CheckAll(dgrdDSNVTrgPhg, checkAll_GridDSNV, checkAll_CheckedChanged, new Point(7, 3));
        }
        private void btnXuatBB_Click(object sender, EventArgs e)
        {
            string tenTrgBP = tbTenTruongBP.Text, tenNVLapBieu = tbTenNVNhapLieu.Text;

            XL.SaveSetting(lastTenNVLapBieuChamCong: tenNVLapBieu, lastTenTruongBP: tenTrgBP);

            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            #region lấy save file name

            saveFileDlg.ShowDialog();
            if (saveFileDlg.FileName == String.Empty)
            {
                return;
            }
            var saveFileName = saveFileDlg.FileName;

            #endregion

            if (radBB_ChamCongThang.Checked)
            {
                WaitWindow.Show(this.XuatBBKetCongThang, "Đang xử lý. Bạn vui lòng đợi trong giây lát...", new object[] { saveFileName, tenNVLapBieu, tenTrgBP });
            }
            else if (radioButton2.Checked)
            {
                WaitWindow.Show(this.XuatBBGioKoDungQuyDinh_Va_DiTreVesom, "Đang xử lý. Bạn vui lòng đợi trong giây lát...", new object[] { saveFileName });
            }
        }
        public frm_11_XemCong()
        {
            InitializeComponent();
            log4net.Config.XmlConfigurator.Configure();

            m_listIDPhongBan      = new List <int>();
            m_DSNV                = new List <cUserInfo>();
            m_Bang_DSNV           = TaoBang_DSNV();
            m_Bang_TongHopXemCong = TaoBang_TongHopXemCong();
            m_Bang_GioKDQD        = TaoBang_GioKDQD();
            m_Bang_GioThieuCheck  = TaoBang_GioThieuCheck();
            m_Bang_ThK_TreSom     = TaoBang_ThK_TreSom();

            //1. không cho autogen các column khi bind dữ liệu: 4 cái
            dgrdTongHop.AutoGenerateColumns = dgrdGioKDQD.AutoGenerateColumns = dgrdGioThieuCheck.AutoGenerateColumns = dgrdThKTreSom.AutoGenerateColumns
                                                                                                                            = dgrdDSNVTrgPhg.AutoGenerateColumns = false;
            dgrdTongHop.DataSource       = m_Bang_TongHopXemCong;
            dgrdGioKDQD.DataSource       = m_Bang_GioKDQD;
            dgrdGioThieuCheck.DataSource = m_Bang_GioThieuCheck;
            dgrdThKTreSom.DataSource     = m_Bang_ThK_TreSom;
            DataView dataView = new DataView(m_Bang_DSNV);

            dgrdDSNVTrgPhg.DataSource = dataView;


            var today = DateTime.Today;

            dtpNgayBD.Value = new DateTime(today.Year, today.Month, 1);
            dtpNgayKT.Value = new DateTime(today.Year, today.Month, DateTime.DaysInMonth(today.Year, today.Month));

            //3. vẽ 3 checkbox checkall cho DSNV trong phòng
            XL2.VeCheckBox_CheckAll(dgrdDSNVTrgPhg, checkAll_GridDSNV, checkAll_CheckedChanged, new Point(7, 3));
        }
Пример #4
0
        private void btnKetLuong_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            XL.SaveSetting(lastTenNVLapBieuLuong: tbTenNVLapbieuLuong.Text);

            //nếu đã kết lương tháng này rồi thì ko cho kết lương, phải hủy kết lương trước
            #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("Tháng {0} đã kết lương! Trường hợp muốn kết lương lại tháng này yêu cầu hủy kết lương tháng và thực hiện kết lương lại.", m_Thang.ToString("MM/yyyy")),
                                Resources.Caption_ThongBao);
                return;
            }

            #endregion
            WaitWindow.Show(this.KetLuong, "Đang kết lương tháng. Bạn vui lòng đợi trong giây lát...");

            saveFileDialog.ShowDialog();
            if (saveFileDialog.FileName != string.Empty)
            {
                string saveFileName = saveFileDialog.FileName;
                WaitWindow.Show(this.XuatBBLuong, "Đang xuất bảng kết lương. Bạn vui lòng đợi...",
                                new object[] { tbTenNVLapbieuLuong.Text, saveFileName });
            }
        }
        private void btnPhucHoi_Click(object sender, EventArgs e)
        {
            #region hỏi lại trước khi thực hiện
            #endregion
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            if (tabControl1.SelectedTab == tabDSGThem)
            {
                IEnumerable <DataGridViewRow> lstGridViewRow = dgrdPH_Them.SelectedRows.Cast <DataGridViewRow>();
                var listRowView = (from row in (lstGridViewRow)
                                   select((DataRowView)row.DataBoundItem)).ToList();
                PhucHoiGioThem(listRowView);
            }
            else if (tabControl1.SelectedTab == tabDSGXoaa)
            {
                IEnumerable <DataGridViewRow> lstGridViewRow = dgrdPH_Xoaa.SelectedRows.Cast <DataGridViewRow>();
                var listRowView = (from row in (lstGridViewRow)
                                   select((DataRowView)row.DataBoundItem)).ToList();
                PhucHoiGioXoa(listRowView);
            }
            else if (tabControl1.SelectedTab == tabDSGSuaa)
            {
                IEnumerable <DataGridViewRow> lstGridViewRow = dgrdPH_GioGoc.SelectedRows.Cast <DataGridViewRow>();
                var listRowView = (from row in (lstGridViewRow)
                                   select((DataRowView)row.DataBoundItem)).ToList();
                PhucHoiGioGoc(listRowView);
            }
            Thread.Sleep(20);
            btnXem.PerformClick();
        }
        private void btnKBVangDaiHan_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            dgrdDSNVTrgPhg.EndEdit();
            dgrdDSNVTrgPhg.Update();

            BindingContext[dgrdDSNVTrgPhg.DataSource].EndCurrentEdit();
            //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
            var listMaCC_NV = (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 (listMaCC_NV.Count == 0)
            {
                ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000);
                return;
            }

            frmKBVang_DaiHan frm = new frmKBVang_DaiHan {
                listMaCC_NV = listMaCC_NV, WindowState = FormWindowState.Normal, StartPosition = FormStartPosition.CenterParent
            };

            frm.ShowDialog();

            // sau khi thao tác xong thì liệt kê lại
            Thread.Sleep(20);
            btnLietKe.PerformClick();
        }
Пример #7
0
        private void btnReset_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            if (tbPass1.Text != tbPass2.Text)
            {
                MessageBox.Show("Mật khẩu không khớp.");
                return;
            }
            if (tbPass1.Text == string.Empty || tbPass2.Text == string.Empty)
            {
                MessageBox.Show("Mật khẩu không được để trống.");
                return;
            }

            string tempTenTK       = tbTenTaiKhoan.Text;
            string tempPass        = tbPass1.Text;
            string tempPassEncrypt = MyUtility.Mahoa(tempPass);
            string updateString    = @" update NewUserAccount set Password=@Password where UserAccount = @UserAccount ";
            int    kq = SqlDataAccessHelper.ExecNoneQueryString(updateString, new[] { "@UserAccount", "@Password" }
                                                                , new object[] { tempTenTK, tempPassEncrypt }, CanLog: false);

            if (kq != 0)
            {
                ACMessageBox.Show("Reset mật khẩu tài khoản thành công.", "Thông báo", 2000);
            }
            else
            {
                ACMessageBox.Show("Không Reset mật khẩu tài khoản được.", "Lỗi", 2000);
            }
            tbPass1.Text = tbPass2.Text = string.Empty;
        }
Пример #8
0
        private void btnThem_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            TreeNode            node = treePhongBan.SelectedNode;
            frmThem_Capnhat_1NV frm  = new frmThem_Capnhat_1NV {
                StartPosition = FormStartPosition.CenterParent
            };

            frm.mode = 1;
            frm.ShowDialog();
            if (frm.IsReload)
            {
                string oldFilter = string.Empty;
                var    dataView  = dgrdDSNVTrgPhg.DataSource as DataView;
                if (dataView != null)
                {
                    oldFilter = dataView.RowFilter;
                }
                treePhongBan_AfterSelect(treePhongBan, new TreeViewEventArgs(node));
                dataView = dgrdDSNVTrgPhg.DataSource as DataView;
                if (dataView != null)
                {
                    dataView.RowFilter = oldFilter;
                }
            }
        }
Пример #9
0
        private void Form1_Load(object sender, EventArgs e)
        {
            IsReload = false;
            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);
                this.Close();
                return;
            }

            dtpThang.Value = m_thang;

            var tablePhong = DAL.LayDSTatCaPhongBan();

            if (tablePhong.Rows.Count == 0)
            {
                AutoClosingMessageBox.Show("Bạn chưa được phân quyền thao tác.", "Thông báo", 2000);
                return;
            }
            //2. lấy dữ liệu phòng ban được phép thao tác  và load treePhongBan : xoá dữ liệu trước và load
            treePhongBan.Nodes.Clear();
            loadTreePhgBan(treePhongBan, tablePhong);

            // đăng ký sự kiện cho tree và chọn topNode
            treePhongBan.AfterSelect += treePhongBan_AfterSelect;
            treePhongBan.SelectedNode = treePhongBan.TopNode;
            XL2.VeCheckBox_CheckAll(dgrdDSNVTrgPhg, checkAll_GridDSNV, checkAll_CheckedChanged, new Point(7, 3));
        }
Пример #10
0
        public frm_XemCong()
        {
            InitializeComponent();
            log4net.Config.XmlConfigurator.Configure();

            #region khởi tạo các biến cục bộ
            m_DSPhg          = new List <cPhongBan>();
            m_listIDPhongBan = new List <int>();
            m_DSNV           = new List <cUserInfo>();
            #endregion

            #region tạo template dataSource

            m_Bang_DSNV           = TaoBang_DSNV();
            m_Bang_TongHopXemCong = TaoBang_TongHopXemCong();
            m_Bang_GioKDQD        = TaoBang_GioKDQD();
            m_Bang_GioThieuCheck  = TaoBang_GioThieuCheck();
            m_Bang_ThK_TreSom     = TaoBang_ThK_TreSom();

            #endregion

            #region không cho autogen các column khi bind dữ liệu: 4 cái

            dgrdTongHop.AutoGenerateColumns             = dgrdGioKDQD.AutoGenerateColumns
                                                        = dgrdGioThieuCheck.AutoGenerateColumns = dgrdThKTreSom.AutoGenerateColumns
                                                                                                      = dgrdDSNVTrgPhg.AutoGenerateColumns = false;

            #endregion

            #region gán template vào các dataSource, hoặc dataView vào các dataSource

            dgrdTongHop.DataSource       = m_Bang_TongHopXemCong;
            dgrdGioKDQD.DataSource       = m_Bang_GioKDQD;
            dgrdGioThieuCheck.DataSource = m_Bang_GioThieuCheck;
            dgrdThKTreSom.DataSource     = m_Bang_ThK_TreSom;
            DataView dataView = new DataView(m_Bang_DSNV);
            dgrdDSNVTrgPhg.DataSource = dataView;

            #endregion

            //3. vẽ 3 checkbox checkall cho DSNV trong phòng
            XL2.VeCheckBox_CheckAll(dgrdDSNVTrgPhg, checkAll_GridDSNV, checkAll_CheckedChanged, new Point(7, 3));

            #region khởi tạo giá trị mặc định ngày từ thứ 2 tuần trước đến ngày hôm nay

            var      today            = DateTime.Today;
            DateTime mondayOfLastWeek = today.AddDays(-(int)today.DayOfWeek - 6);
            var      ngaybd           = mondayOfLastWeek;
            var      ngaykt           = today;
            if (Settings.Default.LastStartDate != DateTime.MinValue)
            {
                ngaybd = Settings.Default.LastStartDate;
                ngaykt = Settings.Default.LastEndDate;
            }
            dtpNgayBD.Value = ngaybd;
            dtpNgayKT.Value = ngaykt;

            #endregion
        }
Пример #11
0
        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();
        }
        private void btnThem_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            // xác nhận thực hiện
            if (MessageBox.Show("Khai báo vắng cho các nhân viên?", Resources.Caption_XacNhan, MessageBoxButtons.OKCancel) == DialogResult.Cancel)
            {
                return;
            }
            #region             //lấy loại vắng, workingDay, workingTime, absentCode, XL2.currUserID

            if (cbLoaiVang.SelectedItem == null)
            {
                ACMessageBox.Show("Bạn chưa chọn loại vắng", Resources.Caption_ThongBao, 2000);
                return;
            }
            var rowLV      = cbLoaiVang.SelectedItem as DataRowView;
            var absentCode = rowLV["AbsentCode"].ToString();
            var workingDay = (float)((frm_KBVang.Working)cbSoBuoi.SelectedItem).Cong;

            #region set working time tùy theo workingDay

            var workingTime = 0f;

            if (Math.Abs(workingDay - 0f) < 0.01f)
            {
                workingTime = 0f;
            }
            else if (Math.Abs(workingDay - 0.5f) < 0.01f)
            {
                workingTime = 4f;
            }
            else if (Math.Abs(workingDay - 1f) < 0.01f)
            {
                workingTime = 8f;
            }

            #endregion

            #endregion

            IsReload = true;
            List <Error> listError = new List <Error>();
            XL.ThemNgayVang(listMaCC_NgayVang, workingDay, workingTime, absentCode, listError);
            if (listError.Count > 0)
            {
                frmError frm = new frmError {
                    StartPosition = FormStartPosition.CenterParent, listError = listError
                };
                frm.ShowDialog();
            }
            Close();
        }
        private void btnCapNhatVaoCSDL_Click(object sender, EventArgs e)
        {
            IsReload = true;
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            var      table     = dgrdDThuchiExcel.DataSource as DataTable;
            DateTime thang     = m_Thang;
            var      flagError = false;
            var      kq2       = 0;

            if (table != null)
            {
                var tableTatCaNV = XL.LayDSNV(true);                //tbd
                foreach (DataRow row in table.Rows)
                {
                    #region lấy thông tin

                    var userFullcode = row["UserFullCode"].ToString().TrimStart().TrimEnd().ToLower();
                    //var arrRows = tableTatCaNV.Select("UserFullCode = '" +userFullcode + "'","", DataViewRowState.CurrentRows);
                    var resultRow = (tableTatCaNV.Rows.Cast <DataRow>().Where(
                                         dataRow => dataRow["UserFullCode"].ToString().TrimStart().TrimEnd().ToLower() == userFullcode)).SingleOrDefault();
                    if (resultRow == null)
                    {
                        continue;
                    }
                    var userfc    = row["UserFullCode"].ToString();
                    var HSLCBTT17 = (float)row["HSLCBTT17"];
                    var HSPCCV    = (float)row["HSPCCV"];
                    var HSPCDH    = (float)row["HSPCDH"];
                    var HSPCTN    = (float)row["HSPCTN"];

                    #endregion
                    var kq = SqlDataAccessHelper.ExecNoneQueryString(@"update UserInfo set HSLCBTT17 = @HSLCBTT17, HSPCCV=@HSPCCV, HSPCDH=@HSPCDH, HSPCTN=@HSPCTN where UserFullCode=@UserFullCode",
                                                                     new string[] { "@HSLCBTT17", "@HSPCCV", "@HSPCDH", "@HSPCTN", "@UserFullCode" }, new object[] { HSLCBTT17, HSPCCV, HSPCDH, HSPCTN, userFullcode });

                    #region báo lỗi nếu ko cập nhật được

                    if (kq == 0)
                    {
                        flagError = true;
                        ACMessageBox.Show(string.Format("Xảy ra lỗi trong quá trình cập nhật tại vị trí mã nhân viên {0} .\nVui lòng thử lại.", userFullcode), "Lỗi", 3000);
                        break;
                    }
                    kq2 += kq;
                    #endregion
                }
                if (flagError == false)
                {
                    ACMessageBox.Show("Thực hiện thành công.", "Thông báo", 2000);
                }
            }
        }
        private void btnThucHien_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            var thang = dtpThang.Value;

            #region confirm trước khi kết công
            if (MessageBox.Show(string.Format(Resources.Text_ConfirmKetCongBoPhan, thang.ToString("MM/yyyy")), Resources.Caption_XacNhan, MessageBoxButtons.YesNo) == DialogResult.No)
            {
                return;
            }
            #endregion

            string filePath = string.Empty;
            saveFileDialog.ShowDialog();
            if (saveFileDialog.FileName != string.Empty)
            {
                filePath = saveFileDialog.FileName;
            }
            else
            {
                ACMessageBox.Show("Vui lòng nhập tên file.", Resources.Caption_ThongBao, 2000);
                return;
            }
            string tenNVLapBieu = tbTenNVLapbieu.Text;
            string tenTrgBP     = tbTenTrgBP.Text;
            XL.SaveSetting(lastTenNVLapBieuChamCong: tenNVLapBieu, lastTenTruongBP: tenTrgBP);

            try             //general try catch
            {
                #region lấy ds phòng ban 1. được thao tác, 2.check kết công
                List <cPhongBan> dsphongban = new List <cPhongBan>();
                // đư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;
                }
                GetNode_DuocThaotac_CheckKetcong(root, dsphongban);
                #endregion

                WaitWindow.Show(this.ThucHienKetCong, "Đang kết công, bạn vui lòng đợi trong giây lát...", new object[] { thang, dsphongban });
                WaitWindow.Show(this.XuatBBChamCong, "Đang xuất báo biểu, bạn vui lòng đợi trong giây lát...", new object[] { filePath, tenNVLapBieu, tenTrgBP, thang, dsphongban });
                //kết công xong thì đóng form
                Close();
            } 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 frmDangKyNhiemVuChoNV()
        {
            InitializeComponent();

            log4net.Config.XmlConfigurator.Configure();
            // không cho autogen các column khi bind dữ liệu
            dgrdDSNVTrgPhg.AutoGenerateColumns = false;

            //3. vẽ checkbox checkall cho DSNV trong phòng
            XL2.VeCheckBox_CheckAll(dgrdDSNVTrgPhg, checkAll_GridDSNV, checkAll_CheckedChanged, new Point(7, 3));
        }
Пример #16
0
        private void btnXacNhanPC100_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", "xác nhận phụ cấp", "xem công"),
                                Resources.Caption_ThongBao, MessageBoxButtons.OK);
                return;
            }

            #endregion


            // xác định đang chọn datagrid nào để lấy các datarow của các datagrid đó
            DataGridView currDataGrid = XacDinhDataGridViewDangChon();

            // lọc lấy các datarow được check, nếu không có row nào được check thì chế độ view all, ngược lại thì xem các ngày được check
            if (currDataGrid.SelectedRows.Count != 0)
            {
                var arrRecord = (from DataGridViewRow row in currDataGrid.SelectedRows
                                 select(((DataRowView)row.DataBoundItem).Row)).ToArray();

                if (arrRecord.Length == 0)
                {
                    return;
                }

                frm_XN_PC100 frm112 = new frm_XN_PC100 {
                    StartPosition = FormStartPosition.CenterParent,
                    m_arrRecd     = arrRecord
                };
                //frm112.Location = new Point((int)((Size.Width - frm112.Size.Width) / 2f), (int)((Size.Height - frm112.Size.Height) / 2f));
                //frm112.m_DSNV = m_DSNV;
                frm112.ShowDialog();

                // lấy dsnv đang chọn
                var listNV = (from DataGridViewRow dataGridViewRow in dgrdDSNVTrgPhg.Rows
                              let rowView = dataGridViewRow.DataBoundItem as DataRowView
                                            where (rowView["check"] != DBNull.Value && (bool)rowView["check"])
                                            select(cUserInfo) rowView["cUserInfo"])
                             .ToList();

                if (frm112.IsReload)
                {
                    Reload4DataGrid(listNV);
                }
            }
        }
        public frm_21_KhaiBaoVang()
        {
            InitializeComponent();
            dgrdDSNVTrgPhg.AutoGenerateColumns = dgrdNgayVang.AutoGenerateColumns = false;
            m_listIDPhongBan = new List <int>();
            m_DSNV           = new List <cUserInfo>();
            m_Bang_DSNV      = TaoBang_DSNV();
            DataView dataView = new DataView(m_Bang_DSNV);

            dgrdDSNVTrgPhg.DataSource = dataView;

            XL2.VeCheckBox_CheckAll(dgrdDSNVTrgPhg, checkAll_GridDSNV, checkAll_CheckedChanged, new Point(7, 3));
        }
        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"];
                }
            }
        }
Пример #19
0
        private void btnThemXoaSuaDonGian_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", "chỉnh sửa giờ chấm công", "xem công"),
                                Resources.Caption_ThongBao, MessageBoxButtons.OK);
                return;
            }

            #endregion

            // xác định datagrid nào đang chọn thì lấy dòng SelectedRows[0] của datagrid đó
            DataGridView currDataGrid = XacDinhDataGridViewDangChon();

            if (currDataGrid.SelectedRows.Count == 0)
            {
                return;
            }
            var arrRecord = ((DataRowView)((currDataGrid.SelectedRows[0]).DataBoundItem)).Row;

            // gọi form editTime và truyền dòng dữ liệu đang chọn sang cho form đó
            var frm1 = new frm_XemCT_GioCC {
                StartPosition = FormStartPosition.CenterParent,
                selectedRow   = arrRecord
            };
            frm1.ShowDialog();

            #region             // sau khi edit giờ chấm công xong thì reload lại và tô màu 2 dataGrid tổng hợp và giờ KDQD

            if (frm1.IsReload)
            {
                // lấy dsnv đang chọn
                var listNV = (from DataGridViewRow dataGridViewRow in dgrdDSNVTrgPhg.Rows
                              let rowView = dataGridViewRow.DataBoundItem as DataRowView
                                            where (rowView["check"] != DBNull.Value && (bool)rowView["check"])
                                            select(cUserInfo) rowView["cUserInfo"])
                             .ToList();

                Reload4DataGrid(listNV);
            }

            #endregion
        }
Пример #20
0
        private void frm_PhanQuyen_Load(object sender, EventArgs e)
        {
            // load danh sách chức năng trước tất cả các chức năng mà tài khoản này được phép thao tác
            List <cChucNang> lstChucnang = XL2.TaoChucNang();

            checkQuyenThaotac.ValueMember   = "ID";
            checkQuyenThaotac.DataSource    = lstChucnang;
            checkQuyenThaotac.DisplayMember = "MoTa";
            checkQuyenThaotac.Refresh();

            // load tree view danh sách phòng ban mà tài khoản đang login được phép thao tác, nếu tài khoản login là root thì load hết danh sách phòng ban
            List <cPhongBan> dsphongThaotac = new List <cPhongBan>();

            if (XL2.currUserID != int.MaxValue)
            {
                XL.KhoiTaoDSPhongBan(dsphongThaotac, XL2.currUserID);
            }
            else
            {
                XL.KhoiTaoDSPhongBan(dsphongThaotac);
            }

            XL.loadTreePhgBan(treePhongBan, XL2.TatcaPhongban, dsphongThaotac);             // sau khi load xong sẽ có được list dspb1 chứa ds id các phòng ban mà currID hiện tại được phép thao tác
            // việc check các item quyền sẽ để cho sự kiện chọn tài khoản  thực hiện

            // load tất cả danh sách tài khoản trừ tài khoản đang login
            lstTaikhoan.DisplayMember = "UserAccount";
            if (XL2.currUserID != int.MaxValue)
            {
                lstTaikhoan.DataSource = LayDSTaikhoan(XL2.currUserID);
            }
            else
            {
                lstTaikhoan.DataSource = LayDSTatCaTaikhoan();
            }

            #region             // trường hợp đặc biệt ko có tài khoản nào
            if (lstTaikhoan.Items.Count == 0)
            {
                ACMessageBox.Show("Không có tài khoản để phân quyền.", "Thông báo", 2000);
                this.Close();
            }
            #endregion

            // chọn mặc định tài khoản đầu tiên, lúc này phát sự kiện index change sẽ check các item quyền
            // chọn tài khoản đồng thời sẽ check , uncheck các phòng ban được thao tác
            // đồng thời check , uncheck các chức năng được tài khoản được chọn được phép thao tác
            lstTaikhoan.SelectedIndex = 0;
        }
        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 = DAO.XoaNgayVangNV(arrRecord);
            if (kqThaotac == false)
            {
                MessageBox.Show(Resources.Text_CoLoi, Resources.Caption_Loi);
            }
            GC.Collect();

            Thread.Sleep(20);
            btnLietKe.PerformClick();
        }
        private void btnXem_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            MyUtility.UpdateControl(dtpStartThoiDiemSua, dtpEndddThoiDiemSua);

            DateTime StartThoiDiemSua = DateTime.Today;
            DateTime EndddThoiDiemSua = DateTime.Today;
            int      UserID           = 0;
            var      query            = @"	select	NhatKyThaoTac.*, NewUserAccount.UserAccount, UserInfo.UserFullName	, RelationDept.Description as TenPhong										
							from	NewUserAccount, 
									NhatKyThaoTac	left outer join UserInfo on NhatKyThaoTac.UserEnrollNumber = UserInfo.UserEnrollNumber
													left outer join RelationDept on NhatKyThaoTac.MaPhong = RelationDept.ID
							where	NhatKyThaoTac.UserID = NewUserAccount.UserID "                            ;

            if (checkThoiDiemSua.Checked)
            {
                StartThoiDiemSua = dtpStartThoiDiemSua.Value;
                EndddThoiDiemSua = dtpEndddThoiDiemSua.Value;
                var temp = " and   (ThoiDiem between @StartThoiDiemSua and @EndddThoiDiemSua) ";
                query += temp;
            }
            if (radThucHienBoi1TaiKhoan.Checked)
            {
                UserID = (int)cbTaiKhoanThucHien.SelectedValue;
                var temp = " and  NhatKyThaoTac.UserID = @UserID ";
                query += temp;
            }
            query += " order by ThoiDiem desc ";

            var table = SqlDataAccessHelper.ExecuteQueryString(query,
                                                               new string[] { "@StartThoiDiemSua", "@EndddThoiDiemSua", "@UserID" },
                                                               new object[] { StartThoiDiemSua, EndddThoiDiemSua, UserID });

            var temp1 = (from DataRow row in table.Rows.Cast <DataRow>()
                         select new { loai = row["Loai"] }).DistinctBy(o => o.loai).ToList();

            cbLoaiThaoTac.SelectionChangeCommitted -= cbLoaiThaoTac_OnSelectionChangeCommitted;
            cbLoaiThaoTac.DataSource                = null;
            cbLoaiThaoTac.DataSource                = temp1;
            cbLoaiThaoTac.DisplayMember             = "loai";
            cbLoaiThaoTac.SelectionChangeCommitted += cbLoaiThaoTac_OnSelectionChangeCommitted;
            DataView view = new DataView(table);

            dgrdLichSu.DataSource = view;
        }
        private void btnChamCong_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            /* 1. lấy dsnv check, lấy tháng
             *
             */
            string     strChecked_ArrMaCC = checkedDSNV.EditValue.ToString();
            List <int> arrMaCC            = new List <int>();

            strChecked_ArrMaCC.Split(new char[] { ',' }).ToList().ForEach(item => arrMaCC.Add(int.Parse(item)));
        }
Пример #24
0
        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 });
                    DAO.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();
            }
        }
Пример #25
0
        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 });
                    DAO.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);
        }
Пример #26
0
        private void btnXuatBB_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            //1. lấy dữ liệu từ form
            #region lấy ngày BD và kết thúc, và update lại Ngày BD = 1 ngày trước 31/08 12:00 AM, ngày KT là 1 ngày sau ngay 1 23:59:59
            dtpNgay.Update();
            DateTime ngayBD = dtpNgay.Value.Date;
            ngayBD = ngayBD.AddDays(-2d);
            DateTime ngayKT = ngayBD.AddDays(4d);
            #endregion


            try             //general try catch
            {
                if (saveFileDlgDiemDanh.ShowDialog() == DialogResult.Cancel || saveFileDlgDiemDanh.FileName == String.Empty)
                {
                    return;
                }
                var saveFileName = saveFileDlgDiemDanh.FileName;


                using (var p = new ExcelPackage()) {
                    #region ghi sheet diemdanh

                    p.Workbook.Worksheets.Add("DiemDanhNV");
                    var ws = p.Workbook.Worksheets["DiemDanhNV"];
                    ws.Name = "DiemDanhNV";                     //Setting Sheet's name
                    XL.ExportSheetDiemDanh(ws, m_DSNV);

                    #endregion

                    #region Ghi file , nếu xảy ra lỗi thì báo
                    Byte[] bin = p.GetAsByteArray();
                    XL.XuatFileExcel(saveFileName, bin, "btnXuatBB_Click XuatBBDiemDanh");
                    #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);
            }
        }
        private void btnTaoTK_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }

            if (tbPass1.Text != tbPass2.Text)
            {
                MessageBox.Show("Mật khẩu không khớp.");
                return;
            }
            if (tbPass1.Text == string.Empty || tbPass2.Text == string.Empty)
            {
                MessageBox.Show("Mật khẩu không được để trống.");
                return;
            }

            string insertString = " insert into NewUserAccount(UserID, UserAccount, Password) values (@UserID, @UserAccount, @password) ";

            int tempUserID = (int)cbTaikhoanWE.SelectedValue;

            string tempUserAccount = cbTaikhoanWE.SelectedItem.ToString();
            string tempPass        = tbPass1.Text;
            string tempPassEncrypt = MyUtility.Mahoa(tempPass);

            try {
                int kq = SqlDataAccessHelper.ExecNoneQueryString(insertString
                                                                 , new[] { "@UserID", "@UserAccount", "@password" }
                                                                 , new object[] { tempUserID, tempUserAccount, tempPassEncrypt }, CanLog: false);
                if (kq != 0)
                {
                    MessageBox.Show("Thêm tài khoản thành công.", "Thông báo", MessageBoxButtons.OK);
                }
                else
                {
                    MessageBox.Show("Không thêm được tài khoản.", "Lỗi", MessageBoxButtons.OK);
                }
                Load_dataGridNewUserAccount();
                Load_cbTaikhoanWE();
            } catch (Exception exception) {
                lg.Error(string.Format("[{0}]_[{1}]\n", this.Name, System.Reflection.MethodBase.GetCurrentMethod().Name), exception);
                MessageBox.Show("Mất kết nối đến máy chủ. Vui lòng thử lại.", "Lỗi", MessageBoxButtons.OK);
            }
        }
Пример #28
0
        public frmThemDieuChinhLuong()
        {
            InitializeComponent();

            m_listIDPhongBan = new List <int>();
            m_DSNV           = new List <cUserInfo>();
            m_Bang_DSNV      = TaoBang_DSNV();

            //1. không cho autogen các column khi bind dữ liệu: 4 cái
            dgrdDSNVTrgPhg.AutoGenerateColumns = false;
            DataView dataView = new DataView(m_Bang_DSNV);

            dgrdDSNVTrgPhg.DataSource = dataView;


            //3. vẽ 3 checkbox checkall cho DSNV trong phòng
            XL2.VeCheckBox_CheckAll(dgrdDSNVTrgPhg, checkAll_GridDSNV, checkAll_CheckedChanged, new Point(7, 3));
        }
        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
        }
        private void btnXem_Click(object sender, EventArgs e)
        {
            if (XL2.KiemtraKetnoiCSDL() == false)
            {
                return;
            }
            //1. lấy dữ liệu từ form

            #region lấy ngày BD và kết thúc nếu quá 62 ngày thì báo

            dtpNgayBD.Update();
            dtpNgayKT.Update();
            var ngayBD = dtpNgayBD.Value.Date;
            var ngayKT = dtpNgayKT.Value.Date;
            #endregion


            BindingContext[dgrdDSNVTrgPhg.DataSource].EndCurrentEdit();
            #region             //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

            var listNV = (from DataGridViewRow dataGridViewRow in dgrdDSNVTrgPhg.Rows
                          let rowView = dataGridViewRow.DataBoundItem as DataRowView
                                        where (rowView["check"] != DBNull.Value && (bool)rowView["check"])
                                        select(cUserInfo) rowView["cUserInfo"])
                         .ToList();

            if (listNV.Count == 0)
            {
                ACMessageBox.Show(Resources.Text_ChuaChonNV, Resources.Caption_ThongBao, 2000);                 //
                GC.Collect();
                return;
            }

            #endregion
            XL.LayBang_PH_Them(listNV, ngayBD, ngayKT, ref m_Bang_PH_Them);
            XL.LayBang_PH_Xoaa(listNV, ngayBD, ngayKT, ref m_Bang_PH_Xoaa);
            XL.LayBang_PH_GioGoc(listNV, ngayBD, ngayKT, ref m_Bang_PH_GioGoc);
            XL.LayBang_GioDaXN(listNV, ngayBD, ngayKT, ref m_Bang_GioDaXN);
            dgrdPH_Them.DataSource   = m_Bang_PH_Them;
            dgrdPH_Xoaa.DataSource   = m_Bang_PH_Xoaa;
            dgrdPH_GioGoc.DataSource = m_Bang_PH_GioGoc;
            dgrdGioDaXN.DataSource   = m_Bang_GioDaXN;
        }