debit note CSV path configured

This commit is contained in:
Aaditya Jaiswal 2026-03-13 14:10:49 +05:30
parent e00f5a4d25
commit d3ab799898
2 changed files with 20 additions and 24 deletions

View File

@ -514,6 +514,10 @@ function CustomRequestDetailInner({ requestId: propRequestId, onBack, dynamicReq
{/* Left Column: Tab content */}
<div className={activeTab === 'worknotes' && !isForm16Request ? '' : 'lg:col-span-2'}>
<TabsContent value="overview" className="mt-0" data-testid="overview-tab-content">
{isForm16Request ? (
// Form 16: dedicated overview (prevents duplicate sections below the nav bar)
<Form16OverviewTab request={request} />
) : (
<CustomOverviewTab
request={request}
isInitiator={isInitiator}
@ -535,27 +539,6 @@ function CustomRequestDetailInner({ requestId: propRequestId, onBack, dynamicReq
generationFailed={generationFailed}
maxAttemptsReached={maxAttemptsReached}
/>
{isForm16Request ? (
<Form16OverviewTab request={request} />
) : (
<CustomOverviewTab
request={request}
isInitiator={isInitiator}
needsClosure={needsClosure}
conclusionRemark={conclusionRemark}
setConclusionRemark={setConclusionRemark}
conclusionLoading={conclusionLoading}
conclusionSubmitting={conclusionSubmitting}
aiGenerated={aiGenerated}
handleGenerateConclusion={handleGenerateConclusion}
handleFinalizeConclusion={handleFinalizeConclusion}
onPause={handlePause}
onResume={handleResume}
onRetrigger={handleRetrigger}
currentUserIsApprover={!!currentApprovalLevel}
pausedByUserId={request?.pauseInfo?.pausedBy?.userId}
currentUserId={(user as any)?.userId}
/>
)}
</TabsContent>

View File

@ -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());
}