Skip to content

Commit 092be95

Browse files
committed
feat: migrate netsuite export
1 parent 147633e commit 092be95

9 files changed

Lines changed: 20 additions & 34 deletions

File tree

src/ROUTES.ts

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -146,29 +146,33 @@ const DYNAMIC_ROUTES = {
146146
path: 'journal-posting-preference/select',
147147
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_EXPORT_EXPENSES],
148148
},
149+
POLICY_ACCOUNTING_NETSUITE_EXPORT: {
150+
path: 'connections/netsuite/export',
151+
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.ROOT, SCREENS.WORKSPACE.COMPANY_CARD_EXPORT],
152+
},
149153
POLICY_ACCOUNTING_NETSUITE_RECEIVABLE_ACCOUNT_SELECT: {
150154
path: 'receivable-account/select',
151-
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_EXPORT],
155+
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_EXPORT],
152156
},
153157
POLICY_ACCOUNTING_NETSUITE_INVOICE_ITEM_PREFERENCE_SELECT: {
154158
path: 'invoice-item-preference/select',
155-
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_EXPORT],
159+
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_EXPORT],
156160
},
157161
POLICY_ACCOUNTING_NETSUITE_INVOICE_ITEM_SELECT: {
158162
path: 'invoice-item/select',
159163
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_INVOICE_ITEM_PREFERENCE_SELECT],
160164
},
161165
POLICY_ACCOUNTING_NETSUITE_PREFERRED_EXPORTER_SELECT: {
162166
path: 'preferred-exporter/select',
163-
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_EXPORT],
167+
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_EXPORT],
164168
},
165169
POLICY_ACCOUNTING_NETSUITE_DATE_SELECT: {
166170
path: 'date/select',
167-
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_EXPORT],
171+
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_EXPORT],
168172
},
169173
POLICY_ACCOUNTING_NETSUITE_EXPORT_EXPENSES: {
170174
path: 'expenses/:expenseType',
171-
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_EXPORT],
175+
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_EXPORT],
172176
getRoute: (expenseType: ValueOf<typeof CONST.NETSUITE_EXPENSE_TYPE>) => `expenses/${expenseType as string}` as const,
173177
},
174178
POLICY_ACCOUNTING_NETSUITE_EXPORT_EXPENSES_DESTINATION_SELECT: {
@@ -3719,17 +3723,6 @@ const ROUTES = {
37193723
route: 'workspaces/:policyID/accounting/netsuite/import/customer-projects/select',
37203724
getRoute: (policyID: string) => `workspaces/${policyID}/accounting/netsuite/import/customer-projects/select` as const,
37213725
},
3722-
POLICY_ACCOUNTING_NETSUITE_EXPORT: {
3723-
route: 'workspaces/:policyID/connections/netsuite/export/',
3724-
getRoute: (policyID: string | undefined, backTo?: string) => {
3725-
if (!policyID) {
3726-
Log.warn('Invalid policyID is used to build the POLICY_ACCOUNTING_NETSUITE_EXPORT route');
3727-
}
3728-
3729-
// eslint-disable-next-line no-restricted-syntax -- Legacy route generation
3730-
return getUrlWithBackToParam(`workspaces/${policyID}/connections/netsuite/export/` as const, backTo, false);
3731-
},
3732-
},
37333726
POLICY_ACCOUNTING_NETSUITE_TAX_POSTING_ACCOUNT_SELECT: {
37343727
route: 'workspaces/:policyID/connections/netsuite/export/tax-posting-account/select',
37353728
getRoute: (policyID: string) => `workspaces/${policyID}/connections/netsuite/export/tax-posting-account/select` as const,

src/SCREENS.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -607,7 +607,7 @@ const SCREENS = {
607607
NETSUITE_TOKEN_INPUT: 'Policy_Accounting_NetSuite_Token_Input',
608608
NETSUITE_SUBSIDIARY_SELECTOR: 'Policy_Accounting_NetSuite_Subsidiary_Selector',
609609
NETSUITE_IMPORT: 'Policy_Accounting_NetSuite_Import',
610-
NETSUITE_EXPORT: 'Policy_Accounting_NetSuite_Export',
610+
DYNAMIC_NETSUITE_EXPORT: 'Dynamic_Policy_Accounting_NetSuite_Export',
611611
DYNAMIC_NETSUITE_PREFERRED_EXPORTER_SELECT: 'Dynamic_Policy_Accounting_NetSuite_Preferred_Exporter_Select',
612612
DYNAMIC_NETSUITE_DATE_SELECT: 'Dynamic_Policy_Accounting_NetSuite_Date_Select',
613613
DYNAMIC_NETSUITE_EXPORT_EXPENSES: 'Dynamic_Policy_Accounting_NetSuite_Export_Expenses',

src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -727,7 +727,8 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
727727
require<ReactComponentModule>('../../../../pages/workspace/accounting/netsuite/import/NetSuiteImportCustomersOrProjectsPage').default,
728728
[SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_IMPORT_CUSTOMERS_OR_PROJECTS_SELECT]: () =>
729729
require<ReactComponentModule>('../../../../pages/workspace/accounting/netsuite/import/NetSuiteImportCustomersOrProjectSelectPage').default,
730-
[SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_EXPORT]: () => require<ReactComponentModule>('../../../../pages/workspace/accounting/netsuite/export/NetSuiteExportConfigurationPage').default,
730+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_EXPORT]: () =>
731+
require<ReactComponentModule>('../../../../pages/workspace/accounting/netsuite/export/NetSuiteExportConfigurationPage').default,
731732
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_PREFERRED_EXPORTER_SELECT]: () =>
732733
require<ReactComponentModule>('../../../../pages/workspace/accounting/netsuite/export/DynamicNetSuitePreferredExporterSelectPage').default,
733734
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_DATE_SELECT]: () =>

