From 0ed2d815119bce990f1f99f228a67b0c98f63082 Mon Sep 17 00:00:00 2001 From: Nicolay Arefyeu Date: Fri, 10 Jan 2025 11:39:44 +0200 Subject: [PATCH 1/6] Fix distance amount changes after submitting track distance expense with description --- .../parameters/CategorizeTrackedExpenseParams.ts | 2 ++ .../API/parameters/ShareTrackedExpenseParams.ts | 2 ++ src/libs/actions/IOU.ts | 14 +++++++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/libs/API/parameters/CategorizeTrackedExpenseParams.ts b/src/libs/API/parameters/CategorizeTrackedExpenseParams.ts index 78eb0adecc5e3..d999f96fb505e 100644 --- a/src/libs/API/parameters/CategorizeTrackedExpenseParams.ts +++ b/src/libs/API/parameters/CategorizeTrackedExpenseParams.ts @@ -20,6 +20,8 @@ type CategorizeTrackedExpenseParams = { taxCode: string; taxAmount: number; billable?: boolean; + waypoints?: string; + customUnitRateID?: string; }; export default CategorizeTrackedExpenseParams; diff --git a/src/libs/API/parameters/ShareTrackedExpenseParams.ts b/src/libs/API/parameters/ShareTrackedExpenseParams.ts index cee4bc40d9ac6..c89c0d400e72d 100644 --- a/src/libs/API/parameters/ShareTrackedExpenseParams.ts +++ b/src/libs/API/parameters/ShareTrackedExpenseParams.ts @@ -20,6 +20,8 @@ type ShareTrackedExpenseParams = { taxCode: string; taxAmount: number; billable?: boolean; + customUnitRateID?: string; + waypoints?: string; }; export default ShareTrackedExpenseParams; diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index ee49b1c8e8032..c83971af835be 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -127,6 +127,8 @@ type CategorizeTrackedExpenseTransactionParams = { tag?: string; billable?: boolean; receipt?: Receipt; + waypoints?: string; + customUnitRateID?: string; }; type CategorizeTrackedExpensePolicyParams = { policyID: string; @@ -3856,6 +3858,8 @@ function shareTrackedExpense( billable?: boolean, receipt?: Receipt, createdWorkspaceParams?: CreateWorkspaceParams, + waypoints?: string, + customUnitRateID?: string, ) { const {optimisticData, successData, failureData} = onyxData ?? {}; @@ -3902,6 +3906,8 @@ function shareTrackedExpense( policyExpenseCreatedReportActionID: createdWorkspaceParams?.expenseCreatedReportActionID, adminsChatReportID: createdWorkspaceParams?.adminsChatReportID, adminsCreatedReportActionID: createdWorkspaceParams?.adminsCreatedReportActionID, + waypoints, + customUnitRateID, }; API.write(WRITE_COMMANDS.SHARE_TRACKED_EXPENSE, parameters, {optimisticData, successData, failureData}); @@ -4184,6 +4190,8 @@ function trackExpense( value: recentServerValidatedWaypoints, }); + const waypoints = validWaypoints ? JSON.stringify(sanitizeRecentWaypoints(validWaypoints)) : undefined; + switch (action) { case CONST.IOU.ACTION.CATEGORIZE: { if (!linkedTrackedExpenseReportAction || !actionableWhisperReportActionID || !linkedTrackedExpenseReportID) { @@ -4202,6 +4210,8 @@ function trackExpense( tag, billable, receipt: trackedReceipt, + waypoints, + customUnitRateID, }; const policyParams = { policyID: chatReport?.policyID ?? '-1', @@ -4256,6 +4266,8 @@ function trackExpense( billable, trackedReceipt, createdWorkspaceParams, + waypoints, + customUnitRateID, ); break; } @@ -4284,8 +4296,8 @@ function trackExpense( receiptGpsPoints: gpsPoints ? JSON.stringify(gpsPoints) : undefined, transactionThreadReportID: transactionThreadReportID ?? '-1', createdReportActionIDForThread: createdReportActionIDForThread ?? '-1', - waypoints: validWaypoints ? JSON.stringify(sanitizeRecentWaypoints(validWaypoints)) : undefined, customUnitRateID, + waypoints, }; if (actionableWhisperReportActionIDParam) { parameters.actionableWhisperReportActionID = actionableWhisperReportActionIDParam; From 1ca4e2dc2ff4a97a3ff2b6a066a43a753836f8ff Mon Sep 17 00:00:00 2001 From: Nicolay Arefyeu Date: Tue, 21 Jan 2025 15:49:21 +0200 Subject: [PATCH 2/6] prevent to send mock id for customUnitRateID --- src/libs/actions/IOU.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index a18c3f57b67ef..3b68f4aecbf2e 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -142,6 +142,7 @@ import { getTransaction, getUpdatedTransaction, hasReceipt as hasReceiptTransactionUtils, + isCustomUnitRateIDForP2P, isDistanceRequest as isDistanceRequestTransactionUtils, isFetchingWaypointsFromServer, isOnHold, @@ -4597,6 +4598,7 @@ function trackExpense( }); const waypoints = validWaypoints ? JSON.stringify(sanitizeRecentWaypoints(validWaypoints)) : undefined; + const mileageRate = isCustomUnitRateIDForP2P(transaction) ? '' : customUnitRateID; switch (action) { case CONST.IOU.ACTION.CATEGORIZE: { @@ -4617,7 +4619,7 @@ function trackExpense( billable, receipt: trackedReceipt instanceof Blob ? trackedReceipt : undefined, waypoints, - customUnitRateID, + customUnitRateID: mileageRate, }; const policyParams: CategorizeTrackedExpensePolicyParams = { policyID: chatReport?.policyID ?? '-1', @@ -4673,7 +4675,7 @@ function trackExpense( trackedReceipt, createdWorkspaceParams, waypoints, - customUnitRateID, + mileageRate, ); break; } From 85ed3805cbc7f8c41d1242f04ceec841c1902da9 Mon Sep 17 00:00:00 2001 From: Nicolay Arefyeu Date: Wed, 22 Jan 2025 10:03:36 +0200 Subject: [PATCH 3/6] resolve conflicts --- src/libs/actions/IOU.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index 94bf2439bf9b0..14d388e775908 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -4640,6 +4640,8 @@ function trackExpense( tag, billable, receipt: trackedReceipt instanceof Blob ? trackedReceipt : undefined, + waypoints, + customUnitRateID: mileageRate, }; const policyParams = { policyID: chatReport?.policyID ?? '-1', From 96dc1a29830b77eea0b426e7b795089f146b1472 Mon Sep 17 00:00:00 2001 From: Nicolay Arefyeu Date: Wed, 22 Jan 2025 10:04:40 +0200 Subject: [PATCH 4/6] fix errors --- src/libs/actions/IOU.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index 14d388e775908..1cba3c5168efd 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -4215,8 +4215,6 @@ function shareTrackedExpense(trackedExpenseParams: TrackedExpenseParams) { policyExpenseCreatedReportActionID: createdWorkspaceParams?.expenseCreatedReportActionID, adminsChatReportID: createdWorkspaceParams?.adminsChatReportID, adminsCreatedReportActionID: createdWorkspaceParams?.adminsCreatedReportActionID, - waypoints, - customUnitRateID, }; API.write(WRITE_COMMANDS.SHARE_TRACKED_EXPENSE, parameters, {optimisticData, successData, failureData}); From 5421fd1d1fb66ad08d032c63716dbc93dcaa5753 Mon Sep 17 00:00:00 2001 From: Nicolay Arefyeu Date: Wed, 22 Jan 2025 10:40:53 +0200 Subject: [PATCH 5/6] fix ts --- src/libs/actions/IOU.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index 9cfe14cf52517..97ae43033d256 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -4590,7 +4590,7 @@ function trackExpense( }); const waypoints = validWaypoints ? JSON.stringify(sanitizeRecentWaypoints(validWaypoints)) : undefined; - const mileageRate = isCustomUnitRateIDForP2P(transaction) ? '' : customUnitRateID; + const mileageRate = isCustomUnitRateIDForP2P(transaction) ? undefined : customUnitRateID; switch (action) { case CONST.IOU.ACTION.CATEGORIZE: { @@ -4708,7 +4708,6 @@ function trackExpense( createdReportActionIDForThread, waypoints: validWaypoints ? JSON.stringify(sanitizeRecentWaypoints(validWaypoints)) : undefined, customUnitRateID, - waypoints, }; if (actionableWhisperReportActionIDParam) { parameters.actionableWhisperReportActionID = actionableWhisperReportActionIDParam; From 5f4e09a88b02bf846e59815203434405084abf10 Mon Sep 17 00:00:00 2001 From: Nicolay Arefyeu Date: Fri, 24 Jan 2025 16:59:35 +0200 Subject: [PATCH 6/6] fix ts --- src/libs/API/parameters/ShareTrackedExpenseParams.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/libs/API/parameters/ShareTrackedExpenseParams.ts b/src/libs/API/parameters/ShareTrackedExpenseParams.ts index 09421868517f2..5dc40efda4339 100644 --- a/src/libs/API/parameters/ShareTrackedExpenseParams.ts +++ b/src/libs/API/parameters/ShareTrackedExpenseParams.ts @@ -20,8 +20,6 @@ type ShareTrackedExpenseParams = { taxCode: string; taxAmount: number; billable?: boolean; - waypoints?: string; - customUnitRateID?: string; policyExpenseChatReportID?: string; policyExpenseCreatedReportActionID?: string; adminsChatReportID?: string;