diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 007d80c1..36bb3868 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -211,6 +211,9 @@ $routes->group("/util", ["filter" => "authMVC"], function($routes){ $routes->get("get-emp-endorsement/(:any)", "EmployeeController::getEmpEndoresmentEntry/$1"); $routes->post("import-export", "EmployeeController::importExport"); $routes->get("featch-client-policy-list/(:any)", "ClientController::getClientPolicyList/$1"); + $routes->get("download-file-list/(:any)", "EmployeeController::downloadFileList/$1"); + $routes->get("featch-emp-list", "EmployeeController::featchEmpList/$1"); + $routes->get("view-success-emp-list", "EmployeeController::viewUploadedEmployeeList/$1"); }); diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index 5aa1b072..28566852 100644 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -217,7 +217,7 @@ class EmployeeController extends AdminController $data['insurer_or_tpa'] = ['insurer' => 'Insurer','tpa' =>'TPA']; $data['fileList'] = $this->fileModel - ->select(['files.*','up.emp_code','up.first_name','pm.name as policy_name','c.short_name']) + ->select(['files.*','up.emp_code','up.first_name','pm.name as policy_name','c.short_name', 'cp.id as client_policy_id']) ->join('user_profiles up','files.created_by = up.id') ->join('client_policy cp','files.policy_id = cp.id','left') ->join('policies pm','cp.policy_id = pm.id','left') @@ -548,5 +548,90 @@ class EmployeeController extends AdminController } } + + public function downloadFileList($fileName = null) + { + // $actionType = $this->request->getGet(); + try { + $filePath = WRITEPATH . '/uploads/excel/' . $fileName; + + // Check if the file exists + if (file_exists($filePath)) { + // Set the appropriate MIME type + $mimeType = mime_content_type($filePath); + + // Send the file to the client for download + return $this->response->download($filePath, null, $mimeType); + } else { + + throw new \CodeIgniter\Exceptions\PageNotFoundException(); + } + } catch (\Exception $e) { + // Handle any exceptions + $errorMessage = $e->getMessage(); + $this->myLogger->logme('error', $errorMessage); + // You can return an error response here + echo $errorMessage; + } + + } + + + public function featchEmpList() + { + $client_id = $this->request->getGet('client_id'); + $policy_id = $this->request->getGet('policy_id'); + + $emp_data['employees'] = $this->employeePolicyModel->getEmployeePolicyForFileList($client_id, $policy_id); + $html = view('employee_data_list', $emp_data); + + return $this->respond(['dataStatus' => true,'code' => 200,'data' => $html], 200); + + } + + + public function viewUploadedEmployeeList() + { + $file_id = $this->request->getGet('file_id'); + // $emp_data['employees'] = $this->employeePolicyModel->getViewEmpSuccessList($file_id); + // $html = view('view_file_upload_emp_list', $emp_data); + $file_name = $this->fileModel + ->select(['files.*','up.emp_code','up.first_name','pm.name as policy_name','c.short_name', 'cp.id as client_policy_id']) + ->join('user_profiles up','files.created_by = up.id') + ->join('client_policy cp','files.policy_id = cp.id','left') + ->join('policies pm','cp.policy_id = pm.id','left') + ->join('clients c','files.client_id = c.id and files.client_id = cp.client_id','left') + ->where('files.id', $file_id)->first(); + + try { + + $filePath = WRITEPATH . '/uploads/excel/' . $file_name['file_name']; + + if (file_exists($filePath)) { + $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath); + $sheet = $spreadsheet->getActiveSheet(); + + $highestRowAndColumn = $sheet->getHighestRowAndColumn(); + $excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']); + $emp_data['thead'] = $excel_data[0]; + unset($excel_data[0]); + $emp_data['tbody'] = $excel_data; + + $html = view('view_file_upload_emp_list', $emp_data); + } else { + + $html = '
No Data Found
'; + } + + return $this->respond(['dataStatus' => true, 'code' => 200, 'data' => $html, 'file_data' => $file_name], 200); + + } catch (\Exception $e) { + // Handle exception + $errorMessage = 'Error occurred: ' . $e->getMessage(); + $this->myLogger->logme('error', $errorMessage); + $html = '
No Data Found
'; + return $this->respond(['dataStatus' => false, 'code' => 500, 'data' => $html, 'file_data' => $file_name], 500); + } + } } \ No newline at end of file diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php index 3cdd2177..a86eaeb8 100644 --- a/app/Models/EmployeePolicyModel.php +++ b/app/Models/EmployeePolicyModel.php @@ -643,4 +643,40 @@ class EmployeePolicyModel extends Model //---------------------------------------------------------------------------------------------- + + public function getEmployeePolicyForFileList($client_id, $policy_id) + { + $result = $this->select(['employee_polices.*','pm.name as policy_name','im.short_name as insurer_short_name','ib.branch_name as insurer_branch_name','ib.branch_code as insurer_branch_code','tpam.name as tpa_name','tpam.short_name as tpa_short_name','tpab.branch_code as tpa_branch_code','cm.client_name','cm.short_name as client_short_name','emp.relationship','emp.relationship_code','emp.change_event','emp.emp_code','emp.name','emp.email_corporate','emp.dob','emp.gender','emp.emp_status','emp.is_active as emp_is_active','emp.mobile as mobile']) + ->join('employees emp', 'employee_polices.employee_id = emp.id') + ->join('client_policy cp', 'employee_polices.client_policy_id = cp.id') //cp - client policy + ->join('policies pm', 'cp.policy_id = pm.id') //pm - policy master + ->join('insurers im', 'cp.insurer_id = im.id') //im - insurar master + ->join('insurer_branch ib', 'cp.insurer_branch_id = ib.id') //ib - insurar branch + ->join('tpa tpam', 'cp.tpa_id = tpam.id') //tpam - tpa master + ->join('tpa_branch tpab', 'cp.tpa_branch_id = tpab.id') //tpab - tpa brach + ->join('clients cm', 'cp.client_id = cm.id') //cm - client master + ->where('emp.client_id',$client_id) + ->where('employee_polices.client_policy_id',$policy_id); + + $result->whereIn('employee_polices.status', ['draft', 'enrolled']); + $result = $result->findAll(); + return ($result); + } + + + public function getViewEmpSuccessList($file_id){ + return $this->db->table('employees emp') + ->select(['employee_polices.*','pm.name as policy_name','im.short_name as insurer_short_name','ib.branch_name as insurer_branch_name','ib.branch_code as insurer_branch_code','tpam.name as tpa_name','tpam.short_name as tpa_short_name','tpab.branch_code as tpa_branch_code','cm.client_name','cm.short_name as client_short_name','emp.relationship','emp.relationship_code','emp.change_event','emp.emp_code','emp.name','emp.email_corporate','emp.dob','emp.gender','emp.emp_status','emp.is_active as emp_is_active','emp.mobile as mobile']) + ->join('employee_polices', 'employee_polices.employee_id = emp.id') + ->join('client_policy cp', 'employee_polices.client_policy_id = cp.id') //cp - client policy + ->join('policies pm', 'cp.policy_id = pm.id') //pm - policy master + ->join('insurers im', 'cp.insurer_id = im.id') //im - insurar master + ->join('insurer_branch ib', 'cp.insurer_branch_id = ib.id') //ib - insurar branch + ->join('tpa tpam', 'cp.tpa_id = tpam.id') //tpam - tpa master + ->join('tpa_branch tpab', 'cp.tpa_branch_id = tpab.id') //tpab - tpa brach + ->join('clients cm', 'cp.client_id = cm.id') //cm - client master + ->where('emp.file_id',$file_id) + ->whereIn('employee_polices.status', ['draft', 'enrolled']) + ->get()->getResultArray(); + } } \ No newline at end of file diff --git a/app/Views/employee_data_list.php b/app/Views/employee_data_list.php new file mode 100644 index 00000000..a1efb23c --- /dev/null +++ b/app/Views/employee_data_list.php @@ -0,0 +1,85 @@ +
+
+
+
+
+
+

Employees

+
+ +
+ + + + + + + + + + + + + + + + + + $employee) { ?> + + + + + + + + + + + + + + + + +
SNOName/codePolicy nameInsurer nameTPA IDUHID IDPolicy statusPremiumAction
( ) + ' . $employee['status'] . ''; + } elseif ($employee['status'] == 'active') { + echo '' . $employee['status'] . ''; + } elseif ($employee['status'] == 'inactive') { + echo '' . $employee['status'] . ''; + }elseif ($employee['status'] == 'expired') { + echo '' . $employee['status'] . ''; + }else{ + echo $employee['status']; + } + ?> + + +
+
+
+
+
\ No newline at end of file diff --git a/app/Views/employee_list.php b/app/Views/employee_list.php index 02b28c13..4b1e6633 100644 --- a/app/Views/employee_list.php +++ b/app/Views/employee_list.php @@ -68,89 +68,9 @@ table.dataTable tbody td { -
-
-
-
-
-
-

Employees

-
+ -
- - - - - - - - - - - - - - - - - $employee) { ?> - - - - - - - - - - - - - - - - -
SNOName/codePolicy nameInsurer nameTPA IDUHID IDPolicy statusPremiumAction
( ) - ' . $employee['status'] . ''; - } elseif ($employee['status'] == 'active') { - echo '' . $employee['status'] . ''; - } elseif ($employee['status'] == 'inactive') { - echo '' . $employee['status'] . ''; - }elseif ($employee['status'] == 'expired') { - echo '' . $employee['status'] . ''; - } - ?> - - -
-
-
-
-
diff --git a/app/Views/employee_upload.php b/app/Views/employee_upload.php index f068f4cc..4a06336f 100644 --- a/app/Views/employee_upload.php +++ b/app/Views/employee_upload.php @@ -20,7 +20,7 @@
-
+ @@ -31,14 +31,14 @@


@@ -85,6 +85,15 @@
+
OR
+ +
+ Featch Enrolled Data +
+ +
@@ -107,6 +116,25 @@ + + +