MERGE_UAT_FORM_VALIDATION&MEDIBUDDY&LIVE_ISSUES

This commit is contained in:
Ubuntu 2026-03-27 14:29:58 +05:30
commit 278f43f4af
7 changed files with 123 additions and 19 deletions

View File

@ -41,6 +41,7 @@ class Acl
'#^/sales/dashboard#' => ['roles' => [ADMIN_ROLE_ID, HEAD_ROLE_ID, STAFF_ROLE_ID]],
'#^/sales#' => ['roles' => [ADMIN_ROLE_ID, HEAD_ROLE_ID, STAFF_ROLE_ID]],
'#^/expense#' => ['roles' => [ADMIN_ROLE_ID, HEAD_ROLE_ID, STAFF_ROLE_ID]],
'#^/sendDataToTPA#' => ['roles' => [ADMIN_ROLE_ID, HEAD_ROLE_ID, ACCOUNT_MANAGER_ROLE_ID, MANAGER_ROLE_ID]],

View File

@ -850,6 +850,7 @@ $routes->get('HealthIndiaGetBenefDetails','HealthIndiaApiController::HealthIndia
// API service (Don't delete)
$routes->post("ecardRequest", "ApiServiceController::ecardRequest");
$routes->post("getTPAID", "ApiServiceController::getTPAID");
$routes->post("sendDataToTPA", "ApiServiceController::sendDataToTPA");
$routes->get('fileDownload','MediAssistApiController::fileDownload');

View File

@ -250,6 +250,10 @@ class JobWorker extends AdminController
'visitOffBoard' => [
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\EmployeeController',
],
'ICICIPushEmployeeDetails' => [
'type' => 'CC', // Handler Category
'handler' => 'App\Controllers\ICICILombardController',
]
];

View File

@ -1383,29 +1383,28 @@ class MediAssistApiController extends BaseController
$plainJson = json_encode($payload, JSON_UNESCAPED_SLASHES);
// Derive a 32byte key (AES256) and 16byte IV from the provided strings
// $key = substr(hash('sha256', $keyString, true), 0, 32);
// $iv = substr(hash('md5', $ivString, true), 0, 16);
// Encrypt with AES256CBC + PKCS7 padding (OpenSSL default)
$cipherTextRaw = openssl_encrypt($plainJson, $cipher_algorithm, $keyString, OPENSSL_RAW_DATA, $ivString);
// ✅ EXACT same as C#
$key = substr(str_pad($keyString, 32, '0'), 0, 32);
$iv = substr(str_pad($ivString, 16, '0'), 0, 16);
// Encrypt
$cipherTextRaw = openssl_encrypt($plainJson, $cipher_algorithm, $key, OPENSSL_RAW_DATA, $iv);
if ($cipherTextRaw === false) {
log_message('error', 'MEDI_ASSIST - Wellness SSO URL generation | Encryption failed while generating Medi Assist wellness token.');
return [
'status' => 'failed',
'message' => 'Encryption failed while generating Medi Assist wellness token.',
];
throw new \Exception('Encryption failed.');
}
// ✅ Step 1: Base64 encode
$base64Cipher = base64_encode($cipherTextRaw);
// Base64 encode and URLencode for use as EncryptedSSO
$encryptedSSO = urlencode(base64_encode($cipherTextRaw));
// $encryptedSSO = rtrim(strtr(base64_encode($cipherTextRaw), '+/', '-_'), '=');
// ✅ Step 2: PREFIX IV (CRITICAL — matches C#)
$encryptedSSO = $iv . $base64Cipher;
// Build the final login URL
$loginUrl = str_replace(['{0}', '{1}'], [$planId, $encryptedSSO], $loginUrlTemplate);
// ⚠️ URL encode (VERY IMPORTANT for this format)
$finalSSO = urlencode($encryptedSSO);
// Build URL
$loginUrl = str_replace(['{0}', '{1}'], [$planId, $finalSSO], $loginUrlTemplate);
log_message('error', 'MEDI_ASSIST - Wellness SSO URL generation | Medi Assist wellness SSO URL generated successfully.');

View File

