Sage Intacct: Default vendor as navigable arrow row with updated copy#97016
Sage Intacct: Default vendor as navigable arrow row with updated copy#97016MelvinBot wants to merge 3 commits into
Conversation
…copy Co-authored-by: Alex Beaman <Beamanator@users.noreply.github.com>
🦜 Polyglot Parrot! 🦜Squawk! Looks like you added some shiny new English strings. Allow me to parrot them back to you in other tongues: View the translation diffdiff --git a/src/languages/de.ts b/src/languages/de.ts
index 1e5a4131ca3..f3774296e40 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -5068,7 +5068,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 kein übereinstimmender Lieferant in Sage Intacct vorhanden ist.`
+ : `Spesen, die keinen Ihrer Sage Intacct-Lieferanten zugeordnet 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.',
@@ -5096,6 +5098,7 @@ ${amount} für ${merchant} – ${date}`,
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH]: 'Auslagenausgaben werden beim Bezahlen exportiert',
},
},
+ defaultVendorNotSet: 'Nicht festgelegt',
},
certinia: {
title: 'Certinia',
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 0e73480ece6..df5222c0d7e 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -4961,11 +4961,11 @@ ${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',
- defaultVendorNotSet: 'Sin establecer',
- defaultVendorDescription: (isReimbursable) =>
+ defaultVendorNotSet: 'No establecido',
+ defaultVendorDescription: (isReimbursable: boolean) =>
isReimbursable
- ? `Establezca un proveedor predeterminado que se aplicará a los gastos reembolsables que no tienen un proveedor coincidente en Sage Intacct.`
- : `Los gastos que no puedan asociarse a tus proveedores de Sage Intacct se asignarán a este proveedor por defecto.`,
+ ? `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 asociar con tus proveedores de Sage Intacct se asignarán a este proveedor de forma predeterminada.`,
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.',
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index 664cee6663f..6c56d2fb5ab 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -5078,7 +5078,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 sera appliqué aux dépenses remboursables n’ayant pas de fournisseur correspondant dans Sage Intacct.`
+ : `Les dépenses qui ne peuvent pas être rapprochées avec 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.',
@@ -5106,6 +5108,7 @@ ${amount} pour ${merchant} - ${date}`,
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH]: 'Les dépenses payées de votre poche seront exportées une fois remboursées',
},
},
+ defaultVendorNotSet: 'Non défini',
},
certinia: {
title: 'Certinia',
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 6dc456a27c0..bdcca84e43e 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -5047,7 +5047,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 associate 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.',
@@ -5075,6 +5077,7 @@ ${amount} per ${merchant} - ${date}`,
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH]: 'Le spese anticipate verranno esportate al momento del pagamento',
},
},
+ defaultVendorNotSet: 'Non impostato',
},
certinia: {
title: 'Certinia',
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 11db3c3def1..567fa3eeb28 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -5004,7 +5004,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:
'優先されるエクスポーターは任意のワークスペース管理者にできますが、ドメイン設定で会社カードごとに別々のエクスポート先口座を設定している場合は、ドメイン管理者である必要もあります。',
@@ -5031,6 +5033,7 @@ ${integrationName === CONST.ONBOARDING_ACCOUNTING_MAPPING.other ? 'あなたの'
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH]: '自己負担経費は支払われた時点でエクスポートされます',
},
},
+ defaultVendorNotSet: '未設定',
},
certinia: {
title: 'Certinia',
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index c774982e5ff..840a3048c59 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -5041,7 +5041,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 vergoedbare uitgaven waarvoor geen overeenkomende leverancier in Sage Intacct bestaat.`
+ : `Declaraties die niet gekoppeld kunnen worden 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.',
@@ -5069,6 +5071,7 @@ ${amount} voor ${merchant} - ${date}`,
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH]: 'Uit eigen zak gemaakte uitgaven worden geëxporteerd zodra ze zijn betaald',
},
},
+ defaultVendorNotSet: 'Niet ingesteld',
},
certinia: {
title: 'Certinia',
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index ac30cc2c6ef..167b8849d83 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -5027,7 +5027,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 kontrahenta, który będzie stosowany do wydatków podlegających zwrotowi, nieposiadających pasującego kontrahenta w Sage Intacct.`
+ : `Wydatki, których nie da się dopasować do Twoich dostawcó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.',
@@ -5055,6 +5057,7 @@ ${amount} dla ${merchant} - ${date}`,
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH]: 'Wydatki z własnej kieszeni zostaną wyeksportowane po opłaceniu',
},
},
+ defaultVendorNotSet: 'Nie ustawiono',
},
certinia: {
title: 'Certinia',
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index fe6a996bfcc..147a8f60d41 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -5033,7 +5033,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.`
+ : `As despesas que não puderem ser conciliadas com 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.',
@@ -5060,6 +5062,7 @@ ${amount} para ${merchant} - ${date}`,
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH]: 'Despesas reembolsáveis serão exportadas quando pagas',
},
},
+ defaultVendorNotSet: 'Não definido',
},
certinia: {
title: 'Certinia',
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index 487d47fe761..75602f61bd6 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -4888,7 +4888,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: '设置完成后,首选导出人将在其账户中看到可供导出的报表。',
@@ -4913,6 +4914,7 @@ ${amount},商户:${merchant} - 日期:${date}`,
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH]: '自掏腰包的报销在支付时会导出',
},
},
+ defaultVendorNotSet: '未设置',
},
certinia: {
title: 'Certinia',
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
|
@MelvinBot apply the polyglot parrot fix |
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
Co-authored-by: Alex Beaman <Beamanator@users.noreply.github.com>
|
Fixed the failing Root cause: The PR added the Fix: Added The |
Co-authored-by: Alex Beaman <Beamanator@users.noreply.github.com>
|
🦜 Applied the Polyglot Parrot translations in The only remaining un-applied part of the parrot patch was the I intentionally skipped the patch's Note: |
|
The only failing check is Why it's failing: the check reports Why I'm not "fixing" it by pushing: the PR Author Checklist boxes attest to manual testing (running the flow on all platforms, verifying no console errors, etc.) that a human must actually perform and confirm. The PR body still has the Check results at time of analysisAll code-related checks passed:
Only Next steps: fill out the |
|
Re-checked — the state is unchanged. The only failing check is still There's nothing for me to fix in code, and I won't tick the author-checklist boxes on your behalf — they attest to manual cross-platform testing you ( To clear this check: fill out the |
Explanation of Change
Design feedback on the Sage Intacct connection's Workspaces > Accounting > Export > Export company card expenses as page: the Default vendor row for the credit-card-charge (non-reimbursable) export path shipped as a toggle that revealed a nested select row inside an accordion. Per the approved plan, this reshapes it into a single, always-visible navigable arrow row.
What changed:
SageIntacctNonReimbursableExpensesPage.tsx, theToggleSettingOptionRow+Accordionmachinery for the default vendor was removed and replaced with a plainMenuItemWithTopDescriptionarrow row that navigates directly to the existing default-vendor select page (POLICY_ACCOUNTING_SAGE_INTACCT_DEFAULT_VENDOR). The now-deadtoggle/accordionrender branches,useAccordionAnimation, and theupdateSageIntacctDefaultVendor/clearSageIntacctErrorField/getLatestErrorFieldimports were dropped.defaultVendorNotSetstring added toen.ts/es.ts.Expenses that can't be matched to your Sage Intacct vendors will default to this vendor.It's wired through a mutedhelperTextbelow the row (only on the credit-card-charge path) via a newhelperTextfield onMenuItemToRender.defaultVendorDescriptionkept its(isReimbursable)signature (the reimbursable page still usestrue); only the non-reimbursable branch text changed, in bothen.tsandes.ts.Behavior preserved: the row stays hidden until a non-reimbursable export type is chosen; the VENDOR_BILL path continues to render its existing arrow row (no subtitle); the vendor list source is unchanged; no Auth/PHP changes.
Fixed Issues
$ https://github.com/Expensify/Expensify/issues/664271
PROPOSAL: https://github.com/Expensify/Expensify/issues/664271#issuecomment-5075633547
Tests
// TODO: The human co-author must fill out the tests you ran before marking this PR as "ready for review". Suggested steps: on a Sage Intacct workspace, set non-reimbursable export = Credit card charge; verify the Default vendor row renders as an arrow row (not a toggle) showing "Not set" with the subtitle
Expenses that can't be matched to your Sage Intacct vendors will default to this vendor.; tap it, pick a vendor, and verify the selection persists and shows in the row title; clear it and verify it round-trips back to "Not set" — on web + mobile.Offline tests
QA Steps
// TODO: The human co-author must fill out the QA tests before marking this PR as "ready for review", or the issue title must include "[No QA]."
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari