Skip to content

Commit 31543a6

Browse files
authored
Merge pull request #58980 from twilight2294/newAutoSyncQBO
New Feature: "When to export" selector for auto-sync for Quickbooks Online
2 parents 9a7d420 + 041387c commit 31543a6

File tree

17 files changed

+307
-36
lines changed

17 files changed

+307
-36
lines changed

src/CONST.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2058,6 +2058,7 @@ const CONST = {
20582058
AUTO_CREATE_VENDOR: 'autoCreateVendor',
20592059
REIMBURSEMENT_ACCOUNT_ID: 'reimbursementAccountID',
20602060
COLLECTION_ACCOUNT_ID: 'collectionAccountID',
2061+
ACCOUNTING_METHOD: 'accountingMethod',
20612062
},
20622063

20632064
XERO_CONFIG: {

src/ROUTES.ts

+10-2
Original file line numberDiff line numberDiff line change
@@ -1275,11 +1275,19 @@ const ROUTES = {
12751275
},
12761276
WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_ACCOUNT_SELECTOR: {
12771277
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/account-selector',
1278-
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/account-selector` as const,
1278+
getRoute: (policyID: string | undefined) => `settings/workspaces/${policyID}/accounting/quickbooks-online/account-selector` as const,
12791279
},
12801280
WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_INVOICE_ACCOUNT_SELECTOR: {
12811281
route: 'settings/workspaces/:policyID/accounting/quickbooks-online/invoice-account-selector',
1282-
getRoute: (policyID: string) => `settings/workspaces/${policyID}/accounting/quickbooks-online/invoice-account-selector` as const,
1282+
getRoute: (policyID: string | undefined) => `settings/workspaces/${policyID}/accounting/quickbooks-online/invoice-account-selector` as const,
1283+
},
1284+
WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_AUTO_SYNC: {
1285+
route: 'settings/workspaces/:policyID/connections/quickbooks-online/advanced/autosync',
1286+
getRoute: (policyID: string | undefined) => `settings/workspaces/${policyID}/connections/quickbooks-online/advanced/autosync` as const,
1287+
},
1288+
WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_ACCOUNTING_METHOD: {
1289+
route: 'settings/workspaces/:policyID/connections/quickbooks-online/advanced/autosync/accounting-method',
1290+
getRoute: (policyID: string | undefined) => `settings/workspaces/${policyID}/connections/quickbooks-online/advanced/autosync/accounting-method` as const,
12831291
},
12841292
WORKSPACE_ACCOUNTING_CARD_RECONCILIATION: {
12851293
route: 'settings/workspaces/:policyID/accounting/:connection/card-reconciliation',

src/SCREENS.ts

+2
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,8 @@ const SCREENS = {
386386
QUICKBOOKS_ONLINE_CLASSES_DISPLAYED_AS: 'Policy_Accounting_Quickbooks_Online_Import_Classes_Displayed_As',
387387
QUICKBOOKS_ONLINE_CUSTOMERS_DISPLAYED_AS: 'Policy_Accounting_Quickbooks_Online_Import_Customers_Displayed_As',
388388
QUICKBOOKS_ONLINE_LOCATIONS_DISPLAYED_AS: 'Policy_Accounting_Quickbooks_Online_Import_Locations_Displayed_As',
389+
QUICKBOOKS_ONLINE_AUTO_SYNC: 'Policy_Accounting_Quickbooks_Online_Auto_Sync',
390+
QUICKBOOKS_ONLINE_ACCOUNTING_METHOD: 'Policy_Accounting_Quickbooks_Online_Accounting_Method',
389391
QUICKBOOKS_DESKTOP_COMPANY_CARD_EXPENSE_ACCOUNT_SELECT: 'Workspace_Accounting_Quickbooks_Desktop_Export_Company_Card_Expense_Account_Select',
390392
QUICKBOOKS_DESKTOP_COMPANY_CARD_EXPENSE_ACCOUNT_COMPANY_CARD_SELECT: 'Workspace_Accounting_Quickbooks_Desktop_Export_Company_Card_Expense_Select',
391393
QUICKBOOKS_DESKTOP_COMPANY_CARD_EXPENSE_ACCOUNT: 'Workspace_Accounting_Quickbooks_Desktop_Export_Company_Card_Expense',

src/languages/en.ts

+13-1
Original file line numberDiff line numberDiff line change
@@ -3192,7 +3192,19 @@ const translations = {
31923192
[CONST.QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE.CHECK]: 'To use check export, set up a bank account in QuickBooks Online',
31933193
},
31943194
noAccountsFound: 'No accounts found',
3195-
noAccountsFoundDescription: 'Add the account in QuickBooks Online and sync the connection again',
3195+
noAccountsFoundDescription: 'Add the account in QuickBooks Online and sync the connection again.',
3196+
accountingMethods: {
3197+
label: 'When to Export',
3198+
description: 'Choose when to export the expenses:',
3199+
values: {
3200+
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.ACCRUAL]: 'Accrual',
3201+
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH]: 'Cash',
3202+
},
3203+
alternateText: {
3204+
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.ACCRUAL]: 'Out-of-pocket expenses will export when final approved',
3205+
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH]: 'Out-of-pocket expenses will export when paid',
3206+
},
3207+
},
31963208
},
31973209
workspaceList: {
31983210
joinNow: 'Join now',

src/languages/es.ts

+13-1
Original file line numberDiff line numberDiff line change
@@ -3222,7 +3222,19 @@ const translations = {
32223222
[CONST.QUICKBOOKS_REIMBURSABLE_ACCOUNT_TYPE.CHECK]: 'Para usar la exportación de cheques, configura una cuenta bancaria en QuickBooks Online',
32233223
},
32243224
noAccountsFound: 'No se ha encontrado ninguna cuenta',
3225-
noAccountsFoundDescription: 'Añade la cuenta en QuickBooks Online y sincroniza de nuevo la conexión',
3225+
noAccountsFoundDescription: 'Añade la cuenta en QuickBooks Online y sincroniza de nuevo la conexión.',
3226+
accountingMethods: {
3227+
label: 'Cuándo Exportar',
3228+
description: 'Elige cuándo exportar los gastos:',
3229+
values: {
3230+
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.ACCRUAL]: 'Devengo',
3231+
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH]: 'Efectivo',
3232+
},
3233+
alternateText: {
3234+
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.ACCRUAL]: 'Los gastos por cuenta propia se exportarán cuando estén aprobados definitivamente',
3235+
[COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH]: 'Los gastos por cuenta propia se exportarán cuando estén pagados',
3236+
},
3237+
},
32263238
},
32273239
workspaceList: {
32283240
joinNow: 'Únete ahora',
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import type {CONST as COMMON_CONST} from 'expensify-common';
2+
import type {ValueOf} from 'type-fest';
3+
4+
type UpdateQuickbooksOnlineAccountingMethodParams = {
5+
policyID: string;
6+
accountingMethod: ValueOf<typeof COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD>;
7+
};
8+
9+
export default UpdateQuickbooksOnlineAccountingMethodParams;

src/libs/API/parameters/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export type {default as SyncPolicyToQuickbooksOnlineParams} from './SyncPolicyTo
2020
export type {default as SyncPolicyToXeroParams} from './SyncPolicyToXeroParams';
2121
export type {default as SyncPolicyToNetSuiteParams} from './SyncPolicyToNetSuiteParams';
2222
export type {default as UpdateNetSuiteAccountingMethodParams} from './UpdateNetSuiteAccountingMethodParams';
23+
export type {default as UpdateQuickbooksOnlineAccountingMethodParams} from './UpdateQuickbooksOnlineAccountingMethodParams';
2324
export type {default as SyncPolicyToQuickbooksDesktopParams} from './SyncPolicyToQuickbooksDesktopParams';
2425
export type {default as DeleteContactMethodParams} from './DeleteContactMethodParams';
2526
export type {default as DeletePaymentBankAccountParams} from './DeletePaymentBankAccountParams';

src/libs/API/types.ts

+3
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ const WRITE_COMMANDS = {
261261
UPDATE_QUICKBOOKS_ONLINE_REIMBURSABLE_EXPENSES_ACCOUNT: 'UpdateQuickbooksOnlineReimbursableExpensesAccount',
262262
UPDATE_QUICKBOOKS_ONLINE_RECEIVABLE_ACCOUNT: 'UpdateQuickbooksOnlineReceivableAccount',
263263
UPDATE_QUICKBOOKS_ONLINE_EXPORT_DATE: 'UpdateQuickbooksOnlineExportDate',
264+
UPDATE_QUICKBOOKS_ONLINE_ACCOUNTING_METHOD: 'UpdateQuickbooksOnlineAccountingMethod',
264265
UPDATE_QUICKBOOKS_ONLINE_NON_REIMBURSABLE_EXPENSES_ACCOUNT: 'UpdateQuickbooksOnlineNonReimbursableExpensesAccount',
265266
UPDATE_QUICKBOOKS_ONLINE_COLLECTION_ACCOUNT_ID: 'UpdateQuickbooksOnlineCollectionAccountID',
266267
UPDATE_QUICKBOOKS_ONLINE_SYNC_TAX: 'UpdateQuickbooksOnlineSyncTax',
@@ -757,6 +758,7 @@ type WriteCommandParameters = {
757758
[WRITE_COMMANDS.UPDATE_QUICKBOOKS_ONLINE_EXPORT_DATE]: Parameters.UpdateQuickbooksOnlineGenericTypeParams;
758759
[WRITE_COMMANDS.UPDATE_QUICKBOOKS_ONLINE_NON_REIMBURSABLE_EXPENSES_ACCOUNT]: Parameters.UpdateQuickbooksOnlineGenericTypeParams;
759760
[WRITE_COMMANDS.UPDATE_QUICKBOOKS_ONLINE_COLLECTION_ACCOUNT_ID]: Parameters.UpdateQuickbooksOnlineGenericTypeParams;
761+
[WRITE_COMMANDS.UPDATE_QUICKBOOKS_ONLINE_ACCOUNTING_METHOD]: Parameters.UpdateQuickbooksOnlineAccountingMethodParams;
760762
[WRITE_COMMANDS.UPDATE_QUICKBOOKS_DESKTOP_EXPORT_DATE]: Parameters.UpdateQuickbooksDesktopGenericTypeParams;
761763
[WRITE_COMMANDS.UPDATE_QUICKBOOKS_DESKTOP_MARK_CHECKS_TO_BE_PRINTED]: Parameters.UpdateQuickbooksDesktopGenericTypeParams;
762764
[WRITE_COMMANDS.UPDATE_QUICKBOOKS_DESKTOP_AUTO_CREATE_VENDOR]: Parameters.UpdateQuickbooksDesktopGenericTypeParams;
@@ -884,6 +886,7 @@ type WriteCommandParameters = {
884886
[WRITE_COMMANDS.UPDATE_NETSUITE_EXPORT_REPORTS_TO]: Parameters.UpdateNetSuiteGenericTypeParams<'value', ValueOf<typeof CONST.NETSUITE_REPORTS_APPROVAL_LEVEL>>;
885887
[WRITE_COMMANDS.UPDATE_NETSUITE_VENDOR_BILLS_TO]: Parameters.UpdateNetSuiteGenericTypeParams<'value', ValueOf<typeof CONST.NETSUITE_VENDOR_BILLS_APPROVAL_LEVEL>>;
886888
[WRITE_COMMANDS.UPDATE_NETSUITE_ACCOUNTING_METHOD]: Parameters.UpdateNetSuiteAccountingMethodParams;
889+
887890
[WRITE_COMMANDS.UPDATE_NETSUITE_JOURNALS_TO]: Parameters.UpdateNetSuiteGenericTypeParams<'value', ValueOf<typeof CONST.NETSUITE_JOURNALS_APPROVAL_LEVEL>>;
888891
[WRITE_COMMANDS.UPDATE_NETSUITE_APPROVAL_ACCOUNT]: Parameters.UpdateNetSuiteGenericTypeParams<'value', string>;
889892
[WRITE_COMMANDS.UPDATE_NETSUITE_CUSTOM_FORM_ID_OPTIONS_REIMBURSABLE]: Parameters.UpdateNetSuiteCustomFormIDParams;

src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx

+3
Original file line numberDiff line numberDiff line change
@@ -364,6 +364,9 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
364364
require<ReactComponentModule>('@pages/workspace/accounting/qbo/export/QuickbooksCompanyCardExpenseAccountSelectPage').default,
365365
[SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_COMPANY_CARD_EXPENSE_ACCOUNT_COMPANY_CARD_SELECT]: () =>
366366
require<ReactComponentModule>('../../../../pages/workspace/accounting/qbo/export/QuickbooksCompanyCardExpenseAccountSelectCardPage').default,
367+
[SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_AUTO_SYNC]: () => require<ReactComponentModule>('../../../../pages/workspace/accounting/qbo/advanced/QuickbooksAutoSyncPage').default,
368+
[SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_ACCOUNTING_METHOD]: () =>
369+
require<ReactComponentModule>('../../../../pages/workspace/accounting/qbo/advanced/QuickbooksAccountingMethodPage').default,
367370
[SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_COMPANY_CARD_EXPENSE_ACCOUNT]: () =>
368371
require<ReactComponentModule>('../../../../pages/workspace/accounting/qbo/export/QuickbooksCompanyCardExpenseAccountPage').default,
369372
[SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_EXPORT_PREFERRED_EXPORTER]: () =>

src/libs/Navigation/linkingConfig/RELATIONS/WORKSPACE_TO_RHP.ts

+2
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ const WORKSPACE_TO_RHP: Partial<Record<keyof WorkspaceSplitNavigatorParamList, s
5555
SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_CLASSES_DISPLAYED_AS,
5656
SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_CUSTOMERS_DISPLAYED_AS,
5757
SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_LOCATIONS_DISPLAYED_AS,
58+
SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_AUTO_SYNC,
59+
SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_ACCOUNTING_METHOD,
5860
SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_DESKTOP_COMPANY_CARD_EXPENSE_ACCOUNT_SELECT,
5961
SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_DESKTOP_COMPANY_CARD_EXPENSE_ACCOUNT_COMPANY_CARD_SELECT,
6062
SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_DESKTOP_COMPANY_CARD_EXPENSE_ACCOUNT,

src/libs/Navigation/linkingConfig/config.ts

+6
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,12 @@ const config: LinkingOptions<RootNavigatorParamList>['config'] = {
390390
[SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_LOCATIONS_DISPLAYED_AS]: {
391391
path: ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_LOCATIONS_DISPLAYED_AS.route,
392392
},
393+
[SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_AUTO_SYNC]: {
394+
path: ROUTES.WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_AUTO_SYNC.route,
395+
},
396+
[SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_ONLINE_ACCOUNTING_METHOD]: {
397+
path: ROUTES.WORKSPACE_ACCOUNTING_QUICKBOOKS_ONLINE_ACCOUNTING_METHOD.route,
398+
},
393399
[SCREENS.WORKSPACE.ACCOUNTING.QUICKBOOKS_DESKTOP_COMPANY_CARD_EXPENSE_ACCOUNT_SELECT]: {
394400
path: ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_DESKTOP_COMPANY_CARD_EXPENSE_ACCOUNT_SELECT.route,
395401
},

src/libs/actions/Policy/Policy.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -741,10 +741,14 @@ function clearSageIntacctErrorField(policyID: string | undefined, fieldName: str
741741
Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, {connections: {intacct: {config: {errorFields: {[fieldName]: null}}}}});
742742
}
743743

744-
function clearNetSuiteAutoSyncErrorField(policyID: string) {
744+
function clearNetSuiteAutoSyncErrorField(policyID: string | undefined) {
745745
Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, {connections: {netsuite: {config: {errorFields: {autoSync: null}}}}});
746746
}
747747

748+
function clearQuickbooksOnlineAutoSyncErrorField(policyID: string | undefined) {
749+
Onyx.merge(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`, {connections: {quickbooksOnline: {config: {errorFields: {autoSync: null}}}}});
750+
}
751+
748752
function setWorkspaceReimbursement(policyID: string, reimbursementChoice: ValueOf<typeof CONST.POLICY.REIMBURSEMENT_CHOICES>, reimburserEmail: string) {
749753
const policy = getPolicy(policyID);
750754

@@ -5172,6 +5176,7 @@ export {
51725176
updateDefaultPolicy,
51735177
getAssignedSupportData,
51745178
downgradeToTeam,
5179+
clearQuickbooksOnlineAutoSyncErrorField,
51755180
updateLastAccessedWorkspaceSwitcher,
51765181
};
51775182

src/libs/actions/connections/QuickbooksOnline.ts

+36-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
import type {CONST as COMMON_CONST} from 'expensify-common';
12
import type {OnyxEntry, OnyxUpdate} from 'react-native-onyx';
23
import Onyx from 'react-native-onyx';
4+
import type {ValueOf} from 'type-fest';
35
import * as API from '@libs/API';
4-
import type {ConnectPolicyToAccountingIntegrationParams} from '@libs/API/parameters';
6+
import type {ConnectPolicyToAccountingIntegrationParams, UpdateQuickbooksOnlineAccountingMethodParams} from '@libs/API/parameters';
57
import type UpdateQuickbooksOnlineAutoCreateVendorParams from '@libs/API/parameters/UpdateQuickbooksOnlineAutoCreateVendorParams';
68
import type UpdateQuickbooksOnlineGenericTypeParams from '@libs/API/parameters/UpdateQuickbooksOnlineGenericTypeParams';
79
import {READ_COMMANDS, WRITE_COMMANDS} from '@libs/API/types';
@@ -171,7 +173,10 @@ function buildOnyxDataForQuickbooksConfiguration<TSettingName extends keyof Conn
171173
};
172174
}
173175

