diff --git a/src/CONST/index.ts b/src/CONST/index.ts index 6667d3823d55..f5b654206dce 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -3576,6 +3576,9 @@ const CONST = { CARD_NAME: { CASH: '__CASH__', }, + BANK_NAME: { + UPLOAD: 'upload', + }, CARD_LIST_THRESHOLD: 8, DEFAULT_EXPORT_TYPE: 'default', EXPORT_CARD_TYPES: { diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx index 3e475e5bfe96..b5563498bbe3 100644 --- a/src/components/ReportActionItem/MoneyRequestView.tsx +++ b/src/components/ReportActionItem/MoneyRequestView.tsx @@ -82,7 +82,7 @@ import { hasMissingSmartscanFields, hasReservationList, hasRoute as hasRouteTransactionUtils, - isManagedCardTransaction as isCardTransactionTransactionUtils, + isFromCreditCardImport as isCardTransactionTransactionUtils, isCategoryBeingAnalyzed, isDistanceRequest as isDistanceRequestTransactionUtils, isExpenseUnreported as isExpenseUnreportedTransactionUtils, diff --git a/src/libs/TransactionUtils/index.ts b/src/libs/TransactionUtils/index.ts index 5985ec41d5ec..4182c6677626 100644 --- a/src/libs/TransactionUtils/index.ts +++ b/src/libs/TransactionUtils/index.ts @@ -1134,6 +1134,30 @@ function isManagedCardTransaction(transaction: OnyxEntry): boolean return !!transaction?.managedCard; } +/** + * Determine whether a transaction is imported from a credit card. + * This includes managed cards (Expensify/Company cards) and personal cards imported via bank connection. + */ +function isFromCreditCardImport(transaction: OnyxEntry): boolean { + if (transaction?.bank === CONST.COMPANY_CARDS.BANK_NAME.UPLOAD) { + return false; + } + + if (isManagedCardTransaction(transaction)) { + return true; + } + + if (transaction?.cardNumber) { + return true; + } + + if (transaction?.bank) { + return true; + } + + return false; +} + function getCardName(transaction: OnyxEntry): string { return transaction?.cardName ?? ''; } @@ -2515,6 +2539,7 @@ export { mergeProhibitedViolations, getOriginalAttendees, getReportOwnerAsAttendee, + isFromCreditCardImport, getExchangeRate, shouldReuseInitialTransaction, getOriginalAmountForDisplay,