public frmDanhSachPhieuXuatTamVatTu(string maphieu)
        {
            InitializeComponent();
             this.maphieu =maphieu;
            PhieuXuatTam = new clsPhieuXuatTamVatTu();

            //Init cls Button
            PanelButton = new clsPanelButton2();

            frmAction = new FormActionDelegate2(FormAction);
            PanelButton.setDelegateFormAction(frmAction);

            PanelButton.AddButton(enumButton2.Them, ref btnThem);
            PanelButton.AddButton(enumButton2.Xoa, ref btnXoa);
            PanelButton.AddButton(enumButton2.Sua, ref btnSua);
            PanelButton.AddButton(enumButton2.LamMoi, ref btnLamMoi);
            PanelButton.AddButton(enumButton2.Luu, ref btnLuu);
            PanelButton.AddButton(enumButton2.Huy, ref btnHuy);

            PanelButton.AddButton(enumButton2.Dong, ref btnDong);

            PanelButton.setButtonClickEvent(enumButton2.Dong);
            PanelButton.setButtonClickEvent(enumButton2.LamMoi);

            PanelButton.setButtonStatus(enumButton2.Xoa, false);
            PanelButton.setButtonStatus(enumButton2.Luu, false);
            PanelButton.setButtonStatus(enumButton2.Huy, false);
            btnXoa.Enabled = false;
            btnLuu.Enabled = false;
            btnHuy.Enabled = false;

            PanelButton.ResetButton();

            LoadData();
            InitCombo();
        }
        public int CapNhapChiTietPhieuXuat(DataTable dt, string maPhieu, clsPhieuXuatTamVatTu phieuxuat)
        {
            this.new_dt = null;
            this.old_dt = null;
            this.dt_TonKho = null;
            this.dt_TheKho = null;

            this.maPhieu = maPhieu;
            this.Ngay_xuat = phieuxuat.Ngay_xuat;
            this.ID_nhan_vien = phieuxuat.ID_Nhan_vien;
            //phieuxuat.

            //Dùng cho xét nợ VT giữa các kho
            ID_Kho_Xuat = phieuxuat.ID_kho;

            //B1: Get về dt vt theo mã phiếu có trong DB
            this.old_dt = GetDataTable(maPhieu);
            this.new_dt = dt.Copy();

            //Cache tồn kho
            this.dt_TonKho = getAll_Ton_kho(new_dt);
            this.dt_TheKho = getAll_TheKho(new_dt);
            //dt_TheKho =

            //BeginTransaction
            SqlTransaction m_trans = null;

            SqlConnection m_conn = new SqlConnection(clsThamSoUtilities.connectionString);
            try
            {
                if (m_conn.State == ConnectionState.Closed)
                    m_conn.Open();

                m_trans = m_conn.BeginTransaction();

                //Cập nhật phiếu xuất --> phần header
                if (phieuxuat.CapNhapPhieuXuat(m_trans, m_conn) == -1)
                {
                    m_trans.Rollback();
                    m_conn.Close();
                    return -1;
                }

                //Cập nhật phần chi tiết trên grid

                //Nếu mã phiếu này chưa có trong DB, thêm mới tất cả.
                if (old_dt.Rows.Count == 0)
                {
                    for (int i = 0; i < new_dt.Rows.Count; i++)
                    {
                        if (Insert_row(i, m_trans, m_conn) == -1)
                        {
                            m_trans.Rollback();
                            m_conn.Close();
                            return -1;
                        }
                    }

                    m_trans.Commit();
                    m_conn.Close();
                    return 1;
                } //End Insert mới

                //Nếu đã có trong DB, cập nhật theo table mới --> update cái đã có, insert cái chưa có
                //Chuyển sang dùng ID để quyết định Insert hay Update
                for (int i = 0; i < new_dt.Rows.Count; i++)
                {
                    DataRow selectedRow = new_dt.Rows[i];
                    int id = Int32.Parse(selectedRow["ID_chi_tiet_phieu_xuat_tam"].ToString());
                    if (id == -1)
                    {
                        if (Insert_row(i, m_trans, m_conn) == -1)
                        {
                            m_trans.Rollback();
                            m_conn.Close();
                            return -1;
                        }
                    }
                    else
                    {
                        DataRow[] KiemTra = old_dt.Select(string.Format("ID_chi_tiet_phieu_xuat_tam='{0}'", id));
                        if (Update_row(i, KiemTra[0], m_trans, m_conn) == -1)
                        {
                            m_trans.Rollback();
                            m_conn.Close();
                            return -1;
                        }
                        old_dt.Rows.Remove(KiemTra[0]);
                    }
                }

                //Xử lý Xóa row ko có trong table mới
                if (old_dt.Rows.Count == 0)
                {
                    m_trans.Commit();
                    m_conn.Close();

                    return 1;
                }

                for (int i = 0; i < old_dt.Rows.Count; i++)
                {
                    if (Delete_row(i, m_trans, m_conn) == -1)
                    {
                        m_trans.Rollback();
                        m_conn.Close();
                        return -1;
                    }
                }

                m_trans.Commit();
                m_conn.Close();

                return 1;
            }
            catch (Exception ex)
            {

                m_trans.Rollback();
                return -1;
                throw ex;
            }
            finally
            {
                if (m_conn.State != ConnectionState.Closed)
                    m_conn.Close();
            }
        }
        private void btnXoa_Click(object sender, EventArgs e)
        {
            DialogResult dialogResult = MessageBox.Show("Bạn có chắc chắn muốn xóa phiếu xuất này không", "Cảnh  báo", MessageBoxButtons.YesNo);
            if (dialogResult == DialogResult.Yes)
            {
                Int32 selectedRowCount = gridDanhSachPhieuXuatTam.CurrentCell.RowIndex;
                DataGridViewRow SelectedRow = gridDanhSachPhieuXuatTam.Rows[selectedRowCount];
                string Ma_phieu_xuat_tam = SelectedRow.Cells["Ma_phieu_xuat_tam"].Value.ToString();
                bool Daduyet = bool.Parse(SelectedRow.Cells["Da_duyet"].Value.ToString());
                if (Daduyet == false)
                {
                    clsPhieuXuatTamVatTu pxt = new clsPhieuXuatTamVatTu();
                    if (pxt.Delete(Ma_phieu_xuat_tam) == 1)
                    {
                        MessageBox.Show("Bạn đã xóa thành công !");
                        LoadData();
                        return;

                    }
                }
            }
            else if (dialogResult == DialogResult.No)
            {
                //do something else
            }
        }
        private void btnLuu_Click(object sender, EventArgs e)
        {
            //btnCheckMaPhieuXuat.Enabled = true;

            //Ko cần thiết
            if (cbMaPhieuXuatTam.Text.Trim() == "")
            {
                MessageBox.Show("Mã phiếu bắt buộc nhập!");
                return;
            }

            if (dataTableChiTietPhieuXuatTam.Rows.Count == 0)
            {
                MessageBox.Show("Dữ liệu trong danh sách vật tư không rỗng");
                return;
            }

            switch (PanelButton.getClickStatus())
            {
                case enumButton2.Them:
                    try
                    {
                        DatabaseHelper help = new DatabaseHelper();
                        help.ConnectDatabase();

                        using (var dbcxtransaction = help.ent.Database.BeginTransaction())
                        {
                            //01: Thêm phiếu vào DS
                            clsPhieuXuatTamVatTu phieuxuat = new clsPhieuXuatTamVatTu();

                            phieuxuat.Ma_phieu_xuat_tam = cbMaPhieuXuatTam.Text.Trim();

                            if (phieuxuat.CheckTonTaiSoDK(help , phieuxuat.Ma_phieu_xuat_tam) == true)
                            {
                                MessageBox.Show("Mã phiếu đã tồn tại! ");
                                return;
                            }

                            phieuxuat.ID_Nhan_vien = Int32.Parse(cbMaNhanVien.SelectedValue.ToString());
                            phieuxuat.Ngay_xuat = dtNgayXuat.Value;

                            phieuxuat.ID_kho = Int32.Parse(cbKhoXuat.SelectedValue.ToString());

                            phieuxuat.Ly_do = txtLyDo.Text.Trim();
                            phieuxuat.Cong_trinh = txtCongTrinh.Text.Trim();
                            phieuxuat.Dia_chi = txtDiaChi.Text.Trim();
                            phieuxuat.Da_duyet = bDaDuyetPhieuXuat();
                            phieuxuat.Insert(help);

                          //  clsChiTietPhieuXuatTam ChiTietPhieuXuat = new clsChiTietPhieuXuatTam();
                            for (int i = 0; i < dataTableChiTietPhieuXuatTam.Rows.Count; i++)
                            {
                                clsChiTietPhieuXuatTam ChiTietPhieuXuat = new clsChiTietPhieuXuatTam();
                                DataRow dr = dataTableChiTietPhieuXuatTam.Rows[i];
                                string mavt = dr["ma_vat_tu"].ToString();
                                int idcl = int.Parse(dr["ID_chat_luong"].ToString());
                                int idkho = int.Parse(dr["ID_kho"].ToString());
                                decimal slgl = decimal.Parse(dr["So_luong_giu_lai"].ToString());
                                decimal sldn = decimal.Parse(dr["So_luong_de_nghi"].ToString());
                                decimal sltx = decimal.Parse(dr["So_luong_thuc_xuat"].ToString());
                                decimal slhn = decimal.Parse(dr["So_luong_hoan_nhap"].ToString());
                                decimal sldg = decimal.Parse(dr["So_luong_dang_giu"].ToString());

                                ChiTietPhieuXuat.Id_chat_luong = idcl;
                                ChiTietPhieuXuat.Ma_phieu_xuat_tam = phieuxuat.Ma_phieu_xuat_tam;
                                ChiTietPhieuXuat.Ma_vat_tu = mavt;
                                ChiTietPhieuXuat.ID_kho = idkho;
                                ChiTietPhieuXuat.So_luong_giu_lai = slgl;
                                ChiTietPhieuXuat.so_luong_thuc_lanh = sltx;
                                ChiTietPhieuXuat.So_luong_hoan_nhap = slhn;
                                ChiTietPhieuXuat.So_luong_de_nghi = sldn;
                                ChiTietPhieuXuat.So_luong_dang_giu = sldg;
                                ChiTietPhieuXuat.ID_chi_tiet_phieu_xuat_tam = phieuxuat.ID_phieu_xuat_tam;
                                if (ChiTietPhieuXuat.Insert(help) == 0)
                                {
                                    dbcxtransaction.Rollback();
                                    MessageBox.Show("Cập nhật thất bại");
                                    return;
                                }

                            }
                            MessageBox.Show("Cập nhật thành công !");
                            dbcxtransaction.Commit();
                            PanelButton.setClickSua();
                            ResetGridInputForm();
                            dataTableChiTietPhieuXuatTam.Clear(); SetDataToGrid();
                            //if (ChiTietPhieuXuat.CapNhapChiTietPhieuXuat(dataTableChiTietPhieuXuatTam, phieuxuat.Ma_phieu_xuat_tam, phieuxuat) == 1)
                            //{
                            //    MessageBox.Show("Bạn đã thêm thành công!");

                            //    PanelButton.setClickSua();
                            //    ResetGridInputForm();
                            //    dataTableChiTietPhieuXuatTam.Clear();
                            //    SetDataToGrid();
                            //}

                            frmDanhSachPhieuXuatTamVatTu dspx = new frmDanhSachPhieuXuatTamVatTu(phieuxuat.Ma_phieu_xuat_tam);
                            dspx.Show();
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                    break;

                case enumButton2.Sua:
                    {
                        try
                        {
                            DatabaseHelper help = new DatabaseHelper();
                            help.ConnectDatabase();

                            using (var dbcxtransaction = help.ent.Database.BeginTransaction())
                            {
                                //01: Thêm phiếu vào DS
                                clsPhieuXuatTamVatTu phieuxuat = new clsPhieuXuatTamVatTu();
                                phieuxuat.Ma_phieu_xuat_tam = cbMaPhieuXuatTam.Text.Trim();
                                phieuxuat.ID_Nhan_vien = Int32.Parse(cbMaNhanVien.SelectedValue.ToString());
                                phieuxuat.Ngay_xuat = dtNgayXuat.Value;
                                phieuxuat.ID_kho = Int32.Parse(cbKhoXuat.SelectedValue.ToString());
                                phieuxuat.Ly_do = txtLyDo.Text.Trim();
                                phieuxuat.Cong_trinh = txtCongTrinh.Text.Trim();
                                phieuxuat.Dia_chi = txtDiaChi.Text.Trim();
                                phieuxuat.Da_duyet = false;
                                int idphieu = phieuxuat.TimMaPhieu(phieuxuat.Ma_phieu_xuat_tam);
                                if (idphieu == -1)
                                    return;
                                phieuxuat.ID_phieu_xuat_tam = idphieu;
                                if (phieuxuat.Update(help) == 0)
                                {
                                    dbcxtransaction.Rollback(); MessageBox.Show("Cập nhật thất bại");
                                    return;
                                }

                                for (int i = 0; i < dataTableChiTietPhieuXuatTam.Rows.Count; i++)
                                {
                                    clsChiTietPhieuXuatTam ChiTietPhieuXuat = new clsChiTietPhieuXuatTam();
                                    DataRow dr = dataTableChiTietPhieuXuatTam.Rows[i];
                                    string mavt = dr["ma_vat_tu"].ToString();
                                    int idcl = int.Parse(dr["ID_chat_luong"].ToString());
                                    int idkho = int.Parse(dr["ID_kho"].ToString());
                                    decimal slgl = decimal.Parse(dr["So_luong_giu_lai"].ToString());
                                    decimal sldn = decimal.Parse(dr["So_luong_de_nghi"].ToString());
                                    decimal sltx = decimal.Parse(dr["So_luong_thuc_xuat"].ToString());
                                    decimal slhn = decimal.Parse(dr["So_luong_hoan_nhap"].ToString());
                                    decimal sldg = decimal.Parse(dr["So_luong_dang_giu"].ToString());

                                    ChiTietPhieuXuat.Id_chat_luong = idcl;
                                    ChiTietPhieuXuat.Ma_phieu_xuat_tam = phieuxuat.Ma_phieu_xuat_tam;
                                    ChiTietPhieuXuat.Ma_vat_tu = mavt;
                                    ChiTietPhieuXuat.ID_kho = idkho;
                                    ChiTietPhieuXuat.So_luong_giu_lai = slgl;
                                    ChiTietPhieuXuat.so_luong_thuc_lanh = sltx;
                                    ChiTietPhieuXuat.So_luong_hoan_nhap = slhn;
                                    ChiTietPhieuXuat.So_luong_de_nghi = sldn;
                                    ChiTietPhieuXuat.So_luong_dang_giu = sldg;
                                    ChiTietPhieuXuat.ID_chi_tiet_phieu_xuat_tam = phieuxuat.ID_phieu_xuat_tam;
                                    if ( ChiTietPhieuXuat.Insert(help) == 0)
                                    {
                                        dbcxtransaction.Rollback();
                                        MessageBox.Show("Cập nhật thất bại");
                                        return;
                                    }

                                }
                                MessageBox.Show("Cập nhật thành công !");
                                dbcxtransaction.Commit();

                                if (dspn != null)
                                {
                                  dspn.  LoadInitGridMaster();
                                }
                                this.Close();

                                //if (ChiTietPhieuXuat.CapNhapChiTietPhieuXuat(dataTableChiTietPhieuXuatTam, phieuxuat.Ma_phieu_xuat_tam, phieuxuat) == 1)
                                //{
                                //    MessageBox.Show("Bạn đã cập nhật thành công!");
                                //    ResetGridInputForm();
                                //    dataTableChiTietPhieuXuatTam.Clear();
                                //    SetDataToGrid();
                                //}
                            }
                        }

                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.ToString());
                        }
                    }
                    break;
                case enumButton2.BaoGiuLai:
                    {
                        try
                        {
                            DatabaseHelper help = new DatabaseHelper();
                            help.ConnectDatabase();
                            //   help.ent.Database.BeginTransaction();
                            using (var dbcxtransaction = help.ent.Database.BeginTransaction())
                            {
                                clsDuyetPhieu duyetgiulai = new clsDuyetPhieu();
                                clsPhieuXuatTamVatTu pxt = new clsPhieuXuatTamVatTu();
                               // pxt.Delete(help,cbMaPhieuXuatTam.Text.Trim());
                                for (int i = 0; i < dataTableChiTietPhieuXuatTam.Rows.Count; i++)
                                {
                                    clsChiTietPhieuXuatTam ctpxt = new clsChiTietPhieuXuatTam();
                                    DataRow dr = dataTableChiTietPhieuXuatTam.Rows[i];
                                    string mavt = dr["ma_vat_tu"].ToString();
                                    int idcl = int.Parse(dr["ID_chat_luong"].ToString());
                                    decimal slgl = decimal.Parse(dr["So_luong_giu_lai"].ToString());
                                    Chi_Tiet_Phieu_Xuat_Tam temp = ctpxt.TimKiem(help,cbMaPhieuXuatTam.Text, mavt, idcl);
                                    if (temp == null)
                                    {
                                        dbcxtransaction.Rollback();
                                        return;
                                    }
                                    else
                                    {
                                        temp.So_luong_giu_lai = (decimal?)slgl;
                                        if (ctpxt.Update(help, temp) == 0)
                                        {
                                            MessageBox.Show("Giữ lại thất bại!");
                                            return;
                                        }
                                    }
                                }

                                //01: Thêm phiếu vào DS
                                //clsPhieuXuatTamVatTu phieuxuat = new clsPhieuXuatTamVatTu();

                                //phieuxuat.Ma_phieu_xuat_tam = cbMaPhieuXuatTam.Text.Trim();
                                //phieuxuat.ID_Nhan_vien = Int32.Parse(cbMaNhanVien.SelectedValue.ToString());
                                //phieuxuat.Ngay_xuat = dtNgayXuat.Value;

                                //phieuxuat.ID_kho = Int32.Parse(cbKhoXuat.SelectedValue.ToString());

                                //phieuxuat.Ly_do = txtLyDo.Text.Trim();
                                //phieuxuat.Cong_trinh = txtCongTrinh.Text.Trim();
                                //phieuxuat.Dia_chi = txtDiaChi.Text.Trim();
                                //phieuxuat.Da_duyet = bDaDuyetPhieuXuat();

                                if (duyetgiulai.XuLyGiuLai(help, cbMaPhieuXuatTam.Text.Trim()) == 1)
                                {
                                    dbcxtransaction.Commit();
                                    MessageBox.Show("Bạn đã cập nhật thành công!");
                                    ResetGridInputForm();
                                    dataTableChiTietPhieuXuatTam.Clear();
                                    SetDataToGrid();
                                    if (dspn != null)
                                    {
                                        dspn.LoadInitGridMaster();
                                        dspn.Refresh();
                                    }
                                    this.Close();

                                }
                                else {
                                    dbcxtransaction.Rollback();
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.ToString());

                        }
                    }
                    break;
                case enumButton2.BaoHoanNhap:
                    {

                        try
                        {
                            DatabaseHelper help = new DatabaseHelper();
                            help.ConnectDatabase();
                            //   help.ent.Database.BeginTransaction();
                            using (var dbcxtransaction = help.ent.Database.BeginTransaction())
                            {
                                clsDuyetPhieu duyetgiulai = new clsDuyetPhieu();
                                clsPhieuXuatTamVatTu pxt = new clsPhieuXuatTamVatTu();
                                // pxt.Delete(help,cbMaPhieuXuatTam.Text.Trim());
                                for (int i = 0; i < dataTableChiTietPhieuXuatTam.Rows.Count; i++)
                                {
                                    clsChiTietPhieuXuatTam ctpxt = new clsChiTietPhieuXuatTam();
                                    DataRow dr = dataTableChiTietPhieuXuatTam.Rows[i];
                                    string mavt = dr["ma_vat_tu"].ToString();
                                    int idcl = int.Parse(dr["ID_chat_luong"].ToString());
                                    decimal slgl = decimal.Parse(dr["So_luong_hoan_nhap"].ToString());
                                    Chi_Tiet_Phieu_Xuat_Tam temp = ctpxt.TimKiem(help, cbMaPhieuXuatTam.Text, mavt, idcl);
                                    if (temp == null)
                                    {
                                        dbcxtransaction.Rollback();
                                        return;
                                    }
                                    else
                                    {
                                        temp.So_luong_hoan_nhap = (decimal?)slgl;
                                        if (ctpxt.Update(help, temp) == 0)
                                        {
                                            MessageBox.Show("Giữ lại thất bại!");
                                            return;
                                        }
                                    }
                                }
                                //01: Thêm phiếu vào DS
                                //clsPhieuXuatTamVatTu phieuxuat = new clsPhieuXuatTamVatTu();

                                //phieuxuat.Ma_phieu_xuat_tam = cbMaPhieuXuatTam.Text.Trim();
                                //phieuxuat.ID_Nhan_vien = Int32.Parse(cbMaNhanVien.SelectedValue.ToString());
                                //phieuxuat.Ngay_xuat = dtNgayXuat.Value;

                                //phieuxuat.ID_kho = Int32.Parse(cbKhoXuat.SelectedValue.ToString());

                                //phieuxuat.Ly_do = txtLyDo.Text.Trim();
                                //phieuxuat.Cong_trinh = txtCongTrinh.Text.Trim();
                                //phieuxuat.Dia_chi = txtDiaChi.Text.Trim();
                                //phieuxuat.Da_duyet = bDaDuyetPhieuXuat();

                                if (duyetgiulai.XyLyHoanNhap(help, cbMaPhieuXuatTam.Text.Trim()) == 1)
                                {
                                    dbcxtransaction.Commit();
                                    MessageBox.Show("Bạn đã cập nhật thành công!");
                                    ResetGridInputForm();
                                    dataTableChiTietPhieuXuatTam.Clear();
                                    SetDataToGrid();
                                }
                                else
                                {
                                    dbcxtransaction.Rollback();
                                }
                                //01: Thêm phiếu vào DS
                                //clsPhieuXuatTamVatTu phieuxuat = new clsPhieuXuatTamVatTu();

                                //phieuxuat.Ma_phieu_xuat_tam = cbMaPhieuXuatTam.Text.Trim();
                                //phieuxuat.ID_Nhan_vien = Int32.Parse(cbMaNhanVien.SelectedValue.ToString());
                                //phieuxuat.Ngay_xuat = dtNgayXuat.Value;

                                //phieuxuat.ID_kho = Int32.Parse(cbKhoXuat.SelectedValue.ToString());

                                //phieuxuat.Ly_do = txtLyDo.Text.Trim();
                                //phieuxuat.Cong_trinh = txtCongTrinh.Text.Trim();
                                //phieuxuat.Dia_chi = txtDiaChi.Text.Trim();
                                //phieuxuat.Da_duyet = bDaDuyetPhieuXuat();

                                //try
                                //{
                                //    clsChiTietPhieuXuatTam ChiTietPhieuXuat = new clsChiTietPhieuXuatTam();
                                //    if (ChiTietPhieuXuat.CapNhapChiTietPhieuXuat(dataTableChiTietPhieuXuatTam, phieuxuat.Ma_phieu_xuat_tam, phieuxuat) == 1)
                                //    {
                                //        MessageBox.Show("Bạn đã cập nhật thành công!");
                                //        ResetGridInputForm();
                                //        dataTableChiTietPhieuXuatTam.Clear();
                                //        SetDataToGrid();
                                //    }
                                //}
                                //catch (Exception ex)
                                //{
                                //    MessageBox.Show(ex.ToString());
                                //}
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.ToString());
                        }
                    }
                    break;
            }
        }
        private void SetupDataSet()
        {
            this.dsMyDataSet.Tables.Add(chitiet_pxt.GetChiTietPhieuXuatTam(maPhieu));
            //this.dsMyDataSet.Tables.Add(PhieuNhapKho.GetThongTinPhieuNhap(maPhieu));

            clsPhieuXuatTamVatTu PhieuXuat = new clsPhieuXuatTamVatTu();

            DataTable dt = PhieuXuat.GetAll_byMaPhieu(maPhieu);

            //dtNgayXuat.CustomFormat = "dd-MM-yyyy";
            this.ngay = Convert.ToDateTime(dt.Rows[0]["Ngay_xuat"].ToString());
            //cbMaNhanVien.SelectedValue = Int32.Parse(dt.Rows[0]["ID_nhan_vien"].ToString());

            clsDM_NhanVien nv = new clsDM_NhanVien();
            this.truong_nhom = nv.Get_TenNV(Int32.Parse(dt.Rows[0]["ID_nhan_vien"].ToString()));
        }
        /// <summary>
        /// Btn chỉ hiện nếu nv đó còn đang giữ vt, khi click vào thì thông báo nv còn giữ lại vt.
        /// Thực hiện Add những vt còn nợ vào grid
        /// </summary>
        private void btnCheckNVGiuVT_Click(object sender, EventArgs e)
        {
            //ToolTip1.Show("Nhân viên này còn đang giữ vật tư", this.cbTenNhanVien, 0, 0, 500);

            //clsChiTietPhieuXuatTam ChitTietPhieuXuat = new clsChiTietPhieuXuatTam();
            //DataTable dt = ChitTietPhieuXuat.getAll_toGrid(cbMaPhieuXuatTam.Text.Trim());

            int Ma_NV = Int32.Parse(cbTenNhanVien.SelectedValue.ToString());

            clsPhieuXuatTamVatTu pxt = new clsPhieuXuatTamVatTu();
            DataTable dt = pxt.GetAll_NV_no_VT(Ma_NV);

            //cbKhoXuat.SelectedValue = Int32.Parse(dt.Rows[0]["ID_kho"].ToString());
            //cbKhoXuat_SelectionChangeCommitted(cbKhoXuat, EventArgs.Empty);
            //GetAll_NV_no_VT(int ID_NV)

            DataTable dt2 = pxt.Get_NV_no_VT_IDKho(Ma_NV);

            int IDKho = Int32.Parse(dt2.Rows[0]["ID_kho"].ToString());
            string TenKho = dt2.Rows[0]["Ten_kho"].ToString();

            cbKhoXuat.SelectedValue = IDKho;
            cbKhoXuat_SelectionChangeCommitted(cbKhoXuat, EventArgs.Empty);

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow dr = dataTableChiTietPhieuXuatTam.NewRow();
                dr["ID_chi_tiet_phieu_xuat_tam"] = -1;

                dr["Ma_vat_tu"] = dt.Rows[i]["Ma_vat_tu"];
                dr["Ten_vat_tu"] = dt.Rows[i]["Ten_vat_tu"];

                dr["Id_chat_luong"] = dt.Rows[i]["Id_chat_luong"];
                dr["Loai_chat_luong"] = dt.Rows[i]["Loai_chat_luong"];

                dr["ID_kho"] = IDKho;//dt.Rows[i]["ID_kho"];
                dr["Ten_kho"] = TenKho; //dt.Rows[i]["Ten_kho"];

                dr["ID_No_vat_tu"] = dt.Rows[i]["ID_No_vat_tu"];
                dr["So_luong_dang_giu"] = dt.Rows[i]["So_luong_giu_lai"];

                dr["So_luong_de_nghi"] = dt.Rows[i]["So_luong_giu_lai"];
                dr["So_luong_thuc_xuat"] = 0;

                dr["Da_duyet_xuat_vat_tu"] = true;
                dr["So_luong_hoan_nhap"] = 0;
                dr["So_luong_giu_lai"] = 0;
                dr["Da_duyet_hoan_nhap"] = false;
                dr["Da_duyet_giu_lai"] = false;
                dr["Ten_don_vi_tinh"] = dt.Rows[i]["Ten_don_vi_tinh"];

                dataTableChiTietPhieuXuatTam.Rows.Add(dr);
            }

            setup_cbKhoXuat();

            btnCheckNVGiuVT.Visible = false;
            cbMaNhanVien.Enabled = false;
            cbTenNhanVien.Enabled = false;
        }
        private string TaoMaPhieu()
        {
            DateTime today = DateTime.Today;
            clsPhieuXuatTamVatTu px = new clsPhieuXuatTamVatTu();

            int stt = px.GetMaxID() + 1;

            string s = stt.ToString();

            for (int i = s.Length; s.Length < 4; i++)
            {
                s = "0" + s;
            }

            string result = today.Year.ToString().Substring(2, 2) + today.Month.ToString() + today.Day.ToString() + s;

            // ID_phieu_xuat_tam

            return result;
        }
        private void SetDataToForm()
        {
            clsPhieuXuatTamVatTu PhieuXuat = new clsPhieuXuatTamVatTu();

            DataTable dt = PhieuXuat.GetAll_byMaPhieu(cbMaPhieuXuatTam.Text.Trim());

            cbMaNhanVien.SelectedValue = Int32.Parse(dt.Rows[0]["ID_nhan_vien"].ToString());
            cbMaNhanVien_SelectionChangeCommitted(cbMaNhanVien, EventArgs.Empty);

            //dtNgayXuat.CustomFormat = "dd-MM-yyyy";
            dtNgayXuat.Value = Convert.ToDateTime(dt.Rows[0]["Ngay_xuat"].ToString());
            cbKhoXuat.SelectedValue = Int32.Parse(dt.Rows[0]["ID_kho"].ToString());
            cbKhoXuat_SelectionChangeCommitted(cbKhoXuat, EventArgs.Empty);
            txtLyDo.Text = dt.Rows[0]["Ly_do"].ToString();
            txtCongTrinh.Text = dt.Rows[0]["Cong_trinh"].ToString();
            txtDiaChi.Text = dt.Rows[0]["Dia_chi"].ToString();
        }
        public frmChiTietPhieuXuatTam(string MaPhieXuatTam, enumButton2 stt,frmDanhSachPhieuXuatTamVatTu dspn)
        {
            InitializeComponent();
            frm_init();

            clsPhieuXuatTamVatTu pxt = new clsPhieuXuatTamVatTu();
            if (pxt.CheckTonTaiSoDK(MaPhieXuatTam) == false)
            {
                MessageBox.Show("Mã phiếu xuất bạn chọn ko tồn tại!");
                this.Close();
            }

            cbMaPhieuXuatTam.Text = MaPhieXuatTam;
            btnSua_Click(btnSua, EventArgs.Empty);

            //tùy theo stt, setup frm
            if (stt == enumButton2.BaoGiuLai)
            {
                PanelButton.setClickStatus(stt);
                EnableControl_For_BaoGiuLai();
                return;
            }
            else if (stt == enumButton2.BaoHoanNhap)
            {
                PanelButton.setClickStatus(stt);
                EnableControl_For_BaoHoanNhap(); return;
            }
            if (stt == enumButton2.Sua || stt == enumButton2.Xoa)
            {
                PanelButton.setClickStatus(stt);
                EnableControl_ForNew();
                return;
            }
            else
            {
                MessageBox.Show("Xảy ra lỗi khởi tạo phiếu!");
                this.Close();
            }
            this.dspn = dspn;
        }
        /// <summary>
        /// Handles the SelectionChangeCommitted event of the cbTenNhanVien control.
        /// </summary>
        private void cbTenNhanVien_SelectionChangeCommitted(object sender, EventArgs e)
        {
            ComboBox comboBox = (ComboBox)sender;
            if ((comboBox.SelectedIndex != -1) && (cbMaNhanVien.SelectedValue != comboBox.SelectedValue))
            {
                cbMaNhanVien.SelectedValue = comboBox.SelectedValue;
            }

            if ((comboBox.SelectedIndex != -1))
            {
                int ID_NV = Int32.Parse(comboBox.SelectedValue.ToString());

                clsPhieuXuatTamVatTu ctpxt = new clsPhieuXuatTamVatTu();

                if (ctpxt.chkNV_no_VT(ID_NV) == true)
                {
                    //MessageBox.Show("NV này còn nợ VT!");
                    btnCheckNVGiuVT.Visible = true;
                    ToolTip1.Show("Nhân viên này còn đang giữ vật tư!\nClick vào button để đưa danh sách VT còn đang nợ vào lưới!", this.btnCheckNVGiuVT, 15, 15, 5000);
                }
                else
                {
                    btnCheckNVGiuVT.Visible = false;
                }

            }
        }