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);
        }
示例#3
0
        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);
        }