Example #1
0
        public decimal Calculate(decimal amount, ITaxSettings settings)
        {
            //we expect a 'rate'
            var rate = settings.GetValue <decimal>("rate");

            return(amount * rate);
        }
Example #2
0
        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);
        }
Example #4
0
 public AvaTaxController(ITaxSettings taxSettings)
 {
     _taxSettings = taxSettings;
 }
 public CancelOrderTaxesObserver(ITaxSettings taxSettings)
 {
     _taxSettings = taxSettings;
 }
Example #6
0
 public CalculateOrderTaxesObserver(ITaxSettings taxSettings, IContactService customerSearchService)
 {
     _taxSettings           = taxSettings;
     _customerSearchService = customerSearchService;
 }
Example #7
0
 public CalculateTaxAdjustmentObserver(ITaxSettings taxSettings, IContactService customerSearchService)
 {
     _taxSettings           = taxSettings;
     _customerSearchService = customerSearchService;
 }
Example #8
0
 public AvaTaxController(ITaxSettings taxSettings, ILog log)
 {
     _taxSettings = taxSettings;
     _logger      = new AvalaraLogger(log);
 }
 public AvaTaxController(ITaxSettings taxSettings, ILog log)
 {
     _taxSettings = taxSettings;
     _logger = new AvalaraLogger(log);
 }
Example #10
0
 public CalculateTaxAdjustmentObserver(ITaxSettings taxSettings, IContactService customerSearchService, ILog log)
 {
     _taxSettings           = taxSettings;
     _customerSearchService = customerSearchService;
     _logger = new AvalaraLogger(log);
 }
Example #11
0
 public AvaTaxController(ITaxSettings taxSettings)
 {
     _taxSettings = taxSettings;
 }
Example #12
0
 public CancelOrderTaxesObserver(ITaxSettings taxSettings, ILog log)
 {
     _taxSettings = taxSettings;
     _logger      = new AvalaraLogger(log);
 }