CHANGE_E_CARD_PLACEHOLD_AND_OTHERS

This commit is contained in:
VENKATESHWARAN 2025-10-24 15:41:59 +05:30
parent 2b7086c6e0
commit 807399a564
5 changed files with 303 additions and 265 deletions

View File

@ -1193,7 +1193,7 @@ class EmployeeController extends AdminController
// --------------- For E-Card Download ----------------------------------------------------------------------------------------------------- // --------------- For E-Card Download -----------------------------------------------------------------------------------------------------
//E-CARD DOWNLOAD FUNCTION USING HTML PRINT //E-CARD DOWNLOAD FUNCTION USING HTML PRINT ( Not in use ) do not delete
public function generateIDCardForEmployeeUsingHtml($rand_string, $people = 0) public function generateIDCardForEmployeeUsingHtml($rand_string, $people = 0)
{ {
// dd($rand_string, $people); // dd($rand_string, $people);
@ -1418,7 +1418,7 @@ class EmployeeController extends AdminController
echo $htmlContent; echo $htmlContent;
} }
//E-CARD DOWNLOAD FUNCTION USING DOM PDF ( CURRENTLY USING THIS ) //E-CARD DOWNLOAD FUNCTION USING DOM PDF ( CURRENTLY USING THIS ) Dompdf
public function generateIDCardForEmployee($rand_string, $people = 0, $mode = 0) public function generateIDCardForEmployee($rand_string, $people = 0, $mode = 0)
{ {
// dd($rand_string, $people); // dd($rand_string, $people);
@ -1470,8 +1470,8 @@ class EmployeeController extends AdminController
// Step 3: Prepare template path // Step 3: Prepare template path
$template_data_path = WRITEPATH . 'e_card_template/'; $template_data_path = WRITEPATH . 'e_card_template/';
// $tpa_short_name = strtolower(str_replace(' ', '_', $get_emp_code_and_client_policy_id['short_name'])) . '.html'; // $tpa_short_name = strtolower(str_replace(' ', '_', $get_emp_code_and_client_policy_id['short_name'])) . '.html';
$tpa_short_name = 'common.html'; // $tpa_short_name = 'common.html';
// $tpa_short_name = 'new_ecard.html'; $tpa_short_name = 'new_ecard.html';
$final_path = $template_data_path . $tpa_short_name; $final_path = $template_data_path . $tpa_short_name;
$this->myLogger->logme('error', 'Checking if template file exists at: ' . $final_path); $this->myLogger->logme('error', 'Checking if template file exists at: ' . $final_path);
@ -1495,6 +1495,7 @@ class EmployeeController extends AdminController
$value['back_card'] = "Nhance_Ecard_working_1_Back.png"; $value['back_card'] = "Nhance_Ecard_working_1_Back.png";
$placeholders = [ $placeholders = [
'{CLIENT_NAME}' => $value['client_name'], '{CLIENT_NAME}' => $value['client_name'],
'{TPA_ID}' => $value['tpa_id'], '{TPA_ID}' => $value['tpa_id'],
'{NAME}' => $value['name'], '{NAME}' => $value['name'],
@ -1506,9 +1507,6 @@ class EmployeeController extends AdminController
'{POLICY_START_DATE}' => date('d-M-Y', strtotime($value['policy_start_date'])), '{POLICY_START_DATE}' => date('d-M-Y', strtotime($value['policy_start_date'])),
'{POLICY_NO}' => $value['policy_no'], '{POLICY_NO}' => $value['policy_no'],
'{INSURER_NAME}' => strtoupper($value['insurer_name']), '{INSURER_NAME}' => strtoupper($value['insurer_name']),
'{INSURER_LOGO}' => base_url() . 'public/uploads/logo/' . $value['insurer_logo'],
'{FRONT_CARD}' => base_url() . 'public/uploads/template_bg/' . $value['front_card'],
'{BACK_CARD}' => base_url() . 'public/uploads/template_bg/' . $value['back_card'],
'{EMP_ID}' => $value['emp_code'], '{EMP_ID}' => $value['emp_code'],
'{SI_AMT}' => $value['basic_cover_si'], '{SI_AMT}' => $value['basic_cover_si'],
'{CORPORATE_NAME}' => $value['client_name'], '{CORPORATE_NAME}' => $value['client_name'],
@ -1516,15 +1514,33 @@ class EmployeeController extends AdminController
'{TPA_NAME}' => $value['tpa_name'], '{TPA_NAME}' => $value['tpa_name'],
'{INSURER_BRANCH}' => $value['insurer_branch_city'], '{INSURER_BRANCH}' => $value['insurer_branch_city'],
'{RELATION}' => $value['relationship'], '{RELATION}' => $value['relationship'],
'{TPA_LOGO}' => base_url() . 'public/uploads/logo/' . $value['tpa_logo'],
'{MEDI_USER}' => base_url() . 'public/e_card_imgs/medi_uesr.jpg', '{TPA_LOGO}' => getFileIfExists('uploads/logo/' . $value['tpa_logo']),
'{MEDI_INSURER}' => base_url() . 'public/e_card_imgs/Magma.png', '{MEDI_USER}' => getFileIfExists('e_card_imgs/medi_uesr.jpg'),
'{MEDI_BARCODE}' => base_url() . 'public/e_card_imgs/borcode.jpeg', '{MEDI_INSURER}' => getFileIfExists('e_card_imgs/Magma.png'),
'{QR_ANDROID}' => base_url() . 'public/e_card_imgs/android.png', '{MEDI_BARCODE}' => getFileIfExists('e_card_imgs/borcode.jpeg'),
'{QR_IOS}' => base_url() . 'public/e_card_imgs/ios.png', '{QR_ANDROID}' => getFileIfExists('e_card_imgs/android.png'),
'{QR_ANDROID_2}' => base_url() . 'public/e_card_imgs/play_store.png', '{QR_IOS}' => getFileIfExists('e_card_imgs/ios.png'),
'{QR_IOS_2}' => base_url() . 'public/e_card_imgs/appstore.png', '{QR_ANDROID_2}' => getFileIfExists('e_card_imgs/play_store.png'),
'{NHANCE_N_LOGO}' => base_url() . 'public/assets/images/Nhance_Favi.png', '{QR_IOS_2}' => getFileIfExists('e_card_imgs/appstore.png'),
'{NHANCE_N_LOGO}' => getFileIfExists('assets/images/Nhance_Favi.png'),
'{INSURER_LOGO}' => getFileIfExists('uploads/logo/' . $value['insurer_logo']),
'{FRONT_CARD}' => getFileIfExists('uploads/template_bg/' . $value['front_card']),
'{BACK_CARD}' => getFileIfExists('uploads/template_bg/' . $value['back_card']),
// '{TPA_LOGO}' => base_url() . 'public/uploads/logo/' . $value['tpa_logo'],
// '{MEDI_USER}' => base_url() . 'public/e_card_imgs/medi_uesr.jpg',
// '{MEDI_INSURER}' => base_url() . 'public/e_card_imgs/Magma.png',
// '{MEDI_BARCODE}' => base_url() . 'public/e_card_imgs/borcode.jpeg',
// '{QR_ANDROID}' => base_url() . 'public/e_card_imgs/android.png',
// '{QR_IOS}' => base_url() . 'public/e_card_imgs/ios.png',
// '{QR_ANDROID_2}' => base_url() . 'public/e_card_imgs/play_store.png',
// '{QR_IOS_2}' => base_url() . 'public/e_card_imgs/appstore.png',
// '{NHANCE_N_LOGO}' => base_url() . 'public/assets/images/Nhance_Favi.png',
// '{INSURER_LOGO}' => base_url() . 'public/uploads/logo/' . $value['insurer_logo'],
// '{FRONT_CARD}' => base_url() . 'public/uploads/template_bg/' . $value['front_card'],
// '{BACK_CARD}' => base_url() . 'public/uploads/template_bg/' . $value['back_card'],
]; ];
$placeholders['{LEVELS}'] = $this->generateAcmAndMForEcard($client_id); $placeholders['{LEVELS}'] = $this->generateAcmAndMForEcard($client_id);

View File

@ -859,3 +859,10 @@ if (!function_exists('expected_amount_calc')) {
return round($expectedAmount, 2); // Optional: round to 2 decimal places return round($expectedAmount, 2); // Optional: round to 2 decimal places
} }
} }
if (!function_exists('getFileIfExists')) {
function getFileIfExists($path)
{
return file_exists(FCPATH . $path) ? base_url($path) : '';
}
}

