diff --git a/app/Config/Acl.php b/app/Config/Acl.php index f2f4ecca..b89e53a9 100644 --- a/app/Config/Acl.php +++ b/app/Config/Acl.php @@ -16,6 +16,7 @@ class Acl '#^/getVerifiedPosUserData#' => ['public' => true], '#^/swagger#' => ['roles' => [ADMIN_ROLE_ID]], '#^/fedeploy#' => ['roles' => [ADMIN_ROLE_ID]], + '#^/visitOffBoardCheck#' => ['roles' => [ADMIN_ROLE_ID]], // ===================== PUBLIC DOWNLOADS / FORMS ===================== '#^/download-#' => ['public' => true], diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 061ef3c4..772e4239 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -21,6 +21,7 @@ $routes->get('/chatbot', 'ChatbotControllerNew::chatbot'); $routes->get('/swagger', 'SwaggerController::index', ['filter' => 'authMVC']); $routes->get('/fedeploy', 'DeployController::fedeploy_view', ['filter' => 'authMVC']); $routes->post('/fedeploy', 'DeployController::fedeploy', ['filter' => 'authMVC']); +$routes->get('/visitOffBoardCheck', 'EmployeeController::visitOffBoardCheck'); // Reminder Mail Notification diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 36b7cf7f..1fe2264f 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -480,11 +480,28 @@ class ClientController extends AdminController $this->myLogger->logme('error', 'Client list function called'); $headerData['tab_name'] = 'Clients'; $headerData['page_name'] = 'Clients'; // Both Browser Tab name And Page name are same. - $data['clientList'] = $this->clientModel->getCreatedByUserName(1); // passing client_type + // $data['clientList'] = $this->clientModel->getCreatedByUserName(1); // passing client_type $data['client_rm'] = $this->clientRMModel->getAllClientRM(); $data['lead_data'] = $this->leadsModel->getLeadForInsertClientList(); + + $rawList = $this->clientModel->getCreatedByUserName(1); + $clientRM = $data['client_rm']; + $rmMap = []; + foreach ($clientRM as $rm) { + $rmMap[$rm->client_id][] = $rm->account_manager; + } + $data['clientList'] = (!empty($rawList) && is_array($rawList)) ? array_map(function($item) use ($rmMap) { + $managers = isset($rmMap[$item->id]) ? implode(", ", $rmMap[$item->id]) : "N/A"; + return (object) [ + 'id' => $item->id, + 'client_name' => $item->client_name, + 'short_name' => $item->short_name, + 'account_managers' => $managers + ]; + }, $rawList) : []; // dd($data); + // dd($data['clientList']); echo view('layout/header', $headerData); echo view('client_list', $data); @@ -497,7 +514,22 @@ class ClientController extends AdminController public function typeList($id = null) { try { - $data = $this->clientModel->getCreatedByUserName($id); // passing client_type + $rawList = $this->clientModel->getCreatedByUserName($id); // passing client_type + $clientRM = $this->clientRMModel->getAllClientRM();; + $rmMap = []; + foreach ($clientRM as $rm) { + $rmMap[$rm->client_id][] = $rm->account_manager; + } + $data['clientList'] = (!empty($rawList) && is_array($rawList)) ? array_map(function($item) use ($rmMap) { + $managers = isset($rmMap[$item->id]) ? implode(", ", $rmMap[$item->id]) : "N/A"; + return (object) [ + 'id' => $item->id, + 'client_name' => $item->client_name, + 'short_name' => $item->short_name, + 'account_managers' => $managers + ]; + }, $rawList) : []; + if (empty($data)) { return $this->response ->setJSON(['status' => 'error', 'message' => 'No Records found']) @@ -925,6 +957,29 @@ class ClientController extends AdminController } $editData['client_policy'] = $clientPoliceData; + //Notes : $editData['client_policy'] this on called in client_policy page + $rawList = $editData['client_policy']; + + $editData['client_policy'] = (!empty($rawList) && is_array($rawList)) + ? array_values(array_map(function ($item) { + return (object) [ + 'id' => $item->id, + 'policy_no' => $item->policy_no, + 'policy_type_name' => $item->policy_type_name, + 'policy_start_date' => $item->policy_start_date, + 'policy_end_date' => $item->policy_end_date, + 'insurer_short' => $item->insurer_short, + 'insurer_branch_name' => $item->insurer_branch_name, + 'branch_name' => $item->branch_name ?? ' - ', + 'tpa_short' => $item->tpa_short, + 'policy_type_name' => $item->policy_type_name, + 'policy_type_id' => $item->policy_type_id, + 'lead_cd_amount' => $item->lead_cd_amount, + 'tpa_branch_code' => $item->tpa_branch_code, + 'branch_name' => $item->branch_name ?? ' - ', + 'policy_type_id' => $item->policy_type_id, + ]; + }, $rawList)) : []; $editData['client_policy']['role'] = get_role_id(); $editData['notification'] = $this->notificationModel->select('template_name,enabled')->where('client_id', $id)->findAll(); $editData['placeHolders'] = ['member_name', 'member_mobile', 'nhance_logo', 'tpa_id', 'ecard_download_link', 'client_logo', 'policy_no', 'member_summary', 'app_link', 'post_enrollment_app_link', 'client_name']; diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index f63052f4..5b566530 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -845,6 +845,7 @@ class EmployeeController extends AdminController { $data = []; + $data['status'] = ['pending' => 'Pending', 'inprogress' => 'In-Progress', 'complete' => 'Complete']; if (count($this->request->getGet())) { $filterData = $this->request->getGet(); @@ -854,9 +855,9 @@ class EmployeeController extends AdminController status: $filterData['status'], branch_id: $filterData['branch_id'] ); - $data['getData'] = $filterData; + $data['getData'] = $filterData; // echo "
";
-            // print_r($data); die;
+            
         }
 
         $this->myLogger->logme('error', 'list called');
