Repository navigation
Align Sage Intacct export date constants with backend REPORT_* names - #102118
Conversation
Co-authored-by: Shubham Agrawal <shubham1206agra@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 8f5880e7..19466270 100644
--- a/src/languages/de.ts
+++ b/src/languages/de.ts
@@ -5321,25 +5321,27 @@ ${amount} für ${merchant} – ${date}`,
description: 'Verwende dieses Datum beim Exportieren von Reports nach Sage Intacct.',
values: {
[CONST.SAGE_INTACCT_EXPORT_DATE.LAST_EXPENSE]: {
- label: 'Datum der letzten Ausgabe',
- description: 'Datum der letzten Ausgabe im Bericht.',
+ label: 'Eingereichtes Datum',
+ description: 'Datum, an dem der Bericht zur Genehmigung eingereicht wurde.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_EXPORTED]: {
- label: 'Exportdatum',
- description: 'Datum, an dem der Bericht nach Sage Intacct exportiert wurde.',
+ label: 'Eingereichtes Datum',
+ description: 'Datum, an dem der Bericht zur Genehmigung eingereicht wurde.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_SUBMITTED]: {
label: 'Eingereichtes Datum',
description: 'Datum, an dem der Bericht zur Genehmigung eingereicht wurde.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.EXPORTED]: {
- label: 'Exportdatum',
- description: 'Datum, an dem der Bericht nach Sage Intacct exportiert wurde.',
+ label: 'Eingereichtes Datum',
+ description: 'Datum, an dem der Bericht zur Genehmigung eingereicht wurde.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.SUBMITTED]: {
label: 'Eingereichtes Datum',
description: 'Datum, an dem der Bericht zur Genehmigung eingereicht wurde.',
},
+ label: 'Eingereichtes Datum',
+ description: 'Datum, an dem der Bericht zur Genehmigung eingereicht wurde.',
},
},
reimbursableExpenses: {
diff --git a/src/languages/el.ts b/src/languages/el.ts
index 731203f1..0806b2e9 100644
--- a/src/languages/el.ts
+++ b/src/languages/el.ts
@@ -5399,25 +5399,27 @@ ${amount} για ${merchant} - ${date}`,
description: 'Χρησιμοποιήστε αυτήν την ημερομηνία κατά την εξαγωγή αναφορών στο Sage Intacct.',
values: {
[CONST.SAGE_INTACCT_EXPORT_DATE.LAST_EXPENSE]: {
- label: 'Ημερομηνία τελευταίας δαπάνης',
- description: 'Ημερομηνία της πιο πρόσφατης δαπάνης στην αναφορά.',
+ label: 'Ημερομηνία υποβολής',
+ description: 'Ημερομηνία υποβολής της αναφοράς για έγκριση.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_EXPORTED]: {
- label: 'Ημερομηνία εξαγωγής',
- description: 'Ημερομηνία εξαγωγής της αναφοράς στο Sage Intacct.',
+ label: 'Ημερομηνία υποβολής',
+ description: 'Ημερομηνία υποβολής της αναφοράς για έγκριση.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_SUBMITTED]: {
label: 'Ημερομηνία υποβολής',
description: 'Ημερομηνία υποβολής της αναφοράς για έγκριση.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.EXPORTED]: {
- label: 'Ημερομηνία εξαγωγής',
- description: 'Ημερομηνία εξαγωγής της αναφοράς στο Sage Intacct.',
+ label: 'Ημερομηνία υποβολής',
+ description: 'Ημερομηνία υποβολής της αναφοράς για έγκριση.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.SUBMITTED]: {
label: 'Ημερομηνία υποβολής',
description: 'Ημερομηνία υποβολής της αναφοράς για έγκριση.',
},
+ label: 'Ημερομηνία υποβολής',
+ description: 'Ημερομηνία υποβολής της αναφοράς για έγκριση.',
},
},
reimbursableExpenses: {
diff --git a/src/languages/es.ts b/src/languages/es.ts
index 849db936..5823c6a9 100644
--- a/src/languages/es.ts
+++ b/src/languages/es.ts
@@ -5252,25 +5252,27 @@ ${amount} para ${merchant} - ${date}`,
description: 'Utilice esta fecha cuando exporte informes a Sage Intacct.',
values: {
[CONST.SAGE_INTACCT_EXPORT_DATE.LAST_EXPENSE]: {
- label: 'Fecha del último gasto',
- description: 'Fecha del gasto más reciente del informe.',
+ label: 'Fecha de envío',
+ description: 'Fecha en que se envió el informe para su aprobación.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_EXPORTED]: {
- label: 'Fecha de exportación',
- description: 'Fecha en la que se exportó el informe a Sage Intacct.',
+ label: 'Fecha de envío',
+ description: 'Fecha en que se envió el informe para su aprobación.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_SUBMITTED]: {
label: 'Fecha de envío',
- description: 'Fecha de presentación del informe para su aprobación.',
+ description: 'Fecha en que se envió el informe para su aprobación.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.EXPORTED]: {
- label: 'Fecha de exportación',
- description: 'Fecha en la que se exportó el informe a Sage Intacct.',
+ label: 'Fecha de envío',
+ description: 'Fecha en que se envió el informe para su aprobación.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.SUBMITTED]: {
label: 'Fecha de envío',
- description: 'Fecha de presentación del informe para su aprobación.',
+ description: 'Fecha en que se envió el informe para su aprobación.',
},
+ label: 'Fecha de envío',
+ description: 'Fecha en que se envió el informe para su aprobación.',
},
},
reimbursableExpenses: {
diff --git a/src/languages/fr.ts b/src/languages/fr.ts
index d8a0860f..d6f26c60 100644
--- a/src/languages/fr.ts
+++ b/src/languages/fr.ts
@@ -5328,25 +5328,27 @@ ${amount} pour ${merchant} - ${date}`,
description: 'Utiliser cette date lors de l’exportation des notes de frais vers Sage Intacct.',
values: {
[CONST.SAGE_INTACCT_EXPORT_DATE.LAST_EXPENSE]: {
- label: 'Date de la dernière dépense',
- description: 'Date de la dépense la plus récente sur la note de frais.',
+ label: 'Date de soumission',
+ description: 'Date à laquelle la note de frais a été soumise pour approbation.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_EXPORTED]: {
- label: 'Date d’exportation',
- description: 'Date à laquelle la note de frais a été exportée vers Sage Intacct.',
+ label: 'Date de soumission',
+ description: 'Date à laquelle la note de frais a été soumise pour approbation.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_SUBMITTED]: {
label: 'Date de soumission',
description: 'Date à laquelle la note de frais a été soumise pour approbation.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.EXPORTED]: {
- label: 'Date d’exportation',
- description: 'Date à laquelle la note de frais a été exportée vers Sage Intacct.',
+ label: 'Date de soumission',
+ description: 'Date à laquelle la note de frais a été soumise pour approbation.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.SUBMITTED]: {
label: 'Date de soumission',
description: 'Date à laquelle la note de frais a été soumise pour approbation.',
},
+ label: 'Date de soumission',
+ description: 'Date à laquelle la note de frais a été soumise pour approbation.',
},
},
reimbursableExpenses: {
diff --git a/src/languages/it.ts b/src/languages/it.ts
index 1a7c0998..0ea97993 100644
--- a/src/languages/it.ts
+++ b/src/languages/it.ts
@@ -5286,25 +5286,27 @@ ${amount} per ${merchant} - ${date}`,
description: 'Usa questa data quando esporti i report su Sage Intacct.',
values: {
[CONST.SAGE_INTACCT_EXPORT_DATE.LAST_EXPENSE]: {
- label: "Data dell'ultima spesa",
- description: 'Data della spesa più recente nel rendiconto.',
+ label: 'Data di invio',
+ description: 'Data in cui il report è stato inviato per l’approvazione.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_EXPORTED]: {
- label: 'Data di esportazione',
- description: 'Data in cui il report è stato esportato in Sage Intacct.',
+ label: 'Data di invio',
+ description: 'Data in cui il report è stato inviato per l’approvazione.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_SUBMITTED]: {
label: 'Data di invio',
- description: "Data in cui il report è stato inviato per l'approvazione.",
+ description: 'Data in cui il report è stato inviato per l’approvazione.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.EXPORTED]: {
- label: 'Data di esportazione',
- description: 'Data in cui il report è stato esportato in Sage Intacct.',
+ label: 'Data di invio',
+ description: 'Data in cui il report è stato inviato per l’approvazione.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.SUBMITTED]: {
label: 'Data di invio',
- description: "Data in cui il report è stato inviato per l'approvazione.",
+ description: 'Data in cui il report è stato inviato per l’approvazione.',
},
+ label: 'Data di invio',
+ description: 'Data in cui il report è stato inviato per l’approvazione.',
},
},
reimbursableExpenses: {
diff --git a/src/languages/ja.ts b/src/languages/ja.ts
index 6ff38579..8a8c4cc1 100644
--- a/src/languages/ja.ts
+++ b/src/languages/ja.ts
@@ -5240,25 +5240,27 @@ ${integrationName === CONST.ONBOARDING_ACCOUNTING_MAPPING.other ? 'あなたの'
description: 'Sage Intacct へレポートをエクスポートする際は、この日付を使用します。',
values: {
[CONST.SAGE_INTACCT_EXPORT_DATE.LAST_EXPENSE]: {
- label: '最終経費の日付',
- description: 'レポート内で最新の経費の日付。',
+ label: '提出日',
+ description: 'レポートが承認申請として提出された日付です。',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_EXPORTED]: {
- label: 'エクスポート日',
- description: 'レポートが Sage Intacct にエクスポートされた日付。',
+ label: '提出日',
+ description: 'レポートが承認申請として提出された日付です。',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_SUBMITTED]: {
label: '提出日',
- description: 'レポートが承認申請として提出された日付。',
+ description: 'レポートが承認申請として提出された日付です。',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.EXPORTED]: {
- label: 'エクスポート日',
- description: 'レポートが Sage Intacct にエクスポートされた日付。',
+ label: '提出日',
+ description: 'レポートが承認申請として提出された日付です。',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.SUBMITTED]: {
label: '提出日',
- description: 'レポートが承認申請として提出された日付。',
+ description: 'レポートが承認申請として提出された日付です。',
},
+ label: '提出日',
+ description: 'レポートが承認申請として提出された日付です。',
},
},
reimbursableExpenses: {
diff --git a/src/languages/nl.ts b/src/languages/nl.ts
index e35fee72..07f4f8ca 100644
--- a/src/languages/nl.ts
+++ b/src/languages/nl.ts
@@ -5284,25 +5284,27 @@ ${amount} voor ${merchant} - ${date}`,
description: 'Gebruik deze datum bij het exporteren van rapporten naar Sage Intacct.',
values: {
[CONST.SAGE_INTACCT_EXPORT_DATE.LAST_EXPENSE]: {
- label: 'Datum van laatste uitgave',
- description: 'Datum van de meest recente uitgave in het rapport.',
+ label: 'Datum ingediend',
+ description: 'Datum waarop het rapport ter goedkeuring is ingediend.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_EXPORTED]: {
- label: 'Exportdatum',
- description: 'Datum waarop het rapport is geëxporteerd naar Sage Intacct.',
+ label: 'Datum ingediend',
+ description: 'Datum waarop het rapport ter goedkeuring is ingediend.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_SUBMITTED]: {
- label: 'Ingediend op datum',
+ label: 'Datum ingediend',
description: 'Datum waarop het rapport ter goedkeuring is ingediend.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.EXPORTED]: {
- label: 'Exportdatum',
- description: 'Datum waarop het rapport is geëxporteerd naar Sage Intacct.',
+ label: 'Datum ingediend',
+ description: 'Datum waarop het rapport ter goedkeuring is ingediend.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.SUBMITTED]: {
- label: 'Ingediend op datum',
+ label: 'Datum ingediend',
description: 'Datum waarop het rapport ter goedkeuring is ingediend.',
},
+ label: 'Datum ingediend',
+ description: 'Datum waarop het rapport ter goedkeuring is ingediend.',
},
},
reimbursableExpenses: {
diff --git a/src/languages/pl.ts b/src/languages/pl.ts
index 333c07b2..70813c35 100644
--- a/src/languages/pl.ts
+++ b/src/languages/pl.ts
@@ -5312,25 +5312,27 @@ ${amount} dla ${merchant} - ${date}`,
description: 'Użyj tej daty podczas eksportowania raportów do Sage Intacct.',
values: {
[CONST.SAGE_INTACCT_EXPORT_DATE.LAST_EXPENSE]: {
- label: 'Data ostatniego wydatku',
- description: 'Data najnowszego wydatku w raporcie.',
+ label: 'Data wysłania',
+ description: 'Data przesłania raportu do zatwierdzenia.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_EXPORTED]: {
- label: 'Data eksportu',
- description: 'Data wyeksportowania raportu do Sage Intacct.',
+ label: 'Data wysłania',
+ description: 'Data przesłania raportu do zatwierdzenia.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_SUBMITTED]: {
label: 'Data wysłania',
description: 'Data przesłania raportu do zatwierdzenia.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.EXPORTED]: {
- label: 'Data eksportu',
- description: 'Data wyeksportowania raportu do Sage Intacct.',
+ label: 'Data wysłania',
+ description: 'Data przesłania raportu do zatwierdzenia.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.SUBMITTED]: {
label: 'Data wysłania',
description: 'Data przesłania raportu do zatwierdzenia.',
},
+ label: 'Data wysłania',
+ description: 'Data przesłania raportu do zatwierdzenia.',
},
},
reimbursableExpenses: {
diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts
index 753b2b3e..115ce1b4 100644
--- a/src/languages/pt-BR.ts
+++ b/src/languages/pt-BR.ts
@@ -5279,25 +5279,27 @@ ${amount} para ${merchant} - ${date}`,
description: 'Use esta data ao exportar relatórios para o Sage Intacct.',
values: {
[CONST.SAGE_INTACCT_EXPORT_DATE.LAST_EXPENSE]: {
- label: 'Data da última despesa',
- description: 'Data da despesa mais recente no relatório.',
+ label: 'Data de envio',
+ description: 'Data em que o relatório foi enviado para aprovação.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_EXPORTED]: {
- label: 'Data de exportação',
- description: 'Data em que o relatório foi exportado para o Sage Intacct.',
+ label: 'Data de envio',
+ description: 'Data em que o relatório foi enviado para aprovação.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_SUBMITTED]: {
label: 'Data de envio',
description: 'Data em que o relatório foi enviado para aprovação.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.EXPORTED]: {
- label: 'Data de exportação',
- description: 'Data em que o relatório foi exportado para o Sage Intacct.',
+ label: 'Data de envio',
+ description: 'Data em que o relatório foi enviado para aprovação.',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.SUBMITTED]: {
label: 'Data de envio',
description: 'Data em que o relatório foi enviado para aprovação.',
},
+ label: 'Data de envio',
+ description: 'Data em que o relatório foi enviado para aprovação.',
},
},
reimbursableExpenses: {
diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts
index df622694..e05e047c 100644
--- a/src/languages/zh-hans.ts
+++ b/src/languages/zh-hans.ts
@@ -5108,25 +5108,27 @@ ${amount},商户:${merchant} - 日期:${date}`,
description: '将导出报表到 Sage Intacct 时使用此日期。',
values: {
[CONST.SAGE_INTACCT_EXPORT_DATE.LAST_EXPENSE]: {
- label: '上次报销日期',
- description: '报表中最近一笔报销的日期。',
+ label: '提交日期',
+ description: '报表提交审批的日期。',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_EXPORTED]: {
- label: '导出日期',
- description: '报表导出到 Sage Intacct 的日期。',
+ label: '提交日期',
+ description: '报表提交审批的日期。',
},
[CONST.SAGE_INTACCT_EXPORT_DATE.REPORT_SUBMITTED]: {
label: '提交日期',
description: '报表提交审批的日期。',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.EXPORTED]: {
- label: '导出日期',
- description: '报表导出到 Sage Intacct 的日期。',
+ label: '提交日期',
+ description: '报表提交审批的日期。',
},
[CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY.SUBMITTED]: {
label: '提交日期',
description: '报表提交审批的日期。',
},
+ label: '提交日期',
+ description: '报表提交审批的日期。',
},
},
reimbursableExpenses: {
Note You can apply these changes to your branch by copying the patch to your clipboard, then running |
|
🤖 Android test steps verification results: The app loaded and Workspace → Accounting rendered without error on standalone Android NewDot, but Sage Intacct is behind the Control-plan paywall on the test account, so the actual change in this PR — the What this does and does not prove: no regression was introduced in app startup or the Accounting page, but the renamed constants were never rendered, so this run is not evidence the fix works. Verifying it needs a Control-plan workspace connected to Sage Intacct with its export date set to Exported Date or Submitted Date in Expensify Classic. |
|
🤖 Web test steps verification results: The app loaded cleanly and the Workspace Accounting page rendered correctly with no errors, but Sage Intacct's Export date screen could not be verified because the test workspace is on the Collect plan, which gates Sage Intacct behind an Upgrade paywall. Same outcome as the Android run. The What this does and does not prove: no regression in app load or the Accounting page on web, but the renamed constants were never rendered, so neither this run nor the Android run is evidence the fix works. Both platforms stop at the same wall.
|
| * Values NewDot used to write for the Sage Intacct export date before it was aligned with the backend's REPORT_* names. | ||
| * Only used to keep rendering a label for workspaces that still hold one of them. | ||
| */ | ||
| SAGE_INTACCT_EXPORT_DATE_LEGACY: { |
There was a problem hiding this comment.
@MelvinBot We have to add fix selected option when the selected option is the legacy one in export date config of Sage Intacct.
There was a problem hiding this comment.
We fixed the incorrect values in the database so we can skip this I think
There was a problem hiding this comment.
@francoisl We can write a migration instead cause there will be some users with this value in Onyx. This will be a temporary measure which we can remove in a month.
There was a problem hiding this comment.
@MelvinBot Go for the Onyx migration instead here since BE has already migrated the values.
There was a problem hiding this comment.
Done. I pushed 2d5e0de, which replaces the runtime mapping with an Onyx migration.
- Added
RenameLegacySageIntacctExportDate. On startup it rewrites any cached policy whose Sage IntacctexportDateisEXPORTEDorSUBMITTEDto the matchingREPORT_*value. It is registered last inmigrateOnyx.ts. The legacy names live only in that file, so you can remove it in a month by deleting the file and its import. - Removed
getSageIntacctExportDate,CONST.SAGE_INTACCT_EXPORT_DATE_LEGACY, the widenedSageIntacctExportDatetype, andConnectionUtilsTest. Both Sage Intacct pages,SageIntacct.ts, andPolicy.tsnow matchmainagain. The PR's only remaining change there is theREPORT_*rename. - Added
RenameLegacySageIntacctExportDateTest(3 cases). Typecheck and lint pass. I also updated the PR description to match.
The export date picker builds its rows from CONST.SAGE_INTACCT_EXPORT_DATE, so a workspace still holding the legacy EXPORTED / SUBMITTED matched no row and showed nothing selected. Add getSageIntacctExportDate, which maps the legacy values onto their REPORT_* equivalents and returns undefined for anything it does not recognize. Both read sites go through it, so the picker selects the right option and the export summary renders the right label. That makes the legacy locale entries unreachable, so drop them from all 11 locale files. Co-authored-by: Shubham Agrawal <shubham1206agra@users.noreply.github.com>
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
Done — pushed as You were right that the selected option was broken. The picker builds its rows from The fix: a single Two follow-on decisions worth your review:
AI tests run locally
What I could not verify. The web smoke test did not run. The session was handed to me already broken — prestart failed during onboarding with a replay divergence ( |
|
🤖 No code fix needed — every automated check passes. The only failing check is Check independent approval, and it isn't a test or build failure. It's the peer review gate: the Full check statusI re-ran
Notably, What's actually blocking this PR: the |
|
@shubham1206agra what's the latest here? Are we adding a migration? |
The backend has already rewritten stored Sage Intacct export dates to REPORT_EXPORTED / REPORT_SUBMITTED, so only locally cached policies can still hold EXPORTED / SUBMITTED. A one-time Onyx migration rewrites those, which lets the read sites, types, and constants go back to the plain current values. Co-authored-by: Shubham Agrawal <shubham1206agra@users.noreply.github.com>
|
@MelvinBot Fix conflicts |
…ortDateNaming Co-authored-by: Shubham Agrawal <shubham1206agra@users.noreply.github.com> # Conflicts: # src/libs/migrateOnyx.ts
|
I fixed the merge conflict by merging The only conflict was in The tests for both migrations pass (6 tests). I couldn't run typecheck or lint locally because of an environment problem with the |
Reviewer Checklist
Screenshots/VideosScreen.Recording.2026-10-08.at.3.01.42.PM.mov |
|
@MelvinBot Mark PR ready for review |
|
Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits. |
|
@shubham1206agra Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
I marked this PR ready for review. The |
|
This PR adds a new |
|
🚧 francoisl has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/francoisl in version: 9.5.6-0 🚀
|
|
No help site update is needed. This PR only renames internal export date values and migrates cached data, and the three option labels in Configure Sage Intacct (Date of last expense, Export date, Submitted date) stay the same. |
|
Any QA steps here? |
|
@IuliiaHerets Just connect a workspace with the Sage Intacct accounting connection, and verify that you are able to change export date property without any issues. |
|
@shubham1206agra could you please add QA steps? |
|
|
🚀 Deployed to production by https://github.com/puneetlath in version: 9.5.6-6 🚀
Bundle Size Analysis (Sentry): |








Explanation of Change
CONST.SAGE_INTACCT_EXPORT_DATEused the bare namesEXPORTED/SUBMITTED, but the backend export logic usesREPORT_EXPORTED/REPORT_SUBMITTED. Both the Sage Intacct export summary row and the export date picker interpolate the raw stored config value into a translation key (workspace.sageIntacct.exportDate.values.<value>.label), so a workspace whose export date was set outside NewDot asks for a key that exists in no locale file — a hard throw in dev builds, and aLog.alertplus garbled label text on production. Sage Intacct was the only accounting integration still on the old naming; Xero, QuickBooks, Certinia, Rillet and DualEntry already match the backend.This PR:
SAGE_INTACCT_EXPORT_DATE.EXPORTED→REPORT_EXPORTEDandSUBMITTED→REPORT_SUBMITTEDso the constant mirrorsXERO_EXPORT_DATE, which also fixes the write path — the picker builds its rows fromObject.values(CONST.SAGE_INTACCT_EXPORT_DATE)and previously could only ever sendEXPORTED/SUBMITTEDtoUpdateSageIntacctExportDate.workspace.sageIntacct.exportDate.values.*keys in all 11 locale files. They are computed properties, so the rename carries through; the existing copy is unchanged.RenameLegacySageIntacctExportDate, that rewrites any locally cached policy still holdingEXPORTED/SUBMITTEDto the matchingREPORT_*value. The backend has already migrated the stored values, so only stale client caches can still hold the old names. The migration can be removed after about a month.No change was needed in
DynamicSageIntacctExportPage.tsxorSageIntacctDatePage.tsx— both derive everything from the constant — and no API change either, since theUpdateSageIntacctExportDatevalueparam is typed as a plainstring.SageIntacctExportConfig.exportDateis alreadyValueOf<typeof CONST.SAGE_INTACCT_EXPORT_DATE>, so it follows the rename.AI tests run locally
npm run typecheck— passednpm run linton the changed files — passednpm test -- tests/unit/RenameLegacySageIntacctExportDateTest.ts— 3 passed (both legacy values rewritten, other export config fields kept, current values and non-Sage Intacct policies untouched)npm testfor translation and accounting suites (TranslateTest,TranslatorTest,AccountingUtilsTest,PolicyConnectionsTest,PolicyUtilsTest,PolicyAccountingPageAutoStartFlowTestand related) — passedFixed Issues
$ #101276
PROPOSAL: #101276 (comment)
Tests
// TODO: The human co-author must fill out the tests they ran before marking this PR as "ready for review". Testing this change needs a workspace connected to Sage Intacct whose export date was set outside NewDot, which was not available in the automated environment.
Offline tests
QA Steps
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)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