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 @@ + + + +extend('templates/adminlte/generalcontent') ?> + + + +section('title') ?>New User from ListendSection() ?> + + + +section('css') ?> + + + + + + +endSection() ?> + + + +section('bodyclass') ?>sidebar-miniendSection() ?> + + + +section('containertitle') ?>New User from Employee ListendSection() ?> + + + +section('breadcrumbs') ?> + + +endSection() ?> + + + +section('main') ?> + + +
+
+
+
+

List of Users

+
+
+ + + + + + + + + + + + + + + + + +
Employee IDEmployee NameAction
company_issued_id ?>last_name.", ".$employee->first_name ?> + getProvider()->where('employee_id', $employee->company_issued_id)->first(); + + if($searchedEmp == null): + ?> +    Create System Account + +

Account Created Already

+ +
+ +
+
+
+
+ +endSection() ?> + + + + +section('js') ?> + + + + + + + + + + +endSection() ?> + + \ No newline at end of file diff --git a/app/Views/admin/usermaintenance.php b/app/Views/admin/usermaintenance.php index 609f5f5..5fc3f70 100644 --- a/app/Views/admin/usermaintenance.php +++ b/app/Views/admin/usermaintenance.php @@ -202,6 +202,7 @@ diff --git a/app/Views/regemp/payslipview.php b/app/Views/regemp/payslipview.php new file mode 100644 index 0000000..26f5513 --- /dev/null +++ b/app/Views/regemp/payslipview.php @@ -0,0 +1,232 @@ + +extend('templates/adminlte/generalcontent') ?> + + + +section('title') ?>Payslip ViewendSection() ?> + + + +section('css') ?> + + + + + +endSection() ?> + + + +section('bodyclass') ?>sidebar-miniendSection() ?> + + + +section('containertitle') ?>Payslip ViewendSection() ?> + + + +section('breadcrumbs') ?> + +endSection() ?> + + + +section('main') ?> + + + + + +
+
+
+
+

Select Payroll Period

+
+
+
+
+ +
+ + + + +
+
+
+
+
+
+
+ + + +
+
+
+
+

Payslip View

+
+
+ + + + + + + + + + + + + + + + + + + + basic_pay; + $totalDeduction = 0; + foreach($empPayTransIncomes as $empPayTransIncome): + ?> + + + + + + + amount; + endforeach; + ?> + + + + + + + + + + + + + + + + + + + + + + + amount; + endforeach; + ?> + + + + + + + + + + + + + +
Employee Name:last_name.", ".$empPayTrans->first_name ?>
DescriptionDeductionIncomeTotal
      Basic Pay @basic_daily_pay, 2, '.', ',') ?> x actual_work_days, 2, '.', ',') ?> days basic_pay, 2, '.', ','); ?> 
      payslip_display ?> amount, 2, '.', ','); ?> 
Gross Income  
      Income Tax-income_tax, 2, '.', ','); ?>  
      payslip_display ?>-amount, 2, '.', ','); ?>  
Total Deduction  -
Net Income  net_pay, 2, ".", ",") ?>
+
+ +
+
+
+ +
+
+
+
+

Payslip View

+
+
+

No payslip for this cut-off.

+
+
+
+
+ + + +endSection() ?> + + + + +section('js') ?> + + + + + + +endSection() ?> + + \ No newline at end of file diff --git a/app/Views/regemp/payslipviewprint.php b/app/Views/regemp/payslipviewprint.php new file mode 100644 index 0000000..368104f --- /dev/null +++ b/app/Views/regemp/payslipviewprint.php @@ -0,0 +1,151 @@ + +extend('templates/adminlte/printcontent') ?> + + + +section('title') ?>Payslip PrintingendSection() ?> + + + +section('main') ?> + + +
+
+ +
+ +
+ +
+
+ Payslip of last_name.", ".$empPayTrans->first_name ?> +
+ +
+ Payroll Period
+ payroll_from))." to ".date("F d, Y", strtotime($payTransaction->payroll_to)) ?>
+
+ +
+ Payroll Date
+ payschedule_id == 1) ? date("F 7, Y", strtotime($payTransaction->payroll_to)) : date("F t, Y", strtotime($payTransaction->payroll_to)) ?> +
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + + basic_pay; + $totalDeduction = 0; + foreach($empPayTransIncomes as $empPayTransIncome): + ?> + + + + + + + amount; + endforeach; + ?> + + + + + + + + + + + + + + + + amount; + endforeach; + ?> + + + + + + + + +
DescriptionDeductionIncomeTotal
      Basic Pay @basic_daily_pay, 2, '.', ',') ?> x actual_work_days, 2, '.', ',') ?> days basic_pay, 2, '.', ',') ?> 
      payslip_display ?> amount, 2, '.', ',') ?> 
Gross Income  
      payslip_display ?>-amount, 2, '.', ','); ?>  
Total Deduction  -
+
+ +
+ + +
+ +
+

+ 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. +

+

last_name.", ".$empPayTrans->first_name ?>

+

____________________________________

+

+ Signature of Employee +

+
+ +
+

Summary of Payslip

+ +
+ + + + + + + + + + + + + + + + + +
Gross Income:
Total Deduction()
Tax:(income_tax, 2, ".", ",") ?>)
Net Income:net_pay, 2, ".", ",") ?>
+
+
+ +
+ + +endSection() ?> + + diff --git a/app/Views/templates/adminlte/generalcontent.php b/app/Views/templates/adminlte/generalcontent.php index 779ef9c..89418d5 100644 --- a/app/Views/templates/adminlte/generalcontent.php +++ b/app/Views/templates/adminlte/generalcontent.php @@ -166,26 +166,26 @@