174-
function updateQuickbooksOnlineAutoSync<TSettingValue extends Connections['quickbooksOnline']['config']['autoSync']['enabled']>(policyID: string, settingValue: TSettingValue) {
176+
function updateQuickbooksOnlineAutoSync<TSettingValue extends Connections['quickbooksOnline']['config']['autoSync']['enabled']>(policyID: string | undefined, settingValue: TSettingValue) {
177+
if (!policyID) {
178+
return;
179+
}
175180
const onyxData = buildOnyxDataForQuickbooksConfiguration(policyID, CONST.QUICKBOOKS_CONFIG.AUTO_SYNC, {enabled: settingValue}, {enabled: !settingValue});
176181

177182
const parameters: UpdateQuickbooksOnlineGenericTypeParams = {
@@ -194,10 +199,13 @@ function updateQuickbooksOnlineEnableNewCategories<TSettingValue extends Connect
194199
}
195200

196201
function updateQuickbooksOnlineAutoCreateVendor<TConfigUpdate extends Partial<Connections['quickbooksOnline']['config']>>(
197-
policyID: string,
202+
policyID: string | undefined,
198203
configUpdate: TConfigUpdate,
199204
configCurrentData: TConfigUpdate,
200205
) {
206+
if (!policyID) {
207+
return;
208+
}
201209
const onyxData = buildOnyxDataForMultipleQuickbooksConfigurations(policyID, configUpdate, configCurrentData);
202210

203211
const parameters: UpdateQuickbooksOnlineAutoCreateVendorParams = {
@@ -210,7 +218,10 @@ function updateQuickbooksOnlineAutoCreateVendor<TConfigUpdate extends Partial<Co
210218
API.write(WRITE_COMMANDS.UPDATE_QUICKBOOKS_ONLINE_AUTO_CREATE_VENDOR, parameters, onyxData);
211219
}
212220

213-
function updateQuickbooksOnlineSyncPeople<TSettingValue extends Connections['quickbooksOnline']['config']['syncPeople']>(policyID: string, settingValue: TSettingValue) {
221+
function updateQuickbooksOnlineSyncPeople<TSettingValue extends Connections['quickbooksOnline']['config']['syncPeople']>(policyID: string | undefined, settingValue: TSettingValue) {
222+
if (!policyID) {
223+
return;
224+
}
214225
const onyxData = buildOnyxDataForQuickbooksConfiguration(policyID, CONST.QUICKBOOKS_CONFIG.SYNC_PEOPLE, settingValue, !settingValue);
215226

216227
const parameters: UpdateQuickbooksOnlineGenericTypeParams = {
@@ -345,11 +356,11 @@ function updateQuickbooksOnlineNonReimbursableExpensesAccount<TSettingValue exte
345356
}
346357

347358
function updateQuickbooksOnlineCollectionAccountID<TSettingValue extends QBOConnectionConfig['collectionAccountID']>(
348-
policyID: string,
359+
policyID: string | undefined,
349360
settingValue: TSettingValue,
350361
oldSettingValue?: TSettingValue,
351362
) {
352-
if (settingValue === oldSettingValue) {
363+
if (settingValue === oldSettingValue || !policyID) {
353364
return;
354365
}
355366

@@ -363,6 +374,24 @@ function updateQuickbooksOnlineCollectionAccountID<TSettingValue extends QBOConn
363374
API.write(WRITE_COMMANDS.UPDATE_QUICKBOOKS_ONLINE_COLLECTION_ACCOUNT_ID, parameters, {optimisticData, failureData, successData});
364375
}
365376

377+
function updateQuickbooksOnlineAccountingMethod(
378+
policyID: string | undefined,
379+
accountingMethod: ValueOf<typeof COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD>,
380+
oldAccountingMethod: ValueOf<typeof COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD>,
381+
) {
382+
if (!policyID) {
383+
return;
384+
}
385+
const onyxData = buildOnyxDataForQuickbooksConfiguration(policyID, CONST.QUICKBOOKS_CONFIG.ACCOUNTING_METHOD, accountingMethod, oldAccountingMethod);
386+
387+
const parameters: UpdateQuickbooksOnlineAccountingMethodParams = {
388+
policyID,
389+
accountingMethod,
390+
};
391+
392+
API.write(WRITE_COMMANDS.UPDATE_QUICKBOOKS_ONLINE_ACCOUNTING_METHOD, parameters, onyxData);
393+
}
394+
366395
function updateQuickbooksOnlineSyncTax<TSettingValue extends Connections['quickbooksOnline']['config']['syncTax']>(policyID: string, settingValue: TSettingValue) {
367396
const onyxData = buildOnyxDataForQuickbooksConfiguration(policyID, CONST.QUICKBOOKS_CONFIG.SYNC_TAX, settingValue, !settingValue);
368397

@@ -429,4 +458,5 @@ export {
429458
updateQuickbooksOnlineSyncClasses,
430459
updateQuickbooksOnlineSyncLocations,
431460
updateQuickbooksOnlineSyncCustomers,
461+
updateQuickbooksOnlineAccountingMethod,
432462
};

0 commit comments

Comments
 (0)