Пример #1
0
        public void Can_Get_Income_Tax()
        {
            var table = new IncomeTaxTable();

            table.AddNewEntry(0, 18200, 0);

            var incomeTax = table.GetIncomeTax(18200);

            Assert.AreEqual(0, incomeTax);
        }
Пример #2
0
        public void Can_Get_Income_Tax_With_Plus()
        {
            var table = new IncomeTaxTable();

            var plusInfo = new PlusInfo {
                PlusValue = 0.325, PlusOver = 37000
            };

            table.AddNewEntry(37001, 80000, 3572, plusInfo);

            var incomeTax = table.GetIncomeTax(60050);

            Assert.AreEqual(922, incomeTax);
        }
Пример #3
0
        public MonthlyPayslipResult Calculate(Employee employee)
        {
            var result = new MonthlyPayslipResult
            {
                EmployeeFullName  = employee.FirstName + " " + employee.LastName,
                EmployeePayPeriod = employee.PayPeriod,
                GrossIncome       = (int)Math.Floor((double)employee.Salary / 12),
                IncomeTax         = _taxTable.GetIncomeTax(employee.Salary)
            };

            result.NetIncome = result.GrossIncome - result.IncomeTax;
            result.Super     = (int)Math.Floor(result.GrossIncome * (employee.SuperRate * 0.01));

            return(result);
        }