示例#1
0
        private static void AdjustPriceAndTaxes(Currency currency, ILineItem lineItem,
            DinteroOrderLine dinteroItem, IOrderAddress orderAddress)
        {
            var amount = lineItem.GetExtendedPrice(currency).Amount;
            double vat = 0;

            var entryDto = CatalogContext.Current.GetCatalogEntryDto(lineItem.Code,
                new CatalogEntryResponseGroup(CatalogEntryResponseGroup.ResponseGroup.CatalogEntryFull));
            if (entryDto.CatalogEntry.Count > 0)
            {
                CatalogEntryDto.VariationRow[] variationRows = entryDto.CatalogEntry[0].GetVariationRows();
                if (variationRows.Length > 0)
                {
                    var taxCategory = CatalogTaxManager.GetTaxCategoryNameById(variationRows[0].TaxCategoryId);
                    var taxes = OrderContext.Current.GetTaxes(Guid.Empty, taxCategory,
                        Thread.CurrentThread.CurrentCulture.Name, orderAddress).ToList();

                    foreach (var tax in taxes)
                    {
                        if (tax.TaxType == TaxType.SalesTax)
                        {
                            vat = tax.Percentage;
                        }
                    }
                }
            }

            dinteroItem.Amount = CurrencyHelper.CurrencyToInt(amount, currency.CurrencyCode);
            dinteroItem.Vat = Convert.ToInt32(vat);
            dinteroItem.VatAmount = GetVatAmount(amount, vat, currency.CurrencyCode);
        }
示例#2
0
        private OrderLine FromLineItem(ILineItem item, Currency currency)
        {
            var orderLine = new OrderLine
            {
                Type                = "physical",
                Reference           = item.Code,
                Name                = item.DisplayName,
                Quantity            = (int)item.ReturnQuantity,
                UnitPrice           = GetAmount(item.PlacedPrice),
                TotalAmount         = GetAmount(item.GetExtendedPrice(currency).Amount),
                TotalDiscountAmount = GetAmount(item.GetEntryDiscount())
            };

            return(orderLine);
        }
示例#3
0
        private static Models.LineItem ConvertToLineItem(ILineItem lineItem)
        {
            var defaultCurrency = Currency.USD; // Using USD as currency doesn't matter - calculation result will not use currency only amount.

            return(new Models.LineItem
            {
                LineItemId = lineItem.LineItemId,
                Code = lineItem.Code,
                DisplayName = lineItem.DisplayName,
                PlacedPrice = lineItem.PlacedPrice,
                ExtendedPrice = lineItem.GetExtendedPrice(defaultCurrency).Amount,
                DiscountedPrice = lineItem.GetDiscountedPrice(defaultCurrency).Amount,
                Quantity = lineItem.Quantity,
                ReturnQuantity = lineItem.ReturnQuantity,
                InventoryTrackingStatus = lineItem.InventoryTrackingStatus,
                IsInventoryAllocated = lineItem.IsInventoryAllocated,
                IsGift = lineItem.IsGift,
                Properties = lineItem.ToPropertyList()
            });
        }