public int GenratePayslip(CreatePayslipDTO payVM) { var emp = _context.Employees.Include(e => e.EmployeeContract).Where(e => e.employeeId == payVM.EmpId).FirstOrDefault(); if (payVM.isHours == true) { var payslip = new Payslip() { EmpId = emp.employeeId, TotalHours = payVM.TotalHours, ContractedHours = emp.EmployeeContract.ContractHours, OvertimeHours = (payVM.TotalHours - emp.EmployeeContract.ContractHours), ContractedEarning = pay.GetContractedEarning(emp.EmployeeContract.ContractHours, emp.EmployeeContract.PerHourPay, payVM.TotalHours), OvertimeEarning = pay.GetOvertimeEarning(payVM.TotalHours, emp.EmployeeContract.ContractHours, emp.EmployeeContract.OvertimeRate, emp.EmployeeContract.PerHourPay), TotalEarning = _totalAmountEarned = pay.GetTotalEarning(), TotalDeduction = _totalAmountDeduted = pay.GetTotalDeduction(emp.EmployeeContract.Union, payVM.TotalHours, _totalAmountEarned, emp.EmployeeContract.ContractHours, emp.EmployeeContract.KiwiSaver), InHandPay = _totalAmountEarned - _totalAmountDeduted, CreatedAtstr = DateTime.Now.ToString("dddd, dd MMMM yyyy") }; _context.Payslips.Add(payslip); } else { var payslip = new Payslip() { EmpId = emp.employeeId, TotalMonthly = payVM.MonthlyPay, TotalEarning = payVM.MonthlyPay, TotalDeduction = _totalAmountDeduted = pay.GetMonthlyDeduction(emp.EmployeeContract.Union, _totalAmountEarned, emp.EmployeeContract.KiwiSaver), InHandPay = payVM.MonthlyPay - _totalAmountDeduted, CreatedAtstr = DateTime.Now.ToString("dddd, dd MMMM yyyy") }; _context.Payslips.Add(payslip); } _context.SaveChanges(); var emailObj = new EmailModel() { toemail = emp.Email, subject = $"Payslip for {emp.CreatedAtstr}", message = "Your payslip is created.", isHtml = false, }; _sendemail.SendEmailHelper(emailObj); return(0); }
public IActionResult CreatePS(CreatePayslipDTO payslipVM) { return(Ok(_payslip.GenratePayslip(payslipVM))); }