CHANGE_TPA_API_LIST_THE_MISMATCH_TPA_DATA

This commit is contained in:
VENKATESHWARAN 2026-02-23 15:53:46 +05:30
parent 890ea3b4be
commit eb94b6b1ea
8 changed files with 227 additions and 19 deletions

View File

@ -17,6 +17,7 @@ class Acl
'#^/getVerifiedPosUserData#' => ['public' => true],
'#^/swagger#' => ['roles' => [ADMIN_ROLE_ID]],
'#^/getEmployeeActiveOrInactivePolicy#' => ['roles' => [ADMIN_ROLE_ID, HEAD_ROLE_ID]],
'#^/sheet#' => ['roles' => [ADMIN_ROLE_ID, HEAD_ROLE_ID]],
'#^/sendextraparam#' => ['roles' => [ADMIN_ROLE_ID, HEAD_ROLE_ID]],
'#^/test/testingquerys#' => ['roles' => [ADMIN_ROLE_ID, HEAD_ROLE_ID]],
'#^/test/viewrfq#' => ['roles' => [ADMIN_ROLE_ID, HEAD_ROLE_ID]],

View File

@ -6915,6 +6915,31 @@ class ClientController extends AdminController
// $res = $medi_assist->MediAssistGetBenefDetails(['policy_no' => '97000034240400000030', 'file_id' => 389, 'return_type' => 'job', 'client_policy_id' => 6192 ]);
// dd($res);
// // 1. Dummy JSON data create panrom (Temp file)
// $tempJsonFile = tempnam(sys_get_temp_dir(), 'test_vidal_');
// $dummyData = [
// [
// 'empNo' => 'EMP001',
// 'name' => 'John Doe',
// 'dob' => '01/01/1990',
// 'relationship' => 'Self',
// 'gender' => 'Male',
// 'enrollmentId' => 'TPA123',
// 'age' => 34
// ]
// ];
// file_put_contents($tempJsonFile, json_encode($dummyData));
// $inputArray = [
// 'file_id' => 10,
// 'json_file_path' => $tempJsonFile
// ];
// $vidalController = new VidalApiController();
// $res = $vidalController->saveVidalAPIData($inputArray);
// dd($res);
$employeeController = new EmployeeController();
// $response = $employeeController->getEmployeeEcardFromTmpFolderAndZipToS3(json_decode('{"batch_no":2,"last_emp_policy_id":"13218","folder_name":"bulk_ecards_IOCL-77448855996699885555_2026-02-05_09-32-22","processed_in_this_batch_data_count":7,"pdf_count":0,"hr_id":"1"}', true));
// $response = $employeeController->bulkEcardDownloadAsZipFromS3(json_decode('{"client_policy_id":"6066","hr_id":"1"}', true));

View File