src/libs/Navigation/linkingConfig/RELATIONS/WORKSPACE_TO_RHP.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ const WORKSPACE_TO_RHP: Partial<Record<keyof WorkspaceSplitNavigatorParamList, s
117117
SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_IMPORT_CUSTOM_SEGMENT_ADD,
118118
SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_IMPORT_CUSTOMERS_OR_PROJECTS,
119119
SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_IMPORT_CUSTOMERS_OR_PROJECTS_SELECT,
120-
SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_EXPORT,
120+
SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_EXPORT,
121121
SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_PREFERRED_EXPORTER_SELECT,
122122
SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_DATE_SELECT,
123123
SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_EXPORT_EXPENSES,

src/libs/Navigation/linkingConfig/config.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -678,9 +678,7 @@ const config: LinkingOptions<RootNavigatorParamList>['config'] = {
678678
[SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_IMPORT_CUSTOM_SEGMENT_ADD]: {path: ROUTES.POLICY_ACCOUNTING_NETSUITE_IMPORT_CUSTOM_SEGMENT_ADD.route},
679679
[SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_IMPORT_CUSTOMERS_OR_PROJECTS]: {path: ROUTES.POLICY_ACCOUNTING_NETSUITE_IMPORT_CUSTOMERS_OR_PROJECTS.route},
680680
[SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_IMPORT_CUSTOMERS_OR_PROJECTS_SELECT]: {path: ROUTES.POLICY_ACCOUNTING_NETSUITE_IMPORT_CUSTOMERS_OR_PROJECTS_SELECT.route},
681-
[SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_EXPORT]: {
682-
path: ROUTES.POLICY_ACCOUNTING_NETSUITE_EXPORT.route,
683-
},
681+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_EXPORT]: DYNAMIC_ROUTES.POLICY_ACCOUNTING_NETSUITE_EXPORT.path,
684682
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_PREFERRED_EXPORTER_SELECT]: DYNAMIC_ROUTES.POLICY_ACCOUNTING_NETSUITE_PREFERRED_EXPORTER_SELECT.path,
685683
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_DATE_SELECT]: DYNAMIC_ROUTES.POLICY_ACCOUNTING_NETSUITE_DATE_SELECT.path,
686684
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_EXPORT_EXPENSES]: 'expenses/:expenseType',

