public PartialViewResult ViewEmployeeAdjustmentDetails(int id, string date) { var dates = date.Split('-'); var payrollStartDate = dates[0].DeserializeDate(); var payrollEndDate = dates[1].DeserializeDate(); var lastPayrollDate = _employeePayrollService.GetNextPayrollStartDate(); ViewBag.EditAdjustment = payrollEndDate.AddDays(1) >= lastPayrollDate ? true : false; ViewBag.Date = date; var adjustments = _employeeAdjustmentService.GetEmployeeAdjustments(id, payrollStartDate, payrollEndDate); return(PartialView("_ViewAdjustmentModalContent", adjustments)); }
//TODO refactor avoid looping public void GenerateAdjustments(IList <EmployeePayroll> employeePayrolls) { //Adjustments computation foreach (EmployeePayroll payroll in employeePayrolls) { //Get all employee adjustments var adjustments = _employeeAdjustmentService.GetEmployeeAdjustments(payroll.EmployeeId, payroll.CutOffStartDate, payroll.CutOffEndDate).ToList(); if (adjustments != null && adjustments.Count() > 0) { decimal positiveAdjustments = 0; decimal negativeAdjustments = 0; foreach (EmployeeAdjustment adjustment in adjustments) { if (adjustment.Adjustment.AdjustmentType == AdjustmentType.Add) { positiveAdjustments += adjustment.Amount; } else { negativeAdjustments += adjustment.Amount; } _employeeAdjustmentService.Update(adjustment); adjustment.PayrollId = payroll.PayrollId; } Update(payroll); //Update payroll for total deductions and total grosss payroll.TotalDeduction += Math.Abs(negativeAdjustments); payroll.TotalAdjustment = positiveAdjustments - negativeAdjustments; payroll.TaxableIncome += payroll.TotalAdjustment; payroll.TotalGross += positiveAdjustments; payroll.TotalNet = payroll.TotalGross - payroll.TotalDeduction; } } try { _unitOfWork.Commit(); } catch (Exception e) { //Print error } }