diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 89785051..013d4413 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -162,6 +162,11 @@ $routes->group("/client", ["filter" => "authMVC"], function ($routes) { $routes->post("edit", "ClientController::editClientKYCInfo"); $routes->get("list/(:any)", "ClientController::getKycDocsById/$1"); $routes->get("delete/(:any)", "ClientController::deleteClientKycDocs/$1"); + + $routes->post("create_2", "ClientController::createClientKYCInfo_2"); + $routes->post("edit_2", "ClientController::editClientKYCInfo_2"); + $routes->post("delete_2", "ClientController::deleteClientKycDocs_2/$1"); + }); $routes->group("premimum", ["filter" => "authMVC"], function ($routes) { diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index e0a556db..b67ae501 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -1005,6 +1005,153 @@ class ClientController extends AdminController + public function createClientKYCInfo_2() + { + $this->myLogger->logme('error', 'create Client kyc function called'); + $data = $this->request->getPost(); + + $uploadedFile = $this->request->getFile('file_name'); + + if ($uploadedFile && $uploadedFile->isValid() && !$uploadedFile->hasMoved()) { + $this->myLogger->logme('info', 'File is valid and ready to move.'); + } else { + $this->myLogger->logme('error', 'File failed validation or was not uploaded.'); + } + + $uploadFilePath = WRITEPATH . 'uploads/client_kyc_documents'; + + $File = file_Upload($uploadedFile, $uploadFilePath); + $this->myLogger->logme('info', 'Result of file_Upload: ' . $File); + unset($data['file_name']); + + if (!empty($File)) { $data['file_name'] = $File; } + + $data['created_by'] = get_session_userid(); + $insert = $this->clientKYCDocsModel->insert($data); + + if ($insert) { + $html = $this->generateKycSingleTable($data['client_id']); + $dropdown = $this->fetch_dropdown($data['client_id']); + return $this->respond(['status' => true, 'code' => 200, 'file_name' => $File, 'html' => $html,'dropdown'=>$dropdown], 200); + } else { + $this->myLogger->logme('error', 'Database insert failed.'); + return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to add document'], 200); + } + } + + public function editClientKYCInfo_2() + { + + $kyc_id = $this->request->getPost('id'); + $client_id = $this->request->getPost('client_id'); + $old_file_name = $this->request->getPost('old_file_name'); + $uploadedFile = $this->request->getFile('file_name'); + $new_file_name = null; + $uploadFilePath = WRITEPATH . 'uploads/client_kyc_documents'; + + + if ($uploadedFile && $uploadedFile->isValid() && !$uploadedFile->hasMoved()) { + + + $new_file_name = file_Upload($uploadedFile, $uploadFilePath); + + if (!empty($new_file_name)) { + + $updateData['file_name'] = $new_file_name; + + // Delete the old file from the storage if it exists + // if (!empty($old_file_name)) { + // $old_file_path = $uploadFilePath . '/' . $old_file_name; + // if (file_exists($old_file_path)) { + // unlink($old_file_path); + // // Optionally delete from G-Drive here if applicable + // } + // } + } else { + // New file upload failed + return $this->respond(['status' => false, 'code' => 500, 'message' => 'New file upload failed on server.'], 200); + } + } + + // 2. Perform the database update + if (!empty($updateData)) { + + $updateData['updated_by'] = get_session_userid(); + $update = $this->clientKYCDocsModel->update($kyc_id, $updateData); + $html = $this->generateKycSingleTable($client_id); + $dropdown = $this->fetch_dropdown($client_id); + + if ($update) { + return $this->respond(['status' => true, 'code' => 200, 'message' => 'Document updated successfully.','html' => $html,'dropdown' => $dropdown], 200); + } + } else { + + return $this->respond(['status' => true, 'code' => 200, 'message' => 'No changes detected. Document remains the same.'], 200); + } + + + return $this->respond(['status' => false, 'code' => 404, 'message' => 'Database update failed or record not found.'], 200); + } + + + public function deleteClientKycDocs_2() + { + + $kyc_id = $this->request->getPost('id'); + $client_id = $this->request->getPost('client_id'); + + if (empty($kyc_id)) { + return $this->respond(['status' => false, 'code' => 400, 'message' => 'Missing document ID.'], 200); + } + $updateData['updated_by'] = get_session_userid(); + $updateData['is_active'] = $this->request->getPost('is_active'); + + $delete = $this->clientKYCDocsModel->update($kyc_id, $updateData); + + if ($delete) { + $html = $this->generateKycSingleTable($client_id); + $dropdown = $this->fetch_dropdown($client_id); + return $this->respond(['status' => true, 'code' => 200, 'id' => $kyc_id, 'message' => 'Document successfully deactivated.','html' => $html,'dropdown' => $dropdown], 200); + } else { + return $this->respond(['status' => false, 'code' => 404, 'message' => 'Failed to update record (ID not found or DB error).'], 200); + } + } + + public function fetch_dropdown($client_id){ + + $db = db_connect(); + + + $submitted_ids_subquery = $db->table('client_kyc_documents ckd') + ->select('ckd.kyc_doc_type_id') + ->where('ckd.client_id', $client_id) + ->where('ckd.is_active', 1) + ->getCompiledSelect(); + + + $result = $db->table('kyc_docs kd') + ->select('kd.*') + ->join('clients c', 'kd.kyc_type_id = c.entity_type_id') + ->where('c.id', $client_id) + ->where("kd.kyc_type_id NOT IN ({$submitted_ids_subquery})") + ->groupBy('kd.id') + ->get() + ->getResultArray(); + + + $dropdown = ''; + $dropdown .= ''; + + foreach ($result as $row) { + $dropdown .= ''; + } + + return $dropdown; + } + + public function createClientRelation() { @@ -2361,6 +2508,36 @@ class ClientController extends AdminController } + + public function generateKycSingleTable($client_id) + { + + + $result['ckdlist'] = db_connect()->table('client_kyc_documents ckd') + ->select("ckd.id,ckd.client_id,ckd.kyc_doc_type_id,ckd.file_name,kd.file_name AS kd_docs_name,ckd.other_docs_name,ckd.vehicle_id,ckd.is_active, + CASE + WHEN ckd.kyc_doc_type_id IS NULL + OR ckd.kyc_doc_type_id = 0 + OR ckd.kyc_doc_type_id = '' + THEN ckd.other_docs_name + ELSE kd.file_name + END AS ui_docs_name") + ->join('kyc_docs kd','ckd.kyc_doc_type_id = kd.kyc_type_id','left') + ->where('ckd.client_id',$client_id) + ->where('ckd.is_active',1) + ->groupBy('ckd.id') + ->get() + ->getResultArray(); + + + $result['client_id'] = $client_id; + $table = view('client_kyc_single_table', $result); + + return $table; + // print_r($table); die; + + } + public function getPolicesByInsurerId($id = null) { $this->myLogger->logme('error', 'getPolicesByInsurerId function called'); diff --git a/app/Controllers/PolicyTransactionController.php b/app/Controllers/PolicyTransactionController.php index e60d0be1..5b348a0f 100644 --- a/app/Controllers/PolicyTransactionController.php +++ b/app/Controllers/PolicyTransactionController.php @@ -994,6 +994,7 @@ $clientController = new ClientController(); $data['client_kyc_primary_table'] = $clientController->generateKycPrimaryTable($data['client_id']); $data['client_kyc_other_table'] = $clientController->generateKycOthersTable($data['client_id']); + // $data['client_kyc_single_table'] = $clientController->generateKycSingleTable($data['client_id']); $data['entity_type_id'] = $client_data['entity_type_id']; return $this->respondSuccess($insert, "Policy transaction created successfully", $data); @@ -1056,6 +1057,7 @@ $clientController = new ClientController(); $data['client_kyc_primary_table'] = $clientController->generateKycPrimaryTable($data['client_id']); $data['client_kyc_other_table'] = $clientController->generateKycOthersTable($data['client_id']); + // $data['client_kyc_single_table'] = $clientController->generateKycSingleTable($data['client_id']); $data['entity_type_id'] = $client_data['entity_type_id']; @@ -1624,6 +1626,8 @@ $clientController = new ClientController(); $data['client_kyc_primary_table'] = $clientController->generateKycPrimaryTable($data['client_id']); $data['client_kyc_other_table'] = $clientController->generateKycOthersTable($data['client_id']); + $data['client_kyc_single_table'] = $clientController->generateKycSingleTable($data['client_id']); + $data['client_kyc_dd_data'] = $clientController->fetch_dropdown($data['client_id']); $data['vehicle_docs'] = $this->clientKYCDocsModel ->where('client_id', $data['client_id']) @@ -1894,6 +1898,7 @@ $clientController = new ClientController(); $data['client_kyc_primary_table'] = $clientController->generateKycPrimaryTable($data['client_id']); $data['client_kyc_other_table'] = $clientController->generateKycOthersTable($data['client_id']); + $data['client_kyc_single_table'] = $clientController->generateKycSingleTable($data['client_id']); $data['vehicle_docs'] = $this->clientKYCDocsModel ->where('client_id', $data['client_id']) diff --git a/app/Views/client_kyc_2.php b/app/Views/client_kyc_2.php new file mode 100755 index 00000000..8a2ce5ed --- /dev/null +++ b/app/Views/client_kyc_2.php @@ -0,0 +1,322 @@ + + +
| S. No | +Document Name | +File Name | +Action | +
|---|