diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index 6e3e0e30..e3685dd8 100755
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -8,6 +8,7 @@ use CodeIgniter\Router\RouteCollection;
*/
$routes->post('/chat', 'ChatbotControllerNew::index');
$routes->get('/widget', 'ChatbotControllerNew::widget');
+$routes->get('/chatbottest', 'ChatbotControllerNew::chatbotest');
$routes->get('/chatbot', 'ChatbotControllerNew::chatbot');
$routes->get('/swagger', 'SwaggerController::index', ['filter' => 'authMVC']);
@@ -45,6 +46,7 @@ $routes->get("frontend_content", "AppContentManagementController::frontend_conte
// $routes->get('/', 'LoginController::index');
$routes->get('/test', 'Home::index');
+$routes->get('/check_gemini', 'Home::check_Gemini');
$routes->get('/login', 'LoginController::index'); ///auth/google
$routes->get('/loginPos', 'LoginController::loginPos'); //login POS team
$routes->post('/getVerifyPosMobileNo', 'LoginController::getVerifyPosMobileNo'); //Verify POS team mobile no
@@ -87,6 +89,8 @@ $routes->group("/client", ["filter" => "authMVC"], function ($routes) {
$routes->get('deposit/(:num)', 'ClientController::deposit/$1');
$routes->get('remove/(:num)', 'ClientController::removeClient/$1');
$routes->get("list/(:any)", "ClientController::editClientOnboarding/$1");
+ $routes->post('wipe', 'ClientController::wipeDemoClient');
+
// application/config/routes.php
// Add a route for the view_Deposit method
@@ -589,7 +593,9 @@ $routes->group("/ticket", ["filter" => "authMVC"], function ($routes) {
$routes->post("getPoliciesbyEmpID","TicketController::getPoliciesbyEmpID");
$routes->post("getMoreInfo","TicketController::getMoreInfo");
$routes->get("getMoreInfo","TicketController::getMoreInfo");
-// $routes->post('ticket_messages','TicketController::getTicketMessage');
+ $routes->post('upload_url',"TicketController::upload_url");
+ $routes->post('getUrlDataByTicketId',"TicketController::getUrlDataByTicketId");
+ $routes->get('remove_url',"TicketController::remove_url");
});
$routes->group("clientApi",["filter" => "AuthClientApi"], function ($routes){
diff --git a/app/Controllers/Chatbot/EcardDownloadConversation.php b/app/Controllers/Chatbot/EcardDownloadConversation.php
index c38d6977..1f303c13 100644
--- a/app/Controllers/Chatbot/EcardDownloadConversation.php
+++ b/app/Controllers/Chatbot/EcardDownloadConversation.php
@@ -23,7 +23,7 @@ class EcardDownloadConversation extends Conversation
$policy_list = ChatbotHelper::getListOfPolicies($chat_session_info);
$buttons = [];
$question = 'Choose Policy to Download Ecard:';
- log_message('error', ('policy_list : ' . json_encode($policy_list)));
+ // log_message('error', ('policy_list : ' . json_encode($policy_list)));
if(is_array($policy_list) && count($policy_list))
{
diff --git a/app/Controllers/ChatbotControllerNew.php b/app/Controllers/ChatbotControllerNew.php
index dc38a3c9..544c40d4 100644
--- a/app/Controllers/ChatbotControllerNew.php
+++ b/app/Controllers/ChatbotControllerNew.php
@@ -25,9 +25,13 @@ class ChatbotControllerNew extends BaseController
public function __construct()
{
set_session_context('CHATBOT CON');
+
$this->myLogger = \Config\Services::mylogger();
$this->session = \Config\Services::session();
+ $sessionID = session_id();
+ $this->myLogger->logme('error', 'COOKIE - ' . $sessionID);
+
// $this->myLogger->logme('error', 'CALLED');
// Load BotMan driver
@@ -51,6 +55,9 @@ class ChatbotControllerNew extends BaseController
// $this->myLogger->logme('error', $method);
if (isset($extras) && $method == 'widget') {
+ $request = \Config\Services::request();
+ $cookieHeader = $request->getHeaderLine('Cookie');
+
$extras = $extras->parameters;
$this->session->set('CHATBOT_EMP_ID', $extras->employee_id);
$this->session->set('CHATBOT_ORIGIN', $extras->origin);
@@ -104,10 +111,10 @@ class ChatbotControllerNew extends BaseController
log_message("error","Inside Bot Type Function");
$bot->types(); // Typing indicator for the first message
- sleep(0.5); // Delay
+ sleep(0.1); // Delay
});
// Start the Main Menu when user says "hi" or "start"
- $this->botman->hears('start|hi|hello', function (BotMan $bot) {
+ $this->botman->hears('start|hi|hello|help|help me', function (BotMan $bot) {
if ($this->isMemberLoggedIn){
$bot->reply('Hi how can i assist?');
$bot->startConversation(new MainMenuConversation());
@@ -139,9 +146,14 @@ class ChatbotControllerNew extends BaseController
// }
+ public function chatbotest()
+ {
+ $this->loadLayout('chatbottest.php');
+ }
+
public function chatbot()
{
- $this->loadLayout('chatbot.php');
+ echo view('chatbot.php');
}
public function widget()
diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php
index 10aeea5f..d4bfa5d8 100755
--- a/app/Controllers/ClientController.php
+++ b/app/Controllers/ClientController.php
@@ -608,6 +608,8 @@ class ClientController extends AdminController
$data['policy_types'] = $this->policyTypeModel->findAll();
$data['policy_type'] = ['1' => 'Base Policy', '2' => 'SI Topup', '3' => 'Dependent Addon'];
$data['client_type'] = ['1' => 'Group', '2' => 'Retail'];
+ $data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
+ $data['insurers'] = $this->insurerModel->where('is_active', 1)->findAll();
// echo "
";
// print_r($data); die;
@@ -635,6 +637,7 @@ class ClientController extends AdminController
$balances = $this->clientPolicyModel->getBalances($id);
$data['balances'] = $balances;
+ // dd($data);
if($requestFrom == 'rest'){ return $data; }
echo view('layout/header', $headerData);
@@ -746,12 +749,15 @@ class ClientController extends AdminController
$this->myLogger->logme('error', 'Edit Client Onboarding function called');
$headerData['page_name'] = 'Edit Client Onboarding';
- $editData['RM'] = $this->userModel->where('is_active', 1)->findAll();
+ $editData['RM'] = $this->userModel->where('is_active', 1)->findAll();
$editData['tpa'] = $this->tpaBranchModel->getTpaBranchesWithTpaNames();
$editData['state'] = $this->stateModel->getAllStates();
$editData['police'] = $this->policesModel->findAll();
$editData['entity'] = $this->kycEntityTypeModel->findAll();
$editData['insurer'] = $this->insurerBranchModel->getInsurerBranchesWithInsurerNames();
+ $editData['insurers'] = $this->insurerModel->where('is_active', 1)->findAll();
+ $editData['insurer_branch'] = $this->insurerBranchModel->where('is_active', 1)->findAll();
+ $editData['clients'] = $this->clientModel->where('is_active', 1)->findAll();
$editData['kyc_docs'] = $this->kycDocsModel->findAll();
$editData['policyGridData'] = $this->policyGridModel->findAll();
$editData['policy_types'] = $this->policyTypeModel->findAll();
@@ -805,7 +811,12 @@ class ClientController extends AdminController
$data['is_download_btn'] = 1;
}
+ if(empty($data['parent_client_id'])){
+ $data['parent_client_id'] = null;
+ }
+
$insert = $this->clientModel->insert($data);
+
if ($insert) {
$client_data = $this->clientModel->where(['id' => $insert, 'is_active' => 1])->first();
return $this->respond(['status' => true, 'code' => 200, 'data' => $client_data], 200);
@@ -834,6 +845,9 @@ class ClientController extends AdminController
$data['is_download_btn'] = 1;
}
+ if(empty($data['parent_client_id'])){
+ $data['parent_client_id'] = null;
+ }
// print_r($data);die;
$update = $this->clientModel->update($id, $data);
@@ -2166,6 +2180,7 @@ class ClientController extends AdminController
$insurer_id = $client_policy_data['insurer_id'];
$client_id = $client_policy_data['client_id'];
+ $insurer_branch_id = $client_policy_data['insurer_branch_id'];
if (!empty($client_policy_data['policy_start_date'])) {
$client_policy_data['source_policy_start_date'] = change_date_format($client_policy_data['policy_start_date'], 'Y-m-d', 'd/m/Y');
@@ -2186,7 +2201,8 @@ class ClientController extends AdminController
->findAll();
$client_policy_list = $this->clientPolicyModel->getPolicyTypeForPolicyBinding($client_id);
- $cd_data = $this->CDMasterModel->where('client_id', $client_id)->where('insurer_id', $insurer_id)->where('is_active', 1)->findAll();
+ // $cd_data = $this->CDMasterModel->where('client_id', $client_id)->where('insurer_id', $insurer_id)->where('is_active', 1)->findAll();
+ $cd_data = $this->get_cd_ac($client_id, $insurer_id, $insurer_branch_id, "internal");
// $client_policy_data['policy_end_date'] = date('d/m/Y', strtotime($client_policy_data['policy_end_date']));
$fromDate = new \DateTime($client_policy_data['policy_end_date']);
$fromDate->modify('+1 year');
@@ -2545,6 +2561,7 @@ class ClientController extends AdminController
// $data['special_condition_label'] = str_replace(',', '', $this->request->getPost("special_condition_label")) ?? [];
// $data['special_condition_input'] = str_replace(',', '', $this->request->getPost("special_condition_input")) ?? [];
// $data['multiple_sum_insured'] = str_replace(',', '', $this->request->getPost("multiple_sum_insured")) ?? [];
+
$fields = [
'waiverofpreexistingdiseases' => false,
'waiverof1,2,3&4thyearexclusions' => false,
@@ -2591,18 +2608,17 @@ class ClientController extends AdminController
'special_condition_input' => true,
'multiple_sum_insured' => true,
];
-
- // $data = [];
-
+
foreach ($fields as $field => $needsCleanup) {
$value = $this->request->getPost($field);
if ($value !== null && $value !== '') {
$data[$field] = $needsCleanup ? str_replace(',', '', $value) : $value;
+ }else{
+ $data[$field] = $value;
}
}
-
$data['enrollment_display_key'] = $this->enrollmentGMCDisplayValueTransform();
// print_r($data);die;
@@ -2865,6 +2881,8 @@ class ClientController extends AdminController
try {
$this->myLogger->logme('error', 'Policy GPA Terms CREATE function called');
+ // print_r($this->request->getPost()); die;
+
/*** Client Policy Table Primary Key(ID) ***/
$client_policy_id = $this->request->getPost("client_policy_id");
@@ -2936,6 +2954,8 @@ class ClientController extends AdminController
$value = $this->request->getPost($field);
if ($value !== null) {
$data[$field] = str_replace(',', '', $value);
+ }else{
+ $data[$field] = $value;
}
}
@@ -2944,6 +2964,8 @@ class ClientController extends AdminController
$value = $this->request->getPost($field);
if ($value !== null) {
$data[$field] = $value;
+ }else{
+ $data[$field] = $value;
}
}
@@ -3551,22 +3573,64 @@ class ClientController extends AdminController
return $this->respond(['status' => true, 'code' => 200, 'message' => 'Additionaly Rack Rate Data Remove Successfully'], 200);
}
- public function get_cd_ac($client_id, $insurer_id)
+ public function get_cd_ac($client_id, $insurer_id, $insurer_branch_id, $return_type = null)
{
+ // Get client data
+ $client_data = $this->clientModel
+ ->where('is_active', 1)
+ ->where('id', $client_id)
+ ->first();
- $cd_data = $this->CDMasterModel
+ $cd_data = [];
+
+ // If client has a parent, fetch parent client CD data
+ if (!empty($client_data['parent_client_id'])) {
+ $parent_cd_data = $this->CDMasterModel
+ ->where('client_id', $client_data['parent_client_id'])
+ ->where('insurer_id', $insurer_id)
+ ->where('insurer_branch_id', $insurer_branch_id)
+ ->where('is_active', 1)
+ ->findAll();
+
+ $cd_data = array_merge($cd_data, $parent_cd_data);
+ }
+
+ // Fetch current client CD data
+ $client_cd_data = $this->CDMasterModel
->where('client_id', $client_id)
->where('insurer_id', $insurer_id)
+ ->where('insurer_branch_id', $insurer_branch_id)
->where('is_active', 1)
->findAll();
- if ($cd_data) {
- return $this->respond(['status' => true, 'code' => 200, 'data' => $cd_data], 200);
+ $cd_data = array_merge($cd_data, $client_cd_data);
+
+ if($return_type == "internal"){
+ if(!empty($cd_data)){
+ return $cd_data;
+ }else{
+ return [];
+ }
+ }
+
+ if (!empty($cd_data)) {
+ return $this->respond([
+ 'status' => true,
+ 'code' => 200,
+ 'data' => $cd_data
+ ], 200);
} else {
- return $this->respond(['status' => false, 'code' => 404, 'insurer_id' => $insurer_id, 'client_id' => $client_id], 200);
+ return $this->respond([
+ 'status' => false,
+ 'code' => 404,
+ 'client_id' => $client_id,
+ 'insurer_id' => $insurer_id,
+ 'insurer_branch_id' => $insurer_branch_id
+ ], 200);
}
}
+
public function otherPolicyTermsFormSubmit()
{
@@ -4095,21 +4159,60 @@ class ClientController extends AdminController
}
-
- public function getCDAccNoByClientAndInsurer($client, $insurer)
+ public function getCDAccNoByClientAndInsurer($client_id, $insurer_id, $insurer_branch_id)
{
- $cdmData = $this->CDMasterModel
- ->where('client_id', $client)
- ->where('insurer_id', $insurer)
- ->where('is_active', 1)
- ->findAll();
+ // Get client data
+ $client_data = $this->clientModel
+ ->where('is_active', 1)
+ ->where('id', $client_id)
+ ->first();
- if ($cdmData) {
- return $this->respond(['status' => true, 'data' => $cdmData], 200);
+ $cd_data = [];
+
+ // If client has a parent, fetch parent client CD data
+ if (!empty($client_data['parent_client_id'])) {
+ $parent_cd_data = $this->CDMasterModel
+ ->where('client_id', $client_data['parent_client_id'])
+ ->where('insurer_id', $insurer_id)
+ ->where('insurer_branch_id', $insurer_branch_id)
+ ->where('is_active', 1)
+ ->findAll();
+
+ $cd_data = array_merge($cd_data, $parent_cd_data);
+ }
+
+ // Fetch current client CD data
+ $client_cd_data = $this->CDMasterModel
+ ->where('client_id', $client_id)
+ ->where('insurer_id', $insurer_id)
+ ->where('insurer_branch_id', $insurer_branch_id)
+ ->where('is_active', 1)
+ ->findAll();
+
+ $cd_data = array_merge($cd_data, $client_cd_data);
+
+ if (!empty($cd_data)) {
+ return $this->respond([ 'status' => true,'code' => 200, 'data' => $cd_data], 200);
} else {
- return $this->respond(['status' => false], 200);
+ return $this->respond(['status' => false,'code' => 404,'client_id' => $client_id,'insurer_id' => $insurer_id,'insurer_branch_id' => $insurer_branch_id ], 200);
}
}
+
+ // public function getCDAccNoByClientAndInsurer($client, $insurer, $insurer_branch_id)
+ // {
+ // $cdmData = $this->CDMasterModel
+ // ->where('client_id', $client)
+ // ->where('insurer_id', $insurer)
+ // ->where('insurer_branch_id', $insurer_branch_id)
+ // ->where('is_active', 1)
+ // ->findAll();
+
+ // if ($cdmData) {
+ // return $this->respond(['status' => true, 'data' => $cdmData], 200);
+ // } else {
+ // return $this->respond(['status' => false], 200);
+ // }
+ // }
public function createClientWithMinimalData()
{
@@ -4119,7 +4222,7 @@ class ClientController extends AdminController
$client_data = [
'client_type' => $postData['client_type'],
'client_name' => $postData['client_name'],
- 'short_name' => $postData['short_name'],
+ 'short_name' => $postData['short_name'] ?? $postData['client_name'],
'pan' => $postData['pan'],
'client_code' => generate_client_code(),
];
@@ -4937,24 +5040,24 @@ class ClientController extends AdminController
// ---------- EMP SERVICE CONTROLLER --------------------------------------------------------------------------------
- $employeeRestController = new EmployeeServiceController();
- // $employeeRestController->excelFileDataValidation(['file_id' => 1629]); die;
- // $employeeRestController->employeesOnboardPreprocess(['file_id' => 726]);
- // $employeeRestController->employeesOnboardProcess(['file_id' => 835]);
- // $employeeRestController->employeesEnrollmentInsert(['file_id' => 836]);
- // $r = Jobs::addJob(['job_name' => 'employeesEnrollmentInsert','payload' => ['file_id' => 721]]);
$empServiceController = new EmployeeServiceController();
// $res = $empServiceController->excelFileFormatValidation(['file_id' => '865']);
// $res = $empServiceController->excelFileDataValidation(['file_id' => '865']);
+ // $res = $empServiceController->employeesOnboardPreprocess(['file_id' => 726]);
+ // $res = $empServiceController->employeesOnboardProcess(['file_id' => 835]);
+ // $res = $empServiceController->employeesEnrollmentInsert(['file_id' => 836]);
// $res = $empServiceController->employeesSIEnhanceProcess(['file_id' => '978']);
- // $res = $empServiceController->employeeDisembark(['file_id' => '1681']); dd( $res);
+ // $res = $empServiceController->employeeDisembark(['file_id' => '1681']);
+ // $res = $empServiceController->employeesCorrectionProcess(['file_id' => '1681']);
+ // dd( $res);
+
+ // ---------- POLICY TRANSACTION CONTROLLER --------------------------------------------------------------------------------
$policyTransactionController = new PolicyTransactionController();
// $res = $policyTransactionController->validateInsurerStatement(['file_id' => '17']);
// $res = $policyTransactionController->updateInsurerStatement(['file_id' => '22']);
// dd('-----', $res);
-
// ----------EMP DATA SERVICE CONTROLLER--------------------------------------------------------------------------------
$batch_data = [
@@ -4985,44 +5088,26 @@ class ClientController extends AdminController
// $client_policy_data = $this->clientPolicyModel->getPolicyDetailsForRemainder($client_id=159, $client_branch_id=126);
// $dashBoardController->sendRemainderMail($client_policy_data);
- // $EmpDataServiceController = new EmpDataServiceController();
// $emp_data = $this->employeePolicyModel->getEmployeePolicyForEcard(12);
// $ids = array_column($emp_data, 'id');
- // $EmpDataServiceController->sendMailForDownloadingECard($ids);
$EmpDataServiceController = new EmpDataServiceController();
- // $return = $EmpDataServiceController->generateExcelForDeletion($batch_data); dd($return); die;
- // $EmpDataServiceController->generateExcelForSIEnhancement($batch_data); die;
- // $EmpDataServiceController->importInceptionFileValidation(['file_id' => 1932]); die;
- // $EmpDataServiceController->importDeletionValidation(['file_id' => 304]); //for live
- // $EmpDataServiceController->importSIEnhancementUpdateEndorsementID(['file_id' => 1199]); //for live
- // $result = $EmpDataServiceController->importSIEnhancementValidation(['file_id' => 2496]); //for live
- // $EmpDataServiceController->importInceptionUpdateTPAandUHID(['file_id' => 214]); //for live
-
- // $result = $this->employeePolicyModel->getDeletionEmployeeDataForExportExcel($batch_data, 1); dd($result);
- // $result = $this->employeePolicyModel->getSIEnhancementEmployeesDataForExportExcel($batch_data, 1);
+ // $res = $EmpDataServiceController->generateExcelForDeletion($batch_data); dd($return); die;
+ // $res = $EmpDataServiceController->generateExcelForSIEnhancement($batch_data); die;
+ // $res = $EmpDataServiceController->importInceptionFileValidation(['file_id' => 1932]); die;
+ // $res = $EmpDataServiceController->importDeletionValidation(['file_id' => 304]); //for live
+ // $res = $EmpDataServiceController->importSIEnhancementUpdateEndorsementID(['file_id' => 1199]); //for live
+ // $res = $EmpDataServiceController->importSIEnhancementValidation(['file_id' => 2496]); //for live
+ // $res = $EmpDataServiceController->importInceptionUpdateTPAandUHID(['file_id' => 214]); //for live
+ // $res = $EmpDataServiceController->importInceptionUpdateTPAandUHID(['file_id' => 310]); dd($res);//for live
+ // $res = $EmpDataServiceController->getInceptionBasePremium(["13332","13333","13334","13335","13336"]); dd($res);//for live
+ // $res = $EmpDataServiceController->getDeletionBasePremium(["13248","13250","13249","13247"], json_decode('{"employeeIds":["13248","13250","13249","13247"],"client_id":"3927","client_policy_id":"6183","client_branch_id":"1874","cd_ac_no":"CD9751909505","endorsement_no":"END1238","count":4,"event_name":"deletion","policy_name":"GMC","user_id":"48"}', true)); dd($res);//for live
+ // $res = $EmpDataServiceController->makeEntryForBDSPolicyTransaction(json_decode('{"client_policy_id":"6187","endorsement_no":null,"emp_count":5,"action_type":"inception","no_of_insured":3,"no_of_dependent":0}', true)); dd($res);//for live
+ // $res = $EmpDataServiceController->sendMailForDownloadingECard($ids);
+ // $res = $this->employeePolicyModel->getDeletionEmployeeDataForExportExcel($batch_data, 1); dd($result);
+ // $res = $this->employeePolicyModel->getSIEnhancementEmployeesDataForExportExcel($batch_data, 1);
// return $this->downloadInsurerExcelExport($batch_data);
- // dd($result); die;
-
- // $empServiceController = new EmployeeServiceController();
- // $res = $empServiceController->employeesOnboardPreprocess(['file_id' => '741']);
-
- // $PolicyTransactionController = new PolicyTransactionController();
- // $res = $PolicyTransactionController->validateInsurerStatement(['file_id' => '36']);
-
- // $empServiceController = new EmployeeServiceController();
- // $res = $empServiceController->excelFileDataValidation(['file_id' => '1101']);
- // dd($res);
-
- // $EmpDataServiceController = new EmpDataServiceController();
- // $EmpDataServiceController->importInceptionFileValidation(['file_id' => 160]);
-
- // $EmpDataServiceController = new EmpDataServiceController();
- // $EmpDataServiceController->importInceptionUpdateTPAandUHID(['file_id' => 162]);
- // $EmpDataServiceController->importInceptionFileValidation(['file_id' => 162]);
- // $EmpDataServiceController->importDeletionValidation(['file_id' => 171]);
- // $EmpDataServiceController->importDeletionUpdateEndorsementID(['file_id' => 171]);
- // $EmpDataServiceController->importCorrectionUpdateEndorsementID(['file_id' => 188]);
+ // dd($res); die;
// $params = [
// 'client_policy_id' => 6090,
@@ -6141,7 +6226,7 @@ class ClientController extends AdminController
}
}
- // ---------------------------------------------------------------------------------------------------
+ // ---------------- HR ACCESS CONTROL -----------------------------------------------------------------------------------
public function viewHrAccessData()
{
@@ -6208,6 +6293,14 @@ class ClientController extends AdminController
$pre_client_data = $db2->table('clients')->where('is_active', 1)->where('short_name', $post_client_data['short_name'])->get()->getRowArray();
+ if(empty($pre_client_data)){
+
+ $hrAccessData['pre_hr_data'] = [];
+ $hrAccessData['pre_policy_data'] = [];
+ $combinedHrAccessData = $this->constructHrAccessData($hrAccessData, $client_id);
+ return $combinedHrAccessData;
+ }
+
$hrAccessData['pre_hr_data'] = $db2->table('client_branch')
->select('lc.id as pre_hr_id, lc.name as hr_name, lc.mobile as hr_mobile, lc.email as hr_mail')
->join('level_contacts lc', 'client_branch.id = lc.ref_id')
@@ -6479,8 +6572,585 @@ class ClientController extends AdminController
}
}
+ // ------------------- DEMO CLIENT FUNCTION --------------------------------------------------------------------------------
+ // public function wipeDemoClient()
+ // {
+ // // $this->myLogger->logme('error', "Wipe Demo Client function called");
+ // $this->myLogger->logme('error', "Wipe Demo Client function called"); // Red text
+ // $this->myLogger->logme('error', "Wipe Demo client Payload : " . json_encode($this->request->getPost() ?? []));
+ // $client_id = $this->request->getPost('client_id');
+
+ // if (empty($client_id)) {
+ // return $this->respond(['status' => false, 'message' => 'Client id required'], 404);
+ // }
+
+ // // 1. Client Model
+ // $client_data = $this->clientModel->where('id', $client_id)->where('is_active', 1)->first();
+ // $this->myLogger->logme('error', "Client data : " . json_encode($client_data ?? []));
+
+ // if (!empty($client_data)) {
+ // $is_deleted = $this->clientModel->where('id', $client_id)->delete();
+
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Client data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Client record does not exist.");
+ // }
+ // } else {
+ // return $this->respond(['status' => false, 'message' => 'Client not found'], 404);
+ // }
+
+ // // 2. Client RM Model
+ // $client_rm_data = $this->clientRMModel->where('client_id', $client_id)->first();
+ // $this->myLogger->logme('error', "Client Relationship Manager data : " . json_encode($client_rm_data ?? []));
+
+ // if (!empty($client_rm_data)) {
+ // $is_deleted = $this->clientRMModel->where('client_id', $client_id)->delete();
+
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Client Relationship Manager data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Client Relationship Manager record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Client Relationship Manager data not found.");
+ // }
+
+ // // 3. Client KYC Docs Model
+ // $client_kyc_data = $this->clientKYCDocsModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Client KYC Docs data : " . json_encode($client_kyc_data ?? []));
+
+ // if (!empty($client_kyc_data)) {
+ // $is_deleted = $this->clientKYCDocsModel->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Client KYC Docs data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Client KYC Docs record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Client KYC Docs data not found.");
+ // }
+
+ // // 4. Client Branch Model
+ // $client_branch_data = $this->clientBranchModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Client Branch data : " . json_encode($client_branch_data ?? []));
+
+ // $branch_ids = array_column($client_branch_data, 'id') ?? [];
+ // $this->myLogger->logme('error', "Client Branch id count : " . count($branch_ids ?? []));
+
+ // if (!empty($client_branch_data)) {
+
+ // $is_deleted = $this->clientBranchModel->where('client_id', $client_id)->delete();
+
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Client Branch data removed successfully.");
+
+ // if(!empty($branch_ids)){
+
+ // $level_contact_data = $this->levelContactModel->where('contact_type', 'client')->whereIn('ref_id', $branch_ids)->findAll();
+ // $this->myLogger->logme('error', "Level Contact data : " . json_encode($level_contact_data ?? []));
+
+ // $is_deleted = $this->levelContactModel->where('contact_type', 'client')->whereIn('ref_id', $branch_ids)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Level Contact data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Level Contact record does not exist. To delete");
+ // }
+
+ // }else{
+ // $this->myLogger->logme('error', "Level Contact data not found.");
+ // }
+
+ // } else {
+ // $this->myLogger->logme('error', "Client Branch record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Client Branch data not found.");
+ // }
+
+ // // 5. Client Policy Model
+ // $client_policy_data = $this->clientPolicyModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Client Policy data : " . json_encode($client_policy_data ?? []));
+
+ // $policy_ids = array_column($client_policy_data, 'id') ?? [];
+ // $this->myLogger->logme('error', "Client Policy id count : " . count($policy_ids ?? []));
+
+ // if (!empty($client_policy_data)) {
+ // $is_deleted = $this->clientPolicyModel->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+
+ // $this->myLogger->logme('error', "Client Policy data removed successfully.");
+
+ // if(!empty($policy_ids)){
+
+ // $employee_policy_data = $this->employeePolicyModel->whereIn('client_policy_id', $policy_ids)->findAll();
+ // $this->myLogger->logme('error', "Employee Policy data count : " . count($employee_policy_data ?? []));
+
+ // $is_deleted = $this->employeePolicyModel->whereIn('client_policy_id', $policy_ids)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Employee policy data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Employee policy record does not exist. To delete");
+ // }
+
+ // }else{
+ // $this->myLogger->logme('error', "Employee policy data not found.");
+ // }
+
+ // } else {
+ // $this->myLogger->logme('error', "Client Policy record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Client Policy data not found.");
+ // }
+
+ // // 6. Employee Model
+ // $employee_data = $this->employeeModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Employee data count : " . count($employee_data ?? []));
+
+ // if (!empty($employee_data)) {
+
+ // $is_deleted = $this->employeeModel->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Employee data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Employee record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Employee data not found.");
+ // }
+
+ // // 7. Client Deposit Model
+ // $client_deposit_data = $this->clientDepositModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Client Deposit data : " . json_encode($client_deposit_data ?? []));
+
+ // if (!empty($client_deposit_data)) {
+ // $is_deleted = $this->clientDepositModel->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Client Deposit data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Client Deposit record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Client Deposit data not found.");
+ // }
+
+ // // 8. Policy Premium 1 Model
+ // $policy_premium1_data = $this->policyPremium1Model->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Policy Premium 1 data count : " . count($policy_premium1_data ?? []));
+
+ // if (!empty($policy_premium1_data)) {
+ // $is_deleted = $this->policyPremium1Model->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Policy Premium 1 data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Policy Premium 1 record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Policy Premium 1 data not found.");
+ // }
+
+ // // 9. Policy Premium 2 Model
+ // $policy_premium2_data = $this->policyPremium2Model->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Policy Premium 2 data count: " . count($policy_premium2_data ?? []));
+
+ // if (!empty($policy_premium2_data)) {
+ // $is_deleted = $this->policyPremium2Model->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Policy Premium 2 data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Policy Premium 2 record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Policy Premium 2 data not found.");
+ // }
+
+ // // 10. Notification Model
+ // $notification_data = $this->notificationModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Notification data : " . json_encode($notification_data ?? []));
+
+ // if (!empty($notification_data)) {
+ // $is_deleted = $this->notificationModel->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Notification data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "Notification record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Notification data not found.");
+ // }
+
+ // // 11. CD Master Model
+ // $cd_master_data = $this->CDMasterModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "CD Master data : " . json_encode($cd_master_data ?? []));
+
+ // if (!empty($cd_master_data)) {
+ // $is_deleted = $this->CDMasterModel->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "CD Master data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "CD Master record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "CD Master data not found.");
+ // }
+
+ // // 12. Policy Transaction Model
+ // $policy_transaction_data = $this->policyTransactionModel->where('client_id', $client_id)->findAll();
+ // $this->myLogger->logme('error', "Policy Transaction data : " . json_encode($policy_transaction_data ?? []));
+
+ // $pt_ids = array_column($policy_transaction_data, 'id') ?? [];
+ // $this->myLogger->logme('error', "Policy Transaction id count : " . count($pt_ids ?? []));
+
+ // if (!empty($policy_transaction_data)) {
+ // $is_deleted = $this->policyTransactionModel->where('client_id', $client_id)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "Policy Transaction data removed successfully.");
+
+ // if(!empty($pt_ids)){
+
+ // $pt_co_share_data = $this->PTCOShareDetailsModel->whereIn('pt_id', $pt_ids)->findAll();
+ // $this->myLogger->logme('error', "PT CO Share data : " . json_encode($pt_co_share_data ?? []));
+
+ // $is_deleted = $this->PTCOShareDetailsModel->whereIn('pt_id', $pt_ids)->delete();
+ // if ($is_deleted) {
+ // $this->myLogger->logme('error', "PT CO Share data removed successfully.");
+ // } else {
+ // $this->myLogger->logme('error', "PT CO Share record does not exist. To delete");
+ // }
+
+ // }else{
+ // $this->myLogger->logme('error', "PT CO Share data not found.");
+ // }
+
+ // } else {
+ // $this->myLogger->logme('error', "Policy Transaction record does not exist. To delete");
+ // }
+ // } else {
+ // $this->myLogger->logme('error', "Policy Transaction data not found.");
+ // }
+
+ // $this->myLogger->logme('error', "Wipe Demo Client function closed");
+ // return $this->respond(['status' => true, 'message' => 'Demo client data wiped successfully'], 200);
+ // }
+
+ public function wipeDemoClient()
+ {
+ $this->myLogger->logme('error', "========================================");
+ $this->myLogger->logme('error', "WIPE DEMO CLIENT FUNCTION STARTED");
+ $this->myLogger->logme('error', "========================================");
+
+ $this->myLogger->logme('error', "Request Payload: " . json_encode($this->request->getPost() ?? []));
+ $client_id = $this->request->getPost('client_id');
+
+ if (empty($client_id)) {
+ $this->myLogger->logme('error', "ERROR: Client ID is required");
+ return $this->respond(['status' => false, 'message' => 'Client id required'], 404);
+ }
+
+ $this->myLogger->logme('error', "Client ID to wipe: " . $client_id);
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 1. CLIENT MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "1. PROCESSING CLIENT MODEL");
+ $client_data = $this->clientModel->where('id', $client_id)->where('is_active', 1)->first();
+ $this->myLogger->logme('error', " Found Client Data: " . json_encode($client_data ?? []));
+
+ if (!empty($client_data)) {
+ $is_deleted = $this->clientModel->where('id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Client data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete client record");
+ }
+ } else {
+ $this->myLogger->logme('error', " ✗ Client not found or inactive");
+ return $this->respond(['status' => false, 'message' => 'Client not found'], 404);
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 2. CLIENT RM MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "2. PROCESSING CLIENT RM MODEL");
+ $client_rm_data = $this->clientRMModel->where('client_id', $client_id)->first();
+ $this->myLogger->logme('error', " Found Client RM Data: " . json_encode($client_rm_data ?? []));
+
+ if (!empty($client_rm_data)) {
+ $is_deleted = $this->clientRMModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Client RM data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Client RM record");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Client RM data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 3. CLIENT KYC DOCS MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "3. PROCESSING CLIENT KYC DOCS MODEL");
+ $client_kyc_data = $this->clientKYCDocsModel->where('client_id', $client_id)->findAll();
+ $this->myLogger->logme('error', " Found Client KYC Records: " . count($client_kyc_data ?? []));
+ $this->myLogger->logme('error', " Client KYC Data: " . json_encode($client_kyc_data ?? []));
+
+ if (!empty($client_kyc_data)) {
+ $is_deleted = $this->clientKYCDocsModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Client KYC Docs data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Client KYC Docs records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Client KYC Docs data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 4. CLIENT BRANCH MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "4. PROCESSING CLIENT BRANCH MODEL");
+ $client_branch_data = $this->clientBranchModel->where('client_id', $client_id)->findAll();
+ $branch_ids = array_column($client_branch_data, 'id') ?? [];
+ $this->myLogger->logme('error', " Found Client Branch Records: " . count($client_branch_data ?? []));
+ $this->myLogger->logme('error', " Branch IDs: " . json_encode($branch_ids));
+ $this->myLogger->logme('error', " Client Branch Data: " . json_encode($client_branch_data ?? []));
+
+ if (!empty($client_branch_data)) {
+ $is_deleted = $this->clientBranchModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Client Branch data removed successfully");
+
+ // Delete related Level Contact data
+ if (!empty($branch_ids)) {
+ $this->myLogger->logme('error', " 4a. PROCESSING RELATED LEVEL CONTACT DATA");
+ $level_contact_data = $this->levelContactModel->where('contact_type', 'client')->whereIn('ref_id', $branch_ids)->findAll();
+ $this->myLogger->logme('error', " Found Level Contact Records: " . count($level_contact_data ?? []));
+ $this->myLogger->logme('error', " Level Contact Data: " . json_encode($level_contact_data ?? []));
+
+ $is_deleted = $this->levelContactModel->where('contact_type', 'client')->whereIn('ref_id', $branch_ids)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Level Contact data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Level Contact records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Branch IDs available for Level Contact deletion");
+ }
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Client Branch records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Client Branch data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 5. CLIENT POLICY MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "5. PROCESSING CLIENT POLICY MODEL");
+ $client_policy_data = $this->clientPolicyModel->where('client_id', $client_id)->findAll();
+ $policy_ids = array_column($client_policy_data, 'id') ?? [];
+ $this->myLogger->logme('error', " Found Client Policy Records: " . count($client_policy_data ?? []));
+ $this->myLogger->logme('error', " Policy IDs: " . json_encode($policy_ids));
+ $this->myLogger->logme('error', " Client Policy Data: " . json_encode($client_policy_data ?? []));
+
+ if (!empty($client_policy_data)) {
+ $is_deleted = $this->clientPolicyModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Client Policy data removed successfully");
+
+ // Delete related Employee Policy data
+ if (!empty($policy_ids)) {
+ $this->myLogger->logme('error', " 5a. PROCESSING RELATED EMPLOYEE POLICY DATA");
+ $employee_policy_data = $this->employeePolicyModel->whereIn('client_policy_id', $policy_ids)->findAll();
+ $this->myLogger->logme('error', " Found Employee Policy Records: " . count($employee_policy_data ?? []));
+
+ $is_deleted = $this->employeePolicyModel->whereIn('client_policy_id', $policy_ids)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Employee Policy data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Employee Policy records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Policy IDs available for Employee Policy deletion");
+ }
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Client Policy records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Client Policy data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 6. EMPLOYEE MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "6. PROCESSING EMPLOYEE MODEL");
+ $employee_data = $this->employeeModel->where('client_id', $client_id)->findAll();
+ $this->myLogger->logme('error', " Found Employee Records: " . count($employee_data ?? []));
+
+ if (!empty($employee_data)) {
+ $is_deleted = $this->employeeModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Employee data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Employee records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Employee data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 7. CLIENT DEPOSIT MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "7. PROCESSING CLIENT DEPOSIT MODEL");
+ $client_deposit_data = $this->clientDepositModel->where('client_id', $client_id)->findAll();
+ $this->myLogger->logme('error', " Found Client Deposit Records: " . count($client_deposit_data ?? []));
+ $this->myLogger->logme('error', " Client Deposit Data: " . json_encode($client_deposit_data ?? []));
+
+ if (!empty($client_deposit_data)) {
+ $is_deleted = $this->clientDepositModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Client Deposit data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Client Deposit records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Client Deposit data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 8. POLICY PREMIUM 1 MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "8. PROCESSING POLICY PREMIUM 1 MODEL");
+ $policy_premium1_data = $this->policyPremium1Model->where('client_id', $client_id)->findAll();
+ $this->myLogger->logme('error', " Found Policy Premium 1 Records: " . count($policy_premium1_data ?? []));
+
+ if (!empty($policy_premium1_data)) {
+ $is_deleted = $this->policyPremium1Model->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Policy Premium 1 data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Policy Premium 1 records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Policy Premium 1 data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 9. POLICY PREMIUM 2 MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "9. PROCESSING POLICY PREMIUM 2 MODEL");
+ $policy_premium2_data = $this->policyPremium2Model->where('client_id', $client_id)->findAll();
+ $this->myLogger->logme('error', " Found Policy Premium 2 Records: " . count($policy_premium2_data ?? []));
+
+ if (!empty($policy_premium2_data)) {
+ $is_deleted = $this->policyPremium2Model->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Policy Premium 2 data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Policy Premium 2 records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Policy Premium 2 data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 10. NOTIFICATION MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "10. PROCESSING NOTIFICATION MODEL");
+ $notification_data = $this->notificationModel->where('client_id', $client_id)->findAll();
+ $this->myLogger->logme('error', " Found Notification Records: " . count($notification_data ?? []));
+ $this->myLogger->logme('error', " Notification Data: " . json_encode($notification_data ?? []));
+
+ if (!empty($notification_data)) {
+ $is_deleted = $this->notificationModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Notification data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Notification records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Notification data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 11. CD MASTER MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "11. PROCESSING CD MASTER MODEL");
+ $cd_master_data = $this->CDMasterModel->where('client_id', $client_id)->findAll();
+ $this->myLogger->logme('error', " Found CD Master Records: " . count($cd_master_data ?? []));
+ $this->myLogger->logme('error', " CD Master Data: " . json_encode($cd_master_data ?? []));
+
+ if (!empty($cd_master_data)) {
+ $is_deleted = $this->CDMasterModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ CD Master data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete CD Master records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No CD Master data found");
+ }
+ $this->myLogger->logme('error', "----------------------------------------");
+
+ // ========================================
+ // 12. POLICY TRANSACTION MODEL DELETION
+ // ========================================
+ $this->myLogger->logme('error', "12. PROCESSING POLICY TRANSACTION MODEL");
+ $policy_transaction_data = $this->policyTransactionModel->where('client_id', $client_id)->findAll();
+ $pt_ids = array_column($policy_transaction_data, 'id') ?? [];
+ $this->myLogger->logme('error', " Found Policy Transaction Records: " . count($policy_transaction_data ?? []));
+ $this->myLogger->logme('error', " Policy Transaction IDs: " . json_encode($pt_ids));
+ $this->myLogger->logme('error', " Policy Transaction Data: " . json_encode($policy_transaction_data ?? []));
+
+ if (!empty($policy_transaction_data)) {
+ $is_deleted = $this->policyTransactionModel->where('client_id', $client_id)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ Policy Transaction data removed successfully");
+
+ // Delete related PT CO Share data
+ if (!empty($pt_ids)) {
+ $this->myLogger->logme('error', " 12a. PROCESSING RELATED PT CO SHARE DATA");
+ $pt_co_share_data = $this->PTCOShareDetailsModel->whereIn('pt_id', $pt_ids)->findAll();
+ $this->myLogger->logme('error', " Found PT CO Share Records: " . count($pt_co_share_data ?? []));
+ $this->myLogger->logme('error', " PT CO Share Data: " . json_encode($pt_co_share_data ?? []));
+
+ $is_deleted = $this->PTCOShareDetailsModel->whereIn('pt_id', $pt_ids)->delete();
+ if ($is_deleted) {
+ $this->myLogger->logme('error', " ✓ PT CO Share data removed successfully");
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete PT CO Share records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Policy Transaction IDs available for PT CO Share deletion");
+ }
+ } else {
+ $this->myLogger->logme('error', " ✗ Failed to delete Policy Transaction records");
+ }
+ } else {
+ $this->myLogger->logme('error', " ℹ No Policy Transaction data found");
+ }
+
+ $this->myLogger->logme('error', "========================================");
+ $this->myLogger->logme('error', "WIPE DEMO CLIENT FUNCTION COMPLETED");
+ $this->myLogger->logme('error', "Client ID: " . $client_id . " - Successfully processed");
+ $this->myLogger->logme('error', "========================================");
+
+ return $this->respond(['status' => true, 'message' => 'Demo client data wiped successfully'], 200);
+ }
}
diff --git a/app/Controllers/EmpDataServiceController.php b/app/Controllers/EmpDataServiceController.php
index 9d3eeecf..506b39a1 100755
--- a/app/Controllers/EmpDataServiceController.php
+++ b/app/Controllers/EmpDataServiceController.php
@@ -36,13 +36,13 @@ use App\Models\PTCOShareDetailsModel;
use App\Controllers\Jobs;
use App\Controllers\JobWorker;
-
-
+use App\Models\PolicyTypeModel;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Reader\Exception as SpreadsheetReaderException;
use PhpParser\Node\Expr\Cast\Double;
+use Kint\Kint;
use function PHPUnit\Framework\returnSelf;
@@ -199,13 +199,21 @@ class EmpDataServiceController extends BaseController
$totals = round($totals, 2);
- if($export_data['insurer_or_tpa'] == 'insurer') //check CD amt related issue for only insurer, not tpa
+ //check CD amt insufficient only insurer, not tpa // DO NOT REMOVE THIS
+ if($export_data['insurer_or_tpa'] == 'insurer')
{
if (!empty($cash_balance)) {
if ((int) $cash_balance['balance'] < (int) $totals) {
$this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount.');
$this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount. CASH BALANCE : {balance} and TOTAL AMOUNT : {total}', ['balance' => $cash_balance['balance'], 'total' => $totals]);
- return 0;
+ session()->set('cd_balance', false);
+ session()->set('cd_amount', $cash_balance['balance']);
+ session()->set('excel_file_amt', $totals);
+ }else{
+ session()->set('cd_balance', true);
+ session()->set('cd_amount', $cash_balance['balance']);
+ session()->set('excel_file_amt', $totals);
+
}
}
}
@@ -700,13 +708,21 @@ class EmpDataServiceController extends BaseController
// echo '';
// print_r($ids); die;
- if($export_data['insurer_or_tpa'] == 'insurer') //check CD amt related issue for only insurer, not tpa
+ //check CD amt insufficiend for only insurer, not tpa // DO NOT REMOVE THIS
+ if($export_data['insurer_or_tpa'] == 'insurer')
{
if (!empty($cash_balance)) {
if ((int) $cash_balance['balance'] < (int) $rounded_totals) {
$this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount.');
$this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount. CASH BALANCE : {balance} and TOTAL AMOUNT : {total}', ['balance' => $cash_balance['balance'], 'total' => $totals]);
- return 0;
+ session()->set('cd_balance', false);
+ session()->set('cd_amount', $cash_balance['balance']);
+ session()->set('excel_file_amt', $rounded_totals);
+ }else{
+ session()->set('cd_balance', true);
+ session()->set('cd_amount', $cash_balance['balance']);
+ session()->set('excel_file_amt', $rounded_totals);
+
}
}
}
@@ -1003,22 +1019,29 @@ class EmpDataServiceController extends BaseController
$cash_balance['balance'] = $balance['opening_bal'];
}
+ // Calculate the total amount from the objects
+ $totals = 0;
+ foreach ($inceptionData as $item) {
+ $totals = $totals + $item->total;
+ }
-
- // Calculate the total amount from the objects
- $totals = 0;
- foreach ($inceptionData as $item) {
- $totals = $totals + $item->total;
- }
$totals = round($totals, 2);
- if($export_data['insurer_or_tpa'] != 'tpa')// check overal emp premium amt with cd balance only for insurer export, not tpa export
+
+ if($export_data['insurer_or_tpa'] != 'tpa')// check overal emp premium amt with cd balance only for insurer export, not tpa export
{
if (!empty($cash_balance)) {
if ((int) $cash_balance['balance'] < (int) $totals) {
$this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount.');
$this->myLogger->logme('error', 'Inception export failed due to insufficient deposit amount. CASH BALANCE : {balance} and TOTAL AMOUNT : {total}', ['balance' => $cash_balance['balance'], 'total' => $totals]);
- return 0;
+ session()->set('cd_balance', false);
+ session()->set('cd_amount', $cash_balance['balance']);
+ session()->set('excel_file_amt', $totals);
+ }else{
+ session()->set('cd_balance', true);
+ session()->set('cd_amount', $cash_balance['balance']);
+ session()->set('excel_file_amt', $totals);
+
}
}
}
@@ -1359,6 +1382,8 @@ class EmpDataServiceController extends BaseController
$batch_code = $file['batch_code'];
$user_id = $file['created_by'];
+ $client_policy_data = $this->clientPolicyModel->where('id', $client_policy_id)->first();
+
$insurer_or_tpa = $file['insurer_or_tpa'];
if ($insurer_or_tpa == 'tpa') {
$id = 'tpa_id';
@@ -1516,38 +1541,42 @@ class EmpDataServiceController extends BaseController
//--- TPA ID Duplicate check start ---
- $current_tpa_id = $excel_data[$key][13];
+ // Duplicate checking for only GMC's and GPA
+ if(in_array($client_policy_data['policy_type_id'], [1,2,3,4,5])){
+ $current_tpa_id = $excel_data[$key][13];
- if (isset($tpa_id_all[$current_tpa_id])) {
+ if (isset($tpa_id_all[$current_tpa_id])) {
- // Add the current row to errors
- $errors[$key][] = [
- 'row' => $key,
- 'column' => 13,
- 'db_data' => "Duplicate TPA ID Found",
- 'excel_data' => $current_tpa_id
- ];
-
- // Add all existing rows with the same TPA ID to errors
- foreach ($tpa_id_all[$current_tpa_id] as $existing_row) {
- $errors[$existing_row][] = [
- 'row' => $existing_row,
+ // Add the current row to errors
+ $errors[$key][] = [
+ 'row' => $key,
'column' => 13,
'db_data' => "Duplicate TPA ID Found",
'excel_data' => $current_tpa_id
];
- }
+
+ // Add all existing rows with the same TPA ID to errors
+ foreach ($tpa_id_all[$current_tpa_id] as $existing_row) {
+ $errors[$existing_row][] = [
+ 'row' => $existing_row,
+ 'column' => 13,
+ 'db_data' => "Duplicate TPA ID Found",
+ 'excel_data' => $current_tpa_id
+ ];
+ }
- } else {
- if($current_tpa_id != "" && $current_tpa_id != null){
- $tpa_id_all[$current_tpa_id][] = $key;
- }
+ } else {
+ if($current_tpa_id != "" && $current_tpa_id != null){
+ $tpa_id_all[$current_tpa_id][] = $key;
+ }
+ }
}
//--- TPA ID Duplicate check end ---
- if ($insurer_or_tpa == 'tpa') {
+ if ($insurer_or_tpa == 'tpa' && in_array($client_policy_data['policy_type_id'], [1,2,3,4,5])) {
+ //verify the TPA ID is not null
if ($excel_data[$key][13] === null) {
$missing_id[$key][] = [
'row' => $key,
@@ -1557,6 +1586,8 @@ class EmpDataServiceController extends BaseController
];
}
} else if ($insurer_or_tpa == 'insurer') {
+
+ //verify the UHID or Risk ID is not null
if ($excel_data[$key][14] === null) {
$missing_id[$key][] = [
'row' => $key,
@@ -1699,7 +1730,7 @@ class EmpDataServiceController extends BaseController
];
}
- } else if ($insurer_or_tpa == 'insurer') {
+ } else if ($insurer_or_tpa == 'insurer' && in_array($client_policy_data['policy_type_id'], [1,2,3,4,5])) {
if ($emp_value['tpa_id'] != $excel_data[$key][13]) {
$errors[$key][] = [
@@ -1867,6 +1898,9 @@ class EmpDataServiceController extends BaseController
$emp_endorsement_table_data = [];
$enrollment_file_id = null;
$endorsement_id = null;
+ $no_of_insured = [];
+ $no_of_dependent = [];
+
$emp_count = count($excel_data);
$db = \Config\Database::connect();
@@ -1886,7 +1920,7 @@ class EmpDataServiceController extends BaseController
$totals = $totals + floatval($amount);
$query = $db->table('employee_polices');
- $query->select('employee_polices.id');
+ $query->select('employee_polices.id, employees.id as emp_id, employees.emp_code, employees.name as emp_name, employees.relationship');
$query->join('employees', 'employees.id = employee_polices.employee_id');
$query->where('employee_polices.client_policy_id', $client_policy_id);
$query->where('employees.client_id', $client_id);
@@ -1907,11 +1941,20 @@ class EmpDataServiceController extends BaseController
$query->limit(1);
$result = $query->get()->getRowArray();
+ // Kint::dump($result);
+
if (isset($result['id']) && $result['id'] !== null) {
$emp_policy_ids[] = $result['id']; //for cash deposite
$emp_details[] = array('id' => $result['id'], 'tpa_id' => $value[13], 'uhid' => $value[14]);
+ if (strtolower($result['relationship']) == 'self') {
+ $no_of_insured[] = ['emp_id' => $result['emp_id'], 'emp_code' => $result['emp_code'], 'emp_name' => $result['emp_name'] ];
+ }else{
+ $no_of_dependent[] = ['emp_id' => $result['emp_id'], 'emp_code' => $result['emp_code'], 'emp_name' => $result['emp_name'] ];
+ }
}
+
+
if(in_array($file['event_type'], ['missed_inception']) && isset($value[18])){
$endorsement_id = $value[18];
@@ -1973,7 +2016,7 @@ class EmpDataServiceController extends BaseController
}
- // dd($emp_endorsement_table_data, $enrollment_file_id);
+ // dd($emp_endorsement_table_data, $enrollment_file_id, $no_of_insured, $no_of_dependent);
//update the employee policy data (TPAID or UHID)
$return = $this->employeePolicyModel->bulkUpdate($emp_details);
@@ -1993,6 +2036,10 @@ class EmpDataServiceController extends BaseController
$this->myLogger->logme('error', 'Inception Update TPA and UHID -- batch file status : {data}', ['data' => $status_val]);
$this->myLogger->logme('error', 'Inception Update TPA and UHID -- total amount for cash deposite : {data}', ['data' => $totals]);
+ //get the BASE PREMIUM and GST for BDS Entry
+ $base_bremium_and_gst = $this->getInceptionBasePremium($emp_policy_ids);
+ $this->myLogger->logme('error', 'Inception Base Premium and GST :'. json_encode($base_bremium_and_gst ?? []));
+
//update CD transaction entry if only insurer
if ($file['insurer_or_tpa'] == 'insurer') {
@@ -2035,6 +2082,10 @@ class EmpDataServiceController extends BaseController
'endorsement_no' => $endorsement_id ?? null,
'emp_count' => $emp_count ?? null,
'action_type' => $file['event_type'] ?? null,
+ 'no_of_insured' => count($no_of_insured ?? []) ?? null,
+ 'no_of_dependent' => count($no_of_dependent ?? []) ?? null,
+ 'base_premium' => $base_bremium_and_gst['base_premium'] ?? null,
+ 'gst' => $base_bremium_and_gst['gst'] ?? null,
]]);
// $this->cashDepositCalculationForInception($depositeData);
@@ -2977,6 +3028,8 @@ class EmpDataServiceController extends BaseController
$endorsement_id = '';
$enrollment_file_id = '';
$endorsement_details = [];
+ $no_of_insured = [];
+ $no_of_dependent = [];
$totals = 0;
foreach ($excel_data as $key => $value) {
@@ -2989,7 +3042,14 @@ class EmpDataServiceController extends BaseController
$result = $this->empEndorsementModel
- ->select('emp_endorsement.*, employees.id as emp_id, employee_polices.id as emp_policy_id')
+ ->select('
+ emp_endorsement.*,
+ employees.id as emp_id,
+ employees.name as emp_name,
+ employees.emp_code,
+ employees.relationship,
+ employee_polices.id as emp_policy_id
+ ')
->join('employee_polices', 'employee_polices.id = emp_endorsement.pk')
->join('employees', 'employees.emp_code = emp_endorsement.emp_code')
->where('employees.emp_code', $emp_code)
@@ -3015,6 +3075,11 @@ class EmpDataServiceController extends BaseController
$emp_policy_ids[] = array('id' => $result['emp_policy_id'], 'is_active' => 0);
$employeeIds[] = $result['emp_policy_id'];
$endorsement_details[] = array('id' => $result['id'], 'group_key' => $result['group_key'], 'endorsement_id' => $value[19], 'status' => 'complete');
+ if (strtolower($result['relationship']) == 'self') {
+ $no_of_insured[] = ['emp_id' => $result['emp_id'], 'emp_code' => $result['emp_code'], 'emp_name' => $result['emp_name'] ];
+ }else{
+ $no_of_dependent[] = ['emp_id' => $result['emp_id'], 'emp_code' => $result['emp_code'], 'emp_name' => $result['emp_name'] ];
+ }
}
$empData = $this->employeePolicyModel
@@ -3082,6 +3147,11 @@ class EmpDataServiceController extends BaseController
$this->myLogger->logme('error', 'SI Enhancement Update Endorsement ID -- Employee count : {data}', ['data' => $emp_count]);
$this->myLogger->logme('error', 'SI Enhancement Update Endorsement ID -- Batch File status : {data}', ['data' => $status_val]);
+ //get the BASE PREMIUM and GST for BDS Entry
+ $base_bremium_and_gst = $this->getInceptionBasePremium($employeeIds);
+ $this->myLogger->logme('error', 'SI Enhancement Base Premium and GST :'. json_encode($base_bremium_and_gst ?? []));
+
+
//call the cash deposite function
if ($file['insurer_or_tpa'] == 'insurer') {
@@ -3105,6 +3175,10 @@ class EmpDataServiceController extends BaseController
'endorsement_no' => $endorsement_id ?? null,
'emp_count' => $emp_count ?? null,
'action_type' => $file['event_type'] ?? null,
+ 'no_of_insured' => count($no_of_insured ?? []) ?? null,
+ 'no_of_dependent' => count($no_of_dependent ?? []) ?? null,
+ 'base_premium' => $base_bremium_and_gst['base_premium'] ?? null,
+ 'gst' => $base_bremium_and_gst['gst'] ?? null,
]]);
}
@@ -3493,6 +3567,8 @@ class EmpDataServiceController extends BaseController
$employee_policy_table_primaryKey = [];
$endorsement_id = '';
$enrollment_file_id = null; //files table primary key
+ $no_of_insured = [];
+ $no_of_dependent = [];
$totals = 0;
@@ -3526,6 +3602,12 @@ class EmpDataServiceController extends BaseController
$employee_policy_table_data[] = array('id' => $result['emp_policy_primarykey'], 'date_of_exit' => change_date_format($result['date_of_exit']), 'reason_for_exit' => $result['reason_for_exit'], 'claim_status' => $result['claim_status'], 'status' => $result['status']);
// $employees_table_data[] = array('id' => $result['employees_id'], 'emp_status' => $result['status']);
$emp_endorsement_table_data[] = array('id' => $result['emp_endorsement_primarykey'], 'group_key' => $result['group_key'], 'endorsement_id' => $value[15], 'status' => 'complete');
+
+ if (strtolower($result['relationship']) == 'self') {
+ $no_of_insured[] = ['emp_id' => $result['employees_primarykey'], 'emp_code' => $result['emp_code'], 'emp_name' => $result['emp_name'] ];
+ }else{
+ $no_of_dependent[] = ['emp_id' => $result['employees_primarykey'], 'emp_code' => $result['emp_code'], 'emp_name' => $result['emp_name'] ];
+ }
}
}
@@ -3575,6 +3657,9 @@ class EmpDataServiceController extends BaseController
$this->myLogger->logme('error', 'Deletion Update Endorsement ID -- Employee count : {data}', ['data' => $emp_count]);
$this->myLogger->logme('error', 'Deletion Update Endorsement ID -- Batch File status : {data}', ['data' => $status_val]);
+ $base_bremium_and_gst = $this->getDeletionBasePremium($employee_policy_table_primaryKey, ['client_policy_id' => $client_policy_id]);
+ $this->myLogger->logme('error', 'Deletion Base Premium and GST :'. json_encode($base_bremium_and_gst ?? []));
+
//call the cash deposite function
if ($file['insurer_or_tpa'] == 'insurer') {
@@ -3598,6 +3683,10 @@ class EmpDataServiceController extends BaseController
'endorsement_no' => $endorsement_id ?? null,
'emp_count' => $emp_count ?? null,
'action_type' => $file['event_type'] ?? null,
+ 'no_of_insured' => count($no_of_insured ?? []) ?? null,
+ 'no_of_dependent' => count($no_of_dependent ?? []) ?? null,
+ 'base_premium' => $base_bremium_and_gst['base_premium'] ?? null,
+ 'gst' => $base_bremium_and_gst['gst'] ?? null,
]]);
}
@@ -4262,8 +4351,6 @@ class EmpDataServiceController extends BaseController
}
-
-
/**
* Below function retrieves the policy name associated with a given client policy ID.
*
@@ -4280,8 +4367,6 @@ class EmpDataServiceController extends BaseController
}
-
-
/**
* Below function converts row data into column data format for SI enhancement.
*
@@ -4838,8 +4923,8 @@ class EmpDataServiceController extends BaseController
$this->myLogger->logme("error", "Policy transaction inserted successfully: " . json_encode(['insert_id' => $insert_id]));
//do not remove this commented item
- // $coShareDetails = $this->ConstructPTShareData($policy_data, $insert_id);
- // $pt_co_share_id = $this->PTCOShareDetailsModel->insert($coShareDetails);
+ $coShareDetails = $this->ConstructPTShareData($policy_data, $insert_id, $params);
+ $pt_co_share_id = $this->PTCOShareDetailsModel->insert($coShareDetails);
// $this->myLogger->logme("error", "PT Co share data inserted successfully: " . json_encode(['pt_co_share_id' => $pt_co_share_id]));
@@ -4875,11 +4960,12 @@ class EmpDataServiceController extends BaseController
private function constructBDSData($policy_data, $lead_data, $params)
{
-
+
+ $this->myLogger->logme("error", "constructBDSData Params: " . json_encode(['policy_data' => $policy_data, 'lead_data' => $lead_data, 'params' => $params]));
$action_type_string = $params['action_type'];
- if(in_array($params['action_type'], ['dependent_addition', 'missed_inception'])){
+ if(in_array($params['action_type'], ['dependent_addition', 'missed_inception'])){
$action_type_string = "addition";
- }
+ }
$policyTransactionData = [
@@ -4900,9 +4986,9 @@ class EmpDataServiceController extends BaseController
'policy_end_date' => $policy_data['policy_end_date'] ?? null,
'data_received_date' => $policy_data['data_received_date'] ?? null,
'closure_date' => $policy_data['closure_date'] ?? null,
- 'emp_count' => $policy_data['emp_count'] ?? null,
- 'dependent_count' => $policy_data['dependent_count'] ?? null,
- 'revenue_type' => ($lead_data['lead_type'] == 1 ? "NA" : ($lead_data['lead_type'] == 2 ? "EA" : "EANR") ) ?? null,
+ 'emp_count' => $params['no_of_insured'] ?? null,
+ 'dependent_count' => $params['no_of_dependent'] ?? null,
+ 'revenue_type' => isset($lead_data['lead_type']) ?($lead_data['lead_type'] == 1 ? "NA" : ($lead_data['lead_type'] == 2 ? "EA" : "EANR") ) : null,
'co_share' => $policy_data['co_share'] ?? 0,
'pre_payable_by' => $policy_data['pre_payable_by'] ?? 1,
'renewal_date' => $policy_data['policy_end_date'] ?? null,
@@ -4910,8 +4996,10 @@ class EmpDataServiceController extends BaseController
'ct_type' => 1,
'is_cd_reduce_from_bds' => 0,
'client_type_id' => 0,
+ 'bro_payable_by' => 1,
- 'status' => "co_insurer_pending",
+ // 'status' => "co_insurer_pending",
+ 'status' => "completed",
'action_type' => $action_type_string ?? null,
'endorsement_no' => $params['endorsement_no'] ?? null,
@@ -4926,17 +5014,29 @@ class EmpDataServiceController extends BaseController
return $policyTransactionData;
}
- private function ConstructPTShareData($policy_data, $pt_id)
+ private function ConstructPTShareData($policy_data, $pt_id, $params)
{
+ $policyTypeModel = new PolicyTypeModel();
+ $policy_type_data = $policyTypeModel->where('is_active', 1)->where('id', $policy_data['policy_type_id'])->first();
+
$coShareData = [
'pt_id' => $pt_id,
'insurer_id' => $policy_data['insurer_id'],
'insurer_branch_id' => $policy_data['insurer_branch_id'],
+ 'bp_amt' => $params['base_premium'],
+ 'cop_amt' => $params['base_premium'],
+ 'bp_gst_amt' => $params['gst'],
+ 'bp_sgst' => 9,
+ 'bp_cgst' => 9,
'co_share_type' => 1,
+ 'co_share_per' => 100,
+ 'standerd_bp_per' => $policy_type_data['ebp'],
+ 'amount' => ($params['base_premium'] ?? 0) + ($params['gst'] ?? 0),
];
- $this->myLogger->logme("error", "Constructed PT co-share data: " . json_encode($coShareData));
+ $coShareData['exp_amt'] = (($params['base_premium'] ?? 0) * ($policy_type_data['ebp'] ?? 0)) / 100;
+ $this->myLogger->logme("error", "Constructed PT co-share data: " . json_encode($coShareData));
return $coShareData;
}
@@ -5085,8 +5185,117 @@ class EmpDataServiceController extends BaseController
}
+ // --------------------------------------------------------------------------------------------------------------------------------
+
+ public function getInceptionBasePremium($ids)
+ {
+ $this->myLogger->logme('error', 'getInceptionBasePremium called with the params : ' . json_encode($ids ?? ""));
+
+ // Validate input
+ if (empty($ids) || !is_array($ids)) {
+ return ['base_premium' => 0, 'gst' => 0];
+ }
+ // Sanitize IDs to ensure they are integers
+ $sanitizedIds = array_filter(array_map('intval', $ids), function ($id) {
+ return $id > 0;
+ });
+ if (empty($sanitizedIds)) {
+ return ['base_premium' => 0, 'gst' => 0];
+ }
+ // Use parameter binding for security
+ $placeholders = str_repeat('?,', count($sanitizedIds) - 1) . '?';
+ $amount = $this->employeePolicyModel->query("
+ SELECT SUM(employee_polices.rata_premimum) AS base_premium,
+ SUM(employee_polices.gst) AS gst
+ FROM employee_polices
+ JOIN employees ON employees.id = employee_polices.employee_id
+ WHERE employee_polices.id IN ($placeholders)
+ ", $sanitizedIds)->getRowArray();
+
+ $this->myLogger->logme('error', 'Get Last Executed Query : '.db_connect()->getLastQuery());
+
+ // Ensure we return proper numeric values
+ return [
+ 'base_premium' => round($amount['base_premium'] ?? 0, 2),
+ 'gst' => round($amount['gst'] ?? 0, 2)
+ ];
+ }
+
+ public function getDeletionBasePremium($ids, $params)
+ {
+ $this->myLogger->logme('error', 'getDeletionBasePremium called with the params : ' . json_encode(['emp_policy_id' => $ids ?? [], 'params' => $params ?? []] ?? ""));
+
+ // Validate input
+ if (empty($ids) || !is_array($ids)) {
+ return ['base_premium' => 0, 'gst' => 0];
+ }
+
+ // Sanitize IDs to ensure they are integers
+ $sanitizedIds = array_filter(array_map('intval', $ids), function ($id) {
+ return $id > 0;
+ });
+
+ if (empty($sanitizedIds)) {
+ return ['base_premium' => 0, 'gst' => 0];
+ }
+
+ // Validate client_policy_id parameter
+ if (empty($params['client_policy_id'])) {
+ return ['base_premium' => 0, 'gst' => 0];
+ }
+
+ $get_insurer_id_from_client_policy = $this->clientPolicyModel
+ ->select('insurers.deletion_add_day')
+ ->join('insurers', 'client_policy.insurer_id = insurers.id')
+ ->where('client_policy.id', intval($params['client_policy_id']))
+ ->first();
+
+ $add_one_day = 0;
+ if (isset($get_insurer_id_from_client_policy['deletion_add_day']) && $get_insurer_id_from_client_policy['deletion_add_day'] == 1) {
+ $add_one_day = 1;
+ }
+
+ // Use parameter binding for security
+ $placeholders = str_repeat('?,', count($sanitizedIds) - 1) . '?';
+
+ // Prepare parameters array (ids repeated twice for both IN clauses)
+ $queryParams = array_merge($sanitizedIds, $sanitizedIds);
+
+ $amount = $this->employeePolicyModel->query("
+ SELECT
+ SUM(ROUND(
+ ((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, emp_endorsement.new_value) + ?)) / 365),
+ 2
+ )) AS base_premium,
+ SUM(ROUND(
+ (((employee_polices.rata_premimum * (DATEDIFF(employee_polices.policy_end_date, emp_endorsement.new_value) + ?)) / 365) * 0.18),
+ 2
+ )) AS gst
+ FROM
+ employee_polices
+ JOIN
+ employees ON employees.id = employee_polices.employee_id
+ JOIN
+ emp_endorsement ON emp_endorsement.pk = employee_polices.id
+ WHERE
+ employee_polices.id IN ($placeholders)
+ AND emp_endorsement.pk IN ($placeholders)
+ AND employee_polices.claim_status = 0
+ AND emp_endorsement.field_name = 'date_of_exit'
+ AND emp_endorsement.is_active = 1
+ AND emp_endorsement.actions = 'd'
+ AND emp_endorsement.status != 'truncated'
+ ", array_merge([$add_one_day, $add_one_day], $queryParams))->getRowArray();
+
+ $this->myLogger->logme('error', 'Get Last Executed Query : '.db_connect()->getLastQuery());
+ // Ensure we return proper numeric values with rounding
+ return [
+ 'base_premium' => round($amount['base_premium'] ?? 0, 2),
+ 'gst' => round($amount['gst'] ?? 0, 2)
+ ];
+ }
}
diff --git a/app/Controllers/EmployeeController.php b/app/Controllers/EmployeeController.php
index 512122c6..dd80cd05 100755
--- a/app/Controllers/EmployeeController.php
+++ b/app/Controllers/EmployeeController.php
@@ -302,9 +302,11 @@ class EmployeeController extends AdminController
//for TPA/insurer upload
$data['events'] = ['inception' => 'Inception (Employee + Dependents)', 'missed_inception' => 'Missed Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addition' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement'];
//for inception upload
- $data['actions'] = ['inception' => 'Inception (Employee + Dependents)', 'missed_inception' => 'Missed Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addition' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement','enrollment' => 'Enrolment'];
-
- $data['import_or_export'] = ['import' => 'Import', 'export' => 'Export'];
+ $data['actions'] = ['inception' => 'Inception (Employee + Dependents)', 'missed_inception' => 'Missed Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addition' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement'];
+ // $data['actions'] = ['inception' => 'Inception (Employee + Dependents)', 'missed_inception' => 'Missed Inception (Employee + Dependents)', 'addition' => 'Addition (Employee + Dependents)', 'dependent_addition' => 'Dependent Addition (Only Dependents)', 'deletion' => 'Deletion', 'correction' => 'Correction', 'si_enhancement' => 'SI Enhancement','enrollment' => 'Enrolment'];
+
+ // $data['import_or_export'] = ['import' => 'Import', 'export' => 'Export'];
+ $data['import_or_export'] = ['import' => 'Upload', 'export' => 'Download'];
$data['insurer_or_tpa'] = ['insurer' => 'Insurer', 'tpa' => 'TPA'];
// $data['fileList'] = $this->fileModel
diff --git a/app/Controllers/EmployeeServiceController.php b/app/Controllers/EmployeeServiceController.php
index e973a33a..2cc47520 100755
--- a/app/Controllers/EmployeeServiceController.php
+++ b/app/Controllers/EmployeeServiceController.php
@@ -394,7 +394,7 @@ class EmployeeServiceController extends AdminController
'is_mandatory' => true,
'data_type' => 'str',
'format' => null,
- 'allowed_values' => ['name', 'dob', 'relationship']
+ 'allowed_values' => ['name', 'dob', 'relationship', 'email_corporate']
],
'value' => [
'col_idx' => 4,
@@ -1319,6 +1319,7 @@ class EmployeeServiceController extends AdminController
//get file name
$file_id = $params['file_id'];
$file = $this->fileModel->find($file_id);
+ // dd($file);
$file_name_with_path = WRITEPATH."/uploads/excel/".$file['file_name'];
@@ -1330,6 +1331,7 @@ class EmployeeServiceController extends AdminController
$excel_data = $sheet->rangeToArray('A1:' . $allowedHighestColumn['col_cell_name'] . $highestRowAndColumn['row']);
// $excel_data = $sheet->rangeToArray('A1:' . $highestRowAndColumn['column'] . $highestRowAndColumn['row']);
+ // dd($excel_data);
unset($excel_data[0]);
// kint::dump($excel_data);
$endorsement_data = [];
@@ -1379,10 +1381,14 @@ class EmployeeServiceController extends AdminController
->where('employee_polices.client_policy_id',$file['policy_id'])
->where('employees.emp_status !=','truncated')
->where('employees.is_active', 1)
+ ->where('employee_polices.status !=','truncated')
+ ->where('employee_polices.is_active', 1)
->first();
// $employee = $this->employeeModel->where('emp_code', $row[1])->where('name',$row[2])->where('client_id',$file['client_id'])->first();
// dd($employee);
+ // kint::dump($employee);
+
if(is_array($employee) && count($employee))
{
// dd($employee);
@@ -1406,7 +1412,13 @@ class EmployeeServiceController extends AdminController
if(!in_array($employee['id'],$endorsement_data))//make entry in endorsement firsttime only with checking that PK of emp exisintg in variable $endorsement_data
{
- $employee_policy = $this->employeePolicyModel->where('employee_id',$employee['id'])->where('client_policy_id',$file['policy_id'])->first();
+ $employee_policy = $this->employeePolicyModel
+ ->where('employee_id',$employee['id'])
+ ->where('client_policy_id',$file['policy_id'])
+ ->where('status !=','truncated')
+ ->where('is_active', 1)
+ ->first();
+
$data = ['emp_id' => $employee['id'],'name' => $employee['name'],'emp_status' => $employee['emp_status'],'emp_policy_id' => $employee_policy['id'],'emp_code' => $employee['emp_code'],'change_event' => $employee['change_event'],'date_of_exit' => $employee_policy['date_of_exit'],'reason_for_exit' => $employee_policy['reason_for_exit'],'status' => $employee_policy['status'],'claim_status' => $employee_policy['claim_status']];
$endorsement($data,$file,$row);
$endorsement_data[] = $employee['id'];
@@ -1447,7 +1459,7 @@ class EmployeeServiceController extends AdminController
//set success msg to pull notifications
$this->setPullNotification($this->getFileMetaDataByFileId($file_id,'success'));
- return $endorsement_data;
+ return $endorsement_data;
}
diff --git a/app/Controllers/Home.php b/app/Controllers/Home.php
index 9f76bf77..09d3dc19 100755
--- a/app/Controllers/Home.php
+++ b/app/Controllers/Home.php
@@ -2,6 +2,12 @@
namespace App\Controllers;
+
+use GeminiAPI\Client;
+use GeminiAPI\Resources\ModelName;
+use GeminiAPI\Resources\Parts\TextPart;
+
+
class Home extends PublicController
{
public function index(): string
@@ -28,4 +34,26 @@ class Home extends PublicController
return $payload['a'] + $payload['b'];
}
+ public function check_Gemini()
+ {
+ try {
+ $apiKey = 'AIzaSyBbx-uotRBqkYhqLpmD60420E_a0G0duP8';
+ // Initialize the Gemini client
+ $client = new Client($apiKey);
+
+ // Send a prompt to the Gemini Pro model
+ $response = $client->generativeModel(ModelName::GEMINI_PRO)->generateContent(
+ new TextPart('Write a short, creative story about a knight and a dragon.')
+ );
+
+ // Display the generated text
+ $data['gemini_response'] = $response->text();
+ } catch (\Exception $e) {
+ // Handle any errors that occur during the API call
+ $data['gemini_response'] = 'An error occurred: ' . $e->getMessage();
+ }
+
+ print_rr($data);
+ }
+
}
diff --git a/app/Controllers/ICICILombardController.php b/app/Controllers/ICICILombardController.php
index e1c09e30..9433f7f1 100644
--- a/app/Controllers/ICICILombardController.php
+++ b/app/Controllers/ICICILombardController.php
@@ -62,9 +62,15 @@ class ICICILombardController extends AdminController
//'Scope: esbgpabatchcreation'
];
+ #old policy info start
+ #"PolicyNumber" => "4016/A/51974976/00/000",
+ # "CDBGAccountNumber" => "CD-MUM-3344",
+ #"CorrelationId" => "86383c78-4c67-4e4d-9aa0-8f926fb0d55f",
+ #old policy inf end
+
$body = [
- "PolicyNumber" => "4016/A/51974976/00/000",
- "CDBGAccountNumber" => "CD-MUM-3344",
+ "PolicyNumber" => "4016/A/O/53077718/00/000",
+ "CDBGAccountNumber" => "CD-MUM-0026",
"CorrelationId" => "86383c78-4c67-4e4d-9aa0-8f926fb0d55f",
"MemberDetails" => [
[
@@ -74,8 +80,8 @@ class ICICILombardController extends AdminController
"DOB" => "7-JUL-1983",
"Relationship" => "SELF",
"Gender" => "MALE",
- "DOC" => "20-JAN-2020",
- "SumInsured" => "600000",
+ "DOC" => "08-JUL-2025",
+ "SumInsured" => "400000",
"EmailId" => "ABC@GMAIL.COM",
"FlagStatus" => "A"
],
@@ -86,8 +92,8 @@ class ICICILombardController extends AdminController
"DOB" => "8-AUG-1970",
"Relationship" => "MOTHER",
"Gender" => "FEMALE",
- "DOC" => "20-JAN-2020",
- "SumInsured" => "600000",
+ "DOC" => "08-JUL-2025",
+ "SumInsured" => "400000",
"EmailId" => "ABC@GMAIL.COM",
"FlagStatus" => "A"
],
@@ -97,13 +103,13 @@ class ICICILombardController extends AdminController
"InsuredName" => "ABC28142",
"DOB" => "8-SEP-1970",
"Gender" => "MALE",
- "SumInsured" => "600000",
+ "SumInsured" => "400000",
"EmailId" => "ABC@GMAIL.COM",
"FlagStatus" => "M"
],
[
"UHID" => "IL00688842552",
- "DOL" => "20-JAN-2020",
+ "DOL" => "08-JUL-2025",
"FlagStatus" => "D"
]
]
diff --git a/app/Controllers/LeadsController.php b/app/Controllers/LeadsController.php
index 2c90ed53..b1db3311 100644
--- a/app/Controllers/LeadsController.php
+++ b/app/Controllers/LeadsController.php
@@ -121,6 +121,7 @@ class LeadsController extends BaseController
];
$this->claim_type_for_gpa = [
+ 'nil' => 'Nil',
'accident_death' => 'Accident Death',
'permanent_total_disablement' => 'Permanent Total Disablement',
'permanent_partial_disablement' => 'Permanent Partial Disablement',
@@ -207,6 +208,8 @@ class LeadsController extends BaseController
private function prepareLeadData()
{
$data = $this->request->getPost();
+ $data['client_type'] = 1;
+ $data['pan'] = "";
if ($data['lead_type'] != 1) {
$client_data = $this->clientModel->where('id', $data['client_id'])->where('is_active', 1)->first();
@@ -1273,8 +1276,8 @@ class LeadsController extends BaseController
'Total Lives' => $rfq_data['incept_no_of_lives'],
'Period of Insurance ' => !empty($rfq_data['policy_start_date']) && !empty($rfq_data['policy_end_date']) ? date('d-m-Y', strtotime($rfq_data['policy_start_date'])) . ' to ' . date('d-m-Y', strtotime($rfq_data['policy_end_date'])) : "To be decided",
- 'Insurer' => $rfq_data['insurer_name'] ?? " - ",
- 'TPA' => $rfq_data['tpa_name'] ?? " - ",
+ // 'Insurer' => $rfq_data['insurer_name'] ?? " - ",
+ // 'TPA' => $rfq_data['tpa_name'] ?? " - ",
// 'Policy Run Days' => $rfq_data['policy_run_days'],
];
} else if (in_array($rfq_data['policy_type_id'], [1, 6, 7])) {
@@ -1344,6 +1347,7 @@ class LeadsController extends BaseController
$sheetName = 'Worksheet';
if ($type == 2) {
$sheetName = 'QCR';
+ // $propsal_and_insurer = "Proposal 1-ICICIPRU-ICICI001";
$data = $this->convertJsonForQCR($data, $type);
if ($propsal_and_insurer !== null) {
list($proposal_key, $insurer_key) = explode('-', $propsal_and_insurer, 2);
@@ -1485,9 +1489,16 @@ class LeadsController extends BaseController
$columnLetter = 'A';
$header_actual_count = 0;
+ $headerIndex = 0;
foreach ($headers as $header) {
// Kint::dump($header);
+ if($is_placement == true){
+ //for placement proposal only
+ $nxt_ro = $rowNumber + 1;
+ $sheet->mergeCells("C{$rowNumber}:C{$nxt_ro}");
+ }
+
if (in_array($header['parentHeader'], ['Item Key', 'Action'])) {
continue;
}
@@ -1499,10 +1510,18 @@ class LeadsController extends BaseController
if ($header['parentHeader'] === 'Sno') {
$header['parentHeader'] = 'S.No.';
$sheet->getColumnDimension('A')->setWidth(10);
+
+ //merge the 2 row cells of the S.No.
+ $nxt_ro = $rowNumber + 1;
+ $sheet->mergeCells("{$columnLetter}{$rowNumber}:{$columnLetter}{$nxt_ro}");
}
if ($header['parentHeader'] === 'Particulars') {
$sheet->getColumnDimension('B')->setWidth(35);
+
+ //merge the 2 row cells of the particulars
+ $nxt_ro = $rowNumber + 1;
+ $sheet->mergeCells("{$columnLetter}{$rowNumber}:{$columnLetter}{$nxt_ro}");
}
$startColumn = $columnLetter; // Start of the current header range
@@ -1512,9 +1531,12 @@ class LeadsController extends BaseController
$sheet->setCellValue("{$startColumn}{$rowNumber}", "Terms");
} else {
if(in_array($header['parentHeader'], ["Existing Renewal", "Existing Rollover"])){
- $sheet->setCellValue("{$startColumn}{$rowNumber}", "Terms");
- }else{
+ $sheet->setCellValue("{$startColumn}{$rowNumber}", "Existing Terms");
+ }else if(in_array($header['parentHeader'], ["Particulars", "S.No."])){
$sheet->setCellValue("{$startColumn}{$rowNumber}", $header['parentHeader']);
+ }else{
+ $headerIndex = $headerIndex + 1;
+ $sheet->setCellValue("{$startColumn}{$rowNumber}", "Proposal Terms " . $headerIndex);
}
}
$sheet->getStyle("{$startColumn}{$rowNumber}")->applyFromArray([
@@ -1585,9 +1607,9 @@ class LeadsController extends BaseController
$sheet->getRowDimension($subHeaderRow)->setRowHeight(20); // Subheader row height
if ($is_placement == true) {
- $rowNumber = $subHeaderRow;
+ $rowNumber = $subHeaderRow + 1;
} else {
- $rowNumber = $subHeaderRow + 2;
+ $rowNumber = $subHeaderRow + 1;
}
// dd($rowNumber);
@@ -1629,6 +1651,7 @@ class LeadsController extends BaseController
//premium data
if ($type == 2) {
+ if($is_placement == true){$columnLetterForPremium = "B";}else{$columnLetterForPremium = "C";}
$rowNumber += 2;
// Add premium data
@@ -1636,19 +1659,26 @@ class LeadsController extends BaseController
// $labelArray = ["Premium", "GST (%)", "GST Amount (₹)", "Total"];
$labelArray = ["Premium", "GST Amount (₹)", "Total"];
$premiumData = $data['premium_data']['data'];
+ // dd($premiumData);
// $premium = [$labelArray[0]];
// $gst = [$labelArray[1]];
// $gstAmt = [$labelArray[1]];
// $total = [$labelArray[2]];
+ if($is_placement == true){
+ $premium[] = $labelArray[0];
+ $gstAmt[] = $labelArray[1];
+ $total[] = $labelArray[2];
+ }
+
foreach ($premiumData as $proposal => $insurers) {
if ($proposal != 'Particulars') {
foreach ($insurers as $insurer => $values) {
if($insurer == 'Quote Asked'){
- $premium[] = $labelArray[0];
+ $premium[] = count($insurers ?? []) > 1 ? $labelArray[0] : "";
// $gst[] = "";
- $gstAmt[] = $labelArray[1];
- $total[] = $labelArray[2];
+ $gstAmt[] = count($insurers ?? []) > 1 ? $labelArray[1] : "";
+ $total[] = count($insurers ?? []) > 1 ? $labelArray[2] : "";
}else{
$premium[] = formatIndianCurrency($values[$labelArray[0]]);
// $gst[] = $values[$labelArray[1]];
@@ -1659,8 +1689,10 @@ class LeadsController extends BaseController
}
}
+ // dd([$premium, $gstAmt, $total]); die;
+
foreach ([$premium, $gstAmt, $total] as $index => $rowData) {
- $columnLetter = 'C';
+ $columnLetter = $columnLetterForPremium;
foreach ($rowData as $key => $value) {
$sheet->setCellValue("{$columnLetter}{$rowNumber}", $value);
if (in_array($value, $labelArray)) {
@@ -1677,8 +1709,8 @@ class LeadsController extends BaseController
$prevColumn3 = $this->getPreviousColumn($columnLetter, 2);
}
- $premiumRange = "C" . ($rowNumber - 3) . ":" . "{$prevColumn3}" . ($rowNumber - 1);
- // dd($premiumRange);
+ $premiumRange = $columnLetterForPremium . ($rowNumber - 3) . ":" . "{$prevColumn3}" . ($rowNumber - 1);
+ // dd($prevColumn3, $premiumRange, $this->getPreviousColumn($columnLetter, 2), $columnLetter, $rowNumber);
$sheet->getStyle($premiumRange)->applyFromArray([
'borders' => [
@@ -1792,6 +1824,72 @@ class LeadsController extends BaseController
$filename = "{$rfq_data['client_name']}_{$rfq_data['policy_type']}_{$string}_" . $policy_year . '_' . '.xlsx';
}
+ //claim history new sheet;
+ if (!empty($rfq_data['fin_years_claims'])) {
+
+ $claim_details = json_decode($rfq_data['fin_years_claims'], true) ?? [];
+
+ if (!empty($claim_details['finyear'])) {
+
+ // Get headers dynamically
+ $headers = array_map(function ($key) {
+ return ucwords(str_replace('_', ' ', $key));
+ }, array_keys($claim_details['finyear'][0]));
+
+ $newSheet = new Worksheet($spreadsheet, 'Claims Experience');
+ $spreadsheet->addSheet($newSheet);
+ $spreadsheet->setActiveSheetIndexByName('Claims Experience');
+ $sheet = $spreadsheet->getActiveSheet();
+
+ // Set headers
+ $sheet->fromArray($headers, NULL, 'A1');
+
+ // Apply background color and bold style to headers
+ $headerCellRange = 'A1:' . chr(64 + count($headers)) . '1'; // e.g., A1:G1
+
+ $sheet->getStyle($headerCellRange)->getFont()->setBold(true);
+ $sheet->getStyle($headerCellRange)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB('ADD8E6');
+
+ // Add border to header
+ $sheet->getStyle($headerCellRange)->getBorders()->getAllBorders()->setBorderStyle(Border::BORDER_THIN);
+
+ // Fill data and apply borders
+ $row = 2;
+ foreach ($claim_details['finyear'] as $record) {
+ $col = 'A';
+ foreach ($record as $value) {
+ $label = ucwords(str_replace('_', ' ', ($value ?? "")));
+ $sheet->setCellValue($col . $row, $label);
+ $col++;
+ }
+
+ // Apply border to each data row
+ $sheet->getStyle('A' . $row . ':' . chr(64 + count($headers)) . $row)
+ ->getBorders()->getAllBorders()->setBorderStyle(Border::BORDER_THIN);
+
+ $row++;
+ }
+ // Auto-size all columns based on header count
+ for ($i = 0; $i < count($headers); $i++) {
+ $colLetter = chr(65 + $i); // 'A', 'B', etc.
+ $sheet->getColumnDimension($colLetter)->setAutoSize(true);
+ }
+
+ // Enable wrap text for all cells
+ $maxColLetter = chr(64 + count($headers)); // Last column letter
+ $sheet->getStyle("A2:{$maxColLetter}{$row}")->getAlignment()->setWrapText(true);
+
+ // Optional: center vertically for neatness
+ $sheet->getStyle("A2:{$maxColLetter}{$row}")->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER);
+
+ // Optional: Make row height auto (helps when wrap text is on)
+ for ($i = 2; $i < $row; $i++) {
+ $sheet->getRowDimension($i)->setRowHeight(-1);
+ }
+
+ }
+ }
+
// Save to temporary location
$uploadFilePath = WRITEPATH . 'tmp/' . $filename;
$writer = new Xlsx($spreadsheet);
diff --git a/app/Controllers/MasterController.php b/app/Controllers/MasterController.php
index 0a3c357d..61c5aedf 100755
--- a/app/Controllers/MasterController.php
+++ b/app/Controllers/MasterController.php
@@ -1225,53 +1225,204 @@ class MasterController extends AdminController
$data['page_name'] = 'CD Master List';
$data['CD_Master_Data'] = $this->CDMasterModel->getCDMasterList();
$data['insurers'] = $this->insurerModel->where('is_active', 1)->findAll();
+ $data['insurer_branch'] = $this->insurerBranchModel->where('is_active', 1)->findAll();
$data['clients'] = $this->clientModel->where('is_active', 1)->findAll();
$this->loadLayout('cd_master_list', $data);
}
- public function createCDMasterData()
- {
+ // public function createCDMasterData()
+ // {
+ // $data = $this->request->getPost();
+ // $id = $data['PrimaryKey'];
+ // $date = (string) $this->request->getPost('opening_date');
+ // $data['opening_date'] = date('Y-m-d', strtotime($date));
+ // // print_rr($data);die();
+
+ // $loggedInUserID = get_session_userid();
+
+ // if (empty($id)) {
+
+ // if ($data) {
+
+ // $insert = $this->CDMasterModel->insert($data);
+
+ // if ($insert) {
+
+ // // Prepare the array with data
+ // $cd_tranction_data = [
+ // 'amount' => $data['opening_bal'],
+ // 'sub_type_id' => 7,
+ // 'client_id' => $data['client_id'],
+ // 'client_policy_id' => null,
+ // 'cd_ac_no' => $data['cd_ac_no'],
+ // 'endorsement_no' => null,
+ // 'insurer_id' => $data['insurer_id'],
+ // 'description' => 'opening Amount',
+ // 'transaction_type' => 'Credit',
+ // 'event_name' => null,
+ // 'updated_by' => 1,
+ // ];
+
+ // $cd_tranction_data['cd_ac_pk'] = $this->CDMasterModel->insertID();
+ // $response = DepositHelper::saveDeposit($cd_tranction_data, $loggedInUserID);
+
+ // session()->setFlashdata('success', "Cash Deposite Master Added Successfully");
+ // return redirect()->to(base_url('/master/cash_deposite/list'));
+ // } else {
+
+ // session()->setFlashdata('error', "Cash Deposite Master Added Failed");
+ // return redirect()->to(base_url('/master/cash_deposite/list'));
+ // }
+ // } else {
+
+ // session()->setFlashdata('error', "Cash Deposite Master Added Failed. Data Not Found");
+ // return redirect()->to(base_url('/master/cash_deposite/list'));
+ // }
+
+ // } else {
+
+ // if ($data) {
+
+ // $insert = $this->CDMasterModel->where('id', $id)->set($data)->update();
+
+ // $data = $this->CDMasterModel->where('id', $id)->first();
+
+ // $cd_transaction_updated_data = [
+ // 'balance' => $data['opening_bal'],
+ // 'amount' => $data['opening_bal']
+ // ];
+
+ // $cd_tranction = $this->clientDepositModel
+ // ->where('client_id', $data['client_id'])
+ // ->where('insurer_id', $data['insurer_id'])
+ // ->where('cd_ac_no', $data['cd_ac_no'])
+ // ->where('sub_type', 7)
+ // ->set($cd_transaction_updated_data)->update();
+
+ // if ($insert) {
+
+ // session()->setFlashdata('success', "Cash Deposite Master Updated Successfully");
+ // return redirect()->to(base_url('/master/cash_deposite/list'));
+ // } else {
+
+ // session()->setFlashdata('error', "Cash Deposite Master Update Failed");
+ // return redirect()->to(base_url('/master/cash_deposite/list'));
+ // }
+ // } else {
+
+ // session()->setFlashdata('error', "Cash Deposite Master Update Failed. Data Not Found");
+ // return redirect()->to(base_url('/master/cash_deposite/list'));
+ // }
+ // }
+ // }
+
+ public function createCDMasterData()
+ {
+ $this->myLogger->logme("error", 'Create CD Master Data API called.');
$data = $this->request->getPost();
- $date = (string) $this->request->getPost('opening_date');
+ $this->myLogger->logme("error", 'Received POST data: ' . json_encode($data));
+
+ $id = $data['PrimaryKey'] ?? null;
+ $date = (string) ($data['opening_date'] ?? '');
$data['opening_date'] = date('Y-m-d', strtotime($date));
- // print_rr($data);die();
- // Prepare the array with data
- $cd_tranction_data = [
- 'amount' => $data['opening_bal'],
- 'sub_type_id' => 7,
- 'client_id' => $data['client_id'],
- 'client_policy_id' => null,
- 'cd_ac_no' => $data['cd_ac_no'],
- 'endorsement_no' => null,
- 'insurer_id' => $data['insurer_id'],
- 'description' => 'opening Amount',
- 'transaction_type' => 'Credit',
- 'event_name' => null,
- 'updated_by' => 1,
- ];
+ $this->myLogger->logme("error", 'Formatted opening_date: ' . $data['opening_date']);
$loggedInUserID = get_session_userid();
-
- if ($data) {
+ $this->myLogger->logme("error", 'Logged in user ID: ' . $loggedInUserID);
+ // === INSERT ===
+ if (empty($id)) {
+
+ $this->myLogger->logme("error", 'Performing INSERT operation.');
$insert = $this->CDMasterModel->insert($data);
+ $this->myLogger->logme("error", 'Insert result: ' . json_encode($insert));
if ($insert) {
- $cd_tranction_data['cd_ac_pk'] = $this->CDMasterModel->insertID();
- $response = DepositHelper::saveDeposit($cd_tranction_data, $loggedInUserID);
- session()->setFlashdata('success', "Cash Deposite Master Added Successfully");
- return redirect()->to(base_url('/master/cash_deposite/list'));
+ $cd_tranction_data = [
+ 'amount' => $data['opening_bal'],
+ 'sub_type_id' => 7,
+ 'client_id' => $data['client_id'],
+ 'client_policy_id' => null,
+ 'cd_ac_no' => $data['cd_ac_no'],
+ 'endorsement_no' => null,
+ 'insurer_id' => $data['insurer_id'],
+ 'description' => 'Opening Amount',
+ 'transaction_type' => 'Credit',
+ 'event_name' => null,
+ 'updated_by' => 1,
+ 'cd_ac_pk' => $insert,
+ ];
+
+ $this->myLogger->logme("error", 'Saving initial deposit with data: ' . json_encode($cd_tranction_data));
+ $response = DepositHelper::saveDeposit($cd_tranction_data, $loggedInUserID);
+ $this->myLogger->logme("error", 'Deposit save response: ' . json_encode($response));
+
+ $cd_master_data = $this->CDMasterModel->where('is_active', 1)->where('id', $insert)->first();
+ $this->myLogger->logme("error", 'Inserted CD Master data: ' . json_encode($cd_master_data));
+
+ $cd_master_full_data = $this->CDMasterModel->where('is_active', 1)
+ ->where('client_id', $data['client_id'])
+ ->where('insurer_id', $data['insurer_id'])
+ ->where('insurer_branch_id', $data['insurer_branch_id'])
+ ->findAll();
+
+ return $this->respond([
+ 'status' => true,
+ 'code' => 500,
+ 'message' => "CD Master Added Successfully",
+ 'cd_master_data' => $cd_master_data,
+ 'data' => $cd_master_full_data
+ ]);
+
} else {
- session()->setFlashdata('error', "Cash Deposite Master Added Failed");
- return redirect()->to(base_url('/master/cash_deposite/list'));
+ $this->myLogger->logme('error', 'CD Master Insert Failed.');
+ return $this->respond([
+ 'status' => true,
+ 'code' => 500,
+ 'message' => "CD Master Add Failed",
+ ], 200);
}
- } else {
+ }
- session()->setFlashdata('error', "Cash Deposite Master Added Failed. Data Not Found");
- return redirect()->to(base_url('/master/cash_deposite/list'));
+ // === UPDATE ===
+ $this->myLogger->logme("error", 'Performing UPDATE operation for ID: ' . $id);
+
+ $updated = $this->CDMasterModel->where('id', $id)->set($data)->update();
+ $this->myLogger->logme("error", 'Update result: ' . json_encode($updated));
+
+ $existingData = $this->CDMasterModel->where('is_active', 1)->where('id', $id)->first();
+ $this->myLogger->logme("error", 'Existing data after update: ' . json_encode($existingData));
+
+ $cd_transaction_updated_data = [
+ 'balance' => $existingData['opening_bal'],
+ 'amount' => $existingData['opening_bal']
+ ];
+
+ $updateDeposit =$this->clientDepositModel
+ ->where('client_id', $existingData['client_id'])
+ ->where('insurer_id', $existingData['insurer_id'])
+ ->where('cd_ac_no', $existingData['cd_ac_no'])
+ ->where('sub_type', 7)
+ ->set($cd_transaction_updated_data)
+ ->update();
+ $this->myLogger->logme("error", 'Client Deposit Update result: ' . json_encode($updateDeposit));
+
+ if ($updated) {
+ $this->myLogger->logme("error", 'CD Master Updated Successfully.');
+ return $this->respond([
+ 'status' => true,
+ 'message' => "CD Master Updated Successfully"
+ ]);
+ } else {
+ $this->myLogger->logme('error', 'CD Master Update Failed.');
+ return $this->respond([
+ 'status' => true,
+ 'code' => 500,
+ 'message' => "CD Master Updated Failed",
+ ], 200);
}
}
@@ -1598,7 +1749,6 @@ class MasterController extends AdminController
}
}
-
public function generateNewGmailAPIToken()
{
$gmailapi = \Config\Services::gmailapi();
@@ -1609,49 +1759,46 @@ class MasterController extends AdminController
//testing a sample mail from front end
public function testGmailAPI()
{
-
- if ($this->request->getMethod() == 'post') {
- // $gmailapi = \Config\Services::gmailapi();
- $to = $this->request->getPost('to');
- $subject = $this->request->getPost('subject');
- $mail_content = $this->request->getPost('content');
- $common = ['mail_type'=>'test_mail_ui'];
- /*****CHOOSE ANY ONE AT A TIME, COMMENT ANOTHER ONE******/
+ if ($this->request->getMethod() == 'post') {
+ // $gmailapi = \Config\Services::gmailapi();
- /*****CALLING DIRECLT USING LIB******/
- // $res = $gmailapi->sendMessage($to, $subject, $mail_content, 'info@nhanceindia.in', 'info@nhanceindia.in', $cc = [], $bcc = []);
+ $to = $this->request->getPost('to');
+ $subject = $this->request->getPost('subject');
+ $mail_content = $this->request->getPost('content');
+ $common = ['mail_type' => 'test_mail_ui'];
+ /*****CHOOSE ANY ONE AT A TIME, COMMENT ANOTHER ONE******/
- // if($res['status'])
- // {
- // return $this->respond(['status' => 'success','code' => 200,'data' => $res],200);
- // }
- // else
- // {
- // $this->respond(['status' => 'failed','code' => 500,'data' => $res],200);
- // }
- /*****CALLING DIRECLT USING LIB******/
+ /*****CALLING DIRECLT USING LIB******/
+ // $res = $gmailapi->sendMessage($to, $subject, $mail_content, 'info@nhanceindia.in', 'info@nhanceindia.in', $cc = [], $bcc = []);
- /*****CALLING VIA MAIL HELPER******/
- $res = MailHelper::send_email(['mail' => $to, 'subject' => $subject,'common'=>$common ,'message' => $mail_content]);
- return $this->respond(['status' => 'success','code' => 200,'data' => $res],200);
- /*****CALLING VIA MAIL HELPER******/
+ // if($res['status'])
+ // {
+ // return $this->respond(['status' => 'success','code' => 200,'data' => $res],200);
+ // }
+ // else
+ // {
+ // $this->respond(['status' => 'failed','code' => 500,'data' => $res],200);
+ // }
+ /*****CALLING DIRECLT USING LIB******/
- }
+ /*****CALLING VIA MAIL HELPER******/
+ $res = MailHelper::send_email(['mail' => $to, 'subject' => $subject, 'common' => $common, 'message' => $mail_content]);
+ return $this->respond(['status' => 'success', 'code' => 200, 'data' => $res], 200);
+ /*****CALLING VIA MAIL HELPER******/
+ }
$this->loadLayout('mail_test');
-
}
-
-
- //testing a sample mail from cli
+
+ //testing a sample mail from cli
public function testGmailAPIViaCLI(string $email_id = 'velmurugan.s@venbainfotech.com')
{
-
+
$email_id = CLI::getOption('to') ? CLI::getOption('to') : $email_id;
// print_r($email_id);die();
- // $gmailapi = \Config\Services::gmailapi();
- $message = 'Dear {{RECIPIENT_NAME}},
We are reaching out to request a quotation for the following insurance coverage. Please review the details below and provide your quote at your earliest convenience.
RFQ Details
| Client name | {{CLIENT_NAME}} |
|---|
| Coverage Type | {{POLICY_LONG_NAME}} |
|---|
| Policy Start Date | {{POLICY_START_DATE}} |
|---|
| Policy Duration | {{DURATION}} |
|---|
Please note: Additional terms and details are included in the attachment for your reference.
Please feel free to reach out if you require any further information to prepare the quote. We look forward to receiving your proposal.
Best regards,
Nhance India Pvt Ltd
';
+ // $gmailapi = \Config\Services::gmailapi();
+ $message = 'Dear {{RECIPIENT_NAME}},
We are reaching out to request a quotation for the following insurance coverage. Please review the details below and provide your quote at your earliest convenience.
RFQ Details
| Client name | {{CLIENT_NAME}} |
|---|
| Coverage Type | {{POLICY_LONG_NAME}} |
|---|
| Policy Start Date | {{POLICY_START_DATE}} |
|---|
| Policy Duration | {{DURATION}} |
|---|
Please note: Additional terms and details are included in the attachment for your reference.
Please feel free to reach out if you require any further information to prepare the quote. We look forward to receiving your proposal.
Best regards,
Nhance India Pvt Ltd
';
// $attachments = [
// ["filePath" => WRITEPATH."uploads/excel/sample/correction.xls","fileName" => "correction.xls"],
@@ -1661,34 +1808,34 @@ class MasterController extends AdminController
// ];
$attachments = [
- ["filePath" => ROOTPATH."public/sample_excel/sample_addition.xls","fileName" => "sample_addition.xls"],
- ["filePath" => ROOTPATH."public/sample_excel/sample_inception.xls","fileName" => "sample_inception.xls"],
- ["filePath" => ROOTPATH."public/assets/images/login_bg.jpg","fileName" => "login_bg.jpg"]
+ ["filePath" => ROOTPATH . "public/sample_excel/sample_addition.xls", "fileName" => "sample_addition.xls"],
+ ["filePath" => ROOTPATH . "public/sample_excel/sample_inception.xls", "fileName" => "sample_inception.xls"],
+ ["filePath" => ROOTPATH . "public/assets/images/login_bg.jpg", "fileName" => "login_bg.jpg"]
];
- $common = ['mail_type'=>'test_mail_cli'];
+ $common = ['mail_type' => 'test_mail_cli'];
$email_id = CLI::getOption('to') ? CLI::getOption('to') : $email_id;
- $res = MailHelper::send_email(['mail' => $email_id, 'subject' => 'Mail Via CLI', 'message' => $message,'attachments' => $attachments,'common'=>$common]);
- echo "Inside the master controller";
- print_r($res);
-
+ $res = MailHelper::send_email(['mail' => $email_id, 'subject' => 'Mail Via CLI', 'message' => $message, 'attachments' => $attachments, 'common' => $common]);
+ echo "Inside the master controller";
+ print_r($res);
}
- public function testZeptoSMTP() {
+ public function testZeptoSMTP()
+ {
$message = 'Dear {{RECIPIENT_NAME}},
We are reaching out to request a quotation for the following insurance coverage. Please review the details below and provide your quote at your earliest convenience.
RFQ Details
| Client name | {{CLIENT_NAME}} |
|---|
| Coverage Type | {{POLICY_LONG_NAME}} |
|---|
| Policy Start Date | {{POLICY_START_DATE}} |
|---|
| Policy Duration | {{DURATION}} |
|---|
Please note: Additional terms and details are included in the attachment for your reference.
Please feel free to reach out if you require any further information to prepare the quote. We look forward to receiving your proposal.
Best regards,
Nhance India Pvt Ltd
';
$attachments = [
- ["filePath" => ROOTPATH."public/sample_excel/sample_addition.xls","fileName" => "sample_addition.xls"],
- ["filePath" => ROOTPATH."public/sample_excel/sample_inception.xls","fileName" => "sample_inception.xls"],
- ["filePath" => ROOTPATH."public/assets/images/login_bg.jpg","fileName" => "login_bg.jpg"]
+ ["filePath" => ROOTPATH . "public/sample_excel/sample_addition.xls", "fileName" => "sample_addition.xls"],
+ ["filePath" => ROOTPATH . "public/sample_excel/sample_inception.xls", "fileName" => "sample_inception.xls"],
+ ["filePath" => ROOTPATH . "public/assets/images/login_bg.jpg", "fileName" => "login_bg.jpg"]
];
- $email_id = ['srinivas.saravanan@venbainfotech.com','srinivassaravanan2002@gmail.com'];
- $params = ['mail'=>$email_id];
- $common = ['mail_type'=>'test_mail_cli'];
+ $email_id = ['srinivas.saravanan@venbainfotech.com', 'srinivassaravanan2002@gmail.com'];
+ $params = ['mail' => $email_id];
+ $common = ['mail_type' => 'test_mail_cli'];
// $bcc = "vijayalakshmi@nhanceindia.in,vitvelz@gmail.com,velmurugan.s@venbainfotech.com,hariharan@nhanceindia.in,hariharan@jubiliant.in,srinivas.saravanan@venbainfotech.com";
// Send email and get response
- $result = MailHelper::send_email(['mail' => $email_id, 'params'=>$params,'subject' => 'Mail Via CLI','message' => $message,'attachments' => $attachments,'common'=>$common]);
-
+ $result = MailHelper::send_email(['mail' => $email_id, 'params' => $params, 'subject' => 'Mail Via CLI', 'message' => $message, 'attachments' => $attachments, 'common' => $common]);
- log_message('error',json_encode($result));
+
+ log_message('error', json_encode($result));
// Format the response for display/debugging
$response = [
'success' => $result['success'] ?? false,
@@ -1703,15 +1850,16 @@ class MasterController extends AdminController
// Return JSON response
return $this->response->setJSON($result);
}
+
public function testCheckBounceMails()
{
- $gmailapi = \Config\Services::gmailapi();
- $from_date = CLI::getOption('from') ? CLI::getOption('from') : null;
- $to_date = CLI::getOption('to') ? CLI::getOption('to') : null;
- $count = CLI::getOption('count') ? CLI::getOption('count') : null;
- $page = CLI::getOption('page') ? CLI::getOption('page') : null;
- $res = $gmailapi->checkBounceStatus(from_date:$from_date,to_date:$to_date,count:$count,page:$page);
- print_r($res);
+ $gmailapi = \Config\Services::gmailapi();
+ $from_date = CLI::getOption('from') ? CLI::getOption('from') : null;
+ $to_date = CLI::getOption('to') ? CLI::getOption('to') : null;
+ $count = CLI::getOption('count') ? CLI::getOption('count') : null;
+ $page = CLI::getOption('page') ? CLI::getOption('page') : null;
+ $res = $gmailapi->checkBounceStatus(from_date: $from_date, to_date: $to_date, count: $count, page: $page);
+ print_r($res);
}
public function appCheckList()
@@ -1721,7 +1869,6 @@ class MasterController extends AdminController
$this->checkGoogleOAuthCredentialsinDB();
$this->getCronJobsList();
$this->checkGdriveRootFolderID();
-
}
public function checkAndCreateDirectories()
@@ -1740,7 +1887,7 @@ class MasterController extends AdminController
'tmp' => WRITEPATH . 'tmp/',
'e_card_imgs' => ROOTPATH . 'public/e_card_imgs',
'uploads' => ROOTPATH . 'public/uploads',
- 'add_image_upload' => ROOTPATH . 'public/uploads/add_image_upload/',//adverdisement images for enrollment app
+ 'add_image_upload' => ROOTPATH . 'public/uploads/add_image_upload/', //adverdisement images for enrollment app
'logo' => ROOTPATH . 'public/uploads/logo/',
'template_bg' => ROOTPATH . 'public/uploads/template_bg/',
'attachments' => WRITEPATH . 'uploads/attachments/',
@@ -1776,21 +1923,18 @@ class MasterController extends AdminController
echo "################ CHECKING GMAIL OAUTH FOR EMAIL ###################\n";
if (is_array($token) && is_null($token['gmail_api_oauth_credentials'])) {
-
+
echo "Email OAuth credentials not found in database.\n";
echo "Check the following..!\n";
echo "1. Update Gmail Oauth credentials in 'gmail_api_oauth_credentials' field in 'settings' table in JSON format.\n";
echo "2. Call this cli route to generate new access token: 'php public/index.php cli/new_gmail_token' from root of the project.\n";
echo "3. Call this cli route : 'php public/index.php cli/send_mail_cli --to someone@gmail.com' to send test mail to testGmailAPIViaCLI ( replace someone@gmail.com with real time mail).\n";
- }
- else
- {
+ } else {
echo "Gmail OAuth for sending email is set in DB\n";
}
echo "################################################################\n\n";
}
-
function getCronJobsList()
{
// Execute the shell command to get cron jobs
@@ -1806,7 +1950,7 @@ class MasterController extends AdminController
} elseif ($output) {
// Return the cron job list
echo nl2br($output);
- echo "\n" ;// Convert newlines to
for easier HTML rendering
+ echo "\n"; // Convert newlines to
for easier HTML rendering
} else {
echo "Error retrieving cron jobs or no cron jobs set.\n";
}
@@ -1818,13 +1962,10 @@ class MasterController extends AdminController
{
echo "#################### CHECKING GDRIVE FOLDER ID IN ENV FILE ############################\n";
$id = getenv('GDRIVE_ROOT_FOLDER_ID');
- if($id)
- {
- echo $this->cli_colors['green'] . "ID is :". $id . $this->cli_colors['reset']. "\n";
- }
- else
- {
- echo $this->cli_colors['red'] ."Gdrive Folder id not set in env file. set it under 'GDRIVE_ROOT_FOLDER_ID' in env file.". $this->cli_colors['reset'] ."\n";
+ if ($id) {
+ echo $this->cli_colors['green'] . "ID is :" . $id . $this->cli_colors['reset'] . "\n";
+ } else {
+ echo $this->cli_colors['red'] . "Gdrive Folder id not set in env file. set it under 'GDRIVE_ROOT_FOLDER_ID' in env file." . $this->cli_colors['reset'] . "\n";
}
echo "################################################################\n\n";
}
@@ -1834,16 +1975,16 @@ class MasterController extends AdminController
$message = 'Dear {{RECIPIENT_NAME}},
We are reaching out to request a quotation for the following insurance coverage. Please review the details below and provide your quote at your earliest convenience.
RFQ Details
| Client name | {{CLIENT_NAME}} |
|---|
| Coverage Type | {{POLICY_LONG_NAME}} |
|---|
| Policy Start Date | {{POLICY_START_DATE}} |
|---|
| Policy Duration | {{DURATION}} |
|---|
Please note: Additional terms and details are included in the attachment for your reference.
Please feel free to reach out if you require any further information to prepare the quote. We look forward to receiving your proposal.
Best regards,
Nhance India Pvt Ltd
';
$attachments = [
- ["filePath" => ROOTPATH."public/sample_excel/sample_addition.xls","fileName" => "sample_addition.xls"],
- ["filePath" => ROOTPATH."public/sample_excel/sample_inception.xls","fileName" => "sample_inception.xls"],
- ["filePath" => ROOTPATH."public/assets/images/login_bg.jpg","fileName" => "login_bg.jpg"]
+ ["filePath" => ROOTPATH . "public/sample_excel/sample_addition.xls", "fileName" => "sample_addition.xls"],
+ ["filePath" => ROOTPATH . "public/sample_excel/sample_inception.xls", "fileName" => "sample_inception.xls"],
+ ["filePath" => ROOTPATH . "public/assets/images/login_bg.jpg", "fileName" => "login_bg.jpg"]
];
$email_id = 'venkateshraman786@gmail.com';
- $params = ['mail'=>$email_id];
+ $params = ['mail' => $email_id];
$multi_mails = ['venkateshraman786@gmail.com', 'gowtham.manavalan.la@gmail.com', 'venkatesh.r@venbainfotech.com'];
- $common = ['mail_type'=>'test_mail_cli'];
+ $common = ['mail_type' => 'test_mail_cli'];
$bcc = "vitvelz@gmail.com,velmurugan.s@venbainfotech.com,srinivas.saravanan@venbainfotech.com";
- $result = MailHelper::send_email(['mail' => $multi_mails, 'bcc'=>$bcc, 'params'=>$params,'subject' => 'Send Multiple " To " emails','message' => $message,'attachments' => $attachments,'common'=>$common]);
+ $result = MailHelper::send_email(['mail' => $multi_mails, 'bcc' => $bcc, 'params' => $params, 'subject' => 'Send Multiple " To " emails', 'message' => $message, 'attachments' => $attachments, 'common' => $common]);
dd($result);
}
diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php
index 3d9ee4f6..dddedd54 100644
--- a/app/Controllers/PolicyTransactionController.php
+++ b/app/Controllers/PolicyTransactionController.php
@@ -1209,6 +1209,10 @@ class PolicyTransactionController extends BaseController
$client_branch_id = $issue_type['client_branch_id'];
}
+ // if($data['bro_payable_by'] == ""){
+ // $data['bro_payable_by'] = $issue_type['bro_payable_by'];
+ // }
+
if (!$data['id']) {
$data += [
@@ -1224,7 +1228,7 @@ class PolicyTransactionController extends BaseController
'policy_end_date' => $issue_type['policy_end_date'] ?? null,
'revenue_type' => $issue_type['revenue_type'] ?? null,
'co_share' => $issue_type['co_share'] ?? 0,
- 'bro_payable_by' => $issue_type['bro_payable_by'] ?? 0,
+ 'bro_payable_by' => $data['bro_payable_by'] == "" ? $issue_type['bro_payable_by'] ?? 0 : $data['bro_payable_by'],
'installment' => $issue_type['installment'] ?? null,
'installment_data' => $issue_type['installment_data'] ?? null,
'location' => $issue_type['location'] ?? null,
@@ -2279,7 +2283,9 @@ class PolicyTransactionController extends BaseController
// if all good return true, otherwise return false with messssage
foreach ($excel_data as $excel_key => $excel_row) {
$is_row_empty = check_row_is_empty_or_null($excel_row);
+
if (!$is_row_empty) {
+
// $excel_row = ExcelSanitizeHelper::sanitizeArrayData($excel_row);
$is_source_found = 0;
// Kint::dump($excel_key,$excel_row[1],$excel_row[2]);
@@ -2297,8 +2303,17 @@ class PolicyTransactionController extends BaseController
// Kint::dump($excel_key,$policy_no,$endorsement_no,$policy_start_date,$policy_end_date);//die();
foreach ($source_data as $source_key => $source_row) {
$source_endorsement_no = $source_row['endorsement_no'] !== null ? $source_row['endorsement_no'] : null;
- // Kint::dump($source_endorsement_no);
- if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name'])
+ // Kint::dump($source_row, $source_endorsement_no, $policy_no, $endorsement_no);
+
+ // if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name'])
+ // {
+ // $is_source_found = 1;
+ // $line_items = $line_items + 1;
+ // unset($source_data[$source_key]);
+ // continue 2;
+ // }
+
+ if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no)
{
$is_source_found = 1;
$line_items = $line_items + 1;
@@ -2395,7 +2410,8 @@ class PolicyTransactionController extends BaseController
foreach ($source_data as $source_key => $source_row) {
// Kint::dump(change_date_format($excel_row[3],'d-m-Y','Y-m-d'));
$source_endorsement_no = $source_row['endorsement_no'] !== null ? $source_row['endorsement_no'] : null;
- if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name']) {
+ // if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no && change_date_format($policy_start_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_start_date'] && change_date_format($policy_end_date, 'd-m-Y', 'Y-m-d') == $source_row['policy_end_date'] && $client_name == $source_row['client_name']) {
+ if (($policy_no == $source_row['policy_no']) && $endorsement_no == $source_endorsement_no) {
$is_source_found = 1;
//calculate percentage first
diff --git a/app/Controllers/RestAuthenticationController.php b/app/Controllers/RestAuthenticationController.php
index 0c2089b6..b2567d9c 100755
--- a/app/Controllers/RestAuthenticationController.php
+++ b/app/Controllers/RestAuthenticationController.php
@@ -484,7 +484,7 @@ class RestAuthenticationController extends AdminController
$this->authHistoryModel->insert($data);
}
-
+ $employeeData['token_type'] = "post";
$result = JWTToken::encode($employeeData);
if(isset($this->request->getJSON()->otp)){
@@ -1081,6 +1081,7 @@ class RestAuthenticationController extends AdminController
]);
}
+ $employeeData['token_type'] = "post";
$token = JWTToken::encode($employeeData);
log_message('error', ' ');
diff --git a/app/Controllers/TicketController.php b/app/Controllers/TicketController.php
index 91ec3aae..5e119628 100644
--- a/app/Controllers/TicketController.php
+++ b/app/Controllers/TicketController.php
@@ -20,6 +20,7 @@ use App\Models\EmployeePolicyModel;
use App\Models\InsurerModel;
use App\Models\EmployeeModel;
use App\Models\TPAModel;
+use App\Models\ClaimFilesModel;
use DOMDocument;
use Psr\Log\LoggerInterface;
@@ -41,6 +42,8 @@ class TicketController extends BaseController
public $placeHolders;
public $extraFields;
public $nonIDReason;
+ public $removeArrayKey;
+
protected $clientModel;
protected $ticketMasterModel;
@@ -56,6 +59,7 @@ class TicketController extends BaseController
protected $extraFieldsDisplayForFrontend;
protected $insurerModel;
protected $TPAModel;
+ protected $claimFilesModel;
public function __construct()
{
@@ -278,7 +282,6 @@ class TicketController extends BaseController
58 => ['cancel_remark' => 'Cancel Remark']
];
-
$this->nonIDReason = [
"Newborn Baby" => "Newborn Baby",
"Newly Wedded Spouse" => "Newly Wedded Spouse",
@@ -287,6 +290,46 @@ class TicketController extends BaseController
"Exceptional Case" => "Exceptional Case"
];
+ $this->removeArrayKey = [
+ 2 => [],
+ 6 => [],
+ 12 => [],
+ 15 => [],
+ 16 => [],
+ 17 => [],
+ 18 => [],
+ 19 => [],
+ 21 => [],
+ 22 => [],
+ 23 => [],
+ 25 => [],
+ 26 => [],
+ 27 => [],
+ 28 => [],
+ 29 => [],
+ 31 => [],
+ 32 => [],
+ 33 => [],
+ 35 => [],
+ 36 => [],
+ 37 => [],
+ 38 => [],
+ 39 => [],
+ 41 => [],
+ 42 => [],
+ 43 => [],
+ 45 => [],
+ 46 => [],
+ 49 => [],
+ 50 => [],
+ 51 => [],
+ 52 => [],
+ 55 => [],
+ 56 => [],
+ 57 => [],
+ 60 => []
+ ];
+
$this->ticketMasterModel = new TicketMasterModel();
$this->claimStatus = new TicketClaimStatusModel();
$this->clientModel = new ClientModel();
@@ -300,6 +343,7 @@ class TicketController extends BaseController
$this->employeePolicyModel = new EmployeePolicyModel();
$this->insurerModel = new InsurerModel();
$this->TPAModel = new TPAModel();
+ $this->claimFilesModel = new ClaimFilesModel();
}
public function ticketList()
@@ -784,8 +828,12 @@ class TicketController extends BaseController
// dd($data);
$data['ticket_data'] = $ticket_data;
$data['acms'] = $this->employeeModel->getAcmUsingClientID($ticket_data['client_id']);
+
+ $raw_json = $this->ticketMasterModel->getPolicyTermsJson($ticket_id) ;
+
+ $decoded_top = json_decode($raw_json ?? "", true) ?? [];
+ $data['policy_terms'] = $this->recursive_json_decode($decoded_top);
- // dd($data);
return $this->loadLayout('ticket_edit_onbording', $data);
}
@@ -1705,9 +1753,22 @@ class TicketController extends BaseController
$lastMatchedStatus = $incoming_form_values['claim_status_id'];
// Use the provided `extra_fields_array_for_validate` from the incoming data
- $statusMapping = json_decode($incoming_form_values['extra_fields_array_for_validate']);
+ $statusMapping = json_decode($incoming_form_values['extra_fields_array_for_validate'], true);
+ // print_r($statusMapping);
+ // echo "-------------------------------";
+
+ //for remove the non used arrays
+ foreach ($statusMapping as $key1 => $value1) {
+ foreach ($this->removeArrayKey as $key2 => $value2) {
+ if($key1 === $key2){
+ unset($statusMapping[$key1]);
+ }
+ }
+ }
+ // print_r($statusMapping); die;
- if($incoming_form_values['claim_status_id'] != $old_ticket_data['claim_status_id']){
+ // if($incoming_form_values['claim_status_id'] != $old_ticket_data['claim_status_id']){
+
foreach ($statusMapping as $status => $requiredFields) {
if(!empty($requiredFields) && $status != $old_ticket_data['claim_status_id']){
@@ -1742,7 +1803,8 @@ class TicketController extends BaseController
$lastMatchedStatus = 2;
}
}
- }
+
+ // }
return $lastMatchedStatus;
}
@@ -2080,7 +2142,117 @@ class TicketController extends BaseController
$date = \DateTime::createFromFormat($format, $value);
return $date && $date->format($format) === $value;
}
+
+ public function upload_url(){
+
+ $data = $this->request->getPost();
+
+ $insertArr = [];
+
+ foreach ($data['docs_name'] as $key => $eachData) {
+
+ if (!empty($eachData) ) {
+
+ $insertData = [
+ 'doc_name' => $data['docs_name'][$key]??'',
+ 'url' => $data['url'][$key]??'',
+ 'ticket_id'=> $data['ticket_id_url']??'',
+ 'created_by' => get_session_userid(),
+ 'is_active' => 1
+ ];
+
+ $insertArr[] = $insertData;
+
+ }
+ }
+
+ if(!empty($insertArr)){
+ // Insert into database
+ $insert = $this->claimFilesModel->insertBatch($insertArr);
+ }
+
+
+ if (isset($insert) && !empty($insert)) {
+ return $this->respond(['status' => true, 'message' => 'File uploaded successfully ']);
+ } else {
+ return $this->respond(['status' => false, 'message' => 'Failed to upload file ']);
+ }
+ }
+
+ public function getUrlDataByTicketId()
+ {
+ $ticket_id = $this->request->getPost('ticket_id');
+
+ if (!$ticket_id) {
+ return $this->response->setJSON([
+ 'status' => false,
+ 'message' => 'Ticket ID is required',
+ 'data' => []
+ ]);
+ }
+
+ $urlData = $this->claimFilesModel
+ ->where('ticket_id', $ticket_id)
+ ->where('is_active',1)
+ ->findAll();
+
+ return $this->response->setJSON([
+ 'status' => true,
+ 'data' => $urlData
+ ]);
+ }
+
+ public function remove_url()
+ {
+ $id = $this->request->getGet('id');
+
+ if (empty(trim($id))) {
+ return $this->response->setJSON([
+ 'status' => false,
+ 'message' => 'Invalid ID'
+ ]);
+ }
+
+ $updated = $this->claimFilesModel
+ ->where('id', $id)
+ ->set(['is_active' => 0])
+ ->update();
+
+ if ($updated) {
+ return $this->response->setJSON([
+ 'status' => true,
+ 'message' => 'URL successfully marked inactive.'
+ ]);
+ } else {
+ return $this->response->setJSON([
+ 'status' => false,
+ 'message' => 'Failed to update record.'
+ ]);
+ }
+ }
+
+ public function recursive_json_decode($input) {
+ if (is_string($input)) {
+ $decoded = json_decode($input, true);
+ if (json_last_error() === JSON_ERROR_NONE) {
+ return $this->recursive_json_decode($decoded); // continue decoding recursively
+ } else {
+ return $input;
+ }
+ }
+
+ if (is_array($input)) {
+ foreach ($input as $key => $value) {
+ $input[$key] = $this->recursive_json_decode($value);
+ }
+ }
+
+ return $input;
+ }
+
+
+
}
diff --git a/app/Helpers/excel_import_export_helper.php b/app/Helpers/excel_import_export_helper.php
index ad484ffe..9c72c973 100755
--- a/app/Helpers/excel_import_export_helper.php
+++ b/app/Helpers/excel_import_export_helper.php
@@ -664,12 +664,18 @@ if(!function_exists('generate_insurer_based_excel')){
$rowData = [];
foreach ($excel_header_array as $header) {
+
$fieldName = $header['db_column_name'];
+ $defaultValue = isset($header['default_value']) ? $header['default_value'] : null;
if ($fieldName === 'index') {
$value = $serialNumber;
} else {
- $value = $row->$fieldName ?? '';
+ if(empty($fieldName) && !empty($defaultValue)){
+ $value = $defaultValue;
+ }else{
+ $value = $row->$fieldName ?? '';
+ }
}
$rowData[] = $value;
diff --git a/app/Libraries/Gemini.php b/app/Libraries/Gemini.php
new file mode 100644
index 00000000..da610e96
--- /dev/null
+++ b/app/Libraries/Gemini.php
@@ -0,0 +1,46 @@
+myLogger = \Config\Services::mylogger();
+ // $this->client = new Google_Client();
+ // $this->client->setAuthConfig(ROOTPATH . 'nhance-app-google-drive.json'); // App credentials
+ // // putenv('GOOGLE_APPLICATION_CREDENTIALS=' . ROOTPATH . 'nhance-app-google-drive.json');
+ // $this->client->useApplicationDefaultCredentials();
+
+ // $this->client->addScope(Google_Service_Drive::DRIVE); // Full access to Google Drive
+ }
+
+ public function check()
+ {
+ try {
+ // Initialize the Gemini client
+ $client = new Client($apiKey);
+
+ // Send a prompt to the Gemini Pro model
+ $response = $client->generativeModel(ModelName::GEMINI_PRO)->generateContent(
+ new TextPart('Write a short, creative story about a knight and a dragon.')
+ );
+
+ // Display the generated text
+ $data['gemini_response'] = $response->text();
+ } catch (\Exception $e) {
+ // Handle any errors that occur during the API call
+ $data['gemini_response'] = 'An error occurred: ' . $e->getMessage();
+ }
+ }
+
+}
diff --git a/app/Models/CDMasterModel.php b/app/Models/CDMasterModel.php
index 663ea3bc..ee503a86 100755
--- a/app/Models/CDMasterModel.php
+++ b/app/Models/CDMasterModel.php
@@ -17,6 +17,7 @@ class CDMasterModel extends Model
'id',
'client_id',
'insurer_id',
+ 'insurer_branch_id',
'cd_ac_no',
'opening_bal',
'opening_date',
@@ -66,9 +67,10 @@ class CDMasterModel extends Model
$query = $this->db->table('cd_master')
- ->select('cd_master.*, clients.client_name, clients.short_name, insurers.name AS insurer_name, user_profiles.first_name AS user_name, IFNULL(cd_ac_counts.cd_ac_no_count, 0) AS cd_ac_no_count, IFNULL(cd_ac_counts_for_cdt.cd_ac_no_count_cd_tranction, 0) AS cd_ac_no_count_cd_tranction')
+ ->select('cd_master.*, clients.client_name, clients.short_name, insurers.name AS insurer_name, user_profiles.first_name AS user_name, IFNULL(cd_ac_counts.cd_ac_no_count, 0) AS cd_ac_no_count, IFNULL(cd_ac_counts_for_cdt.cd_ac_no_count_cd_tranction, 0) AS cd_ac_no_count_cd_tranction, insurer_branch.branch_name as insurer_branch_name')
->join('clients', 'clients.id = cd_master.client_id')
->join('insurers', 'insurers.id = cd_master.insurer_id')
+ ->join('insurer_branch', 'cd_master.insurer_branch_id = insurer_branch.id', "left")
->join('user_profiles', 'user_profiles.id = cd_master.created_by')
->join(
'(SELECT cd_master.cd_ac_no, cd_master.id, COUNT(client_policy.cd_ac_no) AS cd_ac_no_count
@@ -102,6 +104,7 @@ class CDMasterModel extends Model
->where('clients.is_active', 1)
->where('insurers.is_active', 1)
->where('user_profiles.is_active', 1)
+ ->orderBy('cd_master.id', "desc")
->get();
$result = $query->getResultArray();
diff --git a/app/Models/ClaimFilesModel.php b/app/Models/ClaimFilesModel.php
new file mode 100644
index 00000000..2a5ec138
--- /dev/null
+++ b/app/Models/ClaimFilesModel.php
@@ -0,0 +1,55 @@
+db->table('client_policy')
->select('client_policy.*, cd_master.cd_ac_no as cd_master_account_no')
- ->select('insurers.name as insurer_name, insurers.short_name as insurer_short')
+ ->select('insurers.name as insurer_name, insurers.short_name as insurer_short, insurer_branch.branch_name as insurer_branch_name')
->select('clients.client_name as client_name')
->join('clients', 'clients.id = client_policy.client_id')
->join('insurers', 'insurers.id = client_policy.insurer_id')
+ ->join('insurer_branch', 'client_policy.insurer_branch_id = insurer_branch.id', 'left')
->join('cd_master', 'cd_master.insurer_id = insurers.id AND cd_master.client_id = client_policy.client_id')
->where('client_policy.client_id', $id)
->where('cd_master.id = client_policy.cd_ac_pk')
@@ -190,7 +191,9 @@ class ClientPolicyModel extends Model
$builder->whereIn('client_policy.id', $policyId);
}
- return $builder->get()->getResult();
+ $data = $builder->get()->getResult();
+ // dd($this->db->getLastQuery());
+ return $data;
diff --git a/app/Models/EmployeePolicyModel.php b/app/Models/EmployeePolicyModel.php
index ec4b9222..82a8cb3b 100755
--- a/app/Models/EmployeePolicyModel.php
+++ b/app/Models/EmployeePolicyModel.php
@@ -1085,10 +1085,10 @@ class EmployeePolicyModel extends Model
}
$status_condition = "{$insurer_or_tpa}" === 'tpa'
- ? "employee_polices.status = 'inactive' AND employees.emp_status = 'active'"
+ ? "employee_polices.status = 'active' AND employees.emp_status = 'active'"
: "employee_polices.status = 'active' AND employees.emp_status = 'active'";
- $endorsement_condition = "{$insurer_or_tpa}" === 'tpa' ? "AND (a.endorsement_id IS NOT NULL OR a.endorsement_id != '')" : "AND (a.endorsement_id IS NULL OR a.endorsement_id = '')";
+ $endorsement_condition = "{$insurer_or_tpa}" === 'tpa' ? "AND (a.endorsement_id IS NULL OR a.endorsement_id = '')" : "AND (a.endorsement_id IS NULL OR a.endorsement_id = '')";
$query = $this->db->query("
SELECT DISTINCT
@@ -1251,6 +1251,9 @@ class EmployeePolicyModel extends Model
ee.id as emp_endorsement_primarykey,
ep.id as emp_policy_primarykey,
e.id as employees_primarykey,
+ e.relationship,
+ e.emp_code,
+ e.name as emp_name,
ee.file_id,
ee.group_key,
(
@@ -2098,4 +2101,6 @@ class EmployeePolicyModel extends Model
// var_dump($this->db->getLastQuery());
return $data;
}
+
+
}
\ No newline at end of file
diff --git a/app/Models/PolicyTransactionModel.php b/app/Models/PolicyTransactionModel.php
index 5eabf684..ba9b2fcd 100644
--- a/app/Models/PolicyTransactionModel.php
+++ b/app/Models/PolicyTransactionModel.php
@@ -765,7 +765,12 @@ class PolicyTransactionModel extends Model
),
2
) AS unbilled_amt,
- created_user.first_name as user_name
+ created_user.first_name as user_name,
+ CASE
+ WHEN `pt_co_share_details`.`co_share_type` IN (0, 1) THEN `policy_transaction`.`policy_no`
+ WHEN `pt_co_share_details`.`co_share_type` > 1 THEN `pt_co_share_details`.`follower_policy_no`
+ ELSE `policy_transaction`.`policy_no` -- Default fallback
+ END AS `policy_no`
")
->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
@@ -986,7 +991,12 @@ class PolicyTransactionModel extends Model
pt_co_share_details.tp_amt AS tp,
clients.pan,
DATE_FORMAT(policy_transaction.created_at, '%d %b %Y %h:%i %p') AS created_at,
- user_profiles.first_name as user_name
+ user_profiles.first_name as user_name,
+ CASE
+ WHEN `pt_co_share_details`.`co_share_type` IN (0, 1) THEN `policy_transaction`.`policy_no`
+ WHEN `pt_co_share_details`.`co_share_type` > 1 THEN `pt_co_share_details`.`follower_policy_no`
+ ELSE `policy_transaction`.`policy_no` -- Default fallback
+ END AS `policy_no`
")
->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
->join('clients', 'clients.id = policy_transaction.client_id', 'left')
@@ -1049,8 +1059,8 @@ class PolicyTransactionModel extends Model
// Optimize Query Execution
$builder->orderBy('policy_transaction.id', 'desc');
-
- return $builder->get()->getResultArray();
+ $data = $builder->get()->getResultArray();
+ return $data;
}
@@ -1065,7 +1075,12 @@ class PolicyTransactionModel extends Model
client_branch.branch_name as client_branch_name,
insurers.name AS insurer_name,
insurers.short_name AS insurer_short_name,
- policy_type.policy_type
+ policy_type.policy_type ,
+ CASE
+ WHEN `pt_co_share_details`.`co_share_type` IN (0, 1) THEN `policy_transaction`.`policy_no`
+ WHEN `pt_co_share_details`.`co_share_type` > 1 THEN `pt_co_share_details`.`follower_policy_no`
+ ELSE `policy_transaction`.`policy_no` -- Default fallback
+ END AS `policy_no`
')
->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
->join('clients', 'policy_transaction.client_id = clients.id', 'left')
@@ -1228,7 +1243,12 @@ class PolicyTransactionModel extends Model
AND co_share_stmt_details.is_active = 1
),
2
- ) AS variance_amt
+ ) AS variance_amt,
+ CASE
+ WHEN `pt_co_share_details`.`co_share_type` IN (0, 1) THEN `policy_transaction`.`policy_no`
+ WHEN `pt_co_share_details`.`co_share_type` > 1 THEN `pt_co_share_details`.`follower_policy_no`
+ ELSE `policy_transaction`.`policy_no` -- Default fallback
+ END AS `policy_no`
")
@@ -1317,7 +1337,6 @@ class PolicyTransactionModel extends Model
'clients.client_name',
'insurers.name AS insurer_name',
'policy_type.policy_type',
- 'policy_transaction.policy_no',
'policy_transaction.endorsement_no',
"CASE
WHEN policy_transaction.action_type = 'inception' THEN 'I'
@@ -1327,7 +1346,12 @@ class PolicyTransactionModel extends Model
'pt_co_share_details.bp_amt',
'pt_co_share_details.tp_amt',
'pt_co_share_details.tep_amt',
- 'policy_transaction.status'
+ 'policy_transaction.status',
+ 'CASE
+ WHEN `pt_co_share_details`.`co_share_type` IN (0, 1) THEN `policy_transaction`.`policy_no`
+ WHEN `pt_co_share_details`.`co_share_type` > 1 THEN `pt_co_share_details`.`follower_policy_no`
+ ELSE `policy_transaction`.`policy_no` -- Default fallback
+ END AS `policy_no`'
])
->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
->join('clients', 'clients.id = policy_transaction.client_id', 'left')
@@ -1417,7 +1441,12 @@ class PolicyTransactionModel extends Model
policy_transaction.action_type AS action_type_full,
pt_co_share_details.exp_amt,
pt_co_share_details.variance,
- policy_transaction.status
+ policy_transaction.status,
+ CASE
+ WHEN `pt_co_share_details`.`co_share_type` IN (0, 1) THEN `policy_transaction`.`policy_no`
+ WHEN `pt_co_share_details`.`co_share_type` > 1 THEN `pt_co_share_details`.`follower_policy_no`
+ ELSE `policy_transaction`.`policy_no` -- Default fallback
+ END AS `policy_no`
")
->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
->join('clients', 'clients.id = policy_transaction.client_id', 'left')
@@ -1490,7 +1519,6 @@ class PolicyTransactionModel extends Model
clients.client_name,
insurers.name AS insurer_name,
policy_type.policy_type,
- policy_transaction.policy_no,
policy_transaction.endorsement_no,
CASE
WHEN policy_transaction.action_type = 'inception' THEN 'I'
@@ -1525,7 +1553,12 @@ class PolicyTransactionModel extends Model
inv_payment_details.statement_id = insurer_statements.id
AND inv_payment_details.is_active = 1
),
- 2) AS outstanding_amount
+ 2) AS outstanding_amount,
+ CASE
+ WHEN `pt_co_share_details`.`co_share_type` IN (0, 1) THEN `policy_transaction`.`policy_no`
+ WHEN `pt_co_share_details`.`co_share_type` > 1 THEN `pt_co_share_details`.`follower_policy_no`
+ ELSE `policy_transaction`.`policy_no` -- Default fallback
+ END AS `policy_no`
")
->join('pt_co_share_details', 'policy_transaction.id = pt_co_share_details.pt_id', 'left')
->join('insurer_statements', 'pt_co_share_details.statement_id = insurer_statements.id', 'left')
diff --git a/app/Models/TicketMasterModel.php b/app/Models/TicketMasterModel.php
index b85dad62..3a7c191a 100644
--- a/app/Models/TicketMasterModel.php
+++ b/app/Models/TicketMasterModel.php
@@ -953,4 +953,29 @@ class TicketMasterModel extends Model
'ticket_ids' => $ticketIdsString
];
}
+
+ public function getPolicyTermsJson($ticket_id)
+ {
+ $sql = " SELECT cp.policy_terms
+ FROM ticket_master tm
+ JOIN client_policy cp ON cp.id = tm.client_policy_id
+ WHERE tm.id = ?
+ AND tm.is_active = 1
+ AND cp.is_active = 1
+ ";
+
+ $binds = [$ticket_id];
+ $query = $this->db->query($sql, $binds);
+
+ if ($query && $query->getNumRows() > 0) {
+ $row = $query->getRowArray();
+ return json_encode(['policy_terms' => $row['policy_terms']]);
+ }
+
+ return json_encode(['policy_terms' => null]);
+ }
+
+
+
+
}
diff --git a/app/Views/UserList.php b/app/Views/UserList.php
index be654b8d..b7de1d73 100755
--- a/app/Views/UserList.php
+++ b/app/Views/UserList.php
@@ -1,4 +1,4 @@
- -->
+
+
+
@@ -96,7 +286,7 @@ table.dataTable tbody td {
-