diff --git a/src/libs/actions/Transaction.ts b/src/libs/actions/Transaction.ts index fbcb6e4df81c..3c5096f31f49 100644 --- a/src/libs/actions/Transaction.ts +++ b/src/libs/actions/Transaction.ts @@ -19,7 +19,7 @@ import { buildOptimisticUnreportedTransactionAction, buildTransactionThread, } from '@libs/ReportUtils'; -import {getAmount, getTransaction, waypointHasValidAddress} from '@libs/TransactionUtils'; +import {getAmount, waypointHasValidAddress} from '@libs/TransactionUtils'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import type {PersonalDetails, RecentWaypoint, Report, ReportAction, ReviewDuplicates, Transaction, TransactionViolation, TransactionViolations} from '@src/types/onyx'; @@ -498,7 +498,7 @@ function getLastModifiedExpense(reportID?: string): OriginalMessageModifiedExpen } function revert(transactionID?: string, originalMessage?: OriginalMessageModifiedExpense | undefined) { - const transaction = getTransaction(transactionID); + const transaction = allTransactions?.[`${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`] ?? ({} as Transaction); if (transaction && originalMessage?.oldAmount && originalMessage.oldCurrency && 'amount' in originalMessage && 'currency' in originalMessage) { Onyx.merge(`${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`, { @@ -611,12 +611,16 @@ function changeTransactionsReport(transactionIDs: string[], reportID: string) { const failureData: OnyxUpdate[] = []; const successData: OnyxUpdate[] = []; + let transactionsMoved = false; + transactions.forEach((transaction) => { const oldIOUAction = getIOUActionForReportID(transaction.reportID, transaction.transactionID); - if (!transaction.reportID) { + if (!transaction.reportID || transaction.reportID === reportID) { return; } + transactionsMoved = true; + const oldReportID = transaction.reportID; const oldReport = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${oldReportID}`]; @@ -833,6 +837,10 @@ function changeTransactionsReport(transactionIDs: string[], reportID: string) { }; }); + if (!transactionsMoved) { + return; + } + // 7. Update the report totals Object.entries(updatedReportTotals).forEach(([reportIDToUpdate, total]) => { optimisticData.push({