public static taxCoreModel.TaxRequest ToTaxRequest(this coreModel.QuoteRequest quoteRequest) { var retVal = new taxCoreModel.TaxRequest(); retVal.Id = quoteRequest.Id; retVal.Code = quoteRequest.Number; retVal.Currency = quoteRequest.Currency; retVal.Address = quoteRequest.Addresses != null ? quoteRequest.Addresses.FirstOrDefault() : null; retVal.Type = quoteRequest.GetType().Name; foreach(var quoteItem in quoteRequest.Items) { var line = new taxCoreModel.TaxLine { Id = quoteItem.Id, Code = quoteItem.Sku, Name = quoteItem.Name, TaxType = quoteItem.TaxType, Amount = quoteItem.SelectedTierPrice.Price * quoteItem.SelectedTierPrice.Quantity }; retVal.Lines.Add(line); } return retVal; }
public static taxCoreModel.TaxRequest ToTaxRequest(this ShoppingCart cart) { var retVal = new taxCoreModel.TaxRequest(); retVal.Id = cart.Id; retVal.Code = cart.Name; retVal.Currency = cart.Currency; retVal.Address = cart.Addresses != null ? cart.Addresses.FirstOrDefault() : null; retVal.Type = cart.GetType().Name; foreach (var cartItem in cart.Items) { var line = new taxCoreModel.TaxLine { Id = cartItem.Id, Code = cartItem.Sku, Name = cartItem.Name, TaxType = cartItem.TaxType, Amount = cartItem.SalePrice * cartItem.Quantity }; retVal.Lines.Add(line); } return retVal; }
public static taxCoreModel.TaxRequest ToTaxRequest(this ShoppingCart cart) { var retVal = new taxCoreModel.TaxRequest(); retVal.Id = cart.Id; retVal.Code = cart.Name; retVal.Currency = cart.Currency; retVal.Address = cart.Addresses != null?cart.Addresses.FirstOrDefault() : null; retVal.Type = cart.GetType().Name; foreach (var cartItem in cart.Items) { var line = new taxCoreModel.TaxLine { Id = cartItem.Id, Code = cartItem.Sku, Name = cartItem.Name, TaxType = cartItem.TaxType, Amount = cartItem.SalePrice * cartItem.Quantity }; retVal.Lines.Add(line); } return(retVal); }
public static taxCoreModel.TaxRequest ToTaxRequest(this coreModel.QuoteRequest quoteRequest) { var retVal = new taxCoreModel.TaxRequest(); retVal.Id = quoteRequest.Id; retVal.Code = quoteRequest.Number; retVal.Currency = quoteRequest.Currency; retVal.Address = quoteRequest.Addresses != null?quoteRequest.Addresses.FirstOrDefault() : null; retVal.Type = quoteRequest.GetType().Name; foreach (var quoteItem in quoteRequest.Items) { var line = new taxCoreModel.TaxLine { Id = quoteItem.Id, Code = quoteItem.Sku, Name = quoteItem.Name, TaxType = quoteItem.TaxType, Amount = quoteItem.SelectedTierPrice.Price * quoteItem.SelectedTierPrice.Quantity }; retVal.Lines.Add(line); } return(retVal); }
private List<TaxRate> GetTaxRates(TaxRequest taxRequest) { List<TaxRate> retVal = new List<TaxRate>(); LogInvoker<AvalaraLogger.TaxRequestContext>.Execute(log => { if (IsEnabled && !string.IsNullOrEmpty(AccountNumber) && !string.IsNullOrEmpty(LicenseKey) && !string.IsNullOrEmpty(ServiceUrl) && !string.IsNullOrEmpty(CompanyCode)) { var request = taxRequest.ToAvaTaxRequest(CompanyCode, false); if (request != null) { log.docCode = request.DocCode; log.docType = request.DocType.ToString(); log.customerCode = request.CustomerCode; var taxSvc = new JsonTaxSvc(AccountNumber, LicenseKey, ServiceUrl); var getTaxResult = taxSvc.GetTax(request); if (!getTaxResult.ResultCode.Equals(SeverityLevel.Success)) { //if tax calculation failed create exception with provided error info var error = string.Join(Environment.NewLine, getTaxResult.Messages.Select(m => m.Summary)); throw new Exception(error); } foreach (var taxLine in getTaxResult.TaxLines ?? Enumerable.Empty<AvaTaxCalcREST.TaxLine>()) { var rate = new TaxRate { Rate = taxLine.Tax, Currency = taxRequest.Currency, TaxProvider = this, Line = taxRequest.Lines.First(l => l.Id == taxLine.LineNo) }; retVal.Add(rate); } } else { throw new Exception("Failed to create get tax request"); } } else { throw new Exception("Failed to create get tax request"); } }) .OnError(_logger, AvalaraLogger.EventCodes.TaxCalculationError) .OnSuccess(_logger, AvalaraLogger.EventCodes.GetSalesInvoiceRequestTime); return retVal; }
public TaxEvaluationContext(TaxRequest taxRequest) { TaxRequest = taxRequest; }