From b8f4e8724588e7317672ea663e5e53c142ce49d2 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Fri, 16 May 2025 13:14:26 -0600 Subject: [PATCH 1/6] make track expenses generate manual submit policies --- src/libs/actions/Policy/Policy.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index 5faebc8c7323..4b8f351255f7 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -1814,9 +1814,16 @@ function buildPolicyData( const optimisticMccGroupData = buildOptimisticMccGroup(); const shouldEnableWorkflowsByDefault = - !introSelected?.choice || introSelected.choice === CONST.ONBOARDING_CHOICES.MANAGE_TEAM || introSelected.choice === CONST.ONBOARDING_CHOICES.LOOKING_AROUND; + !introSelected?.choice || introSelected.choice === CONST.ONBOARDING_CHOICES.MANAGE_TEAM || introSelected.choice === CONST.ONBOARDING_CHOICES.LOOKING_AROUND || introSelected.choice === CONST.ONBOARDING_CHOICES.TRACK_WORKSPACE; const shouldSetCreatedWorkspaceAsActivePolicy = !!activePolicyID && allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${activePolicyID}`]?.type === CONST.POLICY.TYPE.PERSONAL; + let autoReportingFrequency: ValueOf = CONST.POLICY.AUTO_REPORTING_FREQUENCIES.INSTANT; + if (introSelected?.choice === CONST.ONBOARDING_CHOICES.TRACK_WORKSPACE) { + autoReportingFrequency = CONST.POLICY.AUTO_REPORTING_FREQUENCIES.MANUAL; + } else if (shouldEnableWorkflowsByDefault) { + autoReportingFrequency = CONST.POLICY.AUTO_REPORTING_FREQUENCIES.IMMEDIATE; + } + const optimisticData: OnyxUpdate[] = [ { onyxMethod: Onyx.METHOD.SET, @@ -1833,7 +1840,7 @@ function buildPolicyData( pendingAction: CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD, autoReporting: true, approver: sessionEmail, - autoReportingFrequency: shouldEnableWorkflowsByDefault ? CONST.POLICY.AUTO_REPORTING_FREQUENCIES.IMMEDIATE : CONST.POLICY.AUTO_REPORTING_FREQUENCIES.INSTANT, + autoReportingFrequency, approvalMode: shouldEnableWorkflowsByDefault ? CONST.POLICY.APPROVAL_MODE.BASIC : CONST.POLICY.APPROVAL_MODE.OPTIONAL, harvesting: { enabled: !shouldEnableWorkflowsByDefault, From 2f68859be32cc7f92d45cecee1b5d6eea940dda7 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Mon, 19 May 2025 12:08:52 -0600 Subject: [PATCH 2/6] fix logic --- src/libs/actions/Policy/Policy.ts | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index 4b8f351255f7..edc10c12d041 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -1817,13 +1817,6 @@ function buildPolicyData( !introSelected?.choice || introSelected.choice === CONST.ONBOARDING_CHOICES.MANAGE_TEAM || introSelected.choice === CONST.ONBOARDING_CHOICES.LOOKING_AROUND || introSelected.choice === CONST.ONBOARDING_CHOICES.TRACK_WORKSPACE; const shouldSetCreatedWorkspaceAsActivePolicy = !!activePolicyID && allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${activePolicyID}`]?.type === CONST.POLICY.TYPE.PERSONAL; - let autoReportingFrequency: ValueOf = CONST.POLICY.AUTO_REPORTING_FREQUENCIES.INSTANT; - if (introSelected?.choice === CONST.ONBOARDING_CHOICES.TRACK_WORKSPACE) { - autoReportingFrequency = CONST.POLICY.AUTO_REPORTING_FREQUENCIES.MANUAL; - } else if (shouldEnableWorkflowsByDefault) { - autoReportingFrequency = CONST.POLICY.AUTO_REPORTING_FREQUENCIES.IMMEDIATE; - } - const optimisticData: OnyxUpdate[] = [ { onyxMethod: Onyx.METHOD.SET, @@ -1840,7 +1833,7 @@ function buildPolicyData( pendingAction: CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD, autoReporting: true, approver: sessionEmail, - autoReportingFrequency, + autoReportingFrequency: shouldEnableWorkflowsByDefault ? CONST.POLICY.AUTO_REPORTING_FREQUENCIES.IMMEDIATE : CONST.POLICY.AUTO_REPORTING_FREQUENCIES.INSTANT, approvalMode: shouldEnableWorkflowsByDefault ? CONST.POLICY.APPROVAL_MODE.BASIC : CONST.POLICY.APPROVAL_MODE.OPTIONAL, harvesting: { enabled: !shouldEnableWorkflowsByDefault, From 3db7a3f4104ea53071c139ff8f0e1db5c5024998 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Mon, 19 May 2025 12:19:36 -0600 Subject: [PATCH 3/6] use correct intent --- 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 edc10c12d041..ddb9c38db3ad 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -1814,7 +1814,7 @@ function buildPolicyData( const optimisticMccGroupData = buildOptimisticMccGroup(); const shouldEnableWorkflowsByDefault = - !introSelected?.choice || introSelected.choice === CONST.ONBOARDING_CHOICES.MANAGE_TEAM || introSelected.choice === CONST.ONBOARDING_CHOICES.LOOKING_AROUND || introSelected.choice === CONST.ONBOARDING_CHOICES.TRACK_WORKSPACE; + !introSelected?.choice || introSelected.choice === CONST.ONBOARDING_CHOICES.MANAGE_TEAM || introSelected.choice === CONST.ONBOARDING_CHOICES.LOOKING_AROUND || introSelected.choice === CONST.ONBOARDING_CHOICES.PERSONAL_SPEND; const shouldSetCreatedWorkspaceAsActivePolicy = !!activePolicyID && allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${activePolicyID}`]?.type === CONST.POLICY.TYPE.PERSONAL; const optimisticData: OnyxUpdate[] = [ From b1a73c34f25af9dc9d4eeecfc1424ac675c3a697 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Mon, 19 May 2025 12:24:27 -0600 Subject: [PATCH 4/6] fix lint --- src/libs/actions/Policy/Policy.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index ddb9c38db3ad..e5adbb120eb0 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -1814,7 +1814,10 @@ function buildPolicyData( const optimisticMccGroupData = buildOptimisticMccGroup(); const shouldEnableWorkflowsByDefault = - !introSelected?.choice || introSelected.choice === CONST.ONBOARDING_CHOICES.MANAGE_TEAM || introSelected.choice === CONST.ONBOARDING_CHOICES.LOOKING_AROUND || introSelected.choice === CONST.ONBOARDING_CHOICES.PERSONAL_SPEND; + !introSelected?.choice || + introSelected.choice === CONST.ONBOARDING_CHOICES.MANAGE_TEAM || + introSelected.choice === CONST.ONBOARDING_CHOICES.LOOKING_AROUND || + introSelected.choice === CONST.ONBOARDING_CHOICES.PERSONAL_SPEND; const shouldSetCreatedWorkspaceAsActivePolicy = !!activePolicyID && allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${activePolicyID}`]?.type === CONST.POLICY.TYPE.PERSONAL; const optimisticData: OnyxUpdate[] = [ From 171fed19294deb0ce3831a75de3d34580d1b82f7 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Mon, 19 May 2025 12:34:46 -0600 Subject: [PATCH 5/6] add comment --- src/libs/actions/Policy/Policy.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index e5adbb120eb0..856b7d48fe3d 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -1820,6 +1820,8 @@ function buildPolicyData( introSelected.choice === CONST.ONBOARDING_CHOICES.PERSONAL_SPEND; const shouldSetCreatedWorkspaceAsActivePolicy = !!activePolicyID && allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${activePolicyID}`]?.type === CONST.POLICY.TYPE.PERSONAL; + // WARNING: The data below should be kept in sync with the API so we create the policy with the correct configuration. + // const optimisticData: OnyxUpdate[] = [ { onyxMethod: Onyx.METHOD.SET, From eab3f9aca0ee49bee3b5551d75184a1fbaae5a76 Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Mon, 19 May 2025 12:35:10 -0600 Subject: [PATCH 6/6] rm extra line --- src/libs/actions/Policy/Policy.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/libs/actions/Policy/Policy.ts b/src/libs/actions/Policy/Policy.ts index 856b7d48fe3d..f28e2ab06a58 100644 --- a/src/libs/actions/Policy/Policy.ts +++ b/src/libs/actions/Policy/Policy.ts @@ -1821,7 +1821,6 @@ function buildPolicyData( const shouldSetCreatedWorkspaceAsActivePolicy = !!activePolicyID && allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${activePolicyID}`]?.type === CONST.POLICY.TYPE.PERSONAL; // WARNING: The data below should be kept in sync with the API so we create the policy with the correct configuration. - // const optimisticData: OnyxUpdate[] = [ { onyxMethod: Onyx.METHOD.SET,