Beispiel #1
0
        public IActionResult DoCheckOut(Hoadon hd)
        {
            Khachhang kh = db.Khachhang.Where(x => x.Email == HttpContext.Session.Get <string>("user")).SingleOrDefault();

            hd.Makh          = kh.Makh;
            hd.Matrangthai   = 1;
            hd.Ngaydat       = DateTime.Now;
            hd.Ngaygiao      = DateTime.Now.AddDays(7);
            hd.Cachthanhtoan = hd.Cachthanhtoan;

            db.Hoadon.Add(hd);
            db.SaveChanges();
            int             hoadonid = db.Hoadon.OrderByDescending(x => x.Mahd).ToList()[0].Mahd;
            List <CartItem> chitiet  = HttpContext.Session.Get <List <CartItem> >("gioHang");

            foreach (var x in chitiet)
            {
                Chitiethoadon ct = new Chitiethoadon
                {
                    Mahd    = hoadonid,
                    Mahh    = x.Masp,
                    Soluong = x.Soluong,
                    Dongia  = x.Dongia,
                    Giamgia = x.Giamgia
                };
                db.Chitiethoadon.Add(ct);
            }
            db.SaveChanges();
            HttpContext.Session.Set("gioHang", "");
            return(View("CheckOut", db.Hoadon.Where(x => x.Mahd == hoadonid).SingleOrDefault()));
        }
        public async Task <IActionResult> PutChitiethoadon([FromRoute] string id, [FromBody] Chitiethoadon chitiethoadon)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != chitiethoadon.Mahd)
            {
                return(BadRequest());
            }

            _context.Entry(chitiethoadon).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ChitiethoadonExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Beispiel #3
0
        public void AddOrder(string currentusername, Hoadon Order, List <Item> cart, Chitiethoadon OrderDetail)
        {
            int customerid = _unitOfWork.Nhanviens.GetIdNhanvien(currentusername);

            Order.NhanvienId = customerid;


            Order.Ngaylap = DateTime.Now;

            //add Order

            var orderAdded = _unitOfWork.Hoadons.Add(Order);

            _unitOfWork.Complete(); //save

            //add item

            for (var i = 0; i < cart.Count; i++)
            {
                //them vao bang OrderDetail
                OrderDetail = new Chitiethoadon();

                OrderDetail.ChitiethoadonId = cart[i].Product.MonanId;
                OrderDetail.ChitiethoadonId = orderAdded.HoadonId;  //orderid
                OrderDetail.Soluong         = cart[i].Quantity;



                _unitOfWork.ChitietHoadons.Add(OrderDetail);
                _unitOfWork.Complete();//luu database
            }

            cart.Clear(); //xoa gio hang
        }
        public async Task <IActionResult> Edit(int id, [Bind("Mahd,Masp,Thanhtien,Soluong,Gia,CreatedAt,UpdatedAt")] Chitiethoadon chitiethoadon)
        {
            if (id != chitiethoadon.Mahd)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(chitiethoadon);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!ChitiethoadonExists(chitiethoadon.Mahd))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["Mahd"] = new SelectList(_context.Hoadon, "Mahd", "Tinhtrang", chitiethoadon.Mahd);
            ViewData["Masp"] = new SelectList(_context.Sanpham, "Masp", "Tensp", chitiethoadon.Masp);
            return(View(chitiethoadon));
        }
        public async Task <IActionResult> PostChitiethoadon([FromBody] Chitiethoadon chitiethoadon)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.Chitiethoadon.Add(chitiethoadon);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (ChitiethoadonExists(chitiethoadon.Mahd))
                {
                    return(new StatusCodeResult(StatusCodes.Status409Conflict));
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetChitiethoadon", new { id = chitiethoadon.Mahd }, chitiethoadon));
        }
Beispiel #6
0
        public void addTblCthd()
        {
            var context = new Dtb_NhaSachContext();

            for (int i = 0; i < this.dgv1.Rows.Count - 1; i++)
            {
                var maSach = context.Saches.Where(s => s.TenSach.Trim() == this.dgv1.Rows[i].Cells[1].Value.ToString().Trim())
                             .Select(s => s.MaSach).FirstOrDefault();

                var getSohd = context.Hoadons.Select(s => s.SoHd).Max();

                var cthd = new Chitiethoadon()
                {
                    MaSach     = maSach.Trim(),
                    SoHd       = getSohd,
                    SoLuongBan = int.Parse(this.dgv1.Rows[i].Cells[2].Value.ToString().Trim()),
                    ThanhTien  = double.Parse(this.dgv1.Rows[i].Cells[5].Value.ToString().Trim()),
                    GiamGia    = double.Parse(this.dgv1.Rows[i].Cells[4].Value.ToString().Trim()),
                    GiaSauGiam = double.Parse(this.dgv1.Rows[i].Cells[6].Value.ToString().Trim()),
                    DonGia     = double.Parse(this.dgv1.Rows[i].Cells[3].Value.ToString().Trim()),
                };
                context.Chitiethoadons.Add(cthd);
                context.SaveChanges();
            }
        }
