diff --git a/src/languages/de.ts b/src/languages/de.ts index d8ad68c5f01c..f880cae08810 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -4643,7 +4643,7 @@ ${amount} für ${merchant} – ${date}`, bankAccountDescription: 'Wähle aus, von wo Schecks versendet werden sollen.', creditCardAccount: 'Kreditkartenkonto', travelInvoicingDescription: 'Reisekosten werden als Kreditkartenbelastungen in das unten angegebene QuickBooks Online-Konto exportiert.', - companyCardsLocationEnabledDescription: + companyCardsLocationTagDescription: 'QuickBooks Online unterstützt keine Standorte beim Export von Kreditorenrechnungen, wenn Standorte als Tags importiert werden. Da in Ihrem Workspace Standorte als Tags importiert sind, ist diese Exportoption nicht verfügbar.', outOfPocketTaxEnabledDescription: 'QuickBooks Online unterstützt keine Steuern beim Export von Journalbuchungen. Da in Ihrem Workspace Steuern aktiviert sind, ist diese Exportoption nicht verfügbar.', diff --git a/src/languages/en.ts b/src/languages/en.ts index 5eaa0d8e4137..f943d81c6934 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -4729,7 +4729,7 @@ const translations = { bankAccountDescription: 'Choose where to send checks from.', creditCardAccount: 'Credit card account', travelInvoicingDescription: 'Travel expenses will export as credit card charges to the QuickBooks Online account specified below.', - companyCardsLocationEnabledDescription: + companyCardsLocationTagDescription: "QuickBooks Online doesn't support locations on vendor bill exports when locations are imported as tags. As you have locations imported as tags on your workspace, this export option is unavailable.", outOfPocketTaxEnabledDescription: "QuickBooks Online doesn't support taxes on journal entry exports. As you have taxes enabled on your workspace, this export option is unavailable.", diff --git a/src/languages/es.ts b/src/languages/es.ts index 8be9ba505753..ea16e0bc4810 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -4526,7 +4526,7 @@ ${amount} para ${merchant} - ${date}`, bankAccountDescription: 'Elige desde dónde enviar los cheques.', creditCardAccount: 'Cuenta de la tarjeta de crédito', travelInvoicingDescription: 'Los gastos de viaje se exportarán como cargos de tarjeta de crédito a la cuenta de QuickBooks Online especificada a continuación.', - companyCardsLocationEnabledDescription: + companyCardsLocationTagDescription: 'QuickBooks Online no admite ubicaciones en las exportaciones de facturas de proveedor cuando las ubicaciones se importan como etiquetas. Como tienes ubicaciones importadas como etiquetas en tu espacio de trabajo, esta opción de exportación no está disponible.', exportOutOfPocketExpensesDescription: 'Establezca cómo se exportan los gastos de bolsillo a QuickBooks Online.', exportCheckDescription: 'Crearemos un cheque desglosado para cada informe de Expensify y lo enviaremos desde la cuenta bancaria a continuación.', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index c4385d37de27..4e9908e05dea 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -2978,7 +2978,7 @@ ${amount} pour ${merchant} - ${date}`, phoneOrEmail: 'Téléphone ou e-mail', error: { agentSignInBlocked: - 'Les comptes d\u2019agent ne permettent pas de se connecter directement. Pour utiliser un agent, connectez-vous avec votre propre compte et accédez-y via Copilot.', + 'Les comptes d’agent ne permettent pas de se connecter directement. Pour utiliser un agent, connectez-vous avec votre propre compte et accédez-y via Copilot.', invalidFormatEmailLogin: 'L’adresse e-mail saisie est invalide. Veuillez corriger le format et réessayer.', }, cannotGetAccountDetails: 'Impossible de récupérer les détails du compte. Veuillez essayer de vous reconnecter.', @@ -4656,7 +4656,7 @@ ${amount} pour ${merchant} - ${date}`, bankAccountDescription: 'Choisissez d’où envoyer les chèques.', creditCardAccount: 'Compte de carte de crédit', travelInvoicingDescription: 'Les frais de voyage seront exportés comme des débits de carte de crédit vers le compte QuickBooks Online indiqué ci-dessous.', - companyCardsLocationEnabledDescription: + companyCardsLocationTagDescription: 'QuickBooks Online ne prend pas en charge les emplacements dans les exports de factures fournisseur lorsque les emplacements sont importés en tant que tags. Comme vous avez des emplacements importés en tant que tags dans votre espace de travail, cette option d’export n’est pas disponible.', outOfPocketTaxEnabledDescription: 'QuickBooks Online ne prend pas en charge les taxes sur les exportations d’écritures comptables. Comme les taxes sont activées sur votre espace de travail, cette option d’exportation n’est pas disponible.', diff --git a/src/languages/it.ts b/src/languages/it.ts index 4764a69ee3d5..bf4f369d04d0 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -4627,7 +4627,7 @@ ${amount} per ${merchant} - ${date}`, bankAccountDescription: 'Scegli da dove inviare gli assegni.', creditCardAccount: 'Conto della carta di credito', travelInvoicingDescription: 'Le spese di viaggio verranno esportate come addebiti su carta di credito nel conto QuickBooks Online specificato di seguito.', - companyCardsLocationEnabledDescription: + companyCardsLocationTagDescription: 'QuickBooks Online non supporta le sedi nelle esportazioni di fatture fornitore quando le sedi sono importate come tag. Poiché nel tuo spazio di lavoro hai sedi importate come tag, questa opzione di esportazione non è disponibile.', outOfPocketTaxEnabledDescription: 'QuickBooks Online non supporta le imposte nelle esportazioni delle registrazioni contabili. Poiché hai le imposte abilitate nel tuo spazio di lavoro, questa opzione di esportazione non è disponibile.', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index fd8c1f7507f3..dc7adbfdb3da 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -4593,7 +4593,7 @@ ${integrationName === CONST.ONBOARDING_ACCOUNTING_MAPPING.other ? 'あなたの' bankAccountDescription: '小切手の送金元を選択してください。', creditCardAccount: 'クレジットカード口座', travelInvoicingDescription: '旅費は、以下で指定した QuickBooks Online アカウントにクレジットカード請求としてエクスポートされます。', - companyCardsLocationEnabledDescription: + companyCardsLocationTagDescription: 'QuickBooks Online では、ロケーションをタグとして取り込んでいる場合、ベンダー請求書のエクスポートでロケーションをサポートしていません。現在このワークスペースではロケーションがタグとして取り込まれているため、このエクスポートオプションは利用できません。', outOfPocketTaxEnabledDescription: 'QuickBooks Online は仕訳のエクスポートで税金に対応していません。ワークスペースで税金が有効になっているため、このエクスポートオプションは利用できません。', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 6055394649b5..0d7e8a10d864 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -4621,7 +4621,7 @@ ${amount} voor ${merchant} - ${date}`, bankAccountDescription: 'Kies vanaf waar cheques worden verzonden.', creditCardAccount: 'Creditcardrekening', travelInvoicingDescription: 'Reiskosten worden als creditcardkosten geëxporteerd naar het hieronder opgegeven QuickBooks Online-account.', - companyCardsLocationEnabledDescription: + companyCardsLocationTagDescription: 'QuickBooks Online ondersteunt geen locaties op leveranciersfactuur-exporten wanneer locaties als tags worden geïmporteerd. Omdat je in je werkruimte locaties als tags hebt geïmporteerd, is deze exportoptie niet beschikbaar.', outOfPocketTaxEnabledDescription: 'QuickBooks Online ondersteunt geen belastingen op exports van journaalboekingen. Omdat je belastingen hebt ingeschakeld in je workspace, is deze exportoptie niet beschikbaar.', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 40381f173ae0..d281b3fa1905 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -4612,7 +4612,7 @@ ${amount} dla ${merchant} - ${date}`, bankAccountDescription: 'Wybierz, skąd wysyłać czeki.', creditCardAccount: 'Konto karty kredytowej', travelInvoicingDescription: 'Wydatki na podróże zostaną wyeksportowane jako obciążenia karty kredytowej na konto QuickBooks Online wskazane poniżej.', - companyCardsLocationEnabledDescription: + companyCardsLocationTagDescription: 'QuickBooks Online nie obsługuje lokalizacji w eksportach rachunków od dostawców, gdy lokalizacje są importowane jako tagi. Ponieważ w tym obszarze roboczym masz lokalizacje importowane jako tagi, ta opcja eksportu jest niedostępna.', outOfPocketTaxEnabledDescription: 'QuickBooks Online nie obsługuje podatków przy eksporcie zapisów w dzienniku. Ponieważ masz włączone podatki w swoim obszarze roboczym, ta opcja eksportu jest niedostępna.', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index a9e536c337ec..cd22fdd2b621 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -4616,7 +4616,7 @@ ${amount} para ${merchant} - ${date}`, bankAccountDescription: 'Escolha de onde enviar os cheques.', creditCardAccount: 'Conta de cartão de crédito', travelInvoicingDescription: 'As despesas de viagem serão exportadas como cobranças de cartão de crédito para a conta do QuickBooks Online especificada abaixo.', - companyCardsLocationEnabledDescription: + companyCardsLocationTagDescription: 'O QuickBooks Online não oferece suporte a locais em exportações de contas de fornecedor quando os locais são importados como tags. Como você tem locais importados como tags no seu workspace, essa opção de exportação não está disponível.', outOfPocketTaxEnabledDescription: 'QuickBooks Online não oferece suporte a impostos em exportações de lançamentos contábeis. Como você tem impostos ativados no seu espaço de trabalho, essa opção de exportação não está disponível.', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 58935f8e6812..fa6a0df663bd 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -4509,7 +4509,7 @@ ${amount},商户:${merchant} - 日期:${date}`, bankAccountDescription: '选择从哪里寄送支票。', creditCardAccount: '信用卡账户', travelInvoicingDescription: '差旅费用将作为信用卡费用导出到下面指定的 QuickBooks Online 账户。', - companyCardsLocationEnabledDescription: '当地点作为标签导入时,QuickBooks Online 不支持在供应商账单导出中使用地点。由于你的工作区中已将地点作为标签导入,因此此导出选项不可用。', + companyCardsLocationTagDescription: '当地点作为标签导入时,QuickBooks Online 不支持在供应商账单导出中使用地点。由于你的工作区中已将地点作为标签导入,因此此导出选项不可用。', outOfPocketTaxEnabledDescription: 'QuickBooks Online 不支持在日记账分录导出中包含税费。由于你已在工作区中启用税费功能,因此无法使用此导出选项。', outOfPocketTaxEnabledError: '启用税费时无法使用日记账分录。请选择其他导出选项。', advancedConfig: { diff --git a/src/pages/workspace/accounting/qbo/export/DynamicQuickbooksCompanyCardExpenseAccountSelectCardPage.tsx b/src/pages/workspace/accounting/qbo/export/DynamicQuickbooksCompanyCardExpenseAccountSelectCardPage.tsx index 5fd73147dbff..7061907e098d 100644 --- a/src/pages/workspace/accounting/qbo/export/DynamicQuickbooksCompanyCardExpenseAccountSelectCardPage.tsx +++ b/src/pages/workspace/accounting/qbo/export/DynamicQuickbooksCompanyCardExpenseAccountSelectCardPage.tsx @@ -10,7 +10,7 @@ import {updateManyPolicyConnectionConfigs} from '@libs/actions/connections'; import {getLatestErrorField} from '@libs/ErrorUtils'; import {settingsPendingAction} from '@libs/PolicyUtils'; import Navigation from '@navigation/Navigation'; -import {canUseVendorBillForCompanyCardExport} from '@pages/workspace/accounting/qbo/utils'; +import {areLocationsImportedAsTags} from '@pages/workspace/accounting/qbo/utils'; import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections'; import withPolicyConnections from '@pages/workspace/withPolicyConnections'; import {clearQBOErrorField} from '@userActions/Policy/Policy'; @@ -30,7 +30,7 @@ function DynamicQuickbooksCompanyCardExpenseAccountSelectCardPage({policy}: With const policyID = policy?.id; const qboConfig = policy?.connections?.quickbooksOnline?.config; const {creditCards, bankAccounts, accountPayable, vendors} = policy?.connections?.quickbooksOnline?.data ?? {}; - const canUseVendorBill = canUseVendorBillForCompanyCardExport(qboConfig); + const canUseVendorBill = !areLocationsImportedAsTags(qboConfig); const backPath = useDynamicBackPath(DYNAMIC_ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_COMPANY_CARD_EXPENSE_CARD_SELECT.path); const data: MenuItem[] = useMemo(() => { @@ -105,7 +105,7 @@ function DynamicQuickbooksCompanyCardExpenseAccountSelectCardPage({policy}: With connectionName={CONST.POLICY.CONNECTIONS.NAME.QBO} onBackButtonPress={goBack} listFooterContent={ - !canUseVendorBill ? {translate('workspace.qbo.companyCardsLocationEnabledDescription')} : undefined + !canUseVendorBill ? {translate('workspace.qbo.companyCardsLocationTagDescription')} : undefined } errors={getLatestErrorField(qboConfig, CONST.QUICKBOOKS_CONFIG.NON_REIMBURSABLE_EXPENSES_EXPORT_DESTINATION)} errorRowStyles={[styles.ph5, styles.pv3]} diff --git a/src/pages/workspace/accounting/qbo/export/DynamicQuickbooksOutOfPocketExpenseEntitySelectPage.tsx b/src/pages/workspace/accounting/qbo/export/DynamicQuickbooksOutOfPocketExpenseEntitySelectPage.tsx index 5b9c98fb094c..d2d617a0acaa 100644 --- a/src/pages/workspace/accounting/qbo/export/DynamicQuickbooksOutOfPocketExpenseEntitySelectPage.tsx +++ b/src/pages/workspace/accounting/qbo/export/DynamicQuickbooksOutOfPocketExpenseEntitySelectPage.tsx @@ -11,6 +11,7 @@ import {updateManyPolicyConnectionConfigs} from '@libs/actions/connections'; import {getLatestErrorField} from '@libs/ErrorUtils'; import {settingsPendingAction} from '@libs/PolicyUtils'; import Navigation from '@navigation/Navigation'; +import {areLocationsImportedAsTags} from '@pages/workspace/accounting/qbo/utils'; import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections'; import withPolicyConnections from '@pages/workspace/withPolicyConnections'; import {clearQBOErrorField} from '@userActions/Policy/Policy'; @@ -45,6 +46,7 @@ function DynamicQuickbooksOutOfPocketExpenseEntitySelectPage({policy}: WithPolic const styles = useThemeStyles(); const qboConfig = policy?.connections?.quickbooksOnline?.config; const {bankAccounts, accountPayable, journalEntryAccounts} = policy?.connections?.quickbooksOnline?.data ?? {}; + const locationsImportedAsTags = areLocationsImportedAsTags(qboConfig); const isTaxesEnabled = !!qboConfig?.syncTax; const shouldShowTaxError = isTaxesEnabled && qboConfig?.reimbursableExpensesExportDestination === CONST.QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE.JOURNAL_ENTRY; const hasErrors = !!qboConfig?.errorFields?.reimbursableExpensesExportDestination && shouldShowTaxError; @@ -59,7 +61,7 @@ function DynamicQuickbooksOutOfPocketExpenseEntitySelectPage({policy}: WithPolic text: translate('workspace.qbo.accounts.check'), keyForList: CONST.QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE.CHECK, isSelected: qboConfig?.reimbursableExpensesExportDestination === CONST.QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE.CHECK, - isShown: qboConfig?.syncLocations !== CONST.INTEGRATION_ENTITY_MAP_TYPES.TAG, + isShown: !locationsImportedAsTags, accounts: bankAccounts ?? [], }, { @@ -75,11 +77,11 @@ function DynamicQuickbooksOutOfPocketExpenseEntitySelectPage({policy}: WithPolic text: translate('workspace.qbo.accounts.bill'), keyForList: CONST.QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE.VENDOR_BILL, isSelected: qboConfig?.reimbursableExpensesExportDestination === CONST.QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE.VENDOR_BILL, - isShown: qboConfig?.syncLocations !== CONST.INTEGRATION_ENTITY_MAP_TYPES.TAG, + isShown: !locationsImportedAsTags, accounts: accountPayable ?? [], }, ], - [qboConfig?.reimbursableExpensesExportDestination, qboConfig?.syncLocations, translate, bankAccounts, accountPayable, journalEntryAccounts, isTaxesEnabled], + [qboConfig?.reimbursableExpensesExportDestination, locationsImportedAsTags, translate, bankAccounts, accountPayable, journalEntryAccounts, isTaxesEnabled], ); const filteredData = useMemo(() => data.filter((item) => item.isShown), [data]); diff --git a/src/pages/workspace/accounting/qbo/utils.ts b/src/pages/workspace/accounting/qbo/utils.ts index 6ff038a3c8a1..81b578fa5993 100644 --- a/src/pages/workspace/accounting/qbo/utils.ts +++ b/src/pages/workspace/accounting/qbo/utils.ts @@ -13,8 +13,8 @@ function shouldSwitchLocationsToReportFields(config?: QBOConnectionConfig): bool return config?.syncLocations === CONST.INTEGRATION_ENTITY_MAP_TYPES.TAG && !canImportLocationsAsTags(config); } -function canUseVendorBillForCompanyCardExport(config?: QBOConnectionConfig): boolean { - return config?.syncLocations !== CONST.INTEGRATION_ENTITY_MAP_TYPES.TAG; +function areLocationsImportedAsTags(config?: QBOConnectionConfig): boolean { + return config?.syncLocations === CONST.INTEGRATION_ENTITY_MAP_TYPES.TAG; } -export {canImportLocationsAsTags, shouldSwitchLocationsToReportFields, canUseVendorBillForCompanyCardExport}; +export {canImportLocationsAsTags, shouldSwitchLocationsToReportFields, areLocationsImportedAsTags}; diff --git a/tests/unit/pages/workspace/accounting/qbo/utilsTest.ts b/tests/unit/pages/workspace/accounting/qbo/utilsTest.ts index ddf57bed49c2..c390aae71f37 100644 --- a/tests/unit/pages/workspace/accounting/qbo/utilsTest.ts +++ b/tests/unit/pages/workspace/accounting/qbo/utilsTest.ts @@ -1,4 +1,4 @@ -import {canUseVendorBillForCompanyCardExport} from '@pages/workspace/accounting/qbo/utils'; +import {areLocationsImportedAsTags} from '@pages/workspace/accounting/qbo/utils'; import CONST from '@src/CONST'; import type {QBOConnectionConfig} from '@src/types/onyx/Policy'; @@ -7,20 +7,20 @@ const buildQBOConfig = (syncLocations?: QBOConnectionConfig['syncLocations']): Q syncLocations, }) as QBOConnectionConfig; -describe('canUseVendorBillForCompanyCardExport', () => { - it('allows vendor bill when QBO config is missing', () => { - expect(canUseVendorBillForCompanyCardExport()).toBe(true); +describe('areLocationsImportedAsTags', () => { + it('returns false when QBO config is missing', () => { + expect(areLocationsImportedAsTags()).toBe(false); }); - it('allows vendor bill when locations are not imported', () => { - expect(canUseVendorBillForCompanyCardExport(buildQBOConfig(CONST.INTEGRATION_ENTITY_MAP_TYPES.NONE))).toBe(true); + it('returns false when locations are not imported', () => { + expect(areLocationsImportedAsTags(buildQBOConfig(CONST.INTEGRATION_ENTITY_MAP_TYPES.NONE))).toBe(false); }); - it('allows vendor bill when locations are imported as report fields', () => { - expect(canUseVendorBillForCompanyCardExport(buildQBOConfig(CONST.INTEGRATION_ENTITY_MAP_TYPES.REPORT_FIELD))).toBe(true); + it('returns false when locations are imported as report fields', () => { + expect(areLocationsImportedAsTags(buildQBOConfig(CONST.INTEGRATION_ENTITY_MAP_TYPES.REPORT_FIELD))).toBe(false); }); - it('hides vendor bill when locations are imported as tags', () => { - expect(canUseVendorBillForCompanyCardExport(buildQBOConfig(CONST.INTEGRATION_ENTITY_MAP_TYPES.TAG))).toBe(false); + it('returns true when locations are imported as tags', () => { + expect(areLocationsImportedAsTags(buildQBOConfig(CONST.INTEGRATION_ENTITY_MAP_TYPES.TAG))).toBe(true); }); });