@@ -4456,6 +4457,92 @@ class EmployeeController extends AdminController
         $this->myLogger->logme('error', "$log_search_context". "END Batch {$batch_no}");
     }
 
+    public function visitOffBoardCheck()
+    {
+         $params =            [
+                                "memberIds" =>  ["adi_1034292323", "EMPENHANCE-M1", "EMPENHANCE-M3"],
+                                // "policyNumber" => "570000/48/2026/290",
+                                "policyNumber" => "09823428509239",
+                                "source" => "NHANCE"
+                              ];
+        print_rr($this->visitOffBoard($params));
+    }
+
+    /**
+     * Executes the Delete Policy API call.
+     *
+     * @param array $params Contains 'memberIds', 'policyNumber', and 'source'.
+     * @return array
+     */
+    public function visitOffBoard(array $params)
+    {
+        // 1. Load credentials from .env
+        $apiUrl = env('WELLNESS_ONBOARD_ENDPOINT_URL');
+        $apiToken = env('WELLNESS_ONBOARD_AUTHORIZATION');
+
+        // 2. Initialize the CI4 CURL service
+        $client =  \Config\Services::curlrequest([
+            'base_uri' => $apiUrl,
+            'timeout'  => 30,
+        ]);
+        
+        // $client = Services::curlrequest([
+        //     'base_uri' => $apiUrl,
+        //     'timeout'  => 30,
+        // ]);
+        $params['source'] = 'NHANCE';
+        try {
+            // Log the start of the request for traceability
+             $this->myLogger->logme('error', 'VISIT_OFFBOARD: ' . ($params['policyNumber'] ?? 'N/A'));
+
+            // 3. Perform the POST request
+            $response = $client->request('POST', '', [
+                'headers' => [
+                    'Authorization' => 'JWT ' . $apiToken,
+                    'Content-Type'  => 'application/json',
+                    'Accept'        => 'application/json',
+                ],
+                'json' => [
+                    'memberIds'    => $params['memberIds'] ?? [],
+                    'policyNumber' => $params['policyNumber'] ?? '',
+                    'source'       => $params['source'] ?? '',
+                ],
+                'http_errors' => false, // Prevents throwing exceptions on 4xx/5xx responses
+            ]);
+
+            $statusCode = $response->getStatusCode();
+            $rawBody    = $response->getBody();
+            $result     = json_decode($rawBody, true);
+
+            // 4. Handle based on HTTP Status Code
+            if ($statusCode >= 200 && $statusCode < 300) {
+                $this->myLogger->logme('error', "VISIT_OFFBOARD API Success (Code $statusCode): Policy deleted.");
+                return [
+                    'status' => true,
+                    'data'   => $result
+                ];
+            }
+
+            // Log API-level errors (4xx or 5xx)
+            $this->myLogger->logme('error', "VISIT_OFFBOARD API Failure (Code $statusCode): " . json_encode($rawBody));
+            return [
+                'status'  => false,
+                'message' => 'The API returned an error response.',
+                'code'    => $statusCode,
+                'details' => $result
+            ];
+
+        } catch (Exception $e) {
+            // 5. Catch network or system exceptions
+            $this->myLogger->logme('error', 'VISIT_OFFBOARD API Exception: ' . $e->getMessage());
+            return [
+                'status'  => false,
+                'message' => 'A critical error occurred while contacting the API.',
+                'error'   => $e->getMessage()
+            ];
+        }
+    }
+
 
     public function insufficientCdBalanceHrMailSend()
     {
diff --git a/app/Controllers/MasterController.php b/app/Controllers/MasterController.php
index 610d6de2..7c46bc9a 100755
--- a/app/Controllers/MasterController.php
+++ b/app/Controllers/MasterController.php
@@ -320,7 +320,6 @@ class MasterController extends AdminController
         $uploadFilePath = ROOTPATH . 'public/uploads/logo/';
         $file_name = file_Upload($this->request->getFile('insurer_logo'), $uploadFilePath);
         $data   = $this->request->getPost();
-        print_r($data);die;
         $sanitized_post_data = sanitizeInputArrayAdvanced($data);
 
         $sanitized_post_data['addition_add_day'] = (!empty($sanitized_post_data['addition_add_day'])) ? 1 : 0;
diff --git a/app/Controllers/TicketController.php b/app/Controllers/TicketController.php
index 59307eac..1dbe0636 100644
--- a/app/Controllers/TicketController.php
+++ b/app/Controllers/TicketController.php
@@ -424,7 +424,6 @@ class TicketController extends BaseController
 
             return $this->loadLayout('ticket_search', $data);
         } else {
-
             $isFromDashboard = $this->request->getPost("is_dashboard");
             log_message('error', 'Is From Dashboard: ' . $isFromDashboard);
 
@@ -446,7 +445,6 @@ class TicketController extends BaseController
                 }
                 $data['claim_status'] = $this->claimStatus->select('id,ticket_type,claim_status')->where('is_active', 1)->findAll();
                 $data['client_list'] = $this->clientModel->select('id,client_name')->where('is_active', 1)->findAll();
-                // dd($data);
                 return $this->loadLayout('ticket_search', $data);
 
             }
diff --git a/app/Views/client_api.php b/app/Views/client_api.php
index e57051f4..7cfd1ae7 100644
--- a/app/Views/client_api.php
+++ b/app/Views/client_api.php
@@ -57,7 +57,7 @@
                         Get Branch Wise Employee Data
                         
                     
-                
+                -->
             
                     
                     
diff --git a/app/Views/client_list.php b/app/Views/client_list.php
index c9b5a2b7..8169b0b0 100755
--- a/app/Views/client_list.php
+++ b/app/Views/client_list.php
@@ -102,7 +102,7 @@ table.dataTable thead th {
                         
                             
                             client_name; ?> ( short_name; ?> ) 
-                            
+                            
+                            
+                                account_managers ?>