Пример #1
0
        public IActionResult laphoadon()
        {
            ThanhToanViewModel model = new ThanhToanViewModel();
            HoaDon             hd    = new HoaDon();

            hd = _context.hoaDons.Where(p => p.HoaDonID == HttpContext.Session.Get <int>("hoadonid")).First();
            NguoiDung ngd = new NguoiDung();

            ngd = _context.NguoiDungs.Where(p => p.NguoiDungID == hd.NguoiDungID).First();
            Thongtinkh tt    = new Thongtinkh();
            ThanhToan  ttoan = _context.ThanhToans.Where(p => p.ThanhToanID == hd.ThanhToanID).First();
            VanChuyen  vc    = _context.VanChuyens.Where(p => p.VanChuyenID == hd.VanChuyenID).First();

            tt.TENKH         = ngd.HoTen;
            tt.SDT           = ngd.SDT;
            tt.HTTHANHTOAN   = ttoan.ThanhToanID;
            tt.DCNHAN        = ngd.DiaChi;
            tt.HTVANCHUYEN   = vc.VanChuyenID;
            tt.PHIVC         = hd.PhiVanChuyen;
            model.thongtinKH = tt;
            List <ChiTietHd> dscts = new List <ChiTietHd>();

            dscts      = _context.chiTietHds.Include(x => x.HangHoa).Where(p => p.HoaDonID == HttpContext.Session.Get <int>("hoadonid")).ToList();
            model.Cthd = dscts;
            double tongtien = 0;

            foreach (var item in dscts)
            {
                tongtien += item.ThanhTien;
            }
            ViewBag.TongTien        = tongtien;
            ViewData["VanChuyenID"] = new SelectList(_context.VanChuyens, "VanChuyenID", "Ten");
            ViewData["ThanhToanID"] = new SelectList(_context.ThanhToans, "ThanhToanID", "Ten");
            return(View(model));
        }
        public ActionResult CapNhatBaoCao(ThanhToanViewModel thanhToanVm)
        {
            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 (thanhToanVm.TongTienThanhToan < (double)Session["TongTienSachBan"])
                    {
                        TempData["Error"] = "Yêu cầu trả đủ số tiền sách bán được.";
                    }
                    else
                    {
                        var updateThanhToan = thanhToanService.GetById(thanhToanVm.Id);
                        updateThanhToan.IdTinhTrang       = thanhToanVm.IdTinhTrang;
                        updateThanhToan.NgayXacNhan       = thanhToanVm.NgayXacNhan;
                        updateThanhToan.TongTienThanhToan = thanhToanVm.TongTienThanhToan;
                        thanhToanService.Update(updateThanhToan);
                        thanhToanService.Save();
                        Session.RemoveAll();
                        TempData["Success"] = "Cập nhật trạng thái thành công.";
                    }
                }
            }

            return(RedirectToAction("ChiTietBaoCao", new { id = thanhToanVm.Id }));
        }
        public IActionResult Purchase(ThanhToanViewModel model)
        {
            //process order
            KhachHang kh = null;

            if (!User.Identity.IsAuthenticated)
            {
                kh = new KhachHang()
                {
                    HoTen       = model.HoTen,
                    Email       = model.Email,
                    DienThoai   = model.DienThoai,
                    TenDangNhap = $"KH{DateTime.Now.Ticks}",
                    MatKhau     = new Random().Next(1000, 10000).ToString()
                };
                db.Add(kh);
                db.SaveChanges();
            }
            else
            {
                kh = HttpContext.Session.Get <KhachHang>("KhachHang");
            }

            DonHang dh = new DonHang()
            {
                MaKH        = kh.MaKH,
                NgayDat     = DateTime.Now,
                NguoiNhan   = model.NguoiNhan,
                DiaChiGiao  = model.DiaChiGiao,
                MaTrangThai = 1
            };

            db.Add(dh);
            db.SaveChanges();

            ChiTietDonHang cthd = null;

            foreach (CartItem item in _cart.Carts)
            {
                cthd = new ChiTietDonHang
                {
                    MaDH    = dh.MaDH,
                    MaHH    = item.MaHh,
                    DonGia  = item.DonGia,
                    GiamGia = item.GiamGia,
                    SoLuong = item.SoLuong
                };
                db.Add(cthd);
            }
            db.SaveChanges();

            //hủy giỏ hàng
            _cart.Clear();

            //chuyển trang
            return(View("ThongBao"));
        }
