diff --git a/app/Config/Routes.php b/app/Config/Routes.php
index fde6c9ec..d640d843 100755
--- a/app/Config/Routes.php
+++ b/app/Config/Routes.php
@@ -706,6 +706,7 @@ $routes->group('test', function($routes) {
$routes->get('viewrfq', 'TestingController::viewRFQNonEb');
$routes->get('exportexcel', 'TestingController::exportExcel');
$routes->post('saverfq', 'TestingController::saverfq');
+ $routes->get('mapping_client_id_and_branch_id','TestingController::mapping_client_id_and_branch_id');
$routes->get('membervalidation', 'TestingController::membervalidation');
$routes->get('generateExcel', 'TestingController::generateExcel');
});
diff --git a/app/Controllers/Chatbot/EcardDownloadConversation.php b/app/Controllers/Chatbot/EcardDownloadConversation.php
index d0b0f08d..e0d63294 100644
--- a/app/Controllers/Chatbot/EcardDownloadConversation.php
+++ b/app/Controllers/Chatbot/EcardDownloadConversation.php
@@ -14,7 +14,7 @@ class EcardDownloadConversation extends Conversation
public function run()
{
$this->bot->types();
- sleep(0.5);
+ // sleep(0.5);
$this->showEcardMenu();
}
diff --git a/app/Controllers/ChatbotControllerNew.php b/app/Controllers/ChatbotControllerNew.php
index 67d31c37..8b0a979b 100644
--- a/app/Controllers/ChatbotControllerNew.php
+++ b/app/Controllers/ChatbotControllerNew.php
@@ -111,7 +111,7 @@ class ChatbotControllerNew extends BaseController
log_message("error","Inside Bot Type Function");
$bot->types(); // Typing indicator for the first message
- sleep(0.1); // Delay
+ // sleep(0.5); // Delay
});
// Start the Main Menu when user says "hi" or "start"
$this->botman->hears('start|hi|hello|help|help me', function (BotMan $bot) {
diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php
index 3a149d37..63ddac11 100755
--- a/app/Controllers/ClientController.php
+++ b/app/Controllers/ClientController.php
@@ -1121,14 +1121,47 @@ class ClientController extends AdminController
}
$data['created_by'] = get_session_userid();
+
+
+ // before updating check if pre_branch_id is already existing in the current db
+
+ if(isset($data['pre_branch_id']) && !empty($data['pre_branch_id']))
+ {
+ $existing_pre_branch = $this->clientBranchModel
+ ->where('pre_branch_id',$data['pre_branch_id'])
+ //->where('id !=',$post_branch_id)
+ ->first();
+
+ if($existing_pre_branch)
+ {
+ return $this->respond([
+ 'status' => false,
+ 'code' => 409,
+ 'message' => 'The branch is already mapped with another branch. Please check.',
+ ], 409);
+ }
+ }
+
+
+
$insert = $this->clientBranchModel->insert($data);
+ $post_branch_id = $insert;
+
if ($insert) {
$level_contact_data = $this->request->getPost('level_contect_data');
$level_contact_data = !empty($level_contact_data) ? json_decode($level_contact_data, true) : null;
$this->saveLevelContacts($level_contact_data, $insert);
}
+ if($post_branch_id && isset($data['pre_branch_id']) && !empty($data['pre_branch_id']))
+ {
+ // need to update the client_branch in the pre
+ $result = $this->updatePreClientBranch($data['pre_branch_id'],$post_branch_id , "create");
+
+ log_message('error','Pre client_branch update result for pre_branch_id '.$data['pre_branch_id'].' and post_branch_id '.$post_branch_id.' is '.json_encode($result));
+ }
+
if ($insert) {
$branchData = $this->clientBranchModel->where('client_id', $this->request->getPost('client_id'))->findAll();
$branchData['role'] = get_role_id();
@@ -1153,7 +1186,11 @@ class ClientController extends AdminController
$this->myLogger->logme('error', 'Client branch EDIT function called');
$id = $this->request->getPost('branch_id_primarykey');
$client_id = $this->request->getPost('client_id');
+ $pre_branch_id = $this->request->getPost('pre_branch_id') ?? '';
+
$data = $this->request->getPost();
+ $data['pre_branch_id'] = $pre_branch_id;
+
$units = $this->request->getPost('units');
$emp_unit_count = 0;
@@ -1212,7 +1249,41 @@ class ClientController extends AdminController
}
$data['updated_by'] = get_session_userid();
+
+ $post_branch_id = $id;
+
+ // before updating check if pre_branch_id is already existing in the current db
+
+ if(isset($data['pre_branch_id']) && !empty($data['pre_branch_id']))
+ {
+ $existing_pre_branch = $this->clientBranchModel
+ ->where('pre_branch_id',$data['pre_branch_id'])
+ ->where('id !=',$post_branch_id)
+ ->first();
+
+ if($existing_pre_branch)
+ {
+ return $this->respond([
+ 'status' => false,
+ 'code' => 409,
+ 'message' => 'The branch is already mapped with another branch. Please check.',
+ ], 409);
+ }
+ }
+
$insert = $this->clientBranchModel->update($id, $data);
+
+
+
+ if($post_branch_id && isset($data['pre_branch_id']) && !empty($data['pre_branch_id']))
+ {
+ // need to update the client_branch in the pre
+ $result = $this->updatePreClientBranch($data['pre_branch_id'],$post_branch_id , "update");
+
+ log_message('error','Pre client_branch update result for pre_branch_id '.$data['pre_branch_id'].' and post_branch_id '.$post_branch_id.' is '.json_encode($result));
+ }
+
+
$this->myLogger->logme('error', 'Client branch EDITED by {data}', ['data' => get_session_userid()]);
@@ -7130,9 +7201,15 @@ class ClientController extends AdminController
$post_branch_id = $value['post_branch_id'];
$post_hr_id = $value['post_hr_id'];
- $value['pre_client_id'] = $this->getPreClientId($post_branch_id);
- $value['pre_branch_id'] = $this->getPreBranchId($post_branch_id);
- $value["pre_hr_id"] = $this->getPreHrId($post_branch_id);
+ $preBranchId = $this->getPreBranchIdByPostBranchId($post_branch_id);
+
+ if (!empty($preBranchId)) {
+ $value['pre_branch_id'] = $preBranchId;
+ $value['pre_client_id'] = $this->getPreClientIdByPreBranchId($preBranchId);
+ $value["pre_hr_id"] = $this->getPreHrIdByPreBranchId($preBranchId);
+ }
+
+
// INSERT or UPDATE
if (empty($value['pk']) || (int)$value['pk'] === 0) {
@@ -7199,26 +7276,28 @@ class ClientController extends AdminController
}
}
- private function getPreClientId($post_branch_id){
+ private function getPreClientIdByPreBranchId($pre_branch_id){
$db2 = \Config\Database::connect('preDB');
- $pre_client_id = $db2->table('client_branch')->where('post_branch_id',$post_branch_id)->where('is_Active',1)->get()->getResultArray()[0]['client_id']??[];
+ $pre_client_id = $db2->table('client_branch')->where('id',$pre_branch_id)->where('is_Active',1)->get()->getResultArray()[0]['client_id']??"";
return $pre_client_id;
}
- private function getPreBranchId($post_branch_id){
- $db2 = \Config\Database::connect('preDB');
- $pre_branch_id = $db2->table('client_branch')->where('post_branch_id',$post_branch_id)->where('is_Active',1)->get()->getResultArray()[0]['id']??[];
- return $pre_branch_id;
- }
- private function getPreHrId($post_branch_id){
+ private function getPreHrIdByPreBranchId($pre_branch_id){
$db2 = \Config\Database::connect('preDB');
$pre_hr_id = $db2->table('client_branch cb')
->select('lc.id')
->join('level_contacts lc','lc.ref_id = cb.id')
- ->where('post_branch_id',$post_branch_id)->where('is_Active',1)->get()->getResultArray()[0]['id']??[];
+ ->where('cb.id',$pre_branch_id)->where('cb.is_Active',1)->where('lc.is_Active',1)->get()->getResultArray()[0]['id']??"";
return $pre_hr_id;
}
+ private function getPreBranchIdByPostBranchId($post_branch_id){
+ $db2 = \Config\Database::connect();
+ $pre_branch_id = $db2->table('client_branch')->where('id',$post_branch_id)->where('is_Active',1)->get()->getResultArray()[0]['pre_branch_id']??"";
+ return $pre_branch_id;
+ }
+
+
// ------------------- DEMO CLIENT FUNCTION --------------------------------------------------------------------------------
public function wipeDemoClient()
@@ -7607,6 +7686,26 @@ class ClientController extends AdminController
}
+ private function updatePreClientBranch($pre_branch_id,$post_branch_id ,$operation)
+ {
+
+
+
+ $preDB = \Config\Database::connect('preDB');
+
+ if($operation != 'create'){
+
+ $builder = $preDB->table('client_branch');
+ $builder->where('post_branch_id', $post_branch_id);
+ $builder->update(['post_branch_id' => null]);
+ }
+
+ $builder = $preDB->table('client_branch');
+ $builder->where('id', $pre_branch_id);
+ $builder->update(['post_branch_id' => $post_branch_id]);
+
+ return true;
+ }
diff --git a/app/Controllers/TestingController.php b/app/Controllers/TestingController.php
index d9756a7b..e6f377c7 100644
--- a/app/Controllers/TestingController.php
+++ b/app/Controllers/TestingController.php
@@ -26,7 +26,7 @@ class TestingController extends BaseController
{
$this->myLogger = \Config\Services::mylogger();
}
-
+
public function saveForm()
{
// Get JSON input
@@ -41,7 +41,7 @@ class TestingController extends BaseController
}
public function testcli()
- {
+ {
echo "hi";
$this->myLogger->logme('error', "test log");
echo "hi 2";
@@ -85,19 +85,19 @@ class TestingController extends BaseController
$options->set('debugLayoutBlocks', false);
$options->set('debugLayoutInline', false);
$options->set('debugLayoutPaddingBox', false);
-
+
// Initialize DomPDF
$dompdf = new Dompdf($options);
-
+
// Load HTML content
$dompdf->loadHtml($html);
-
+
// Set paper size and orientation
$dompdf->setPaper('A4', 'landscape'); // or 'portrait'
-
+
// Render PDF
$dompdf->render();
-
+
// Output PDF to browser
$filename = 'ecard_' . date('Y-m-d_H-i-s') . '.pdf';
$dompdf->stream($filename, ['Attachment' => true]); // Set to false for inline view
@@ -117,7 +117,7 @@ class TestingController extends BaseController
'POLICY_DATE' => '31/12/2024',
'INSURER_NAME' => 'ZURICH KOTAK GTNERAL INSURANCE COIIPANY lNDlA LIMITED',
'TPA_NAME' => 'HealthIndia Insurance TPA Services Pvt. Ltd.',
- 'FRONT_CARD' => base_url() .('public/uploads/template_bg/Nhance_Ecard_working_1_front_3.png'),
+ 'FRONT_CARD' => base_url() . ('public/uploads/template_bg/Nhance_Ecard_working_1_front_3.png'),
'BACK_CARD' => base_url() . ('public/uploads/template_bg/Nhance_Ecard_working_1_Back_3.png'),
'LEVELS' => 'Level 1: 1800-XXX-XXXX
Level 2: support@company.com'
];
@@ -133,7 +133,7 @@ class TestingController extends BaseController
'POLICY_DATE' => '31/12/2024',
'INSURER_NAME' => 'ABC Insurance Co.',
'TPA_NAME' => 'XYZ TPA Ltd.',
- 'FRONT_CARD' => base_url() .('public/uploads/template_bg/Nhance_Ecard_working_1_front_3.png'),
+ 'FRONT_CARD' => base_url() . ('public/uploads/template_bg/Nhance_Ecard_working_1_front_3.png'),
'BACK_CARD' => base_url() . ('public/uploads/template_bg/Nhance_Ecard_working_1_Back_3.png'),
'LEVELS' => 'Level 1: 1800-XXX-XXXX
Level 2: support@company.com'
];
@@ -163,12 +163,12 @@ class TestingController extends BaseController
{
// Load your HTML template
$template = file_get_contents(WRITEPATH . 'e_card_template/common.html');
-
+
// Replace placeholders with actual data
foreach ($data as $key => $value) {
$template = str_replace('{' . $key . '}', $value, $template);
}
-
+
return $template;
}
@@ -231,21 +231,21 @@ class TestingController extends BaseController
$employeePolicy = new EmployeePolicyModel();
$data = $employeePolicy
- ->select('client_policy.policy_type_id')
- ->join('employees', 'employee_polices.employee_id = employees.id')
- ->join('client_policy', 'employee_polices.client_policy_id = client_policy.id')
- ->where('employees.is_active', 1)
- ->where('employees.emp_status', ['active', 'expired'])
- ->where('employee_polices.is_active', 1)
- ->where('employee_polices.status', ['active', 'expired'])
- ->where('employees.client_id', $client_id)
- ->where('employees.emp_code', $emp_code)
- ->groupBy('employee_polices.client_policy_id')
- ->findAll();
-
+ ->select('client_policy.policy_type_id')
+ ->join('employees', 'employee_polices.employee_id = employees.id')
+ ->join('client_policy', 'employee_polices.client_policy_id = client_policy.id')
+ ->where('employees.is_active', 1)
+ ->where('employees.emp_status', ['active', 'expired'])
+ ->where('employee_polices.is_active', 1)
+ ->where('employee_polices.status', ['active', 'expired'])
+ ->where('employees.client_id', $client_id)
+ ->where('employees.emp_code', $emp_code)
+ ->groupBy('employee_polices.client_policy_id')
+ ->findAll();
}
- public function ptedfitdata($id){
+ public function ptedfitdata($id)
+ {
$policy_transaction = new PolicyTransactionController();
$data = $policy_transaction->getInceptionDataForEdit($id);
// dd($data);
@@ -255,7 +255,7 @@ class TestingController extends BaseController
$dataArray = $data['pt_co_share_details']; // Example
$cd_ac_pk = 'CD12345';
$role_id = 1;
- $team_id = ['6'];
+ $team_id = ['6'];
$insurer_branch = $insurer_branch;
return view('pt_calc_table', [
@@ -321,7 +321,7 @@ class TestingController extends BaseController
}
public function viewRFQNonEb()
- {
+ {
$insurerBranchModel = new InsurerBranchModel();
$data['page_name'] = "RFQ NON EB";
$data['insurer'] = $insurerBranchModel->getInsurerBranchesWithInsurerNames();
@@ -329,7 +329,8 @@ class TestingController extends BaseController
return $this->loadLayout('view_rfq_non_eb_new', $data);
}
- public function saverfq(){
+ public function saverfq()
+ {
$json = $this->request->getPost('json');
$json = json_encode($json);
print_r($json);
@@ -348,10 +349,149 @@ class TestingController extends BaseController
// print_rr($policy_data['json']); die;
$policy_data = json_decode($policy_data['json'], true);
$policy_data = array_slice($policy_data, 0, -2);
- print_rr($policy_data); die;
- dd($policy_data);
+ print_rr($policy_data);
+ die;
+ dd($policy_data);
}
+
+ public function mapping_client_id_and_branch_id()
+ {
+
+ $post_clients_list = $this->getNonDuplicatePostClients();
+
+ $pre_clients_list = $this->getNonDuplicatePreClients();
+
+
+
+ if (
+ !empty($pre_clients_list) &&
+ !empty($post_clients_list)
+ ) {
+
+ $postDB = \Config\Database::connect();
+ $preDB = \Config\Database::connect('preDB');
+
+ foreach ($post_clients_list as $post_client) {
+
+ foreach ($pre_clients_list as $pre_client) {
+
+ if (trim($post_client['short_name']) == trim($pre_client['short_name'])) {
+
+ $postDB->table('clients')->where('id', $post_client['id'])->update(['pre_client_id' => $pre_client['id']]);
+
+ $preDB->table('clients')->where('id', $pre_client['id'])->update(['post_client_id' => $post_client['id']]);
+
+ // upto here we updated client_id in both dbs.
+
+ $post_branches = $postDB->table('client_branch')
+ ->where('client_id', $post_client['id'])
+ ->get()
+ ->getResultArray() ?? [];
+
+ $pre_branches = $preDB->table('client_branch')
+ ->where('client_id', $pre_client['id'])
+ ->get()
+ ->getResultArray() ?? [];
+
+ if (!empty($post_branches) && !empty($pre_branches)) {
+
+
+ foreach ($post_branches as $post_branch) {
+
+ $pre_branch = $preDB->table('client_branch')
+ ->where('client_id', $pre_client['id'])
+ ->where('branch_code', $post_branch['branch_code'])
+ ->get()
+ ->getRowArray() ?? [];
+
+ if (!empty($pre_branch)) {
+ $postDB->table('client_branch')->where('id', $post_branch['id'])->update(['pre_branch_id' => $pre_branch['id']]);
+ }
+ }
+
+ foreach ($pre_branches as $pre_branch) {
+
+ $post_branch = $postDB->table('client_branch')
+ ->where('client_id', $post_client['id'])
+ ->where('branch_code', $pre_branch['branch_code'])
+ ->get()
+ ->getRowArray() ?? [];
+
+ if (!empty($post_branch)) {
+ $preDB->table('client_branch')->where('id', $pre_branch['id'])->update(['post_branch_id' => $post_branch['id']]);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+ private function getNonDuplicatePostClients()
+ {
+
+
+ $postDB = \Config\Database::connect();
+
+ $sql = "SELECT *
+ FROM clients AS post_clients
+ WHERE post_clients.client_type = 1
+ AND post_clients.is_active = 1
+ AND (post_clients.short_name NOT IN
+ (
+ SELECT ir_post_clients.short_name
+ FROM clients as ir_post_clients
+ WHERE ir_post_clients.client_type = 1
+ AND ir_post_clients.short_name IS NOT NULL
+ AND TRIM(ir_post_clients.short_name) <> ''
+ AND ir_post_clients.is_active = 1
+ GROUP BY ir_post_clients.short_name
+ HAVING COUNT(*) > 1)
+ )
+ ORDER BY post_clients.short_name";
+
+ $binds = [];
+
+ $query = $postDB->query($sql, $binds);
+
+ $results = $query->getResultArray() ?? [];
+
+ return $results;
+ }
+
+ private function getNonDuplicatePreClients()
+ {
+
+ $preDB = \Config\Database::connect('preDB');
+
+ $sql = "SELECT *
+ FROM clients AS pre_clients
+ WHERE pre_clients.client_type = 1
+ AND pre_clients.is_active = 1
+ AND (pre_clients.short_name NOT IN
+ (
+ SELECT ir_pre_clients.short_name
+ FROM clients as ir_pre_clients
+ WHERE ir_pre_clients.client_type = 1
+ AND ir_pre_clients.short_name IS NOT NULL
+ AND TRIM(ir_pre_clients.short_name) <> ''
+ AND ir_pre_clients.is_active = 1
+ GROUP BY ir_pre_clients.short_name
+ HAVING COUNT(*) > 1)
+ )
+ ORDER BY pre_clients.short_name";
+
+ $binds = [];
+
+ $query = $preDB->query($sql, $binds);
+
+ $results = $query->getResultArray() ?? [];
+
+ return $results;
+ }
public function membervalidation($lead_id = 329)
{
$lead_controll = new LeadsController();
diff --git a/app/Views/client_branch.php b/app/Views/client_branch.php
index 038e9740..f35d5f99 100755
--- a/app/Views/client_branch.php
+++ b/app/Views/client_branch.php
@@ -86,13 +86,18 @@