Esempio n. 1
0
        public TaxParcel Calculate(FamilyAggregate aggregateInfo, float amount)
        {
            var collectableAmount = aggregateInfo.AnualGain + amount - aggregateInfo.SpecificDeductions;

            return(new TaxParcel
            {
                Name = "Rendimento Colectável",
                Amount = collectableAmount
            });
        }
        public TaxParcel Calculate(float income, FamilyAggregate aggregateInfo)
        {
            var individualIncome = income / aggregateInfo.FamilyCoeficient;

            var range = this.ranges.Single(i => i.IsInRange(individualIncome));

            var taxedIncome = range.Tax * individualIncome / 100;

            var tableIncome = range.TaxValue;

            var taxableIncome = (taxedIncome - range.TaxValue) * aggregateInfo.FamilyCoeficient;

            return(new TaxParcel
            {
                Name = "Importância Liquida",
                Amount = taxableIncome - aggregateInfo.TaxDeductions
            });
        }
Esempio n. 3
0
 public void Add(FamilyAggregate familyAggregate)
 {
     this.familyAggregate.Add(familyAggregate);
 }
        public ITaxFileBuilder With(FamilyAggregate familyAggregate)
        {
            this.AggregateInfo = familyAggregate;

            return(this);
        }