Exemple #1
0
        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;
 }
Exemple #3
0
        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));
        }
Exemple #4
0
        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));
        }