From 4f08814df0f06ec405ef20bae2cb7108fb0ffa1a Mon Sep 17 00:00:00 2001 From: "Alberto Gonzalez-Cela (via MelvinBot)" Date: Mon, 9 Mar 2026 13:37:37 +0000 Subject: [PATCH 1/3] Use isManagedCardTransaction instead of isFromCreditCardImport for reimbursable toggle visibility The Reimbursable toggle was hidden for personal card transactions because isFromCreditCardImport returns true for both managed and personal cards. Switching to isManagedCardTransaction ensures the toggle is only hidden for managed/company card transactions while remaining visible for personal card imports. Co-authored-by: Alberto Gonzalez-Cela --- src/components/ReportActionItem/MoneyRequestView.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx index 2a41e3f3af599..e5c88ae09e691 100644 --- a/src/components/ReportActionItem/MoneyRequestView.tsx +++ b/src/components/ReportActionItem/MoneyRequestView.tsx @@ -92,7 +92,7 @@ import { hasMissingSmartscanFields, hasReservationList, hasRoute as hasRouteTransactionUtils, - isFromCreditCardImport as isCardTransactionTransactionUtils, + isManagedCardTransaction as isManagedCardTransactionTransactionUtils, isCategoryBeingAnalyzed, isCustomUnitRateIDForP2P, isDistanceRequest as isDistanceRequestTransactionUtils, @@ -297,7 +297,7 @@ function MoneyRequestView({ const transactionOriginalAmount = transaction && getOriginalAmountForDisplay(transaction, isExpenseReport(moneyRequestReport)); const formattedOriginalAmount = transactionOriginalAmount && transactionOriginalCurrency && convertToDisplayString(transactionOriginalAmount, transactionOriginalCurrency); - const isManagedCardTransaction = isCardTransactionTransactionUtils(transaction); + const isManagedCardTransaction = isManagedCardTransactionTransactionUtils(transaction); const cardProgramName = getCompanyCardDescription(transaction?.cardName, transaction?.cardID, nonPersonalAndWorkspaceCards); const shouldShowCard = isManagedCardTransaction && cardProgramName; From d482b229a22c051071e1291a1d95acb2b4dfe494 Mon Sep 17 00:00:00 2001 From: "Alberto Gonzalez-Cela (via MelvinBot)" Date: Mon, 9 Mar 2026 13:41:40 +0000 Subject: [PATCH 2/3] Fix: sort isManagedCardTransaction import alphabetically for Prettier Co-authored-by: Alberto Gonzalez-Cela --- src/components/ReportActionItem/MoneyRequestView.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx index e5c88ae09e691..6e0a6623a1ed1 100644 --- a/src/components/ReportActionItem/MoneyRequestView.tsx +++ b/src/components/ReportActionItem/MoneyRequestView.tsx @@ -92,13 +92,13 @@ import { hasMissingSmartscanFields, hasReservationList, hasRoute as hasRouteTransactionUtils, - isManagedCardTransaction as isManagedCardTransactionTransactionUtils, isCategoryBeingAnalyzed, isCustomUnitRateIDForP2P, isDistanceRequest as isDistanceRequestTransactionUtils, isDistanceTypeRequest, isExpenseUnreported as isExpenseUnreportedTransactionUtils, isGPSDistanceRequest as isGPSDistanceRequestTransactionUtils, + isManagedCardTransaction as isManagedCardTransactionTransactionUtils, isManualDistanceRequest as isManualDistanceRequestTransactionUtils, isMapDistanceRequest as isMapDistanceRequestTransactionUtils, isOdometerDistanceRequest as isOdometerDistanceRequestTransactionUtils, From a7f92fa847ab999ffd1f3cd7009c9c551dcaf9be Mon Sep 17 00:00:00 2001 From: "Abdelrahman Khattab (via MelvinBot)" Date: Fri, 13 Mar 2026 03:47:39 +0000 Subject: [PATCH 3/3] Refine reimbursable toggle fix to only change shouldShowReimbursable The previous approach replaced isFromCreditCardImport with isManagedCardTransaction for ALL usages, which unintentionally changed the behavior of shouldShowCard, shouldShowConvertedAmount, and the posted date/original amount display. This commit takes a more surgical approach: - Renames local variable to isFromCardImport (uses broad isFromCreditCardImport) - Only shouldShowReimbursable uses the narrow isManagedCardTransaction check - Card name, converted amount, and posted date continue using isFromCardImport Co-authored-by: Abdelrahman Khattab --- src/components/ReportActionItem/MoneyRequestView.tsx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx index 6e0a6623a1ed1..15746dbd3a26f 100644 --- a/src/components/ReportActionItem/MoneyRequestView.tsx +++ b/src/components/ReportActionItem/MoneyRequestView.tsx @@ -92,6 +92,7 @@ import { hasMissingSmartscanFields, hasReservationList, hasRoute as hasRouteTransactionUtils, + isFromCreditCardImport as isCardTransactionTransactionUtils, isCategoryBeingAnalyzed, isCustomUnitRateIDForP2P, isDistanceRequest as isDistanceRequestTransactionUtils, @@ -297,9 +298,9 @@ function MoneyRequestView({ const transactionOriginalAmount = transaction && getOriginalAmountForDisplay(transaction, isExpenseReport(moneyRequestReport)); const formattedOriginalAmount = transactionOriginalAmount && transactionOriginalCurrency && convertToDisplayString(transactionOriginalAmount, transactionOriginalCurrency); - const isManagedCardTransaction = isManagedCardTransactionTransactionUtils(transaction); + const isFromCardImport = isCardTransactionTransactionUtils(transaction); const cardProgramName = getCompanyCardDescription(transaction?.cardName, transaction?.cardID, nonPersonalAndWorkspaceCards); - const shouldShowCard = isManagedCardTransaction && cardProgramName; + const shouldShowCard = isFromCardImport && cardProgramName; const taxRates = policy?.taxRates; const formattedTaxAmount = updatedTransaction?.taxAmount @@ -396,7 +397,7 @@ function MoneyRequestView({ const shouldShowReimbursable = (isPolicyExpenseChat || (isExpenseUnreported && !!policy)) && (policy?.disabledFields?.reimbursable !== true || isCurrentTransactionReimbursableDifferentFromPolicyDefault) && - !isManagedCardTransaction && + !isManagedCardTransactionTransactionUtils(transaction) && !isInvoice; const canEditReimbursable = isEditable && @@ -439,7 +440,7 @@ function MoneyRequestView({ const shouldShowConvertedAmount = transactionConvertedAmount && currency !== moneyRequestReport?.currency && - !isManagedCardTransaction && + !isFromCardImport && transaction?.reportID !== CONST.REPORT.UNREPORTED_REPORT_ID && !isFromMergeTransaction && !isFromReviewDuplicates && @@ -486,7 +487,7 @@ function MoneyRequestView({ }); }; - if (isManagedCardTransaction) { + if (isFromCardImport) { if (transactionPostedDate) { dateDescription += ` ${CONST.DOT_SEPARATOR} ${translate('iou.posted')} ${transactionPostedDate}`; }