FIX_MEDI_QUERY_UPDATE

This commit is contained in:
VENKATESHWARAN 2025-11-07 17:10:26 +05:30
parent 5a36195fdc
commit f763c60b33
4 changed files with 123 additions and 33 deletions

View File

@ -157,6 +157,27 @@ class ApiServiceController extends BaseController
return $this->respond(['status' => false, 'code' => 200,'message' => 'TPA initiation is in progress.','data' => [] ]);
}
$employeePolicyModel = new EmployeePolicyModel();
$employeePolicyData = $employeePolicyModel
->select('
employees.*,
employee_polices.id as emp_policy_id,
employee_polices.client_policy_id,
')
->join('employees', 'employees.id = employee_polices.employee_id')
->where('employee_polices.is_active', 1)
->where('employee_polices.status', 'active')
->where('employees.is_active', 1)
->where('employees.emp_status', 'active')
->where('employee_polices.tpa_id IS NULL')
->where('employee_polices.client_policy_id', $policy_id)
->countAllResults();
if($employeePolicyData == 0){
log_message('error', "No Employee Policy found with null TPA ID. TPA ID is already updated.");
return $this->respond(['status' => false, 'code' => 200,'message' => 'TPA ID Already updated','data' => [] ]);
}
if (empty($policy_no)) {
log_message('error', 'GetBenefDetails: policy_no missing in request');
return $this->respond(['status' => false, 'message' => 'policy_no required']);
@ -181,7 +202,7 @@ class ApiServiceController extends BaseController
log_message('error', "Files table inserted successfully, File id : {$file_id}");
// $mediAssistController = new MediAssistApiController();
// $mediAssistController->GetBenefDetails( [ 'polict_no' => $policy_no, 'file_id' =>$file_id ] );
$r = Jobs::addJob(['job_name' => 'GetBenefDetails', 'payload' => ['policy_no' => $policy_no, 'file_id' => $file_id, 'return_type' => 'job']]);
$r = Jobs::addJob(['job_name' => 'GetBenefDetails', 'payload' => ['policy_no' => $policy_no, 'file_id' => $file_id, 'client_policy_id' => $policy_id, 'return_type' => 'job']]);
log_message('error', "GetBenefDetails job pushed successfully.");
return $this->respond(['status' => true, 'code' => 200, 'message' => 'Action Triggered','data' => [] ]);

View File

@ -5654,10 +5654,10 @@ class ClientController extends AdminController
// $ticket_id = 515;
// $apiServiceController = new ApiServiceController();
// $apiServiceController->pushClaims($ticket_id); die;
// echo change_date_format('13/10/1998 00:00:00','d/m/Y H:i:s');die();
// $medi_assist = new MediAssistApiController();
// $medi_assist->GetBenefDetails(['policy_no' => '97000034240400000030', 'file_id' => 389, 'return_type' => 'job' ]);
// die;
// $res = $medi_assist->GetBenefDetails(['policy_no' => '97000034240400000030', 'file_id' => 389, 'return_type' => 'job', 'client_policy_id' => 6192 ]);
// dd($res);
// $employeeController = new EmployeeController();
// $employeeController->truncateFileData('633');

View File

@ -4,6 +4,7 @@ namespace App\Controllers;
use App\Controllers\BaseController;
use App\Models\BatchFileModel;
use App\Models\EmployeePolicyModel;
use CodeIgniter\HTTP\ResponseInterface;
use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\HTTP\RequestInterface;
@ -216,6 +217,7 @@ class MediAssistApiController extends BaseController
];
$policyNo = $requestData['policy_no'] ?? null;
$client_policy_id = $requestData['client_policy_id'] ?? null;
if (empty($policyNo)) {
log_message('error', 'GetBenefDetails: policy_no missing in request');
@ -226,14 +228,48 @@ class MediAssistApiController extends BaseController
}
}
if (empty($client_policy_id)) {
log_message('error', 'GetBenefDetails: client_policy_id missing in request');
if($function_calling_type == "job"){
return ['status' => false, 'message' => 'client_policy_id required'];
}else{
return $this->respond(['status' => false, 'message' => 'client_policy_id required']);
}
}
log_message('error', "GetBenefDetails called for policy_no: {$policyNo}");
log_message('error', "GetBenefDetails called for client_policy_id: {$client_policy_id}");
$employeePolicyModel = new EmployeePolicyModel();
$employeePolicyData = $employeePolicyModel
->select('
employees.*,
employee_polices.id as emp_policy_id,
employee_polices.client_policy_id,
')
->join('employees', 'employees.id = employee_polices.employee_id')
->where('employee_polices.is_active', 1)
->where('employee_polices.status', 'active')
->where('employees.is_active', 1)
->where('employees.emp_status', 'active')
->where('employee_polices.tpa_id IS NULL')
->where('employee_polices.client_policy_id', $client_policy_id)
->findAll();
if (empty($employeePolicyData)) {
log_message('error', 'GetBenefDetails: employeePolicyData is empty');
if($function_calling_type == "job"){
return ['status' => false, 'message' => 'employeePolicyData not found'];
}else{
return $this->respond(['status' => false, 'message' => 'employeePolicyData not found']);
}
}
$allBenef = [];
$startIndex = 0;
$range = 100;
$totalCount = 0;
do {
$body = [
"policyNo" => $policyNo,
@ -246,6 +282,7 @@ class MediAssistApiController extends BaseController
];
log_message('error', "GetBenefDetails API Request (startIndex={$startIndex}): " . json_encode($body));
log_message('error', "GetBenefDetails API parems " . json_encode([$url, $method, $headers, $body]));
$response = call_third_party_api($url, $method, $headers, $body);
@ -291,35 +328,56 @@ class MediAssistApiController extends BaseController
$db = \Config\Database::connect();
$updated = 0;
foreach ($employeePolicyData as $policy_data) {
foreach ($allBenef as $row) {
foreach ($allBenef as $row) {
// log_message(
// "error",
// "POLICY MATCH CHECK: " . json_encode([
// 'policy_data' => [
// 'name' => $policy_data['name'] ?? null,
// 'emp_code' => $policy_data['emp_code'] ?? null,
// 'relationship' => $policy_data['relationship'] ?? null,
// 'gender' => $policy_data['gender'] ?? null,
// 'dob' => $policy_data['dob'] ?? null,
// ],
// 'row_data' => [
// 'benefName' => $row['benefName'] ?? null,
// 'priBenefEmpCode' => $row['priBenefEmpCode'] ?? null,
// 'relName' => $row['relName'] ?? null,
// 'benefSex' => $row['benefSex'] ?? null,
// 'benefDOB' => $row['benefDOB'] ?? null,
// 'benefDOB_fmt' => change_date_format($row['benefDOB'],'d/m/Y H:i:s') ?? null,
// ],
// ])
// );
// $update = $db->table('employee_polices')
// ->join('client_policy', 'employee_polices.client_policy_id = client_policy.id AND client_policy.policy_no = ' . $db->escape($row['polNo']), 'left')
// ->join(
// 'employees',
// 'employee_polices.employee_id = employees.id
// AND employees.emp_code = ' . $db->escape($row['priBenefEmpCode']) . '
// AND employees.relationship = ' . $db->escape($row['relName']),
// 'left'
// )
// ->where('employee_polices.tpa_id IS NULL')
// ->update(['employee_polices.tpa_id' => $row['benefMediAssistID']]);
if (
strtolower(trim($policy_data['name'] ?? '')) == strtolower(trim($row['benefName'] ?? '')) &&
($policy_data['emp_code'] ?? '') == ($row['priBenefEmpCode'] ?? '') &&
strtolower(trim($policy_data['relationship'] ?? '')) == strtolower(trim($row['relName'] ?? '')) &&
($policy_data['gender'] ?? '') == ($row['benefSex'] ?? '') &&
($policy_data['dob'] ?? '') == (change_date_format($row['benefDOB'], 'd/m/Y H:i:s') ?? '')
) {
log_message('error', "✅ Match found: emp_code={$row['priBenefEmpCode']} policy={$row['polNo']}");
$update = $db->table('employee_polices')
->join('client_policy', 'employee_polices.client_policy_id = client_policy.id', 'left')
->join('employees', 'employee_polices.employee_id = employees.id', 'left')
->where('client_policy.policy_no', $row['polNo'])
->where('employees.emp_code', $row['priBenefEmpCode'])
->where('employees.relationship', $row['relName'])
->where('employee_polices.tpa_id IS NULL', null, false)
->update(['employee_polices.tpa_id' => $row['benefMediAssistID']]);
$sql = "UPDATE employee_polices
SET tpa_id = ?
WHERE id = ?";
$db->query($sql, [$row['benefMediAssistID'], $policy_data['emp_policy_id']]);
if ($db->affectedRows() > 0) {
$updated++;
log_message('error', "✅ Updated tpa_id={$row['benefMediAssistID']} for emp_code={$row['priBenefEmpCode']} policy={$row['polNo']}");
} else {
log_message('error', "⚠️ No update (already set or not matched) for emp_code={$row['priBenefEmpCode']} policy={$row['polNo']}");
}
if ($db->affectedRows() > 0) {
$updated++;
log_message('error', "Updated tpa_id for emp_code={$row['priBenefEmpCode']}, policy={$row['polNo']}");
}else{
log_message('error', "❌ Not matched: emp_code={$row['priBenefEmpCode']} policy={$row['polNo']}");
}
}
}

View File

@ -647,7 +647,9 @@ if (!function_exists('change_date_format')) {
if ($source_format !== null && $output_format !== null) {
$date = DateTime::createFromFormat($source_format, $date_str);
if (!$date) {
throw new Exception("Invalid date string for source format: $source_format");
// throw new Exception("Invalid date string for source format: $source_format");
log_message('error', "❌ Date format error : Invalid date string | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}");
return null;
}
return $date->format($output_format);
}
@ -656,7 +658,9 @@ if (!function_exists('change_date_format')) {
if ($source_format !== null && $output_format === null) {
$date = DateTime::createFromFormat($source_format, $date_str);
if (!$date) {
throw new Exception("Invalid date string for source format: $source_format");
// throw new Exception("Invalid date string for source format: $source_format");
log_message('error', "❌ Date format error : Invalid date string | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}");
return null;
}
return $date->format('Y-m-d'); // MySQL default format
}
@ -671,10 +675,17 @@ if (!function_exists('change_date_format')) {
}
// If no format matches, throw an exception
$allowed_placeholders = implode(', ', $allowed_formats);
throw new Exception("Invalid date string format. Allowed formats: $allowed_placeholders");
// throw new Exception("Invalid date string format. Allowed formats: $allowed_placeholders");
log_message(
'error',
"❌ Date format error: Invalid date string. Allowed formats: {$allowed_placeholders} | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}"
);
return null;
}
} catch (Exception $e) {
return "Error: " . $e->getMessage();
// return "Error: " . $e->getMessage();
log_message('error', "❌ Date format error: {$e->getMessage()} | Params => date_str: {$date_str}, source_format: {$source_format}, output_format: {$output_format}");
return null;
}
return null;