Example #1
0
        public IActionResult XemDanhSachSanPham()
        {
            var dbContext = new shopContext();
            var sanpham   = (from sp in dbContext.Sanpham
                             join pl in dbContext.Phanloai
                             on sp.PhanLoaiId equals pl.PhanLoaiId
                             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 subpet in x.DefaultIfEmpty()
                             select new
            {
                idSanPham = sp.SanPhamId,
                tensp = sp.TenSanPham,
                mota = sp.Mota,
                giabanle = sp.GiaBanLe,
                trangThai = sp.TrangThai,
                TenLoai = pl.TenLoai,
                phantramgiam = subpet.PhanTramGiam,
                hinhanh = ha.TenFile
            });
            List <Sanpham> List = new List <Sanpham>();

            foreach (var item in sanpham)
            {
                Sanpham   sp = new Sanpham();
                Hinhanh   ha = new Hinhanh();
                Khuyenmai km = new Khuyenmai();
                Phanloai  pl = new Phanloai();
                sp.SanPhamId    = item.idSanPham;
                sp.TenSanPham   = item.tensp;
                sp.Mota         = item.mota;
                sp.GiaBanLe     = item.giabanle;
                sp.TrangThai    = item.trangThai;
                pl.TenLoai      = item.TenLoai;
                km.PhanTramGiam = item.phantramgiam * 100;
                ha.TenFile      = item.hinhanh;
                sp.PhanLoai     = pl;
                sp.HinhAnh      = ha;
                sp.KhuyenMai    = km;
                List.Add(sp);
            }
            ViewBag.sanpham = List;

            return(View());
        }
Example #2
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));
        }