From be469361caf74ccca4321494b3088a3f032b3a93 Mon Sep 17 00:00:00 2001 From: neil-marcellini Date: Thu, 27 Mar 2025 09:25:20 -0700 Subject: [PATCH 1/3] Use optimistic customUnitID when sharing expense to policy --- .../CategorizeTrackedExpenseParams.ts | 1 + .../parameters/ShareTrackedExpenseParams.ts | 1 + src/libs/actions/IOU.ts | 18 +++++++++++++++++- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/libs/API/parameters/CategorizeTrackedExpenseParams.ts b/src/libs/API/parameters/CategorizeTrackedExpenseParams.ts index 96eb81324b81..37ff7b651441 100644 --- a/src/libs/API/parameters/CategorizeTrackedExpenseParams.ts +++ b/src/libs/API/parameters/CategorizeTrackedExpenseParams.ts @@ -21,6 +21,7 @@ type CategorizeTrackedExpenseParams = { taxAmount: number; billable?: boolean; waypoints?: string; + customUnitID?: string; customUnitRateID?: string; policyExpenseChatReportID?: string; policyExpenseCreatedReportActionID?: string; diff --git a/src/libs/API/parameters/ShareTrackedExpenseParams.ts b/src/libs/API/parameters/ShareTrackedExpenseParams.ts index 38f684de4a8c..4fd1ad3c27c4 100644 --- a/src/libs/API/parameters/ShareTrackedExpenseParams.ts +++ b/src/libs/API/parameters/ShareTrackedExpenseParams.ts @@ -21,6 +21,7 @@ type ShareTrackedExpenseParams = { taxAmount: number; billable?: boolean; waypoints?: string; + customUnitID?: string; customUnitRateID?: string; policyExpenseChatReportID?: string; policyExpenseCreatedReportActionID?: string; diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index 6518406c882d..706be774810a 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -59,7 +59,17 @@ import {getManagerMcTestParticipant, getPersonalDetailsForAccountIDs} from '@lib import {getCustomUnitID} from '@libs/PerDiemRequestUtils'; import {getAccountIDsByLogins} from '@libs/PersonalDetailsUtils'; import {addSMSDomainIfPhoneNumber} from '@libs/PhoneNumber'; -import {getPerDiemCustomUnit, getPolicy, getSubmitToAccountID, hasDependentTags, isControlPolicy, isPaidGroupPolicy, isPolicyAdmin, isSubmitAndClose} from '@libs/PolicyUtils'; +import { + getDistanceRateCustomUnit, + getPerDiemCustomUnit, + getPolicy, + getSubmitToAccountID, + hasDependentTags, + isControlPolicy, + isPaidGroupPolicy, + isPolicyAdmin, + isSubmitAndClose, +} from '@libs/PolicyUtils'; import { getAllReportActions, getIOUReportIDFromReportActionPreview, @@ -4489,6 +4499,7 @@ type ConvertTrackedWorkspaceParams = { policyID: string; receipt: Receipt | undefined; waypoints?: string; + customUnitID?: string; customUnitRateID?: string; }; @@ -4666,6 +4677,8 @@ function categorizeTrackedExpense(trackedExpenseParams: TrackedExpenseParams) { engagementChoice: createdWorkspaceParams?.engagementChoice, guidedSetupData: createdWorkspaceParams?.guidedSetupData, description: transactionParams.comment, + customUnitID: createdWorkspaceParams?.customUnitID, + customUnitRateID: createdWorkspaceParams?.customUnitRateID, }; API.write(WRITE_COMMANDS.CATEGORIZE_TRACKED_EXPENSE, parameters, {optimisticData, successData, failureData}); @@ -4728,6 +4741,8 @@ function shareTrackedExpense(trackedExpenseParams: TrackedExpenseParams) { guidedSetupData: createdWorkspaceParams?.guidedSetupData, policyName: createdWorkspaceParams?.policyName, description: transactionParams.comment, + customUnitID: createdWorkspaceParams?.customUnitID, + customUnitRateID: createdWorkspaceParams?.customUnitRateID, }; API.write(WRITE_COMMANDS.SHARE_TRACKED_EXPENSE, parameters, {optimisticData, successData, failureData}); @@ -4830,6 +4845,7 @@ function requestMoney(requestMoneyInformation: RequestMoneyInformation) { billable, policyID: chatReport.policyID, waypoints: sanitizedWaypoints, + customUnitID: getDistanceRateCustomUnit(policyParams?.policy)?.customUnitID, customUnitRateID, } : undefined; From 52fa74ad1d251e47de15e7ee65d56cfde23f9fe1 Mon Sep 17 00:00:00 2001 From: neil-marcellini Date: Fri, 9 May 2025 07:22:00 -0700 Subject: [PATCH 2/3] Use transaction rate if not from optimistic policy --- src/libs/actions/IOU.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index ffdaa9101749..80a5ba22d0e9 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -4875,7 +4875,7 @@ function categorizeTrackedExpense(trackedExpenseParams: TrackedExpenseParams) { guidedSetupData: createdWorkspaceParams?.guidedSetupData, description: transactionParams.comment, customUnitID: createdWorkspaceParams?.customUnitID, - customUnitRateID: createdWorkspaceParams?.customUnitRateID, + customUnitRateID: createdWorkspaceParams?.customUnitRateID ?? transactionParams.customUnitRateID, attendees: transactionParams.attendees ? JSON.stringify(transactionParams.attendees) : undefined, }; @@ -4980,7 +4980,7 @@ function shareTrackedExpense(trackedExpenseParams: TrackedExpenseParams) { policyName: createdWorkspaceParams?.policyName, description: transactionParams.comment, customUnitID: createdWorkspaceParams?.customUnitID, - customUnitRateID: createdWorkspaceParams?.customUnitRateID, + customUnitRateID: createdWorkspaceParams?.customUnitRateID ?? transactionParams.customUnitRateID, attendees: transactionParams.attendees ? JSON.stringify(transactionParams.attendees) : undefined, accountantEmail, }; From e2e7a0b7a811165f23d0cf6ab6cacdfcf3c93e5b Mon Sep 17 00:00:00 2001 From: neil-marcellini Date: Tue, 27 May 2025 12:25:34 -0700 Subject: [PATCH 3/3] Fix style --- src/libs/actions/IOU.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index a4587cb6e456..7e933e303646 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -63,8 +63,8 @@ import Permissions from '@libs/Permissions'; import {getAccountIDsByLogins} from '@libs/PersonalDetailsUtils'; import {addSMSDomainIfPhoneNumber} from '@libs/PhoneNumber'; import { - getDistanceRateCustomUnit, getCorrectedAutoReportingFrequency, + getDistanceRateCustomUnit, getMemberAccountIDsForWorkspace, getPerDiemCustomUnit, getPersonalPolicy,