diff --git a/web/src/views/scripts/TravelRequestDetailView.js b/web/src/views/scripts/TravelRequestDetailView.js index e7766b4..1e1133e 100644 --- a/web/src/views/scripts/TravelRequestDetailView.js +++ b/web/src/views/scripts/TravelRequestDetailView.js @@ -1180,10 +1180,18 @@ export default { } function filterSubmitterResolvedRiskCards(cards, businessStage) { + const viewerContext = riskViewerContext.value || {} return filterSubmitterResolvedRiskCardsModel({ cards, businessStage, isCurrentApplicant: isCurrentApplicant.value, + isPrivilegedRiskViewer: Boolean( + viewerContext.isAdminViewer + || viewerContext.isBudgetReviewer + || viewerContext.isDirectManagerReviewer + || viewerContext.isFinanceReviewer + || viewerContext.canViewApprovalRiskAdvice + ), expenseItems: expenseItems.value, standardAdjustmentMap: resolveCurrentStandardAdjustmentMap() }) diff --git a/web/src/views/scripts/travelRequestDetailStandardAdjustment.js b/web/src/views/scripts/travelRequestDetailStandardAdjustment.js index b0be2e4..ca693bf 100644 --- a/web/src/views/scripts/travelRequestDetailStandardAdjustment.js +++ b/web/src/views/scripts/travelRequestDetailStandardAdjustment.js @@ -61,10 +61,11 @@ export function filterSubmitterResolvedRiskCards({ cards = [], businessStage = 'reimbursement', isCurrentApplicant = false, + isPrivilegedRiskViewer = false, expenseItems = [], standardAdjustmentMap = new Map() } = {}) { - if (businessStage !== 'reimbursement' || !isCurrentApplicant) { + if (businessStage !== 'reimbursement' || !isCurrentApplicant || isPrivilegedRiskViewer) { return cards } return cards.filter((card) => !isRiskCardResolvedForSubmitter(card, expenseItems, standardAdjustmentMap)) diff --git a/web/tests/travel-request-detail-risk-advice.test.mjs b/web/tests/travel-request-detail-risk-advice.test.mjs index eb4e53a..e82647e 100644 --- a/web/tests/travel-request-detail-risk-advice.test.mjs +++ b/web/tests/travel-request-detail-risk-advice.test.mjs @@ -806,6 +806,17 @@ test('standard adjustment resolves submitter risk prompt only after accepted whi }), [originalRiskCard, reviewerNoticeCard] ) + assert.deepEqual( + filterSubmitterResolvedRiskCards({ + cards: [originalRiskCard, reviewerNoticeCard], + businessStage: 'reimbursement', + isCurrentApplicant: true, + isPrivilegedRiskViewer: true, + expenseItems, + standardAdjustmentMap + }), + [originalRiskCard, reviewerNoticeCard] + ) }) test('expense item upload remains limited to one receipt per detail row', () => {