@ -3730,7 +3730,7 @@ class EmployeeController extends AdminController
}
// fallback if gender missing (better to throw error)
throw new Exception("Gender required to map 'Spouse'");
throw new \Exception("Gender required to map 'Spouse'");
}
return $map[$key] ?? '';
@ -4057,8 +4057,7 @@ class EmployeeController extends AdminController
];
}
function reconcileDbWithTpa(array $db, array $tpaRows): array
public function reconcileDbWithTpa(array $db, array $tpaRows): array
{
// Name normalization
$normalizeName = function ($name) {
@ -4112,12 +4111,7 @@ class EmployeeController extends AdminController
];
}
function exportVariationReportExcel(
array $notInTPA,
array $notInNhance,
array $reviewNeeded,
string $filename = 'employee_review.xlsx')
public function exportVariationReportExcel(array $notInTPA, array $notInNhance, array $reviewNeeded, string $filename = 'employee_review.xlsx')
{
function setCell($sheet, int $col, int $row, $value)
@ -4317,7 +4311,7 @@ class EmployeeController extends AdminController
exit;
}
public function bulkGenerateEcardAndStoreinS3(array $params = [])
public function bulkGenerateEcardAndStoreinS3(array $params = [])
{
$request = \Config\Services::request();
$isCli = is_cli();

View File

@ -753,7 +753,7 @@ class FhplApiController extends BaseController
$response = call_third_party_api($url,'POST',$headers,$body);
if(!empty($response['data'])){
log_message('error', 'FHPL - Sync TPA Claims | Exception thrown while calling GetTPA_ClaimsDetails API: ' . json_encode($errorData));
log_message('error', 'FHPL - Sync TPA Claims | Exception thrown while calling GetTPA_ClaimsDetails API: ' . json_encode($response ?? []));
$finalResult = array_merge($finalResult,$response['data']);
}
}
@ -790,6 +790,52 @@ class FhplApiController extends BaseController
return ['status'=>true,'total'=>count($finalResult)];
}
public function saveFhplAPIData($array)
{
$file_id = $array['file_id'];
$json = file_get_contents($array['json_file_path']);
$records = json_decode($json, true);
// log_message('error','FHPL - saveFhplAPIData' . json_encode($array));//die();
$file_model = new BatchFileModel();
$file_info = $file_model->where('id', $file_id)->find();
$tpaApiDataModel = new TpaApiDataModel();
//deactivate old data
$tpaApiDataModel->set('is_active', 0)->where('file_id', $file_id)->update();
//covert tpa data to our model data
$mappedRows = [];
foreach ($records as $row) {
$mappedRows[] = [
'file_id' => $file_id, // ← pass from controller
'emp_code' => trim($row['EMPLOYEE_ID'] ?? ''),
'name' => trim($row['EMPLOYEE_NAME'] ?? ''),
'dob' => !empty($row['DATE_OF_BIRTH'] ?? null) ? date('Y-m-d', strtotime(str_replace('/', '-', $row['DATE_OF_BIRTH']))) : null,
'relation' => trim(strtolower($row['RELATION'] ?? '')),
'gender' => format_gender_v2($row['GENDER'] ?? null),
'self' => strtolower($row['RELATION'] ?? '') === 'self' ? 1 : 0,
'tpa_id' => trim($row['TPA_TPADETAIL_ID'] ?? null),
'age' => is_numeric($row['AGE'] ?? null) ? (int) $row['AGE'] : null,
'is_active' => 1,
'created_by' => $file_info[0]['created_by'] ?? null,
];
}
// log_message('error','FHPL - COUNT' . count($mappedRows));
$result = $tpaApiDataModel->insertBatchWithChunkLog($mappedRows,500,('FILE_ID_'.$file_id));
// unlink($file_array['json_file_path']); // delete temp json file
return $result;
}

View File

@ -814,4 +814,48 @@ class HealthIndiaApiController extends BaseController
'inserted' => $insertedCount
]);
}
public function saveHealthIndiaAPIData($array)
{
$file_id = $array['file_id'];
$json = file_get_contents($array['json_file_path']);
$records = json_decode($json, true);
// log_message('error','HEALTH_INDIA - saveHealthIndiaAPIData' . json_encode($array));//die();
$file_model = new BatchFileModel();
$file_info = $file_model->where('id', $file_id)->find();
$tpaApiDataModel = new TpaApiDataModel();
//deactivate old data
$tpaApiDataModel->set('is_active', 0)->where('file_id', $file_id)->update();
//covert tpa data to our model data
$mappedRows = [];
foreach ($records as $row) {
$mappedRows[] = [
'file_id' => $file_id, // ← pass from controller
'emp_code' => trim($row['employeeCode'] ?? ''),
'name' => trim($row['insured_Name'] ?? ''),
'dob' => !empty($row['dateOfBirth'] ?? null) ? date('Y-m-d', strtotime(str_replace('/', '-', $row['dateOfBirth']))) : null,
'relation' => map_relationship(trim($row['relation'] ?? null)),
'gender' => strtoupper($row['gender'] ?? null),
'self' => map_relationship(trim($row['relation'] ?? null)) === 'self' ? 1 : 0,
'tpa_id' => trim($row['memberId'] ?? null),
'age' => is_numeric($row['age'] ?? null) ? (int) $row['age'] : null,
'is_active' => 1,
'created_by' => $file_info[0]['created_by'] ?? null,
];
}
// log_message('error','HEALTH_INDIA - COUNT' . count($mappedRows));
// print_rr($mappedRows);//die();
$result = $tpaApiDataModel->insertBatchWithChunkLog($mappedRows,500,('FILE_ID_'.$file_id));
// unlink($file_array['json_file_path']); // delete temp json file
}
}

View File

