public static void UpdateCtBaoCaoDL(this CtBaoCaoDL ctBaoCaoDL, CtBaoCaoDLViewModel ctBaoCaoDLVm) { ctBaoCaoDL.Id = ctBaoCaoDLVm.Id; ctBaoCaoDL.IdBaoCao = ctBaoCaoDLVm.IdBaoCao; ctBaoCaoDL.IdSach = ctBaoCaoDLVm.IdSach; ctBaoCaoDL.DonGiaXuat = ctBaoCaoDLVm.DonGiaXuat; ctBaoCaoDL.SoLuongNhap = ctBaoCaoDLVm.SoLuongNhap; ctBaoCaoDL.SoLuongTonDotTruoc = ctBaoCaoDLVm.SoLuongTonDotTruoc; ctBaoCaoDL.TongTienNhap = ctBaoCaoDLVm.TongTienNhap; ctBaoCaoDL.SoLuongXuat = ctBaoCaoDLVm.SoLuongXuat; ctBaoCaoDL.SoLuongCon = ctBaoCaoDLVm.SoLuongCon; ctBaoCaoDL.TongTienNo = ctBaoCaoDLVm.TongTienNo; ctBaoCaoDL.TongTienXuat = ctBaoCaoDLVm.TongTienXuat; }
public ActionResult ThemChiTietBaoCao(BaoCaoDLViewModel baoCaoDLVm, string TenSach) { if (ModelState.IsValid) { var sach = sachService.GetSingleByName(TenSach); if (sach == null) { ModelState.AddModelError("", "Thông tin sách không tồn tại."); } else { // Cuốn sách tồn tại thì gán id sách vào đối tượng ctBaoCao baoCaoDLVm.ctBaoCao.IdSach = sach.Id; // Truy xuất cuốn sách trong danh sách đã mua của Đại lý var dsThongKeBaoCao = baoCaoDLService.GetListAnalysisReport(baoCaoDLVm.IdDaiLy, baoCaoDLVm.NgayBatDau, baoCaoDLVm.NgayKetThuc); var tonTaiSachXuat = dsThongKeBaoCao.Find(X => X.Id == baoCaoDLVm.ctBaoCao.IdSach); if (tonTaiSachXuat == null) { // Sách khai không có trong danh sách phiếu xuất của đại lý ModelState.AddModelError("", "Không thể khai số lượng sách chưa lập phiếu."); } else if (baoCaoDLVm.ctBaoCao.SoLuongXuat > (tonTaiSachXuat.SoLuongNhap + tonTaiSachXuat.SoLuongTonDotTruoc)) { // Nếu có mà khai số lượng ảo sẽ cảnh báo ModelState.AddModelError("", "Số lượng bán không thể lớn hơn số lượng đã mua là: " + (tonTaiSachXuat.SoLuongNhap + tonTaiSachXuat.SoLuongTonDotTruoc)); } else { // Còn lại hợp lệ var slMua = tonTaiSachXuat.SoLuongNhap + tonTaiSachXuat.SoLuongTonDotTruoc; var giaBan = (double)sachService.GetById(baoCaoDLVm.ctBaoCao.IdSach).GiaBan; CtBaoCaoDLViewModel newCtBaoCaoDL = new CtBaoCaoDLViewModel(); newCtBaoCaoDL = baoCaoDLVm.ctBaoCao; newCtBaoCaoDL.IdBaoCao = baoCaoDLVm.Id; newCtBaoCaoDL.DonGiaXuat = giaBan; newCtBaoCaoDL.SoLuongNhap = tonTaiSachXuat.SoLuongNhap; newCtBaoCaoDL.SoLuongTonDotTruoc = tonTaiSachXuat.SoLuongTonDotTruoc; newCtBaoCaoDL.TongTienNhap = slMua * giaBan; newCtBaoCaoDL.SoLuongXuat = baoCaoDLVm.ctBaoCao.SoLuongXuat; newCtBaoCaoDL.TongTienXuat = newCtBaoCaoDL.DonGiaXuat * newCtBaoCaoDL.SoLuongXuat; newCtBaoCaoDL.SoLuongCon = slMua - baoCaoDLVm.ctBaoCao.SoLuongXuat; newCtBaoCaoDL.TongTienNo = newCtBaoCaoDL.DonGiaXuat * newCtBaoCaoDL.SoLuongCon; newCtBaoCaoDL.Sach = Mapper.Map <Sach, SachViewModel>(sach); var sachDaNhap = ((List <CtBaoCaoDLViewModel>)Session["dsCtBaoCao"]).Find(x => x.IdSach == newCtBaoCaoDL.IdSach); if (sachDaNhap == null) { baoCaoDLVm.ctBaoCao = null; ((BaoCaoDLViewModel)Session["BaoCao"]).TongTienSachBan += newCtBaoCaoDL.TongTienXuat; ((BaoCaoDLViewModel)Session["BaoCao"]).TongTienConNo += newCtBaoCaoDL.TongTienNo; ((List <CtBaoCaoDLViewModel>)Session["dsCtBaoCao"]).Add(newCtBaoCaoDL); TempData["Success"] = "Đã lưu thành công một báo cáo đại lý."; return(Redirect("them-chi-tiet/")); } else { ModelState.AddModelError("", "Mã sách đã được thêm vào danh sách chi tiết rồi."); } } } } return(View(baoCaoDLVm)); }