From 5316edba7a2ca77228170e8a39fcd2b476906adc Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Tue, 30 Jul 2024 15:11:36 +0100 Subject: [PATCH 1/6] use managedCard and Bank keys to determine whether transactions are card/Ecard --- src/libs/TransactionUtils.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/libs/TransactionUtils.ts b/src/libs/TransactionUtils.ts index c044702b2fc08..eea479788ded2 100644 --- a/src/libs/TransactionUtils.ts +++ b/src/libs/TransactionUtils.ts @@ -10,7 +10,6 @@ import type {Comment, Receipt, TransactionChanges, TransactionPendingFieldsKey, import {isEmptyObject} from '@src/types/utils/EmptyObject'; import type {IOURequestType} from './actions/IOU'; import type {TransactionMergeParams} from './API/parameters'; -import {isCorporateCard, isExpensifyCard} from './CardUtils'; import {getCurrencyDecimals} from './CurrencyUtils'; import DateUtils from './DateUtils'; import * as Localize from './Localize'; @@ -490,18 +489,17 @@ function getFormattedCreated(transaction: OnyxInputOrEntry, dateFor * Determine whether a transaction is made with an Expensify card. */ function isExpensifyCardTransaction(transaction: OnyxEntry): boolean { - if (!transaction?.cardID) { + if (!transaction?.managedCard) { return false; } - return isExpensifyCard(transaction.cardID); + return transaction?.bank === CONST.EXPENSIFY_CARD.BANK; } /** * Determine whether a transaction is made with a card (Expensify or Company Card). */ function isCardTransaction(transaction: OnyxEntry): boolean { - const cardID = transaction?.cardID ?? -1; - return isCorporateCard(cardID); + return !!transaction?.managedCard; } /** From 1f2796a6c649749ba44ffe5969c6fdf348b48544 Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Tue, 20 Aug 2024 11:06:52 -0400 Subject: [PATCH 2/6] clean up --- src/libs/TransactionUtils/index.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/libs/TransactionUtils/index.ts b/src/libs/TransactionUtils/index.ts index 3aaf4476eb0b9..2c9aaf2b97271 100644 --- a/src/libs/TransactionUtils/index.ts +++ b/src/libs/TransactionUtils/index.ts @@ -4,7 +4,6 @@ import type {OnyxCollection, OnyxEntry} from 'react-native-onyx'; import Onyx from 'react-native-onyx'; import type {ValueOf} from 'type-fest'; import type {TransactionMergeParams} from '@libs/API/parameters'; -import {isCorporateCard, isExpensifyCard} from '@libs/CardUtils'; import {getCurrencyDecimals} from '@libs/CurrencyUtils'; import DateUtils from '@libs/DateUtils'; import DistanceRequestUtils from '@libs/DistanceRequestUtils'; @@ -507,18 +506,14 @@ function getFormattedCreated(transaction: OnyxInputOrEntry, dateFor * Determine whether a transaction is made with an Expensify card. */ function isExpensifyCardTransaction(transaction: OnyxEntry): boolean { - if (!transaction?.cardID) { - return false; - } - return isExpensifyCard(transaction.cardID); + return transaction?.bank === CONST.EXPENSIFY_CARD.BANK; } /** * Determine whether a transaction is made with a card (Expensify or Company Card). */ function isCardTransaction(transaction: OnyxEntry): boolean { - const cardID = transaction?.cardID ?? -1; - return isCorporateCard(cardID); + return !!transaction?.managedCard; } /** From 548ab46318c6fa9c48f43b25477db37abbb72ecd Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Tue, 20 Aug 2024 11:58:07 -0400 Subject: [PATCH 3/6] display card name for admin view --- src/components/ReportActionItem/MoneyRequestView.tsx | 2 +- src/libs/TransactionUtils/index.ts | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx index a38845ec33627..c23e659cada47 100644 --- a/src/components/ReportActionItem/MoneyRequestView.tsx +++ b/src/components/ReportActionItem/MoneyRequestView.tsx @@ -170,7 +170,7 @@ function MoneyRequestView({ const formattedTransactionAmount = transactionAmount ? CurrencyUtils.convertToDisplayString(transactionAmount, transactionCurrency) : ''; const formattedOriginalAmount = transactionOriginalAmount && transactionOriginalCurrency && CurrencyUtils.convertToDisplayString(transactionOriginalAmount, transactionOriginalCurrency); const isCardTransaction = TransactionUtils.isCardTransaction(transaction); - const cardProgramName = isCardTransaction && transactionCardID !== undefined ? CardUtils.getCardDescription(transactionCardID) : ''; + const cardProgramName = TransactionUtils.getCardName(transaction); const isApproved = ReportUtils.isReportApproved(moneyRequestReport); const isInvoice = ReportUtils.isInvoiceReport(moneyRequestReport); const isPaidReport = ReportActionsUtils.isPayAction(parentReportAction); diff --git a/src/libs/TransactionUtils/index.ts b/src/libs/TransactionUtils/index.ts index 2c9aaf2b97271..b2b14be5ceced 100644 --- a/src/libs/TransactionUtils/index.ts +++ b/src/libs/TransactionUtils/index.ts @@ -516,6 +516,10 @@ function isCardTransaction(transaction: OnyxEntry): boolean { return !!transaction?.managedCard; } +function getCardName(transaction: OnyxEntry): string { + return transaction?.cardName ?? ''; +} + /** * Check if the transaction status is set to Pending. */ @@ -1111,6 +1115,7 @@ export { buildTransactionsMergeParams, getReimbursable, isPayAtEndExpense, + getCardName, }; export type {TransactionChanges}; From c5bce23f7e64224eb209235271c152b5060dcbb3 Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Tue, 20 Aug 2024 12:00:03 -0400 Subject: [PATCH 4/6] remove unused var --- src/components/ReportActionItem/MoneyRequestView.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx index c23e659cada47..7dfca7ba77283 100644 --- a/src/components/ReportActionItem/MoneyRequestView.tsx +++ b/src/components/ReportActionItem/MoneyRequestView.tsx @@ -163,7 +163,6 @@ function MoneyRequestView({ tag: transactionTag, originalAmount: transactionOriginalAmount, originalCurrency: transactionOriginalCurrency, - cardID: transactionCardID, } = useMemo>(() => ReportUtils.getTransactionDetails(transaction) ?? {}, [transaction]); const isEmptyMerchant = transactionMerchant === '' || transactionMerchant === CONST.TRANSACTION.PARTIAL_TRANSACTION_MERCHANT; const isDistanceRequest = TransactionUtils.isDistanceRequest(transaction); From 02242bf1719bd7cb5f9eb67dfcd95827c1b412b1 Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Tue, 20 Aug 2024 12:05:27 -0400 Subject: [PATCH 5/6] add shouldShowCard to hide row if cardName is empty string --- src/components/ReportActionItem/MoneyRequestView.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx index 7dfca7ba77283..096e6c7426adf 100644 --- a/src/components/ReportActionItem/MoneyRequestView.tsx +++ b/src/components/ReportActionItem/MoneyRequestView.tsx @@ -170,6 +170,7 @@ function MoneyRequestView({ const formattedOriginalAmount = transactionOriginalAmount && transactionOriginalCurrency && CurrencyUtils.convertToDisplayString(transactionOriginalAmount, transactionOriginalCurrency); const isCardTransaction = TransactionUtils.isCardTransaction(transaction); const cardProgramName = TransactionUtils.getCardName(transaction); + const shouldShowCard = isCardTransaction && cardProgramName; const isApproved = ReportUtils.isReportApproved(moneyRequestReport); const isInvoice = ReportUtils.isInvoiceReport(moneyRequestReport); const isPaidReport = ReportActionsUtils.isPayAction(parentReportAction); @@ -601,7 +602,7 @@ function MoneyRequestView({ )} {shouldShowTag && tagList} - {isCardTransaction && ( + {shouldShowCard && ( Date: Tue, 20 Aug 2024 12:17:36 -0400 Subject: [PATCH 6/6] fix lint --- src/components/ReportActionItem/MoneyRequestView.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx index 096e6c7426adf..c36fb3cb15709 100644 --- a/src/components/ReportActionItem/MoneyRequestView.tsx +++ b/src/components/ReportActionItem/MoneyRequestView.tsx @@ -19,7 +19,6 @@ import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import useViolations from '@hooks/useViolations'; import type {ViolationField} from '@hooks/useViolations'; -import * as CardUtils from '@libs/CardUtils'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import type {MileageRate} from '@libs/DistanceRequestUtils'; import DistanceRequestUtils from '@libs/DistanceRequestUtils';