public void init()
        {
            //lay danh sach cac vat tu trong phieu nhap chua phan vao kho

            clsChi_Tiet_Phieu_Nhap_Vat_Tu pnk = new clsChi_Tiet_Phieu_Nhap_Vat_Tu();
            gridDanhSachPhieuNhap.DataSource = pnk.GetAllVatTuChoMuonNo();
        }
        public void Load_Data()
        {
            clsChi_Tiet_Phieu_Nhap_Vat_Tu pn = new clsChi_Tiet_Phieu_Nhap_Vat_Tu();
            txtMaPhieuNhap.Text = maphieu;
            dtPhieuNhap = pn.GetAll(txtMaPhieuNhap.Text);
            gridDanhSachPhieuNhap.DataSource = dtPhieuNhap;

            clsGiaoDienChung.initCombobox(cbbPhieuNo, new clsBu_Tru_No_Phieu(), "Ma_phieu_nhap", "ID_phieu_nhap", "Ma_phieu_nhap");
        }
        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (txtMaPhieuNhap.Text.Trim() == "")
            {
                MessageBox.Show("Mã phiếu bắt buộc nhập!");
                return;
            }
            if (cbKhoNhan.Text == "" )
            {
                MessageBox.Show("Chưa nhập kho hoặc mã phiếu");
                return;
            }

            DatabaseHelper help = new DatabaseHelper();
            help.ConnectDatabase();
            //switch (staTus)
            switch (PanelButton.getClickStatus())
            {

                #region "Thêm"
                case enumButton2.Them:
                    using (var dbcxtransaction = help.ent.Database.BeginTransaction())
                    {
                        try
                        {

                            clsPhieuNhapKho phieunhap = new clsPhieuNhapKho();
                            phieunhap.Ma_phieu_nhap = txtMaPhieuNhap.Text;
                            if (!phieunhap.CheckTonTaiSoDK(txtMaPhieuNhap.Text))
                            {

                                phieunhap.Kho_nhan = cbKhoNhan.Text;
                                phieunhap.Kho_xuat_ra = txtXuatTaiKho.Text;
                                phieunhap.Da_phan_kho = false;

                                  phieunhap.ID_Loai_Phieu_Nhap = null;
                                phieunhap.Ma_phieu_nhap = txtMaPhieuNhap.Text;
                                phieunhap.Dia_chi = txtDiaChi.Text;
                                phieunhap.Ly_do = txtLyDo.Text;
                                phieunhap.Ngay_lap = dtNgayNhap.Value;
                                phieunhap.Cong_trinh = txtCongTrinh.Text;
                                phieunhap.Da_phan_kho = false;
                                phieunhap.ID_khoNhan = (int)cbKhoNhan.SelectedValue;
                                if (rdoKNMN.Checked == true)
                                    phieunhap.isKNMN = true;
                                if (rdoKNTN.Checked == true)
                                    phieunhap.isKNTN = true;
                                if (rdoKCTN.Checked == true)
                                    phieunhap.isKCTN = true;
                                if (rdoKCMuonNo.Checked == true)
                                    phieunhap.isKCMN = true;

                                phieunhap.isNhapNgoai = true;
                                phieunhap.Ten_kho_muon = cbKhoNgoai.Text;
                                if (phieunhap.Insert(help) == 1)
                                {

                                    //DataTable chiTietPhieuNhap = new clsChi_Tiet_Phieu_Nhap_Vat_Tu().GetAll(phieuNhap.ID_phieu_nhap);
                                    for (int i = 0; i < dataTable1.Rows.Count; i++)
                                    {
                                        clsChi_Tiet_Phieu_Nhap_Vat_Tu chitiet = new clsChi_Tiet_Phieu_Nhap_Vat_Tu();
                                        //    chitiet.ID_chi_tiet_phieu_nhap = int.Parse(gridMaster.Rows[i].Cells["ID_chi_tiet_phieu_nhap"].ToString());
                                        chitiet.Ma_phieu_nhap = (txtMaPhieuNhap.Text);
                                        chitiet.ID_Don_vi_tinh = int.Parse(dataTable1.Rows[i]["ID_Don_vi_tinh"].ToString());
                                        chitiet.Ma_vat_tu = (dataTable1.Rows[i]["Ma_vat_tu"].ToString());
                                        chitiet.ID_Chat_luong = int.Parse(dataTable1.Rows[i]["ID_Chat_luong"].ToString());
                                        // chitiet.So_luong_yeu_cau = decimal.Parse(dataTable1.Rows[i]["So_luong_yeu_cau"].ToString());
                                        chitiet.So_luong_thuc_lanh = decimal.Parse(dataTable1.Rows[i]["so_luong_thuc_lanh"].ToString());
                                        chitiet.Don_gia = decimal.Parse(dataTable1.Rows[i]["Don_gia"].ToString());
                                        chitiet.Thanh_tien = decimal.Parse(dataTable1.Rows[i]["Thanh_tien"].ToString());
                                        chitiet.Da_duyet = false;
                                        if (chitiet.Insert(help) == 0)
                                            dbcxtransaction.Rollback();

                                    }

                                    dbcxtransaction.Commit();

                                    PanelButton.ResetClickStatus();

                                    //setInputComponentStatus(true);
                                    enableInputForm();

                                    PanelButton.ResetButton();
                                    frmDanhSachPhieuNhap dspn = new frmDanhSachPhieuNhap(txtMaPhieuNhap.Text);
                                    dspn.Show();

                                }
                                else
                                    dbcxtransaction.Rollback();

                            }
                            else
                            {
                                MessageBox.Show("mã phiếu nhập này đã tồn tại trong csdl!");
                                button2_Click(this, EventArgs.Empty);
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(Utilities.clsThamSoUtilities.COException(ex));
                            dbcxtransaction.Rollback();
                        }
                    }
                    break;
                #endregion
                #region "Sua"
                case enumButton2.Sua:
                    {
                        using (var dbcxtransaction = help.ent.Database.BeginTransaction())
                        {
                            try
                            {
                                clsPhieuNhapKho phieunhap = new clsPhieuNhapKho();
                                phieunhap.Ma_phieu_nhap = txtMaPhieuNhap.Text;
                                {

                                    // phieunhap.

                                    //  phieunhap.ID_Loai_Phieu_Nhap = Int32.Parse(cbLoaiPhieuNhan.SelectedValue.ToString());
                                    phieunhap.Ma_phieu_nhap = txtMaPhieuNhap.Text;
                                    phieunhap.Dia_chi = txtDiaChi.Text;
                                    phieunhap.Ly_do = txtLyDo.Text;
                                    phieunhap.Ngay_lap = dtNgayNhap.Value;
                                    //     phieunhap.So_hoa_don = txtSoHD.Text;
                                    phieunhap.Cong_trinh = txtCongTrinh.Text;

                                    //if (rdoKNMN.Checked == true)
                                    //    phieunhap.isChoMuonNgoai = true;

                                    if (rdoKNMN.Checked == true)
                                        phieunhap.isKNMN = true;
                                    if (rdoKNTN.Checked == true)
                                        phieunhap.isKNTN = true;
                                    if (rdoKCTN.Checked == true)
                                        phieunhap.isKCTN = true;
                                    if (rdoKCMuonNo.Checked == true)
                                        phieunhap.isKCMN = true;

                                    phieunhap.isNhapNgoai = true;
                                    //if (isLoaiPhieu == "TN")
                                    //    phieunhap.isTraNo = true;
                                    //  phieunhap.isGoiDau = chbNGD.Checked;
                                    phieunhap.ID_khoNhan = (int)cbKhoNhan.SelectedValue;
                                    DataTable temp = phieunhap.GetThongTinPhieuMuonNo(phieunhap.Ma_phieu_nhap);
                                    Phieu_Nhap_Kho nk = new Phieu_Nhap_Kho();

                                    nk.Ma_phieu_nhap = phieunhap.Ma_phieu_nhap;
                                    nk.ID_phieu_nhap = int.Parse(temp.Rows[0]["ID_phieu_nhap"].ToString());

                                    nk.Cong_trinh = phieunhap.Cong_trinh;
                                    nk.Da_phan_kho = phieunhap.Da_phan_kho;
                                    nk.Dia_Chi = phieunhap.Dia_chi;
                                    nk.ID_Loai_Phieu_Nhap = phieunhap.ID_Loai_Phieu_Nhap;
                                    nk.Kho_nhan = phieunhap.Kho_nhan;
                                    nk.ID_kho = phieunhap.ID_khoNhan;
                                    nk.Kho_xuat_ra = phieunhap.Kho_xuat_ra;
                                  //  nk.isKNTN = phieunhap.isTraNo;
                                    nk.isToTrinh = phieunhap.isToTrinh;
                                    nk.Ly_do = phieunhap.Ly_do;
                                    nk.Ngay_lap = phieunhap.Ngay_lap;
                                    nk.So_hoa_don = phieunhap.So_hoa_don;
                                    nk.isKNMN = phieunhap.isKNMN;
                                    nk.isKNTN = phieunhap.isKNTN;
                                    nk.isKCTN = phieunhap.isKCTN;
                                    nk.isKCMN = phieunhap.isKCMN;
                                    nk.isNVMN = phieunhap.isNVMN;

                                    nk.isNhapNgoai = true;

                                    if (phieunhap.Update(nk) == 1)
                                    {

                                        clsChi_Tiet_Phieu_Nhap_Vat_Tu pn = new clsChi_Tiet_Phieu_Nhap_Vat_Tu();
                                        pn.Ma_phieu_nhap = phieunhap.Ma_phieu_nhap;

                                        pn.remove(pn.Ma_phieu_nhap);
                                        for (int i = 0; i < dataTable1.Rows.Count; i++)
                                        {

                                            clsChi_Tiet_Phieu_Nhap_Vat_Tu chitiet = new clsChi_Tiet_Phieu_Nhap_Vat_Tu();
                                            chitiet.Ma_phieu_nhap = (txtMaPhieuNhap.Text);
                                            chitiet.ID_Don_vi_tinh = int.Parse(dataTable1.Rows[i]["ID_Don_vi_tinh"].ToString());
                                            chitiet.Ma_vat_tu = (dataTable1.Rows[i]["Ma_vat_tu"].ToString());
                                            chitiet.ID_Chat_luong = int.Parse(dataTable1.Rows[i]["ID_Chat_luong"].ToString());
                                            chitiet.So_luong_thuc_lanh = decimal.Parse(dataTable1.Rows[i]["so_luong_thuc_lanh"].ToString());
                                            chitiet.Don_gia = decimal.Parse(dataTable1.Rows[i]["Don_gia"].ToString());
                                            chitiet.Thanh_tien = decimal.Parse(dataTable1.Rows[i]["Thanh_tien"].ToString());
                                            chitiet.Da_duyet = false;
                                            chitiet.ID_Chat_luong = int.Parse(cbChatLuong.SelectedValue.ToString());
                                            if (chitiet.Insert(help) == 0)
                                                dbcxtransaction.Rollback();

                                        }

                                        dbcxtransaction.Commit();

                                        PanelButton.ResetClickStatus();

                                        //setInputComponentStatus(true);
                                        enableInputForm();

                                        PanelButton.ResetButton();
                                    }
                                    else
                                        dbcxtransaction.Rollback();
                                }
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show(Utilities.clsThamSoUtilities.COException(ex));
                                dbcxtransaction.Rollback();
                            }
                        }
                        this.ds.LoadData();
                        break;
                    }
                #endregion

            }
        }
        private bool initEdit()
        {
            try
            {

                clsPhieuNhapKho clsNhap = new clsPhieuNhapKho();

                clsNhap.Ma_phieu_nhap = txtMaPhieuNhap.Text;

                if (clsNhap.CheckTonTaiSoDK(txtMaPhieuNhap.Text) == true)
                {

                    DataTable tb = clsNhap.GetAllPhieuNo(txtMaPhieuNhap.Text.Trim());
                    // dtNgayNhap.Text = tb.Rows[0]["Ngay_nhap"].ToString();
                    dtNgayNhap.CustomFormat = "dd-MM-yyyy";
                    dtNgayNhap.Value = Convert.ToDateTime(tb.Rows[0]["Ngay_lap"].ToString());
                   // dtNgayNhap.Text = string.Format("{0:dd/MM/yyyy}", tb.Rows[0]["Ngay_lap"]);

                    txtLyDo.Text = tb.Rows[0]["Ly_do"].ToString();
                 //   txtXuatTaiKho.Text = tb.Rows[0]["ID_kho"].ToString();
                    txtCongTrinh.Text = tb.Rows[0]["cong_trinh"].ToString();
                    cbKhoNhan.Text = tb.Rows[0]["Ten_kho"].ToString();
                    txtDiaChi.Text = tb.Rows[0]["Dia_chi"].ToString();
                 //   cbLoaiPhieuNhan.SelectedValue = tb.Rows[0]["ID_Loai_Phieu_Nhap"].ToString();
                 //   chbNGD.Checked =bool.Parse( tb.Rows[0]["isGoiDau"].ToString());
                    cbKhoNgoai.Text = tb.Rows[0]["Ten_kho_muon"].ToString();
                    rdoKCMuonNo.Checked =bool.Parse( tb.Rows[0]["isKCMN"].ToString());
                    rdoKCTN.Checked = bool.Parse(tb.Rows[0]["isKCTN"].ToString());
                    rdoKNMN.Checked = bool.Parse(tb.Rows[0]["isKNMN"].ToString());
                    rdoKNTN.Checked = bool.Parse(tb.Rows[0]["isKNTN"].ToString());

                    clsChi_Tiet_Phieu_Nhap_Vat_Tu chitiet = new clsChi_Tiet_Phieu_Nhap_Vat_Tu();
                    DataTable vChiTiet = (DataTable)chitiet.GetAll(txtMaPhieuNhap.Text);
                    for (int i = 0; i < vChiTiet.Rows.Count; i++)
                    {
                        //  dataTable1.Rows[i]["Ma_phieu_nhap"] = vChiTiet.Rows[i]["ma_phieu_nhap"].ToString();

                        DataRow dr = dataTable1.NewRow();
                        //dr["Ma_vat_tu"] = vChiTiet.Rows[i]["ma_phieu_nhap"].ToString();
                        dr["ma_vat_tu"] = vChiTiet.Rows[i]["ma_vat_tu"].ToString();
                        dr["Ten_vat_tu"] = vChiTiet.Rows[i]["Ten_vat_tu"].ToString();
                        //  dr["don_vi_tinh"] = vChiTiet.Rows[i]["don_vi_tinh"].ToString() ;
                        dr["chat_luong"] = vChiTiet.Rows[i]["chat_luong"].ToString();
                        dr["ID_chat_luong"] = vChiTiet.Rows[i]["ID_chat_luong"].ToString();
                        dr["so_luong_thuc_lanh"] = vChiTiet.Rows[i]["so_luong_thuc_lanh"].ToString();
                        dr["don_gia"] = vChiTiet.Rows[i]["don_gia"].ToString();
                        dr["Thanh_tien"] = vChiTiet.Rows[i]["thanh_tien"].ToString();// int.Parse(vChiTiet.Rows[i]["don_gia"].ToString()) * int.Parse(vChiTiet.Rows[i]["so_luong_thuc_lanh"].ToString());
                        dr["Ten_Don_vi_tinh"] = vChiTiet.Rows[i]["ten_don_vi_tinh"].ToString();
                        dr["ID_Don_vi_tinh"] = vChiTiet.Rows[i]["ID_don_vi_tinh"].ToString();

                        dataTable1.Rows.Add(dr);
                    }
                    if (clsChi_Tiet_Phieu_Nhap_Vat_Tu.KTVTChuaDuyet(clsNhap.Ma_phieu_nhap) == true)

                    {
                        //khong cho sua thong tin tren luoi
                        disableInputForm();
                        MessageBox.Show("Phiếu nhập này chứa vật tư đã phân vào kho, không thể chỉnh sữa thông tin.");
                        return false;

                    }

                    //MessageBox.Show("Tồn tại mã phiếu nhập trong csdl");

                    return true;
                }
                else
                {
                    //MessageBox.Show("Chưa Tồn tại mã phiếu nhập trong csdl");

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(Utilities.clsThamSoUtilities.COException(ex));
            }
            return false;
        }
        public void XuLy()
        {
            try
            {
                Int32 selectedRowCount = gridDanhSachPhieuNhap.CurrentCell.RowIndex;
                string maphieu = gridDanhSachPhieuNhap.Rows[selectedRowCount].Cells["Ma_phieu"].Value.ToString();
                int idKho = int.Parse(gridDanhSachPhieuNhap.Rows[selectedRowCount].Cells["ID_kho"].Value.ToString());

                //bool Da_phan_kho = bool.Parse(gridDanhSachPhieuNhap.Rows[selectedRowCount].Cells["Da_phan_kho"].Value.ToString());

                //if (Da_phan_kho == true)
                //{
                //    MessageBox.Show("Phiếu này đã duyệt và phân kho ");
                //    return;
                //}

                //neu phieu nhap la XD thi co cac truong hop sau
                // kiem ttra xem danh sach vat tu trong danh sach phieu nhap la nhap ngoai va no la nhap tu to trinh hoac MN ko ?
                // neu trong to tinh co vat tu trung voi vat tu phieu nhap
                // thi nguoi dung tien hanh chuyen qua man hinh tra no
                DatabaseHelper help = new DatabaseHelper();
                help.ConnectDatabase();

                // lấy tất cả danh sách các vật tư có mã phiếu nhập đó
                DataTable tb = new clsChi_Tiet_Phieu_Nhap_Vat_Tu().GetAll(maphieu);

                //nếu phiếu này là cấn trừ
                //hiển thị form cấn trừ nợ cho vật tư
                // bool? isCanTru = bool.Parse(gridDanhSachPhieuNhap.Rows[selectedRowCount].Cells["isCanTru"].Value.ToString());
                try
                {
                    bool? isCanTru = bool.Parse(gridDanhSachPhieuNhap.Rows[selectedRowCount].Cells["isCanTru"].Value.ToString());
                    if (isCanTru == true)
                    {
                        MessageBox.Show("Phiếu này đang ở trạng thái chưa bù trừ nợ, vui lòng thực hiện chức năng bù trừ nợ trước! ");
                        return;
                    }
                }
                catch (Exception ex) { }
                try
                {
                    bool? isNhapNgoai = bool.Parse(gridDanhSachPhieuNhap.Rows[selectedRowCount].Cells["isNhapNgoai"].Value.ToString());
                    bool? isChoMuonNo = null;
                    try
                    {
                        isChoMuonNo = bool.Parse(gridDanhSachPhieuNhap.Rows[selectedRowCount].Cells["isChoMuonNgoai"].Value.ToString());
                    }
                    catch (Exception ex)
                    {

                    }
                    if (isNhapNgoai == true && isChoMuonNo == true)
                    {
                        using (var dbcxtransaction = help.ent.Database.BeginTransaction())
                        {
                            for (int i = 0; i < tb.Rows.Count; i++)
                            {
                                clsXuLyDuLieuChung dc = new clsXuLyDuLieuChung();
                                string mavattu = tb.Rows[i]["ma_vat_tu"].ToString();
                                decimal soluong = decimal.Parse(tb.Rows[i]["so_luong_thuc_lanh"].ToString());
                                int id_chat_luong = int.Parse(tb.Rows[i]["Id_chat_luong"].ToString());
                                DateTime ngayNhap = DateTime.Now;
                                if (dc.InsertTonKho(help, mavattu, idKho, soluong, maphieu, ngayNhap, id_chat_luong, false) == 0)
                                {
                                    dbcxtransaction.Rollback();
                                }

                            }
                            MessageBox.Show("Bạn đã xác nhận thành công ");
                            dbcxtransaction.Commit();
                            LoadData();
                            return;
                        }
                    }
                    else
                        if (isNhapNgoai == true)
                        {
                            using (var dbcxtransaction = help.ent.Database.BeginTransaction())
                            {
                                for (int i = 0; i < tb.Rows.Count; i++)
                                {
                                    clsXuLyDuLieuChung dc = new clsXuLyDuLieuChung();
                                    string mavattu = tb.Rows[i]["ma_vat_tu"].ToString();
                                    decimal soluong = decimal.Parse(tb.Rows[i]["so_luong_thuc_lanh"].ToString());
                                    int id_chat_luong = int.Parse(tb.Rows[i]["Id_chat_luong"].ToString());
                                    DateTime ngayNhap = DateTime.Now;
                                    if (dc.InsertTonKho(help, mavattu, idKho, soluong, maphieu, ngayNhap, id_chat_luong, true) == 0)
                                    {
                                        dbcxtransaction.Rollback();
                                    }

                                }
                                MessageBox.Show("Bạn đã xác nhận thành công ");
                                dbcxtransaction.Commit();
                                LoadData();
                            }
                            return;
                        }
                }
                catch (Exception ex) { }

                int? ID_loai_phieu_nhap = int.Parse(gridDanhSachPhieuNhap.Rows[selectedRowCount].Cells["ID_loai_phieu_nhap"].Value.ToString());
                clsLoaiPhieuNhap LPN = new clsLoaiPhieuNhap();
                LPN.ID_LPN = (int)ID_loai_phieu_nhap;
                string TenLPN = LPN.getTenLPN((int)ID_loai_phieu_nhap);
                using (var dbcxtransaction = help.ent.Database.BeginTransaction())
                {
                    for (int i = 0; i < tb.Rows.Count; i++)
                    {
                        //duyệt qua từng dòng insert chi tiết phiếu nhập vào
                        clsXuLyDuLieuChung dc = new clsXuLyDuLieuChung();
                        string mavattu = tb.Rows[i]["ma_vat_tu"].ToString();
                        // số lượng hoàn nhập hay số lượng lãnh vật tư tùy vào ID loai phieu
                        decimal soluong = decimal.Parse(tb.Rows[i]["so_luong_thuc_lanh"].ToString());
                        int id_chat_luong = int.Parse(tb.Rows[i]["Id_chat_luong"].ToString());
                        DateTime ngayNhap = DateTime.Now;
                        try
                        {
                            bool isGoiDau = bool.Parse(gridDanhSachPhieuNhap.Rows[selectedRowCount].Cells["isGoiDau"].Value.ToString());
                            if (isGoiDau == true)
                            {
                                clsVatTuGoiDauKy gdk = new clsVatTuGoiDauKy();
                                gdk.ID_chat_luong = id_chat_luong;
                                gdk.Ma_vat_tu = mavattu;
                                gdk.So_Luong = soluong;
                                gdk.ID_kho = idKho;
                                if (gdk.CheckTonTaiSoDK() == true)
                                {
                                    //nếu có cập nhật lại gối đầu
                                    DataTable temp = gdk.GetAll();
                                    decimal sl = decimal.Parse(temp.Rows[0]["So_luong"].ToString());
                                    gdk.ID_VT_Goi_Dau = int.Parse(temp.Rows[0]["ID_VT_Goi_Dau"].ToString());
                                    gdk.So_Luong = gdk.So_Luong + sl;
                                    gdk.Update();
                                }
                                //nếu chưa tồn tại tiến hành insert dòng mới
                                else

                                    if (gdk.Insert() == 0)
                                    {
                                        MessageBox.Show("Đã có lỗi xãy ra !");
                                        return;
                                    }

                            }
                            // nếu mã phiếu hoàn nhập thì trừ trong gói đầu nếu có phiếu hoàn nhập mà chưa có gói đầu thì vô lý
                            if (TenLPN.Contains("T"))
                            {
                                clsVatTuGoiDauKy gdk = new clsVatTuGoiDauKy();

                                gdk.ID_chat_luong = id_chat_luong;
                                gdk.Ma_vat_tu = mavattu;

                                gdk.ID_kho = idKho;
                                DataTable temp = gdk.GetAll();
                                //số lượng gối đầu
                                if (temp.Rows.Count == 0)//chưa có
                                {
                                    MessageBox.Show("Vật tư này chưa có trong danh sách vật tư gối đầu, không thể hoàn nhập được");
                                    return;
                                }
                                decimal soluonght = decimal.Parse(temp.Rows[0]["So_luong"].ToString());
                                soluonght = soluonght - soluong;
                                gdk.So_Luong = soluonght;
                                gdk.ID_VT_Goi_Dau = int.Parse(temp.Rows[0]["ID_VT_Goi_Dau"].ToString());
                                if (gdk.Update() == 0)
                                {
                                    MessageBox.Show("Đã có lỗi xãy ra trong quá trình cập nhật số lượng đầu kỳ!");
                                    return;
                                }
                                //sau đó trừ vào kho, thẻ kho

                                //    MessageBox.Show("Hoàn nhập thành công!");
                                //    return;

                            }
                        }
                        catch (Exception ex) { }

                        if (TenLPN.Contains("X") == true)
                        {

                            if (dc.InsertTonKho(help, mavattu, idKho, soluong, maphieu, ngayNhap, id_chat_luong, true) == 0)
                            {
                                dbcxtransaction.Rollback();
                            }

                        }
                        else
                        {
                            //CO MA PHIEU TD

                            //PHIEU TRU KHO
                            if (dc.InsertTonKho(help, mavattu, idKho, soluong, maphieu, ngayNhap, id_chat_luong, false) == 0)
                            {
                                dbcxtransaction.Rollback();
                            }

                        }
                    }
                    dbcxtransaction.Commit();
                    MessageBox.Show("Bạn đã thêm thành công !");
                }

                LoadData();

            }
            catch (Exception ex)
            {
                MessageBox.Show(Utilities.clsThamSoUtilities.COException(ex));
            }
        }
 private void frmTamUngHoanUngKhoKhac_Load(object sender, EventArgs e)
 {
     clsChi_Tiet_Phieu_Nhap_Vat_Tu chitiet = new clsChi_Tiet_Phieu_Nhap_Vat_Tu();
     gridDanhSachPhieuNhap.DataSource = chitiet.GetAllVatTuChoTamUngHoanUng();
 }
        /// <summary>
        /// hàm này tiến hành cập nhật lại CSDL rất lớn liên quang 5000 dòng
        /// 
        /// </summary>
        public void ChuyenDoi()
        {
            DatabaseHelper help = new DatabaseHelper();
            help.ConnectDatabase();
            // insert
            using (var dbcxtransaction = help.ent.Database.BeginTransaction())
            {
                try
                {
                    for (int i = 0; i < tb.Rows.Count - 1; i++)
                    {
                        string Ma_phieu_nhap = tb.Rows[i]["column1"].ToString();
                        DateTime Ngay_lap = DateTime.Parse(tb.Rows[i]["column2"].ToString());
                        string Kho_nhan = tb.Rows[i]["column3"].ToString();
                        string Ly_do = tb.Rows[i]["column4"].ToString();
                        string Ma_vat_tu = tb.Rows[i]["column5"].ToString();
                        string Ten_vat_tu = tb.Rows[i]["column6"].ToString();
                        string Chat_luong = tb.Rows[i]["column7"].ToString();
                        string DVT = tb.Rows[i]["column8"].ToString();
                        string So_luong_thuc_lanh = tb.Rows[i]["column9"].ToString();
                        string Don_gia = tb.Rows[i]["column10"].ToString();
                        string Thanh_tien = tb.Rows[i]["column11"].ToString();
                        clsPhieuNhapKho pnk = new clsPhieuNhapKho();
                        if (pnk.CheckTonTaiSoDK(Ma_phieu_nhap, help) == false)
                        {
                            pnk.Ma_phieu_nhap = Ma_phieu_nhap;
                            pnk.isGoiDau = rdoPhieuGoiDau.Checked;
                            pnk.isCanTru = false;
                            pnk.Ngay_lap = Ngay_lap;
                            pnk.Kho_nhan = Kho_nhan;
                            pnk.Ly_do = Ly_do;
                            clsLoaiPhieuNhap LPN = new clsLoaiPhieuNhap();
                            LPN.Ma_LPN = Loai_PN;
                            pnk.ID_Loai_Phieu_Nhap = LPN.GetFirst(help);
                            pnk.ID_khoNhan = idkho;
                            if ( pnk.Insert(help) == 0)
                            {
                                dbcxtransaction.Rollback();
                                MessageBox.Show("insert thất bại tại dòng !" + i);
                                return;
                            }

                        }

                        clsChi_Tiet_Phieu_Nhap_Vat_Tu ctpn = new clsChi_Tiet_Phieu_Nhap_Vat_Tu();
                        ctpn.Ma_vat_tu = Ma_vat_tu;
                        ctpn.Ma_phieu_nhap = Ma_phieu_nhap;
                        ctpn.ID_Chat_luong = Chat_luong.Contains("mới") ? 1 : 2;
                        //kiểm tra xem vật tư đã có trong csdl chưa nếu chưa thêm vào
                        clsDM_DonViTinh DMDVT = new clsDM_DonViTinh();
                        if (ctpn.CheckTonTaiSoDK(help) == false)
                        {

                            DMDVT.Ten_don_vi_tinh = DVT;
                            if (DMDVT.hasDuplicateRow(help) == false)
                            {
                                //nếu chưa có thì insert dòng mới
                                DMDVT.Insert(help);
                            }
                            //tiến hành insert 5000 dòng dữ liệu từ phiếu nhập
                        }
                        ctpn.ID_Don_vi_tinh = DMDVT.getMATuTen(DVT, help);
                        //kiểm tra mã vật tư đã tồn tại chưa trong CSDL
                        clsDMVatTu vt = new clsDMVatTu();
                        vt.Ma_vat_tu = Ma_vat_tu;
                        vt.Ten_vat_tu = Ten_vat_tu;
                        vt.ID_Don_vi_tinh = ctpn.ID_Don_vi_tinh;
                        if (vt.KiemTraTrungMa(help) == false)
                        {
                            vt.Insert(help);
                        }
                        ctpn.So_luong_thuc_lanh = decimal.Parse(So_luong_thuc_lanh);
                        ctpn.Insert(help);
                        backgroundWorker1.ReportProgress(i);
                    }
                    dbcxtransaction.Commit();
                    backgroundWorker1.ReportProgress(0);
                    MessageBox.Show("Thêm thành công!");
                }
                catch (Exception ex)
                {
                    dbcxtransaction.Rollback();  // Get stack trace for the exception with source file information
                    MessageBox.Show(Utilities.clsThamSoUtilities.COException(ex));
                    return;

                }

            }
        }
        private void Load_DataNo()
        {
            clsChi_Tiet_Phieu_Nhap_Vat_Tu pn = new clsChi_Tiet_Phieu_Nhap_Vat_Tu();

            dtPhieuNhapNo = pn.GetAll(cbbPhieuNo.GetItemText(this.cbbPhieuNo.SelectedItem));
            gridNhapNo.DataSource = dtPhieuNhapNo;
        }