Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Export main page - initial #39191

Merged
merged 45 commits into from
Apr 22, 2024
Merged
Show file tree
Hide file tree
Changes from 33 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
c2a0b77
Export main page - initial
narefyev91 Mar 28, 2024
1dfc676
prettier
narefyev91 Mar 28, 2024
2743434
Export date page - initial
narefyev91 Mar 29, 2024
21bc341
Merge branch 'main' into qbo-export-pages
narefyev91 Apr 2, 2024
b07c195
Export invoice page
narefyev91 Apr 2, 2024
d0a4ccf
Company card + company card selection screens
narefyev91 Apr 3, 2024
11c23ff
Export Preferred Exporter screen + sub screen
narefyev91 Apr 5, 2024
1c0d2f3
prettier
narefyev91 Apr 5, 2024
20814b7
icon button
narefyev91 Apr 9, 2024
05d2869
renaming pages + correct routes + initial Expenses config page
narefyev91 Apr 9, 2024
9449159
Merge branch 'main' into qbo-export-pages
narefyev91 Apr 10, 2024
6490db7
resolve conflicts
narefyev91 Apr 10, 2024
a1349fc
resolve conflicts
narefyev91 Apr 10, 2024
5e1f432
Out of pocket sub page
narefyev91 Apr 10, 2024
d140a2a
Re-work on Preferred exporter with new design
narefyev91 Apr 11, 2024
a397b70
Design updates + updates for translations + updates for onyx api keys…
narefyev91 Apr 15, 2024
06f10aa
Merge branch 'refs/heads/main' into qbo-export-pages
narefyev91 Apr 16, 2024
d7a117b
Updates for some mock api calls, clean based on the high level design…
narefyev91 Apr 16, 2024
8ce62d9
fix ts
narefyev91 Apr 16, 2024
cd2168f
Merge branch 'refs/heads/main' into qbo-export-pages
narefyev91 Apr 17, 2024
030f779
fix employee list
narefyev91 Apr 17, 2024
9aa233c
Resolve C+ review comments
narefyev91 Apr 17, 2024
9e42ed8
add errors for out of pockets, design review, remove redundant screen
narefyev91 Apr 17, 2024
e0bac4c
Merge branch 'refs/heads/main' into qbo-export-pages
narefyev91 Apr 18, 2024
81026f0
resolve merge conflicts
narefyev91 Apr 18, 2024
aee7789
address c+ comments
narefyev91 Apr 18, 2024
3984f0c
add offline pending actions
narefyev91 Apr 18, 2024
0da46a2
lint
narefyev91 Apr 18, 2024
fb4f6da
updates after design review
narefyev91 Apr 18, 2024
0d7467d
add wrappers for permission checks
narefyev91 Apr 18, 2024
1e7a98a
updates after review
narefyev91 Apr 18, 2024
c9ded6f
lint
narefyev91 Apr 18, 2024
f87fed7
add more space between items
narefyev91 Apr 18, 2024
d9f1a4e
updates
narefyev91 Apr 18, 2024
305d849
Update src/pages/workspace/accounting/qbo/export/QuickbooksPreferredE…
narefyev91 Apr 19, 2024
7560663
Update src/pages/workspace/accounting/qbo/export/QuickbooksPreferredE…
narefyev91 Apr 19, 2024
04166d6
Update src/libs/PolicyUtils.ts
narefyev91 Apr 19, 2024
7866e3c
Update src/pages/workspace/accounting/qbo/export/QuickbooksPreferredE…
narefyev91 Apr 19, 2024
df7fa2b
Update src/libs/PolicyUtils.ts
narefyev91 Apr 19, 2024
96c66d8
updates
narefyev91 Apr 19, 2024
21db452
update api usage
narefyev91 Apr 19, 2024
57840ba
updates
narefyev91 Apr 19, 2024
ea62635
Merge branch 'refs/heads/main' into qbo-export-pages
narefyev91 Apr 22, 2024
34d123b
updates
narefyev91 Apr 22, 2024
1346a10
polish
narefyev91 Apr 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion src/CONST.ts
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,7 @@ const CONST = {
CONCIERGE_ICON_URL_2021: `${CLOUDFRONT_URL}/images/icons/concierge_2021.png`,
CONCIERGE_ICON_URL: `${CLOUDFRONT_URL}/images/icons/concierge_2022.png`,
UPWORK_URL: 'https://github.com/Expensify/App/issues?q=is%3Aopen+is%3Aissue+label%3A%22Help+Wanted%22',
DEEP_DIVE_EXPENSIFY_CARD: 'https://community.expensify.com/discussion/4848/deep-dive-expensify-card-and-quickbooks-online-auto-reconciliation-how-it-works',
GITHUB_URL: 'https://github.com/Expensify/App',
TERMS_URL: `${USE_EXPENSIFY_URL}/terms`,
PRIVACY_URL: `${USE_EXPENSIFY_URL}/privacy`,
Expand Down Expand Up @@ -1217,12 +1218,25 @@ const CONST = {
},
QUICKBOOKS_ONLINE: 'quickbooksOnline',

QUICKBOOKS_IMPORTS: {
QUICK_BOOKS_CONFIG: {
SYNC_CLASSES: 'syncClasses',
ENABLE_NEW_CATEGORIES: 'enableNewCategories',
SYNC_CUSTOMERS: 'syncCustomers',
SYNC_LOCATIONS: 'syncLocations',
SYNC_TAXES: 'syncTaxes',
PREFERRED_EXPORTER: 'exporter',
EXPORT_DATE: 'exportDate',
OUT_OF_POCKET_EXPENSES: 'outOfPocketExpenses',
EXPORT_INVOICE: 'exportInvoice',
EXPORT_ENTITY: 'exportEntity',
EXPORT_ACCOUNT: 'exportAccount',
EXPORT_COMPANY_CARD: 'exportCompanyCard',
},

QUICKBOOKS_EXPORT_ENTITY: {
VENDOR_BILL: 'vendorBill',
CHECK: 'check',
JOURNAL_ENTRY: 'journalEntry',
},

ACCOUNT_ID: {
Expand Down Expand Up @@ -4313,6 +4327,12 @@ const CONST = {
},
},

QUICKBOOKS_EXPORT_DATE: {
LAST_EXPENSE: 'lastExpense',
EXPORTED_DATE: 'exportedDate',
SUBMITTED_DATA: 'submittedData',
},

SESSION_STORAGE_KEYS: {
INITIAL_URL: 'INITIAL_URL',
},
Expand Down
36 changes: 36 additions & 0 deletions src/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -479,10 +479,46 @@ const ROUTES = {
route: 'settings/workspaces/:policyID/profile',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/profile` as const,
},
WORKSPACE_ACCOUNTING: {
route: 'settings/workspaces/:policyID/accounting',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting` as const,
},
WORKSPACE_PROFILE_CURRENCY: {
route: 'settings/workspaces/:policyID/profile/currency',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/profile/currency` as const,
},
POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_EXPORT: {
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/export',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/export` as const,
},
POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_COMPANY_CARD_EXPENSE_ACCOUNT_SELECT: {
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/company-card-expense-account-select',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/company-card-expense-account-select` as const,
},
POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_INVOICE_ACCOUNT_SELECT: {
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/export/invoice-account-select',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/export/invoice-account-select` as const,
},
POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_PREFERRED_EXPORTER: {
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/preferred-exporter',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/preferred-exporter` as const,
},
POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_EXPORT_OUT_OF_POCKET_EXPENSES: {
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/export/out-of-pocket-expense',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/export/out-of-pocket-expense` as const,
},
POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_EXPORT_OUT_OF_POCKET_EXPENSES_ACCOUNT_SELECT: {
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/export/out-of-pocket-expense/account-select',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/export/out-of-pocket-expense/account-select` as const,
},
POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_EXPORT_OUT_OF_POCKET_EXPENSES_SELECT: {
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/export/out-of-pocket-expense/entity-select',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/export/out-of-pocket-expense/entity-select` as const,
},
POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_EXPORT_DATE_SELECT: {
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/export/date-select',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/export/date-select` as const,
},
WORKSPACE_PROFILE_NAME: {
route: 'settings/workspaces/:policyID/profile/name',
getRoute: (policyID: string) => `settings/workspaces/${policyID}/profile/name` as const,
Expand Down
8 changes: 8 additions & 0 deletions src/SCREENS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,14 @@ const SCREENS = {
QUICKBOOKS_ONLINE_CUSTOMERS: 'Policy_Accounting_Quickbooks_Online_Import_Customers',
QUICKBOOKS_ONLINE_LOCATIONS: 'Policy_Accounting_Quickbooks_Online_Import_Locations',
QUICKBOOKS_ONLINE_TAXES: 'Policy_Accounting_Quickbooks_Online_Import_Taxes',
QUICKBOOKS_ONLINE_EXPORT: 'Workspace_Accounting_Quickbooks_Online_Export',
QUICKBOOKS_ONLINE_EXPORT_DATE_SELECT: 'Workspace_Accounting_Quickbooks_Online_Export_Date_Select',
QUICKBOOKS_ONLINE_EXPORT_INVOICE_ACCOUNT_SELECT: 'Workspace_Accounting_Quickbooks_Online_Export_Invoice_Account_Select',
QUICKBOOKS_ONLINE_COMPANY_CARD_EXPENSE_ACCOUNT_SELECT: 'Workspace_Accounting_Quickbooks_Online_Export_Company_Card_Expense_Select',
QUICKBOOKS_ONLINE_EXPORT_PREFERRED_EXPORTER: 'Workspace_Accounting_Quickbooks_Online_Export_Preferred_Exporter',
QUICKBOOKS_ONLINE_EXPORT_OUT_OF_POCKET_EXPENSES: 'Workspace_Accounting_Quickbooks_Online_Export_Out_Of_Pocket_Expenses',
QUICKBOOKS_ONLINE_EXPORT_OUT_OF_POCKET_EXPENSES_SELECT: 'Workspace_Accounting_Quickbooks_Online_Export_Out_Of_Pocket_Expenses_Select',
QUICKBOOKS_ONLINE_EXPORT_OUT_OF_POCKET_EXPENSES_ACCOUNT_SELECT: 'Workspace_Accounting_Quickbooks_Online_Export_Out_Of_Pocket_Expenses_Account_Select',
},
INITIAL: 'Workspace_Initial',
PROFILE: 'Workspace_Profile',
Expand Down
44 changes: 44 additions & 0 deletions src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1867,6 +1867,50 @@ export default {
taxesDescription: 'Choose whether to import tax rates and tax defaults from your accounting integration.',
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',
exportAs: 'Export as',
exportDescription: 'Configure how data in Expensify gets exported to QuickBooks Online.',
preferredExporter: 'Preferred exporter',
date: 'Date',
exportExpenses: 'Export out-of-pocket expenses as',
exportInvoices: 'Export invoices to',
exportCompany: 'Export company cards as',
exportExpensifyCard: 'Export Expensify Card transactions as',
deepDiveExpensifyCard: 'Expensify Card transactions automatically export to a "Expensify Card Liability Account" created with',
deepDiveExpensifyCardIntegration: 'our integration.',
exportDate: 'Export date',
exportDateDescription: 'Use this date when exporting reports to QuickBooks Online.',
lastExpense: {label: 'Date of last expense', description: 'The date of the most recent expense on the report'},
exportedDate: {label: 'Export date', description: 'The date the report was exported to QuickBooks Online'},
submittedData: {label: 'Submitted date', description: 'The date the report was submitted for approval'},
receivable: 'Accounts receivable', // This is an account name that will come directly from QBO, so I don't know why we need a translation for it. It should take whatever the name of the account is in QBO. Leaving this note for CS.
archive: 'Accounts receivable archive', // This is an account name that will come directly from QBO, so I don't know why we need a translation for it. It should take whatever the name of the account is in QBO. Leaving this note for CS.
exportInvoicesDescription: 'Invoices will be exported to this account in QuickBooks Online.',
exportCompanyCardsDescription: 'Set how company card purchases export to QuickBooks Online.',
creditCard: 'Credit Card',
debitCard: 'Debit Card',
vendorBill: 'Vendor Bill',
exportPreferredExporterNote: 'This can be any workspace admin, but must be a Domain Admin if you set different export accounts for individual company cards in Domain Settings.',
exportPreferredExporterSubNote: 'Once set, the preferred exporter will see reports for export in their account.',
exportOutOfPocketExpensesDescription: 'Set how out-of-pocket expenses export to QuickBooks Online.',
exportVendorBillDescription:
"We'll create a single itemized vendor bill for each Expensify report. If the period of the bill is closed, we'll post to the 1st of the next open period. You can add the vendor bill to your A/P account of choice (below).",
check: 'Check',
accountsPayable: 'Accounts Payable',
accountsPayableDescription: 'This is your chosen A/P account, against which vendor bills for each report are created.',
journalEntry: 'Journal Entry',
optionBelow: 'Choose an option below:',
vendorBillError: 'Vendor Bills are not available when locations are enabled. Please select a different export option.',
checkError: 'Check is not available when locations are enabled. Please select a different export option.',
journalEntryError: 'Journal entry is not available when taxes enabled. please select a different export option.',
companyCardsLocationEnabledDescription:
'Note: QuickBooks Online does not support a field for Locations as Tags on Vendor Bills exports. As you import Locations from, this this export option is unavailable.',
outOfPocketTaxEnabledDescription:
"Note: QuickBooks Online doesn't support a field for tax on Journal Entry exports. Because you have tax tracking enabled on your workspace, this export option is unavailable.",
outOfPocketTaxEnabledError: 'Journal entry is not available when taxes enabled. please select a different export option.',
outOfPocketLocationEnabledError: 'Vendor Bills are not available when locations are enabled. Please select a different export option.',
outOfPocketLocationEnabledDescription:
'Note: QuickBooks Online does not support a field for Locations as Tags on Vendor Bills exports. As you import Locations as Tags, this export option is unavailable.',
},
type: {
free: 'Free',
Expand Down
45 changes: 45 additions & 0 deletions src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1891,6 +1891,51 @@ export default {
taxesDescription: 'Elige si quires importar las tasas de impuestos y los impuestos por defecto de tu integración de contaduría.',
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',
exportAs: 'Exportar cómo',
exportExpenses: 'Exportar gastos de bolsillo como',
exportInvoices: 'Exportar facturas a',
exportCompany: 'Exportar tarjetas de empresa como',
exportDescription: 'Configura cómo se exportan los datos de Expensify a QuickBooks Online.',
preferredExporter: 'Exportador preferido',
date: 'Fecha',
deepDiveExpensifyCard: 'Las transacciones de la Tarjeta Expensify se exportan automáticamente a una "Cuenta de Responsabilidad de la Tarjeta Expensify" creada con',
deepDiveExpensifyCardIntegration: 'nuestra integración.',
exportExpensifyCard: 'Exportar las transacciones de las tarjetas Expensify como',
exportDate: 'Fecha de exportación',
exportDateDescription: 'Use this date when exporting reports to QuickBooks Online.',
lastExpense: {label: 'Date of last expense', description: 'The date of the most recent expense on the report'},
exportedDate: {label: 'Fecha de exportación', description: 'Fecha de exportación del informe a QuickBooks Online'},
submittedData: {label: 'Fecha de envío', description: 'Fecha en la que el informe se envió para su aprobación'},
receivable: 'Cuentas por cobrar', // This is an account name that will come directly from QBO, so I don't know why we need a translation for it. It should take whatever the name of the account is in QBO. Leaving this note for CS.
archive: 'Archivo de cuentas por cobrar', // This is an account name that will come directly from QBO, so I don't know why we need a translation for it. It should take whatever the name of the account is in QBO. Leaving this note for CS.
exportInvoicesDescription: 'Las facturas se exportarán a esta cuenta en QuickBooks Online.',
exportCompanyCardsDescription: 'Establece cómo se exportan las compras con tarjeta de empresa a QuickBooks Online.',
debitCard: 'Tarjeta de débito',
check: 'Cheque',
optionBelow: 'Elija una opción a continuación:',
creditCard: 'Tarjeta de crédito',
vendorBill: 'Factura del proveedor',
accountsPayable: 'Cuentas por pagar',
accountsPayableDescription: 'Esta es la cuenta de cuentas por pagar elegida, contra la cual se crean las facturas de proveedores para cada informe.',
companyCardsLocationEnabledDescription:
'Nota: QuickBooks Online no admite un campo para Ubicaciones como etiquetas en las exportaciones de facturas de proveedores. A medida que importa ubicaciones, esta opción de exportación no está disponible.',
exportPreferredExporterNote:
'Puede ser cualquier administrador del espacio de trabajo, pero debe ser un administrador de dominio si configura diferentes cuentas de exportación para tarjetas de empresa individuales en la configuración del dominio.',
exportPreferredExporterSubNote: 'Una vez configurado, el exportador preferido verá los informes para exportar en su cuenta.',
journalEntry: 'Asiento contable',
vendorBillError: 'Las facturas de proveedores no están disponibles cuando las ubicaciones están habilitadas. Seleccione una opción de exportación diferente.',
checkError: 'La verificación no está disponible cuando las ubicaciones están habilitadas. Seleccione una opción de exportación diferente.',
journalEntryError: 'El asiento de diario no está disponible cuando los impuestos están habilitados. seleccione una opción de exportación diferente.',
exportOutOfPocketExpensesDescription: 'Establezca cómo se exportan los gastos de bolsillo a QuickBooks Online.',
exportVendorBillDescription:
'Crearemos una única factura de proveedor detallada para cada informe de Expensify. Si el período de la factura está cerrado, lo publicaremos en el día 1 del siguiente período abierto. Puede agregar la factura del proveedor a la cuenta A/P de su elección (a continuación).',
outOfPocketTaxEnabledDescription:
'Nota: QuickBooks Online no admite un campo para impuestos en las exportaciones de Anotación en el diario. Debido a que tienes habilitado el seguimiento de impuestos en tu área de trabajo, esta opción de exportación no está disponible.',
outOfPocketTaxEnabledError: 'La Anotacion en el diario no está disponible cuando los impuestos están activados. Por favor, selecciona una opción de exportación diferente.',
outOfPocketLocationEnabledError: 'Las facturas de proveedores no están disponibles cuando las ubicaciones están activadas. Seleccione otra opción de exportación.',
outOfPocketLocationEnabledDescription:
'Nota: QuickBooks Online no admite un campo para Ubicaciones como Etiquetas en las exportaciones de Facturas de Proveedor. Al importar Ubicaciones como Etiquetas, esta opción de exportación no está disponible.',
},
type: {
free: 'Gratis',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ type UpdatePolicyConnectionConfigParams<TConnectionName extends ConnectionName,
policyID: string;
connectionName: TConnectionName;
settingName: TSettingName;
settingValue: Connections[TConnectionName]['config'][TSettingName];
settingValue?: Connections[TConnectionName]['config'][TSettingName];
idempotencyKey: string;
};

Expand Down
Loading
Loading