Example #1
0
        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));
        }
Example #2
0
        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));
        }