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 4bf4b954..b31bbbfa 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 47f5b5fb..2c79d18b 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']; @@ -6633,7 +6688,8 @@ class ClientController extends AdminController $policyTransactionController = new PolicyTransactionController(); // $res = $policyTransactionController->validateInsurerStatement(['file_id' => '281']); // $res = $policyTransactionController->updateInsurerStatement(['file_id' => '62']); - // dd('-----', $res); + // $res = $policyTransactionController->bdsDumpExcelFileFormatValidation(['file_id' => '73']); + // dd($res); // ----------EMP DATA SERVICE CONTROLLER-------------------------------------------------------------------------------- diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php index b662d8b1..6f3ab21d 100755 --- a/app/Controllers/EmployeeController.php +++ b/app/Controllers/EmployeeController.php @@ -841,6 +841,7 @@ class EmployeeController extends AdminController { $data = []; + $data['status'] = ['pending' => 'Pending', 'inprogress' => 'In-Progress', 'complete' => 'Complete']; if (count($this->request->getGet())) { $filterData = $this->request->getGet(); @@ -850,9 +851,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');
@@ -4452,6 +4453,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()
+            ];
+        }
+    }
+
 
 
 }
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/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php
index 723a171e..dc57d03f 100644
--- a/app/Controllers/PolicyTransactionController.php
+++ b/app/Controllers/PolicyTransactionController.php
@@ -309,7 +309,7 @@
                     'format' => null,
                     'allowed_values' => null,
                     'custom' => 'check_agent_exist',
-                    'params' => ['row', 'agent_data']
+                    'params' => ['row', 'pos_data']
                 ],
 
                 'base_premium' => [
@@ -4944,6 +4944,7 @@
             $pt_data = $this->policyTransactionModel->where('is_active', 1)->findAll();
             $user_data = $this->userModel->where('is_active', 1)->findAll();
             $agent_data = db_connect()->table('partner_agent')->where('is_active', 1)->get()->getResultArray();
+            $pos_data = db_connect()->table('partner_pos')->where('is_active', 1)->get()->getResultArray();
             $rto_master = db_connect()->table('rto_master')->where('is_active', 1)->get()->getResultArray();
             $vehicle_type = db_connect()->table('vehicle_type')->where('is_active', 1)->get()->getResultArray();
             $nhance_branch_data = db_connect()->table('nhance_branch')->where('is_active', 1)->get()->getResultArray();
@@ -5109,6 +5110,7 @@
             $vehicle_data = $this->vehicleModel->where('is_active', 1)->findAll();
             $user_data = $this->userModel->where('is_active', 1)->findAll();
             $agent_data = db_connect()->table('partner_agent')->where('is_active', 1)->get()->getResultArray();
+            $pos_data = db_connect()->table('partner_pos')->where('is_active', 1)->get()->getResultArray();
             $rto_master = db_connect()->table('rto_master')->where('is_active', 1)->get()->getResultArray();
             $vehicle_type_data = db_connect()->table('vehicle_type')->where('is_active', 1)->get()->getResultArray();
             $nhance_branch_data = db_connect()->table('nhance_branch')->where('is_active', 1)->get()->getResultArray();
@@ -5191,7 +5193,8 @@
                     $current_insurer_branch_data = check_insurer_branch_exist($row, $insurer_branch_data, $current_insurer_data)['branch'] ?? null;
 
                     $current_nhance_branch = check_nhance_branch($row, $nhance_branch_data)['branch'] ?? null;
-                    $current_agent_data = check_agent_exist($row, $agent_data)['agent'] ?? null;
+                    // $current_agent_data = check_agent_exist($row, $agent_data)['agent'] ?? null;
+                    $current_agent_data = check_agent_exist($row, $pos_data)['agent'] ?? null;
 
                     $salse = check_user_exist($row, 13, $user_data)['user'] ?? null;
                     $service = check_user_exist($row, 14, $user_data)['user'] ?? null;
@@ -5229,8 +5232,9 @@
                         'salse_person_manager_id'   => $salse['rm_id'] ?? null,
                         'service_person_manager_id' => $service['rm_id'] ?? null,
                         'service_person_branch_id'  => $service['nhance_branch_id'] ?? null,
-                        'agent_id'              => $current_agent_data['id'] ?? null,
-                        'agent_code'            => $current_agent_data['agent_code'] ?? null,
+                        // 'agent_id'              => $current_agent_data['id'] ?? null,
+                        // 'agent_code'            => $current_agent_data['agent_code'] ?? null,
+                        'pos_id'                => $current_agent_data['id'] ?? null,
                         'file_id'               => $params['file_id'],
                         'endorsement_no'        => null,
                         'client_branch_id'      => null,
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/Helpers/excel_util_helper.php b/app/Helpers/excel_util_helper.php
index a4f773cd..db769589 100755
--- a/app/Helpers/excel_util_helper.php
+++ b/app/Helpers/excel_util_helper.php
@@ -3149,7 +3149,7 @@ if (!function_exists('check_agent_exist')) {
         // Loop agent data from DB
         foreach ($agent_data as $agent) {
             // Assuming DB keys: agent_code
-            if (isset($agent['agent_code']) && $agent['agent_code'] == $agent_code) {
+            if (isset($agent['pos_code']) && (strtolower($agent['pos_code']) == strtolower($agent_code))) {
                 return [
                     'status' => true,
                     'error'  => null,
@@ -3173,6 +3173,17 @@ if (!function_exists('check_rto_data')) {
         $vehicle_no = strtoupper(trim($row[2]));  // Example: TN10AB1234
         $new_vehicle = strtolower(trim($row[2]));
 
+        // BH Series: 22BH1234AA
+        $bhPattern = '/^[0-9]{2}BH[0-9]{4}[A-Z]{2}$/';
+
+        if (preg_match($bhPattern, $vehicle_no)) {
+            return [
+                'status' => true, 
+                'error' => null,
+                'rto_data'  => []
+            ];
+        }
+
         if($new_vehicle == "new"){
             return [
                 'status' => true,
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 ?>