public decimal ComputeTax(int payrollId, EmployeeInfo employeeInfo, decimal totalTaxableIncome, FrequencyType taxFrequency) { var taxDeduction = _deductionService.GetByName(TAX_DEDUCTION_NAME); var noOfDependents = employeeInfo.Dependents > MAX_DEPENDENT ? MAX_DEPENDENT : employeeInfo.Dependents; var taxAmount = _taxService.ComputeTax(taxFrequency, noOfDependents, totalTaxableIncome); //Create deductions if (taxAmount > 0) { var employeePayrollDeduction = new EmployeePayrollDeduction { EmployeeId = employeeInfo.EmployeeId, DeductionId = taxDeduction.DeductionId, Amount = taxAmount, DeductionDate = new DateTime(), EmployeePayrollId = payrollId }; _employeePayrollDeductionRepository.Add(employeePayrollDeduction); } return(taxAmount); }
public Decimal GenerateDeductionsByPayroll(EmployeePayroll employeePayroll) { double totalHours = 0; //Get total number of hours /* if (isSemiMonthly) * { * totalHours = Double.Parse(_settingService.GetByKey(SEMIMONTHLY_TOTAL_HOURS)); * } * else * { * totalHours = Double.Parse(_settingService.GetByKey(MONTHLY_TOTAL_HOURS)); * }*/ //Get employees //var employeeList = _employeeInfoService.GetAllActive(); var employee = _employeeInfoService.GetByEmployeeId(employeePayroll.EmployeeId); var deductionList = _deductionService.GetAllCustomizable(); decimal totalDeductions = 0; //Every deductions check for available deduction for employee foreach (Deduction deduction in deductionList) { var employeeDeduction = _employeeDeductionService .GetByDeductionAndEmployee(deduction.DeductionId, employee.EmployeeId); if (employeeDeduction != null) { //Create a deduction entry EmployeePayrollDeduction employeePayrollDeduction = new EmployeePayrollDeduction { EmployeeId = employee.EmployeeId, DeductionId = deduction.DeductionId, Amount = employeeDeduction.Amount, DeductionDate = DateTime.Now, EmployeePayrollId = employeePayroll.PayrollId }; _employeePayrollDeductionRepository.Add(employeePayrollDeduction); totalDeductions += employeeDeduction.Amount; } } return(totalDeductions); }
public EmployeePayrollDeduction Add(EmployeePayrollDeduction employeePayrollDeduction) { return(_employeePayrollDeductionRepository.Add(employeePayrollDeduction)); }