From 44c31ae8c4217ed053a8aa1e5150568196388d13 Mon Sep 17 00:00:00 2001 From: Hans Date: Fri, 21 Nov 2025 13:49:10 +0700 Subject: [PATCH 01/14] enable GR currencies for wallet payment --- src/components/SettlementButton/index.tsx | 4 ++-- src/libs/actions/Search.ts | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/components/SettlementButton/index.tsx b/src/components/SettlementButton/index.tsx index 83d51cacb11e9..a0d025c3a159a 100644 --- a/src/components/SettlementButton/index.tsx +++ b/src/components/SettlementButton/index.tsx @@ -18,7 +18,7 @@ import useOnyx from '@hooks/useOnyx'; import usePermissions from '@hooks/usePermissions'; import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; -import {isCurrencySupportedForDirectReimbursement} from '@libs/actions/Policy/Policy'; +import {isCurrencySupportedForDirectReimbursement, isCurrencySupportedForGlobalReimbursement} from '@libs/actions/Policy/Policy'; import {getLastPolicyBankAccountID, getLastPolicyPaymentMethod} from '@libs/actions/Search'; import Navigation from '@libs/Navigation/Navigation'; import {formatPaymentMethods, getActivePaymentType} from '@libs/PaymentUtils'; @@ -243,7 +243,7 @@ function SettlementButton({ disabled: !!shouldDisableApproveButton, }; - const canUseWallet = !isExpenseReport && !isInvoiceReport && currency === CONST.CURRENCY.USD; + const canUseWallet = !isExpenseReport && !isInvoiceReport && isCurrencySupportedForGlobalReimbursement(currency as TupleToUnion, true); const canUseBusinessBankAccount = isExpenseReport || (isIOUReport(iouReport) && reportID && !hasRequestFromCurrentAccount(reportID, accountID ?? CONST.DEFAULT_NUMBER_ID)); const canUsePersonalBankAccount = shouldShowPersonalBankAccountOption || isIOUReport(iouReport); diff --git a/src/libs/actions/Search.ts b/src/libs/actions/Search.ts index a954a55804e50..d4434311e017f 100644 --- a/src/libs/actions/Search.ts +++ b/src/libs/actions/Search.ts @@ -1,7 +1,7 @@ import isEmpty from 'lodash/isEmpty'; import Onyx from 'react-native-onyx'; import type {OnyxCollection, OnyxEntry, OnyxUpdate} from 'react-native-onyx'; -import type {ValueOf} from 'type-fest'; +import type {TupleToUnion, ValueOf} from 'type-fest'; import type {FormOnyxValues} from '@components/Form/types'; import type {ContinueActionParams, PaymentMethod, PaymentMethodType} from '@components/KYCWall/types'; import type {LocalizedTranslate} from '@components/LocaleContextProvider'; @@ -49,6 +49,7 @@ import type SearchResults from '@src/types/onyx/SearchResults'; import type Nullable from '@src/types/utils/Nullable'; import SafeString from '@src/utils/SafeString'; import {setPersonalBankAccountContinueKYCOnSuccess} from './BankAccounts'; +import {isCurrencySupportedForGlobalReimbursement} from './Policy/Policy'; import {setOptimisticTransactionThread} from './Report'; import {saveLastSearchParams} from './ReportNavigation'; @@ -1068,8 +1069,10 @@ function handleBulkPayItemSelected( */ function isCurrencySupportWalletBulkPay(selectedReports: SelectedReports[], selectedTransactions: SelectedTransactions) { return selectedReports?.length > 0 - ? Object.values(selectedReports).every((report) => report?.currency === CONST.CURRENCY.USD) - : Object.values(selectedTransactions).every((transaction) => transaction.currency === CONST.CURRENCY.USD); + ? Object.values(selectedReports).every((report) => isCurrencySupportedForGlobalReimbursement(report?.currency as TupleToUnion, true)) + : Object.values(selectedTransactions).every((transaction) => + isCurrencySupportedForGlobalReimbursement(transaction.currency as TupleToUnion, true), + ); } /** From d7e689de01b1656523e24b61b0dce2adfe36cd6a Mon Sep 17 00:00:00 2001 From: Hans Date: Fri, 21 Nov 2025 14:04:10 +0700 Subject: [PATCH 02/14] update few other places --- src/components/SettlementButton/index.tsx | 4 ++-- src/hooks/useBulkPayOptions.ts | 6 ++---- src/hooks/usePaymentOptions.ts | 8 +++----- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/components/SettlementButton/index.tsx b/src/components/SettlementButton/index.tsx index a0d025c3a159a..307e596a2e428 100644 --- a/src/components/SettlementButton/index.tsx +++ b/src/components/SettlementButton/index.tsx @@ -18,7 +18,7 @@ import useOnyx from '@hooks/useOnyx'; import usePermissions from '@hooks/usePermissions'; import usePolicy from '@hooks/usePolicy'; import useThemeStyles from '@hooks/useThemeStyles'; -import {isCurrencySupportedForDirectReimbursement, isCurrencySupportedForGlobalReimbursement} from '@libs/actions/Policy/Policy'; +import {isCurrencySupportedForGlobalReimbursement} from '@libs/actions/Policy/Policy'; import {getLastPolicyBankAccountID, getLastPolicyPaymentMethod} from '@libs/actions/Search'; import Navigation from '@libs/Navigation/Navigation'; import {formatPaymentMethods, getActivePaymentType} from '@libs/PaymentUtils'; @@ -314,7 +314,7 @@ function SettlementButton({ } if (isInvoiceReport) { - const isCurrencySupported = isCurrencySupportedForDirectReimbursement(currency as CurrencyType); + const isCurrencySupported = isCurrencySupportedForGlobalReimbursement(currency as TupleToUnion, true); const getInvoicesOptions = (payAsBusiness: boolean) => { const addBankAccountItem = { text: translate('bankAccount.addBankAccount'), diff --git a/src/hooks/useBulkPayOptions.ts b/src/hooks/useBulkPayOptions.ts index 5c9d0de7a978a..6e7d294740d83 100644 --- a/src/hooks/useBulkPayOptions.ts +++ b/src/hooks/useBulkPayOptions.ts @@ -4,7 +4,7 @@ import type {TupleToUnion} from 'type-fest'; import {Bank, Building, Cash, User, Wallet} from '@components/Icon/Expensicons'; import type {PopoverMenuItem} from '@components/PopoverMenu'; import type {BankAccountMenuItem} from '@components/Search/types'; -import {isCurrencySupportedForDirectReimbursement} from '@libs/actions/Policy/Policy'; +import {isCurrencySupportedForGlobalReimbursement} from '@libs/actions/Policy/Policy'; import Navigation from '@libs/Navigation/Navigation'; import {formatPaymentMethods} from '@libs/PaymentUtils'; import {hasRequestFromCurrentAccount} from '@libs/ReportActionsUtils'; @@ -25,8 +25,6 @@ import useOnyx from './useOnyx'; import usePolicy from './usePolicy'; import useThemeStyles from './useThemeStyles'; -type CurrencyType = TupleToUnion; - type UseBulkPayOptionProps = { selectedPolicyID: string | undefined; selectedReportID: string | undefined; @@ -171,7 +169,7 @@ function useBulkPayOptions({ } if (isInvoiceReport) { - const isCurrencySupported = isCurrencySupportedForDirectReimbursement(currency as CurrencyType); + const isCurrencySupported = isCurrencySupportedForGlobalReimbursement(currency as TupleToUnion, true); const getInvoicesOptions = (payAsBusiness: boolean) => { const addBankAccountItem = { text: translate('bankAccount.addBankAccount'), diff --git a/src/hooks/usePaymentOptions.ts b/src/hooks/usePaymentOptions.ts index ca9a3edbc9114..dedaf9221a438 100644 --- a/src/hooks/usePaymentOptions.ts +++ b/src/hooks/usePaymentOptions.ts @@ -14,7 +14,7 @@ import { isInvoiceReport as isInvoiceReportUtil, } from '@libs/ReportUtils'; import Navigation from '@navigation/Navigation'; -import {isCurrencySupportedForDirectReimbursement} from '@userActions/Policy/Policy'; +import {isCurrencySupportedForGlobalReimbursement} from '@userActions/Policy/Policy'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import type {BankAccountList, FundList, LastPaymentMethod} from '@src/types/onyx'; @@ -26,8 +26,6 @@ import useOnyx from './useOnyx'; import usePolicy from './usePolicy'; import useThemeStyles from './useThemeStyles'; -type CurrencyType = TupleToUnion; - type UsePaymentOptionsProps = Pick< SettlementButtonProps, | 'currency' @@ -136,7 +134,7 @@ function usePaymentOptions({ value: CONST.IOU.REPORT_ACTION_TYPE.APPROVE, disabled: !!shouldDisableApproveButton, }; - const canUseWallet = !isExpenseReport && !isInvoiceReport && currency === CONST.CURRENCY.USD; + const canUseWallet = !isExpenseReport && !isInvoiceReport && isCurrencySupportedForGlobalReimbursement(currency as TupleToUnion, true); // Only show the Approve button if the user cannot pay the expense if (shouldHidePaymentOptions && shouldShowApproveButton) { @@ -160,7 +158,7 @@ function usePaymentOptions({ if (isInvoiceReport) { const formattedPaymentMethods = formatPaymentMethods(bankAccountList, fundList, styles, translate); - const isCurrencySupported = isCurrencySupportedForDirectReimbursement(currency as CurrencyType); + const isCurrencySupported = isCurrencySupportedForGlobalReimbursement(currency as TupleToUnion, true); const getPaymentSubitems = (payAsBusiness: boolean) => formattedPaymentMethods.map((formattedPaymentMethod) => ({ text: formattedPaymentMethod?.title ?? '', From ec393b82c5b83a7215f3212731c555f7a02d8a32 Mon Sep 17 00:00:00 2001 From: Hans Date: Fri, 21 Nov 2025 14:06:55 +0700 Subject: [PATCH 03/14] linting --- src/components/SettlementButton/index.tsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/SettlementButton/index.tsx b/src/components/SettlementButton/index.tsx index 307e596a2e428..f4b4dc4e16e60 100644 --- a/src/components/SettlementButton/index.tsx +++ b/src/components/SettlementButton/index.tsx @@ -51,8 +51,6 @@ type KYCFlowEvent = GestureResponderEvent | KeyboardEvent | undefined; type TriggerKYCFlow = (params: ContinueActionParams) => void; -type CurrencyType = TupleToUnion; - function SettlementButton({ addDebitCardRoute = ROUTES.IOU_SEND_ADD_DEBIT_CARD, kycWallAnchorAlignment = { From b320b7c3a7f9995231e50ddcd804d2698459d2fc Mon Sep 17 00:00:00 2001 From: Hans Date: Fri, 21 Nov 2025 16:27:48 +0700 Subject: [PATCH 04/14] use CurrencyType directly --- src/components/SettlementButton/index.tsx | 5 +++-- src/hooks/useBulkPayOptions.ts | 4 +++- src/hooks/usePaymentOptions.ts | 6 ++++-- src/libs/actions/Search.ts | 8 ++++---- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/components/SettlementButton/index.tsx b/src/components/SettlementButton/index.tsx index f4b4dc4e16e60..00ee81db060c1 100644 --- a/src/components/SettlementButton/index.tsx +++ b/src/components/SettlementButton/index.tsx @@ -51,6 +51,7 @@ type KYCFlowEvent = GestureResponderEvent | KeyboardEvent | undefined; type TriggerKYCFlow = (params: ContinueActionParams) => void; +type CurrencyType = TupleToUnion; function SettlementButton({ addDebitCardRoute = ROUTES.IOU_SEND_ADD_DEBIT_CARD, kycWallAnchorAlignment = { @@ -241,7 +242,7 @@ function SettlementButton({ disabled: !!shouldDisableApproveButton, }; - const canUseWallet = !isExpenseReport && !isInvoiceReport && isCurrencySupportedForGlobalReimbursement(currency as TupleToUnion, true); + const canUseWallet = !isExpenseReport && !isInvoiceReport && isCurrencySupportedForGlobalReimbursement(currency as CurrencyType, true); const canUseBusinessBankAccount = isExpenseReport || (isIOUReport(iouReport) && reportID && !hasRequestFromCurrentAccount(reportID, accountID ?? CONST.DEFAULT_NUMBER_ID)); const canUsePersonalBankAccount = shouldShowPersonalBankAccountOption || isIOUReport(iouReport); @@ -312,7 +313,7 @@ function SettlementButton({ } if (isInvoiceReport) { - const isCurrencySupported = isCurrencySupportedForGlobalReimbursement(currency as TupleToUnion, true); + const isCurrencySupported = isCurrencySupportedForGlobalReimbursement(currency as CurrencyType, true); const getInvoicesOptions = (payAsBusiness: boolean) => { const addBankAccountItem = { text: translate('bankAccount.addBankAccount'), diff --git a/src/hooks/useBulkPayOptions.ts b/src/hooks/useBulkPayOptions.ts index 6e7d294740d83..d0ea6e52a3cd0 100644 --- a/src/hooks/useBulkPayOptions.ts +++ b/src/hooks/useBulkPayOptions.ts @@ -25,6 +25,8 @@ import useOnyx from './useOnyx'; import usePolicy from './usePolicy'; import useThemeStyles from './useThemeStyles'; +type CurrencyType = TupleToUnion; + type UseBulkPayOptionProps = { selectedPolicyID: string | undefined; selectedReportID: string | undefined; @@ -169,7 +171,7 @@ function useBulkPayOptions({ } if (isInvoiceReport) { - const isCurrencySupported = isCurrencySupportedForGlobalReimbursement(currency as TupleToUnion, true); + const isCurrencySupported = isCurrencySupportedForGlobalReimbursement(currency as CurrencyType, true); const getInvoicesOptions = (payAsBusiness: boolean) => { const addBankAccountItem = { text: translate('bankAccount.addBankAccount'), diff --git a/src/hooks/usePaymentOptions.ts b/src/hooks/usePaymentOptions.ts index dedaf9221a438..d744986e2091a 100644 --- a/src/hooks/usePaymentOptions.ts +++ b/src/hooks/usePaymentOptions.ts @@ -26,6 +26,8 @@ import useOnyx from './useOnyx'; import usePolicy from './usePolicy'; import useThemeStyles from './useThemeStyles'; +type CurrencyType = TupleToUnion; + type UsePaymentOptionsProps = Pick< SettlementButtonProps, | 'currency' @@ -134,7 +136,7 @@ function usePaymentOptions({ value: CONST.IOU.REPORT_ACTION_TYPE.APPROVE, disabled: !!shouldDisableApproveButton, }; - const canUseWallet = !isExpenseReport && !isInvoiceReport && isCurrencySupportedForGlobalReimbursement(currency as TupleToUnion, true); + const canUseWallet = !isExpenseReport && !isInvoiceReport && isCurrencySupportedForGlobalReimbursement(currency as CurrencyType, true); // Only show the Approve button if the user cannot pay the expense if (shouldHidePaymentOptions && shouldShowApproveButton) { @@ -158,7 +160,7 @@ function usePaymentOptions({ if (isInvoiceReport) { const formattedPaymentMethods = formatPaymentMethods(bankAccountList, fundList, styles, translate); - const isCurrencySupported = isCurrencySupportedForGlobalReimbursement(currency as TupleToUnion, true); + const isCurrencySupported = isCurrencySupportedForGlobalReimbursement(currency as CurrencyType, true); const getPaymentSubitems = (payAsBusiness: boolean) => formattedPaymentMethods.map((formattedPaymentMethod) => ({ text: formattedPaymentMethod?.title ?? '', diff --git a/src/libs/actions/Search.ts b/src/libs/actions/Search.ts index d4434311e017f..d19644092dbaf 100644 --- a/src/libs/actions/Search.ts +++ b/src/libs/actions/Search.ts @@ -1064,15 +1064,15 @@ function handleBulkPayItemSelected( confirmPayment?.(paymentType as PaymentMethodType, item?.additionalData); } +type CurrencyType = TupleToUnion; + /** * Return true if selected reports/transactions have the same USD currency. */ function isCurrencySupportWalletBulkPay(selectedReports: SelectedReports[], selectedTransactions: SelectedTransactions) { return selectedReports?.length > 0 - ? Object.values(selectedReports).every((report) => isCurrencySupportedForGlobalReimbursement(report?.currency as TupleToUnion, true)) - : Object.values(selectedTransactions).every((transaction) => - isCurrencySupportedForGlobalReimbursement(transaction.currency as TupleToUnion, true), - ); + ? Object.values(selectedReports).every((report) => isCurrencySupportedForGlobalReimbursement(report?.currency as CurrencyType, true)) + : Object.values(selectedTransactions).every((transaction) => isCurrencySupportedForGlobalReimbursement(transaction.currency as CurrencyType, true)); } /** From 3951694190bafb5ce9df00622bba138ec122257b Mon Sep 17 00:00:00 2001 From: Hans Date: Wed, 26 Nov 2025 22:20:33 +0700 Subject: [PATCH 05/14] remove redundant params --- src/components/SettlementButton/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/SettlementButton/index.tsx b/src/components/SettlementButton/index.tsx index fe73ddaa5567e..804c4385af8a0 100644 --- a/src/components/SettlementButton/index.tsx +++ b/src/components/SettlementButton/index.tsx @@ -246,7 +246,7 @@ function SettlementButton({ disabled: !!shouldDisableApproveButton, }; - const canUseWallet = !isExpenseReport && !isInvoiceReport && isCurrencySupportedForGlobalReimbursement(currency as CurrencyType, true); + const canUseWallet = !isExpenseReport && !isInvoiceReport && isCurrencySupportedForGlobalReimbursement(currency as CurrencyType); const canUseBusinessBankAccount = isExpenseReport || (isIOUReport(iouReport) && reportID && !hasRequestFromCurrentAccount(reportID, accountID ?? CONST.DEFAULT_NUMBER_ID)); const canUsePersonalBankAccount = shouldShowPersonalBankAccountOption || isIOUReport(iouReport); From a6fcb571b940a938a287d3349d8107e3eb370847 Mon Sep 17 00:00:00 2001 From: Hans Date: Tue, 2 Dec 2025 16:27:47 +0700 Subject: [PATCH 06/14] update the currency when creating workspace from IOU report --- src/libs/actions/Policy/Policy.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index 30b62b5c2dd11..281964de67669 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -3516,8 +3516,8 @@ function createWorkspaceFromIOUPayment(iouReport: OnyxEntry): WorkspaceF ownerAccountID: sessionAccountID, isPolicyExpenseChatEnabled: true, - // Setting the currency to USD as we can only add the VBBA for this policy currency right now - outputCurrency: CONST.CURRENCY.USD, + // Setting the currency to the currency of the iouReport + outputCurrency: iouReport.currency ?? CONST.CURRENCY.USD, pendingAction: CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD, autoReporting: true, autoReportingFrequency: CONST.POLICY.AUTO_REPORTING_FREQUENCIES.IMMEDIATE, From 2d8ddc547d18d187db27f5b6ec646211d4ce343f Mon Sep 17 00:00:00 2001 From: Hans Date: Tue, 2 Dec 2025 16:28:22 +0700 Subject: [PATCH 07/14] update submodule --- Mobile-Expensify | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mobile-Expensify b/Mobile-Expensify index b5597b73119b3..5041108873a1d 160000 --- a/Mobile-Expensify +++ b/Mobile-Expensify @@ -1 +1 @@ -Subproject commit b5597b73119b3fb21342b24badf1df958a6e64d8 +Subproject commit 5041108873a1df3100a254ff7d7372b73ab0e557 From b9fc7689ed2ccd8470ea2c9c008d7307b23d1f85 Mon Sep 17 00:00:00 2001 From: Hans Date: Tue, 2 Dec 2025 16:33:21 +0700 Subject: [PATCH 08/14] prettier --- src/libs/actions/Policy/Policy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index 281964de67669..32ed497c001c8 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -3516,7 +3516,7 @@ function createWorkspaceFromIOUPayment(iouReport: OnyxEntry): WorkspaceF ownerAccountID: sessionAccountID, isPolicyExpenseChatEnabled: true, - // Setting the currency to the currency of the iouReport + // Setting the currency to the currency of the iouReport outputCurrency: iouReport.currency ?? CONST.CURRENCY.USD, pendingAction: CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD, autoReporting: true, From 905f243e62557b135f88023e60885ef64ac88648 Mon Sep 17 00:00:00 2001 From: Hans Date: Tue, 2 Dec 2025 16:35:20 +0700 Subject: [PATCH 09/14] update submodule --- Mobile-Expensify | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mobile-Expensify b/Mobile-Expensify index 5041108873a1d..d4e14fb2e0232 160000 --- a/Mobile-Expensify +++ b/Mobile-Expensify @@ -1 +1 @@ -Subproject commit 5041108873a1df3100a254ff7d7372b73ab0e557 +Subproject commit d4e14fb2e0232a6861b2e74158a2fcb0a29f6846 From 22a85db6fb762128d0df21ff36c1c300da62aed4 Mon Sep 17 00:00:00 2001 From: Hans Date: Wed, 3 Dec 2025 17:29:21 +0700 Subject: [PATCH 10/14] also update the command params --- src/libs/API/parameters/CreateWorkspaceFromIOUPaymentParams.ts | 1 + src/libs/actions/Policy/Policy.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/src/libs/API/parameters/CreateWorkspaceFromIOUPaymentParams.ts b/src/libs/API/parameters/CreateWorkspaceFromIOUPaymentParams.ts index 78bc040136aaa..1e4df103e7c1f 100644 --- a/src/libs/API/parameters/CreateWorkspaceFromIOUPaymentParams.ts +++ b/src/libs/API/parameters/CreateWorkspaceFromIOUPaymentParams.ts @@ -14,6 +14,7 @@ type CreateWorkspaceFromIOUPaymentParams = { memberData: string; reportActionID: string | undefined; expenseMovedReportActionID: string | undefined; + outputCurrency: string; }; export default CreateWorkspaceFromIOUPaymentParams; diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index 32ed497c001c8..bd486aa4e1c7f 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -3933,6 +3933,7 @@ function createWorkspaceFromIOUPayment(iouReport: OnyxEntry): WorkspaceF memberData: JSON.stringify(memberData), reportActionID: movedReportAction.reportActionID, expenseMovedReportActionID: movedIouReportAction.reportActionID, + outputCurrency: iouReport.currency ?? CONST.CURRENCY.USD, }; API.write(WRITE_COMMANDS.CREATE_WORKSPACE_FROM_IOU_PAYMENT, params, {optimisticData, successData, failureData}); From c0aa7fc3b92551fa227c61ff6e2b98a3e331dcc3 Mon Sep 17 00:00:00 2001 From: Hans Date: Wed, 3 Dec 2025 17:39:08 +0700 Subject: [PATCH 11/14] update submodule --- Mobile-Expensify | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mobile-Expensify b/Mobile-Expensify index d4e14fb2e0232..979e8713646a0 160000 --- a/Mobile-Expensify +++ b/Mobile-Expensify @@ -1 +1 @@ -Subproject commit d4e14fb2e0232a6861b2e74158a2fcb0a29f6846 +Subproject commit 979e8713646a0d361fcd77ec45947137ffbfb57c From 1c463af558cef84134b06abbeff41456287986c1 Mon Sep 17 00:00:00 2001 From: Hans Date: Thu, 4 Dec 2025 13:50:01 +0700 Subject: [PATCH 12/14] update submodule --- Mobile-Expensify | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mobile-Expensify b/Mobile-Expensify index 979e8713646a0..4c5b3f4777496 160000 --- a/Mobile-Expensify +++ b/Mobile-Expensify @@ -1 +1 @@ -Subproject commit 979e8713646a0d361fcd77ec45947137ffbfb57c +Subproject commit 4c5b3f4777496e8bff8d9d5d0edadd8bd078d151 From e7a692c58db2969db2532f904cd9e8fc8ff37a29 Mon Sep 17 00:00:00 2001 From: Hans Date: Fri, 5 Dec 2025 17:05:27 +0700 Subject: [PATCH 13/14] update param --- src/libs/API/parameters/CreateWorkspaceFromIOUPaymentParams.ts | 2 +- src/libs/actions/Policy/Policy.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libs/API/parameters/CreateWorkspaceFromIOUPaymentParams.ts b/src/libs/API/parameters/CreateWorkspaceFromIOUPaymentParams.ts index 1e4df103e7c1f..2bbd8190b918b 100644 --- a/src/libs/API/parameters/CreateWorkspaceFromIOUPaymentParams.ts +++ b/src/libs/API/parameters/CreateWorkspaceFromIOUPaymentParams.ts @@ -14,7 +14,7 @@ type CreateWorkspaceFromIOUPaymentParams = { memberData: string; reportActionID: string | undefined; expenseMovedReportActionID: string | undefined; - outputCurrency: string; + currency: string; }; export default CreateWorkspaceFromIOUPaymentParams; diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index 45543547e95f1..b999b13eb3446 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -3937,7 +3937,7 @@ function createWorkspaceFromIOUPayment(iouReport: OnyxEntry): WorkspaceF memberData: JSON.stringify(memberData), reportActionID: movedReportAction.reportActionID, expenseMovedReportActionID: movedIouReportAction.reportActionID, - outputCurrency: iouReport.currency ?? CONST.CURRENCY.USD, + currency: iouReport.currency ?? CONST.CURRENCY.USD, }; API.write(WRITE_COMMANDS.CREATE_WORKSPACE_FROM_IOU_PAYMENT, params, {optimisticData, successData, failureData}); From ba39b4f37aac28d04850256b7770e699151aaeb1 Mon Sep 17 00:00:00 2001 From: Hans Date: Fri, 5 Dec 2025 17:06:42 +0700 Subject: [PATCH 14/14] update comments --- src/libs/actions/Policy/Policy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index b999b13eb3446..487a5a88d63c0 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -3520,7 +3520,7 @@ function createWorkspaceFromIOUPayment(iouReport: OnyxEntry): WorkspaceF ownerAccountID: deprecatedSessionAccountID, isPolicyExpenseChatEnabled: true, - // Setting the currency to the currency of the iouReport + // Setting the new workspace currency to the currency of the iouReport outputCurrency: iouReport.currency ?? CONST.CURRENCY.USD, pendingAction: CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD, autoReporting: true,