public void TestXuatDieuChuyen() { TestDeNghiXuatDieuChuyen(); //Lấy số tồn kho của một sản phẩm có mã là xxx (ví dụ ban đầu là 5) //Ma san pham: 06000178 - 279 HangTonKhoInfo hangTonKhoBanDau = HangTonKhoDataProvider.GetHangTonKhoById(Declare.IdKho, 279, 0); //tạo một chứng từ xuất tiêu hao có số là ABC1, nhập sản phẩm xxx với số lượng nhập là 2 //số phiếu : PNNB0100070000001 xuatDieuChuyenInfor = new ChungTuDieuChuyenInfor() { IdChungTu = deNghiXuatDieuChuyenInfor.IdChungTu, SoChungTu = soPhieu, LoaiChungTu = Convert.ToInt32(TransactionType.XUAT_DIEU_CHUYEN), GhiChu = "Test Nghiệp Vụ", IdKho = Declare.IdKho }; XuatDieuChuyenBusiness xuatDieuChuyenBusiness = new XuatDieuChuyenBusiness(xuatDieuChuyenInfor); xuatDieuChuyenBusiness.ListChiTietChungTu.Add(new ChungTu_ChiTietInfo { IdSanPham = 279, SoLuong = 2 }); xuatDieuChuyenBusiness.ListChiTietHangHoa.Add(new ChungTu_ChiTietHangHoaBaseInfo { IdSanPham = 279, MaVach = "1234TESTNGHIEPVU", SoLuong = 1 }); xuatDieuChuyenBusiness.ListChiTietHangHoa.Add(new ChungTu_ChiTietHangHoaBaseInfo { IdSanPham = 279, MaVach = "5678TESTNGHIEPVU", SoLuong = 1 }); xuatDieuChuyenBusiness.SaveChungTu(); //Lấp số tồn kho của sản phẩm xxx (kết quả hy vọng olà 7) HangTonKhoInfo hangTonKhoSauKhiXuat = HangTonKhoDataProvider.GetHangTonKhoById(Declare.IdKho, 279, 0); //Kiểm tra có đúng là kết quả mong đợi - ban đầu có bằng 2 không? Assert.AreEqual(hangTonKhoBanDau.SoLuong - 4, hangTonKhoSauKhiXuat.SoLuong); Assert.AreEqual(hangTonKhoBanDau.TonAo, hangTonKhoSauKhiXuat.TonAo); }
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 } }