protected override bool CellValidating(object objValidating, int colIndex, int rowIndex)
        {
            if (dgvList.Columns[colIndex].Name == "clSoLuong")
            {
                ChungTu_ChiTietHangHoaBaseInfo info =
                    ((ChungTu_ChiTietHangHoaBaseInfo)dgvList.CurrentRow.DataBoundItem);
                if (info == null)
                {
                    return(true);
                }
                int SLMoi = Convert.ToInt32(objValidating);
                ListNTH.ForEach(delegate(ChungTu_ChiTietHangHoaBaseInfo match)
                {
                    if (match.MaVach == info.MaVach.Trim() && match.IdSanPham == liHangHoa.IdSanPham && match.SoLuong < SLMoi)
                    {
                        throw new ManagedException("Số lượng mã vạch này đã vượt quá số lượng mã vạch đã xuất!");
                    }
                });

                //if (info.SoLuongTT < SLMoi)
                //{
                //    e.Cancel = true;
                //    throw new ManagedException("Số lượng tồn không đủ để xuất !");
                //}
            }
            return(base.CellValidating(objValidating, colIndex, rowIndex));
        }
Example #2
0
 public void UpdateCTHH(ChungTu_ChiTietHangHoaBaseInfo info)
 {
     ExecuteCommand(Declare.StoreProcedureNamespace.spChungTuChiTietHHXNBUpdate,
                    info.IdChungTuChiTiet,
                    info.IdChiTietHangHoa,
                    info.SoLuong);
 }
Example #3
0
 public void InsertTmp(ChungTu_ChiTietHangHoaBaseInfo chiTietHangHoaInfo, string soChungTu)
 {
     ExecuteCommand(@"insert into TBL_TMP_MAVACH_DIEUCHUYEN(dongia, idchitiethanghoa, idchungtuchitiet, idsanpham,
         masanpham, mavach, soluong, tendonvitinh, tensanpham, thanhtien, trangthai, trungmavach, sochungtu) 
         values(:dongia, :idchitiethanghoa, :idchungtuchitiet, :idsanpham, :masanpham, :mavach, :soluong, 
         :tendonvitinh, :tensanpham, :thanhtien, :trangthai, :trungmavach, :sochungtu)",
                    chiTietHangHoaInfo.DonGia,
                    chiTietHangHoaInfo.IdChiTietHangHoa,
                    chiTietHangHoaInfo.IdChungTuChiTiet,
                    chiTietHangHoaInfo.IdSanPham,
                    String.IsNullOrEmpty(chiTietHangHoaInfo.MaSanPham) ? String.Empty : chiTietHangHoaInfo.MaSanPham,
                    chiTietHangHoaInfo.MaVach,
                    chiTietHangHoaInfo.SoLuong,
                    String.IsNullOrEmpty(chiTietHangHoaInfo.TenDonViTinh) ? String.Empty : chiTietHangHoaInfo.TenDonViTinh,
                    String.IsNullOrEmpty(chiTietHangHoaInfo.TenSanPham) ? String.Empty : chiTietHangHoaInfo.TenSanPham,
                    chiTietHangHoaInfo.ThanhTien,
                    chiTietHangHoaInfo.TrangThai,
                    chiTietHangHoaInfo.TrungMaVach,
                    soChungTu);
 }