@ -191,14 +191,26 @@ class JobWorker extends AdminController
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\VidalApiController',
],
'saveVidalAPIData' => [
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\VidalApiController',
],
'FhplGetBenefDetails' => [
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\FhplApiController',
],
'saveFhplAPIData' => [
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\FhplApiController',
],
'HealthIndiaGetBenefDetails' => [
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\HealthIndiaApiController',
],
'saveHealthIndiaAPIData' => [
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\HealthIndiaApiController',
],
'bdsDumpExcelFileFormatValidation' => [
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\PolicyTransactionController',
@ -207,22 +219,23 @@ class JobWorker extends AdminController
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\PolicyTransactionController',
],
'initiateWellnessOnboardJob' => [
'initiateWellnessOnboardJob' => [
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\EmployeeController',
], 'saveMediAssitAPIData' => [
],
'saveMediAssitAPIData' => [
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\MediAssistApiController',
],
'bulkGenerateEcardAndStoreinS3' => [
'bulkGenerateEcardAndStoreinS3' => [
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\EmployeeController',
],
'bulkEcardDownloadAsZipFromS3' => [
],
'bulkEcardDownloadAsZipFromS3' => [
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\EmployeeController',
],
'getEmployeeEcardFromTmpFolderAndZipToS3' => [
],
'getEmployeeEcardFromTmpFolderAndZipToS3' => [
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\EmployeeController',
]

View File

@ -955,8 +955,54 @@ class VidalApiController extends BaseController
}
}
public function saveVidalAPIData($array)
{
$file_id = $array['file_id'];
$json = file_get_contents($array['json_file_path']);
$records = json_decode($json, true);
// log_message('error','FHPL - saveFhplAPIData' . json_encode($array));//die();
$file_model = new BatchFileModel();
// $file_model = model(BatchFileModel::class);
$file_info = $file_model->where('id', $file_id)->find();
// $tpaApiDataModel = new TpaApiDataModel();
$tpaApiDataModel = model(TpaApiDataModel::class);
//deactivate old data
$tpaApiDataModel->set('is_active', 0)->where('file_id', $file_id)->update();
//covert tpa data to our model data
$mappedRows = [];
foreach ($records as $row) {
$mappedRows[] = [
'file_id' => $file_id, // ← pass from controller
'emp_code' => trim($row['empNo'] ?? ''),
'name' => trim($row['name'] ?? ''),
'dob' => !empty($row['dob'] ?? null) ? date('Y-m-d', strtotime(str_replace('/', '-', $row['dob']))) : null,
'relation' => trim(strtolower($row['relationship'] ?? '')),
'gender' => format_gender_v2($row['gender'] ?? null),
'self' => strtolower($row['relationship'] ?? '') === 'self' ? 1 : 0,
'tpa_id' => trim($row['enrollmentId'] ?? null),
'age' => is_numeric($row['age'] ?? null) ? (int) $row['age'] : null,
'is_active' => 1,
'created_by' => $file_info[0]['created_by'] ?? null,
];
}
// log_message('error','FHPL - COUNT' . count($mappedRows));
$result = $tpaApiDataModel->insertBatchWithChunkLog($mappedRows,500,('FILE_ID_'.$file_id));
// unlink($file_array['json_file_path']); // delete temp json file
return $result;
}

View File

@ -1161,7 +1161,46 @@ if (!function_exists('clear_cd_balance_session')) {
}
}
if (!function_exists('format_gender_v2')) {
function format_gender_v2($gender) {
if (empty($gender)) return null;
$g = strtoupper(trim($gender));
// Direct-ah check pannuvom
if (str_starts_with($g, 'M')) return 'M'; // Male, M
if (str_starts_with($g, 'F')) return 'F'; // Female, F
// Others, Transgender, O - ivatrai 'O' ena return seiyum
if (str_starts_with($g, 'O') || str_starts_with($g, 'T')) {
return 'O';
}
return $g; // Vera ethuvum illaiyengil original-aiye return pannum
}
}
if (!function_exists('map_relationship')) {
/**
* Employee -> self, WIFE -> spouse ena maatri return seiyum.
*/
function map_relationship($relation) {
if (empty($relation)) return '';
// Case prechanai varaamal irukka lowercase-kku maatri check seivom
$r = strtolower(trim($relation));
if ($r == 'employee') {
return 'self';
}
else if ($r == 'wife') {
return 'spouse';
}
// Matra anaithu relationship-um iruppathu polave (Original-aga) return aagum
return $relation;
}
}