public ActionResult Index() { IList <CartViewModel.ProductCart> productCarts = new List <CartViewModel.ProductCart>(); CookieHelper cookieHelper = new CookieHelper("Cart"); if (cookieHelper.GetCookie() != null) { string json = HttpUtility.UrlDecode(cookieHelper.GetCookie().Values["Cart"]); productCarts = JsonConvert.DeserializeObject <List <CartViewModel.ProductCart> >(json); } IList <PromotionMapping.PromotionCheckProduct> promotions = _promotionRepository.GetActives(); IList <ProductFrontPageMapping.ProductShowCart> productShowCarts = _menuRepository.GetProductShowCartByBarcode(productCarts.Select(o => o.Barcode).ToList()); IList <CartViewModel.CartItem> cartItems = new List <CartViewModel.CartItem>(); int gia = 0; IList <int> productId = new List <int>(); if (productCarts.Any()) { foreach (var o in productCarts) { IList <ProductStockSyncMapping.TonKho> tonKhos = _productStockSyncRepository.GetTonKhoCuaSanPham(o.ProductId); var tonkho = tonKhos.FirstOrDefault(t => t.Barcode.Equals(o.Barcode)); var item = productShowCarts.FirstOrDefault(p => p.Barcode.Equals(o.Barcode)); if (item != null) { #region ghép combo < 80K if (item.Price < 80000 && o.Quantity >= 2) { //nếu số lượng > 2 và giá < 80000 bắt đầu tính giá combo int giatru = (item.Price * 10) / 100; gia = item.Price - giatru; } else { gia = item.Price; } #endregion var cartItem = new CartViewModel.CartItem() { ProductId = o.ProductId, Name = item.NameProduct, Image = item.Img, Link = item.Link, Price = item.Price, PricePromotion = gia, Barcode = o.Barcode, Quantity = o.Quantity <= 0 ? 1 : o.Quantity, AttributeImg = item.AttributeImg, AttributeName = item.AttributeName, AttributeFlag = item.AttributeFlag, Available = tonkho != null && tonkho.OnHand >= (o.Quantity <= 0 ? 1 : o.Quantity) }; #region check promotion if (promotions.Any()) { foreach (var pr in promotions) { var promotionDetail = pr.PromotionDetails.FirstOrDefault(dt => dt.ProductId == cartItem.ProductId); if (promotionDetail != null) { cartItem.HasPromotion = true; cartItem.PricePromotion = (int)promotionDetail.PriceDiscount; cartItem.Discount = (short)promotionDetail.Percent; break; } } } #endregion cartItems.Add(cartItem); productId.Add(cartItem.ProductId); // lấy Id để remarketing facebook } } } CartViewModel.CartModel cartModel = new CartViewModel.CartModel() { CartItems = cartItems, Total = cartItems.Sum(o => o.Quantity * o.PricePromotion), Available = cartItems.All(o => o.Available), ListProductId = productId }; return(View("Index", cartModel)); }
public ActionResult Index(string linkspamp) { using (var context = new ShopDataContex()) { context.Database.ExecuteSqlCommand("update Menu set GiaThiTruong = CASE WHEN GiaThiTruong IS NULL OR GiaThiTruong = 0 THEN (ISNULL(PricePro, 0) +(ISNULL(PricePro, 0) * (ABS(Checksum(NewID()) % 10)+ 10)/100)) WHEN GiaThiTruong < PricePro THEN (ISNULL(PricePro, 0) +(ISNULL(PricePro, 0) * (ABS(Checksum(NewID()) % 10)+ 10)/100)) ELSE GiaThiTruong END where idControl=11 and Link ={0}", linkspamp); } ProductFrontPageMapping.ProductForViewDetail product = _menuRepository.GetForViewDetailByLink(linkspamp); ProductFrontPageMapping.Brand brand = _menuRepository.GetBrandById(product.BrandId); product.BrandName = brand != null ? brand.Name : ""; IList <ProductFrontPageMapping.Attribute> attributes = _menuRepository.GetAttributeByProductId(product.ProductId); if (!attributes.Any()) { attributes = new List <ProductFrontPageMapping.Attribute>(); } IList <ProductStockSyncMapping.TonKho> tonKhos = _stockSyncRepository.GetTonKhoCuaSanPham(product.ProductId); #region lay ton kho trong chi nhanh IList <SanPhamViewModel.BranchItem> branchItems = GetBrands(); if (attributes.Any()) { attributes[0].Selected = true; string firstBarcode = attributes[0].Barcode; foreach (var b in branchItems) { var item = tonKhos.FirstOrDefault(o => o.Barcode.Equals(firstBarcode) && o.Idbranch == b.Id); if (item != null) { b.Quantity = item.OnHand; } } } #endregion IList <PromotionMapping.PromotionCheckProduct> promotions = _promotionRepository.GetActives(); if (promotions.Any()) { foreach (var pr in promotions) { var promotionDetail = pr.PromotionDetails.FirstOrDefault(dt => dt.ProductId == product.ProductId); if (promotionDetail != null) { product.HasPromotion = true; product.PricePromotion = (int)promotionDetail.PriceDiscount; product.Discount = (short)promotionDetail.Percent; break; } } } var selected = attributes.FirstOrDefault(o => o.Selected); SanPhamViewModel.DetailPageViewModel model = new SanPhamViewModel.DetailPageViewModel() { Product = product, Attributes = attributes, BranchItems = branchItems, ProductAvailable = branchItems.Any(o => o.Quantity > 0), CurrentBarcode = selected != null ? selected.Barcode : "", ThietLap = _ThietLapRepository.GetAll().FirstOrDefault(), LuotDanhGia = _userRatingRepository.GetLuotReView(linkspamp) < 200 ? _userRatingRepository.GetLuotReView(linkspamp) + 200 : _userRatingRepository.GetLuotReView(linkspamp), DanhSachTags = _danhSachTagRepository.GetTenTagViewDetail(linkspamp) }; //chi co admin đăng nhập mới thấy đc số lượng còn hàng ShopUser efmvcUser = _httpContext.User.GetShopUser(); model.IsAdmin = efmvcUser != null && efmvcUser.UserId != 0; ViewData["sao"] = _userRatingRepository.GetSao(linkspamp); //dung de xai data-src cho hinh anh trong chi tiet return(View("Detail", model)); }