Skip to content

Commit

Permalink
Update Transaction.ts
Browse files Browse the repository at this point in the history
  • Loading branch information
Tony-MK authored Jan 15, 2025
1 parent acbd01e commit aeff354
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/libs/actions/Transaction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import type {PersonalDetails, RecentWaypoint, ReportAction, ReportActions, Revie
import type {OnyxData} from '@src/types/onyx/Request';
import type {WaypointCollection} from '@src/types/onyx/Transaction';
import type TransactionState from '@src/types/utils/TransactionStateType';
import { OriginalMessageModifiedExpense } from '@src/types/onyx/OriginalMessage';

let recentWaypoints: RecentWaypoint[] = [];
Onyx.connect({
Expand Down Expand Up @@ -461,6 +462,23 @@ function clearError(transactionID: string, oldTransactionValues: Partial<Transac
Onyx.merge(`${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`, {...oldTransactionValues, errors: null, errorFields: {route: null, waypoints: null, routes: null}});
}

function getLastModifiedExpense(reportID?: string) :OriginalMessageModifiedExpense | null {
const modifiedExpenseActions = Object.values(ReportActionsUtils.getAllReportActions(reportID)).filter(ReportActionsUtils.isModifiedExpenseAction);
modifiedExpenseActions.sort((a, b) => Number(a.reportActionID) - Number(b.reportActionID));
return modifiedExpenseActions.length ? ReportActionsUtils.getOriginalMessage(modifiedExpenseActions.at(-1)) as OriginalMessageModifiedExpense : null
}

function revert(transactionID?: string, originalMessage?: OriginalMessageModifiedExpense | null){
const transaction = TransactionUtils.getTransaction(transactionID);

if (transaction && originalMessage && originalMessage.oldAmount && originalMessage.oldCurrency && 'amount' in originalMessage && 'currency' in originalMessage){
clearError(transaction.transactionID, {
modifiedAmount: transaction?.amount && transaction?.amount < 0 ? -Math.abs(originalMessage.oldAmount) : originalMessage.oldAmount,
modifiedCurrency: originalMessage.oldCurrency,
});
}
}

function markAsCash(transactionID: string, transactionThreadReportID: string) {
const optimisticReportAction = buildOptimisticDismissedViolationReportAction({
reason: 'manual',
Expand Down Expand Up @@ -553,4 +571,6 @@ export {
sanitizeRecentWaypoints,
getAllTransactionViolationsLength,
getAllTransactions,
getLastModifiedExpense,
revert,
};

0 comments on commit aeff354

Please sign in to comment.