internal virtual Decimal GetStandardDeduction(FilingStatus filingStatus) { return (StandardDeductions .Where(d => d.FilingStatus == filingStatus) .Select(d => d.Amount) .Single()); }
internal virtual Decimal GetStandardDeduction(FilingStatus filingStatus, Decimal annualWages) { var standardDeduction = StandardDeductions .Where(x => x.FilingStatus == filingStatus) .First(x => x.FloorAmount <= annualWages && x.CeilingAmount > annualWages); if (standardDeduction.CalcValue > 0.00m) { return(1 - (Math.Round(((annualWages - standardDeduction.FloorAmount) / standardDeduction.CalcValue), 4)) * standardDeduction.Amount); } else { return(standardDeduction.Amount); } }
internal virtual Decimal GetStandardDeduction(FilingStatus filingStatus, decimal grossWages) { var sd = StandardDeductions .Where(d => d.FilingStatus == filingStatus) .FirstOrDefault(d => d.Floor <= grossWages && d.Ceiling > grossWages); if (sd.Increment > 0.00m) { return(sd.Amount - ((int)((grossWages - sd.Floor) / sd.IncrementDivisor) * sd.Increment)); } else { return(sd.Amount); } }
protected virtual Decimal GetStandardDeduction(FilingStatus filingStatus, decimal wages) { var deduction = StandardDeductions .Where(d => d.FilingStatus == filingStatus) .Where(d => d.StartingAmount <= wages && wages < d.MaximumWage) .Select(d => d) .Single(); if (deduction.Percentage > Decimal.Zero) { return(deduction.Amount - (deduction.Percentage * (wages - deduction.StartingAmount))); } else { return(deduction.Amount); } }
protected virtual Decimal GetStandardDeduction(FilingStatus filingStatus, int personalAllowances, decimal annualWage) { if (filingStatus == FilingStatus.Single) { return(StandardDeductions .Where(d => d.FilingStatus == filingStatus) .Where(d => d.MinAllowance <= personalAllowances && d.MaxAllowance > personalAllowances) .Select(d => d.Amount) .Single()); } else { return (StandardDeductions .Where(d => d.FilingStatus == FilingStatus.Married) .Select(d => d.Amount) .Single()); } }