public ActionResult CapNhatBaoCao(BaoCaoDLViewModel baoCaoDLVm) { if (ModelState.IsValid) { int tinhTrangBanDau = (int)Session["TinhTrangBanDau"]; if (tinhTrangBanDau == CommonConstant.DA_THANH_TOAN) { TempData["Error"] = "Không thể cập nhật khi báo cáo đã thanh toán."; } else if (tinhTrangBanDau == CommonConstant.DA_HUY) { TempData["Error"] = "Không thể cập nhật khi báo cáo đã hủy."; } else { if (baoCaoDLVm.TongTienThanhToan < (double)Session["TongTienSachBan"]) { TempData["Error"] = "Yêu cầu trả đủ số tiền sách bán được."; } else { var updateBaoCaoDL = baoCaoDLService.GetById(baoCaoDLVm.Id); updateBaoCaoDL.IdTinhTrang = baoCaoDLVm.IdTinhTrang; updateBaoCaoDL.NgayXacNhan = baoCaoDLVm.NgayXacNhan; updateBaoCaoDL.TongTienThanhToan = baoCaoDLVm.TongTienThanhToan; baoCaoDLService.Update(updateBaoCaoDL); baoCaoDLService.Save(); Session.RemoveAll(); TempData["Success"] = "Cập nhật trạng thái thành công."; } } } return(RedirectToAction("ChiTietBaoCao", new { id = baoCaoDLVm.Id })); }
public static void UpdateBaoCaoDL(this BaoCaoDL baoCaoDL, BaoCaoDLViewModel baoCaoDLVm) { baoCaoDL.Id = baoCaoDLVm.Id; baoCaoDL.IdDaiLy = baoCaoDLVm.IdDaiLy; baoCaoDL.NgayBatDau = baoCaoDLVm.NgayBatDau; baoCaoDL.NgayKetThuc = baoCaoDLVm.NgayKetThuc; baoCaoDL.ThoiGianLapPhieu = baoCaoDLVm.ThoiGianLapPhieu; baoCaoDL.NgayXacNhan = baoCaoDLVm.NgayXacNhan; baoCaoDL.TongTienConNo = baoCaoDLVm.TongTienConNo; baoCaoDL.TongTienThanhToan = baoCaoDLVm.TongTienThanhToan; baoCaoDL.IdTinhTrang = baoCaoDLVm.IdTinhTrang; baoCaoDL.TongTienSachBan = baoCaoDLVm.TongTienSachBan; baoCaoDL.TrangThai = true; }
public ActionResult TaoBaoCao(BaoCaoDLViewModel baoCaoDLVm, string TenDaiLy) { if (ModelState.IsValid) { var daiLy = daiLyService.GetSingleByName(TenDaiLy); if (daiLy == null) { ModelState.AddModelError("", "Thông tin đại lý không tồn tại."); } else { baoCaoDLVm.IdDaiLy = daiLy.Id; var ngayBatDau = baoCaoDLService.GetStartDateToCreateReport(daiLy.Id); if (ngayBatDau != null) { if (ngayBatDau <= baoCaoDLVm.NgayKetThuc) { baoCaoDLVm.NgayBatDau = ngayBatDau.Value; } else { ModelState.AddModelError("", "Thời gian báo cáo không hợp lệ."); return(View(baoCaoDLVm)); } } else { var ngayBatDauTaoPhieuXuat = phieuXuatService.GetFirstDateToCreateReport(daiLy.Id).Value; if (ngayBatDauTaoPhieuXuat != null) { if (ngayBatDauTaoPhieuXuat <= baoCaoDLVm.NgayKetThuc) { baoCaoDLVm.NgayBatDau = ngayBatDauTaoPhieuXuat; } else { ModelState.AddModelError("", "Thời gian báo cáo không hợp lệ."); return(View(baoCaoDLVm)); } } else { ModelState.AddModelError("", "Chưa xuất sách cho đại lý này, không thể lập báo cáo."); return(View(baoCaoDLVm)); } } var dsSachDaMua = baoCaoDLService.GetListAnalysisReport(baoCaoDLVm.IdDaiLy, baoCaoDLVm.NgayBatDau, baoCaoDLVm.NgayKetThuc); if (baoCaoDLService.CheckReportIsCreated(baoCaoDLVm.IdDaiLy, baoCaoDLVm.NgayKetThuc)) { ModelState.AddModelError("", "Khoảng thời gian đã được lập báo cáo rồi."); } else if (dsSachDaMua == null || dsSachDaMua.Count == 0) { ModelState.AddModelError("", "Đại lý chưa có nhập sách vào khoảng thời gian này."); } else { baoCaoDLVm.DaiLy = Mapper.Map <DaiLy, DaiLyViewModel>(daiLy); Session["BaoCao"] = baoCaoDLVm; Session["dsCtBaoCao"] = new List <CtBaoCaoDLViewModel>(); return(Redirect("them-chi-tiet/")); } } } return(View(baoCaoDLVm)); }
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)); }