View File

@ -1532,8 +1532,15 @@ class EmployeePolicyModel extends Model
e.doj, e.doj,
e.band, e.band,
TIMESTAMPDIFF(YEAR, e.dob, CURDATE()) AS emp_age, TIMESTAMPDIFF(YEAR, e.dob, CURDATE()) AS emp_age,
(SELECT name FROM employees WHERE relationship = "Self" and emp_code = ' . $this->db->escape($emp_code) . ' and client_id = '.$client_id.' LIMIT 1) AS self, (
SELECT name FROM employees
WHERE relationship = "Self"
and emp_code = ' . $this->db->escape($emp_code) . '
and client_id = '.$client_id.'
and is_active = 1
and emp_status = "active"
LIMIT 1
) AS self,
ep.tpa_id, ep.tpa_id,
ep.uhid, ep.uhid,

View File

@ -300,126 +300,123 @@ table.dataTable tbody td {
<script> <script>
document.addEventListener("DOMContentLoaded", function () { // New menu
const table = document.getElementById("tickets-table"); document.addEventListener("DOMContentLoaded", function () {
const table = document.getElementById("tickets-table");
function createCustomDropdown(row) { function createCustomDropdown(row) {
const originalDropdown = row.querySelector('.dropdown-menu'); const originalDropdown = row.querySelector('.dropdown-menu');
if (!originalDropdown) return null; if (!originalDropdown) return null;
const customDropdown = document.createElement('div'); const customDropdown = document.createElement('div');
customDropdown.className = 'custom-dropdown-menu'; customDropdown.className = 'custom-dropdown-menu';
// Clone the items but remove their original click handlers // Clone the items but remove their original click handlers
const items = originalDropdown.querySelectorAll('.dropdown-item'); const items = originalDropdown.querySelectorAll('.dropdown-item');
items.forEach(item => { items.forEach(item => {
const newItem = item.cloneNode(true); const newItem = item.cloneNode(true);
// Preserve the attributes but remove the onclick // Preserve the attributes but remove the onclick
newItem.removeAttribute('onclick'); newItem.removeAttribute('onclick');
customDropdown.appendChild(newItem); customDropdown.appendChild(newItem);
}); });
return customDropdown; return customDropdown;
} }
let activeDropdown = null; let activeDropdown = null;
table.querySelectorAll("tbody tr").forEach(row => { table.querySelectorAll("tbody tr").forEach(row => {
const customDropdown = createCustomDropdown(row); const customDropdown = createCustomDropdown(row);
if (!customDropdown) return; if (!customDropdown) return;
document.body.appendChild(customDropdown); document.body.appendChild(customDropdown);
row.addEventListener("click", function(event) { row.addEventListener("click", function(event) {
// Ignore clicks on the action column // Ignore clicks on the action column
if (event.target.closest('td:last-child')) { if (event.target.closest('td:last-child')) {
return; return;
}
if (activeDropdown) {
activeDropdown.style.display = 'none';
}
const rect = event.target.getBoundingClientRect();
customDropdown.style.display = 'block';
customDropdown.style.position = 'fixed';
customDropdown.style.left = `${rect.left}px`;
customDropdown.style.top = `${rect.bottom + 5}px`;
activeDropdown = customDropdown;
event.stopPropagation();
});
// Handle clicks on dropdown items
customDropdown.querySelectorAll('.dropdown-item').forEach(item => {
item.addEventListener('click', function(e) {
console.log("##############");
e.preventDefault();
e.stopPropagation();
// Get the data-id and other attributes from the original button
const originalItem = row.querySelector(`.dropdown-item[data-id="${this.getAttribute('data-id')}"]`);
// For edit functionality
if (this.classList.contains('btnEdit')) {
const id = this.getAttribute('data-id');
const lead_form_type = this.getAttribute('data-ft');
console.log('second drop lead_form_type', lead_form_type)
if (id) {
getLeadsDataForEdit(id, lead_form_type);
}
}else if (this.classList.contains('btnHistory')) {
let lead_id = this.getAttribute('data-id');
if(lead_id){ console.log("******** Clicked from td lead_id-", lead_id); getLeadsDataForMailHistory(lead_id); }
else{ console.log("******** Clicked from td but i don`t have lead_id"); }
}
else{
const onclickAttr = this.getAttribute('onclick');
if (onclickAttr) {
eval(onclickAttr);
}
} }
// For RFQ links
const href = this.getAttribute('href');
if (href && href !== '#' && !this.classList.contains('btnEdit')) {
window.location.href = href;
}
// Close the dropdown
if (activeDropdown) { if (activeDropdown) {
activeDropdown.style.display = 'none'; activeDropdown.style.display = 'none';
activeDropdown = null;
} }
const rect = event.target.getBoundingClientRect();
customDropdown.style.display = 'block';
customDropdown.style.position = 'fixed';
customDropdown.style.left = `${rect.left}px`;
customDropdown.style.top = `${rect.bottom + 5}px`;
activeDropdown = customDropdown;
event.stopPropagation();
});
// Handle clicks on dropdown items
customDropdown.querySelectorAll('.dropdown-item').forEach(item => {
item.addEventListener('click', function(e) {
console.log("##############");
e.preventDefault();
e.stopPropagation();
// Get the data-id and other attributes from the original button
const originalItem = row.querySelector(`.dropdown-item[data-id="${this.getAttribute('data-id')}"]`);
// For edit functionality
if (this.classList.contains('btnEdit')) {
const id = this.getAttribute('data-id');
const lead_form_type = this.getAttribute('data-ft');
console.log('second drop lead_form_type', lead_form_type)
if (id) {
getLeadsDataForEdit(id, lead_form_type);
}
}else if (this.classList.contains('btnHistory')) {
let lead_id = this.getAttribute('data-id');
if(lead_id){ console.log("******** Clicked from td lead_id-", lead_id); getLeadsDataForMailHistory(lead_id); }
else{ console.log("******** Clicked from td but i don`t have lead_id"); }
}
else{
const onclickAttr = this.getAttribute('onclick');
if (onclickAttr) {
eval(onclickAttr);
}
}
// For RFQ links
const href = this.getAttribute('href');
if (href && href !== '#' && !this.classList.contains('btnEdit')) {
window.location.href = href;
}
// Close the dropdown
if (activeDropdown) {
activeDropdown.style.display = 'none';
activeDropdown = null;
}
});
}); });
}); });
// Close dropdown when clicking outside
document.addEventListener("click", function() {
if (activeDropdown) {
activeDropdown.style.display = 'none';
activeDropdown = null;
}
});
document.addEventListener("click", function(e) {
if (e.target.closest(".btnHistory")) {
let lead_id = e.target.closest(".btnHistory").dataset.id;
console.log("******** in triple dot id available - " + lead_id);
getLeadsDataForMailHistory(lead_id);
}
else{ console.log("******** in triple dot but id not available"); }
});
}); });
// Close dropdown when clicking outside
document.addEventListener("click", function() {
if (activeDropdown) {
activeDropdown.style.display = 'none';
activeDropdown = null;
}
});
document.addEventListener("click", function(e) {
if (e.target.closest(".btnHistory")) {
let lead_id = e.target.closest(".btnHistory").dataset.id;
console.log("******** in triple dot id available - " + lead_id);
getLeadsDataForMailHistory(lead_id);
}
else{ console.log("******** in triple dot but id not available"); }
});
});
</script>
<script>
// Datatable document ready // Datatable document ready
$(document).ready(function() { $(document).ready(function() {
@ -504,141 +501,143 @@ document.addEventListener("DOMContentLoaded", function () {
function getLeadsDataForMailHistory(lead_id){ function getLeadsDataForMailHistory(lead_id){
console.log("******** Inside Fnz :", lead_id); console.log("******** Inside Fnz :", lead_id);
let url = '<?= base_url('/util/getLeadEmailHistory/') ?>' + lead_id; let url = '<?= base_url('/util/getLeadEmailHistory/') ?>' + lead_id;
console.log("******** Fetching:", url); console.log("******** Fetching:", url);
fetch(url, { fetch(url, {
method: "GET", method: "GET",
headers: { "Accept": "application/json" } headers: { "Accept": "application/json" }
}) })
.then(response => response.json()) .then(response => response.json())
.then(response => { .then(response => {
let container = document.querySelector(".history-container"); let container = document.querySelector(".history-container");
container.innerHTML = ""; container.innerHTML = "";
if (response.status === "success" && response.data.length > 0) { if (response.status === "success" && response.data.length > 0) {
console.log("******** 1" + response.status); console.log("******** 1" + response.status);
let table = ` let table = `
<div class="table-responsive"> <div class="table-responsive">
<table data-custom-table-css="table" id="historytable" class="table table-striped mb-0 nowrap" cellspacing="0" id="tickets-table"> <table data-custom-table-css="table" id="historytable" class="table table-striped mb-0 nowrap" cellspacing="0" id="tickets-table">
<thead class="bg-light"> <thead class="bg-light">
<tr> <tr>
<th><div class="column-header">S.No&nbsp;</div></th> <th><div class="column-header">S.No&nbsp;</div></th>
<th><div class="column-header">From Mail&nbsp;</div></th> <th><div class="column-header">From Mail&nbsp;</div></th>
<th><div class="column-header">To Mail&nbsp;</div></th> <th><div class="column-header">To Mail&nbsp;</div></th>
<th><div class="column-header">BCC&nbsp;</div></th> <th><div class="column-header">BCC&nbsp;</div></th>
<th><div class="column-header">CC&nbsp;</div></th> <th><div class="column-header">CC&nbsp;</div></th>
<th><div class="column-header">Type&nbsp;</div></th> <th><div class="column-header">Type&nbsp;</div></th>
<th><div class="column-header">Status&nbsp;</div></th> <th><div class="column-header">Status&nbsp;</div></th>
<th><div class="column-header">Date/Time&nbsp;</div></th> <th><div class="column-header">Date/Time&nbsp;</div></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
`; `;
response.data.forEach((row, index) => { response.data.forEach((row, index) => {
let formattedDate = "-"; let formattedDate = "-";
let statusValue = "-"; let statusValue = "-";
if (row.received_message) { if (row.received_message) {
if (row.received_message.toLowerCase().includes("error")) { if (row.received_message.toLowerCase().includes("error")) {
statusValue = "Failed"; statusValue = "Failed";
} else { } else {
statusValue = "Success"; statusValue = "Success";
} }
} }
if (row.created_at) { if (row.created_at) {
let dt = new Date(row.created_at); let dt = new Date(row.created_at);
let dateStr = dt.toLocaleDateString("en-GB", { let dateStr = dt.toLocaleDateString("en-GB", {
day: "2-digit", day: "2-digit",
month: "long", month: "long",
year: "numeric" year: "numeric"
}); });
let timeStr = dt.toLocaleTimeString("en-US", { let timeStr = dt.toLocaleTimeString("en-US", {
hour: "2-digit", hour: "2-digit",
minute: "2-digit", minute: "2-digit",
hour12: true hour12: true
}).toLowerCase(); }).toLowerCase();
formattedDate = `${dateStr} ${timeStr}`; formattedDate = `${dateStr} ${timeStr}`;
} }
let fromMails = "-"; let fromMails = "-";
if (row.from_mail) { if (row.from_mail) {
fromMails = row.from_mail fromMails = row.from_mail
.split(",") // split by comma .split(",") // split by comma
.map(m => m.trim().replace(/^"|"$/g, "")) // trim + remove quotes at start/end .map(m => m.trim().replace(/^"|"$/g, "")) // trim + remove quotes at start/end
.filter(m => m !== "") // remo .filter(m => m !== "") // remo
.join("<br>"); // join with line break .join("<br>"); // join with line break
} }
let toMails = "-"; let toMails = "-";
if (row.mail) { if (row.mail) {
toMails = row.mail toMails = row.mail
.split(",") .split(",")
.map(m => m.trim().replace(/^"|"$/g, "")) .map(m => m.trim().replace(/^"|"$/g, ""))
.filter(m => m !== "") .filter(m => m !== "")
.join("<br>"); .join("<br>");
} }
let ccMails = "-"; let ccMails = "-";
if (row.cc && row.cc.trim() !== "") { if (row.cc && row.cc.trim() !== "") {
ccMails = row.cc ccMails = row.cc
.split(",") .split(",")
.map(m => m.trim().replace(/^"|"$/g, "")) .map(m => m.trim().replace(/^"|"$/g, ""))
.filter(m => m !== "") .filter(m => m !== "")
.join("<br>"); .join("<br>");
} }
let bccMails = "-"; let bccMails = "-";
if (row.bcc && row.bcc.trim() !== "") { if (row.bcc && row.bcc.trim() !== "") {
bccMails = row.bcc bccMails = row.bcc
.split(",") .split(",")
.map(m => m.trim().replace(/^"|"$/g, "")) .map(m => m.trim().replace(/^"|"$/g, ""))
.filter(m => m !== "") .filter(m => m !== "")
.join("<br>"); .join("<br>");
} }
table += ` table += `
<tr> <tr>
<td style="white-space: nowrap !important;">${index + 1}</td> <td style="white-space: nowrap !important;">${index + 1}</td>
<td style="white-space: nowrap !important;">${fromMails}</td> <td style="white-space: nowrap !important;">${fromMails}</td>
<td style="white-space: nowrap !important;">${toMails}</td> <td style="white-space: nowrap !important;">${toMails}</td>
<td style="white-space: nowrap !important;">${bccMails ? bccMails : '-'}</td> <td style="white-space: nowrap !important;">${bccMails ? bccMails : '-'}</td>
<td style="white-space: nowrap !important;">${ccMails ? ccMails : '-'}</td> <td style="white-space: nowrap !important;">${ccMails ? ccMails : '-'}</td>
<td style="white-space: nowrap !important;">${row.mail_type ? row.mail_type.toUpperCase() : '-'}</td> <td style="white-space: nowrap !important;">${row.mail_type ? row.mail_type.toUpperCase() : '-'}</td>
<td style="white-space: nowrap !important;">${statusValue ? statusValue.toUpperCase() : '-'}</td> <td style="white-space: nowrap !important;">${statusValue ? statusValue.toUpperCase() : '-'}</td>
<td style="white-space: nowrap !important;">${formattedDate}</td> <td style="white-space: nowrap !important;">${formattedDate}</td>
</tr> </tr>
`; `;
});
table += `</tbody></table>`;
container.innerHTML = table;
// show modal (if using Bootstrap 5)
} else {
container.innerHTML = `
<div class="d-flex justify-content-center align-items-center" style="height: 50vh; width:100%;">
<p class="text-center font-color-black"><i>${response.message ?? "No History Available"}</i></p>
</div>
`;
}
// Show modal always
new bootstrap.Modal(document.getElementById("EmailModal")).show();
})
.catch(error => {
console.log("******** 3" + error);
document.querySelector(".history-container").innerHTML = `
<div class="d-flex justify-content-center align-items-center" style="height: 50vh; width:100%;">
<p class="text-center font-color-black"><i>No Data Found</i></p>
</div>
`;
let EmailModal = new bootstrap.Modal(document.getElementById("EmailModal"));
EmailModal.show();
console.error(error);
}); });
}
table += `</tbody></table>`;
container.innerHTML = table;
// show modal (if using Bootstrap 5)
} else {
container.innerHTML = `
<div class="d-flex justify-content-center align-items-center" style="height: 50vh; width:100%;">
<p class="text-center font-color-black"><i>${response.message ?? "No History Available"}</i></p>
</div>
`;
}
// Show modal always
new bootstrap.Modal(document.getElementById("EmailModal")).show();
})
.catch(error => {
console.log("******** 3" + error);
document.querySelector(".history-container").innerHTML = `
<div class="d-flex justify-content-center align-items-center" style="height: 50vh; width:100%;">
<p class="text-center font-color-black"><i>No Data Found</i></p>
</div>
`;
let EmailModal = new bootstrap.Modal(document.getElementById("EmailModal"));
EmailModal.show();
console.error(error);
});
}
</script> </script>
<script> <script>
function selectOption(element, radioId) { function selectOption(element, radioId) {
// Remove selected class from all options // Remove selected class from all options
document.querySelectorAll('.radio-option').forEach(option => { document.querySelectorAll('.radio-option').forEach(option => {

View File

@ -24,6 +24,7 @@
margin: 0 auto; margin: 0 auto;
table-layout: fixed; table-layout: fixed;
border-spacing: 5px 0; border-spacing: 5px 0;
margin-bottom: 5px;
} }
.card { .card {
@ -159,6 +160,14 @@
font-size: 8px; font-size: 8px;
color: #666; color: #666;
} }
.card-header img[src=""],
.card-header img:not([src]) {
opacity: 0;
visibility: hidden;
display: none;
}
</style> </style>
</head> </head>
<body> <body>
@ -167,16 +176,16 @@
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<div class="logo-left"> <div class="logo-left">
<img src="{INSURER_LOGO}" alt="Insurer logo"> <img src="{INSURER_LOGO}" alt=" " onerror="this.style.visibility='hidden';">
</div> </div>
<div class="logo-right"> <div class="logo-right">
<img src="{TPA_LOGO}" alt="TPA logo"> <img src="{TPA_LOGO}" alt=" " onerror="this.style.visibility='hidden';">
</div> </div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="n-logo"> <div class="n-logo">
<img src="{NHANCE_N_LOGO}" alt="N Logo"> <img src="{NHANCE_N_LOGO}" alt=" " onerror="this.style.visibility='hidden';">
</div> </div>
<div class="details"> <div class="details">
@ -185,47 +194,47 @@
<tr> <tr>
<td class="detail-label">Policy Holder</td> <td class="detail-label">Policy Holder</td>
<td class="detail-separator">:</td> <td class="detail-separator">:</td>
<td class="detail-value">AMERICAN MEGATRENDS INTERNATIONAL INDIA PVT LTD</td> <td class="detail-value">{CLIENT_NAME}</td>
</tr> </tr>
<tr> <tr>
<td class="detail-label">Insurer</td> <td class="detail-label">Insurer</td>
<td class="detail-separator">:</td> <td class="detail-separator">:</td>
<td class="detail-value">The New India Assurance</td> <td class="detail-value">{INSURER_NAME}</td>
</tr> </tr>
<tr> <tr>
<td class="detail-label">TPA</td> <td class="detail-label">TPA</td>
<td class="detail-separator">:</td> <td class="detail-separator">:</td>
<td class="detail-value">Mediassit</td> <td class="detail-value">{TPA_NAME}</td>
</tr> </tr>
<tr> <tr>
<td class="detail-label">Primary Insured</td> <td class="detail-label">Primary Insured</td>
<td class="detail-separator">:</td> <td class="detail-separator">:</td>
<td class="detail-value">Suganya A</td> <td class="detail-value">{SELF_NAME}</td>
</tr> </tr>
<tr> <tr>
<td class="detail-label">Beneficiary Name</td> <td class="detail-label">Beneficiary Name</td>
<td class="detail-separator">:</td> <td class="detail-separator">:</td>
<td class="detail-value">Suganya A</td> <td class="detail-value">{NAME}</td>
</tr> </tr>
<tr> <tr>
<td class="detail-label">Member ID</td> <td class="detail-label">Member ID</td>
<td class="detail-separator">:</td> <td class="detail-separator">:</td>
<td class="detail-value">4060881280</td> <td class="detail-value">{TPA_ID}</td>
</tr> </tr>
<tr> <tr>
<td class="detail-label">Employee Code</td> <td class="detail-label">Employee Code</td>
<td class="detail-separator">:</td> <td class="detail-separator">:</td>
<td class="detail-value">9332</td> <td class="detail-value">{EMP_ID}</td>
</tr> </tr>
<tr> <tr>
<td class="detail-label">Relation</td> <td class="detail-label">Relation</td>
<td class="detail-separator">:</td> <td class="detail-separator">:</td>
<td class="detail-value">Self</td> <td class="detail-value">{RELATION}</td>
</tr> </tr>
<tr> <tr>
<td class="detail-label">Policy Period</td> <td class="detail-label">Policy Period</td>
<td class="detail-separator">:</td> <td class="detail-separator">:</td>
<td class="detail-value">1-Apr-2025 to 31-Mar-2026</td> <td class="detail-value">{POLICY_START_DATE} to {POLICY_DATE}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -237,16 +246,16 @@
<div class="card"> <div class="card">
<div class="card-header"> <div class="card-header">
<div class="logo-left"> <div class="logo-left">
<img src="{INSURER_LOGO}" alt="Insurer logo"> <img src="{INSURER_LOGO}" alt=" " onerror="this.style.visibility='hidden';">
</div> </div>
<div class="logo-right"> <div class="logo-right">
<img src="{TPA_LOGO}" alt="TPA logo"> <img src="{TPA_LOGO}" alt=" " onerror="this.style.visibility='hidden';">
</div> </div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="n-logo"> <div class="n-logo">
<img src="{NHANCE_N_LOGO}" alt="N Logo"> <img src="{NHANCE_N_LOGO}" alt=" " onerror="this.style.visibility='hidden';">
</div> </div>
<div class="details"> <div class="details">