From d5812cf2d98dfed3230165c3724f2e11a9ed8ded Mon Sep 17 00:00:00 2001 From: Etotaziba Olei Date: Thu, 2 May 2024 17:12:18 +0100 Subject: [PATCH 01/14] don not toggle switch on when export is set to jounal entry --- .../workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx b/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx index 9cd6e9e1653f..db310d7e6c7d 100644 --- a/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx +++ b/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx @@ -19,7 +19,8 @@ function QuickbooksTaxesPage({policy}: WithPolicyProps) { const {translate} = useLocalize(); const styles = useThemeStyles(); const policyID = policy?.id ?? ''; - const {syncTax, pendingFields} = policy?.connections?.quickbooksOnline?.config ?? {}; + const {syncTax, pendingFields, exportEntity} = policy?.connections?.quickbooksOnline?.config ?? {}; + const isTaxSwitchOn = !!syncTax && exportEntity !== CONST.QUICKBOOKS_OUT_OF_POCKET_EXPENSE_ACCOUNT_TYPE.JOURNAL_ENTRY; return ( Connections.updatePolicyConnectionConfig(policyID, CONST.POLICY.CONNECTIONS.NAME.QBO, CONST.QUICK_BOOKS_CONFIG.SYNC_TAX, !syncTax)} /> From d04a7a0ae2f469cce44ce3a78ab2c34f7df3c73a Mon Sep 17 00:00:00 2001 From: Etotaziba Olei Date: Thu, 2 May 2024 17:26:19 +0100 Subject: [PATCH 02/14] fix QBO undefined error for country check --- .../workspace/accounting/qbo/import/QuickbooksImportPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/workspace/accounting/qbo/import/QuickbooksImportPage.tsx b/src/pages/workspace/accounting/qbo/import/QuickbooksImportPage.tsx index 2376614fcee3..3a96b00ba4ba 100644 --- a/src/pages/workspace/accounting/qbo/import/QuickbooksImportPage.tsx +++ b/src/pages/workspace/accounting/qbo/import/QuickbooksImportPage.tsx @@ -59,7 +59,7 @@ function QuickbooksImportPage({policy}: WithPolicyProps) { }, ]; - if (policy?.connections?.quickbooksOnline.data.country !== CONST.COUNTRY.US) { + if (policy?.connections?.quickbooksOnline?.data?.country !== CONST.COUNTRY.US) { sections.push({ description: translate('workspace.accounting.taxes'), action: () => Navigation.navigate(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_TAXES.getRoute(policyID)), From 0453720132896ee8f7da9dab1580aef3ae8bfff7 Mon Sep 17 00:00:00 2001 From: Etotaziba Olei Date: Thu, 2 May 2024 17:48:01 +0100 Subject: [PATCH 03/14] add taxesJournalEntrySwitchNote for english and spanish translations --- src/languages/en.ts | 2 ++ src/languages/es.ts | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/languages/en.ts b/src/languages/en.ts index 89bdea70a64e..dd77a129942b 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -1897,6 +1897,8 @@ export default { customersDescription: 'Choose whether to import customers/projects and see where customers/projects are displayed.', locationsDescription: 'Choose whether to import locations, and see where locations are displayed.', taxesDescription: 'Choose whether to import tax rates and tax defaults from your accounting integration.', + taxesJournalEntrySwitchNote: + 'Note: QuickBooks Online does not support a field for tax on Journal Entry exports. Change your export preference to Vendor Bill or Check to import taxes.', locationsAdditionalDescription: 'Locations are imported as Tags. This limits exporting expense reports as Vendor Bills or Checks to QuickBooks Online. To unlock these export options, either disable Locations import or upgrade to the Control Plan to export Locations encoded as a Report Field.', export: 'Export', diff --git a/src/languages/es.ts b/src/languages/es.ts index 64b74c6749fc..dc3f4c5ff247 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -1921,6 +1921,8 @@ export default { customersDescription: 'Elige si queres importar clientes/proyectos y donde los clientes/proyectos son mostrados.', locationsDescription: 'Elige si quieres importar lugares y donde los lugares son mostrados.', taxesDescription: 'Elige si quires importar las tasas de impuestos y los impuestos por defecto de tu integración de contaduría.', + taxesJournalEntrySwitchNote: + 'Note: QuickBooks Online does not support a field for tax on Journal Entry exports. Change your export preference to Vendor Bill or Check to import taxes.', locationsAdditionalDescription: 'Los lugares son importados como Etiquegas. Esto limita a exportar los informes de gastos como Factura del Proveedor o Cheques a Quicbooks Online. Para desbloquear estas opciones de exportación desactiva la importación de Lugares o cambia al Plan Control para exportar Lugares como Campos de Informes.', export: 'Exportar', From a2eae458afc9e14aa3357c3b9e183c11f6557686 Mon Sep 17 00:00:00 2001 From: Etotaziba Olei Date: Thu, 2 May 2024 17:48:27 +0100 Subject: [PATCH 04/14] add reason why taxes can't toggle --- .../workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx b/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx index db310d7e6c7d..8f74fcc63229 100644 --- a/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx +++ b/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx @@ -20,7 +20,9 @@ function QuickbooksTaxesPage({policy}: WithPolicyProps) { const styles = useThemeStyles(); const policyID = policy?.id ?? ''; const {syncTax, pendingFields, exportEntity} = policy?.connections?.quickbooksOnline?.config ?? {}; - const isTaxSwitchOn = !!syncTax && exportEntity !== CONST.QUICKBOOKS_OUT_OF_POCKET_EXPENSE_ACCOUNT_TYPE.JOURNAL_ENTRY; + const isJournalExportEntity = exportEntity === CONST.QUICKBOOKS_OUT_OF_POCKET_EXPENSE_ACCOUNT_TYPE.JOURNAL_ENTRY; + const isTaxSwitchOn = !!syncTax && !isJournalExportEntity; + return ( + {isJournalExportEntity && {translate('workspace.qbo.taxesJournalEntrySwitchNote')}} From 1ae5a2083ffa8f982204f9b38d4ccfbce628dfbc Mon Sep 17 00:00:00 2001 From: Etotaziba Olei Date: Thu, 2 May 2024 17:50:31 +0100 Subject: [PATCH 05/14] disable toggle when journal entry is selected --- .../workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx b/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx index 8f74fcc63229..38bb264a16a5 100644 --- a/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx +++ b/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx @@ -22,7 +22,7 @@ function QuickbooksTaxesPage({policy}: WithPolicyProps) { const {syncTax, pendingFields, exportEntity} = policy?.connections?.quickbooksOnline?.config ?? {}; const isJournalExportEntity = exportEntity === CONST.QUICKBOOKS_OUT_OF_POCKET_EXPENSE_ACCOUNT_TYPE.JOURNAL_ENTRY; const isTaxSwitchOn = !!syncTax && !isJournalExportEntity; - + return ( Connections.updatePolicyConnectionConfig(policyID, CONST.POLICY.CONNECTIONS.NAME.QBO, CONST.QUICK_BOOKS_CONFIG.SYNC_TAX, !syncTax)} + disabled={isJournalExportEntity} /> From 85a8447b02046df2ac5dfee2988fea32216ec25b Mon Sep 17 00:00:00 2001 From: Etotaziba Olei Date: Thu, 2 May 2024 18:34:22 +0100 Subject: [PATCH 06/14] translate first part taxesJournalEntrySwitchNote --- src/languages/es.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/es.ts b/src/languages/es.ts index dc3f4c5ff247..7a758ec30fcb 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -1922,7 +1922,7 @@ export default { locationsDescription: 'Elige si quieres importar lugares y donde los lugares son mostrados.', taxesDescription: 'Elige si quires importar las tasas de impuestos y los impuestos por defecto de tu integración de contaduría.', taxesJournalEntrySwitchNote: - 'Note: QuickBooks Online does not support a field for tax on Journal Entry exports. Change your export preference to Vendor Bill or Check to import taxes.', + 'Nota: QuickBooks Online no admite un campo para impuestos en las exportaciones de Anotación en el diario. Change your export preference to Vendor Bill or Check to import taxes.', locationsAdditionalDescription: 'Los lugares son importados como Etiquegas. Esto limita a exportar los informes de gastos como Factura del Proveedor o Cheques a Quicbooks Online. Para desbloquear estas opciones de exportación desactiva la importación de Lugares o cambia al Plan Control para exportar Lugares como Campos de Informes.', export: 'Exportar', From 02763209cee3f28bd53fbf5bcf85d457b0ba228e Mon Sep 17 00:00:00 2001 From: Etotaziba Olei Date: Thu, 2 May 2024 18:36:29 +0100 Subject: [PATCH 07/14] add full translation for taxesJournalEntrySwitchNote --- src/languages/es.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/es.ts b/src/languages/es.ts index 7a758ec30fcb..84b46701b137 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -1922,7 +1922,7 @@ export default { locationsDescription: 'Elige si quieres importar lugares y donde los lugares son mostrados.', taxesDescription: 'Elige si quires importar las tasas de impuestos y los impuestos por defecto de tu integración de contaduría.', taxesJournalEntrySwitchNote: - 'Nota: QuickBooks Online no admite un campo para impuestos en las exportaciones de Anotación en el diario. Change your export preference to Vendor Bill or Check to import taxes.', + 'Nota: QuickBooks Online no admite un campo para impuestos en las exportaciones de Anotación en el diario. Cambie su preferencia de exportación a Factura de proveedor o Cheque para importar impuestos.', locationsAdditionalDescription: 'Los lugares son importados como Etiquegas. Esto limita a exportar los informes de gastos como Factura del Proveedor o Cheques a Quicbooks Online. Para desbloquear estas opciones de exportación desactiva la importación de Lugares o cambia al Plan Control para exportar Lugares como Campos de Informes.', export: 'Exportar', From f0cf4ef5fa3302123bf7f436786f358499a130e5 Mon Sep 17 00:00:00 2001 From: Etotaziba Olei Date: Fri, 3 May 2024 00:51:28 +0100 Subject: [PATCH 08/14] fix tsc --- .../workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx b/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx index 38bb264a16a5..68074ad90d55 100644 --- a/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx +++ b/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx @@ -19,8 +19,8 @@ function QuickbooksTaxesPage({policy}: WithPolicyProps) { const {translate} = useLocalize(); const styles = useThemeStyles(); const policyID = policy?.id ?? ''; - const {syncTax, pendingFields, exportEntity} = policy?.connections?.quickbooksOnline?.config ?? {}; - const isJournalExportEntity = exportEntity === CONST.QUICKBOOKS_OUT_OF_POCKET_EXPENSE_ACCOUNT_TYPE.JOURNAL_ENTRY; + const {syncTax, pendingFields, reimbursableExpensesExportDestination} = policy?.connections?.quickbooksOnline?.config ?? {}; + const isJournalExportEntity = reimbursableExpensesExportDestination === CONST.QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE.JOURNAL_ENTRY; const isTaxSwitchOn = !!syncTax && !isJournalExportEntity; return ( From df6a3dd8496eff7dacd559e32da4b392cfa389ae Mon Sep 17 00:00:00 2001 From: Etotaziba Olei Date: Fri, 3 May 2024 01:15:27 +0100 Subject: [PATCH 09/14] update error field --- .../export/QuickbooksOutOfPocketExpenseConfigurationPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/workspace/accounting/qbo/export/QuickbooksOutOfPocketExpenseConfigurationPage.tsx b/src/pages/workspace/accounting/qbo/export/QuickbooksOutOfPocketExpenseConfigurationPage.tsx index bc4741e00b48..c33c161454bb 100644 --- a/src/pages/workspace/accounting/qbo/export/QuickbooksOutOfPocketExpenseConfigurationPage.tsx +++ b/src/pages/workspace/accounting/qbo/export/QuickbooksOutOfPocketExpenseConfigurationPage.tsx @@ -23,7 +23,7 @@ function QuickbooksOutOfPocketExpenseConfigurationPage({policy}: WithPolicyConne const isTaxesEnabled = Boolean(syncTax); const shouldShowTaxError = isTaxesEnabled && reimbursableExpensesExportDestination === CONST.QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE.JOURNAL_ENTRY; const shouldShowLocationError = isLocationEnabled && reimbursableExpensesExportDestination !== CONST.QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE.JOURNAL_ENTRY; - const hasErrors = Boolean(errorFields?.exportEntity) || shouldShowTaxError || shouldShowLocationError; + const hasErrors = Boolean(errorFields?.reimbursableExpensesExportDestination) || shouldShowTaxError || shouldShowLocationError; return ( Date: Fri, 3 May 2024 22:24:36 +0100 Subject: [PATCH 10/14] Update src/languages/es.ts Co-authored-by: Rocio Perez-Cano --- src/languages/es.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/es.ts b/src/languages/es.ts index 6597fb1813b5..c2e38de14e89 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -1920,7 +1920,7 @@ export default { locationsDescription: 'Elige si quieres importar lugares y donde los lugares son mostrados.', taxesDescription: 'Elige si quires importar las tasas de impuestos y los impuestos por defecto de tu integración de contaduría.', taxesJournalEntrySwitchNote: - 'Nota: QuickBooks Online no admite un campo para impuestos en las exportaciones de Anotación en el diario. Cambie su preferencia de exportación a Factura de proveedor o Cheque para importar impuestos.', + 'Nota: QuickBooks Online no admite un campo para impuestos al exportar entradas en el libro diario. Cambia tu preferencia de exportación a Factura de Proveedor o Cheque para importar impuestos.', locationsAdditionalDescription: 'Los lugares son importados como Etiquegas. Esto limita a exportar los informes de gastos como Factura del Proveedor o Cheques a Quicbooks Online. Para desbloquear estas opciones de exportación desactiva la importación de Lugares o cambia al Plan Control para exportar Lugares como Campos de Informes.', export: 'Exportar', From 09a2bb1417cd4424e45b0cecec7f08b17fd19814 Mon Sep 17 00:00:00 2001 From: Etotaziba Olei Date: Fri, 3 May 2024 23:30:04 +0100 Subject: [PATCH 11/14] Update src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx Co-authored-by: Aldo Canepa Garay <87341702+aldo-expensify@users.noreply.github.com> --- .../workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx b/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx index 68074ad90d55..c5b83d6c3074 100644 --- a/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx +++ b/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx @@ -45,7 +45,7 @@ function QuickbooksTaxesPage({policy}: WithPolicyProps) { Connections.updatePolicyConnectionConfig(policyID, CONST.POLICY.CONNECTIONS.NAME.QBO, CONST.QUICK_BOOKS_CONFIG.SYNC_TAX, !syncTax)} disabled={isJournalExportEntity} /> From c1f4c3c42ac75330908a999f91c7c897f259f1a0 Mon Sep 17 00:00:00 2001 From: Etotaziba Olei Date: Fri, 3 May 2024 23:32:03 +0100 Subject: [PATCH 12/14] remove isTaxSwitchOn condition --- .../workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx b/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx index c5b83d6c3074..6c8e9ccb92bb 100644 --- a/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx +++ b/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx @@ -21,7 +21,6 @@ function QuickbooksTaxesPage({policy}: WithPolicyProps) { const policyID = policy?.id ?? ''; const {syncTax, pendingFields, reimbursableExpensesExportDestination} = policy?.connections?.quickbooksOnline?.config ?? {}; const isJournalExportEntity = reimbursableExpensesExportDestination === CONST.QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE.JOURNAL_ENTRY; - const isTaxSwitchOn = !!syncTax && !isJournalExportEntity; return ( Date: Fri, 3 May 2024 23:51:14 +0100 Subject: [PATCH 13/14] Journal entry should not show even when locations are enabled --- .../qbo/export/QuickbooksOutOfPocketExpenseEntitySelectPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/workspace/accounting/qbo/export/QuickbooksOutOfPocketExpenseEntitySelectPage.tsx b/src/pages/workspace/accounting/qbo/export/QuickbooksOutOfPocketExpenseEntitySelectPage.tsx index 35e06f6734e2..1a1047a7fc55 100644 --- a/src/pages/workspace/accounting/qbo/export/QuickbooksOutOfPocketExpenseEntitySelectPage.tsx +++ b/src/pages/workspace/accounting/qbo/export/QuickbooksOutOfPocketExpenseEntitySelectPage.tsx @@ -46,7 +46,7 @@ function QuickbooksOutOfPocketExpenseEntitySelectPage({policy}: WithPolicyConnec text: translate(`workspace.qbo.accounts.journal_entry`), keyForList: CONST.QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE.JOURNAL_ENTRY, isSelected: reimbursableExpensesExportDestination === CONST.QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE.JOURNAL_ENTRY, - isShown: !isTaxesEnabled || isLocationsEnabled, + isShown: !isTaxesEnabled, }, { value: CONST.QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE.VENDOR_BILL, From b44b90797077ec5f4e79e7f16196f4529580f9f0 Mon Sep 17 00:00:00 2001 From: Etotaziba Olei Date: Tue, 14 May 2024 08:30:59 +0100 Subject: [PATCH 14/14] update check for disabled toggle --- .../workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx b/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx index 6c8e9ccb92bb..9b8cec10d100 100644 --- a/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx +++ b/src/pages/workspace/accounting/qbo/import/QuickbooksTaxesPage.tsx @@ -46,7 +46,7 @@ function QuickbooksTaxesPage({policy}: WithPolicyProps) { accessibilityLabel={translate('workspace.accounting.taxes')} isOn={!!syncTax} onToggle={() => Connections.updatePolicyConnectionConfig(policyID, CONST.POLICY.CONNECTIONS.NAME.QBO, CONST.QUICK_BOOKS_CONFIG.SYNC_TAX, !syncTax)} - disabled={isJournalExportEntity} + disabled={!syncTax && isJournalExportEntity} />