@ -1429,7 +1429,7 @@ class TestingController extends BaseController
]);
}
public function testMediAssistWellness()
public function testMediAssistWellness2()
{
// Config
$keyString = env('MEDIASSIST_WELLNESS_KEY');
@ -1489,6 +1489,76 @@ class TestingController extends BaseController
], 200);
}
public function testMediAssistWellness()
{
try {
// Config
$keyString = env('MEDIASSIST_WELLNESS_KEY');
$ivString = env('MEDIASSIST_WELLNESS_IV');
$loginUrlTemplate = env('MEDIASSIST_WELLNESS_LOGIN_URL');
$partnerCorpId = '15963';
$cipher_algorithm = 'AES-256-CBC';
// Payload
$payload = [
'Id' => '15022',
'expiryTime' => (string)(time() + 600),
'CPartnerId' => $partnerCorpId,
];
$plainJson = json_encode($payload, JSON_UNESCAPED_SLASHES);
// ✅ EXACT same as C#
$key = substr(str_pad($keyString, 32, '0'), 0, 32);
$iv = substr(str_pad($ivString, 16, '0'), 0, 16);
// Encrypt
$cipherTextRaw = openssl_encrypt($plainJson,$cipher_algorithm,$key,OPENSSL_RAW_DATA,$iv);
if ($cipherTextRaw === false) {
throw new \Exception('Encryption failed.');
}
// ✅ Step 1: Base64 encode
$base64Cipher = base64_encode($cipherTextRaw);
// ✅ Step 2: PREFIX IV (CRITICAL — matches C#)
$encryptedSSO = $iv . $base64Cipher;
// ⚠️ URL encode (VERY IMPORTANT for this format)
$finalSSO = urlencode($encryptedSSO);
// Build URL
$loginUrl = str_replace(
['{0}', '{1}'],
[$partnerCorpId, $finalSSO],
$loginUrlTemplate
);
return $this->respond([
'status' => true,
'data' => [
'loginUrl' => $loginUrl,
'encryptedSSO' => $encryptedSSO,
'base64Only' => $base64Cipher,
'ivUsed' => $iv,
'plainPayload' => $payload,
],
], 200);
} catch (\Throwable $e) {
log_message('error', 'MediAssist SSO Error: ' . $e->getMessage());
return $this->respond([
'status' => false,
'message' => $e->getMessage(),
], 500);
}
}
public function decryptMediAssistWellness($encryptedSSO)
{
// Config

View File

@ -506,6 +506,7 @@ class VidalApiController extends BaseController
$tpa_claim_no = $claimData['claimNumber'] ?? '';
$currentStatus = $claimData['status'] ?? '';
$tpa_claim_type = $claimData['claimType'] ?? '';
$tpa_shortfall_no = $claimData['shortfallNo'] ?? '';
$doa = !empty($claimData['doa'] ?? null) ? date('Y-m-d', strtotime(str_replace('/', '-', $claimData['doa']))) : null;
@ -532,6 +533,9 @@ class VidalApiController extends BaseController
if (!empty($tpa_claim_type)) {
$updateArray['tpa_claim_type'] = $tpa_claim_type;
}
if (!empty($tpa_shortfall_no)) {
$updateArray['tpa_shortfall_no'] = $tpa_shortfall_no;
}
if($ticket['doa'] == $doa || $ticket['claim_number'] == $tpa_claim_no){
// UPDATE ticket_master
@ -1078,6 +1082,7 @@ class VidalApiController extends BaseController
tm.tpa_no as memberId,
tm.tpa_claim_push_reference_no as claimInwardNO,
tm.tpa_claim_id as claimNO,
tm.tpa_shortfall_no as shortfallNO,
cp.policy_no as policyNo,
cp.policy_start_date as startDate,
cp.policy_end_date as endDate,
@ -1150,7 +1155,7 @@ class VidalApiController extends BaseController
// 4. PREPARE REQUEST BODY
$body = [
"shortFallNo" => $ticket['claimNO'], // or actual shortfall number if different (GUR-0326-CL-0001471)
"shortFallNo" => $ticket['shortfallNO'],
];
// If single file → fileId

View File

@ -2047,7 +2047,7 @@ input:checked + .slider_blue::before {
}
//append the CD Account number for the dropdown
function appendCDACNO(data, select = null) {
function appendCDACNOOld(data, select = null) {
//console.log('appendCDACNO', data);
//console.log('appendCDACNO', select);
@ -2084,6 +2084,30 @@ input:checked + .slider_blue::before {
$('#cd_ac_no').val(select).trigger('change');
}
}
function appendCDACNO(data, select = null) {
const $dropdown = $('#cd_ac_no');
// 1. Build everything as a single string/fragment instead of multiple appends
let optionsHtml = '<option value="">Select CD Account Number</option>';
if (!data || data.length === 0) {
optionsHtml += '<option value="add_cd">+ Add New CD</option>';
} else {
// 2. Faster Loop and String Concatenation
$.each(data, function(index, item) {
optionsHtml += `<option value="${item.id}">${item.cd_ac_no}</option>`;
});
}
// 3. Single DOM update (Idhu dhaan performance-ah boost pannum)
$dropdown.html(optionsHtml);
// 4. Handle Selection
if (select) {
$dropdown.val(select).trigger('change');
}
}
// append Base Policy to the dropdown for edit only
function appendBasePolicyList(data, select = null)