public decimal Calculate(decimal amount, ITaxSettings settings) { //we expect a 'rate' var rate = settings.GetValue <decimal>("rate"); return(amount * rate); }
public decimal Calculate(decimal amount, ITaxSettings settings) { //we expect a table of values in the format: from:to //the from starts from 0 and extends to the max value (100000000) decimal currentMin = 0; decimal currentTax = 0; foreach (var(name, value) in settings.GetList()) { if (amount < currentMin) { break; } try { var upperBound = Convert.ToDecimal(name); var taxPerc = Convert.ToDecimal(value); var bracketAmount = Math.Min(amount, upperBound) - currentMin; var taxAmount = bracketAmount * taxPerc; currentTax += taxAmount; currentMin = upperBound; } catch { // ignored } } return(currentTax); }
public decimal Calculate(decimal amount, ITaxSettings settings) { //we expect a 'flat_amount', 'limit_amount', 'under_limit_rate' var flatAmount = settings.GetValue <decimal>("flat_amount"); var limitAmount = settings.GetValue <decimal>("limit_amount"); var underLimitRate = settings.GetValue <decimal>("under_limit_rate"); if (amount < limitAmount) { return(amount * underLimitRate); } return(flatAmount); }
public AvaTaxController(ITaxSettings taxSettings) { _taxSettings = taxSettings; }
public CancelOrderTaxesObserver(ITaxSettings taxSettings) { _taxSettings = taxSettings; }
public CalculateOrderTaxesObserver(ITaxSettings taxSettings, IContactService customerSearchService) { _taxSettings = taxSettings; _customerSearchService = customerSearchService; }
public CalculateTaxAdjustmentObserver(ITaxSettings taxSettings, IContactService customerSearchService) { _taxSettings = taxSettings; _customerSearchService = customerSearchService; }
public AvaTaxController(ITaxSettings taxSettings, ILog log) { _taxSettings = taxSettings; _logger = new AvalaraLogger(log); }
public CalculateTaxAdjustmentObserver(ITaxSettings taxSettings, IContactService customerSearchService, ILog log) { _taxSettings = taxSettings; _customerSearchService = customerSearchService; _logger = new AvalaraLogger(log); }
public CancelOrderTaxesObserver(ITaxSettings taxSettings, ILog log) { _taxSettings = taxSettings; _logger = new AvalaraLogger(log); }