Beispiel #7
0
        public ActionResult DeleteConfirmed(int id)
        {
            Chitiethoadon chitiethoadon = db.Chitiethoadons.Find(id);

            db.Chitiethoadons.Remove(chitiethoadon);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #8
0
 public ActionResult Edit([Bind(Include = "Ma_CTHD,Ma_HD,Ten_HH,Soluong,Gia")] Chitiethoadon chitiethoadon)
 {
     if (ModelState.IsValid)
     {
         db.Entry(chitiethoadon).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.Ma_HD = new SelectList(db.Hoadons, "Ma_HD", "Ma_HD", chitiethoadon.Ma_HD);
     return(View(chitiethoadon));
 }
        public async Task <IActionResult> Create([Bind("Mahd,Masp,Thanhtien,Soluong,Gia,CreatedAt,UpdatedAt")] Chitiethoadon chitiethoadon)
        {
            if (ModelState.IsValid)
            {
                _context.Add(chitiethoadon);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["Mahd"] = new SelectList(_context.Hoadon, "Mahd", "Mahd", chitiethoadon.Mahd);
            ViewData["Masp"] = new SelectList(_context.Sanpham, "Masp", "Tensp", chitiethoadon.Masp);
            return(View(chitiethoadon));
        }
Beispiel #10
0
        // GET: Admin/Chitiethoadons/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Chitiethoadon chitiethoadon = db.Chitiethoadons.Find(id);

            if (chitiethoadon == null)
            {
                return(HttpNotFound());
            }
            return(View(chitiethoadon));
        }
        public async Task <IActionResult> HoaDon(int id)
        {
            if (ModelState.IsValid)
            {
                //hóa đơn
                Hoadon hoadon = new Hoadon();
                hoadon.Ghichu = null;
                hoadon.Ngayhd = DateTime.Now;
                hoadon.Idkh   = id;
                List <Item> cart = SessionHelper.GetObjectFromJson <List <Item> >(HttpContext.Session, "cart");
                ViewBag.cart = cart;
                if (cart != null)
                {
                    hoadon.Tongtien = Convert.ToInt32(cart.Sum(item => item.sanpham.Gia * item.Quantity * item.sanpham.Giakhuyenmai));
                }
                hoadon.Tinhtrang = "chua";

                Context.Add(hoadon);

                await Context.SaveChangesAsync();

                //chi tiết hóa đơn
                foreach (var item in ViewBag.cart)
                {
                    Chitiethoadon cthd = new Chitiethoadon();


                    cthd.Mahd      = hoadon.Mahd;
                    cthd.Masp      = item.sanpham.Masp;
                    cthd.Soluong   = item.Quantity;
                    cthd.Thanhtien = item.sanpham.Gia * item.sanpham.Giakhuyenmai * item.Quantity;
                    cthd.Gia       = item.sanpham.Gia * item.sanpham.Giakhuyenmai;
                    Context.Add(cthd);
                    //  ViewData["Mahd"] = new SelectList(Context.Hoadon, "Mahd", "Mahd", cthd.Mahd);
                    // ViewData["Masp"] = new SelectList(Context.Sanpham, "Masp", "Tensp", cthd.Masp);
                }



                await Context.SaveChangesAsync();

                return(RedirectToAction(nameof(TrangChu)));
            }


            //


            return(View());
        }
Beispiel #12
0
        // GET: Admin/Chitiethoadons/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Chitiethoadon chitiethoadon = db.Chitiethoadons.Find(id);

            if (chitiethoadon == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Ma_HD = new SelectList(db.Hoadons, "Ma_HD", "Ma_HD", chitiethoadon.Ma_HD);
            return(View(chitiethoadon));
        }
        public IActionResult XemChiTietHoaDon(int id)
        {
            var dbContext = new shopContext();
            var cthd      = (from ct in dbContext.Chitiethoadon
                             join sp in dbContext.Sanpham
                             on ct.SanPhamId equals sp.SanPhamId
                             join kt in dbContext.Kichthuoc
                             on ct.KichThuocId equals kt.KichThuocid
                             join ha in dbContext.Hinhanh
                             on sp.HinhAnhId equals ha.HinhAnhId
                             where ct.HoaDonId == id
                             select new{
                tensp = sp.TenSanPham,
                soluong = ct.SoLuong,
                Tenkichthuoc = kt.TenKichThuoc,
                giatien = ct.TongTien,
                tienkm = ct.TienKhuyenMai,
                tiensaukm = ct.TongSauKm,
                hinhanh = ha.TenFile
            });
            List <Chitiethoadon> dsChiTiet = new List <Chitiethoadon>();

            foreach (var item in cthd)
            {
                Chitiethoadon ct = new Chitiethoadon();
                Hinhanh       ha = new Hinhanh();
                Sanpham       sp = new Sanpham();
                Kichthuoc     kt = new Kichthuoc();
                sp.TenSanPham    = item.tensp;
                ct.SoLuong       = item.soluong;
                kt.TenKichThuoc  = item.Tenkichthuoc;
                ct.TongTien      = item.giatien;
                ct.TienKhuyenMai = item.tienkm;
                ct.TongSauKm     = item.tiensaukm;
                ha.TenFile       = item.hinhanh;
                sp.HinhAnh       = ha;
                ct.SanPham       = sp;
                ct.KichThuoc     = kt;
                dsChiTiet.Add(ct);
            }
            ViewBag.chitiet  = dsChiTiet;
            ViewBag.idHoaDon = id;
            return(View());
        }
Beispiel #14
0
        public IActionResult XacNhanDatHang(Hoadon model, string GiamGia)
        {
            var dbContext = new shopContext();

            List <Chitiethoadon> ListChiTietHoaDon = JsonConvert.DeserializeObject <List <Chitiethoadon> >(HttpContext.Session.GetString("gioHangSession"));

            if (HttpContext.Session.GetString("username") == null || ListChiTietHoaDon.Count == 0)
            {
                return(RedirectToAction("XacNhanDatHang", "sanpham"));
            }
            else
            {
                //lay khachhangid
                var username = HttpContext.Session.GetString("username");
                var TKId     = (from tk in dbContext.Taikhoan
                                join kh in dbContext.Khachhang
                                on tk.TaiKhoanId equals kh.TaiKhoanId
                                where tk.Username == username
                                select kh).ToList();
                int khId = TKId[0].KhachHangId;
                //lay ngay tao
                DateTime ngayTao = DateTime.Now;
                //lay quan
                var quan = (from q in dbContext.Phiship
                            where q.PhiShipId == model.PhiShipId
                            select q).ToList();
                var TenQuan = quan[0].Quan;
                // lay tien ship
                var tienShip = quan[0].ChiPhi;

                float?tongTienChuaShip = 0;

                foreach (Chitiethoadon ct in ListChiTietHoaDon)
                {
                    tongTienChuaShip = tongTienChuaShip + ct.TongTien;
                }
                //lay tien giam gia
                float?TienGiamGia = 0;

                if (GiamGia != null)
                {
                    var magiamgia = (from gg in dbContext.Magiamgia
                                     where gg.MaGiamGia1 == GiamGia
                                     select gg).ToList();
                    if (magiamgia.Count == 0)
                    {
                        TienGiamGia = 0;
                    }
                    else
                    {
                        TienGiamGia = tongTienChuaShip * magiamgia[0].PhanTram;
                        //xóa mã giảm giá khi đã được sử dụng
                        var discount = dbContext.Magiamgia.First(a => a.MaGiamGiaId == magiamgia[0].MaGiamGiaId);
                        dbContext.Magiamgia.Remove(discount);
                        dbContext.SaveChanges();
                    }
                }
                //lay tong tien thanh toan
                float?TongTienThanhToan = tongTienChuaShip - TienGiamGia + tienShip;
                //insert hoa don
                var HoaDon = new Hoadon()
                {
                    NgayTao           = ngayTao,
                    SoNha             = model.SoNha,
                    Quan              = TenQuan,
                    PhiShipId         = model.PhiShipId,
                    TongTienThanhToan = TongTienThanhToan,
                    TrangThai         = "Chờ xử lý",
                    KhachHangId       = khId,
                    TenNguoiNhan      = model.TenNguoiNhan,
                    Sdt = model.Sdt,
                    TongTienChuaShip = tongTienChuaShip,
                    TienGiamGia      = TienGiamGia
                                       // SessionId = sessionId
                };
                dbContext.Hoadon.Add(HoaDon);
                dbContext.SaveChanges();

                // lay mahoadon
                var hd = (from h in dbContext.Hoadon
                          orderby h.HoaDonId descending
                          select h).ToList();
                var hoadonId = hd[0].HoaDonId;
                //insert chitiethoadon
                foreach (var item in ListChiTietHoaDon)
                {
                    //lay phan tram giam gia cua san pham
                    float?phanTramGiam = 0;
                    var   sp           = (from x in dbContext.Sanpham
                                          join km in dbContext.Khuyenmai
                                          on x.KhuyenMaiId equals km.KhuyenMaiId
                                          where x.SanPhamId == item.SanPhamId
                                          select new{
                        khuyenmaiid = x.KhuyenMaiId,
                        phantram = km.PhanTramGiam
                    }).ToList();
                    if (sp.Count != 0)
                    {
                        phanTramGiam = sp[0].phantram;
                    }

                    // lay gia them cua moi kich thuoc san pham
                    var kt = (from k in dbContext.Kichthuoc
                              where k.KichThuocid == item.KichThuocId
                              select k).ToList();
                    float?GiaThem = kt[0].GiaThem;
                    var   cthd    = new Chitiethoadon()
                    {
                        HoaDonId      = hoadonId,
                        SanPhamId     = item.SanPhamId,
                        SoLuong       = item.SoLuong,
                        TienKhuyenMai = phanTramGiam * item.SanPham.GiaBanLe * item.SoLuong,
                        TongTien      = item.SanPham.GiaBanLe * item.SoLuong + item.SoLuong * GiaThem,
                        TongSauKm     = item.TongTien,
                        KichThuocId   = item.KichThuocId
                    };
                    dbContext.Chitiethoadon.Add(cthd);
                    dbContext.SaveChanges();
                }


                // tạo mã giảm giá sau khi mua hàng
                string randomMaGiamGia = RandomString(6, true);
                var    MaGiamGia       = new Magiamgia()
                {
                    MaGiamGia1 = randomMaGiamGia,
                    PhanTram   = (float?)0.05
                };
                dbContext.Magiamgia.Add(MaGiamGia);
                dbContext.SaveChanges();

                // HttpContext.Session.Remove("idSession");
                HttpContext.Session.Remove("gioHangSession");
                ViewBag.maGiamGia = randomMaGiamGia;
                return(RedirectToAction("DatHangThanhCong", "sanpham", new { discountId = randomMaGiamGia }));
            }
        }
Beispiel #15
0
        public List <Chitiethoadon> LuuGioHang(int maspp, int soluong, int kichthuocId)
        {
            var dbContext = new shopContext();
            // string idSession = HttpContext.Session.GetString("idSession");
            var sanPham = (from sp in dbContext.Sanpham
                           where sp.SanPhamId == maspp
                           select sp).ToList();

            List <Chitiethoadon> chiTietHoaDons = JsonConvert.DeserializeObject <List <Chitiethoadon> >(HttpContext.Session.GetString("gioHangSession"));

            // nếu số lượng là 0 thì hủy sản phẩm trong giỏ hàng

            if (soluong == 0)
            {
                for (int i = 0; i < chiTietHoaDons.Count(); i++)
                {
                    if (chiTietHoaDons[i].SanPhamId == maspp)
                    {
                        chiTietHoaDons.RemoveAt(i);
                    }
                }
                HttpContext.Session.SetString("gioHangSession", JsonConvert.SerializeObject(chiTietHoaDons));
            }
            else
            {
                // lay gia them khi thay doi kich thuoc
                var kichthuoc = (from kt in dbContext.Kichthuoc where kt.KichThuocid == kichthuocId select kt).ToList();
                // kiem tra gio hang co ton tai san pham nay chua
                int flag = 0;
                for (int i = 0; i < chiTietHoaDons.Count(); i++)
                {
                    if (chiTietHoaDons[i].SanPhamId == maspp)
                    {
                        flag = 1;
                    }
                }

                //neu gio hang chua co san pham nay
                if (flag == 0)
                {
                    float?phanTramGiam = 0;
                    if (sanPham[0].KhuyenMaiId != null)
                    {
                        var km = (from x in dbContext.Khuyenmai
                                  where x.KhuyenMaiId == sanPham[0].KhuyenMaiId
                                  select x).ToList();
                        phanTramGiam = km[0].PhanTramGiam;
                        // phanTramGiam = sanPham[0].KhuyenMai.PhanTramGiam;
                    }
                    Chitiethoadon cthd = new Chitiethoadon();
                    cthd.SanPhamId   = maspp;
                    cthd.SoLuong     = soluong;
                    cthd.KichThuocId = kichthuocId;
                    cthd.TongTien    = sanPham[0].GiaBanLe * soluong - soluong * phanTramGiam * sanPham[0].GiaBanLe + soluong * kichthuoc[0].GiaThem;
                    chiTietHoaDons.Add(cthd);
                    HttpContext.Session.SetString("gioHangSession", JsonConvert.SerializeObject(chiTietHoaDons));
                }
                // neu gio hang da ton tai san pham nay
                else
                {
                    for (int i = 0; i < chiTietHoaDons.Count(); i++)
                    {
                        if (chiTietHoaDons[i].SanPhamId == maspp)
                        {
                            float?phanTramGiam = 0;
                            if (sanPham[0].KhuyenMaiId != null)
                            {
                                // phanTramGiam = sanPham[0].KhuyenMai.PhanTramGiam;
                                var km = (from x in dbContext.Khuyenmai
                                          where x.KhuyenMaiId == sanPham[0].KhuyenMaiId
                                          select x).ToList();
                                phanTramGiam = km[0].PhanTramGiam;
                            }
                            chiTietHoaDons[i].KichThuocId = kichthuocId;
                            chiTietHoaDons[i].SoLuong     = soluong;
                            chiTietHoaDons[i].TongTien    = soluong * sanPham[0].GiaBanLe - soluong * phanTramGiam * sanPham[0].GiaBanLe + soluong * kichthuoc[0].GiaThem;
                            HttpContext.Session.SetString("gioHangSession", JsonConvert.SerializeObject(chiTietHoaDons));
                        }
                    }
                }
            }

            // hiển thị giỏ hàng
            float?TongTien = 0;
            List <Chitiethoadon> listGioHang = JsonConvert.DeserializeObject <List <Chitiethoadon> >(HttpContext.Session.GetString("gioHangSession"));

            System.Console.WriteLine(HttpContext.Session.GetString("gioHangSession"));
            List <Chitiethoadon> ListSanPhamCart = new List <Chitiethoadon>();

            for (int i = 0; i < listGioHang.Count(); i++)
            {
                var gh = (from sp in dbContext.Sanpham
                          join kt in dbContext.Kichthuoc
                          on sp.SanPhamId equals kt.SanPhamId
                          where kt.KichThuocid == listGioHang[i].KichThuocId
                          select new {
                    masp = sp.SanPhamId,
                    tensp = sp.TenSanPham.ToString(),
                    GiaBanLe = sp.GiaBanLe,
                    kichThuocId = kt.KichThuocid,
                    TenKichThuoc = kt.TenKichThuoc.ToString(),
                    GiaThem = kt.GiaThem,
                    soluong = listGioHang[i].SoLuong,
                    tongtien = listGioHang[i].TongTien.ToString()
                }
                          ).ToList();

                foreach (var x in gh)
                {
                    Chitiethoadon ct = new Chitiethoadon();
                    Sanpham       sp = new Sanpham();
                    Kichthuoc     kt = new Kichthuoc();
                    ct.KichThuocId  = x.kichThuocId;
                    kt.TenKichThuoc = x.TenKichThuoc;
                    kt.GiaThem      = x.GiaThem;
                    ct.SanPhamId    = x.masp;
                    sp.TenSanPham   = x.tensp;
                    sp.GiaBanLe     = x.GiaBanLe;
                    ct.SoLuong      = x.soluong;
                    float tong = float.Parse(x.tongtien);
                    ct.TongTien  = tong;
                    TongTien     = TongTien + ct.TongTien;
                    ct.SanPham   = sp;
                    ct.KichThuoc = kt;
                    ListSanPhamCart.Add(ct);
                }
            }

            return(ListSanPhamCart);
        }
Beispiel #16
0
        public IActionResult DatHang(int id)
        {
            var dbContext = new shopContext();
            var sanpham   = (from sp in dbContext.Sanpham
                             where sp.SanPhamId == id
                             select sp).ToList();
            var ListSP = (from sp in dbContext.Sanpham
                          join h in dbContext.Hinhanh
                          on sp.HinhAnhId equals h.HinhAnhId
                          join km in dbContext.Khuyenmai
                          on sp.KhuyenMaiId equals km.KhuyenMaiId into x
                          from subkm in x.DefaultIfEmpty()
                          select new
            {
                PhanLoaiId = sp.PhanLoaiId,
                SanPhamId = sp.SanPhamId,
                TenSanPham = sp.TenSanPham,
                GiaBanLe = sp.GiaBanLe,
                HinhAnh = h.TenFile,
                PhanTramGiam = subkm.PhanTramGiam,
                KhuyenmaiId = sp.KhuyenMaiId
            });
            List <Sanpham> List = new List <Sanpham>();

            foreach (var item in ListSP)
            {
                var   sp         = new Sanpham();
                var   h          = new Hinhanh();
                var   k          = new Khuyenmai();
                float?giaSauGiam = item.GiaBanLe - item.GiaBanLe * item.PhanTramGiam;
                sp.PhanLoaiId  = item.PhanLoaiId;
                sp.SanPhamId   = item.SanPhamId;
                sp.TenSanPham  = item.TenSanPham;
                sp.GiaBanLe    = item.GiaBanLe;
                h.TenFile      = item.HinhAnh;
                k.PhanTramGiam = item.PhanTramGiam * 100;
                sp.KhuyenMaiId = item.KhuyenmaiId;
                sp.GiaGoc      = giaSauGiam;
                sp.HinhAnh     = h;
                sp.KhuyenMai   = k;
                List.Add(sp);
            }
            ViewData["listSP"] = List;

            var PhanLoai = (from pl in dbContext.Phanloai
                            orderby pl.PhanLoaiId
                            select pl);
            List <Phanloai> ListPL = new List <Phanloai>();

            foreach (var item in PhanLoai)
            {
                Phanloai phanloai = new Phanloai();
                phanloai.PhanLoaiId = item.PhanLoaiId;
                phanloai.TenLoai    = item.TenLoai;
                ListPL.Add(phanloai);
            }
            ViewData["listPL"] = ListPL;
            //lay ma khuyen mai cua san pham
            float?phantramKM = 0;

            if (sanpham[0].KhuyenMaiId != null)
            {
                var km = (from khuyenmai in dbContext.Khuyenmai
                          where khuyenmai.KhuyenMaiId == sanpham[0].KhuyenMaiId
                          select khuyenmai).ToList();
                phantramKM = km[0].PhanTramGiam;
            }


//--------------------------

            var gioHangSession = HttpContext.Session.GetString("gioHangSession");

            if (gioHangSession == null)
            {
                //chưa có giỏ hàng (khởi tạo)
                var KichThuoc = (from kt in dbContext.Kichthuoc where kt.SanPhamId == id select kt).ToList();
                var ktId      = 0;
                foreach (var item in KichThuoc)
                {
                    if (item.TenKichThuoc == "Nhỏ")
                    {
                        ktId = item.KichThuocid;
                    }
                }
                List <Chitiethoadon> ListChiTietHoaDon = new List <Chitiethoadon>();
                Chitiethoadon        chitiethoadon     = new Chitiethoadon();
                chitiethoadon.SanPhamId   = id;
                chitiethoadon.SoLuong     = 1;
                chitiethoadon.KichThuocId = ktId;
                chitiethoadon.TongTien    = (float)(sanpham[0].GiaBanLe * 1 - sanpham[0].GiaBanLe * phantramKM);
                ListChiTietHoaDon.Add(chitiethoadon);
                HttpContext.Session.SetString("gioHangSession", JsonConvert.SerializeObject(ListChiTietHoaDon));
            }
            else
            {
                // nếu đã có giỏ hàng sẵn
                List <Chitiethoadon> listCart = JsonConvert.DeserializeObject <List <Chitiethoadon> >(HttpContext.Session.GetString("gioHangSession"));
                // kiểm tra sản phẩm thêm vào có tồn tại trong giỏ hàng chưa
                int flag = 0;
                for (int i = 0; i < listCart.Count; i++)
                {
                    if (listCart[i].SanPhamId == id)
                    {
                        // listCart.RemoveAt(i);
                        flag = 1;
                    }
                }
                if (flag == 0)// giỏ hàng chưa có sản phẩm này
                {
                    var KichThuoc = (from kt in dbContext.Kichthuoc where kt.SanPhamId == id select kt).ToList();
                    var ktId      = 0;
                    foreach (var item in KichThuoc)
                    {
                        if (item.TenKichThuoc == "Nhỏ")
                        {
                            ktId = item.KichThuocid;
                        }
                    }

                    Chitiethoadon chitiethoadon = new Chitiethoadon();
                    chitiethoadon.SanPhamId   = id;
                    chitiethoadon.SoLuong     = 1;
                    chitiethoadon.KichThuocId = ktId;
                    chitiethoadon.TongTien    = (float)(sanpham[0].GiaBanLe * 1 - sanpham[0].GiaBanLe * phantramKM);
                    listCart.Add(chitiethoadon);

                    HttpContext.Session.SetString("gioHangSession", JsonConvert.SerializeObject(listCart));
                }
                else // giỏ hàng đã có sản phẩm
                     // nếu có rồi thì giữ nguyên như cũ
                {
                }
            }

//---------------------------
            //hiển thị giỏ hàng
//-----------------------------
            float?TongTien = 0;
            List <Chitiethoadon> chiTietHoaDonss = JsonConvert.DeserializeObject <List <Chitiethoadon> >(HttpContext.Session.GetString("gioHangSession"));
            List <Chitiethoadon> ListSanPhamCart = new List <Chitiethoadon>();



            for (int i = 0; i < chiTietHoaDonss.Count(); i++)
            {
                var gh = (from sp in dbContext.Sanpham
                          join kt in dbContext.Kichthuoc
                          on sp.SanPhamId equals kt.SanPhamId
                          where kt.KichThuocid == chiTietHoaDonss[i].KichThuocId
                          select new {
                    masp = sp.SanPhamId,
                    tensp = sp.TenSanPham.ToString(),
                    GiaBanLe = sp.GiaBanLe,
                    kichThuocId = kt.KichThuocid,
                    TenKichThuoc = kt.TenKichThuoc.ToString(),
                    GiaThem = kt.GiaThem,
                    soluong = chiTietHoaDonss[i].SoLuong,
                    tongtien = chiTietHoaDonss[i].TongTien.ToString()
                }
                          ).ToList();

                foreach (var x in gh)
                {
                    Chitiethoadon ct = new Chitiethoadon();
                    Sanpham       sp = new Sanpham();
                    Kichthuoc     kt = new Kichthuoc();
                    ct.KichThuocId  = x.kichThuocId;
                    kt.TenKichThuoc = x.TenKichThuoc;
                    kt.GiaThem      = x.GiaThem;
                    ct.SanPhamId    = x.masp;
                    sp.TenSanPham   = x.tensp;
                    sp.GiaBanLe     = x.GiaBanLe;
                    ct.SoLuong      = x.soluong;
                    float tong = float.Parse(x.tongtien);
                    ct.TongTien  = tong;
                    TongTien     = TongTien + ct.TongTien;
                    ct.SanPham   = sp;
                    ct.KichThuoc = kt;
                    ListSanPhamCart.Add(ct);
                }
            }
            HttpContext.Session.SetString("gioHangSession", JsonConvert.SerializeObject(ListSanPhamCart));
            ViewBag.tongtien = TongTien;
            ViewBag.gioHang  = ListSanPhamCart;
//---------------------------------
            // ViewBag.gioHang = new List<Chitiethoadon>();
            return(View(sanpham));
        }
Beispiel #17
0
        public FormHoaDon()
        {
            InitializeComponent();

            HttpClient client1 = new HttpClient();

            client1.BaseAddress = new Uri("https://localhost:44326/");
            HttpResponseMessage response1 = client1.GetAsync("api/ChitietHDPhong?iddat=" + Program.idhd + "").Result;
            var ctbillphong = response1.Content.ReadAsAsync <IEnumerable <CTDP> >().Result;

            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri("https://localhost:44326/");
            HttpResponseMessage response = client.GetAsync("api/TypeRoom").Result;
            var loai = response.Content.ReadAsAsync <IEnumerable <LoaiPhong> >().Result;

            HttpClient client3 = new HttpClient();

            client3.BaseAddress = new Uri("https://localhost:44326/");
            HttpResponseMessage response3 = client3.GetAsync("api/Room").Result;
            var room = response3.Content.ReadAsAsync <IEnumerable <Room> >().Result;

            var query1 = from t1 in ctbillphong
                         from t2 in loai
                         from t3 in room
                         where t1.Sophong == t3.Sophong && t3.Loaiphong == t2.Loaiphong1 && t1.IDDAT == Program.idhd
                         select new
            {
                t1.Ngayden,
                t1.Ngaydi,
                Sophong = t3.Sophong,
                Tien    = t2.Gia,
            };

            HttpClient client2 = new HttpClient();

            client2.BaseAddress = new Uri("https://localhost:44326/");
            HttpResponseMessage response2 = client2.GetAsync("api/CTHDDV?idhd=" + Program.idhd + "").Result;
            var cthddv = response2.Content.ReadAsAsync <IEnumerable <CTDDV> >().Result;


            HttpClient client4 = new HttpClient();

            client4.BaseAddress = new Uri("https://localhost:44326/");
            HttpResponseMessage response4 = client4.GetAsync("api/Service").Result;
            var service = response4.Content.ReadAsAsync <IEnumerable <Service> >().Result;
            var query2  = from t1 in cthddv
                          from t2 in service
                          where t1.IDDV == t2.IDDV && t1.IDDAT == Program.idhd
                          select new
            {
                Tendv   = t2.TenDV,
                Gia     = t2.GiaDV,
                soluong = t1.Soluong
            };

            if (query1 == null && query2 == null)
            {
                MessageBox.Show("Hóa đơn này không hợp lệ", "", MessageBoxButtons.OK);
                this.Close();
                //return;
            }
            else if (query2 == null)
            {
                var x1 = query1.ToList();
                foreach (var pi in x1)
                {
                    // thiet lap de in ra
                    Chitiethoadon ct2 = new Chitiethoadon();
                    ct2.sophong  = pi.Sophong;
                    ct2.Ngayden  = pi.Ngayden;
                    ct2.Ngaydi   = pi.Ngaydi;
                    ct2.giaphong = pi.Tien;
                    // thiet lap hien thi
                    Chitiethoadonphong ct = new Chitiethoadonphong();
                    ct.sophong  = pi.Sophong;
                    ct.Ngayden  = pi.Ngayden;
                    ct.Ngaydi   = pi.Ngaydi;
                    ct.giaphong = pi.Tien;
                    DateTime n1 = new DateTime(pi.Ngayden.Year, pi.Ngayden.Month, pi.Ngayden.Day);
                    DateTime n2 = new DateTime(pi.Ngaydi.Year, pi.Ngaydi.Month, pi.Ngaydi.Day);
                    if (DateTime.Compare(n1, n2) == 0)
                    {
                        ct.songayo  = 1;
                        ct2.songayo = 1;
                    }
                    else
                    {
                        TimeSpan time = n2 - n1;
                        ct.songayo  = time.Days;
                        ct2.songayo = time.Days;
                    }
                    cthd.Add(ct);
                    cthdin.Add(ct2);
                }
                //return;
            }
            else if (query1 == null)
            {
                var x2 = query2.ToList();
                foreach (var pi in x2)
                {
                    // thiet lap de in ra
                    Chitiethoadon ct2 = new Chitiethoadon();
                    ct2.tendv   = pi.Tendv;
                    ct2.soluong = pi.soluong;
                    ct2.giadv   = pi.Gia;
                    // hien thi
                    Chitiethoadondv ct = new Chitiethoadondv();
                    ct.TenDV   = pi.Tendv;
                    ct.soluong = pi.soluong;
                    ct.giadv   = pi.Gia;
                    ctdv.Add(ct);
                    cthdin.Add(ct2);
                }
            }
            else
            {
                var x1 = query1.ToList();
                var x2 = query2.ToList();
                if (x1.Count > x2.Count)
                {
                    for (int i = 0; i < x2.Count; i++)
                    {
                        // thiet lap de in ra
                        Chitiethoadon ct1 = new Chitiethoadon();
                        ct1.sophong  = x1[i].Sophong;
                        ct1.Ngayden  = x1[i].Ngayden;
                        ct1.Ngaydi   = x1[i].Ngaydi;
                        ct1.giaphong = x1[i].Tien;
                        ct1.tendv    = x2[i].Tendv;
                        ct1.soluong  = x2[i].soluong;
                        ct1.giadv    = x2[i].Gia;
                        // hien thi
                        Chitiethoadonphong ct = new Chitiethoadonphong();
                        ct.sophong  = x1[i].Sophong;
                        ct.Ngayden  = x1[i].Ngayden;
                        ct.Ngaydi   = x1[i].Ngaydi;
                        ct.giaphong = x1[i].Tien;
                        DateTime n1 = new DateTime(x1[i].Ngayden.Year, x1[i].Ngayden.Month, x1[i].Ngayden.Day);
                        DateTime n2 = new DateTime(x1[i].Ngaydi.Year, x1[i].Ngaydi.Month, x1[i].Ngaydi.Day);
                        if (DateTime.Compare(n1, n2) == 0)
                        {
                            ct.songayo  = 1;
                            ct1.songayo = 1;
                        }
                        else
                        {
                            TimeSpan time = n2 - n1;
                            ct.songayo  = time.Days;
                            ct1.songayo = time.Days;
                        }
                        cthd.Add(ct);
                        Chitiethoadondv ct2 = new Chitiethoadondv();
                        ct2.TenDV   = x2[i].Tendv;
                        ct2.soluong = x2[i].soluong;
                        ct2.giadv   = x2[i].Gia;
                        ctdv.Add(ct2);
                        cthdin.Add(ct1);
                    }
                    for (int k = x1.Count - 1; k >= x2.Count; k--)
                    {
                        // thiet lap de in ra
                        Chitiethoadon ct1 = new Chitiethoadon();
                        ct1.sophong  = x1[k].Sophong;
                        ct1.Ngayden  = x1[k].Ngayden;
                        ct1.Ngaydi   = x1[k].Ngaydi;
                        ct1.giaphong = x1[k].Tien;
                        ct1.tendv    = "";
                        ct1.soluong  = null;
                        ct1.giadv    = null;
                        // hien thi
                        Chitiethoadonphong ct = new Chitiethoadonphong();
                        ct.sophong  = x1[k].Sophong;
                        ct.Ngayden  = x1[k].Ngayden;
                        ct.Ngaydi   = x1[k].Ngaydi;
                        ct.giaphong = x1[k].Tien;
                        DateTime n1 = new DateTime(x1[k].Ngayden.Year, x1[k].Ngayden.Month, x1[k].Ngayden.Day);
                        DateTime n2 = new DateTime(x1[k].Ngaydi.Year, x1[k].Ngaydi.Month, x1[k].Ngaydi.Day);
                        if (DateTime.Compare(n1, n2) == 0)
                        {
                            ct.songayo  = 1;
                            ct1.songayo = 1;
                        }
                        else
                        {
                            TimeSpan time = n2 - n1;
                            ct.songayo  = time.Days;
                            ct1.songayo = time.Days;
                        }

                        cthd.Add(ct);
                        Chitiethoadondv ct2 = new Chitiethoadondv();
                        ct2.TenDV   = "";
                        ct2.soluong = null;
                        ct2.giadv   = null;
                        ctdv.Add(ct2);
                        cthdin.Add(ct1);
                    }
                    //return;
                }
                else if (x2.Count > x1.Count)
                {
                    for (int i = 0; i < x1.Count; i++)
                    {
                        // thiet lap de in ra
                        Chitiethoadon ct1 = new Chitiethoadon();
                        ct1.sophong  = x1[i].Sophong;
                        ct1.Ngayden  = x1[i].Ngayden;
                        ct1.Ngaydi   = x1[i].Ngaydi;
                        ct1.giaphong = x1[i].Tien;
                        ct1.tendv    = x2[i].Tendv;
                        ct1.soluong  = x2[i].soluong;
                        ct1.giadv    = x2[i].Gia;
                        // hien thi
                        Chitiethoadonphong ct = new Chitiethoadonphong();
                        ct.sophong  = x1[i].Sophong;
                        ct.Ngayden  = x1[i].Ngayden;
                        ct.Ngaydi   = x1[i].Ngaydi;
                        ct.giaphong = x1[i].Tien;
                        DateTime n1 = new DateTime(x1[i].Ngayden.Year, x1[i].Ngayden.Month, x1[i].Ngayden.Day);
                        DateTime n2 = new DateTime(x1[i].Ngaydi.Year, x1[i].Ngaydi.Month, x1[i].Ngaydi.Day);
                        if (DateTime.Compare(n1, n2) == 0)
                        {
                            ct.songayo  = 1;
                            ct1.songayo = 1;
                        }
                        else
                        {
                            TimeSpan time = n2 - n1;
                            ct.songayo  = time.Days;
                            ct1.songayo = time.Days;
                        }
                        cthd.Add(ct);
                        Chitiethoadondv ct2 = new Chitiethoadondv();
                        ct2.TenDV   = x2[i].Tendv;
                        ct2.soluong = x2[i].soluong;
                        ct2.giadv   = x2[i].Gia;
                        ctdv.Add(ct2);
                        cthdin.Add(ct1);
                    }
                    for (int k = x2.Count - 1; k >= x1.Count; k--)
                    {
                        // thiet lap de in ra
                        Chitiethoadon ct1 = new Chitiethoadon();
                        ct1.sophong  = null;
                        ct1.Ngayden  = null;
                        ct1.Ngaydi   = null;
                        ct1.giaphong = null;
                        ct1.tendv    = x2[k].Tendv;
                        ct1.soluong  = x2[k].soluong;
                        ct1.giadv    = x2[k].Gia;
                        // hien thi
                        Chitiethoadonphong ct = new Chitiethoadonphong();
                        ct.sophong  = null;
                        ct.Ngayden  = null;
                        ct.Ngaydi   = null;
                        ct.giaphong = null;
                        cthd.Add(ct);
                        Chitiethoadondv ct2 = new Chitiethoadondv();
                        ct2.TenDV   = x2[k].Tendv;
                        ct2.soluong = x2[k].soluong;
                        ct2.giadv   = x2[k].Gia;
                        ctdv.Add(ct2);
                        cthdin.Add(ct1);
                    }
                }
                else
                {
                    for (int i = 0; i < x2.Count; i++)
                    {
                        // thiet lap de in ra
                        Chitiethoadon ct1 = new Chitiethoadon();
                        ct1.sophong  = x1[i].Sophong;
                        ct1.Ngayden  = x1[i].Ngayden;
                        ct1.Ngaydi   = x1[i].Ngaydi;
                        ct1.giaphong = x1[i].Tien;
                        ct1.tendv    = x2[i].Tendv;
                        ct1.soluong  = x2[i].soluong;
                        ct1.giadv    = x2[i].Gia;
                        // hien thi
                        Chitiethoadonphong ct = new Chitiethoadonphong();
                        ct.sophong  = x1[i].Sophong;
                        ct.Ngayden  = x1[i].Ngayden;
                        ct.Ngaydi   = x1[i].Ngaydi;
                        ct.giaphong = x1[i].Tien;
                        DateTime n1 = new DateTime(x1[i].Ngayden.Year, x1[i].Ngayden.Month, x1[i].Ngayden.Day);
                        DateTime n2 = new DateTime(x1[i].Ngaydi.Year, x1[i].Ngaydi.Month, x1[i].Ngaydi.Day);
                        if (DateTime.Compare(n1, n2) == 0)
                        {
                            ct.songayo  = 1;
                            ct1.songayo = 1;
                        }
                        else
                        {
                            TimeSpan time = n2 - n1;
                            ct.songayo  = time.Days;
                            ct1.songayo = time.Days;
                        }
                        cthd.Add(ct);
                        Chitiethoadondv ct2 = new Chitiethoadondv();
                        ct2.TenDV   = x2[i].Tendv;
                        ct2.soluong = x2[i].soluong;
                        ct2.giadv   = x2[i].Gia;
                        ctdv.Add(ct2);
                        cthdin.Add(ct1);
                    }
                }
            }
            Program.hoadon    = cthdin;
            txttienphong.Text = Program.giaphong.ToString() + " vnd";
            txttiendv.Text    = Program.giadv.ToString() + " vnd";

            dataGridView1.DataSource = cthd;
            dataGridView2.DataSource = ctdv;
            dataGridView1.Columns["sophong"].HeaderText  = "Số phòng";
            dataGridView1.Columns["Ngayden"].HeaderText  = "Ngày đến";
            dataGridView1.Columns["Ngaydi"].HeaderText   = "Ngày đi";
            dataGridView1.Columns["giaphong"].HeaderText = "Giá phòng";
            dataGridView1.Columns["songayo"].HeaderText  = "Số ngày ở";
            dataGridView2.Columns["Tendv"].HeaderText    = "Tên dịch vụ";
            dataGridView2.Columns["soluong"].HeaderText  = "Số lượng";
            dataGridView2.Columns["giadv"].HeaderText    = "Giá dịch vụ";
        }
        public IActionResult InHoaDon(int id)
        {
            var dbContext = new shopContext();
            var hoadon    = (from hd in dbContext.Hoadon
                             join ps in dbContext.Phiship
                             on hd.PhiShipId equals ps.PhiShipId
                             join kh in dbContext.Khachhang
                             on hd.KhachHangId equals kh.KhachHangId
                             join nv in dbContext.Nhanvien
                             on hd.NhanVienId equals nv.NhanVienId
                             where hd.HoaDonId == id
                             select new{
                idhd = hd.HoaDonId,
                TenKhachHang = kh.HoTen,
                quan = hd.Quan,
                ngaytao = hd.NgayTao,
                TenNguoiNhan = hd.TenNguoiNhan,
                soNha = hd.SoNha,
                sdt = hd.Sdt,
                phiship = ps.ChiPhi,
                tienkhuyenmai = hd.TienGiamGia,
                TongTienChuaShip = hd.TongTienChuaShip,
                tongcong = hd.TongTienThanhToan
            }).ToList();
            List <Hoadon> DSHoaDon = new List <Hoadon>();

            foreach (var item in hoadon)
            {
                Hoadon hd = new Hoadon();
                hd.HoaDonId          = item.idhd;
                hd.NgayTao           = item.ngaytao;
                hd.TenNguoiNhan      = item.TenNguoiNhan;
                hd.SoNha             = item.soNha;
                hd.Sdt               = item.sdt;
                hd.TienGiamGia       = item.tienkhuyenmai;
                hd.TongTienChuaShip  = item.TongTienChuaShip;
                hd.TongTienThanhToan = item.tongcong;
                hd.Quan              = item.quan;
                Phiship ps = new Phiship();
                ps.ChiPhi = item.phiship;
                Khachhang kh = new Khachhang();
                kh.HoTen     = item.TenKhachHang;
                hd.KhachHang = kh;
                hd.PhiShip   = ps;
                DSHoaDon.Add(hd);
            }
            // ViewBag.hoadon = DSHoaDon;
            var chitiet = (from ct in dbContext.Chitiethoadon
                           join hd in dbContext.Hoadon
                           on ct.HoaDonId equals hd.HoaDonId
                           join sp in dbContext.Sanpham
                           on ct.SanPhamId equals sp.SanPhamId
                           join kt in dbContext.Kichthuoc
                           on ct.KichThuocId equals kt.KichThuocid
                           join ha in dbContext.Hinhanh
                           on sp.HinhAnhId equals ha.HinhAnhId
                           join km in dbContext.Khuyenmai
                           on sp.KhuyenMaiId equals km.KhuyenMaiId into x
                           from subnv in x.DefaultIfEmpty()
                           where hd.HoaDonId == id
                           select new{
                tensp = sp.TenSanPham,
                hinhanh = ha.TenFile,
                gia = ct.TongTien,
                soluong = ct.SoLuong,
                giam = subnv.PhanTramGiam * sp.GiaBanLe,
                tamtinh = ct.TongSauKm,
                tenKichThuoc = kt.TenKichThuoc
            }).ToList();
            List <Chitiethoadon> DSChiTiet = new List <Chitiethoadon>();

            foreach (var item in chitiet)
            {
                Sanpham       sp = new Sanpham();
                Chitiethoadon ct = new Chitiethoadon();
                Hinhanh       ha = new Hinhanh();
                Kichthuoc     kt = new Kichthuoc();
                sp.TenSanPham    = item.tensp;
                ha.TenFile       = item.hinhanh;
                ct.TongTien      = item.gia;
                ct.SoLuong       = item.soluong;
                ct.TienKhuyenMai = item.giam;
                ct.TongSauKm     = item.tamtinh;
                kt.TenKichThuoc  = item.tenKichThuoc;
                sp.HinhAnh       = ha;
                ct.SanPham       = sp;
                ct.KichThuoc     = kt;
                DSChiTiet.Add(ct);
            }

            var hoadon_cthd = new Tuple <List <Hoadon>, List <Chitiethoadon> >(DSHoaDon, DSChiTiet);

            return(new ViewAsPdf(hoadon_cthd));
        }