private void CalculateMonthlyPayrollDeductions(int monthlyPayrollDetailID, EmployeeDTO employeeDTO, List <DeductionDTO> deductionDTOs) { foreach (DeductionDTO deductionDTO in deductionDTOs) { DeductionDetailDTO deductionDetailDTO = deductionDetailRepository .FindBySchoolAndDeduction(employeeDTO.SchoolID, deductionDTO.ID); int tempValue = 0; string[] strList = deductionDetailDTO.AllowanceList.Split(';', StringSplitOptions.RemoveEmptyEntries); foreach (string str in strList) { MonthlyPayrollAllowanceDTO allowanceDTO = monthlyPayrollAllowanceRepository.Find(int.Parse(str)); tempValue += allowanceDTO.Amount; } strList = deductionDetailDTO.AdditionalAllowanceList.Split(';', StringSplitOptions.RemoveEmptyEntries); foreach (string str in strList) { MonthlyPayrollAdditionalAllowanceDTO additionalAllowanceDTO = monthlyPayrollAdditionalAllowanceRepository.Find(int.Parse(str)); tempValue += additionalAllowanceDTO.Amount; } int allowanceAmount = tempValue * deductionDetailDTO.PercentageValue; int amount = (allowanceAmount < deductionDetailDTO.MinimumValue) ? deductionDetailDTO.MinimumValue : allowanceAmount; SaveMonthlyPayrollDeduction(new MonthlyDeductionDetail { MonthlyPayrollDetailID = monthlyPayrollDetailID, DeductionID = deductionDetailDTO.DeductionID, Amount = amount }); } }
private MonthlyPayrollAdditionalAllowanceDTO SaveMonthlyPayrollAdditionalAllowance(MonthlyAdditionalAllowanceDetail additionalAllowanceDetail) { MonthlyPayrollAdditionalAllowanceDTO existingMonthlyPayrollAdditionalAllowanceDTO = monthlyPayrollAdditionalAllowanceRepository.FindByMonthlyPayrollDetailAndAdditionalAllowance (additionalAllowanceDetail.MonthlyPayrollDetailID, additionalAllowanceDetail.AdditionalAllowanceID); MonthlyPayrollAdditionalAllowanceDTO monthlyPayrollAdditionalAllowanceDTO = new MonthlyPayrollAdditionalAllowanceDTO { ID = existingMonthlyPayrollAdditionalAllowanceDTO != null ? existingMonthlyPayrollAdditionalAllowanceDTO.ID : 0, MonthlyPayrollDetailID = additionalAllowanceDetail.MonthlyPayrollDetailID, AdditionalAllowanceID = additionalAllowanceDetail.AdditionalAllowanceID, Amount = additionalAllowanceDetail.Amount }; if (existingMonthlyPayrollAdditionalAllowanceDTO != null) { return(monthlyPayrollAdditionalAllowanceRepository.Update(monthlyPayrollAdditionalAllowanceDTO)); } else { return(monthlyPayrollAdditionalAllowanceRepository.Insert(monthlyPayrollAdditionalAllowanceDTO)); } }