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 @@
+ + + + + - + - +
@@ -297,6 +302,8 @@ $('#btnBranchAdd').click(function() { $('#district').val(''); $('#branch_city').val(''); $('#branch_form')[0].reset(); + $('#branch_form').parsley().reset(); + $('#pre_branch_id').val(''); $('.ac').css('display', 'block'); contactCount = 1 @@ -389,6 +396,7 @@ $("#branch_form").submit(function(event) { var formData = new FormData($('#branch_form')[0]); + const jsonString = JSON.stringify(selectedValues); const level_contect_data_json_string = JSON.stringify(level_contect_data); console.log('jsonString', jsonString); @@ -479,6 +487,9 @@ $("#branch_form").submit(function(event) { $('.loader').fadeOut(); $('.loader-mask').delay(350).fadeOut('slow'); console.log('Something Wrong!', 'warning'); + if(xhr.status === 409){ + alert('The Current Branch is Already Existing..!!'); + } }, 300); }, complete: function() { @@ -546,7 +557,7 @@ $('body').on('click', '.btnBranchEdit', function() { $('#district').val(res.data.district); $('#branch_city').val(res.data.city); $('#branch_PrimaryKey').val(res.data.id); - $('#pre_branch_id').val(res.data.pre_branch_id) + $('#pre_branch_id').val(res.data.pre_branch_id??'') if(res.data.sez == 1){ $('#sez').prop('checked', true); diff --git a/app/Views/client_onboarding.php b/app/Views/client_onboarding.php index 567fc409..b27a9673 100755 --- a/app/Views/client_onboarding.php +++ b/app/Views/client_onboarding.php @@ -418,7 +418,7 @@
- @@ -434,7 +434,7 @@
- @@ -1043,38 +1043,52 @@ \ No newline at end of file