Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
e70425a
Move IOU workflow predicates into ReportUtils
LukasMod Sep 18, 2026
897becb
Thread transaction violations into report badge reads
LukasMod Sep 21, 2026
ec3474b
Drop unused isPayAtEndExpenseReport export
LukasMod Sep 21, 2026
dc492a2
Use isPaidGroupPolicyByType in badge predicates
LukasMod Sep 21, 2026
f377232
Merge origin/main into fix/no-cycle-part15-reportutils-workflow-reads-v1
LukasMod Sep 21, 2026
a4832a7
Drop unused getReimbursementChoice import in ReportWorkflow
LukasMod Sep 21, 2026
21b008b
Move changeMoneyRequestHoldStatus into actions/IOU/Hold
LukasMod Sep 21, 2026
ae60ccb
Thread violations into requiresAttentionFromCurrentUser and address r…
LukasMod Sep 21, 2026
fc90273
Merge origin/main into fix/no-cycle-part15-reportutils-workflow-reads-v1
LukasMod Sep 22, 2026
08852bf
Merge remote-tracking branch 'origin/main' into fix/no-cycle-part15-r…
LukasMod Sep 22, 2026
c7cc9f2
Stop exporting isReportExcludedForHeldExpenses
LukasMod Sep 22, 2026
fe2a349
Merge remote-tracking branch 'origin/main' into fix/no-cycle-part15-r…
LukasMod Sep 23, 2026
b0c7b2a
Thread transaction violations into debug GBR reasons and optimistic n…
LukasMod Sep 23, 2026
901945a
Move transactionViolations next to isReportArchived and cover option …
LukasMod Sep 23, 2026
2b26414
Merge remote-tracking branch 'refs/remotes/origin/main' into fix/no-c…
LukasMod Sep 24, 2026
9fc9878
Require report transactions in canApproveIOU instead of reading the d…
LukasMod Sep 24, 2026
255d856
Merge remote-tracking branch 'origin/main' into fix/no-cycle-part15-r…
LukasMod Oct 2, 2026
72d3916
Merge remote-tracking branch 'origin/main' into fix/no-cycle-part15-r…
LukasMod Oct 5, 2026
af91d07
Require transaction violations in badge and attention predicates
LukasMod Oct 5, 2026
de35d1a
Add owner login dismissal test and Given/When/Then comments
LukasMod Oct 5, 2026
f334cdf
Merge remote-tracking branch 'origin/main' into fix/no-cycle-part15-r…
LukasMod Oct 5, 2026
2da8272
Merge remote-tracking branch 'origin/main' into fix/no-cycle-part15-r…
LukasMod Oct 7, 2026
780d24d
Pass a params object to getReasonAndReportActionThatRequiresAttention
LukasMod Oct 7, 2026
3486f97
Merge remote-tracking branch 'origin/main' into fix/no-cycle-part15-r…
LukasMod Oct 7, 2026
5d8fb71
Merge remote-tracking branch 'origin/main' into fix/no-cycle-part15-r…
LukasMod Oct 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ import {REPORT_MORE_MENU_SECTIONS, sortAndSectionPopoverMenuItems} from '@libs/P
import {getFilteredReportActionsForReportView, hasRequestFromCurrentAccount} from '@libs/ReportActionsUtils';
import {getSecondaryReportActions} from '@libs/ReportSecondaryActionUtils';
import {
canApproveIOU,
canIOUBePaid as canIOUBePaidAction,
hasHeldExpensesFromTransactions as hasHeldExpensesReportUtils,
hasViolations as hasViolationsReportUtils,
isAllowedToApproveExpenseReport,
Expand All @@ -66,7 +68,6 @@ import {
import {isPending} from '@libs/TransactionUtils';

import {payInvoice, payMoneyRequest} from '@userActions/IOU/PayMoneyRequest';
import {canApproveIOU, canIOUBePaid as canIOUBePaidAction} from '@userActions/IOU/ReportWorkflow';

import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,10 @@ import useTransactionThreadReport from '@hooks/useTransactionThreadReport';
import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID';
import {getTotalAmountForIOUReportPreviewButton, isEveryReportTransactionSelected} from '@libs/MoneyRequestReportUtils';
import {getSecondaryReportActions} from '@libs/ReportSecondaryActionUtils';
import {hasUpdatedTotal, shouldShowMarkAsDone} from '@libs/ReportUtils';
import {canIOUBePaid as canIOUBePaidAction, hasUpdatedTotal, shouldShowMarkAsDone} from '@libs/ReportUtils';
import shouldPopoverUseScrollView from '@libs/shouldPopoverUseScrollView';
import {getDeleteConfirmationPrompt, getDeleteExpenseTitle, isPending, isTransactionPendingDelete} from '@libs/TransactionUtils';

import {canIOUBePaid as canIOUBePaidAction} from '@userActions/IOU/ReportWorkflow';

import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES from '@src/ROUTES';
Expand Down
6 changes: 5 additions & 1 deletion src/components/MoneyReportHeaderEducationalModals.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ import useDelegateAccountID from '@hooks/useDelegateAccountID';
import useNetwork from '@hooks/useNetwork';
import useOnyx from '@hooks/useOnyx';

import {changeMoneyRequestHoldStatus} from '@libs/actions/IOU/Hold';
import {setNameValuePair} from '@libs/actions/User';
import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID';
import Navigation from '@libs/Navigation/Navigation';
import {changeMoneyRequestHoldStatus, isDM, rejectMoneyRequestReason} from '@libs/ReportUtils';
import {isDM, rejectMoneyRequestReason} from '@libs/ReportUtils';

import {dismissRejectUseExplanation} from '@userActions/IOU/RejectMoneyRequest';

Expand Down Expand Up @@ -54,6 +55,7 @@ function MoneyReportHeaderEducationalModals({reportID, ref}: MoneyReportHeaderEd

const [moneyRequestReport] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${reportID}`);
const [chatReport] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${getNonEmptyStringOnyxID(moneyRequestReport?.chatReportID)}`);
const [policy] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY}${getNonEmptyStringOnyxID(moneyRequestReport?.policyID)}`);
const {iouTransactionID, requestParentReportAction} = useMoneyReportTransactionThread();
const [transaction] = useOnyx(`${ONYXKEYS.COLLECTION.TRANSACTION}${getNonEmptyStringOnyxID(iouTransactionID)}`);
const [transactionViolations] = useOnyx(`${ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS}${getNonEmptyStringOnyxID(iouTransactionID)}`);
Expand All @@ -72,6 +74,7 @@ function MoneyReportHeaderEducationalModals({reportID, ref}: MoneyReportHeaderEd
changeMoneyRequestHoldStatus(
requestParentReportAction,
transaction,
policy,
isOffline,
currentUserLogin ?? '',
currentUserAccountID,
Expand All @@ -90,6 +93,7 @@ function MoneyReportHeaderEducationalModals({reportID, ref}: MoneyReportHeaderEd
changeMoneyRequestHoldStatus(
requestParentReportAction,
transaction,
policy,
isOffline,
currentUserLogin ?? '',
currentUserAccountID,
Expand Down
4 changes: 1 addition & 3 deletions src/components/MoneyReportHeaderModals.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ import useTransactionsAndViolationsForReport from '@hooks/useTransactionsAndViol

import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID';
import getPlatform from '@libs/getPlatform';
import {getNonHeldAndFullAmount, hasOnlyHeldExpenses as hasOnlyHeldExpensesReportUtils} from '@libs/ReportUtils';

import {canIOUBePaid as canIOUBePaidAction} from '@userActions/IOU/ReportWorkflow';
import {canIOUBePaid as canIOUBePaidAction, getNonHeldAndFullAmount, hasOnlyHeldExpenses as hasOnlyHeldExpensesReportUtils} from '@libs/ReportUtils';

import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ import useReportIsArchived from '@hooks/useReportIsArchived';
import useTransactionsAndViolationsForReport from '@hooks/useTransactionsAndViolationsForReport';

import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID';
import {getNextApproverAccountID, hasHeldExpensesFromTransactions as hasHeldExpensesReportUtils, isReportOwner} from '@libs/ReportUtils';

import {canIOUBePaid as canIOUBePaidAction} from '@userActions/IOU/ReportWorkflow';
import {canIOUBePaid as canIOUBePaidAction, getNextApproverAccountID, hasHeldExpensesFromTransactions as hasHeldExpensesReportUtils, isReportOwner} from '@libs/ReportUtils';

import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,9 @@ import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID';
import {getTotalAmountForIOUReportPreviewButton} from '@libs/MoneyRequestReportUtils';
import {isTrackOnboardingChoice} from '@libs/OnboardingUtils';
import {hasDynamicExternalWorkflow} from '@libs/PolicyUtils';
import {hasHeldExpensesFromTransactions as hasHeldExpensesReportUtils, hasUpdatedTotal, isInvoiceReport as isInvoiceReportUtil} from '@libs/ReportUtils';
import {canIOUBePaid as canIOUBePaidAction, hasHeldExpensesFromTransactions as hasHeldExpensesReportUtils, hasUpdatedTotal, isInvoiceReport as isInvoiceReportUtil} from '@libs/ReportUtils';

import {payInvoice, payMoneyRequest} from '@userActions/IOU/PayMoneyRequest';
import {canIOUBePaid as canIOUBePaidAction} from '@userActions/IOU/ReportWorkflow';

import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ import useLocalize from '@hooks/useLocalize';
import useOnyx from '@hooks/useOnyx';
import useTransactionsAndViolationsForReport from '@hooks/useTransactionsAndViolationsForReport';

import {changeMoneyRequestHoldStatus} from '@libs/actions/IOU/Hold';
import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID';
import {getReportAction} from '@libs/ReportActionsUtils';
import {getAllExpensesToHoldIfApplicable} from '@libs/ReportPrimaryActionUtils';
import {changeMoneyRequestHoldStatus, getLinkedIOUTransaction} from '@libs/ReportUtils';
import {getLinkedIOUTransaction} from '@libs/ReportUtils';

import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down Expand Up @@ -58,6 +59,7 @@ function RemoveHoldPrimaryAction({reportID, chatReportID, isDisabled}: SimpleAct
changeMoneyRequestHoldStatus(
action,
linkedTransaction,
policy,
isOffline,
currentUserLogin ?? '',
currentUserAccountID,
Expand All @@ -80,6 +82,7 @@ function RemoveHoldPrimaryAction({reportID, chatReportID, isDisabled}: SimpleAct
changeMoneyRequestHoldStatus(
moneyRequestAction,
linkedTransaction,
policy,
isOffline,
currentUserLogin ?? '',
currentUserAccountID,
Expand Down
3 changes: 2 additions & 1 deletion src/components/MoneyRequestHeaderPrimaryAction.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import useShouldDisplayButtonsInSeparateLine from '@hooks/useShouldDisplayButton
import useThemeStyles from '@hooks/useThemeStyles';
import useTransactionViolations from '@hooks/useTransactionViolations';

import {changeMoneyRequestHoldStatus} from '@libs/actions/IOU/Hold';
import {markRejectViolationAsResolved} from '@libs/actions/IOU/RejectMoneyRequest';
import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID';
import createDynamicRoute from '@libs/Navigation/helpers/dynamicRoutesUtils/createDynamicRoute';
Expand All @@ -18,7 +19,6 @@ import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigat
import type {ReportsSplitNavigatorParamList, RightModalNavigatorParamList} from '@libs/Navigation/types';
import {getOriginalMessage, isMoneyRequestAction} from '@libs/ReportActionsUtils';
import {getTransactionThreadPrimaryAction} from '@libs/ReportPrimaryActionUtils';
import {changeMoneyRequestHoldStatus} from '@libs/ReportUtils';
import {getReviewNavigationRoute} from '@libs/TransactionPreviewUtils';
import {removeSettledAndApprovedTransactions} from '@libs/TransactionUtils';

Expand Down Expand Up @@ -103,6 +103,7 @@ function MoneyRequestHeaderPrimaryAction({reportID}: MoneyRequestHeaderPrimaryAc
changeMoneyRequestHoldStatus(
parentReportAction,
transaction,
policy,
isOffline,
currentUserLogin ?? '',
accountID,
Expand Down
6 changes: 5 additions & 1 deletion src/components/MoneyRequestHeaderSecondaryActions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import useThrottledButtonState from '@hooks/useThrottledButtonState';
import useTransactionViolations from '@hooks/useTransactionViolations';

import {duplicateExpenseTransaction as duplicateTransactionAction} from '@libs/actions/IOU/Duplicate';
import {changeMoneyRequestHoldStatus} from '@libs/actions/IOU/Hold';
import {deleteTrackExpense} from '@libs/actions/IOU/TrackExpense';
import {setupMergeTransactionDataAndNavigate} from '@libs/actions/MergeTransaction';
import {generateDefaultWorkspaceName} from '@libs/actions/Policy/Policy';
Expand All @@ -50,7 +51,6 @@ import {getOriginalMessage, getTrackExpenseActionableWhisper, isMoneyRequestActi
import {getTransactionThreadPrimaryAction} from '@libs/ReportPrimaryActionUtils';
import {getSecondaryTransactionThreadActions} from '@libs/ReportSecondaryActionUtils';
import {
changeMoneyRequestHoldStatus,
generateReportID,
getPolicyExpenseChat,
isCurrentUserSubmitter,
Expand Down Expand Up @@ -320,6 +320,7 @@ function MoneyRequestHeaderSecondaryActions({reportID, onBackButtonPress}: Money
changeMoneyRequestHoldStatus(
parentReportAction,
transaction,
policy,
isOffline,
currentUserLogin ?? '',
accountID,
Expand All @@ -338,6 +339,7 @@ function MoneyRequestHeaderSecondaryActions({reportID, onBackButtonPress}: Money
changeMoneyRequestHoldStatus(
parentReportAction,
transaction,
policy,
isOffline,
currentUserLogin ?? '',
accountID,
Expand Down Expand Up @@ -428,6 +430,7 @@ function MoneyRequestHeaderSecondaryActions({reportID, onBackButtonPress}: Money
changeMoneyRequestHoldStatus(
parentReportAction,
transaction,
policy,
isOffline,
currentUserLogin ?? '',
accountID,
Expand Down Expand Up @@ -460,6 +463,7 @@ function MoneyRequestHeaderSecondaryActions({reportID, onBackButtonPress}: Money
changeMoneyRequestHoldStatus(
parentReportAction,
transaction,
policy,
isOffline,
currentUserLogin ?? '',
accountID,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ import useReportIsArchived from '@hooks/useReportIsArchived';
import {getConnectedIntegration, hasDynamicExternalWorkflow} from '@libs/PolicyUtils';
import {hasPendingDEWSubmit} from '@libs/ReportActionsUtils';
import getReportPreviewAction from '@libs/ReportPreviewActionUtils';

import {canIOUBePaid as canIOUBePaidIOUActions} from '@userActions/IOU/ReportWorkflow';
import {canIOUBePaid} from '@libs/ReportUtils';

import ONYXKEYS from '@src/ONYXKEYS';
import {loginSelector} from '@src/selectors/PersonalDetails';
Expand Down Expand Up @@ -55,7 +54,7 @@ function useReportPreviewActionDecision({
const isDEWSubmitPending = hasPendingDEWSubmit(iouReportMetadata, isDEWPolicy);
const connectedIntegration = getConnectedIntegration(policy);

const canIOUBePaid = canIOUBePaidIOUActions(
const isIOUPayable = canIOUBePaid(
iouReport,
chatReport,
policy,
Expand All @@ -68,8 +67,8 @@ function useReportPreviewActionDecision({
invoiceReceiverPolicy,
);
const onlyShowPayElsewhere =
!canIOUBePaid &&
canIOUBePaidIOUActions(
!isIOUPayable &&
canIOUBePaid(
iouReport,
chatReport,
policy,
Expand All @@ -81,7 +80,7 @@ function useReportPreviewActionDecision({
isChatReportArchived,
invoiceReceiverPolicy,
);
const shouldShowPayButton = isPaidAnimationRunning || canIOUBePaid || onlyShowPayElsewhere;
const shouldShowPayButton = isPaidAnimationRunning || isIOUPayable || onlyShowPayElsewhere;

const reportPreviewAction = getReportPreviewAction({
isReportArchived: isIouReportArchived || isChatReportArchived,
Expand All @@ -102,7 +101,7 @@ function useReportPreviewActionDecision({
rules,
});

return {reportPreviewAction, canIOUBePaid, onlyShowPayElsewhere, shouldShowPayButton, connectedIntegration};
return {reportPreviewAction, canIOUBePaid: isIOUPayable, onlyShowPayElsewhere, shouldShowPayButton, connectedIntegration};
}

export default useReportPreviewActionDecision;
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,10 @@ import useReportWithTransactionsAndViolations from '@hooks/useReportWithTransact
import useThemeStyles from '@hooks/useThemeStyles';

import {payInvoice, payMoneyRequest} from '@libs/actions/IOU/PayMoneyRequest';
import {canIOUBePaid} from '@libs/actions/IOU/ReportWorkflow';
import {getChatReportWithFallback, getSearchPayOnyxData} from '@libs/actions/Search';
import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID';
import Log from '@libs/Log';
import {getReimbursableTotal, isArchivedReport, isIndividualInvoiceRoom, isInvoiceReport} from '@libs/ReportUtils';
import {canIOUBePaid, getReimbursableTotal, isArchivedReport, isIndividualInvoiceRoom, isInvoiceReport} from '@libs/ReportUtils';

import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down
6 changes: 5 additions & 1 deletion src/hooks/useHoldRejectActions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@ import type {SecondaryActionEntry} from '@components/MoneyReportHeaderActions/ty
import type {RejectModalAction} from '@components/MoneyReportHeaderEducationalModals';
import {useMoneyReportTransactionThread} from '@components/MoneyReportTransactionThreadContext';

import {changeMoneyRequestHoldStatus} from '@libs/actions/IOU/Hold';
import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID';
import Navigation from '@libs/Navigation/Navigation';
import {changeMoneyRequestHoldStatus, isCurrentUserSubmitter, isDM} from '@libs/ReportUtils';
import {isCurrentUserSubmitter, isDM} from '@libs/ReportUtils';

import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down Expand Up @@ -45,6 +46,7 @@ function useHoldRejectActions({reportID, onHoldEducationalOpen, onRejectModalOpe

const [moneyRequestReport] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${reportID}`);
const [chatReport] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${getNonEmptyStringOnyxID(moneyRequestReport?.chatReportID)}`);
const [policy] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY}${getNonEmptyStringOnyxID(moneyRequestReport?.policyID)}`);
const {iouTransactionID, requestParentReportAction} = useMoneyReportTransactionThread();
const {login: currentUserLogin, accountID: currentUserAccountID} = useCurrentUserPersonalDetails();
const delegateAccountID = useDelegateAccountID();
Expand Down Expand Up @@ -86,6 +88,7 @@ function useHoldRejectActions({reportID, onHoldEducationalOpen, onRejectModalOpe
changeMoneyRequestHoldStatus(
requestParentReportAction,
transaction,
policy,
isOffline,
currentUserLogin ?? '',
currentUserAccountID,
Expand Down Expand Up @@ -119,6 +122,7 @@ function useHoldRejectActions({reportID, onHoldEducationalOpen, onRejectModalOpe
changeMoneyRequestHoldStatus(
requestParentReportAction,
transaction,
policy,
isOffline,
currentUserLogin ?? '',
currentUserAccountID,
Expand Down
20 changes: 5 additions & 15 deletions src/hooks/useLifecycleActions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID';
import {getValidConnectedIntegration, isSubmitPolicy} from '@libs/PolicyUtils';
import {getFilteredReportActionsForReportView} from '@libs/ReportActionsUtils';
import {
canIOUBePaid,
getIntegrationNameFromExportMessage as getIntegrationNameFromExportMessageUtils,
hasHeldExpensesFromTransactions as hasHeldExpensesReportUtils,
hasOnlyHeldExpenses as hasOnlyHeldExpensesReportUtils,
Expand All @@ -29,7 +30,7 @@ import {
} from '@libs/TransactionUtils';

import {cancelPayment, markReportPaymentReceived} from '@userActions/IOU/PayMoneyRequest';
import {approveMoneyRequest, canIOUBePaid as canIOUBePaidAction, reopenReport, retractReport, submitReport, unapproveExpenseReport} from '@userActions/IOU/ReportWorkflow';
import {approveMoneyRequest, reopenReport, retractReport, submitReport, unapproveExpenseReport} from '@userActions/IOU/ReportWorkflow';
import {markPendingRTERTransactionsAsCash} from '@userActions/Transaction';

import CONST from '@src/CONST';
Expand Down Expand Up @@ -223,21 +224,10 @@ function useLifecycleActions({reportID, startApprovedAnimation, startAnimation,
}
};

const canIOUBePaid = canIOUBePaidAction(
moneyRequestReport,
chatReport,
policy,
bankAccountList,
currentUserPersonalDetails.login ?? '',
accountID,
undefined,
false,
isChatReportArchived,
);
const isIOUPayable = canIOUBePaid(moneyRequestReport, chatReport, policy, bankAccountList, currentUserPersonalDetails.login ?? '', accountID, undefined, false, isChatReportArchived);
const onlyShowPayElsewhere =
!canIOUBePaid &&
canIOUBePaidAction(moneyRequestReport, chatReport, policy, bankAccountList, currentUserPersonalDetails.login ?? '', accountID, undefined, true, isChatReportArchived);
const shouldShowPayButton = canIOUBePaid || onlyShowPayElsewhere;
!isIOUPayable && canIOUBePaid(moneyRequestReport, chatReport, policy, bankAccountList, currentUserPersonalDetails.login ?? '', accountID, undefined, true, isChatReportArchived);
const shouldShowPayButton = isIOUPayable || onlyShowPayElsewhere;
const hasOnlyHeldExpenses = hasOnlyHeldExpensesReportUtils(transactions);
const shouldShowApprovalSecondaryActions = isAnyTransactionOnHold && !isDelegateAccessRestricted;
const secondaryApprovalActions = shouldShowApprovalSecondaryActions
Expand Down
Loading
Loading