diff --git a/src/dealer-claim/components/request-detail/claim-cards/ProcessDetailsCard.tsx b/src/dealer-claim/components/request-detail/claim-cards/ProcessDetailsCard.tsx
index 354f2a0..bd1ce18 100644
--- a/src/dealer-claim/components/request-detail/claim-cards/ProcessDetailsCard.tsx
+++ b/src/dealer-claim/components/request-detail/claim-cards/ProcessDetailsCard.tsx
@@ -31,6 +31,7 @@ interface DMSDetails {
ackNo?: string;
ackDate?: string;
signedInvoiceUrl?: string;
+ creditNoteWfmData?: any[];
}
interface ClaimAmountDetails {
@@ -99,6 +100,7 @@ export function ProcessDetailsCard({
const hasContent =
(visibility.showIODetails && ioDetails) ||
(visibility.showDMSDetails && dmsDetails) ||
+ (dmsDetails?.creditNoteWfmData && dmsDetails.creditNoteWfmData.length > 0) ||
(visibility.showClaimAmount && claimAmount && claimAmount.amount !== undefined && claimAmount.amount !== null) ||
(estimatedBudgetBreakdown && estimatedBudgetBreakdown.length > 0) ||
(closedExpensesBreakdown && closedExpensesBreakdown.length > 0);
@@ -227,6 +229,32 @@ export function ProcessDetailsCard({
)}
+ {/* Credit Note Validation */}
+ {dmsDetails?.creditNoteWfmData && dmsDetails.creditNoteWfmData.length > 0 && (
+
+
+
+
+
+
+ {dmsDetails.creditNoteWfmData.map((cn: any, idx: number) => (
+
+
+ Credit Note No: {cn.DOC_NO || 'N/A'}
+
+ {cn.MSG_TYP === 'E' ? 'Error' : (cn.MSG_TYP === 'S' ? 'Success' : cn.MSG_TYP || 'Unknown')}
+
+
+
Txn: {cn.TRNS_UNIQ_NO || 'N/A'}
+
{cn.MESSAGE || 'No Message'}
+
+ ))}
+
+
+ )}
+
{/* Claim Amount */}
{visibility.showClaimAmount && claimAmount && (
diff --git a/src/hooks/useRequestDetails.ts b/src/hooks/useRequestDetails.ts
index 2464e2b..6a793d1 100644
--- a/src/hooks/useRequestDetails.ts
+++ b/src/hooks/useRequestDetails.ts
@@ -2,6 +2,7 @@ import { useState, useEffect, useMemo, useCallback } from 'react';
import workflowApi, { getPauseDetails } from '@/services/workflowApi';
import apiClient from '@/services/authApi';
import { getSocket } from '@/utils/socket';
+import { isClaimManagementRequest } from '@/utils/claimRequestUtils';
/**
* Custom Hook: useRequestDetails
@@ -239,8 +240,18 @@ export function useRequestDetails(
let completionDetails = null;
let internalOrder = null;
let internalOrders = [];
+ let creditNoteWfmData = null;
+
+ if (isClaimManagementRequest(wf)) {
+ // Fetch Credit Note independently
+ try {
+ const cnResponse = await apiClient.get(`/dealer-claims/${wf.requestId}/credit-note-wfm`);
+ const responseData = cnResponse.data ?? cnResponse;
+ creditNoteWfmData = Array.isArray(responseData?.data) ? responseData.data : (Array.isArray(responseData) ? responseData : []);
+ } catch (cnError) {
+ console.warn('[useRequestDetails] Error fetching credit note WFM data:', cnError);
+ }
- if (wf.workflowType === 'CLAIM_MANAGEMENT' || wf.templateType === 'claim-management') {
try {
const claimResponse = await apiClient.get(`/dealer-claims/${wf.requestId}`);
@@ -264,6 +275,7 @@ export function useRequestDetails(
(claimDetails as any).invoice = invoice;
(claimDetails as any).creditNote = creditNote;
(claimDetails as any).completionExpenses = completionExpenses;
+ (claimDetails as any).creditNoteWfmData = creditNoteWfmData;
}
// Extracted details processed
@@ -333,6 +345,7 @@ export function useRequestDetails(
budgetTracking: (claimDetails as any)?.budgetTracking || null,
invoice: claimDetails?.invoice || (claimDetails as any)?.invoice || null,
creditNote: (claimDetails as any)?.creditNote || null,
+ creditNoteWfmData: creditNoteWfmData || (claimDetails as any)?.creditNoteWfmData || null,
completionExpenses: (claimDetails as any)?.completionExpenses || null,
templateType: wf.templateType || wf.template_type,
form16Submission: details.form16Submission || null,
@@ -523,8 +536,18 @@ export function useRequestDetails(
let completionDetails = null;
let internalOrder = null;
let internalOrders = [];
+ let creditNoteWfmData = null;
+
+ if (isClaimManagementRequest(wf)) {
+ // Fetch Credit Note independently
+ try {
+ const cnResponse = await apiClient.get(`/dealer-claims/${wf.requestId}/credit-note-wfm`);
+ const responseData = cnResponse.data ?? cnResponse;
+ creditNoteWfmData = Array.isArray(responseData?.data) ? responseData.data : (Array.isArray(responseData) ? responseData : []);
+ } catch (cnError) {
+ console.warn('[useRequestDetails] Error fetching credit note WFM data:', cnError);
+ }
- if (wf.workflowType === 'CLAIM_MANAGEMENT' || wf.templateType === 'claim-management') {
try {
const claimResponse = await apiClient.get(`/dealer-claims/${wf.requestId}`);
@@ -547,6 +570,7 @@ export function useRequestDetails(
(claimDetails as any).invoice = invoice;
(claimDetails as any).creditNote = creditNote;
(claimDetails as any).completionExpenses = completionExpenses;
+ (claimDetails as any).creditNoteWfmData = creditNoteWfmData;
}
// Initial load - Extracted details processed
@@ -603,6 +627,7 @@ export function useRequestDetails(
budgetTracking: (claimDetails as any)?.budgetTracking || null,
invoice: (claimDetails as any)?.invoice || null,
creditNote: (claimDetails as any)?.creditNote || null,
+ creditNoteWfmData: creditNoteWfmData || (claimDetails as any)?.creditNoteWfmData || null,
completionExpenses: (claimDetails as any)?.completionExpenses || null,
templateType: wf.templateType || wf.template_type,
form16Submission: details.form16Submission || null,
diff --git a/src/utils/claimDataMapper.ts b/src/utils/claimDataMapper.ts
index 715eeec..b43bd8e 100644
--- a/src/utils/claimDataMapper.ts
+++ b/src/utils/claimDataMapper.ts
@@ -95,6 +95,7 @@ export interface ClaimManagementRequest {
ackDate?: string;
signedInvoiceUrl?: string;
taxBreakdown?: any;
+ creditNoteWfmData?: any[];
};
// Claim Amount
@@ -298,6 +299,7 @@ export function mapToClaimManagementRequest(
ackDate: invoice.ackDate || claimDetails.ackDate,
signedInvoiceUrl: invoice.signedInvoiceUrl || claimDetails.signedInvoiceUrl,
taxBreakdown: invoice.taxBreakdown || claimDetails.taxBreakdown,
+ creditNoteWfmData: apiRequest.creditNoteWfmData || claimDetails.creditNoteWfmData || [],
};
// Map claim amounts