Пример #4
0
 public static void UpdateThanhToan(this ThanhToan thanhToan, ThanhToanViewModel thanhToanVm)
 {
     thanhToan.Id                = thanhToanVm.Id;
     thanhToan.IdNXB             = thanhToanVm.IdNXB;
     thanhToan.NgayBatDau        = thanhToanVm.NgayBatDau;
     thanhToan.NgayKetThuc       = thanhToanVm.NgayKetThuc;
     thanhToan.NgayXacNhan       = thanhToanVm.NgayXacNhan;
     thanhToan.ThoiGianLapPhieu  = thanhToanVm.ThoiGianLapPhieu;
     thanhToan.TongTienConNo     = thanhToanVm.TongTienConNo;
     thanhToan.TongTienThanhToan = thanhToanVm.TongTienThanhToan;
     thanhToan.IdTinhTrang       = thanhToanVm.IdTinhTrang;
     thanhToan.TongTienSachBan   = thanhToanVm.TongTienSachBan;
     thanhToan.TrangThai         = true;
 }
        public IActionResult Purchase()
        {
            ThanhToanViewModel model = new ThanhToanViewModel();

            if (User.Identity.IsAuthenticated)
            {
                KhachHang kh = HttpContext.Session.Get <KhachHang>("KhachHang");
                model.MaKH      = kh.MaKH;
                model.HoTen     = kh.HoTen;
                model.Email     = kh.Email;
                model.DienThoai = kh.DienThoai;
            }
            return(View(model));
        }
        public ActionResult TaoBaoCao(ThanhToanViewModel thanhToanVm, string TenNXB)
        {
            if (Request.Form["analyze"] != null)
            {
                if (ModelState.IsValid)
                {
                    var nxb = nxbService.GetSingleByName(TenNXB);
                    if (nxb == null)
                    {
                        ModelState.AddModelError("", "Thông tin nhà xuất bản không tồn tại.");
                    }
                    else
                    {
                        thanhToanVm.IdNXB = nxb.Id;
                        var ngayBatDau = thanhToanService.GetStartDateToCreateReport(nxb.Id);
                        if (ngayBatDau != null)
                        {
                            if (ngayBatDau <= thanhToanVm.NgayKetThuc)
                            {
                                thanhToanVm.NgayBatDau = ngayBatDau.Value;
                            }
                            else
                            {
                                ModelState.AddModelError("", "Thời gian báo cáo không hợp lệ.");
                                return(View(thanhToanVm));
                            }
                        }
                        else
                        {
                            var ngayBatDauTaoPhieuXuat = phieuNhapService.GetFirstDateToCreateReport(nxb.Id).Value;
                            if (ngayBatDauTaoPhieuXuat != null)
                            {
                                if (ngayBatDauTaoPhieuXuat <= thanhToanVm.NgayKetThuc)
                                {
                                    thanhToanVm.NgayBatDau = ngayBatDauTaoPhieuXuat;
                                }
                                else
                                {
                                    ModelState.AddModelError("", "Thời gian báo cáo không hợp lệ.");
                                    return(View(thanhToanVm));
                                }
                            }
                            else
                            {
                                ModelState.AddModelError("", "Chưa nhập sách từ NXB này, không thể lập báo cáo.");
                                return(View(thanhToanVm));
                            }
                        }

                        var listThongKe = thanhToanService.GetListAnalysisReport(thanhToanVm.IdNXB, thanhToanVm.NgayBatDau, thanhToanVm.NgayKetThuc);
                        if (listThongKe.Count == 0)
                        {
                            ModelState.AddModelError("", "Chưa nhập hàng từ nhà xuất bản này.");
                        }
                        else if (thanhToanService.CheckReportIsCreated(thanhToanVm.IdNXB, thanhToanVm.NgayBatDau))
                        {
                            ModelState.AddModelError("", "Khoảng thời gian đã được lập báo cáo rồi.");
                        }
                        else
                        {
                            // Clear at the second click
                            Session["ThanhToan"] = null;
                            // Add new value for session
                            thanhToanVm.NhaXuatBan   = Mapper.Map <NhaXuatBan, NhaXuatBanViewModel>(nxb);
                            thanhToanVm.dsThongKeNXB = listThongKe;
                            foreach (var ct in listThongKe)
                            {
                                thanhToanVm.TongTienConNo += ct.TongTienNo;
                                if (ct.TongTienXuat != null)
                                {
                                    thanhToanVm.TongTienSachBan += (double)ct.TongTienXuat;
                                }
                            }
                            Session["ThanhToan"] = thanhToanVm;
                        }
                    }
                }
            }
            else if (Request.Form["create"] != null)
            {
                var tt           = (ThanhToanViewModel)Session["ThanhToan"];
                var newThanhToan = new ThanhToan();
                newThanhToan.UpdateThanhToan(tt);
                newThanhToan.TongTienConNo += tt.TienNoThangTruoc;
                newThanhToan.IdTinhTrang    = CommonConstant.DA_BAO_CAO;
                newThanhToan.NgayXacNhan    = newThanhToan.ThoiGianLapPhieu;
                thanhToanService.Add(newThanhToan);
                thanhToanService.Save();

                foreach (var ct in tt.dsThongKeNXB)
                {
                    if (ct.SoLuongXuat == null)
                    {
                        ct.TongTienXuat = 0;
                        ct.SoLuongXuat  = 0;
                    }
                    var ctThanhToan = new CtThanhToan
                    {
                        IdSach             = ct.Id,
                        IdThanhToan        = newThanhToan.Id,
                        SoLuongNhap        = ct.SoLuongNhap,
                        SoLuongTonDotTruoc = ct.SoLuongTonDotTruoc,
                        TongTienNhap       = ct.TongTienNhap,
                        SoLuongXuat        = ct.SoLuongXuat,
                        TongTienXuat       = ct.TongTienXuat,
                        SoLuongCon         = (ct.SoLuongNhap + ct.SoLuongTonDotTruoc) - ct.SoLuongXuat,
                        TienNo             = ct.TongTienNo,
                        DonGiaNhap         = ct.DonGiaNhap
                    };
                    ctThanhToanService.Add(ctThanhToan);
                }
                thanhToanService.Save();
                Session["ThanhToan"] = null;
                TempData["Success"]  = "Đã thêm thành công một báo cáo NXB.";
                Session.RemoveAll();
                return(Redirect("/bao-cao/nxb/"));
            }
            return(View(thanhToanVm));
        }