From f040328da18c1bd8cc2155fb33362f38f456ed7b Mon Sep 17 00:00:00 2001 From: nkdengineer <161821005+nkdengineer@users.noreply.github.com> Date: Tue, 14 Oct 2025 17:27:16 +0700 Subject: [PATCH 1/3] Revert "update upgrade control flow in import member" --- src/pages/workspace/members/ImportedMembersPage.tsx | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/pages/workspace/members/ImportedMembersPage.tsx b/src/pages/workspace/members/ImportedMembersPage.tsx index d0d11b36090c..582d05edc407 100644 --- a/src/pages/workspace/members/ImportedMembersPage.tsx +++ b/src/pages/workspace/members/ImportedMembersPage.tsx @@ -14,7 +14,7 @@ import {findDuplicate, generateColumnNames} from '@libs/importSpreadsheetUtils'; import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; -import {isControlPolicy, isPolicyMemberWithoutPendingDelete} from '@libs/PolicyUtils'; +import {isPolicyMemberWithoutPendingDelete} from '@libs/PolicyUtils'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -78,14 +78,6 @@ function ImportedMembersPage({route}: ImportedMembersPageProps) { let isRoleMissing = false; const columns = Object.values(spreadsheet?.columns ?? {}); - - const containsAdvanceApprovalColumns = columns.includes(CONST.CSV_IMPORT_COLUMNS.SUBMIT_TO) || columns.includes(CONST.CSV_IMPORT_COLUMNS.APPROVE_TO); - - if (containsAdvanceApprovalColumns && !isControlPolicy(policy)) { - Navigation.navigate(ROUTES.WORKSPACE_UPGRADE.getRoute(route.params.policyID, CONST.UPGRADE_FEATURE_INTRO_MAPPING.approvals.alias, Navigation.getActiveRoute())); - return; - } - const membersEmailsColumn = columns.findIndex((column) => column === CONST.CSV_IMPORT_COLUMNS.EMAIL); const membersRolesColumn = columns.findIndex((column) => column === CONST.CSV_IMPORT_COLUMNS.ROLE); const membersEmails = spreadsheet?.data[membersEmailsColumn].map((email) => email); From 6d4f18f1437c370b427db2add7bd0a2edf7b2a27 Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Thu, 30 Oct 2025 00:50:56 +0700 Subject: [PATCH 2/3] update approval mode when upgrading --- .../upgrade/WorkspaceUpgradePage.tsx | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/pages/workspace/upgrade/WorkspaceUpgradePage.tsx b/src/pages/workspace/upgrade/WorkspaceUpgradePage.tsx index 1b50b2e0cb05..995df561ff4b 100644 --- a/src/pages/workspace/upgrade/WorkspaceUpgradePage.tsx +++ b/src/pages/workspace/upgrade/WorkspaceUpgradePage.tsx @@ -12,11 +12,18 @@ import {updateXeroMappings} from '@libs/actions/connections/Xero'; import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; import type {SettingsNavigatorParamList} from '@libs/Navigation/types'; -import {canModifyPlan, getPerDiemCustomUnit, isControlPolicy} from '@libs/PolicyUtils'; +import {canModifyPlan, getDefaultApprover, getPerDiemCustomUnit, isControlPolicy} from '@libs/PolicyUtils'; import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; import {enablePerDiem} from '@userActions/Policy/PerDiem'; import CONST from '@src/CONST'; -import {enableCompanyCards, enablePolicyReportFields, enablePolicyRules, setPolicyPreventMemberCreatedTitle, upgradeToCorporate} from '@src/libs/actions/Policy/Policy'; +import { + enableCompanyCards, + enablePolicyReportFields, + enablePolicyRules, + setPolicyPreventMemberCreatedTitle, + setWorkspaceApprovalMode, + upgradeToCorporate, +} from '@src/libs/actions/Policy/Policy'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; @@ -154,20 +161,22 @@ function WorkspaceUpgradePage({route}: WorkspaceUpgradePageProps) { case CONST.UPGRADE_FEATURE_INTRO_MAPPING.perDiem.id: enablePerDiem(policyID, true, perDiemCustomUnit?.customUnitID, false); break; + case CONST.UPGRADE_FEATURE_INTRO_MAPPING.approvals.id: + setWorkspaceApprovalMode(policyID, getDefaultApprover(policy), CONST.POLICY.APPROVAL_MODE.ADVANCED); + break; default: } }, [ - categoryId, + policyID, feature, + featureNameAlias, + route.params.featureName, perDiemCustomUnit?.customUnitID, - policy?.connections?.xero?.config, - policy?.connections?.xero?.data, - policyID, + policy, qboConfig?.syncClasses, qboConfig?.syncCustomers, qboConfig?.syncLocations, - route.params?.featureName, - featureNameAlias, + categoryId, ]); useFocusEffect( From 8ccfb7bf3368dee157a80499a297af8f5066c394 Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Wed, 19 Nov 2025 15:06:46 +0700 Subject: [PATCH 3/3] fix update to advance approval mode for collect plan --- src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx b/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx index c491ccb9fed2..0686fbdc20eb 100644 --- a/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx +++ b/src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx @@ -92,7 +92,7 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) { const hasValidExistingAccounts = getEligibleExistingBusinessBankAccounts(bankAccountList, policy?.outputCurrency).length > 0; - const isAdvanceApproval = approvalWorkflows.length > 1 || (approvalWorkflows?.at(0)?.approvers ?? []).length > 1; + const isAdvanceApproval = (approvalWorkflows.length > 1 || (approvalWorkflows?.at(0)?.approvers ?? []).length > 1) && isControlPolicy(policy); const updateApprovalMode = isAdvanceApproval ? CONST.POLICY.APPROVAL_MODE.ADVANCED : CONST.POLICY.APPROVAL_MODE.BASIC; const displayNameForAuthorizedPayer = useMemo( () => getPersonalDetailByEmail(policy?.achAccount?.reimburser ?? '')?.displayName ?? policy?.achAccount?.reimburser,