public ActionResult UpdateSharedCart(AddItemModel model, ShoppingCart cart) { HandleCart(cart); model.BizInfo = BizInfoRepository.GetBizInfoById(cart.BizId); if (model.BizInfo == null) { return(Redirect("~/RedirectPage.htm")); } cart.DriverTip = 0.0m; List <CheckBoxViewModel> selectedFreeToppings = new List <CheckBoxViewModel>(); List <CheckBoxViewModel> selectedToppings = new List <CheckBoxViewModel>(); List <CheckBoxViewModel> selectedDressings = new List <CheckBoxViewModel>(); List <AddSideCheckBoxModel> selectedAddSides = new List <AddSideCheckBoxModel>(); Product prod = ProductRepository.GetProductById(model.ProductID); selectedFreeToppings = model.FreeToppingAssistances.Where(e => e.Checked == true).ToList(); selectedToppings = model.ToppingAssistances.Where(e => e.Checked == true).ToList(); selectedDressings = model.DressingAssistances.Where(e => e.Checked == true).ToList(); selectedAddSides = model.AddSideAssistances.Where(e => e.Checked == true).ToList(); int ccID = string.IsNullOrEmpty(model.CrustChoiceID) ? 0 : int.Parse(model.CrustChoiceID); string ccTitle = string.Empty; decimal ccPrice = 0.0m; decimal ccBizPrice = 0.0m; if (ccID > 0) { CrustChoice cc = CrustChoiceRepository.GetCrustChoiceById(ccID); ccTitle = cc.Title; ccPrice = cc.Price; ccBizPrice = cc.BizPrice; } int caID = string.IsNullOrEmpty(model.CheeseAmountID) ? 0 : int.Parse(model.CheeseAmountID); string caTitle = string.Empty; decimal caPrice = 0.0m; decimal caBizPrice = 0.0m; if (caID > 0) { CheeseAmount c = CheeseAmountRepository.GetCheeseAmountById(caID); caTitle = c.Title; caPrice = c.Price; caBizPrice = c.BizPrice; } ProductSize ps = ProductSizeRepository.GetProductSizeById(int.Parse(string.IsNullOrEmpty(model.ProductSize) ? "0" : model.ProductSize)); string psTitle = ps == null ? string.Empty : ps.Title; string pSize = ps == null ? string.Empty : ps.Size.ToString(); decimal psPrice = ps == null ? 0.0m : ps.Price; decimal psBizPrice = ps == null ? 0.0m : ps.BizPrice; foreach (var t in selectedToppings) { decimal exp = 0.0m; if (string.IsNullOrEmpty(psTitle) == false) { exp = psTitle.StartsWith("S", true, null) ? t.BoxPrice : (psTitle.StartsWith("M", true, null) ? t.BoxPrice + 0.50m : psTitle.StartsWith("L", true, null) ? t.BoxPrice + 1.00m : t.BoxPrice + 1.50m); t.BoxPrice = exp; } } int q = prod.IsFamilyDinner ? model.FamilyQty : model.Quantity; string side = prod.HasSideChoice ? model.SideChoice : string.Empty; string sauce = prod.HasSauceChoice ? model.SauceChoice : string.Empty; string pt = prod.MealSectionId == 3 ? "(Lunch)" + prod.Title : prod.Title; string sft = string.Empty; foreach (var s in selectedFreeToppings) { sft = sft + s.BoxName + ", "; } if (selectedFreeToppings.Count > 0) { sft = sft.Remove(sft.Length - 2, 2); } ShoppingCartItem sci = new ShoppingCartItem("9999", model.ProductID, cart.PersonName, q, false, 0, 0, 0, 0, "", "", pt, prod.BizPrice, prod.BizFinalUnitPrice, prod.UnitPrice, prod.FinalUnitPrice, prod.DiscountPercentage, prod.SmallImage, model.Instructions, prod.IsSpicy, model.HowSpicy, prod.IsFamilyDinner, side, sauce, psTitle, pSize, psPrice, psBizPrice, sft, selectedToppings, selectedDressings, selectedAddSides, model.DressingChoice, ccTitle, ccPrice, ccBizPrice, caTitle, caPrice, caBizPrice); bool bl = CanAddGroupItemToCart(cart.CartKey, sci.ItemTotal); if (bl) { cart.InsertItem(model.ProductID, q, cart.PersonName, false, 0, 0, 0, 0, "", "", pt, prod.BizPrice, prod.BizFinalUnitPrice, prod.UnitPrice, prod.FinalUnitPrice, prod.DiscountPercentage, prod.SmallImage, model.Instructions, prod.IsSpicy, model.HowSpicy, prod.IsFamilyDinner, side, sauce, psTitle, pSize, psPrice, psBizPrice, sft, selectedToppings, selectedDressings, selectedAddSides, model.DressingChoice, ccTitle, ccPrice, ccBizPrice, caTitle, caPrice, caBizPrice); } model.Cart = cart; ViewBag.canadditem = bl?"y":"n"; ViewBag.itemid = bl? cart.Lines.LastOrDefault().ItemId:""; ViewBag.quantity = q.ToString(); ViewBag.title = bl? cart.Lines.LastOrDefault().Title:""; ViewBag.itemtotal = bl? cart.Lines.LastOrDefault().ItemTotal.ToString("N2"):""; ViewBag.price = prod.FinalUnitPrice.ToString("N2"); ViewBag.subtotal = cart.SubTotal().ToString("N2"); ViewBag.bizname = cart.BizName; ViewBag.tax = GroupCart.GroupCarts[cart.CartKey].PartyTax().ToString("N2"); ViewBag.drivertip = GroupCart.GroupCarts[cart.CartKey].PartyDriverTip().ToString("N2"); ViewBag.globalsubtotal = GroupCart.GroupCarts[cart.CartKey].PartySubTotal().ToString("N2"); ViewBag.globaltotal = GroupCart.GroupCarts[cart.CartKey].PartyTotal().ToString("N2"); string btnShow = "show"; bool isBoss = (string.IsNullOrEmpty(cart.PersonName) == false && cart.PersonName == GroupCart.GroupCarts[cart.CartKey].PartyBossName); if (isBoss) { btnShow = "off"; } else if (GroupCart.GroupCarts[cart.CartKey].PartyTotalItems == 0 || (GroupCart.GroupCarts[cart.CartKey].PartyOrderMinimum() > GroupCart.GroupCarts[cart.CartKey].PartySubTotal() && GroupCart.GroupCarts[cart.CartKey].IsPartyDelivery) || (GroupCart.GroupCarts[cart.CartKey].PartyCart[cart.BossName].IsBizDelivery == false && GroupCart.GroupCarts[cart.CartKey].IsPartyDelivery)) { btnShow = "off"; } ViewBag.btnshow = btnShow; SharedShoppingCart ssc = new SharedShoppingCart(); if (string.IsNullOrEmpty(cart.CartKey) == false) { ssc = GetGroupShoppingCart(cart.CartKey); } model.SharedCart = ssc; return(PartialView(model)); }
public ActionResult UpdateCart(AddItemModel model, ShoppingCart cart) { HandleCart(cart); model.BizInfo = BizInfoRepository.GetBizInfoById(cart.BizId); if (model.BizInfo == null) { return(Redirect("~/RedirectPage.htm")); } cart.DriverTip = 0.0m; List <CheckBoxViewModel> selectedFreeToppings = new List <CheckBoxViewModel>(); List <CheckBoxViewModel> selectedToppings = new List <CheckBoxViewModel>(); List <CheckBoxViewModel> selectedDressings = new List <CheckBoxViewModel>(); List <AddSideCheckBoxModel> selectedAddSides = new List <AddSideCheckBoxModel>(); Product prod = ProductRepository.GetProductById(model.ProductID); selectedFreeToppings = model.FreeToppingAssistances.Where(e => e.Checked == true).ToList(); selectedToppings = model.ToppingAssistances.Where(e => e.Checked == true).ToList(); selectedDressings = model.DressingAssistances.Where(e => e.Checked == true).ToList(); selectedAddSides = model.AddSideAssistances.Where(e => e.Checked == true).ToList(); int ccID = string.IsNullOrEmpty(model.CrustChoiceID)?0:int.Parse(model.CrustChoiceID); string ccTitle = string.Empty; decimal ccPrice = 0.0m; decimal ccBizPrice = 0.0m; if (ccID > 0) { CrustChoice cc = CrustChoiceRepository.GetCrustChoiceById(ccID); ccTitle = cc.Title; ccPrice = cc.Price; ccBizPrice = cc.BizPrice; } int caID = string.IsNullOrEmpty(model.CheeseAmountID) ? 0 : int.Parse(model.CheeseAmountID); string caTitle = string.Empty; decimal caPrice = 0.0m; decimal caBizPrice = 0.0m; if (caID > 0) { CheeseAmount c = CheeseAmountRepository.GetCheeseAmountById(caID); caTitle = c.Title; caPrice = c.Price; caBizPrice = c.BizPrice; } ProductSize ps = ProductSizeRepository.GetProductSizeById(int.Parse(string.IsNullOrEmpty(model.ProductSize) ? "0" : model.ProductSize)); string psTitle = ps == null ? string.Empty : ps.Title; string pSize = ps == null ? string.Empty : ps.Size.ToString(); decimal psPrice = ps == null ? 0.0m : ps.Price; decimal psBizPrice = ps == null ? 0.0m : ps.BizPrice; foreach (var t in selectedToppings) { decimal exp = 0.0m; if (string.IsNullOrEmpty(psTitle) == false) { exp = psTitle.StartsWith("S", true, null) ? t.BoxPrice : (psTitle.StartsWith("M", true, null) ? t.BoxPrice + t.BoxIncrementValue : psTitle.StartsWith("L", true, null) ? t.BoxPrice + t.BoxIncrementValue * 2 : t.BoxPrice + t.BoxIncrementValue * 3); t.BoxPrice = exp; } } int q = prod.IsFamilyDinner ? model.FamilyQty : model.Quantity; string side = prod.HasSideChoice ? model.SideChoice : string.Empty; string sauce = prod.HasSauceChoice ? model.SauceChoice : string.Empty; string pt = prod.MealSectionId == 3 ?"(Lunch)" + prod.Title : prod.Title; string sft = string.Empty; foreach (var s in selectedFreeToppings) { sft = sft + s.BoxName + ", "; } if (selectedFreeToppings.Count > 0) { sft = sft.Remove(sft.Length - 2, 2); } cart.InsertItem(model.ProductID, q, cart.PersonName, false, 0, 0, 0, 0, "", "", pt, prod.BizPrice, prod.BizFinalUnitPrice, prod.UnitPrice, prod.FinalUnitPrice, prod.DiscountPercentage, prod.SmallImage, model.Instructions, prod.IsSpicy, model.HowSpicy, prod.IsFamilyDinner, side, sauce, psTitle, pSize, psPrice, psBizPrice, sft, selectedToppings, selectedDressings, selectedAddSides, model.DressingChoice, ccTitle, ccPrice, ccBizPrice, caTitle, caPrice, caBizPrice); model.Cart = cart; List <DiscountCoupon> ldc = new List <DiscountCoupon>(); List <FreeItemCoupon> lfc = new List <FreeItemCoupon>(); if (model.BizInfo.HasDiscountCoupons) { ldc = DiscountCouponRepository.GetBizDiscountCouponsByMinimum(cart.BizId, cart.SubTotal(), true); } model.DiscountCouponList = ldc; if (model.BizInfo.HasFreeItemCoupons) { lfc = FreeItemCouponRepository.GetBizFreeItemCouponsByMinimum(cart.BizId, cart.SubTotal(), true); } model.FreeItemCouponList = lfc; ViewBag.items = cart.TotalItems == 0 ? string.Empty : cart.TotalItems.ToString(); return(PartialView(model)); }