MERGE_LIVE_FORM_VALIDATION&MEDIBUDDY&LIVE_ISSUES
This commit is contained in:
commit
f4a79e796b
@ -41,6 +41,7 @@ class Acl
|
|||||||
'#^/sales/dashboard#' => ['roles' => [ADMIN_ROLE_ID, HEAD_ROLE_ID, STAFF_ROLE_ID]],
|
'#^/sales/dashboard#' => ['roles' => [ADMIN_ROLE_ID, HEAD_ROLE_ID, STAFF_ROLE_ID]],
|
||||||
'#^/sales#' => ['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]],
|
'#^/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]],
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -850,6 +850,7 @@ $routes->get('HealthIndiaGetBenefDetails','HealthIndiaApiController::HealthIndia
|
|||||||
// API service (Don't delete)
|
// API service (Don't delete)
|
||||||
$routes->post("ecardRequest", "ApiServiceController::ecardRequest");
|
$routes->post("ecardRequest", "ApiServiceController::ecardRequest");
|
||||||
$routes->post("getTPAID", "ApiServiceController::getTPAID");
|
$routes->post("getTPAID", "ApiServiceController::getTPAID");
|
||||||
|
$routes->post("sendDataToTPA", "ApiServiceController::sendDataToTPA");
|
||||||
$routes->get('fileDownload','MediAssistApiController::fileDownload');
|
$routes->get('fileDownload','MediAssistApiController::fileDownload');
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -250,6 +250,10 @@ class JobWorker extends AdminController
|
|||||||
'visitOffBoard' => [
|
'visitOffBoard' => [
|
||||||
'type' => 'CC', // Handler Category
|
'type' => 'CC', // Handler Category
|
||||||
'handler' => 'App\Controllers\EmployeeController',
|
'handler' => 'App\Controllers\EmployeeController',
|
||||||
|
],
|
||||||
|
'ICICIPushEmployeeDetails' => [
|
||||||
|
'type' => 'CC', // Handler Category
|
||||||
|
'handler' => 'App\Controllers\ICICILombardController',
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@ -1383,29 +1383,28 @@ class MediAssistApiController extends BaseController
|
|||||||
|
|
||||||
$plainJson = json_encode($payload, JSON_UNESCAPED_SLASHES);
|
$plainJson = json_encode($payload, JSON_UNESCAPED_SLASHES);
|
||||||
|
|
||||||
// Derive a 32‑byte key (AES‑256) and 16‑byte IV from the provided strings
|
// ✅ EXACT same as C#
|
||||||
// $key = substr(hash('sha256', $keyString, true), 0, 32);
|
$key = substr(str_pad($keyString, 32, '0'), 0, 32);
|
||||||
// $iv = substr(hash('md5', $ivString, true), 0, 16);
|
$iv = substr(str_pad($ivString, 16, '0'), 0, 16);
|
||||||
|
|
||||||
// Encrypt with AES‑256‑CBC + PKCS7 padding (OpenSSL default)
|
|
||||||
$cipherTextRaw = openssl_encrypt($plainJson, $cipher_algorithm, $keyString, OPENSSL_RAW_DATA, $ivString);
|
|
||||||
|
|
||||||
|
// Encrypt
|
||||||
|
$cipherTextRaw = openssl_encrypt($plainJson, $cipher_algorithm, $key, OPENSSL_RAW_DATA, $iv);
|
||||||
|
|
||||||
if ($cipherTextRaw === false) {
|
if ($cipherTextRaw === false) {
|
||||||
log_message('error', 'MEDI_ASSIST - Wellness SSO URL generation | Encryption failed while generating Medi Assist wellness token.');
|
throw new \Exception('Encryption failed.');
|
||||||
return [
|
|
||||||
'status' => 'failed',
|
|
||||||
'message' => 'Encryption failed while generating Medi Assist wellness token.',
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ✅ Step 1: Base64 encode
|
||||||
|
$base64Cipher = base64_encode($cipherTextRaw);
|
||||||
|
|
||||||
// Base64 encode and URL‑encode for use as EncryptedSSO
|
// ✅ Step 2: PREFIX IV (CRITICAL — matches C#)
|
||||||
$encryptedSSO = urlencode(base64_encode($cipherTextRaw));
|
$encryptedSSO = $iv . $base64Cipher;
|
||||||
// $encryptedSSO = rtrim(strtr(base64_encode($cipherTextRaw), '+/', '-_'), '=');
|
|
||||||
|
|
||||||
// Build the final login URL
|
// ⚠️ URL encode (VERY IMPORTANT for this format)
|
||||||
$loginUrl = str_replace(['{0}', '{1}'], [$planId, $encryptedSSO], $loginUrlTemplate);
|
$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.');
|
log_message('error', 'MEDI_ASSIST - Wellness SSO URL generation | Medi Assist wellness SSO URL generated successfully.');
|
||||||
|
|
||||||
|
|||||||
@ -1429,7 +1429,7 @@ class TestingController extends BaseController
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testMediAssistWellness()
|
public function testMediAssistWellness2()
|
||||||
{
|
{
|
||||||
// Config
|
// Config
|
||||||
$keyString = env('MEDIASSIST_WELLNESS_KEY');
|
$keyString = env('MEDIASSIST_WELLNESS_KEY');
|
||||||
@ -1489,6 +1489,76 @@ class TestingController extends BaseController
|
|||||||
], 200);
|
], 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)
|
public function decryptMediAssistWellness($encryptedSSO)
|
||||||
{
|
{
|
||||||
// Config
|
// Config
|
||||||
|
|||||||
@ -506,6 +506,7 @@ class VidalApiController extends BaseController
|
|||||||
$tpa_claim_no = $claimData['claimNumber'] ?? '';
|
$tpa_claim_no = $claimData['claimNumber'] ?? '';
|
||||||
$currentStatus = $claimData['status'] ?? '';
|
$currentStatus = $claimData['status'] ?? '';
|
||||||
$tpa_claim_type = $claimData['claimType'] ?? '';
|
$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;
|
$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)) {
|
if (!empty($tpa_claim_type)) {
|
||||||
$updateArray['tpa_claim_type'] = $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){
|
if($ticket['doa'] == $doa || $ticket['claim_number'] == $tpa_claim_no){
|
||||||
// UPDATE ticket_master
|
// UPDATE ticket_master
|
||||||
@ -1078,6 +1082,7 @@ class VidalApiController extends BaseController
|
|||||||
tm.tpa_no as memberId,
|
tm.tpa_no as memberId,
|
||||||
tm.tpa_claim_push_reference_no as claimInwardNO,
|
tm.tpa_claim_push_reference_no as claimInwardNO,
|
||||||
tm.tpa_claim_id as claimNO,
|
tm.tpa_claim_id as claimNO,
|
||||||
|
tm.tpa_shortfall_no as shortfallNO,
|
||||||
cp.policy_no as policyNo,
|
cp.policy_no as policyNo,
|
||||||
cp.policy_start_date as startDate,
|
cp.policy_start_date as startDate,
|
||||||
cp.policy_end_date as endDate,
|
cp.policy_end_date as endDate,
|
||||||
@ -1150,7 +1155,7 @@ class VidalApiController extends BaseController
|
|||||||
|
|
||||||
// 4. PREPARE REQUEST BODY
|
// 4. PREPARE REQUEST BODY
|
||||||
$body = [
|
$body = [
|
||||||
"shortFallNo" => $ticket['claimNO'], // or actual shortfall number if different (GUR-0326-CL-0001471)
|
"shortFallNo" => $ticket['shortfallNO'],
|
||||||
];
|
];
|
||||||
|
|
||||||
// If single file → fileId
|
// If single file → fileId
|
||||||
|
|||||||
@ -2047,7 +2047,7 @@ input:checked + .slider_blue::before {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//append the CD Account number for the dropdown
|
//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', data);
|
||||||
//console.log('appendCDACNO', select);
|
//console.log('appendCDACNO', select);
|
||||||
@ -2084,6 +2084,30 @@ input:checked + .slider_blue::before {
|
|||||||
$('#cd_ac_no').val(select).trigger('change');
|
$('#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
|
// append Base Policy to the dropdown for edit only
|
||||||
function appendBasePolicyList(data, select = null)
|
function appendBasePolicyList(data, select = null)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user