public ActionResult UpdateBasket(CartUpdateBasket updateModel) { var model = ResolveModel(); var parameters = new System.Collections.Generic.Dictionary <string, object>(); string message; if (!model.CanProcessRequest(parameters, out message)) { return(this.PartialView("_Warning", message)); } var updatedVM = model.Update(updateModel); var miniBasketModel = ResolveMiniBasketModel(); return(Json(new { MiniBasketRefresh = miniBasketModel.Refresh(), updatedVM.OrderTotal, updatedVM.DiscountTotal, updatedVM.TaxTotal, updatedVM.SubTotal, updatedVM.OrderLines })); }
public ActionResult RemoveVoucher(CartUpdateBasket updateModel) { var model = ResolveModel(); var parameters = new System.Collections.Generic.Dictionary <string, object>(); string message; parameters.Add("submitModel", updateModel); if (!model.CanProcessRequest(parameters, out message)) { return(this.Json(new OperationStatusDTO() { Status = "failed", Message = message }, JsonRequestBehavior.AllowGet)); } var updatedVM = model.RemoveVoucher(updateModel); return(Json(new { updatedVM.OrderTotal, updatedVM.DiscountTotal, updatedVM.TaxTotal, updatedVM.SubTotal, Voucher = updatedVM.Vouchers, updatedVM.OrderLines })); }
public virtual CartUpdateBasketViewModel RemoveVoucher(CartUpdateBasket model) { var basket = TransactionLibrary.GetBasket(false); foreach (var item in model.Vouchers) { var itemForDeletion = basket.Discounts.FirstOrDefault(d => d.CampaignItemName == item); if (itemForDeletion != null) { basket.RemoveDiscount(itemForDeletion); var prop = basket.OrderProperties.FirstOrDefault(v => v.Key == "voucherCodes"); if (prop != null) { prop.Value = prop.Value.Replace(item + ",", string.Empty); prop.Save(); } } } basket.Save(); TransactionLibrary.ExecuteBasketPipeline(); var updatedBasket = MapCartUpdate(model); updatedBasket.Vouchers.Except(model.Vouchers).ToList(); return(updatedBasket); }
public virtual CartUpdateBasketViewModel AddVoucher(CartUpdateBasket model) { if (model.Vouchers.Any()) { foreach (var modelVoucher in model.Vouchers) { MarketingLibrary.AddVoucher(modelVoucher); } } TransactionLibrary.ExecuteBasketPipeline(); var updatedBasket = MapCartUpdate(model); updatedBasket.Vouchers = model.Vouchers; return(updatedBasket); }
public virtual CartUpdateBasketViewModel Update(CartUpdateBasket model) { foreach (var updateOrderline in model.RefreshBasket) { var newQuantity = updateOrderline.OrderLineQty; if (newQuantity <= 0) { newQuantity = 0; } _transactionLibraryInternal.UpdateLineItemByOrderLineId(updateOrderline.OrderLineId, newQuantity); } _transactionLibraryInternal.ExecuteBasketPipeline(); var basket = _transactionLibraryInternal.GetBasket(false).PurchaseOrder; CartUpdateBasketViewModel updatedBasket = new CartUpdateBasketViewModel(); foreach (var orderLine in basket.OrderLines) { var orderLineViewModel = new CartUpdateOrderline(); orderLineViewModel.OrderlineId = orderLine.OrderLineId; orderLineViewModel.Quantity = orderLine.Quantity; orderLineViewModel.Total = new Money(orderLine.Total.GetValueOrDefault(), basket.BillingCurrency).ToString(); orderLineViewModel.Discount = orderLine.Discount; orderLineViewModel.Tax = new Money(orderLine.VAT, basket.BillingCurrency).ToString(); orderLineViewModel.Price = new Money(orderLine.Price, basket.BillingCurrency).ToString(); orderLineViewModel.PriceWithDiscount = new Money(orderLine.Price - orderLine.Discount, basket.BillingCurrency).ToString(); updatedBasket.OrderLines.Add(orderLineViewModel); } string orderTotal = new Money(basket.OrderTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); string discountTotal = new Money(basket.DiscountTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); string taxTotal = new Money(basket.TaxTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); string subTotal = new Money(basket.SubTotal.GetValueOrDefault(), basket.BillingCurrency).ToString(); updatedBasket.OrderTotal = orderTotal; updatedBasket.DiscountTotal = discountTotal; updatedBasket.TaxTotal = taxTotal; updatedBasket.SubTotal = subTotal; return(updatedBasket); }
public virtual CartUpdateBasketViewModel Update(CartUpdateBasket model) { foreach (var updateOrderline in model.RefreshBasket) { var newQuantity = updateOrderline.OrderLineQty; if (newQuantity <= 0) { newQuantity = 0; } TransactionLibrary.UpdateLineItemByOrderLineId(updateOrderline.OrderLineId, newQuantity); } TransactionLibrary.ExecuteBasketPipeline(); var updatedBasket = MapCartUpdate(model); return(updatedBasket); }
private CartUpdateBasketViewModel MapCartUpdate(CartUpdateBasket model) { var basket = TransactionLibrary.GetBasket(false); var updatedBasket = MapOrderline(basket); var currencyIsoCode = basket.BillingCurrency.ISOCode; string orderTotal = new Money(basket.OrderTotal.GetValueOrDefault(), currencyIsoCode).ToString(); string discountTotal = basket.DiscountTotal.GetValueOrDefault() > 0 ? new Money(basket.DiscountTotal.GetValueOrDefault(), currencyIsoCode).ToString() : ""; string taxTotal = new Money(basket.TaxTotal.GetValueOrDefault(), currencyIsoCode).ToString(); string subTotal = new Money(basket.SubTotal.GetValueOrDefault(), currencyIsoCode).ToString(); updatedBasket.OrderTotal = orderTotal; updatedBasket.DiscountTotal = discountTotal; updatedBasket.TaxTotal = taxTotal; updatedBasket.SubTotal = subTotal; updatedBasket.Vouchers.AddRange(model.Vouchers); return(updatedBasket); }