public async Task <IActionResult> Payroll(int id) { var model = new EmployeePayrollViewModel(); var employee = await _getEmployeeUseCase.Execute(id); if (employee == null) { return(NotFound()); } model.employee = employee; model.Id = employee.Id; return(View(model)); }
public async Task <IActionResult> Payroll(EmployeePayrollViewModel viewModel) { var model = new EmployeePayrollViewModel(); var employee = await _getEmployeeUseCase.Execute(viewModel.Id); if (employee == null) { return(NotFound()); } model.employee = employee; model.Id = employee.Id; model.SalaryAmount = employee.CalculatePayrol(viewModel.Absent, viewModel.WorkingDays); return(View(model)); }
public ActionResult Edit(Int32 id) { PayrollDetailsViewModel lPayroll = new PayrollDetailsViewModel(); lPayroll.EmployeePayrolls = new List <EmployeePayrollViewModel>(); using (ApplicationDbContext db = new ApplicationDbContext()) { Payroll lFindPayroll = db.Payroll.Find(id); if (lFindPayroll != null) { List <PayrollDetails> lFindDetails = lFindPayroll.Details.ToList(); lFindDetails.ForEach(x => { EmployeePayrollViewModel lEmployeeDetails = new EmployeePayrollViewModel(); lEmployeeDetails.EmployeeId = x.EmployeeId; lEmployeeDetails.Name = $"{x.Employee.LastName}, {x.Employee.FirstName}"; lEmployeeDetails.PayRateType = x.Employee.RateType.ToString(); lEmployeeDetails.PayRate = x.Employee.Rate; lEmployeeDetails.StandardHours = x.HoursStandardWorked; lEmployeeDetails.OvertimeHours = x.HoursOvertimeWorked; lEmployeeDetails.Deductions = x.Deductions; if (x.Employee.RateType == PayRateType.Hourly) { lEmployeeDetails.GrossPay = ((x.HoursStandardWorked * x.Employee.Rate) + (1.5M * x.Employee.Rate * x.HoursOvertimeWorked)) - x.Deductions; } else { lEmployeeDetails.GrossPay = ((x.Employee.Rate / 2080) * 40) - x.Deductions; } lEmployeeDetails.NetPay = lEmployeeDetails.GrossPay - lEmployeeDetails.Deductions; lPayroll.EmployeePayrolls.Add(lEmployeeDetails); }); } } return(View("EditPayroll", lPayroll)); }