diff --git a/app/Controllers/TicketController.php b/app/Controllers/TicketController.php
index d46306d4..7aacb3a8 100644
--- a/app/Controllers/TicketController.php
+++ b/app/Controllers/TicketController.php
@@ -539,6 +539,7 @@ class TicketController extends BaseController
'tm.emp_personal_mail',
'tm.mode_of_intimation',
'tm.claim_type',
+ 'tm.tpa_claim_type',
'tm.hospital_name',
'tm.doa',
'tm.dod',
@@ -673,6 +674,7 @@ class TicketController extends BaseController
'tm.emp_personal_mail',
'tm.mode_of_intimation',
'tm.claim_type',
+ 'tm.tpa_claim_type',
'tm.hospital_name',
'tm.doa',
'tm.dod',
diff --git a/app/Views/ticket_list.php b/app/Views/ticket_list.php
index 9bedf618..2c9d513c 100644
--- a/app/Views/ticket_list.php
+++ b/app/Views/ticket_list.php
@@ -30,6 +30,22 @@ table.dataTable tbody td {
color: #6c757d !important;
}
+.policy-type-icon {
+ display: inline-flex;
+ align-items: center;
+ margin-right: 6px;
+ font-size: 0.95rem;
+ vertical-align: middle;
+}
+
+.policy-type-icon--cashless {
+ color: #0ea5e9;
+}
+
+.policy-type-icon--reimbursement {
+ color: #f59e0b;
+}
+
/* Claim source pill — text only, fixed width (DUMP_TPA); hidden when no value */
.claim-source-badge {
display: inline-flex;
@@ -221,7 +237,19 @@ table.dataTable tbody td {
];
$claimSrcClass = $claimSrcClassMap[$claimSrc] ?? null;
$policyTypeLabel = str_replace('Claim-', '', $ticket_type[$row['ticket_type_id']] ?? 'N/A');
- echo esc($policyTypeLabel);
+ $tpaClaimTypeRaw = trim((string)($row['tpa_claim_type'] ?? ''));
+ $tpaClaimType = strtolower($tpaClaimTypeRaw);
+ $policyTypeIconHtml = '';
+
+ if ($tpaClaimType !== '') {
+ if (strpos($tpaClaimType, 'cash') !== false) {
+ $policyTypeIconHtml = '';
+ } elseif (strpos($tpaClaimType, 'reimburse') !== false) {
+ $policyTypeIconHtml = '';
+ }
+ }
+
+ echo $policyTypeIconHtml . esc($policyTypeLabel);
if ($claimSrcClass !== null) {
echo '
' . esc($claimSrc) . '';
}
@@ -368,6 +396,18 @@ function getClaimSourceBadgeHtml(claimCreatedBy) {
return '' + escapeHtml(key) + '';
}
+function getPolicyTypeIconHtml(tpaClaimType) {
+ var type = (tpaClaimType || '').toString().trim().toLowerCase();
+ if (!type) return '';
+ if (type.indexOf('cash') !== -1) {
+ return '';
+ }
+ if (type.indexOf('reimburse') !== -1) {
+ return '';
+ }
+ return '';
+}
+
function getStatusDisplay(row) {
var status = row.status || '';
var claimStatusId = Number(row.claim_status_id || 0);
@@ -413,6 +453,7 @@ function buildTicketRowHtml(row) {
var statusUpdated = row.ticket_updated_date ? '
Updated at ' + escapeHtml(row.ticket_updated_date) + '' : '';
var claimCreated = row.ticket_created_date ? '
Created at ' + escapeHtml(row.ticket_created_date) + '' : '';
var policyType = (window.ticketTypeMap[row.ticket_type_id] || '').replace('Claim-', '');
+ var policyTypeIcon = getPolicyTypeIconHtml(row.tpa_claim_type);
var claimSourceBadge = getClaimSourceBadgeHtml(row.claim_created_by);
var modeOfIntimation = window.modeOfIntimateMap[row.mode_of_intimation] || '';
var priority = window.priorityTypeMap[row.priority || 0] || '';
@@ -423,7 +464,7 @@ function buildTicketRowHtml(row) {
'' + getStatusDisplay(row) + '' +
statusUpdated +
'' +
- '