GWM : hr login issue
This commit is contained in:
parent
68255d3590
commit
d33f783026
@ -770,12 +770,12 @@ $routes->get('fetchUHIDDetails','ICICILombardController::fetchUHIDDetails');
|
||||
|
||||
|
||||
//Third party - testing route
|
||||
|
||||
$routes->get('FhplGetBenefDetails','FhplApiController::FhplGetBenefDetails');
|
||||
$routes->get('EcardRequest','VidalApiController::EcardRequest');
|
||||
$routes->get('HospitalNetwork','MediAssistApiController::HospitalNetwork');
|
||||
$routes->get('VidalGetBenefDetails','VidalApiController::VidalGetBenefDetails');
|
||||
$routes->get('ClaimDetail','VidalApiController::ClaimDetail');
|
||||
$routes->get('SubmitClaim','MediAssistApiController::SubmitClaim');
|
||||
$routes->get('ClaimDetail','FhplApiController::ClaimDetail');
|
||||
$routes->get('SubmitClaim','FhplApiController::SubmitClaim');
|
||||
$routes->get('IntimateClaim','MediAssistApiController::IntimateClaim');
|
||||
$routes->get('IRSubmission','MediAssistApiController::IRSubmission');
|
||||
$routes->get('ClaimStatusUpdate','MediAssistApiController::ClaimStatusUpdate');
|
||||
|
||||
@ -27,13 +27,13 @@ class FhplApiController extends BaseController
|
||||
|
||||
public function generateAuthToken()
|
||||
{
|
||||
$url = env('FHPL_TOKEN_URL'); // example: https://uat.fhpl.net/token
|
||||
$url = env('FHPL_TOKEN_URL');
|
||||
|
||||
// x-www-form-urlencoded body
|
||||
$postData = http_build_query([
|
||||
'UserName' => 'TestApi@fhpl',
|
||||
'Password' => 'Fhpl@12345',
|
||||
'grant_type' => 'password',
|
||||
'UserName' => env('FHPL_USER_NAME'),
|
||||
'Password' => env('FHPL_PASSWORD'),
|
||||
'grant_type' => env('FHPL_GRANT_TYPE'),
|
||||
]);
|
||||
|
||||
$ch = curl_init();
|
||||
@ -65,9 +65,447 @@ class FhplApiController extends BaseController
|
||||
return $this->response->setJSON([
|
||||
'status' => $httpCode === 200,
|
||||
'http_code' => $httpCode,
|
||||
'response' => json_decode($response, true),
|
||||
'data' => json_decode($response, true),
|
||||
]);
|
||||
}
|
||||
|
||||
public function SubmitClaim($claimId = 515)
|
||||
{
|
||||
helper('api');
|
||||
|
||||
$data = $this->db->table('ticket_master tm')
|
||||
->select('
|
||||
tm.id,
|
||||
tm.emp_mobile as mobileNo,
|
||||
tm.emp_mail as emailId,
|
||||
tm.doa as admissionDate,
|
||||
tm.dod as dischargeDate,
|
||||
tm.hospital_name as hospitalName,
|
||||
tm.claim_amount as requestedAmount,
|
||||
tm.tpa_no as dependentUniqueId,
|
||||
cp.policy_no as policyNo,
|
||||
e.emp_code as memberId,
|
||||
tn.note as disease,
|
||||
cf.url as filePath
|
||||
')
|
||||
->join('employees e', 'e.id = tm.emp_id', 'left')
|
||||
->join('client_policy cp', 'tm.client_policy_id = cp.id', 'left')
|
||||
->join('ticket_notes tn', 'tn.ticket_id = tm.id', 'left')
|
||||
->join('claim_files cf', "cf.ticket_id = tm.id AND cf.file_type = 2 AND cf.mime_type='application/pdf'", 'left')
|
||||
->where('tm.id', $claimId)
|
||||
->get()
|
||||
->getRowArray();
|
||||
|
||||
|
||||
if (count($data) && $data['filePath'] == null) {
|
||||
log_message('error', "TPA CLAIM PUSH FAILED FHPL | claimId: '.$claimId.' - Claim or File Missing");
|
||||
return $this->response->setJSON(['status' => false,'message' => 'Claim or File Missing', ]);
|
||||
}
|
||||
|
||||
// Build absolute file path
|
||||
$filename = basename($data['filePath']);
|
||||
$pdfPath = WRITEPATH . 'uploads/claim_files/' . $filename;
|
||||
|
||||
if (!file_exists($pdfPath)) {
|
||||
log_message('error', "TPA CLAIM PUSH FAILED FHPL | claimId: '.$claimId.' - PDF not found on server");
|
||||
return $this->response->setJSON(['status' => false,'message' => 'PDF not found on server']);
|
||||
}
|
||||
|
||||
// Convert PDF to Base64
|
||||
$fileContent = base64_encode(file_get_contents($pdfPath));
|
||||
|
||||
// Generate FHPL Token
|
||||
$tokenResponse = json_decode($this->generateAuthToken()->getBody(), true);
|
||||
if (empty($tokenResponse['data']['access_token'])) {
|
||||
return $this->response->setJSON(['status' => false,'message' => 'FHPL Token generation failed']);
|
||||
}
|
||||
$token = $tokenResponse['data']['access_token'];
|
||||
|
||||
// Build FHPL Request
|
||||
$body = [
|
||||
"IssueID" => $data['dependentUniqueId'], // this key added after seeing the error in responce have to click with fhpl team
|
||||
"Userid" => getenv('FHPL_USER_NAME'),
|
||||
"PolicyNo" => "111700-TATAMTORS", // $data['policyNo'],
|
||||
"UhidNo" => "OIC40830846", //$data['dependentUniqueId'],
|
||||
"ClaimID" => (string) $data['id'],
|
||||
"DOA" => "2025-10-11",//date('Y-m-d', strtotime($data['admissionDate'])),
|
||||
"DateofDischarge"=> $data['dischargeDate'] ? date('Y-m-d', strtotime($data['dischargeDate'])) : null,
|
||||
"ClaimedAmount" => (float) $data['requestedAmount'],
|
||||
"DocumentType" => 20, // Fresh Claim
|
||||
"PayeeName" => $data['memberId'],
|
||||
"HospitalName" => $data['hospitalName'],
|
||||
"MobileNo" => $data['mobileNo'],
|
||||
"Documents" => [
|
||||
[
|
||||
"documentName" => $filename,
|
||||
"documentCategory" => "IRR",
|
||||
"filecontent" => $fileContent
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
$url = getenv('FHPL_BASE_URL') . "/api/ClaimSubmission";
|
||||
|
||||
$headers = [
|
||||
"Authorization: Bearer " . $token,
|
||||
"Content-Type: application/json"
|
||||
];
|
||||
|
||||
log_message('error', 'TPA CLAIM PUSH FHPL | claimId: '.$claimId.' | payload: '.json_encode($body));
|
||||
|
||||
$response = call_third_party_api($url, 'POST', $headers, $body);
|
||||
|
||||
log_message('error', 'FHPL RESPONSE | ' . json_encode($response));
|
||||
|
||||
if($response['status'] != true){
|
||||
log_message('error', 'TPA CLAIM PUSH FAILED FHPL | claimId: '.$claimId.' | response: '.json_encode($response));
|
||||
$this->db->table('ticket_master')
|
||||
->where('id',$claimId)
|
||||
->update([ 'tpa_push_response' => json_encode($response) ]);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if ($response['status'] === true && !empty($response['data'][0]['ClaimsInfo']))
|
||||
{
|
||||
$claimsInfo = json_decode($response['data'][0]['ClaimsInfo'], true);
|
||||
|
||||
if (!empty($claimsInfo[0]['ClaimID'])) {
|
||||
|
||||
$fhplClaimNo = $claimsInfo[0]['ClaimID'];
|
||||
|
||||
$this->db->table('ticket_master')
|
||||
->where('id', $claimId)
|
||||
->update([
|
||||
'claim_number' => $fhplClaimNo,
|
||||
'tpa_claim_id' => $fhplClaimNo,
|
||||
'tpa_claim_push_reference_no' => $fhplClaimNo,
|
||||
'updated_at' => date('Y-m-d H:i:s')
|
||||
]);
|
||||
|
||||
log_message('error', 'TPA CLAIM PUSH SUCCESS FHPL | claimId: '.$claimId.' | claimNO: '.$fhplClaimNo);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $this->response->setJSON($response);
|
||||
}
|
||||
|
||||
public function ClaimDetail($claimId = 515)
|
||||
{
|
||||
helper('api');
|
||||
|
||||
$ticket = $this->db->table('ticket_master tm')
|
||||
->select("tm.id, tm.tpa_claim_id as claimNo, cp.policy_no , cp.policy_start_date , cp.policy_end_date")
|
||||
->join('client_policy cp','tm.client_policy_id=cp.id')
|
||||
->where('tm.id',$claimId)
|
||||
->get()->getRowArray();
|
||||
|
||||
|
||||
if(!$ticket) return $this->response->setJSON(['status'=>false,'message'=>'Invalid claim']);
|
||||
|
||||
// Generate FHPL Token
|
||||
$tokenResponse = json_decode($this->generateAuthToken()->getBody(), true);
|
||||
|
||||
if (empty($tokenResponse['data']['access_token'])) {
|
||||
return $this->response->setJSON(['status' => false,'message' => 'FHPL Token generation failed']);
|
||||
}
|
||||
|
||||
$token = $tokenResponse['data']['access_token'];
|
||||
|
||||
$url = getenv('FHPL_BASE_URL')."/api/GetTPA_ClaimsDetails";
|
||||
|
||||
$body = [
|
||||
"UserName" => getenv('FHPL_USER_NAME'),
|
||||
"Password" => getenv('FHPL_PASSWORD'),
|
||||
"PolicyNumber" => "GHI-81-25-00087313-000",//$ticket['policy_no'],
|
||||
"Fromdate" => "2025-04-26",//$ticket['claimNo'],
|
||||
"Todate" => "2025-04-27",//$ticket['claimNo'],
|
||||
];
|
||||
|
||||
$headers = ["Authorization: Bearer ".$token,"Content-Type: application/json"];
|
||||
|
||||
$response = call_third_party_api($url,'POST',$headers,$body);
|
||||
|
||||
// dd($response);
|
||||
|
||||
if (empty($response['data'][0])) {
|
||||
log_message('error', 'CLAIM STATUS FAILED | for ticket ID: ' . $claimId.' | response: '.json_encode($response));
|
||||
|
||||
return $this->response->setJSON([
|
||||
'status' => false,
|
||||
'message' => 'API call failed.',
|
||||
'data' => $response
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
$status = null;
|
||||
|
||||
// find this claim
|
||||
foreach($response['data'] as $row){
|
||||
if($row['CLAIM_ID']==$ticket['claimNo']){
|
||||
$status = $row['CLAIM_STATUS'];
|
||||
}
|
||||
}
|
||||
|
||||
$map = [
|
||||
"In-Progress" => 5,
|
||||
"Under Process" => 5,
|
||||
"Query" => 4,
|
||||
"Paid" => 11,
|
||||
"Rejected" => 8,
|
||||
"Approved" => 8,
|
||||
"Required Information" => 4,
|
||||
];
|
||||
|
||||
if( $status != null && isset($map[$status]))
|
||||
{
|
||||
$this->db->table('ticket_master')->where('id',$claimId)->update(['claim_status_id'=>$map[$status],'tpa_claim_status'=>$status]);
|
||||
// LOG UPDATE
|
||||
log_message('error', "CLAIM STATUS SUCCESS | Updated ticket ID $claimId with claim status: $status");
|
||||
}
|
||||
|
||||
|
||||
|
||||
return $this->response->setJSON([
|
||||
'status' => true,
|
||||
'message' => 'Claim status updated.',
|
||||
'updated_status' => $status,
|
||||
'api_response' => $response
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
public function ClaimStatusUpdate()
|
||||
{
|
||||
helper('api');
|
||||
|
||||
$tickets = $this->db->table('ticket_master tm')
|
||||
->select("tm.id,tm.tpa_claim_id,cp.policy_no")
|
||||
->join('client_policy cp','tm.client_policy_id=cp.id')
|
||||
->where('tm.tpa_claim_id IS NOT NULL')
|
||||
->get()->getResultArray();
|
||||
|
||||
$count=0;
|
||||
|
||||
foreach($tickets as $t){
|
||||
$this->ClaimDetail($t['id']);
|
||||
$count++;
|
||||
}
|
||||
|
||||
return $this->response->setJSON(['status'=>true,'updated'=>$count]);
|
||||
}
|
||||
|
||||
public function EcardRequest($employeeId,$policyNo,$uhid)
|
||||
{
|
||||
helper('api');
|
||||
|
||||
// Generate FHPL Token
|
||||
$tokenResponse = json_decode($this->generateAuthToken()->getBody(), true);
|
||||
|
||||
if (empty($tokenResponse['data']['access_token'])) {
|
||||
return $this->response->setJSON(['status' => false,'message' => 'FHPL Token generation failed']);
|
||||
}
|
||||
|
||||
// Generate FHPL Token
|
||||
$tokenResponse = json_decode($this->generateAuthToken()->getBody(), true);
|
||||
|
||||
if (empty($tokenResponse['data']['access_token'])) {
|
||||
return $this->response->setJSON(['status' => false,'message' => 'FHPL Token generation failed']);
|
||||
}
|
||||
|
||||
$token = $tokenResponse['data']['access_token'];
|
||||
|
||||
$url = getenv('FHPL_BASE_URL')."/api/GetEcard";
|
||||
|
||||
$body = [
|
||||
"UserName" => getenv('FHPL_USER_NAME'),
|
||||
"Password" => getenv('FHPL_PASSWORD'),
|
||||
"PolicyNumber" => $policyNo,
|
||||
"EmployeeID" => $employeeId
|
||||
];
|
||||
|
||||
$headers = ["Authorization: Bearer ".$token,"Content-Type: application/json"];
|
||||
|
||||
$response = call_third_party_api($url,'POST',$headers,$body);
|
||||
|
||||
if(($response['data']['STATUS'] ?? '')=='SUCCESS'){
|
||||
return $response['data']['E_Card'];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function FhplGetBenefDetails($requestData = null)
|
||||
{
|
||||
helper('api');
|
||||
|
||||
$policyNo = $requestData['policy_no'] ?? "10/12/2025/16/17";
|
||||
$client_policy_id = $requestData['client_policy_id'] ?? 0;
|
||||
|
||||
// Generate FHPL Token
|
||||
$tokenResponse = json_decode($this->generateAuthToken()->getBody(), true);
|
||||
if (empty($tokenResponse['data']['access_token'])) {
|
||||
return $this->response->setJSON(['status' => false,'message' => 'FHPL Token generation failed']);
|
||||
}
|
||||
$token = $tokenResponse['data']['access_token'];
|
||||
|
||||
$url = getenv('FHPL_BASE_URL')."/api/GetEnrollmentDetailsPolicy";
|
||||
|
||||
$headers = [
|
||||
"Authorization: Bearer ".$token,
|
||||
"Content-Type: application/json"
|
||||
];
|
||||
|
||||
$startIndex = 0;
|
||||
$range = 100;
|
||||
$allMembers = [];
|
||||
|
||||
do {
|
||||
$body = [
|
||||
"UserName" => getenv('FHPL_USER_NAME'),
|
||||
"Password" => getenv('FHPL_PASSWORD'),
|
||||
"PolicyNumber" => $policyNo,
|
||||
"StartIndex" => $startIndex,
|
||||
"Range" => $range
|
||||
];
|
||||
|
||||
$response = call_third_party_api($url,'POST',$headers,$body);
|
||||
|
||||
dd($response);
|
||||
|
||||
if(empty($response['data']['Members'])){
|
||||
break;
|
||||
}
|
||||
|
||||
$allMembers = array_merge($allMembers,$response['data']['Members']);
|
||||
|
||||
$startIndex += $range;
|
||||
|
||||
} while($startIndex < ($response['data']['Total'] ?? 0));
|
||||
|
||||
|
||||
dd($allMembers);
|
||||
|
||||
// Now same matching logic you already have
|
||||
$employeePolicyModel = new EmployeePolicyModel();
|
||||
|
||||
$employeePolicyData = $employeePolicyModel
|
||||
->join('employees','employees.id=employee_polices.employee_id')
|
||||
->where('employee_polices.client_policy_id',$client_policy_id)
|
||||
->where('employee_polices.tpa_id IS NULL')
|
||||
->findAll();
|
||||
|
||||
$updated = 0;
|
||||
|
||||
foreach($employeePolicyData as $policy){
|
||||
foreach($allMembers as $m){
|
||||
|
||||
if(
|
||||
strtolower(trim($policy['name']))==strtolower(trim($m['Name'])) &&
|
||||
$policy['emp_code']==$m['MemberID'] &&
|
||||
strtolower($policy['relationship'])==strtolower($m['Relation'])
|
||||
){
|
||||
$this->db->table('employee_polices')
|
||||
->where('id',$policy['emp_policy_id'])
|
||||
->update(['tpa_id'=>$m['UHID']]);
|
||||
|
||||
$updated++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return [
|
||||
'status'=>true,
|
||||
'total_fetched'=>count($allMembers),
|
||||
'updated'=>$updated
|
||||
];
|
||||
}
|
||||
|
||||
public function syncFhplClaimsToNhance()
|
||||
{
|
||||
helper('api');
|
||||
|
||||
// Generate FHPL Token
|
||||
$tokenResponse = json_decode($this->generateAuthToken()->getBody(), true);
|
||||
|
||||
if (empty($tokenResponse['data']['access_token'])) {
|
||||
return $this->response->setJSON(['status' => false,'message' => 'FHPL Token generation failed']);
|
||||
}
|
||||
|
||||
$token = $tokenResponse['data']['access_token'];
|
||||
|
||||
$url = getenv('FHPL_BASE_URL')."/api/GetTPA_ClaimsDetails";
|
||||
|
||||
$headers = [
|
||||
"Authorization: Bearer ".$token,
|
||||
"Content-Type: application/json"
|
||||
];
|
||||
|
||||
$policies = $this->db->table('client_policy')
|
||||
->where('tpa_id',$this->fhplTpaId)
|
||||
->get()->getResultArray();
|
||||
|
||||
$finalResult=[];
|
||||
|
||||
foreach($policies as $policy){
|
||||
|
||||
$body = [
|
||||
"UserName" => getenv('FHPL_USER_NAME'),
|
||||
"Password" => getenv('FHPL_PASSWORD'),
|
||||
"PolicyNumber" => $policy['policy_no'],
|
||||
"Fromdate" => $policy['policy_start_date'],
|
||||
"Todate" => $policy['policy_end_date']
|
||||
];
|
||||
|
||||
$response = call_third_party_api($url,'POST',$headers,$body);
|
||||
|
||||
if(!empty($response['data'])){
|
||||
$finalResult = array_merge($finalResult,$response['data']);
|
||||
}
|
||||
}
|
||||
|
||||
// Insert / update ticket_master same way you already do for MediAssist
|
||||
foreach($finalResult as $row){
|
||||
|
||||
$status = $row['CLAIM_STATUS'];
|
||||
|
||||
$map = [
|
||||
"Under Process"=>5,
|
||||
"Paid"=>11,
|
||||
"Rejected"=>8,
|
||||
"Approved"=>8
|
||||
];
|
||||
|
||||
$claimStatus = $map[$status] ?? 1;
|
||||
|
||||
$this->db->table('ticket_master')->insert([
|
||||
'policy_no'=>$row['POLICY_NO'],
|
||||
'claim_number'=>$row['CLAIM_ID'],
|
||||
'tpa_claim_id'=>$row['CLAIM_ID'],
|
||||
'emp_code'=>$row['EMPLOYEE_NO'],
|
||||
'insured_name'=>$row['PATIENT_NAME'],
|
||||
'claim_amount'=>$row['CLAIM_AMOUNT'],
|
||||
'hospital_name'=>$row['HOSPITAL_NAME'],
|
||||
'doa'=>$row['DATE_OF_ADMISSION'],
|
||||
'dod'=>$row['DATE_OF_DISCHARGE'],
|
||||
'claim_status_id'=>$claimStatus,
|
||||
'tpa_id'=>$this->fhplTpaId
|
||||
]);
|
||||
}
|
||||
|
||||
return ['status'=>true,'total'=>count($finalResult)];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -112,7 +112,7 @@ class VidalApiController extends BaseController
|
||||
];
|
||||
}
|
||||
|
||||
public function SubmitClaim ($claimId = 515)
|
||||
public function SubmitClaim ($claimId = null) //515
|
||||
{
|
||||
helper('api');
|
||||
|
||||
|
||||
@ -38,6 +38,7 @@ class JWTToken
|
||||
|
||||
}else{
|
||||
$models = new LevelContactModel();
|
||||
$id = $request_data['post_hr_id'];
|
||||
$models->update($id, $data);
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user