Exemplo n.º 1
0
        public string GetReceipt(IList <Item> items)
        {
            var totalPrice = items.Select(item => item.Price).Sum();
            var totalTax   = items.Select(item => _TaxCalculator.GetSalesTax(item)).Sum();

            var result = string.Join(" ", items.Select(x => x.Display)).Trim();

            result += $" Sales Taxes: {totalTax}";
            result += $" Total: {totalPrice+totalTax}";

            return(result);
        }
Exemplo n.º 2
0
        public Money GetSalesTax(ILineItem lineItem, IMarket market, IOrderAddress shippingAddress, Money basePrice)
        {
            if (market.MarketId.Value == "sv" && shippingAddress.City == "Stockholm")
            {
                Decimal decPrice              = 0;
                string  taxCategory           = CatalogTaxManager.GetTaxCategoryNameById((int)lineItem.TaxCategoryId);
                IEnumerable <ITaxValue> taxes = OrderContext.Current.GetTaxes(Guid.Empty, taxCategory, "sv", shippingAddress);

                foreach (var tax in taxes)
                {
                    decPrice += (decimal)(tax.Percentage + 0.10) * (lineItem.PlacedPrice * lineItem.Quantity);
                }
                return(new Money(decPrice, basePrice.Currency) / 100);
            }
            else
            {
                return(_defaultTaxCalculator.GetSalesTax(lineItem, market, shippingAddress, basePrice));
            }
        }
Exemplo n.º 3
0
        private void GetTaxInfo(DemoMarketsViewModel viewModel)
        {
            ICart cart = _orderRepository.LoadOrCreateCart <ICart>(CustomerContext.Current.CurrentContactId, "BogusCart");

            IOrderAddress bogusAddress = _orderGroupFactory.CreateOrderAddress(cart);

            bogusAddress.CountryCode = viewModel.SelectedMarket.Countries.FirstOrDefault();
            bogusAddress.City        = "Stockholm";

            ILineItem lineItem = _orderGroupFactory.CreateLineItem(viewModel.Shirt.Code, cart);

            lineItem.Quantity      = 1;
            lineItem.PlacedPrice   = viewModel.Shirt.GetDefaultPrice().UnitPrice;
            lineItem.TaxCategoryId = viewModel.Shirt.TaxCategoryId;
            cart.AddLineItem(lineItem);

            viewModel.TaxAmount = _taxCalculator.GetSalesTax(lineItem, viewModel.SelectedMarket,
                                                             bogusAddress, new Money(lineItem.PlacedPrice, viewModel.SelectedMarket.DefaultCurrency));

            viewModel.TaxAmountOldSchool = GetTaxOldSchool(viewModel, bogusAddress);
        }