public void TestNhanDieuChuyen() { TestDeNghiNhanDieuChuyen(); //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 nhanDieuChuyenInfor = new ChungTuNhapDieuChuyenInfor() { IdChungTu = deNghiNhanDieuChuyenInfor.IdChungTu, SoChungTu = soPhieu, LoaiChungTu = Convert.ToInt32(TransactionType.NHAN_DIEU_CHUYEN), GhiChu = "Test Nghiệp Vụ", IdKho = Declare.IdKho }; NhanDieuChuyenBussiness nhanDieuChuyenBussiness = new NhanDieuChuyenBussiness(nhanDieuChuyenInfor); nhanDieuChuyenBussiness.ListChiTietChungTu.Add(new ChungTu_ChiTietInfo { IdSanPham = 279, SoLuong = 2 }); nhanDieuChuyenBussiness.ListChiTietHangHoa.Add(new ChungTu_ChiTietHangHoaBaseInfo { IdSanPham = 279, MaVach = "1234TESTNGHIEPVU", SoLuong = 1 }); nhanDieuChuyenBussiness.ListChiTietHangHoa.Add(new ChungTu_ChiTietHangHoaBaseInfo { IdSanPham = 279, MaVach = "5678TESTNGHIEPVU", SoLuong = 1 }); nhanDieuChuyenBussiness.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 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 } }