src/libs/Navigation/types.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -978,10 +978,8 @@ type SettingsNavigatorParamList = {
978978
subPage?: string;
979979
action?: 'edit';
980980
};
981-
[SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_EXPORT]: {
981+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_EXPORT]: {
982982
policyID: string;
983-
// eslint-disable-next-line no-restricted-syntax -- `backTo` usages in this file are legacy. Do not add new `backTo` params to screens. See contributingGuides/NAVIGATION.md
984-
backTo?: Routes;
985983
};
986984
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_NETSUITE_PREFERRED_EXPORTER_SELECT]: {
987985
policyID: string;

src/pages/workspace/accounting/netsuite/export/NetSuiteExportConfigurationPage.tsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import {useRoute} from '@react-navigation/native';
21
import React from 'react';
32
import {View} from 'react-native';
43
import ConnectionLayout from '@components/ConnectionLayout';
54
import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription';
65
import OfflineWithFeedback from '@components/OfflineWithFeedback';
6+
import useDynamicBackPath from '@hooks/useDynamicBackPath';
77
import useLocalize from '@hooks/useLocalize';
88
import useOnyx from '@hooks/useOnyx';
99
import usePermissions from '@hooks/usePermissions';
@@ -23,8 +23,6 @@ import {
2323
} from '@libs/PolicyUtils';
2424
import {getIsTravelInvoicingEnabled, getTravelInvoicingCardSettingsKey} from '@libs/TravelInvoicingUtils';
2525
import goBackFromExportConnection from '@navigation/helpers/goBackFromExportConnection';
26-
import type {PlatformStackRouteProp} from '@navigation/PlatformStackNavigation/types';
27-
import type {SettingsNavigatorParamList} from '@navigation/types';
2826
import type {DividerLineItem, MenuItem, ToggleItem} from '@pages/workspace/accounting/netsuite/types';
2927
import {
3028
shouldHideExportForeignCurrencyAmount,
@@ -42,15 +40,12 @@ import ToggleSettingOptionRow from '@pages/workspace/workflows/ToggleSettingsOpt
4240
import {clearNetSuiteErrorField} from '@userActions/Policy/Policy';
4341
import CONST from '@src/CONST';
4442
import ROUTES, {DYNAMIC_ROUTES} from '@src/ROUTES';
45-
import type SCREENS from '@src/SCREENS';
4643

4744
type MenuItemWithSubscribedSettings = Pick<MenuItem, 'type' | 'description' | 'title' | 'onPress' | 'shouldHide'> & {subscribedSettings?: string[]};
4845

4946
function NetSuiteExportConfigurationPage({policy}: WithPolicyConnectionsProps) {
5047
const {translate} = useLocalize();
5148
const styles = useThemeStyles();
52-
const route = useRoute<PlatformStackRouteProp<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_EXPORT>>();
53-
const backTo = route?.params?.backTo;
5449
const policyID = policy?.id;
5550
const policyOwner = policy?.owner ?? '';
5651
const {isBetaEnabled} = usePermissions();
@@ -60,9 +55,10 @@ function NetSuiteExportConfigurationPage({policy}: WithPolicyConnectionsProps) {
6055
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
6156
config?.reimbursableExpensesExportDestination === CONST.NETSUITE_EXPORT_DESTINATION.EXPENSE_REPORT ||
6257
config?.nonreimbursableExpensesExportDestination === CONST.NETSUITE_EXPORT_DESTINATION.EXPENSE_REPORT;
58+
const backPath = useDynamicBackPath(DYNAMIC_ROUTES.POLICY_ACCOUNTING_NETSUITE_EXPORT.path);
6359

6460
const goBack = () => {
65-
return goBackFromExportConnection(shouldGoBackToSpecificRoute, backTo);
61+
return goBackFromExportConnection(shouldGoBackToSpecificRoute, backPath);
6662
};
6763

6864
const {subsidiaryList, receivableList, taxAccountsList, items, payableList} = policy?.connections?.netsuite?.options?.data ?? {};

src/pages/workspace/accounting/utils.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ function getAccountingIntegrationData(
175175
...getImportCustomFieldsSettings(CONST.NETSUITE_CONFIG.IMPORT_CUSTOM_FIELDS.CUSTOM_SEGMENTS, netsuiteConfig),
176176
...getImportCustomFieldsSettings(CONST.NETSUITE_CONFIG.IMPORT_CUSTOM_FIELDS.CUSTOM_LISTS, netsuiteConfig),
177177
],
178-
onExportPagePress: () => Navigation.navigate(ROUTES.POLICY_ACCOUNTING_NETSUITE_EXPORT.getRoute(policyID)),
178+
onExportPagePress: () => Navigation.navigate(createDynamicRoute(DYNAMIC_ROUTES.POLICY_ACCOUNTING_NETSUITE_EXPORT.path)),
179179
subscribedExportSettings: [
180180
CONST.NETSUITE_CONFIG.EXPORTER,
181181
CONST.NETSUITE_CONFIG.EXPORT_DATE,

src/pages/workspace/companyCards/utils.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ function getExportMenuItem(
217217
shouldShowMenuItem,
218218
exportType,
219219
data,
220-
exportPageLink: ROUTES.POLICY_ACCOUNTING_NETSUITE_EXPORT.getRoute(policyID, backTo),
220+
exportPageLink: createDynamicRoute(DYNAMIC_ROUTES.POLICY_ACCOUNTING_NETSUITE_EXPORT.path),
221221
};
222222
}
223223
case CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT: {

0 commit comments

Comments
 (0)