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); }
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); }
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() }); }