protected virtual Decimal GetPersonalAllowance(FilingStatus filingStatus, int personalAllowances, decimal annualWage)
 {
     return(PersonalAllowances
            .Where(p => p.FilingStatus == filingStatus)
            .Where(p => p.MinWage <= annualWage && p.MaxWage > annualWage)
            .Select(x => x.Amount)
            .Single() * personalAllowances);
 }
        internal virtual Decimal GetPersonalAllowance(FilingStatus filingStatus)
        {
            // Note: A married couple filing joint with one spouse working and who only claims 1 allowance should use column (6) (married filing separate) for their personal allowance


            var allowance_value =
                PersonalAllowances
                .Where(d => d.FilingStatus == filingStatus)
                .Select(d => d.Amount)
                .Single();

            return(allowance_value);
        }
        internal virtual Decimal GetPersonalAllowance(FilingStatus filingStatus, int personalAllowances = 1)
        {
            // Note: A married couple filing joint with one spouse working and who only claims 1 allowance should use column (6) (married filing separate) for their personal allowance

            if (personalAllowances == 1 && FilingStatus.MarriedWithOneIncome == filingStatus)
            {
                filingStatus = FilingStatus.MarriedFilingSeparate;
            }

            var allowance_value =
                PersonalAllowances
                .Where(d => d.FilingStatus == filingStatus)
                .Select(d => d.Amount)
                .Single();

            return(allowance_value * personalAllowances);
        }
Beispiel #4
0
        protected virtual Decimal GetPersonalAllowance(FilingStatus filingStatus, int personalAllowances)
        {
            var allowance_value =
                PersonalAllowances
                .Where(d => d.FilingStatus == filingStatus)
                .Single();

            if (filingStatus == FilingStatus.MarriedWithOneIncome)
            {
                if (personalAllowances == 1)
                {
                    return(allowance_value.Amount);
                }
                else if (personalAllowances == 2)
                {
                    return(allowance_value.Amount * 2);
                }
                else if (personalAllowances >= 3)
                {
                    return((allowance_value.Amount * 2) + (allowance_value.AdditionalAmount * (personalAllowances - 2)));
                }
                else
                {
                    return(0);
                }
            }
            else
            {
                if (personalAllowances == 1)
                {
                    return(allowance_value.Amount);
                }
                else if (personalAllowances >= 2)
                {
                    return(allowance_value.Amount + (allowance_value.AdditionalAmount * (personalAllowances - 1)));
                }
                else
                {
                    return(0);
                }
            }
        }