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
= base_url("getClientBranchEmpData") ?>
-
+ -->
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 {
=$index+1?>
client_name; ?> ( short_name; ?> )
-
+
+
+ = $row->account_managers ?>
@@ -389,8 +392,10 @@ $(document).ready(function()
method: 'GET',
success: function(response) {
if (response.status === "success" && Array.isArray(response.data)) {
+ console.error("#CL 1 : ", response.data);
renderRows(response.data);
} else {
+ console.error("#CL 2 : ", response.data);
renderRows([]);
}
},
@@ -407,21 +412,21 @@ $(document).ready(function()
table.clear();
if (Array.isArray(data) && data.length) {
data.forEach((row, index) => {
- let clientrm = = json_encode($client_rm) ?>;
- let account_managers = "";
-
- clientrm.forEach(client => {
- if (client.client_id == row.id) {
- account_managers += client.account_manager + ", ";
- }
- });
- account_managers = account_managers.replace(/,\s*$/, "");
- if (account_managers === "") account_managers = "N/A";
+ // let clientrm = json_encode($client_rm)
+ // let account_managers = "";
+ //
+ // clientrm.forEach(client => {
+ // if (client.client_id == row.id) {
+ // account_managers += client.account_manager + ", ";
+ // }
+ // });
+ // account_managers = account_managers.replace(/,\s*$/, "");
+ // if (account_managers === "") account_managers = "N/A";
let rowData = [
index + 1,
`${row.client_name} (${row.short_name})`,
- account_managers,
+ row.account_managers,
` */ ?>
+
diff --git a/app/Views/ticket_type_modal.php b/app/Views/ticket_type_modal.php
index 2e7fdf82..dfac9d56 100644
--- a/app/Views/ticket_type_modal.php
+++ b/app/Views/ticket_type_modal.php
@@ -22,7 +22,7 @@
-
+