From 4dbd926aefa69a52147c6a45e50d77f4e8cf4196 Mon Sep 17 00:00:00 2001 From: Mohammad Luthfi Fathur Rahman Date: Wed, 10 Dec 2025 21:26:11 +0700 Subject: [PATCH 1/2] add isFromCreditCardImport to check the transaction from import card --- .../ReportActionItem/MoneyRequestView.tsx | 2 +- src/libs/TransactionUtils/index.ts | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx index be594c9c3dfe..029a538f6546 100644 --- a/src/components/ReportActionItem/MoneyRequestView.tsx +++ b/src/components/ReportActionItem/MoneyRequestView.tsx @@ -71,7 +71,7 @@ import { hasMissingSmartscanFields, hasReservationList, hasRoute as hasRouteTransactionUtils, - isManagedCardTransaction as isCardTransactionTransactionUtils, + isFromCreditCardImport as isCardTransactionTransactionUtils, isDistanceRequest as isDistanceRequestTransactionUtils, isExpenseUnreported as isExpenseUnreportedTransactionUtils, isManualDistanceRequest as isManualDistanceRequestTransactionUtils, diff --git a/src/libs/TransactionUtils/index.ts b/src/libs/TransactionUtils/index.ts index 744b771e2529..68b4fbd75eb5 100644 --- a/src/libs/TransactionUtils/index.ts +++ b/src/libs/TransactionUtils/index.ts @@ -1077,6 +1077,31 @@ 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. + * CSV uploads and cash expenses are NOT considered credit card imports. + */ +function isFromCreditCardImport(transaction: OnyxEntry): boolean { + if (transaction?.bank === '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 ?? ''; } @@ -2343,6 +2368,7 @@ export { mergeProhibitedViolations, getOriginalAttendees, getReportOwnerAsAttendee, + isFromCreditCardImport, }; export type {TransactionChanges}; From e7bc85c44bbf793234e0692ef58bf7d55d762c57 Mon Sep 17 00:00:00 2001 From: Mohammad Luthfi Fathur Rahman Date: Thu, 18 Dec 2025 22:45:24 +0700 Subject: [PATCH 2/2] move upload to new constant --- src/CONST/index.ts | 3 +++ src/libs/TransactionUtils/index.ts | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/CONST/index.ts b/src/CONST/index.ts index 5a38b694715a..44cc294f6b84 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -3548,6 +3548,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/libs/TransactionUtils/index.ts b/src/libs/TransactionUtils/index.ts index 10ca81990de2..f1e200b98f04 100644 --- a/src/libs/TransactionUtils/index.ts +++ b/src/libs/TransactionUtils/index.ts @@ -1084,10 +1084,9 @@ function isManagedCardTransaction(transaction: OnyxEntry): boolean /** * Determine whether a transaction is imported from a credit card. * This includes managed cards (Expensify/Company cards) and personal cards imported via bank connection. - * CSV uploads and cash expenses are NOT considered credit card imports. */ function isFromCreditCardImport(transaction: OnyxEntry): boolean { - if (transaction?.bank === 'upload') { + if (transaction?.bank === CONST.COMPANY_CARDS.BANK_NAME.UPLOAD) { return false; }