Ejemplo n.º 1
0
 public IncomeTaxTable()
 {
     _taxTable = new List <IncomeTaxTableEntry>()
     {
         IncomeTaxTableEntry.CreateWith(0, 18200, 0, 0M),
         IncomeTaxTableEntry.CreateWith(18201, 37000, 0, 0.19m),
         IncomeTaxTableEntry.CreateWith(37001, 80000, 3572, 0.325m),
         IncomeTaxTableEntry.CreateWith(80001, 180000, 17547, 0.37m),
         IncomeTaxTableEntry.CreateWith(180001, decimal.MaxValue, 54547, 0.45m),
     };
 }
Ejemplo n.º 2
0
        public static IncomeTaxTableEntry CreateWith(decimal minThreshold,
                                                     decimal maxThreshold,
                                                     decimal accumulatedTaxFromPreviousBracket,
                                                     decimal marginalTaxRate)
        {
            EnsureValidValues(minThreshold, maxThreshold);

            var incomeThreshold = CalculateIncomeThreshold(minThreshold);
            var taxBracket      = new IncomeTaxBracket(accumulatedTaxFromPreviousBracket, marginalTaxRate, incomeThreshold);
            var taxTableEntry   = new IncomeTaxTableEntry(minThreshold, maxThreshold, taxBracket);

            return(taxTableEntry);
        }