示例#1
0
        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)));
 }