From 8b2d261e48e71d3f4fb3d935ce4fc5678d1dd7e6 Mon Sep 17 00:00:00 2001 From: Joel Davies Date: Thu, 5 Mar 2026 15:18:21 +0100 Subject: [PATCH 1/5] fix: pass required params for odometer expenses --- src/libs/actions/IOU/Duplicate.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/libs/actions/IOU/Duplicate.ts b/src/libs/actions/IOU/Duplicate.ts index f4f14a0a496ec..c2a5816d61c51 100644 --- a/src/libs/actions/IOU/Duplicate.ts +++ b/src/libs/actions/IOU/Duplicate.ts @@ -18,7 +18,7 @@ import { buildTransactionThread, getTransactionDetails, } from '@libs/ReportUtils'; -import {getRequestType, getTransactionType, isDistanceRequest, isExpenseSplit} from '@libs/TransactionUtils'; +import {getRequestType, getTransactionType, isDistanceRequest, isExpenseSplit, isOdometerDistanceRequest} from '@libs/TransactionUtils'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import type * as OnyxTypes from '@src/types/onyx'; @@ -572,6 +572,8 @@ function duplicateExpenseTransaction({ merchant: transaction?.modifiedMerchant ? transaction.modifiedMerchant : (transaction?.merchant ?? ''), modifiedAmount: undefined, originalTransactionID: undefined, + odometerStart: transaction?.comment?.odometerStart ?? undefined, + odometerEnd: transaction?.comment?.odometerEnd ?? undefined, receipt: undefined, source: undefined, waypoints, @@ -595,8 +597,9 @@ function duplicateExpenseTransaction({ personalDetails, }; - // Since we remove waypoints for split distance expenses, we need to re-add the distance param here - if (isExpenseSplit(transaction) && isDistanceRequest(transaction)) { + // We remove waypoints for split distance expenses, so we have to re-add the distance param here. + // Odometer expenses don't have the distance parameter so we also need to pass it here. + if (isDistanceRequest(transaction) && (isExpenseSplit(transaction) || isOdometerDistanceRequest(transaction))) { params.transactionParams.distance = transaction.comment?.customUnit?.quantity ?? undefined; } From 8ff6d727508997ad9bcf216601351f83ecca4b35 Mon Sep 17 00:00:00 2001 From: Joel Davies Date: Tue, 10 Mar 2026 14:06:31 +0100 Subject: [PATCH 2/5] fix: duplicating split map distance expense should remain as a manual expense --- src/libs/actions/IOU/Duplicate.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/libs/actions/IOU/Duplicate.ts b/src/libs/actions/IOU/Duplicate.ts index c2a5816d61c51..90b2da7c07283 100644 --- a/src/libs/actions/IOU/Duplicate.ts +++ b/src/libs/actions/IOU/Duplicate.ts @@ -617,6 +617,7 @@ function duplicateExpenseTransaction({ ...transaction.comment, originalTransactionID: undefined, source: undefined, + waypoints, }, iouRequestType: getRequestType(transaction), modifiedCreated: '', @@ -659,6 +660,7 @@ function duplicateExpenseTransaction({ ...transaction.comment, originalTransactionID: undefined, source: undefined, + waypoints, }, iouRequestType: getRequestType(transaction), modifiedCreated: '', From 675eee36ae7dca775c9a3a8cc69e6c7a5816f90b Mon Sep 17 00:00:00 2001 From: Joel Davies Date: Thu, 12 Mar 2026 16:08:23 +0100 Subject: [PATCH 3/5] Merge branch 'main' into fix/duplicate-distance-expense-fixes From ddab4ee81d781cf3eafc9db2e0f5f71fe84f584e Mon Sep 17 00:00:00 2001 From: Joel Davies Date: Fri, 13 Mar 2026 16:56:38 +0100 Subject: [PATCH 4/5] fix: pass modifiedAmount when duplicating distance expenses --- src/libs/actions/IOU/Duplicate.ts | 1 + src/libs/actions/IOU/index.ts | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/libs/actions/IOU/Duplicate.ts b/src/libs/actions/IOU/Duplicate.ts index 62b50fae41a3d..bc2feddfbb4e8 100644 --- a/src/libs/actions/IOU/Duplicate.ts +++ b/src/libs/actions/IOU/Duplicate.ts @@ -663,6 +663,7 @@ function duplicateExpenseTransaction({ ...(params.transactionParams ?? {}), comment: Parser.htmlToMarkdown(transactionDetails?.comment ?? ''), validWaypoints: waypoints, + modifiedAmount: transactionDetails?.amount, }, policyRecentlyUsedCurrencies: policyRecentlyUsedCurrencies ?? [], quickAction, diff --git a/src/libs/actions/IOU/index.ts b/src/libs/actions/IOU/index.ts index ea24eab929f0f..fbfcc3f08e94a 100644 --- a/src/libs/actions/IOU/index.ts +++ b/src/libs/actions/IOU/index.ts @@ -7580,6 +7580,7 @@ function createDistanceRequest(distanceRequestInformation: CreateDistanceRequest taxAmount, taxCode, merchant, + modifiedAmount, billable, reimbursable, validWaypoints, @@ -7757,6 +7758,7 @@ function createDistanceRequest(distanceRequestInformation: CreateDistanceRequest } parameters = { + amount: modifiedAmount ?? undefined, comment, iouReportID: iouReport.reportID, chatReportID: chatReport.reportID, From b55595cd861f4d35f5371f2a7fbb9f3cb1f86ed4 Mon Sep 17 00:00:00 2001 From: Joel Davies Date: Fri, 13 Mar 2026 17:00:06 +0100 Subject: [PATCH 5/5] fix: ts error --- src/libs/API/parameters/CreateDistanceRequestParams.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libs/API/parameters/CreateDistanceRequestParams.ts b/src/libs/API/parameters/CreateDistanceRequestParams.ts index 6093b33807a21..a6edf31445f6f 100644 --- a/src/libs/API/parameters/CreateDistanceRequestParams.ts +++ b/src/libs/API/parameters/CreateDistanceRequestParams.ts @@ -12,6 +12,7 @@ type CreateDistanceRequestParams = { iouReportID?: string; createdIOUReportActionID?: string; reportPreviewReportActionID?: string; + amount?: number; category?: string; receipt?: Receipt; tag?: string;