Example #4
0
        private void SaveBusinessXuatDieuChuyenTG()
        {
            ChungTu_ChiTietInfo obj = tbl_ChungTuDAO.Instance.GetIdChungTuBySoPhieu(chungTuInfo.SoChungTu, Convert.ToInt32(TransactionType.DE_NGHI_XUAT_DIEU_CHUYEN_TRUNG_GIAN));

            if (obj == null)
            {
                return;
            }

            int idChungTu = 0;

            if (obj != null)
            {
                idChungTu = obj.IdChungTu;
            }

            ChungTuXuatDieuChuyenInfo chungTuXuatDieuChuyenTGInfor =
                DeNghiXuatDieuChuyenTGDataProvider.Instance.GetChungTuXuatDCTGBySoCTGoc(chungTuInfo.SoChungTu);

            ChungTuXuatDieuChuyenInfo chungTuXuatDieuChuyen =
                DeNghiNhapDieuChuyenDataProvider.Instance.GetListDNNDCBySoCT(soCTG);

            if (chungTuXuatDieuChuyenTGInfor != null)
            {
                if (chungTuXuatDieuChuyenTGInfor.IdNguoiNhapXuatKho == 0)
                {
                    chungTuXuatDieuChuyenTGInfor.IdNguoiNhapXuatKho = Declare.IdNhanVien;
                }
                chungTuXuatDieuChuyenTGInfor.LoaiChungTu = Convert.ToInt32(TransactionType.XUAT_DIEU_CHUYEN_TRUNG_GIAN);

                if (dtNgayLap.DateTime == DateTime.MinValue)
                {
                    chungTuXuatDieuChuyenTGInfor.NgayNhapXuatKho = CommonProvider.Instance.GetSysDate();
                }
                else
                {
                    chungTuXuatDieuChuyenTGInfor.NgayNhapXuatKho = Convert.ToDateTime(dtNgayLap.EditValue,
                                                                                      new CultureInfo("vi-VN"));
                }

                XuatDieuChuyenTGBussiness = new XuatDieuChuyenTGBussiness(chungTuXuatDieuChuyenTGInfor);
            }
            else
            {
                XuatDieuChuyenTGBussiness = new XuatDieuChuyenTGBussiness(new ChungTuXuatDieuChuyenInfo
                {
                    //detail của phiếu xuất điều chuyển
                    LoaiChungTu        = Convert.ToInt32(TransactionType.XUAT_DIEU_CHUYEN_TRUNG_GIAN),
                    IdChungTu          = idChungTu,
                    SoChungTu          = CommonProvider.Instance.GetSoPhieu(Declare.Prefix.PhieuXuatDieuChuyenTrungGian),
                    SoChungTuGoc       = txtSoPhieu.Text.Trim(),
                    NgayNhapXuatKho    = CommonProvider.Instance.GetSysDate(), //Convert.ToDateTime(dtNgayLap.EditValue, new CultureInfo("vi-VN")),
                    IdKho              = -chungTuXuatDieuChuyen.IdKho,
                    IdNguoiNhapXuatKho = Declare.IdNhanVien,
                });
            }
            //chi tiết phiếu nhận điều chuyển
            XuatDieuChuyenTGBussiness.ListChiTietChungTu.RemoveAll(
                delegate(ChungTu_ChiTietInfo matchRemove)
            {
                return(!business.ListChiTietChungTu.Exists(
                           delegate(ChungTu_ChiTietInfo matchExists)
                {
                    return matchExists.IdSanPham == matchRemove.IdSanPham;
                }));
            });

            foreach (ChungTu_ChiTietInfo chungTuChiTietInfo in business.ListChiTietChungTu)
            {
                ChungTu_ChiTietInfo chiTietHangHoaNhanDieuChuyen =
                    XuatDieuChuyenTGBussiness.ListChiTietChungTu.Find(
                        delegate(ChungTu_ChiTietInfo match)
                {
                    return(match.IdSanPham == chungTuChiTietInfo.IdSanPham);
                });
                if (chiTietHangHoaNhanDieuChuyen == null)
                {
                    XuatDieuChuyenTGBussiness.ListChiTietChungTu.Add(
                        new ChungTu_ChiTietInfo
                    {
                        IdChungTu = idChungTu,
                        IdSanPham = chungTuChiTietInfo.IdSanPham,
                        SoLuong   = chungTuChiTietInfo.SoLuong
                    });
                }
                else
                {
                    chiTietHangHoaNhanDieuChuyen.SoLuong = chungTuChiTietInfo.SoLuong;
                }
            }

            XuatDieuChuyenTGBussiness.ListChiTietHangHoa.RemoveAll(
                delegate(ChungTu_ChiTietHangHoaBaseInfo matchRemove)
            {
                return(!business.ListChiTietHangHoa.Exists(
                           delegate(ChungTu_ChiTietHangHoaBaseInfo matchExists)
                {
                    return matchExists.IdSanPham == matchRemove.IdSanPham &&
                    matchExists.MaVach == matchRemove.MaVach;
                }));
            });

            foreach (ChungTu_ChiTietHangHoaBaseInfo chungTuChiTietInfo in business.ListChiTietHangHoa)
            {
                ChungTu_ChiTietHangHoaBaseInfo chiTietHangHoaNhanDieuChuyen =
                    XuatDieuChuyenTGBussiness.ListChiTietHangHoa.Find(
                        delegate(ChungTu_ChiTietHangHoaBaseInfo match)
                {
                    return(match.MaVach == chungTuChiTietInfo.MaVach &&
                           match.IdSanPham == chungTuChiTietInfo.IdSanPham);
                });
                if (chiTietHangHoaNhanDieuChuyen == null)
                {
                    XuatDieuChuyenTGBussiness.ListChiTietHangHoa.Add(
                        new ChungTu_ChiTietHangHoaBaseInfo
                    {
                        MaVach    = chungTuChiTietInfo.MaVach,
                        IdSanPham = chungTuChiTietInfo.IdSanPham,
                        SoLuong   = chungTuChiTietInfo.SoLuong,
                        //IdChungTuChiTiet = chungTuChiTietInfo.IdChungTuChiTiet
                    });
                }
                else
                {
                    chiTietHangHoaNhanDieuChuyen.SoLuong = chungTuChiTietInfo.SoLuong;
                }
            }
            //xét trạng thái cho phiếu nhận điều chuyển
            int SumChiTietMaVach  = 0;
            int SumChiTietChungTu = 0;

            foreach (ChungTu_ChiTietHangHoaBaseInfo chungTuChiTietHangHoaBaseInfo in XuatDieuChuyenTGBussiness.ListChiTietHangHoa)
            {
                SumChiTietMaVach += chungTuChiTietHangHoaBaseInfo.SoLuong;
            }
            foreach (ChungTu_ChiTietInfo chungTuChiTietInfo in XuatDieuChuyenTGBussiness.ListChiTietChungTu)
            {
                SumChiTietChungTu += chungTuChiTietInfo.SoLuong;
            }

            if (SumChiTietChungTu == SumChiTietMaVach)
            {
                XuatDieuChuyenTGBussiness.ChungTu.TrangThai = Convert.ToInt32(TrangThaiDieuChuyen.DA_XUAT);
            }
            //hah: khong thuc hien save chung tu tai day
        }
