public EmployeeSalaryInformation CalculateEmployeeSalary(EmployeeInformation inEmployeeInformation) { EmployeeSalaryInformation employeeSalaryInfo = CalculateEmployeeSalary(inEmployeeInformation.Employee); foreach (DependentDTO dependent in inEmployeeInformation.Dependents) { DependentBenefitCostInformation dependentsCostInfo = CalculateDependentBenefitCost(dependent); employeeSalaryInfo.SalaryAfterBenefitDeduction -= dependentsCostInfo.CostOfBenefit; employeeSalaryInfo.dependentsBenifitCostInfo.Add(dependentsCostInfo); } return(employeeSalaryInfo); }
/// <summary> /// clalulates cost of benefit for each dependent /// </summary> /// <param name="dependent"></param> /// <returns></returns> private DependentBenefitCostInformation CalculateDependentBenefitCost(DependentDTO dependent) { DependentBenefitCostInformation dependentsInfo = new DependentBenefitCostInformation(); dependentsInfo.FullName = string.Concat(dependent.FirstName + " " + dependent.LastName); dependentsInfo.CostOfBenefit = Utility.RoundUpDecimal((decimal)(dependent.CostOfBenefitAnnual / 26)); if (DoesQualifyForDiscount(dependent.FirstName)) { dependentsInfo.CostOfBenefit = ApplyDiscountPerPayCheck((decimal)dependent.PercentageOfDiscount, (decimal)dependent.CostOfBenefitAnnual); } return(dependentsInfo); }