public IActionResult LuuPhieuNhapKho()
        {
            double        TongTien = 0;
            PhieuNhapHang pnh      = new PhieuNhapHang
            {
                NgayNhap = DateTime.Now,
                TongTien = TongTien
            };

            db.PhieuNhapHang.Add(pnh);
            db.SaveChanges();

            foreach (var item in ListNhaps)
            {
                TongTien += item.DonGiaNhap * item.SoLuongNhap;
                ChiTietPhieuNhap ct = new ChiTietPhieuNhap
                {
                    MaPn        = pnh.MaPn,
                    MaHh        = item.MaHh,
                    KichCo      = item.KichCo,
                    SoLuongNhap = item.SoLuongNhap,
                    DonGiaNhap  = item.DonGiaNhap
                };
                SanPhamKho spk = db.SanPhamKho.SingleOrDefault(p => p.MaHh == ct.MaHh && p.KichCo == ct.KichCo);
                spk.SoLuong += ct.SoLuongNhap;
                db.ChiTietPhieuNhap.Add(ct);
                db.SaveChanges();
            }
            pnh.TongTien = TongTien;
            db.SaveChanges();
            HttpContext.Session.Remove("ListNhap");
            return(View("Index"));
        }
        public IActionResult XoaCTHD(int mact)
        {
            ChiTietHd  ct  = db.ChiTietHd.Find(mact);
            SanPhamKho spk = db.SanPhamKho.SingleOrDefault(p => p.MaHh == ct.MaHh && p.KichCo == ct.KichCo);

            if (spk != null)
            {
                spk.SoLuong += ct.SoLuong;
                db.ChiTietHd.Remove(ct);
            }
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public IActionResult HuyHoaDon(int mahd)
        {
            // xóa các chi tiết hóa đơn liên quan
            List <ChiTietHd> listCT_Xoa = db.ChiTietHd.Where(p => p.MaHd == mahd).ToList();

            foreach (var item in listCT_Xoa)
            {
                SanPhamKho spk = db.SanPhamKho.SingleOrDefault(p => p.MaHh == item.MaHh && p.KichCo == item.KichCo);
                spk.SoLuong += item.SoLuong;
                db.ChiTietHd.Remove(item);
            }
            db.SaveChanges();
            // xóa hóa đơn
            HoaDon hd = db.HoaDon.Find(mahd);

            db.HoaDon.Remove(hd);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #4
0
        public IActionResult TaoHoaDonBT(string email, string hoten_ngnhan, string dc_nguoinhan, string ghichu, string sdt, string magiamgia)
        {
            KhachHang kh = new KhachHang();

            kh.HoTen     = hoten_ngnhan;
            kh.DiaChi    = dc_nguoinhan;
            kh.DienThoai = sdt;

            kh.Email = email;
            db.KhachHang.Add(kh);
            db.SaveChanges();
            // tạo hóa đơn
            var getKH = db.KhachHang.Where(p => p.Email == email).OrderByDescending(p => p.MaKh).Take(1);

            foreach (var titem in getKH)
            {
                HoaDon hd = new HoaDon
                {
                    MaKh         = titem.MaKh,
                    HoTen        = hoten_ngnhan,
                    DiaChi       = dc_nguoinhan,
                    NgayDat      = DateTime.Now,
                    GhiChu       = ghichu,
                    SdtNguoinhan = sdt,
                    MaTrangThai  = 0,
                    PhiVanChuyen = 35000,
                    MaVoucher    = magiamgia
                };
                db.HoaDon.Add(hd);
                // tạo chi tiết hóa đơn
                //  double tt = 0;
                double tongtienhang = 0;
                double tongthucthu  = 0;

                foreach (var item in Carts)
                {
                    tongtienhang += item.ThanhTien;
                    HangHoa hh = db.HangHoa.SingleOrDefault(p => p.MaHh == item.MaHh);
                    //   tt = item.SoLuong * hh.DonGia * (1 - hh.GiamGia);
                    ChiTietHd cthd = new ChiTietHd
                    {
                        MaHd    = hd.MaHd,
                        MaHh    = item.MaHh,
                        DonGia  = hh.DonGia,
                        GiamGia = hh.GiamGia,
                        SoLuong = item.SoLuong,
                        KichCo  = item.KichCo
                    };

                    db.ChiTietHd.Add(cthd);
                    db.SaveChanges();
                    // trừ sản phẩm từ kho
                    SanPhamKho spk = db.SanPhamKho.SingleOrDefault(p => p.MaHh == cthd.MaHh && p.KichCo == cthd.KichCo);
                    if (spk.SoLuong >= cthd.SoLuong)
                    {
                        if (HttpContext.Session.Get <string>("ErrorGH") != null)
                        {
                            HttpContext.Session.Remove("ErrorGH");
                        }
                        spk.SoLuong = spk.SoLuong - cthd.SoLuong;
                    }
                    else
                    {
                        HangHoa hangHoa = db.HangHoa.SingleOrDefault(p => p.MaHh == cthd.MaHh);
                        string  loi     = "Hàng hóa có mã " + hangHoa.TenHh + " chỉ còn : " + spk.SoLuong + " sản phẩm";
                        HttpContext.Session.Set("ErrorGH", loi);
                        db.ChiTietHd.Remove(cthd);
                        db.HoaDon.Remove(hd);
                        db.SaveChanges();
                        return(RedirectToAction("Index"));
                    }
                }
                Voucher v = db.Voucher.Find(magiamgia);
                if (v != null)
                {
                    tongthucthu = tongtienhang + 35000 - Convert.ToDouble(tongtienhang * v.GiamGia);
                }
                else
                {
                    tongthucthu = tongtienhang + 35000;
                }
                hd.TongTienHang = tongtienhang;
                hd.TongThucThu  = tongthucthu;
                db.SaveChanges();
                HttpContext.Session.Set <string>("mess", "Hóa đơn của bạn đã được gửi tới cửa hàng vui lòng chờ kiểm tra mail để biết trạng thái đơn hàng của bạn . ESHOP");
                HttpContext.Session.Remove("GioHang");
            }

            return(RedirectToAction("Index"));
        }
        public IActionResult TaoHoaDon(int makh, string hotenkh, string diachi, string hoten_ngnhan, string dc_nguoinhan, string ghichu, string sdt)
        {
            // tạo hóa đơn
            HoaDon hd = new HoaDon
            {
                MaKh         = makh,
                HoTen        = hoten_ngnhan,
                DiaChi       = dc_nguoinhan,
                NgayDat      = DateTime.Now,
                GhiChu       = ghichu,
                SdtNguoinhan = sdt,
                MaTrangThai  = 0,
                PhiVanChuyen = 35000
            };

            db.HoaDon.Add(hd);
            // tạo chi tiết hóa đơn
            //  double tt = 0;
            KhachHang kh = db.KhachHang.SingleOrDefault(p => p.MaKh == makh);

            foreach (var item in Carts)
            {
                HangHoa hh = db.HangHoa.SingleOrDefault(p => p.MaHh == item.MaHh);
                //   tt = item.SoLuong * hh.DonGia * (1 - hh.GiamGia);
                ChiTietHd cthd = new ChiTietHd
                {
                    MaHd    = hd.MaHd,
                    MaHh    = item.MaHh,
                    DonGia  = hh.DonGia,
                    GiamGia = hh.GiamGia,
                    SoLuong = item.SoLuong,
                    KichCo  = item.KichCo
                };

                db.ChiTietHd.Add(cthd);
                db.SaveChanges();
                // trừ sản phẩm từ kho
                SanPhamKho spk = db.SanPhamKho.SingleOrDefault(p => p.MaHh == cthd.MaHh && p.KichCo == cthd.KichCo);
                if (spk.SoLuong >= cthd.SoLuong)
                {
                    if (HttpContext.Session.Get <string>("ErrorGH") != null)
                    {
                        HttpContext.Session.Remove("ErrorGH");
                    }
                    spk.SoLuong = spk.SoLuong - cthd.SoLuong;
                }
                else
                {
                    HangHoa hangHoa = db.HangHoa.SingleOrDefault(p => p.MaHh == cthd.MaHh);
                    string  loi     = "Hàng hóa có mã " + hangHoa.TenHh + " chỉ còn : " + spk.SoLuong + " sản phẩm";
                    HttpContext.Session.Set("ErrorGH", loi);
                    db.ChiTietHd.Remove(cthd);
                    db.HoaDon.Remove(hd);
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }
            HttpContext.Session.Set <string>("mess", "Hóa đơn của bạn đã được gửi tới cửa hàng vui lòng chờ kiểm tra mail để biết trạng thái đơn hàng của bạn . ESHOP");
            HttpContext.Session.Remove("GioHang");
            return(RedirectToAction("Index"));
        }