Example #5
0
 internal void Insert(ChungTu_ChiTietHangHoaBaseInfo chungTuHangHoaChiTietInfor)
 {
     ExecuteCommand(Declare.StoreProcedureNamespace.spChungTuChiTietHHXTHInsert, chungTuHangHoaChiTietInfor.IdChungTuChiTiet, chungTuHangHoaChiTietInfor.IdChiTietHangHoa, chungTuHangHoaChiTietInfor.SoLuong);
 }
Example #6
0
 //todo: @HANHBD (DONE) store này không xóa trong chứng từ chi tiết hàng hóa
 //việc thực hiện xóa trong trong bảng chứng từ chi tiết hàng hóa có thể dùng một store chung
 //vì giống nhau prototype hàm (idChungTuChiTiet, idChiTietHangHoa)
 internal void Delete(ChungTu_ChiTietHangHoaBaseInfo infor)
 {
     ExecuteCommand(Declare.StoreProcedureNamespace.spChungTuChiTietHangHoaDelete, infor.IdChungTuChiTiet, infor.IdChiTietHangHoa);
 }
Example #7
0
        private void btnXacNhan_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog opf = new OpenFileDialog();
                if (opf.ShowDialog() == DialogResult.OK)
                {
                    DataSet ds;
                    string  sql = String.Empty;

                    using (OleDbConnection oConn = new OleDbConnection())
                    {
                        ds = new DataSet();
                        oConn.ConnectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes\"", opf.FileName);
                        oConn.Open();

                        sql = "Select [MA_HANG_HOA] as MaSanPham, [SERIAL] as MaVach, [SO_LUONG] as SoLuong from [Items$]";
                        using (OleDbDataAdapter ad = new OleDbDataAdapter(sql, oConn))
                        {
                            ad.Fill(ds, "HangHoaChiTiet");
                        }
                    }

                    business.ListChiTietHangHoa.Clear();

                    foreach (ChungTu_ChiTietInfo chungTuChiTietInfor in business.ListChiTietChungTu)
                    {
                        ds.Tables[0].DefaultView.RowFilter = String.Format("MaSanPham='{0}'", chungTuChiTietInfor.MaSanPham);
                        DataTable tableTemp = ds.Tables[0].DefaultView.ToTable("Temp");
                        foreach (DataRow dataRow in tableTemp.Rows)
                        {
                            if (dataRow["MaVach"] == DBNull.Value || String.IsNullOrEmpty(Convert.ToString(dataRow["MaVach"])))
                            {
                                throw new ManagedException("Đang có dòng không được nhập mã vạch.");
                            }

                            ChungTu_ChiTietHangHoaBaseInfo chiTietMaVach = business.ListChiTietHangHoa.Find(
                                delegate(ChungTu_ChiTietHangHoaBaseInfo match)
                            {
                                return
                                (match.MaVach == Convert.ToString(dataRow["MaVach"]));
                            });
                            if (chiTietMaVach == null)
                            {
                                business.ListChiTietHangHoa.Add(
                                    new ChungTu_ChiTietHangHoaBaseInfo
                                {
                                    IdSanPham        = chungTuChiTietInfor.IdSanPham,
                                    IdChungTuChiTiet = chungTuChiTietInfor.IdChungTuChiTiet,
                                    MaVach           = Convert.ToString(dataRow["MaVach"]),
                                    SoLuong          = Convert.ToInt32(dataRow["SoLuong"]),
                                    TrungMaVach      = chungTuChiTietInfor.TrungMaVach
                                });
                            }
                            else
                            {
                                chiTietMaVach.SoLuong += Convert.ToInt32(dataRow["SoLuong"]);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
#if DEBUG
                MessageBox.Show(ex.ToString());
#else
                MessageBox.Show(ex.Message);
#endif
                throw;
            }
        }
Example #8
0
        private void btnXacNhan_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog opf = new OpenFileDialog();
                if (opf.ShowDialog() == DialogResult.OK)
                {
                    DataSet ds;
                    string  sql = String.Empty;

                    using (OleDbConnection oConn = new OleDbConnection())
                    {
                        ds = new DataSet();
                        oConn.ConnectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes\"", opf.FileName);
                        oConn.Open();

                        sql = "Select [MA_HANG_HOA] as MaSanPham, [SERIAL] as MaVach, [SO_LUONG] as SoLuong from [Items$]";
                        using (OleDbDataAdapter ad = new OleDbDataAdapter(sql, oConn))
                        {
                            ad.Fill(ds, "HangHoaChiTiet");
                        }

                        sql = "Select [MA_HANG_HOA] as MaSanPham, [SERIAL] as MaVach, SUM([SO_LUONG]) as SoLuong from [Items$] group by [MA_HANG_HOA], [SERIAL]";
                        using (OleDbDataAdapter ad = new OleDbDataAdapter(sql, oConn))
                        {
                            ad.Fill(ds, "TblCheck");
                        }
                    }

                    foreach (ChungTu_ChiTietInfo chungTuChiTietInfor in business.ListChiTietChungTu)
                    {
                        ////if(san pham khong duoc phep trung ma)
                        ////{
                        ////    ds.Tables["TblCheck"].DefaultView.RowFilter = String.Format("MaSanPham='{0}' and SoLuong > 1", chungTuChiTietInfor.MaSanPham);
                        ////    DataTable tableCheck = ds.Tables["TblCheck"].DefaultView.ToTable("Temp");
                        ////    tableCheck.Rows.Count > 0 throw exception
                        ////}

                        ds.Tables["HangHoaChiTiet"].DefaultView.RowFilter = String.Format("MaSanPham='{0}'", chungTuChiTietInfor.MaSanPham);
                        DataTable tableTemp = ds.Tables[0].DefaultView.ToTable("Temp");
                        int       slMaVach  = 0;
                        foreach (DataRow dataRow in tableTemp.Rows)
                        {
                            slMaVach += Convert.ToInt32(dataRow["SoLuong"]);
                        }
                        if (slMaVach != chungTuChiTietInfor.SoLuong)
                        {
                            throw new Exception("Số lượng mã vạch của mã " + chungTuChiTietInfor.MaSanPham +
                                                " không khớp với số lượng trên phiếu.");
                        }
                    }
                    if (business.ListChiTietHangHoa.Count > 0)
                    {
                        if (MessageBox.Show("Các mã vạch đang tồn tại trên phiếu sẽ bị xóa đi, bạn có chắc chắn không?", "Xác nhận", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            business.ListChiTietHangHoa.Clear();
                        }
                    }

                    foreach (ChungTu_ChiTietInfo chungTuChiTietInfor in business.ListChiTietChungTu)
                    {
                        ds.Tables[0].DefaultView.RowFilter = String.Format("MaSanPham='{0}'", chungTuChiTietInfor.MaSanPham);
                        DataTable tableTemp = ds.Tables[0].DefaultView.ToTable("Temp");
                        foreach (DataRow dataRow in tableTemp.Rows)
                        {
                            if (dataRow["MaVach"] == DBNull.Value || String.IsNullOrEmpty(Convert.ToString(dataRow["MaVach"])))
                            {
                                throw new ManagedException("Đang có dòng không được nhập mã vạch.");
                            }

                            ChungTu_ChiTietHangHoaBaseInfo chiTietMaVach = business.ListChiTietHangHoa.Find(
                                delegate(ChungTu_ChiTietHangHoaBaseInfo match)
                            {
                                return
                                (match.MaVach == Convert.ToString(dataRow["MaVach"]));
                            });
                            if (chiTietMaVach == null)
                            {
                                business.ListChiTietHangHoa.Add(
                                    new ChungTu_ChiTietHangHoaBaseInfo
                                {
                                    IdSanPham        = chungTuChiTietInfor.IdSanPham,
                                    IdChungTuChiTiet = chungTuChiTietInfor.IdChungTuChiTiet,
                                    MaVach           = Convert.ToString(dataRow["MaVach"]),
                                    SoLuong          = Convert.ToInt32(dataRow["SoLuong"]),
                                    TrungMaVach      = chungTuChiTietInfor.TrungMaVach
                                });
                            }
                            else
                            {
                                chiTietMaVach.SoLuong += Convert.ToInt32(dataRow["SoLuong"]);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
#if DEBUG
                MessageBox.Show(ex.ToString());
#else
                MessageBox.Show(ex.Message);
#endif
                throw;
            }
        }
Example #9
0
        private void SaveBusinessNhanDieuChuyen()
        {
            ChungTu_ChiTietInfo obj = tbl_ChungTuDAO.Instance.GetIdChungTuBySoPhieu(txtSoPhieu.Text.Trim(), Convert.ToInt32(TransactionType.DE_NGHI_NHAN_DIEU_CHUYEN));
            int idChungTu           = 0;

            if (obj != null)
            {
                idChungTu = obj.IdChungTu;
            }

            ChungTuNhapDieuChuyenInfor chungTuNhapDieuChuyenInfor =
                NhanDieuChuyenCungTTDataProvider.Instance.GetChungTuNhanDCBySoCTGoc(chungTuInfo.SoChungTu);

            NhanDieuChuyenCungTTBussiness NhanDieuChuyenBussiness = null;

            if (chungTuNhapDieuChuyenInfor != null)
            {
                if (chungTuNhapDieuChuyenInfor.IdNguoiNhapXuatKho == 0)
                {
                    chungTuNhapDieuChuyenInfor.IdNguoiNhapXuatKho = Declare.IdNhanVien;
                }
                chungTuNhapDieuChuyenInfor.LoaiChungTu     = Convert.ToInt32(TransactionType.NHAN_DIEU_CHUYEN);
                chungTuNhapDieuChuyenInfor.NgayNhapXuatKho = Convert.ToDateTime(dtNgayLap.Text);

                NhanDieuChuyenBussiness = new NhanDieuChuyenCungTTBussiness(chungTuNhapDieuChuyenInfor);
            }
            else
            {
                NhanDieuChuyenBussiness = new NhanDieuChuyenCungTTBussiness(new ChungTuNhapDieuChuyenInfor
                {
                    //detail của phiếu nhận điều chuyển
                    LoaiChungTu        = Convert.ToInt32(TransactionType.NHAN_DIEU_CHUYEN),
                    IdChungTu          = idChungTu,
                    SoChungTu          = CommonProvider.Instance.GetSoPhieu(Declare.Prefix.PhieuNhanDieuChuyen),
                    SoChungTuGoc       = txtSoPhieu.Text.Trim(),
                    NgayNhapXuatKho    = CommonProvider.Instance.GetSysDate(),      //Convert.ToDateTime(dtNgayLap.Text),
                    IdKho              = chungTuInfo.IdKhoDieuChuyen,
                    IdNguoiNhapXuatKho = Declare.IdNhanVien,
                });
            }

            //chi tiết phiếu nhận điều chuyển
            NhanDieuChuyenBussiness.ListChiTietChungTu.RemoveAll(
                delegate(ChungTu_ChiTietInfo matchRemove)
            {
                return(!business.ListChiTietChungTu.Exists(
                           delegate(ChungTu_ChiTietInfo matchExists)
                {
                    return matchExists.IdSanPham == matchRemove.IdSanPham;
                }));
            });

            foreach (ChungTu_ChiTietInfo chungTuChiTietInfo in business.ListChiTietChungTu)
            {
                ChungTu_ChiTietInfo chiTietHangHoaNhanDieuChuyen =
                    NhanDieuChuyenBussiness.ListChiTietChungTu.Find(
                        delegate(ChungTu_ChiTietInfo match)
                {
                    return(match.IdSanPham == chungTuChiTietInfo.IdSanPham);
                });
                if (chiTietHangHoaNhanDieuChuyen == null)
                {
                    NhanDieuChuyenBussiness.ListChiTietChungTu.Add(
                        new ChungTu_ChiTietInfo
                    {
                        IdChungTu = idChungTu,
                        IdSanPham = chungTuChiTietInfo.IdSanPham,
                        SoLuong   = chungTuChiTietInfo.SoLuong
                    });
                }
                else
                {
                    chiTietHangHoaNhanDieuChuyen.SoLuong = chungTuChiTietInfo.SoLuong;
                }
            }

            NhanDieuChuyenBussiness.ListChiTietHangHoa.RemoveAll(
                delegate(ChungTu_ChiTietHangHoaBaseInfo matchRemove)
            {
                return(!business.ListChiTietHangHoa.Exists(
                           delegate(ChungTu_ChiTietHangHoaBaseInfo matchExists)
                {
                    return matchExists.IdSanPham == matchRemove.IdSanPham &&
                    matchExists.MaVach == matchRemove.MaVach;
                }));
            });

            foreach (ChungTu_ChiTietHangHoaBaseInfo chungTuChiTietInfo in business.ListChiTietHangHoa)
            {
                ChungTu_ChiTietHangHoaBaseInfo chiTietHangHoaNhanDieuChuyen =
                    NhanDieuChuyenBussiness.ListChiTietHangHoa.Find(
                        delegate(ChungTu_ChiTietHangHoaBaseInfo match)
                {
                    return(match.MaVach == chungTuChiTietInfo.MaVach &&
                           match.IdSanPham == chungTuChiTietInfo.IdSanPham);
                });
                if (chiTietHangHoaNhanDieuChuyen == null)
                {
                    NhanDieuChuyenBussiness.ListChiTietHangHoa.Add(
                        new ChungTu_ChiTietHangHoaBaseInfo
                    {
                        MaVach    = chungTuChiTietInfo.MaVach,
                        IdSanPham = chungTuChiTietInfo.IdSanPham,
                        SoLuong   = chungTuChiTietInfo.SoLuong,
                        //IdChungTuChiTiet = chungTuChiTietInfo.IdChungTuChiTiet
                    });
                }
                else
                {
                    chiTietHangHoaNhanDieuChuyen.SoLuong = chungTuChiTietInfo.SoLuong;
                }
            }
            //xét trạng thái cho phiếu nhận điều chuyển
            int SumChiTietMaVach  = 0;
            int SumChiTietChungTu = 0;

            foreach (ChungTu_ChiTietHangHoaBaseInfo chungTuChiTietHangHoaBaseInfo in NhanDieuChuyenBussiness.ListChiTietHangHoa)
            {
                SumChiTietMaVach += chungTuChiTietHangHoaBaseInfo.SoLuong;
            }
            foreach (ChungTu_ChiTietInfo chungTuChiTietInfo in NhanDieuChuyenBussiness.ListChiTietChungTu)
            {
                SumChiTietChungTu += chungTuChiTietInfo.SoLuong;
            }

            if (SumChiTietChungTu == SumChiTietMaVach)
            {
                NhanDieuChuyenBussiness.ChungTu.TrangThai = Convert.ToInt32(TrangThaiDieuChuyen.DA_NHAN);
            }
            NhanDieuChuyenBussiness.SaveChungTu();
        }
        private void XoaLine_Click(object sender, EventArgs e)
        {
            try
            {
                string soChungTuXuat =
                    ((BCChiTietHangChuyenKhoInfo)grvBCNhanChuyenKho.GetRow(grvBCNhanChuyenKho.FocusedRowHandle)).
                    SoPhieuXuat;

                string soChungTuNhan =
                    ((BCChiTietHangChuyenKhoInfo)grvBCNhanChuyenKho.GetRow(grvBCNhanChuyenKho.FocusedRowHandle)).
                    SoPhieuNhan;

                string maVach =
                    ((BCChiTietHangChuyenKhoInfo)grvBCNhanChuyenKho.GetRow(grvBCNhanChuyenKho.FocusedRowHandle)).
                    MaVach;

                string maSanPham =
                    ((BCChiTietHangChuyenKhoInfo)grvBCNhanChuyenKho.GetRow(grvBCNhanChuyenKho.FocusedRowHandle)).
                    MaSanPham;

                int idSanPham =
                    QLBanHang.Modules.DanhMuc.Providers.DmSanPhamProvider.Instance.GetSanPhamByMa(maSanPham).IdSanPham;

                if (MessageBox.Show("Bạn có chắc chắn xóa không?", "Xác nhận xóa mã vạch", MessageBoxButtons.YesNo) == DialogResult.No)
                {
                    return;
                }

                ConnectionUtil.Instance.BeginTransaction();

                ChungTuDieuChuyenInfor infoXuat =
                    tblChungTuDataProvider.GetChungTuBySoChungTu <ChungTuDieuChuyenInfor>(soChungTuXuat);

                if (!String.IsNullOrEmpty(soChungTuNhan))
                {
                    ChungTuNhapDieuChuyenInfor infoNhap =
                        tblChungTuDataProvider.GetChungTuBySoChungTu <ChungTuNhapDieuChuyenInfor>(soChungTuNhan);

                    NhanDieuChuyenBussiness       nhanDieuChuyenBussiness = new NhanDieuChuyenBussiness(infoNhap);
                    DeNghiNhanDieuChuyenBussiness deNghiNhanDieuChuyenBussiness;
                    if (nhanDieuChuyenBussiness.ListChiTietHangHoa.Count > 0)
                    {
                        ChungTu_ChiTietHangHoaBaseInfo chiTietHangHoaBaseInfo =
                            nhanDieuChuyenBussiness.ListChiTietHangHoa.Find(delegate(ChungTu_ChiTietHangHoaBaseInfo match)
                        {
                            return(match.MaVach == maVach &&
                                   match.IdSanPham == idSanPham);
                        });

                        ChungTu_ChiTietInfo chungTuChiTietInfo =
                            nhanDieuChuyenBussiness.ListChiTietChungTu.Find(delegate(ChungTu_ChiTietInfo match)
                        {
                            return(match.IdSanPham == idSanPham);
                        });

                        nhanDieuChuyenBussiness.ListChiTietHangHoa.Remove(chiTietHangHoaBaseInfo);

                        if (chiTietHangHoaBaseInfo.SoLuong == chungTuChiTietInfo.SoLuong)
                        {
                            nhanDieuChuyenBussiness.ListChiTietChungTu.Remove(chungTuChiTietInfo);
                        }
                        else
                        {
                            chungTuChiTietInfo.SoLuong -= chiTietHangHoaBaseInfo.SoLuong;
                        }

                        nhanDieuChuyenBussiness.SaveChungTu();

                        deNghiNhanDieuChuyenBussiness = new DeNghiNhanDieuChuyenBussiness(infoNhap);

                        DeNghiNhanDieuChuyenInfor deNghiNhanDieuChuyenInfor = deNghiNhanDieuChuyenBussiness.ListChiTietChungTu.Find(
                            delegate(DeNghiNhanDieuChuyenInfor match)
                        {
                            return(match.IdSanPham == idSanPham);
                        });

                        if (chiTietHangHoaBaseInfo.SoLuong == deNghiNhanDieuChuyenInfor.SoLuong)
                        {
                            deNghiNhanDieuChuyenBussiness.ListChiTietChungTu.Remove(deNghiNhanDieuChuyenInfor);
                        }
                        else
                        {
                            deNghiNhanDieuChuyenInfor.SoLuong -= chiTietHangHoaBaseInfo.SoLuong;
                        }

                        deNghiNhanDieuChuyenBussiness.SaveChungTu();
                    }
                    else
                    {
                        deNghiNhanDieuChuyenBussiness = new DeNghiNhanDieuChuyenBussiness(infoNhap);

                        DeNghiNhanDieuChuyenInfor deNghiNhanDieuChuyenInfor = deNghiNhanDieuChuyenBussiness.ListChiTietChungTu.Find(
                            delegate(DeNghiNhanDieuChuyenInfor match)
                        {
                            return(match.IdSanPham == idSanPham);
                        });

                        deNghiNhanDieuChuyenBussiness.ListChiTietChungTu.Remove(deNghiNhanDieuChuyenInfor);

                        deNghiNhanDieuChuyenBussiness.SaveChungTu();
                    }
                }

                XuatDieuChuyenBusiness    xuatDieuChuyenBusiness = new XuatDieuChuyenBusiness(infoXuat);
                DeNghiDieuChuyenBussiness deNghiDieuChuyenBussiness;

                if (xuatDieuChuyenBusiness.ListChiTietHangHoa.Count > 0)
                {
                    ChungTu_ChiTietInfo chungTuChiTietInfo =
                        xuatDieuChuyenBusiness.ListChiTietChungTu.Find(delegate(ChungTu_ChiTietInfo match)
                    {
                        return(match.IdSanPham == idSanPham);
                    });

                    ChungTu_ChiTietHangHoaBaseInfo chiTietHangHoaBaseInfo =
                        xuatDieuChuyenBusiness.ListChiTietHangHoa.Find(delegate(ChungTu_ChiTietHangHoaBaseInfo match)
                    {
                        return(match.MaVach == maVach &&
                               match.IdSanPham == idSanPham);
                    });

                    xuatDieuChuyenBusiness.ListChiTietHangHoa.Remove(chiTietHangHoaBaseInfo);

                    if (chiTietHangHoaBaseInfo.SoLuong == chungTuChiTietInfo.SoLuong)
                    {
                        xuatDieuChuyenBusiness.ListChiTietChungTu.Remove(chungTuChiTietInfo);
                    }
                    else
                    {
                        chungTuChiTietInfo.SoLuong -= chiTietHangHoaBaseInfo.SoLuong;
                    }

                    xuatDieuChuyenBusiness.SaveChungTu();

                    deNghiDieuChuyenBussiness = new DeNghiDieuChuyenBussiness(infoXuat);

                    DeNghiDieuChuyenInfor deNghiDieuChuyenInfor = deNghiDieuChuyenBussiness.ListChiTietChungTu.Find(
                        delegate(DeNghiDieuChuyenInfor match)
                    {
                        return(match.IdSanPham == idSanPham);
                    });

                    if (chiTietHangHoaBaseInfo.SoLuong == deNghiDieuChuyenInfor.SoLuong)
                    {
                        deNghiDieuChuyenBussiness.ListChiTietChungTu.Remove(deNghiDieuChuyenInfor);
                    }
                    else
                    {
                        deNghiDieuChuyenInfor.SoLuong -= chiTietHangHoaBaseInfo.SoLuong;
                    }

                    deNghiDieuChuyenBussiness.SaveChungTu();
                }

                ConnectionUtil.Instance.CommitTransaction();

                //grcBCNhanChuyenKho.DataSource = XuatDieuChuyenDataProvider.Instance.GetBCChiTietChuyenKho(MaTrungTam, MaKho, Convert.ToDateTime(deFrom.EditValue), Convert.ToDateTime(deTo.EditValue));
            }
            catch (Exception ex)
            {
                ConnectionUtil.Instance.RollbackTransaction();
#if DEBUG
                MessageBox.Show(ex.ToString());
#else
                MessageBox.Show(ex.Message);
#endif
            }
        }