diff --git a/src/languages/en.ts b/src/languages/en.ts index fe3b51a660dc2..cc702c3cfa23f 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -2085,6 +2085,7 @@ export default { letsDoubleCheck: "Let's double check that everything looks right.", lineItemLevel: 'Line-item level', reportLevel: 'Report level', + topLevel: 'Top level', appliedOnExport: 'Not imported into Expensify, applied on export', shareNote: { header: 'Easily share your workspace with other members.', @@ -3212,9 +3213,12 @@ export default { return 'Marking NetSuite bills and invoices as paid'; case 'intacctCheckConnection': return 'Checking Sage Intacct connection'; + case 'intacctImportDimensions': + return 'Importing Sage Intacct dimensions'; case 'intacctImportTitle': return 'Importing Sage Intacct data'; default: { + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions return `Translation missing for stage: ${stage}`; } } diff --git a/src/languages/es.ts b/src/languages/es.ts index 8d12a35d831dd..c3df17435e52c 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -2133,6 +2133,7 @@ export default { reuseExistingConnection: 'Reutilizar la conexión existente', existingConnections: 'Conexiones existentes', lastSyncDate: (connectionName: string, formattedDate: string) => `${connectionName} - Última sincronización ${formattedDate}`, + topLevel: 'Nivel superior', }, qbo: { importDescription: 'Elige que configuraciónes de codificación son importadas desde QuickBooks Online a Expensify.', diff --git a/src/libs/PolicyUtils.ts b/src/libs/PolicyUtils.ts index c9435f46d665b..709c10d07f6c3 100644 --- a/src/libs/PolicyUtils.ts +++ b/src/libs/PolicyUtils.ts @@ -761,8 +761,11 @@ function getIntegrationLastSuccessfulDate(connection?: Connections[keyof Connect return (connection as ConnectionWithLastSyncData)?.lastSync?.successfulDate; } -function getCurrentSageIntacctEntityName(policy?: Policy): string | undefined { +function getCurrentSageIntacctEntityName(policy: Policy | undefined, defaultNameIfNoEntity: string): string | undefined { const currentEntityID = policy?.connections?.intacct?.config?.entity; + if (!currentEntityID) { + return defaultNameIfNoEntity; + } const entities = policy?.connections?.intacct?.data?.entities; return entities?.find((entity) => entity.id === currentEntityID)?.name; } diff --git a/src/pages/workspace/accounting/PolicyAccountingPage.tsx b/src/pages/workspace/accounting/PolicyAccountingPage.tsx index 4391ba11eb025..9202591de7f2b 100644 --- a/src/pages/workspace/accounting/PolicyAccountingPage.tsx +++ b/src/pages/workspace/accounting/PolicyAccountingPage.tsx @@ -303,7 +303,7 @@ function PolicyAccountingPage({policy}: PolicyAccountingPageProps) { : { description: translate('workspace.intacct.entity'), iconRight: Expensicons.ArrowRight, - title: getCurrentSageIntacctEntityName(policy), + title: getCurrentSageIntacctEntityName(policy, translate('workspace.common.topLevel')), wrapperStyle: [styles.sectionMenuItemTopDescription], titleStyle: styles.fontWeightNormal, shouldShowRightIcon: true, diff --git a/src/pages/workspace/accounting/intacct/SageIntacctEntityPage.tsx b/src/pages/workspace/accounting/intacct/SageIntacctEntityPage.tsx index d2d7d7c3c0458..a841954563e73 100644 --- a/src/pages/workspace/accounting/intacct/SageIntacctEntityPage.tsx +++ b/src/pages/workspace/accounting/intacct/SageIntacctEntityPage.tsx @@ -2,6 +2,7 @@ import React from 'react'; import RadioListItem from '@components/SelectionList/RadioListItem'; import type {ListItem} from '@components/SelectionList/types'; import SelectionScreen from '@components/SelectionScreen'; +import useLocalize from '@hooks/useLocalize'; import useThemeStyles from '@hooks/useThemeStyles'; import {clearSageIntacctErrorField, updateSageIntacctEntity} from '@libs/actions/connections/SageIntacct'; import * as ErrorUtils from '@libs/ErrorUtils'; @@ -15,22 +16,28 @@ function SageIntacctEntityPage({policy}: WithPolicyProps) { const styles = useThemeStyles(); const config = policy?.connections?.intacct?.config; const entityID = config?.entity ?? ''; + const {translate} = useLocalize(); const policyID = policy?.id ?? '-1'; - const sections = - policy?.connections?.intacct?.data?.entities.map((entity) => ({ + const sections = [ + { + text: translate('workspace.common.topLevel'), + value: translate('workspace.common.topLevel'), + keyForList: '', + isSelected: entityID === '', + }, + ]; + policy?.connections?.intacct?.data?.entities.forEach((entity) => { + sections.push({ text: entity.name, value: entity.name, keyForList: entity.id, isSelected: entity.id === entityID, - })) ?? []; + }); + }); const saveSelection = ({keyForList}: ListItem) => { - if (!keyForList) { - return; - } - updateSageIntacctEntity(policyID, keyForList ?? ''); Navigation.goBack(); }; diff --git a/src/pages/workspace/accounting/intacct/advanced/SageIntacctAdvancedPage.tsx b/src/pages/workspace/accounting/intacct/advanced/SageIntacctAdvancedPage.tsx index c235d3e8a518b..5a0df17fc92c0 100644 --- a/src/pages/workspace/accounting/intacct/advanced/SageIntacctAdvancedPage.tsx +++ b/src/pages/workspace/accounting/intacct/advanced/SageIntacctAdvancedPage.tsx @@ -88,7 +88,7 @@ function SageIntacctAdvancedPage({policy}: WithPolicyProps) {