@@ -74,7 +74,7 @@ import * as NumberUtils from '@libs/NumberUtils';
7474import * as PersonalDetailsUtils from '@libs/PersonalDetailsUtils' ;
7575import * as PhoneNumber from '@libs/PhoneNumber' ;
7676import * as PolicyUtils from '@libs/PolicyUtils' ;
77- import { goBackWhenEnableFeature , navigateToExpensifyCardPage } from '@libs/PolicyUtils' ;
77+ import { goBackWhenEnableFeature , isControlPolicy , navigateToExpensifyCardPage } from '@libs/PolicyUtils' ;
7878import * as ReportUtils from '@libs/ReportUtils' ;
7979import type { PolicySelector } from '@pages/home/sidebar/FloatingActionButtonAndPopover' ;
8080import * as PaymentMethods from '@userActions/PaymentMethods' ;
@@ -3575,6 +3575,13 @@ function enablePolicyRules(policyID: string, enabled: boolean, shouldGoBack = tr
35753575 ] ,
35763576 } ;
35773577
3578+ if ( enabled && isControlPolicy ( policy ) && policy ?. outputCurrency === CONST . CURRENCY . USD ) {
3579+ const eReceiptsOnyxData = getWorkspaceEReceiptsEnabledOnyxData ( policyID , enabled ) ;
3580+ onyxData . optimisticData ?. push ( ...( eReceiptsOnyxData . optimisticData ?? [ ] ) ) ;
3581+ onyxData . successData ?. push ( ...( eReceiptsOnyxData . successData ?? [ ] ) ) ;
3582+ onyxData . failureData ?. push ( ...( eReceiptsOnyxData . failureData ?? [ ] ) ) ;
3583+ }
3584+
35783585 const parameters : SetPolicyRulesEnabledParams = { policyID, enabled} ;
35793586 API . writeWithNoDuplicatesEnableFeatureConflicts ( WRITE_COMMANDS . SET_POLICY_RULES_ENABLED , parameters , onyxData ) ;
35803587
@@ -4456,14 +4463,13 @@ function disableWorkspaceBillableExpenses(policyID: string) {
44564463 API . write ( WRITE_COMMANDS . DISABLE_POLICY_BILLABLE_MODE , parameters , onyxData ) ;
44574464}
44584465
4459- function setWorkspaceEReceiptsEnabled ( policyID : string , enabled : boolean ) {
4466+ function getWorkspaceEReceiptsEnabledOnyxData ( policyID : string , enabled : boolean ) : OnyxData {
44604467 // This will be fixed as part of https://github.com/Expensify/Expensify/issues/507850
44614468 // eslint-disable-next-line deprecation/deprecation
44624469 const policy = getPolicy ( policyID ) ;
44634470
44644471 const originalEReceipts = policy ?. eReceipts ;
4465-
4466- const onyxData : OnyxData = {
4472+ return {
44674473 optimisticData : [
44684474 {
44694475 onyxMethod : Onyx . METHOD . MERGE ,
@@ -4500,6 +4506,10 @@ function setWorkspaceEReceiptsEnabled(policyID: string, enabled: boolean) {
45004506 } ,
45014507 ] ,
45024508 } ;
4509+ }
4510+
4511+ function setWorkspaceEReceiptsEnabled ( policyID : string , enabled : boolean ) {
4512+ const onyxData : OnyxData = getWorkspaceEReceiptsEnabledOnyxData ( policyID , enabled ) ;
45034513
45044514 const parameters = {
45054515 policyID,
0 commit comments