diff --git a/src/languages/de.ts b/src/languages/de.ts
index 1e5a4131ca3a..93de4f1d5317 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -26,6 +26,8 @@ import type en from './en';
import type {
ChangeFieldParams,
ConciergeBrokenCardConnectionParams,
+ ConnectionDefaultVendorHelperTextParams,
+ ConnectionDisplayNameParams,
ConnectionNameParams,
DelegateRoleParams,
DeleteActionParams,
@@ -5068,7 +5070,9 @@ ${amount} für ${merchant} – ${date}`,
creditCardAccount: 'Kreditkartenkonto',
defaultVendor: 'Standardanbieter',
defaultVendorDescription: (isReimbursable: boolean) =>
- `Legen Sie einen Standardlieferanten fest, der auf ${isReimbursable ? '' : 'nicht-'}erstattungsfähige Ausgaben angewendet wird, für die in Sage Intacct kein übereinstimmender Lieferant vorhanden ist.`,
+ isReimbursable
+ ? `Legen Sie einen Standardlieferanten fest, der auf erstattungsfähige Ausgaben angewendet wird, für die es in Sage Intacct keinen passenden Lieferanten gibt.`
+ : `Ausgaben, die nicht mit Ihren Sage Intacct-Lieferanten abgeglichen werden können, werden standardmäßig diesem Lieferanten zugeordnet.`,
exportDescription: 'Konfigurieren Sie, wie Expensify Daten nach Sage Intacct exportiert.',
exportPreferredExporterNote:
'Der bevorzugte Exporteur kann jede Workspace-Adminperson sein, muss jedoch auch Domain-Admin sein, wenn du in den Domaineinstellungen unterschiedliche Exportkonten für einzelne Firmenkarten festlegst.',
@@ -6963,6 +6967,12 @@ Der Control-Tarif beginnt bei 9 $ pro aktivem Mitglied und Monat.`,
exportCompanyCard: 'Firmenkartenausgaben exportieren als',
exportDate: 'Exportdatum',
defaultVendor: 'Standardanbieter',
+ defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) =>
+ isSet
+ ? `Ausgaben, die nicht automatisch abgeglichen werden, werden standardmäßig diesem ${connectionName}-Lieferanten zugeordnet.`
+ : `Spesen, die nicht automatisch abgeglichen werden, werden standardmäßig diesem ${connectionName}-Lieferanten zugeordnet. Andernfalls werden sie als „Credit Card Misc.“ exportiert.`,
+ defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) =>
+ `Wählen Sie einen Standard-${connectionName}-Anbieter für Ausgaben, die nicht automatisch zugeordnet werden.`,
defaultAccount: 'Standardkonto',
autoSync: 'Automatische Synchronisierung',
autoSyncDescription: 'NetSuite und Expensify automatisch jeden Tag synchronisieren. Finalisierte Berichte in Echtzeit exportieren',
diff --git a/src/languages/en.ts b/src/languages/en.ts
index 75bfadee2ca7..dd26a1bbf836 100644
--- a/src/languages/en.ts
+++ b/src/languages/en.ts
@@ -14,6 +14,8 @@ import startCase from 'lodash/startCase';
import type {
ChangeFieldParams,
ConciergeBrokenCardConnectionParams,
+ ConnectionDefaultVendorHelperTextParams,
+ ConnectionDisplayNameParams,
ConnectionNameParams,
DelegateRoleParams,
DeleteActionParams,
@@ -5180,7 +5182,9 @@ const translations = {
creditCardAccount: 'Credit card account',
defaultVendor: 'Default vendor',
defaultVendorDescription: (isReimbursable: boolean) =>
- `Set a default vendor that will apply to ${isReimbursable ? '' : 'non-'}reimbursable expenses that don't have a matching vendor in Sage Intacct.`,
+ isReimbursable
+ ? `Set a default vendor that will apply to reimbursable expenses that don't have a matching vendor in Sage Intacct.`
+ : `Expenses that can't be matched to your Sage Intacct vendors will default to this vendor.`,
exportDescription: 'Configure how Expensify data exports to Sage Intacct.',
exportPreferredExporterNote:
'The preferred exporter can be any workspace admin, but must also be a Domain Admin if you set different export accounts for individual company cards in Domain Settings.',
@@ -7066,6 +7070,11 @@ const translations = {
exportCompanyCard: 'Export company card expenses as',
exportDate: 'Export date',
defaultVendor: 'Default vendor',
+ defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) =>
+ isSet
+ ? `Expenses that don't auto-match will default to this ${connectionName} vendor.`
+ : `Expenses that don't auto-match will default to this ${connectionName} vendor. Otherwise, they'll export as Credit Card Misc.`,
+ defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `Choose a default ${connectionName} vendor for expenses that don't match automatically.`,
defaultAccount: 'Default account',
autoSync: 'Auto-sync',
autoSyncDescription: 'Sync NetSuite and Expensify automatically, every day. Export finalized report in realtime',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 5e173ef30b78..384b57dc02ae 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -17,6 +17,8 @@ import {CONST as COMMON_CONST, Str} from 'expensify-common';
import type en from './en';
import type {
ConciergeBrokenCardConnectionParams,
+ ConnectionDefaultVendorHelperTextParams,
+ ConnectionDisplayNameParams,
EmptyViolationSnapshotResultsSubtitleParams,
PaidElsewhereParams,
RemoveCopilotAccessConfirmationParams,
@@ -4961,8 +4963,10 @@ ${amount} para ${merchant} - ${date}`,
travelInvoicingDescription: 'Los gastos de viaje se exportarán como cargos de tarjeta de crédito a la cuenta de Sage Intacct especificada a continuación.',
creditCardAccount: 'Cuenta de tarjeta de crédito',
defaultVendor: 'Proveedor por defecto',
- defaultVendorDescription: (isReimbursable) =>
- `Establezca un proveedor predeterminado que se aplicará a los gastos ${isReimbursable ? '' : 'no '}reembolsables que no tienen un proveedor coincidente en Sage Intacct.`,
+ defaultVendorDescription: (isReimbursable: boolean) =>
+ isReimbursable
+ ? `Establece un proveedor predeterminado que se aplicará a los gastos reembolsables que no tengan un proveedor coincidente en Sage Intacct.`
+ : `Los gastos que no se puedan asignar a tus proveedores de Sage Intacct se asociarán por defecto a este proveedor.`,
exportDescription: 'Configure cómo se exportan los datos de Expensify a Sage Intacct.',
exportPreferredExporterNote:
'El exportador preferido puede ser cualquier administrador del área de trabajo, pero también debe ser un administrador del dominio si establece diferentes cuentas de exportación para tarjetas de empresa individuales en Configuración del dominio.',
@@ -6749,6 +6753,12 @@ El plan Controlar empieza en 9 $ por miembro activo al mes.`,
exportCompanyCard: 'Exportar gastos de la tarjeta de empresa como',
exportDate: 'Fecha de exportación',
defaultVendor: 'Proveedor predeterminado',
+ defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) =>
+ isSet
+ ? `Los gastos que no se asignen automáticamente se asociarán por defecto a este proveedor de ${connectionName}.`
+ : `Los gastos que no se concilien automáticamente se asignarán por defecto a este proveedor de ${connectionName}. De lo contrario, se exportarán como Credit Card Misc.`,
+ defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) =>
+ `Elige un proveedor predeterminado de ${connectionName} para los gastos que no se asignen automáticamente.`,
defaultAccount: 'Cuenta predeterminada',
autoSync: 'Autosincronización',
autoSyncDescription: 'Sincroniza NetSuite y Expensify automáticamente, todos los días. Exporta el informe finalizado en tiempo real',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 664cee6663fb..aae1500ef836 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -26,6 +26,8 @@ import type en from './en';
import type {
ChangeFieldParams,
ConciergeBrokenCardConnectionParams,
+ ConnectionDefaultVendorHelperTextParams,
+ ConnectionDisplayNameParams,
ConnectionNameParams,
DelegateRoleParams,
DeleteActionParams,
@@ -5078,7 +5080,9 @@ ${amount} pour ${merchant} - ${date}`,
creditCardAccount: 'Compte de carte de crédit',
defaultVendor: 'Fournisseur par défaut',
defaultVendorDescription: (isReimbursable: boolean) =>
- `Définissez un fournisseur par défaut qui s’appliquera aux ${isReimbursable ? '' : 'non-'}dépenses remboursables qui n’ont pas de fournisseur correspondant dans Sage Intacct.`,
+ isReimbursable
+ ? `Définissez un fournisseur par défaut qui s’appliquera aux dépenses remboursables qui n’ont pas de fournisseur correspondant dans Sage Intacct.`
+ : `Les dépenses qui ne peuvent pas être rapprochées de vos fournisseurs Sage Intacct seront par défaut associées à ce fournisseur.`,
exportDescription: 'Configurez comment les données Expensify sont exportées vers Sage Intacct.',
exportPreferredExporterNote:
'L’exportateur préféré peut être n’importe quel administrateur d’espace de travail, mais doit également être un administrateur de domaine si vous définissez des comptes d’exportation différents pour chaque carte d’entreprise individuelle dans les paramètres de domaine.',
@@ -6990,6 +6994,12 @@ Le forfait Control commence à 9 $ par Membre actif et par mois.`,
exportCompanyCard: 'Exporter les dépenses de carte d’entreprise en tant que',
exportDate: 'Date d’exportation',
defaultVendor: 'Fournisseur par défaut',
+ defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) =>
+ isSet
+ ? `Les dépenses qui ne sont pas associées automatiquement seront par défaut rattachées à ce fournisseur ${connectionName}.`
+ : `Les dépenses qui ne sont pas appariées automatiquement seront par défaut associées à ce fournisseur ${connectionName}. Sinon, elles seront exportées en tant que « Credit Card Misc ».`,
+ defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) =>
+ `Choisissez un fournisseur ${connectionName} par défaut pour les dépenses qui ne correspondent pas automatiquement.`,
defaultAccount: 'Compte par défaut',
autoSync: 'Synchronisation automatique',
autoSyncDescription: 'Synchronisez automatiquement NetSuite et Expensify, chaque jour. Exportez les notes de frais finalisées en temps réel',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 6dc456a27c0c..28d48d7bc005 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -26,6 +26,8 @@ import type en from './en';
import type {
ChangeFieldParams,
ConciergeBrokenCardConnectionParams,
+ ConnectionDefaultVendorHelperTextParams,
+ ConnectionDisplayNameParams,
ConnectionNameParams,
DelegateRoleParams,
DeleteActionParams,
@@ -5047,7 +5049,9 @@ ${amount} per ${merchant} - ${date}`,
creditCardAccount: 'Conto della carta di credito',
defaultVendor: 'Fornitore predefinito',
defaultVendorDescription: (isReimbursable: boolean) =>
- `Imposta un fornitore predefinito che verrà applicato alle spese rimborsabili ${isReimbursable ? '' : 'non-'} che non hanno un fornitore corrispondente in Sage Intacct.`,
+ isReimbursable
+ ? `Imposta un fornitore predefinito che verrà applicato alle spese rimborsabili che non hanno un fornitore corrispondente in Sage Intacct.`
+ : `Le spese che non possono essere abbinate ai tuoi fornitori Sage Intacct verranno assegnate per impostazione predefinita a questo fornitore.`,
exportDescription: 'Configura come i dati di Expensify vengono esportati in Sage Intacct.',
exportPreferredExporterNote:
'L’esportatore preferito può essere qualsiasi amministratore dello spazio di lavoro, ma deve anche essere un Amministratore del dominio se imposti conti di esportazione diversi per le singole carte aziendali nelle Impostazioni del dominio.',
@@ -6944,6 +6948,12 @@ Il piano Control parte da 9 $ al mese per ogni membro attivo.`,
exportCompanyCard: 'Esporta le spese con carta aziendale come',
exportDate: 'Data di esportazione',
defaultVendor: 'Fornitore predefinito',
+ defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) =>
+ isSet
+ ? `Le spese che non corrispondono automaticamente verranno associate per impostazione predefinita a questo fornitore ${connectionName}.`
+ : `Le spese che non vengono abbinate automaticamente verranno associate per impostazione predefinita a questo fornitore ${connectionName}. In caso contrario, verranno esportate come “Credit Card Misc.”.`,
+ defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) =>
+ `Scegli un fornitore predefinito ${connectionName} per le spese che non vengono abbinate automaticamente.`,
defaultAccount: 'Conto predefinito',
autoSync: 'Sincronizzazione automatica',
autoSyncDescription: 'Sincronizza automaticamente NetSuite ed Expensify ogni giorno. Esporta i report finalizzati in tempo reale',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 11db3c3def10..366a29671cf8 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -26,6 +26,8 @@ import type en from './en';
import type {
ChangeFieldParams,
ConciergeBrokenCardConnectionParams,
+ ConnectionDefaultVendorHelperTextParams,
+ ConnectionDisplayNameParams,
ConnectionNameParams,
DelegateRoleParams,
DeleteActionParams,
@@ -5004,7 +5006,9 @@ ${integrationName === CONST.ONBOARDING_ACCOUNTING_MAPPING.other ? 'あなたの'
creditCardAccount: 'クレジットカード口座',
defaultVendor: 'デフォルトのベンダー',
defaultVendorDescription: (isReimbursable: boolean) =>
- `Sage Intacct で対応する仕入先がない ${isReimbursable ? '' : '非'}立替精算費用に適用されるデフォルトの仕入先を設定します。`,
+ isReimbursable
+ ? `Sage Intacct で一致する取引先がない立替経費に適用する、デフォルトの取引先を設定します。`
+ : `Sage Intacct のベンダーに照合できない経費は、デフォルトでこのベンダーに割り当てられます。`,
exportDescription: 'Expensify のデータを Sage Intacct へエクスポートする方法を設定します。',
exportPreferredExporterNote:
'優先されるエクスポーターは任意のワークスペース管理者にできますが、ドメイン設定で会社カードごとに別々のエクスポート先口座を設定している場合は、ドメイン管理者である必要もあります。',
@@ -6866,6 +6870,11 @@ Control プランは、アクティブメンバー1人あたり月額 $9 から
exportCompanyCard: '法人カード経費のエクスポート形式',
exportDate: 'エクスポート日',
defaultVendor: 'デフォルトのベンダー',
+ defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) =>
+ isSet
+ ? `自動照合されない経費は、デフォルトでこの ${connectionName} のベンダーに紐づきます。`
+ : `自動照合されない経費は、デフォルトでこの ${connectionName} の仕入先として処理されます。照合される場合は、「Credit Card Misc」としてエクスポートされます。`,
+ defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `自動的に照合されない経費に対して使用する、デフォルトの ${connectionName} 仕入先を選択します。`,
defaultAccount: 'デフォルトのアカウント',
autoSync: '自動同期',
autoSyncDescription: 'NetSuite と Expensify を毎日自動で同期。確定したレポートをリアルタイムでエクスポート',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index c774982e5ffe..034f882f95cf 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -26,6 +26,8 @@ import type en from './en';
import type {
ChangeFieldParams,
ConciergeBrokenCardConnectionParams,
+ ConnectionDefaultVendorHelperTextParams,
+ ConnectionDisplayNameParams,
ConnectionNameParams,
DelegateRoleParams,
DeleteActionParams,
@@ -5041,7 +5043,9 @@ ${amount} voor ${merchant} - ${date}`,
creditCardAccount: 'Creditcardrekening',
defaultVendor: 'Standaardleverancier',
defaultVendorDescription: (isReimbursable: boolean) =>
- `Stel een standaardleverancier in die wordt toegepast op ${isReimbursable ? '' : 'niet-'}declarabele uitgaven zonder overeenkomende leverancier in Sage Intacct.`,
+ isReimbursable
+ ? `Stel een standaardleverancier in die wordt toegepast op declarabele uitgaven waarvoor geen overeenkomende leverancier in Sage Intacct is.`
+ : `Uitgaven die niet kunnen worden gekoppeld aan je Sage Intacct-leveranciers, worden standaard aan deze leverancier toegewezen.`,
exportDescription: 'Configureer hoe Expensify-gegevens worden geëxporteerd naar Sage Intacct.',
exportPreferredExporterNote:
'De voorkeurs-exporteur kan elke werkruimtebeheerder zijn, maar moet ook een domeinbeheerder zijn als je in Domeininstellingen verschillende exportrekeningen instelt voor individuele bedrijfskaarten.',
@@ -6930,6 +6934,12 @@ Het Control-abonnement begint bij $9 per actieve deelnemer per maand.`,
exportCompanyCard: 'Bedrijfspaskosten exporteren als',
exportDate: 'Exportdatum',
defaultVendor: 'Standaardleverancier',
+ defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) =>
+ isSet
+ ? `Declaraties die niet automatisch worden gematcht, worden standaard aan deze ${connectionName}-leverancier gekoppeld.`
+ : `Declaraties die niet automatisch worden gekoppeld, worden standaard aan deze ${connectionName}-leverancier toegewezen. Anders worden ze geëxporteerd als Credit Card Misc.`,
+ defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) =>
+ `Kies een standaard ${connectionName}-leverancier voor onkosten die niet automatisch worden gekoppeld.`,
defaultAccount: 'Standaardrekening',
autoSync: 'Automatisch synchroniseren',
autoSyncDescription: 'Synchroniseer NetSuite en Expensify automatisch, elke dag. Exporteer een afgerond rapport in realtime',
diff --git a/src/languages/params.ts b/src/languages/params.ts
index 2c3d07d6ff72..bee26c1531c2 100644
--- a/src/languages/params.ts
+++ b/src/languages/params.ts
@@ -87,6 +87,15 @@ type ConnectionNameParams = {
connectionName: AllConnectionName;
};
+type ConnectionDisplayNameParams = {
+ connectionName: string;
+};
+
+type ConnectionDefaultVendorHelperTextParams = {
+ connectionName: string;
+ isSet: boolean;
+};
+
type ExportAgainModalDescriptionParams = {
reportName: string;
connectionName: ConnectionName;
@@ -175,6 +184,8 @@ export type {
UnshareParams,
UnsupportedFormulaValueErrorParams,
ConnectionNameParams,
+ ConnectionDisplayNameParams,
+ ConnectionDefaultVendorHelperTextParams,
ExportAgainModalDescriptionParams,
UpdateRoleParams,
OptionalParam,
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index ac30cc2c6efc..56b1ae69aac7 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -26,6 +26,8 @@ import type en from './en';
import type {
ChangeFieldParams,
ConciergeBrokenCardConnectionParams,
+ ConnectionDefaultVendorHelperTextParams,
+ ConnectionDisplayNameParams,
ConnectionNameParams,
DelegateRoleParams,
DeleteActionParams,
@@ -5027,7 +5029,9 @@ ${amount} dla ${merchant} - ${date}`,
creditCardAccount: 'Konto karty kredytowej',
defaultVendor: 'Domyślny dostawca',
defaultVendorDescription: (isReimbursable: boolean) =>
- `Ustaw domyślnego dostawcę, który zostanie zastosowany do ${isReimbursable ? '' : 'nie-'}wydatków podlegających zwrotowi, nieposiadających pasującego dostawcy w Sage Intacct.`,
+ isReimbursable
+ ? `Ustaw domyślnego dostawcę, który zostanie zastosowany do wydatków podlegających zwrotowi, nieposiadających pasującego dostawcy w Sage Intacct.`
+ : `Wydatki, których nie da się dopasować do twoich dostawców w Sage Intacct, zostaną domyślnie przypisane do tego dostawcy.`,
exportDescription: 'Skonfiguruj sposób eksportu danych z Expensify do Sage Intacct.',
exportPreferredExporterNote:
'Preferowanym eksporterem może być dowolny administrator przestrzeni roboczej, ale musi on również być administratorem domeny, jeśli w Ustawieniach domeny ustawisz różne konta eksportu dla poszczególnych kart firmowych.',
@@ -6911,6 +6915,12 @@ Plan Control zaczyna się od 9 USD za aktywnego członka miesięcznie.`,
exportCompanyCard: 'Eksportuj wydatki z firmowej karty jako',
exportDate: 'Data eksportu',
defaultVendor: 'Domyślny dostawca',
+ defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) =>
+ isSet
+ ? `Wydatki, które nie zostaną automatycznie dopasowane, domyślnie trafią do tego dostawcy ${connectionName}.`
+ : `Wydatki, które nie zostaną automatycznie dopasowane, domyślnie trafią do tego dostawcy ${connectionName}. W przeciwnym razie zostaną wyeksportowane jako Credit Card Misc.`,
+ defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) =>
+ `Wybierz domyślnego dostawcę ${connectionName} dla wydatków, które nie zostaną dopasowane automatycznie.`,
defaultAccount: 'Domyślne konto',
autoSync: 'Automatyczna synchronizacja',
autoSyncDescription: 'Synchronizuj NetSuite i Expensify automatycznie, każdego dnia. Eksportuj sfinalizowany raport w czasie rzeczywistym',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index fe6a996bfccf..fb5ea3022e9e 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -26,6 +26,8 @@ import type en from './en';
import type {
ChangeFieldParams,
ConciergeBrokenCardConnectionParams,
+ ConnectionDefaultVendorHelperTextParams,
+ ConnectionDisplayNameParams,
ConnectionNameParams,
DelegateRoleParams,
DeleteActionParams,
@@ -5033,7 +5035,9 @@ ${amount} para ${merchant} - ${date}`,
creditCardAccount: 'Conta de cartão de crédito',
defaultVendor: 'Fornecedor padrão',
defaultVendorDescription: (isReimbursable: boolean) =>
- `Defina um fornecedor padrão que será aplicado às despesas reembolsáveis ${isReimbursable ? '' : 'não-'} que não tiverem um fornecedor correspondente no Sage Intacct.`,
+ isReimbursable
+ ? `Defina um fornecedor padrão que será aplicado às despesas reembolsáveis que não tiverem um fornecedor correspondente no Sage Intacct.`
+ : `Despesas que não puderem ser correspondidas aos seus fornecedores do Sage Intacct serão atribuídas a este fornecedor por padrão.`,
exportDescription: 'Configure como os dados do Expensify são exportados para o Sage Intacct.',
exportPreferredExporterNote:
'O exportador preferencial pode ser qualquer administrador do espaço de trabalho, mas também deve ser um Administrador de Domínio se você definir diferentes contas de exportação para cartões corporativos individuais em Configurações de Domínio.',
@@ -6923,6 +6927,12 @@ O plano Control começa em US$ 9 por membro ativo por mês.`,
exportCompanyCard: 'Exportar despesas de cartão corporativo como',
exportDate: 'Data de exportação',
defaultVendor: 'Fornecedor padrão',
+ defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) =>
+ isSet
+ ? `Despesas que não forem conciliadas automaticamente serão atribuídas por padrão a este fornecedor ${connectionName}.`
+ : `As despesas que não corresponderem automaticamente serão associadas por padrão a este fornecedor ${connectionName}. Caso contrário, serão exportadas como Credit Card Misc.`,
+ defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) =>
+ `Escolha um fornecedor padrão do ${connectionName} para despesas que não forem correspondidas automaticamente.`,
defaultAccount: 'Conta padrão',
autoSync: 'Sincronização automática',
autoSyncDescription: 'Sincronize NetSuite e Expensify automaticamente, todos os dias. Exporte relatórios finalizados em tempo real',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 487d47fe7611..312f626be920 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -26,6 +26,8 @@ import type en from './en';
import type {
ChangeFieldParams,
ConciergeBrokenCardConnectionParams,
+ ConnectionDefaultVendorHelperTextParams,
+ ConnectionDisplayNameParams,
ConnectionNameParams,
DelegateRoleParams,
DeleteActionParams,
@@ -4888,7 +4890,8 @@ ${amount},商户:${merchant} - 日期:${date}`,
travelInvoicingDescription: '差旅费用将作为信用卡费用导出到下面指定的 Sage Intacct 账户。',
creditCardAccount: '信用卡账户',
defaultVendor: '默认供应商',
- defaultVendorDescription: (isReimbursable: boolean) => `为没有在 Sage Intacct 中匹配供应商的${isReimbursable ? '' : '非'}可报销费用设置一个默认供应商。`,
+ defaultVendorDescription: (isReimbursable: boolean) =>
+ isReimbursable ? `为可报销但在 Sage Intacct 中没有匹配供应商的费用设置一个默认供应商。` : `无法匹配到 Sage Intacct 供应商的报销将默认归到此供应商名下。`,
exportDescription: '配置 Expensify 数据导出到 Sage Intacct 的方式。',
exportPreferredExporterNote: '首选导出人可以是任意工作区管理员,但如果你在“域设置”中为各个公司卡设置了不同的导出账户,则该导出人还必须是域管理员。',
exportPreferredExporterSubNote: '设置完成后,首选导出人将在其账户中看到可供导出的报表。',
@@ -6711,6 +6714,9 @@ _如需更详细的说明,请[访问我们的帮助网站](${CONST.NETSUITE_IM
exportCompanyCard: '导出公司卡费用为',
exportDate: '导出日期',
defaultVendor: '默认供应商',
+ defaultVendorHelperText: ({connectionName, isSet}: ConnectionDefaultVendorHelperTextParams) =>
+ isSet ? `未自动匹配的报销将默认归入此 ${connectionName} 供应商。` : `未自动匹配的报销将默认归到此 ${connectionName} 供应商。否则,它们将以“Credit Card Misc”导出。`,
+ defaultVendorSelectHeader: ({connectionName}: ConnectionDisplayNameParams) => `为未能自动匹配的报销选择一个默认的 ${connectionName} 供应商。`,
defaultAccount: '默认账户',
autoSync: '自动同步',
autoSyncDescription: '每天自动同步 NetSuite 和 Expensify。实时导出已完成报表',
diff --git a/src/pages/workspace/accounting/intacct/export/DynamicSageIntacctDefaultVendorPage.tsx b/src/pages/workspace/accounting/intacct/export/DynamicSageIntacctDefaultVendorPage.tsx
index 92409656f518..f06bf1861a3f 100644
--- a/src/pages/workspace/accounting/intacct/export/DynamicSageIntacctDefaultVendorPage.tsx
+++ b/src/pages/workspace/accounting/intacct/export/DynamicSageIntacctDefaultVendorPage.tsx
@@ -72,7 +72,13 @@ function DynamicSageIntacctDefaultVendorPage() {
const listHeaderComponent = useMemo(
() => (
- {translate('workspace.sageIntacct.defaultVendorDescription', isReimbursable)}
+
+ {isReimbursable
+ ? translate('workspace.sageIntacct.defaultVendorDescription', true)
+ : translate('workspace.accounting.defaultVendorSelectHeader', {
+ connectionName: translate('workspace.accounting.connectionName', {connectionName: CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT}),
+ })}
+
),
[translate, styles.pb2, styles.ph5, styles.pb5, styles.textNormal, isReimbursable],
diff --git a/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx b/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx
index ea1c385e782b..51012db9b203 100644
--- a/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx
+++ b/src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx
@@ -1,26 +1,19 @@
-import Accordion from '@components/Accordion';
import ConnectionLayout from '@components/ConnectionLayout';
import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription';
import OfflineWithFeedback from '@components/OfflineWithFeedback';
-import useAccordionAnimation from '@hooks/useAccordionAnimation';
import useLocalize from '@hooks/useLocalize';
import useThemeStyles from '@hooks/useThemeStyles';
-import {getLatestErrorField} from '@libs/ErrorUtils';
import createDynamicRoute from '@libs/Navigation/helpers/dynamicRoutesUtils/createDynamicRoute';
import Navigation from '@libs/Navigation/Navigation';
import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types';
import type {SettingsNavigatorParamList} from '@libs/Navigation/types';
import {areSettingsInErrorFields, getSageIntacctNonReimbursableActiveDefaultVendor, settingsPendingAction} from '@libs/PolicyUtils';
-import type {ExtendedMenuItemWithSubscribedSettings, MenuItemToRender} from '@pages/workspace/accounting/intacct/types';
+import type {MenuItemToRender} from '@pages/workspace/accounting/intacct/types';
import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections';
import withPolicyConnections from '@pages/workspace/withPolicyConnections';
-import ToggleSettingOptionRow from '@pages/workspace/workflows/ToggleSettingsOptionRow';
-
-import {updateSageIntacctDefaultVendor} from '@userActions/connections/SageIntacct';
-import {clearSageIntacctErrorField} from '@userActions/Policy/Policy';
import CONST from '@src/CONST';
import ROUTES, {DYNAMIC_ROUTES} from '@src/ROUTES';
@@ -39,15 +32,9 @@ function SageIntacctNonReimbursableExpensesPage({policy}: WithPolicyConnectionsP
const activeDefaultVendor = getSageIntacctNonReimbursableActiveDefaultVendor(policy);
const defaultVendorName = getDefaultVendorName(activeDefaultVendor, intacctData?.vendors);
- const expandedCondition = !(
- !config?.export.nonReimbursable ||
- (config?.export.nonReimbursable === CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.CREDIT_CARD_CHARGE && !config?.export.nonReimbursableCreditCardChargeDefaultVendor)
- );
const route = useRoute>();
const backTo = route.params?.backTo;
- const {isAccordionExpanded, shouldAnimateAccordionSection} = useAccordionAnimation(expandedCondition);
-
const renderDefault = (item: MenuItemToRender) => {
return (
{
+ type: 'menuitem',
+ title: defaultVendorName && defaultVendorName !== '' ? defaultVendorName : undefined,
+ description: translate('workspace.sageIntacct.defaultVendor'),
+ helperText:
+ config?.export.nonReimbursable === CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.CREDIT_CARD_CHARGE
+ ? translate('workspace.accounting.defaultVendorHelperText', {
+ connectionName: translate('workspace.accounting.connectionName', {connectionName: CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT}),
+ isSet: !!(defaultVendorName && defaultVendorName !== ''),
+ })
+ : undefined,
+ onPress: () => {
if (!policyID) {
return;
}
- const vendor = enabled ? policy?.connections?.intacct?.data?.vendors?.[0]?.id : '';
- updateSageIntacctDefaultVendor(
- policyID,
- CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_CREDIT_CARD_VENDOR,
- vendor ?? '',
- config?.export.nonReimbursableCreditCardChargeDefaultVendor,
- );
- isAccordionExpanded.set(enabled);
- shouldAnimateAccordionSection.set(true);
+ Navigation.navigate(createDynamicRoute(DYNAMIC_ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_DEFAULT_VENDOR.getRoute(CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE.toLowerCase())));
},
- onCloseError: () => clearSageIntacctErrorField(policyID, CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_CREDIT_CARD_VENDOR),
- pendingAction: settingsPendingAction([CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_CREDIT_CARD_VENDOR], config?.pendingFields),
- errors: getLatestErrorField(config, CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_CREDIT_CARD_VENDOR),
- shouldHide: config?.export.nonReimbursable !== CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.CREDIT_CARD_CHARGE,
- },
- {
- type: 'accordion',
- children: [
- {
- type: 'menuitem',
- title: defaultVendorName && defaultVendorName !== '' ? defaultVendorName : undefined,
- description: translate('workspace.sageIntacct.defaultVendor'),
- onPress: () => {
- if (!policyID) {
- return;
- }
- Navigation.navigate(
- createDynamicRoute(DYNAMIC_ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_DEFAULT_VENDOR.getRoute(CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE.toLowerCase())),
- );
- },
- subscribedSettings: [
- config?.export.nonReimbursable === CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.VENDOR_BILL
- ? CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_VENDOR
- : CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_CREDIT_CARD_VENDOR,
- ],
- shouldHide:
- !config?.export.nonReimbursable ||
- (config?.export.nonReimbursable === CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.CREDIT_CARD_CHARGE &&
- !config?.export.nonReimbursableCreditCardChargeDefaultVendor),
- },
+ subscribedSettings: [
+ config?.export.nonReimbursable === CONST.SAGE_INTACCT_NON_REIMBURSABLE_EXPENSE_TYPE.VENDOR_BILL
+ ? CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_VENDOR
+ : CONST.SAGE_INTACCT_CONFIG.NON_REIMBURSABLE_CREDIT_CARD_VENDOR,
],
- shouldHide: false,
- shouldExpand: isAccordionExpanded,
- shouldAnimateSection: shouldAnimateAccordionSection,
+ shouldHide: !config?.export.nonReimbursable,
},
];
@@ -167,34 +122,7 @@ function SageIntacctNonReimbursableExpensesPage({policy}: WithPolicyConnectionsP
titleStyle={styles.ph5}
connectionName={CONST.POLICY.CONNECTIONS.NAME.SAGE_INTACCT}
>
- {menuItems
- .filter((item) => !item.shouldHide)
- .map((item) => {
- switch (item.type) {
- case 'toggle':
- // eslint-disable-next-line no-case-declarations
- const {type, shouldHide, key, ...rest} = item;
- return (
-
- );
- case 'accordion':
- return (
-
- {item.children.map((child) => renderDefault(child))}
-
- );
- default:
- return renderDefault(item);
- }
- })}
+ {menuItems.filter((item) => !item.shouldHide).map((item) => renderDefault(item))}
);
}
diff --git a/src/pages/workspace/accounting/intacct/types.ts b/src/pages/workspace/accounting/intacct/types.ts
index 1c75bdc8e2b5..5d80922f8d5f 100644
--- a/src/pages/workspace/accounting/intacct/types.ts
+++ b/src/pages/workspace/accounting/intacct/types.ts
@@ -14,6 +14,9 @@ type ExtendedMenuItemWithSubscribedSettings = MenuItemToRender | ToggleItemWithK
type MenuItemToRender = MenuItemWithSubscribedSettings & {
/** Optional hint text passed to the MenuItemWithTopDescription */
hintText?: string;
+
+ /** Optional muted helper text rendered below the MenuItemWithTopDescription */
+ helperText?: string;
};
type MenuItem = MenuItemProps & {