Skip to content

Commit c3b8629

Browse files
Merge pull request #43346 from nkdengineer/fix/42120
fix: Dismissing the error for corrupted PDF scan request does not delete the expense
2 parents d80d267 + 3d724a6 commit c3b8629

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

src/components/ReportActionItem/MoneyRequestView.tsx

+17-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import * as CardUtils from '@libs/CardUtils';
2323
import * as CurrencyUtils from '@libs/CurrencyUtils';
2424
import type {MileageRate} from '@libs/DistanceRequestUtils';
2525
import DistanceRequestUtils from '@libs/DistanceRequestUtils';
26+
import * as ErrorUtils from '@libs/ErrorUtils';
2627
import * as OptionsListUtils from '@libs/OptionsListUtils';
2728
import * as PolicyUtils from '@libs/PolicyUtils';
2829
import {isTaxTrackingEnabled} from '@libs/PolicyUtils';
@@ -84,6 +85,18 @@ type MoneyRequestViewPropsWithoutTransaction = MoneyRequestViewOnyxPropsWithoutT
8485

8586
type MoneyRequestViewProps = MoneyRequestViewTransactionOnyxProps & MoneyRequestViewPropsWithoutTransaction;
8687

88+
const deleteTransaction = (parentReport: OnyxEntry<OnyxTypes.Report>, parentReportAction: OnyxEntry<OnyxTypes.ReportAction>) => {
89+
if (!parentReportAction) {
90+
return;
91+
}
92+
const iouTransactionID = ReportActionsUtils.isMoneyRequestAction(parentReportAction) ? ReportActionsUtils.getOriginalMessage(parentReportAction)?.IOUTransactionID ?? '-1' : '-1';
93+
if (ReportActionsUtils.isTrackExpenseAction(parentReportAction)) {
94+
IOU.deleteTrackExpense(parentReport?.reportID ?? '-1', iouTransactionID, parentReportAction, true);
95+
return;
96+
}
97+
IOU.deleteMoneyRequest(iouTransactionID, parentReportAction, true);
98+
};
99+
87100
function MoneyRequestView({
88101
report,
89102
parentReport,
@@ -103,7 +116,7 @@ function MoneyRequestView({
103116
const {translate, toLocaleDigit} = useLocalize();
104117
const [activePolicyID] = useOnyx(ONYXKEYS.NVP_ACTIVE_POLICY_ID);
105118

106-
const parentReportAction = parentReportActions?.[report.parentReportActionID ?? '-1'] ?? null;
119+
const parentReportAction = parentReportActions?.[report.parentReportActionID ?? '-1'];
107120
const isTrackExpense = ReportUtils.isTrackExpenseReport(report);
108121
const {canUseViolations, canUseP2PDistanceRequests} = usePermissions(isTrackExpense ? CONST.IOU.TYPE.TRACK : undefined);
109122
const moneyRequestReport = parentReport;
@@ -391,6 +404,9 @@ function MoneyRequestView({
391404
if (!transaction?.transactionID) {
392405
return;
393406
}
407+
if (Object.values(transaction?.errors ?? {})?.find((error) => ErrorUtils.isReceiptError(error))) {
408+
deleteTransaction(parentReport, parentReportAction);
409+
}
394410
Transaction.clearError(transaction.transactionID);
395411
ReportActions.clearAllRelatedReportActionErrors(report.reportID, parentReportAction);
396412
}}

0 commit comments

Comments
 (0)