From 8b6bab2d4a0bbc2e28a9388583ac1a98315c6f93 Mon Sep 17 00:00:00 2001 From: Gowtham M Date: Fri, 27 Jun 2025 14:56:05 +0530 Subject: [PATCH] CHANGES_ HR api Hr access control change : GWM --- app/Config/Routes.php | 20 +++---- app/Controllers/ClientController.php | 8 ++- app/Controllers/EmployeeRestController.php | 48 ++++++++++++++-- .../RestAuthenticationController.php | 23 ++++++++ app/Models/ClientPolicyModel.php | 55 +++++++++++++------ 5 files changed, 121 insertions(+), 33 deletions(-) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index d0d6da5f..66ec5bb8 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -466,6 +466,7 @@ $routes->post("/employeeRest/verifyHrWithMobileNumber", "RestAuthenticationContr $routes->post("/employeeRest/verifyHrWithEmail", "RestAuthenticationController::verifyHrWithEmail"); $routes->post("/employeeRest/getVerifiedHrData", "RestAuthenticationController::getVerifiedHrData"); $routes->post("/employeeRest/updateHROTP", "RestAuthenticationController::updateHROTP"); +$routes->get("/employeeRest/getHRAccessData", "RestAuthenticationController::getHRAccessData"); // Test initiate Claim $routes->post('initiateClaim',"EmployeeRestController::initiateClaim"); @@ -486,9 +487,6 @@ $routes->post("employeeRest/saveMpin", "RestAuthenticationController::saveMpin") $routes->post("employeeRest/updateMpin", "RestAuthenticationController::updateMpin"); - -$routes->get("getEmployeePolicy", "EmployeeRestController::getEmployeePolicy"); -$routes->get("getAddOnPolicy", "EmployeeRestController::getAddOnPolicy"); $routes->group("employeeRest", ["filter" => "authJWT"], function ($routes) { $routes->post("getVerifiedUserData", "RestAuthenticationController::getVerifiedUserData"); @@ -517,13 +515,6 @@ $routes->group("employeeRest", ["filter" => "authJWT"], function ($routes) { $routes->get("exportDataByClientPolicyId", "EmployeeRestController::exportDataByClientPolicyId"); - $routes->get("getPolicyLevelEmployeeSummaryData", "EmployeeRestController::getPolicyLevelEmployeeSummaryData"); - $routes->get("cdSummaryData", "EmployeeRestController::cdSummaryData"); - $routes->get("cdTransactionData", "EmployeeRestController::cdTransactionData"); - $routes->match( ['get', 'post'], 'claimsSearch','EmployeeRestController::claimsSearch'); - $routes->get("claimView", "EmployeeRestController::claimView"); - $routes->get("exportCashDepositData", "EmployeeRestController::exportCashDepositData"); - $routes->get("removeEmpAndEmpPolicyData", "EmployeeRestController::removeEmpAndEmpPolicyData"); $routes->post("calculatePremium", "EmployeeRestController::calculatePremium"); @@ -535,6 +526,15 @@ $routes->group("employeeRest", ["filter" => "authJWT"], function ($routes) { $routes->get("getWellnessURL", "EmployeeRestController::getWellnessURL"); //$routes->post('postDataForTicket',"EmployeeRestController::postDataForTicket"); + + //hr api's + $routes->get("getPolicyLevelEmployeeSummaryData", "EmployeeRestController::getPolicyLevelEmployeeSummaryData"); + $routes->get("cdSummaryData", "EmployeeRestController::cdSummaryData"); + $routes->get("cdTransactionData", "EmployeeRestController::cdTransactionData"); + $routes->match( ['get', 'post'], 'claimsSearch','EmployeeRestController::claimsSearch'); + $routes->get("claimView", "EmployeeRestController::claimView"); + $routes->get("exportCashDepositData", "EmployeeRestController::exportCashDepositData"); + }); $routes->get("getEmployeeActiveOrInactivePolicy", "EmployeeRestController::getEmployeeActiveOrInactivePolicy"); $routes->get("sendPushNotification", "EmployeeRestController::sendPushNotification"); diff --git a/app/Controllers/ClientController.php b/app/Controllers/ClientController.php index 1d206b11..a2637b9e 100755 --- a/app/Controllers/ClientController.php +++ b/app/Controllers/ClientController.php @@ -618,12 +618,14 @@ class ClientController extends AdminController } // In your controller - public function deposit($id = null , $requestFrom = null ) + public function deposit($id = null , $requestFrom = null , $policyId = null) { + $headerData['page_name'] = 'Client Deposit'; - + $data['clientName'] = $this->clientModel->where('id', $id)->find(); - $data['clientData'] = $this->clientPolicyModel->getinsurerswithclientid($id); + $data['clientData'] = $this->clientPolicyModel->getinsurerswithclientid($id,$policyId); + $data['depositsummary'] = $this->clientPolicyModel->getDepositlistsummary($id); // Fetch associated insurer names and balances diff --git a/app/Controllers/EmployeeRestController.php b/app/Controllers/EmployeeRestController.php index db9a0ea2..fac6b1c8 100755 --- a/app/Controllers/EmployeeRestController.php +++ b/app/Controllers/EmployeeRestController.php @@ -32,6 +32,7 @@ use App\Models\AuditHistoryModel; use App\Models\TicketClaimStatusModel; use App\Models\TicketMasterModel; use App\Models\TicketMessageModel; +use App\Models\HRAccessControlModel; @@ -83,6 +84,7 @@ class EmployeeRestController extends AdminController protected $ticketMessage; protected $ticketController; + protected $hrAccessControlModel; public function __construct() @@ -112,6 +114,7 @@ class EmployeeRestController extends AdminController $this->ticketMessage = new TicketMessageModel(); $this->ticketController = new TicketController(); + $this->hrAccessControlModel = new HRAccessControlModel(); } @@ -2276,16 +2279,45 @@ class EmployeeRestController extends AdminController } + + public function getHRAccessData( $hr_id = null , $request_for = 'post_enrollment') + { + $hr_id = $this->request->getGet('hr_id') ?? $hr_id; + $request_for = $this->request->getGet('request_for') ?? $request_for; + + if($request_for == 'pre_enrollment'){ $idField = 'pre_hr_id'; }else{ $idField = 'post_hr_id'; } + + $data = $this->hrAccessControlModel->where($idField , $hr_id)->where('is_active' , 1)->first(); + + if($request_for == 'post_enrollment'){ return $data ?? []; } + + return $this->respond(['status' => (($data) ? 'success' : 'failed'),'code' => (($data) ? 200 : 404),'data' => $data ], 200); + } + public function getPolicyLevelEmployeeSummaryData() { + $hr_id = $this->request->getGet('hr_id'); + $HRAccessData = $this->getHRAccessData($hr_id,'post_enrollment'); + + if(isset($HRAccessData['allowed_active_policies'])) + { + $policyId = json_decode($HRAccessData['allowed_active_policies'],true); + }else{ + $policyId = []; + } + + $ClientPolicyData = $this->clientPolicyModel->select('client_policy.id as client_policy_id , client_policy.client_id as client_id, client_policy.policy_type_id as policy_type_id, client_policy.is_addon as is_addon , client_policy.open_for_enrollment as OpenForEnrollment , client_policy.inception_type as inception_type ') ->where('client_policy.client_id', $this->request->getGet('client_id') ) ->where('client_policy.client_branch_id', $this->request->getGet('client_branch_id') ) ->where('client_policy.is_active', 1 ) ->where('client_policy.policy_status', $this->request->getGet('policy_status')) + ->whereIn('client_policy.id', $policyId) ->findAll(); + + $result = []; // dd( $ClientPolicyData); foreach ($ClientPolicyData as $key => $value) @@ -2331,13 +2363,24 @@ class EmployeeRestController extends AdminController public function cdSummaryData() { + $hr_id = $this->request->getGet('hr_id'); + $HRAccessData = $this->getHRAccessData($hr_id,'post_enrollment'); + + if(isset($HRAccessData['allowed_active_policies'])) + { + $policyId = json_decode($HRAccessData['allowed_active_policies'],true); + }else{ + $policyId = []; + } + $clientId = $this->request->getGet('client_id'); $clientController = new ClientController; - $result = $clientController->deposit($clientId , $requestFrom = 'rest'); + $result = $clientController->deposit($clientId , $requestFrom = 'rest' , $policyId); $data = []; + foreach ($result['clientData'] as $key => $value) { $temp['client_id'] = $value->client_id; @@ -2539,9 +2582,6 @@ class EmployeeRestController extends AdminController } - - - public function exportCashDepositData() { diff --git a/app/Controllers/RestAuthenticationController.php b/app/Controllers/RestAuthenticationController.php index a31dabe7..de52b208 100755 --- a/app/Controllers/RestAuthenticationController.php +++ b/app/Controllers/RestAuthenticationController.php @@ -21,6 +21,7 @@ use CodeIgniter\API\ResponseTrait; use App\Models\EmployeeModel; use App\Models\AuthHistoryModel; use App\Models\LevelContactModel; +use App\Models\HRAccessControlModel; use Firebase\JWT\JWT; // require_once('../vendor/autoload.php'); @@ -35,6 +36,7 @@ class RestAuthenticationController extends AdminController protected $employeeModel; protected $authHistoryModel; protected $hrModel; + protected $hrAccessControlModel; public function __construct() @@ -45,6 +47,7 @@ class RestAuthenticationController extends AdminController $this->employeeModel = new EmployeeModel(); $this->authHistoryModel = new AuthHistoryModel(); $this->hrModel = new LevelContactModel(); + $this->hrAccessControlModel = new HRAccessControlModel(); } @@ -441,6 +444,11 @@ class RestAuthenticationController extends AdminController ->find(); } + $HRAccessData = $this->getHRAccessData( $hrData['0']['id'] , 'post_enrollment'); + + if(isset($HRAccessData['allowed_modules'])){ $hrData['0']['allowed_modules'] = json_decode($HRAccessData['allowed_modules'],true)['post']; }else{ $hrData['0']['allowed_modules'] = []; } + + $result = JWTToken::encode($hrData['0']); @@ -457,6 +465,21 @@ class RestAuthenticationController extends AdminController } + public function getHRAccessData( $hr_id = null , $request_for = 'post_enrollment') + { + $hr_id = $this->request->getGet('hr_id') ?? $hr_id; + $request_for = $this->request->getGet('request_for') ?? $request_for; + + if($request_for == 'pre_enrollment'){ $idField = 'pre_hr_id'; }else{ $idField = 'post_hr_id'; } + + $data = $this->hrAccessControlModel->where($idField , $hr_id)->where('is_active' , 1)->first(); + + if($request_for == 'post_enrollment'){ return $data ?? []; } + + return $this->respond(['status' => (($data) ? 'success' : 'failed'),'code' => (($data) ? 200 : 404),'data' => $data ], 200); + } + + public function getUserIdFromToken() { diff --git a/app/Models/ClientPolicyModel.php b/app/Models/ClientPolicyModel.php index 59f05958..5c43b52e 100755 --- a/app/Models/ClientPolicyModel.php +++ b/app/Models/ClientPolicyModel.php @@ -168,25 +168,48 @@ class ClientPolicyModel extends Model } - public function getinsurerswithclientid($id) + public function getinsurerswithclientid($id, $policyId = null) { + // dd($policyId); - return $this->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('clients.client_name as client_name') - ->join('clients', 'clients.id=client_policy.client_id') - ->join('insurers', 'insurers.id = client_policy.insurer_id') - ->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') - ->where('cd_master.is_active', 1) - ->groupBy('client_policy.client_id', $id) // Group by insurer_id - ->groupBy('client_policy.insurer_id') - ->groupBy('client_policy.cd_ac_pk') - ->get() - ->getResult(); + $builder = $this->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('clients.client_name as client_name') + ->join('clients', 'clients.id = client_policy.client_id') + ->join('insurers', 'insurers.id = client_policy.insurer_id') + ->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') + ->where('cd_master.is_active', 1) + ->groupBy('client_policy.client_id') + ->groupBy('client_policy.insurer_id') + ->groupBy('client_policy.cd_ac_pk'); + if ($policyId != null) { + $builder->whereIn('client_policy.id', $policyId); + } + + return $builder->get()->getResult(); + + + + // return $this->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('clients.client_name as client_name') + // ->join('clients', 'clients.id=client_policy.client_id') + // ->join('insurers', 'insurers.id = client_policy.insurer_id') + // ->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') + // ->where('cd_master.is_active', 1) + // ->groupBy('client_policy.client_id', $id) // Group by insurer_id + // ->groupBy('client_policy.insurer_id') + // ->groupBy('client_policy.cd_ac_pk') + // ->get() + // ->getResult(); + // return $this->db->table('client_policy') // ->select('insurers.name as insurer_name, insurers.short_name as insurer_short') // ->select('clients.client_name as client_name')