diff --git a/src/custom/pages/RequestDetail.tsx b/src/custom/pages/RequestDetail.tsx
index 4db5c85..a0c56fb 100644
--- a/src/custom/pages/RequestDetail.tsx
+++ b/src/custom/pages/RequestDetail.tsx
@@ -514,28 +514,8 @@ function CustomRequestDetailInner({ requestId: propRequestId, onBack, dynamicReq
{/* Left Column: Tab content */}
-
{isForm16Request ? (
+ // Form 16: dedicated overview (prevents duplicate sections below the nav bar)
) : (
)}
diff --git a/src/pages/RequestDetail/components/tabs/ActivityTab.tsx b/src/pages/RequestDetail/components/tabs/ActivityTab.tsx
index 9ca65b9..ab4e733 100644
--- a/src/pages/RequestDetail/components/tabs/ActivityTab.tsx
+++ b/src/pages/RequestDetail/components/tabs/ActivityTab.tsx
@@ -48,7 +48,7 @@ function getForm16TimelineEntries(request: any): Array<{ type: string; action: s
const validationNotes = (form16.validationNotes || '') || '';
const displayStatus = (form16.displayStatus || '').toLowerCase();
const hasOcr = !!(form16.ocrExtractedData && typeof form16.ocrExtractedData === 'object' && Object.keys(form16.ocrExtractedData).length > 0);
- const hasCreditNote = !!(form16.creditNoteNumber);
+ const hasCreditNote = !!form16.creditNoteNumber;
const isMismatch = displayStatus === 'balance mismatch' || (validationStatus === 'failed' && !hasCreditNote) || (validationStatus === 'failed' && /mismatch|26as|value/i.test(validationNotes));
const isDuplicate = displayStatus === 'duplicate' || validationStatus === 'duplicate';
@@ -84,13 +84,26 @@ function getForm16TimelineEntries(request: any): Array<{ type: string; action: s
entries.push({
type: 'status_change',
action: '26AS matching',
- details: validationStatus === 'success' || form16.creditNoteNumber
- ? '26AS matching completed. Credit note generated.'
+ details: validationStatus === 'success' || hasCreditNote
+ ? '26AS matching completed.'
: '26AS matching was performed.',
timestamp: submittedTs,
});
}
+ // Explicit credit note event when generated for current submission
+ if (hasCreditNote) {
+ const creditNoteTs = form16.creditNoteIssueDate
+ ? new Date(form16.creditNoteIssueDate).toISOString()
+ : submittedTs;
+ entries.push({
+ type: 'status_change',
+ action: 'Credit note issued',
+ details: `Credit note ${form16.creditNoteNumber} issued for this submission.`,
+ timestamp: creditNoteTs,
+ });
+ }
+
return entries.sort((a, b) => new Date(a.timestamp).getTime() - new Date(b.timestamp).getTime());
}