diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 25dbc8b..4c0966e 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -89,6 +89,8 @@ $routes->post('adminuser/deleteuser', 'AdministratorController::deleteUser'); $routes->get('adminuser/editusergroup/(:num)', 'AdministratorController::editUserGroupView/$1'); $routes->get('adminuser/edituserpermission/(:num)', 'AdministratorController::editUserPermissionView/$1'); $routes->post('adminuser/saveusergroup', 'AdministratorController::saveEditedUserGroup'); +$routes->get('adminuser/fromemplist', 'AdministratorController::newUserFromEmployeeList'); +$routes->get('adminuser/newuserfromemplist/(:any)', 'AdministratorController::createUserFromEmployeeList/$1'); // Timekeeper Routes` @@ -103,5 +105,7 @@ $routes->get('tk/attsumdel/(:any)/(:any)', 'TKController::attendanceSummaryDelet // Regular Employee Routes $routes->get('remp', 'RegularEmployeeController::index'); +$routes->get('remp/payview', 'RegularEmployeeController::payslipView'); +$routes->get('remp/payprint/(:num)', 'RegularEmployeeController::payslipViewPrint/$1'); service('auth')->routes($routes); diff --git a/app/Controllers/AdministratorController.php b/app/Controllers/AdministratorController.php index 63bf681..cbd4e8e 100644 --- a/app/Controllers/AdministratorController.php +++ b/app/Controllers/AdministratorController.php @@ -6,6 +6,14 @@ use App\Controllers\BaseController; use CodeIgniter\HTTP\ResponseInterface; use CodeIgniter\Shield\Entities\User; +// Models +use App\Models\EmployeeModel; + + +// Entities +use App\Entities\Employee; + + class AdministratorController extends BaseController { private function superadminAndAdminOnly() @@ -164,6 +172,42 @@ class AdministratorController extends BaseController return redirect()->to('/adminuser')->with('error', 'User deletion failed.'); } + public function newUserFromEmployeeList() + { + $data['employeeList'] = (new EmployeeModel())->findAll(); + + return view('admin/newuserfromemplist', $data); + } + + public function createUserFromEmployeeList($employeeid) + { + $employee = (new EmployeeModel())->where(['company_issued_id' => $employeeid, 'deleted_at' => NULL])->first(); + $user = new User([ + 'username' => $employee->company_issued_id, + 'email' => $employee->email_address, + 'password' => $employee->company_issued_id, + 'employee_id' => $employee->company_issued_id, + 'display_name' => $employee->first_name." ".$employee->last_name, + ]); + $users = auth()->getProvider(); + + if($users->save($user)) + { + // To get the complete user object with ID, we need to get from the database + $user = $users->findById($users->getInsertID()); + + // Add to default group + $users->addToDefaultGroup($user); + + // Activate user + $user->activate(); + + return redirect()->back()->with('message', 'User created successfully.'); + } + else + return redirect()->back()->with('error', 'User creation failed.'); + } + // Methods called by AJAX and return JSON diff --git a/app/Controllers/RegularEmployeeController.php b/app/Controllers/RegularEmployeeController.php index f087e57..c65f095 100644 --- a/app/Controllers/RegularEmployeeController.php +++ b/app/Controllers/RegularEmployeeController.php @@ -5,10 +5,58 @@ namespace App\Controllers; use App\Controllers\BaseController; use CodeIgniter\HTTP\ResponseInterface; +// Models +use App\Models\EmployeePayTransactionModel; +use App\Models\PayrollTransactionModel; +use App\Models\EmployeeModel; +use App\Models\EmpPayTransIncomeDeductionModel; + +// Entities +use App\Entities\EmployeePayTransaction; +use App\Entities\PayrollTransaction; +use App\Entities\Employee; +use App\Entities\EmpPayTransIncomeDeduction; + class RegularEmployeeController extends BaseController { public function index() { return redirect()->to(base_url('/login')); } + + public function payslipView() + { + $data['paytransid'] = $this->request->getGet('paytransid'); + $data['payTransactions'] = (new PayrollTransactionModel())->orderBy('paytype_id','DESC')->limit(15)->findAll(); + $data['loggedEmployee'] = (new EmployeeModel())->where('company_issued_id', auth()->user()->employee_id)->first(); + + if($data['paytransid'] != null) + { + $data['empPayTrans'] = (new EmployeePayTransactionModel())->where(['paytrans_id' => $data['paytransid'], 'company_issued_id'=>auth()->user()->employee_id])->first(); + + if($data['empPayTrans'] != null) + { + $empPayTransInDedModel = new EmpPayTransIncomeDeductionModel(); + $data['empPayTransIncomes'] = $empPayTransInDedModel->where(["emppaytrans_id"=>$data['empPayTrans']->emppaytrans_id, "is_income"=>true])->findAll(); + $data['empPayTransDeductions'] = $empPayTransInDedModel->where(["emppaytrans_id"=>$data['empPayTrans']->emppaytrans_id, "is_income"=>false])->findAll(); + } + } + + return view('regemp/payslipview', $data); + } + public function payslipViewPrint($paytransid) + { + $data['loggedEmployee'] = (new EmployeeModel())->where('company_issued_id', auth()->user()->employee_id)->first(); + $data['payTransaction'] = (new PayrollTransactionModel())->find($paytransid); + $data['empPayTrans'] = (new EmployeePayTransactionModel())->where(['paytrans_id' => $paytransid, 'company_issued_id'=>auth()->user()->employee_id])->first(); + + if($data['empPayTrans'] != null) + { + $empPayTransInDedModel = new EmpPayTransIncomeDeductionModel(); + $data['empPayTransIncomes'] = $empPayTransInDedModel->where(["emppaytrans_id"=>$data['empPayTrans']->emppaytrans_id, "is_income"=>true])->findAll(); + $data['empPayTransDeductions'] = $empPayTransInDedModel->where(["emppaytrans_id"=>$data['empPayTrans']->emppaytrans_id, "is_income"=>false])->findAll(); + } + + return view('regemp/payslipviewprint', $data); + } } diff --git a/app/Views/admin/newuserfromemplist.php b/app/Views/admin/newuserfromemplist.php new file mode 100644 index 0000000..d6d7436 --- /dev/null +++ b/app/Views/admin/newuserfromemplist.php @@ -0,0 +1,117 @@ + + + += $this->extend('templates/adminlte/generalcontent') ?> + + + += $this->section('title') ?>New User from List= $this->endSection() ?> + + + += $this->section('css') ?> + + + + + + += $this->endSection() ?> + + + += $this->section('bodyclass') ?>sidebar-mini= $this->endSection() ?> + + + += $this->section('containertitle') ?>New User from Employee List= $this->endSection() ?> + + + += $this->section('breadcrumbs') ?> +
Employee ID | +Employee Name | +Action | +
---|---|---|
= $employee->company_issued_id ?> | += $employee->last_name.", ".$employee->first_name ?> | +
+ getProvider()->where('employee_id', $employee->company_issued_id)->first();
+
+ if($searchedEmp == null):
+ ?>
+ Create System Account
+
+ Account Created Already + + |
+
Employee Name: | += $empPayTrans->last_name.", ".$empPayTrans->first_name ?> | +||
Description | +Deduction | +Income | +Total | +
Basic Pay @= number_format($empPayTrans->basic_daily_pay, 2, '.', ',') ?> x = number_format($empPayTrans->actual_work_days, 2, '.', ',') ?> days | ++ | = number_format($empPayTrans->basic_pay, 2, '.', ','); ?> | ++ |
= $empPayTransIncome->payslip_display ?> | ++ | = number_format($empPayTransIncome->amount, 2, '.', ','); ?> | ++ |
Gross Income | ++ | + | = number_format($grossIncome, 2, ".", ",") ?> | +
Income Tax | +-= number_format($empPayTrans->income_tax, 2, '.', ','); ?> | ++ | + |
= $empPayTransDeduction->payslip_display ?> | +-= number_format($empPayTransDeduction->amount, 2, '.', ','); ?> | ++ | + |
Total Deduction | ++ | + | -= number_format($totalDeduction, 2, ".", ",") ?> | +
Net Income | ++ | + | = number_format($empPayTrans->net_pay, 2, ".", ",") ?> | +
No payslip for this cut-off.
+Description | +Deduction | +Income | +Total | +
---|---|---|---|
Basic Pay @= number_format($empPayTrans->basic_daily_pay, 2, '.', ',') ?> x = number_format($empPayTrans->actual_work_days, 2, '.', ',') ?> days | ++ | = number_format($empPayTrans->basic_pay, 2, '.', ',') ?> | ++ |
= $empPayTransIncome->payslip_display ?> | ++ | = number_format($empPayTransIncome->amount, 2, '.', ',') ?> | ++ |
Gross Income | ++ | + | = number_format($grossIncome, 2, ".", ",") ?> | +
= $empPayTransDeduction->payslip_display ?> | +-= number_format($empPayTransDeduction->amount, 2, '.', ','); ?> | ++ | + |
Total Deduction | ++ | + | -= number_format($totalDeduction, 2, ".", ",") ?> | +
+ I have fully read and understood all details concerning my wage for the above stated period. Wherein, I am fully satisfied with the computations made, without prejudice to my behalf. That all data stated above, I hereby acknowledge, to be true and correct. +
+= $empPayTrans->last_name.", ".$empPayTrans->first_name ?>
+____________________________________
++ Signature of Employee +
+Summary of Payslip
+ +Gross Income: | += number_format($grossIncome, 2, ".", ",") ?> | +
---|---|
Total Deduction | +(= number_format($totalDeduction, 2, ".", ",") ?>) | +
Tax: | +(= number_format($empPayTrans->income_tax, 2, ".", ",") ?>) | +
Net Income: | += number_format($empPayTrans->net_pay, 2, ".", ",") ?> | +
View Payslip
diff --git a/app/Views/templates/adminlte/printcontent.php b/app/Views/templates/adminlte/printcontent.php new file mode 100644 index 0000000..4a3e0a1 --- /dev/null +++ b/app/Views/templates/adminlte/printcontent.php @@ -0,0 +1,29 @@ + + + + + +