public virtual BasketPreviewViewModel GetViewModel() { var purchaseOrder = _transactionLibraryInternal.GetBasket(false).PurchaseOrder; var basketPreviewViewModel = new BasketPreviewViewModel(); basketPreviewViewModel.BillingAddress = purchaseOrder.BillingAddress ?? new OrderAddress(); basketPreviewViewModel.ShipmentAddress = purchaseOrder.GetShippingAddress(UCommerce.Constants.DefaultShipmentAddressName) ?? new OrderAddress(); foreach (var orderLine in purchaseOrder.OrderLines) { var orderLineModel = new PreviewOrderLine { ProductName = orderLine.ProductName, Sku = orderLine.Sku, VariantSku = orderLine.VariantSku, Total = new Money(orderLine.Total.GetValueOrDefault(), orderLine.PurchaseOrder.BillingCurrency).ToString(), Tax = new Money(orderLine.VAT, purchaseOrder.BillingCurrency).ToString(), Price = new Money(orderLine.Price, purchaseOrder.BillingCurrency).ToString(), PriceWithDiscount = new Money(orderLine.Price - orderLine.UnitDiscount.GetValueOrDefault(), purchaseOrder.BillingCurrency).ToString(), Quantity = orderLine.Quantity, Discount = orderLine.Discount }; basketPreviewViewModel.OrderLines.Add(orderLineModel); } basketPreviewViewModel.DiscountTotal = new Money(purchaseOrder.DiscountTotal.GetValueOrDefault(), purchaseOrder.BillingCurrency).ToString(); basketPreviewViewModel.DiscountAmount = purchaseOrder.DiscountTotal.GetValueOrDefault(); basketPreviewViewModel.SubTotal = new Money(purchaseOrder.SubTotal.GetValueOrDefault(), purchaseOrder.BillingCurrency).ToString(); basketPreviewViewModel.OrderTotal = new Money(purchaseOrder.OrderTotal.GetValueOrDefault(), purchaseOrder.BillingCurrency).ToString(); basketPreviewViewModel.TaxTotal = new Money(purchaseOrder.TaxTotal.GetValueOrDefault(), purchaseOrder.BillingCurrency).ToString(); basketPreviewViewModel.ShippingTotal = new Money(purchaseOrder.ShippingTotal.GetValueOrDefault(), purchaseOrder.BillingCurrency).ToString(); basketPreviewViewModel.PaymentTotal = new Money(purchaseOrder.PaymentTotal.GetValueOrDefault(), purchaseOrder.BillingCurrency).ToString(); var shipment = purchaseOrder.Shipments.FirstOrDefault(); if (shipment != null) { basketPreviewViewModel.ShipmentName = shipment.ShipmentName; basketPreviewViewModel.ShipmentAmount = purchaseOrder.ShippingTotal.GetValueOrDefault(); } var payment = purchaseOrder.Payments.FirstOrDefault(); if (payment != null) { basketPreviewViewModel.PaymentName = payment.PaymentMethodName; basketPreviewViewModel.PaymentAmount = purchaseOrder.PaymentTotal.GetValueOrDefault(); } basketPreviewViewModel.NextStepUrl = GetNextStepUrl(nextStepId, purchaseOrder.OrderGuid); basketPreviewViewModel.PreviousStepUrl = GetPreviousStepUrl(previousStepId); return(basketPreviewViewModel); }
private BasketPreviewViewModel MapPurchaseOrderToViewModel(PurchaseOrder purchaseOrder, BasketPreviewViewModel basketPreviewViewModel) { basketPreviewViewModel.BillingAddress = purchaseOrder.BillingAddress ?? new OrderAddress(); basketPreviewViewModel.ShipmentAddress = purchaseOrder.GetShippingAddress(Constants.DefaultShipmentAddressName) ?? new OrderAddress(); foreach (var orderLine in purchaseOrder.OrderLines) { var orderLineModel = new PreviewOrderLine { ProductName = orderLine.ProductName, Sku = orderLine.Sku, VariantSku = orderLine.VariantSku, Total = new Money(orderLine.Total.GetValueOrDefault(), orderLine.PurchaseOrder.BillingCurrency).ToString(), Tax = new Money(orderLine.VAT, purchaseOrder.BillingCurrency).ToString(), Price = new Money(orderLine.Price, purchaseOrder.BillingCurrency).ToString(), PriceWithDiscount = new Money(orderLine.Price - orderLine.UnitDiscount.GetValueOrDefault(), purchaseOrder.BillingCurrency).ToString(), Quantity = orderLine.Quantity, Discount = orderLine.Discount }; basketPreviewViewModel.OrderLines.Add(orderLineModel); } basketPreviewViewModel.DiscountTotal = new Money(purchaseOrder.DiscountTotal.GetValueOrDefault(), purchaseOrder.BillingCurrency).ToString(); basketPreviewViewModel.DiscountAmount = purchaseOrder.DiscountTotal.GetValueOrDefault(); basketPreviewViewModel.SubTotal = new Money(purchaseOrder.SubTotal.GetValueOrDefault(), purchaseOrder.BillingCurrency).ToString(); basketPreviewViewModel.OrderTotal = new Money(purchaseOrder.OrderTotal.GetValueOrDefault(), purchaseOrder.BillingCurrency).ToString(); basketPreviewViewModel.TaxTotal = new Money(purchaseOrder.TaxTotal.GetValueOrDefault(), purchaseOrder.BillingCurrency).ToString(); basketPreviewViewModel.ShippingTotal = new Money(purchaseOrder.ShippingTotal.GetValueOrDefault(), purchaseOrder.BillingCurrency).ToString(); basketPreviewViewModel.PaymentTotal = new Money(purchaseOrder.PaymentTotal.GetValueOrDefault(), purchaseOrder.BillingCurrency).ToString(); var shipment = purchaseOrder.Shipments.FirstOrDefault(); if (shipment != null) { basketPreviewViewModel.ShipmentName = shipment.ShipmentName; basketPreviewViewModel.ShipmentAmount = purchaseOrder.ShippingTotal.GetValueOrDefault(); } var payment = purchaseOrder.Payments.FirstOrDefault(); if (payment != null) { basketPreviewViewModel.PaymentName = payment.PaymentMethodName; basketPreviewViewModel.PaymentAmount = purchaseOrder.PaymentTotal.GetValueOrDefault(); } ViewBag.RowSpan = 4; if (purchaseOrder.DiscountTotal > 0) { ViewBag.RowSpan++; } if (purchaseOrder.ShippingTotal > 0) { ViewBag.RowSpan++; } if (purchaseOrder.PaymentTotal > 0) { ViewBag.RowSpan++; } return(basketPreviewViewModel); }
private BasketPreviewViewModel MapPurchaseOrderToViewModel(PurchaseOrder purchaseOrder, Cart cart, BasketPreviewViewModel basketPreviewViewModel) { basketPreviewViewModel.BillingAddress = purchaseOrder.BillingAddress ?? new OrderAddress(); basketPreviewViewModel.ShipmentAddress = purchaseOrder.GetShippingAddress(Constants.DefaultShipmentAddressName) ?? new OrderAddress(); var currency = new Currency() { ISOCode = cart.CurrencyCode }; foreach (var cartLine in cart.Lines) { var orderLineViewModel = new PreviewOrderLine { Quantity = (int)cartLine.Quantity, ProductName = cartLine.Product.ProductName, Sku = cartLine.Product.ProductId, Total = new Money(cartLine.Total.Amount, currency).ToString(), Discount = new Money(cartLine.Adjustments.Sum(x => x.Amount), currency).Value, Price = new Money(cartLine.Product.Price.Amount, currency).ToString(), PriceWithDiscount = new Money((cartLine.Product.Price.Amount - cartLine.Adjustments.Sum(x => x.Amount)), currency).ToString(), }; if (cartLine.GetPropertyValue("VariantSku") != null) { orderLineViewModel.VariantSku = cartLine.GetPropertyValue("VariantSku").ToString(); } if (cartLine.Total.TaxTotal != null) { orderLineViewModel.Tax = new Money(cartLine.Total.TaxTotal.Amount, currency).ToString(); } basketPreviewViewModel.OrderLines.Add(orderLineViewModel); } basketPreviewViewModel.DiscountTotal = new Money(cart.Adjustments.Sum(x => x.Amount), currency).ToString(); basketPreviewViewModel.DiscountAmount = cart.Adjustments.Sum(x => x.Amount); basketPreviewViewModel.SubTotal = new Money((cart.Total.Amount - cart.Total.TaxTotal.Amount), currency).ToString(); basketPreviewViewModel.OrderTotal = new Money(cart.Total.Amount, currency).ToString(); if (cart.Total.TaxTotal != null) { basketPreviewViewModel.TaxTotal = new Money(cart.Total.TaxTotal.Amount, currency).ToString(); } basketPreviewViewModel.ShippingTotal = new Money(purchaseOrder.ShippingTotal.GetValueOrDefault(), currency).ToString(); basketPreviewViewModel.PaymentTotal = new Money(purchaseOrder.PaymentTotal.GetValueOrDefault(), currency).ToString(); var shipment = purchaseOrder.Shipments.FirstOrDefault(); if (shipment != null) { basketPreviewViewModel.ShipmentName = shipment.ShipmentName; basketPreviewViewModel.ShipmentAmount = purchaseOrder.ShippingTotal.GetValueOrDefault(); } var payment = purchaseOrder.Payments.FirstOrDefault(); if (payment != null) { basketPreviewViewModel.PaymentName = payment.PaymentMethodName; basketPreviewViewModel.PaymentAmount = purchaseOrder.PaymentTotal.GetValueOrDefault(); } ViewBag.RowSpan = 4; if (cart.Adjustments.Sum(x => x.Amount) > 0) { ViewBag.RowSpan++; } if (purchaseOrder.ShippingTotal > 0) { ViewBag.RowSpan++; } if (purchaseOrder.PaymentTotal > 0) { ViewBag.RowSpan++; } return(basketPreviewViewModel); }