1
+ import type { CONST as COMMON_CONST } from 'expensify-common' ;
1
2
import type { OnyxEntry , OnyxUpdate } from 'react-native-onyx' ;
2
3
import Onyx from 'react-native-onyx' ;
4
+ import type { ValueOf } from 'type-fest' ;
3
5
import * as API from '@libs/API' ;
4
- import type { ConnectPolicyToAccountingIntegrationParams } from '@libs/API/parameters' ;
6
+ import type { ConnectPolicyToAccountingIntegrationParams , UpdateQuickbooksOnlineAccountingMethodParams } from '@libs/API/parameters' ;
5
7
import type UpdateQuickbooksOnlineAutoCreateVendorParams from '@libs/API/parameters/UpdateQuickbooksOnlineAutoCreateVendorParams' ;
6
8
import type UpdateQuickbooksOnlineGenericTypeParams from '@libs/API/parameters/UpdateQuickbooksOnlineGenericTypeParams' ;
7
9
import { READ_COMMANDS , WRITE_COMMANDS } from '@libs/API/types' ;
@@ -171,7 +173,10 @@ function buildOnyxDataForQuickbooksConfiguration<TSettingName extends keyof Conn
171
173
} ;
172
174
}
173
175
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
+ }
175
180
const onyxData = buildOnyxDataForQuickbooksConfiguration ( policyID , CONST . QUICKBOOKS_CONFIG . AUTO_SYNC , { enabled : settingValue } , { enabled : ! settingValue } ) ;
176
181
177
182
const parameters : UpdateQuickbooksOnlineGenericTypeParams = {
@@ -194,10 +199,13 @@ function updateQuickbooksOnlineEnableNewCategories<TSettingValue extends Connect
194
199
}
195
200
196
201
function updateQuickbooksOnlineAutoCreateVendor < TConfigUpdate extends Partial < Connections [ 'quickbooksOnline' ] [ 'config' ] > > (
197
- policyID : string ,
202
+ policyID : string | undefined ,
198
203
configUpdate : TConfigUpdate ,
199
204
configCurrentData : TConfigUpdate ,
200
205
) {
206
+ if ( ! policyID ) {
207
+ return ;
208
+ }
201
209
const onyxData = buildOnyxDataForMultipleQuickbooksConfigurations ( policyID , configUpdate , configCurrentData ) ;
202
210
203
211
const parameters : UpdateQuickbooksOnlineAutoCreateVendorParams = {
@@ -210,7 +218,10 @@ function updateQuickbooksOnlineAutoCreateVendor<TConfigUpdate extends Partial<Co
210
218
API . write ( WRITE_COMMANDS . UPDATE_QUICKBOOKS_ONLINE_AUTO_CREATE_VENDOR , parameters , onyxData ) ;
211
219
}
212
220
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
+ }
214
225
const onyxData = buildOnyxDataForQuickbooksConfiguration ( policyID , CONST . QUICKBOOKS_CONFIG . SYNC_PEOPLE , settingValue , ! settingValue ) ;
215
226
216
227
const parameters : UpdateQuickbooksOnlineGenericTypeParams = {
@@ -345,11 +356,11 @@ function updateQuickbooksOnlineNonReimbursableExpensesAccount<TSettingValue exte
345
356
}
346
357
347
358
function updateQuickbooksOnlineCollectionAccountID < TSettingValue extends QBOConnectionConfig [ 'collectionAccountID' ] > (
348
- policyID : string ,
359
+ policyID : string | undefined ,
349
360
settingValue : TSettingValue ,
350
361
oldSettingValue ?: TSettingValue ,
351
362
) {
352
- if ( settingValue === oldSettingValue ) {
363
+ if ( settingValue === oldSettingValue || ! policyID ) {
353
364
return ;
354
365
}
355
366
@@ -363,6 +374,24 @@ function updateQuickbooksOnlineCollectionAccountID<TSettingValue extends QBOConn
363
374
API . write ( WRITE_COMMANDS . UPDATE_QUICKBOOKS_ONLINE_COLLECTION_ACCOUNT_ID , parameters , { optimisticData, failureData, successData} ) ;
364
375
}
365
376
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
+
366
395
function updateQuickbooksOnlineSyncTax < TSettingValue extends Connections [ 'quickbooksOnline' ] [ 'config' ] [ 'syncTax' ] > ( policyID : string , settingValue : TSettingValue ) {
367
396
const onyxData = buildOnyxDataForQuickbooksConfiguration ( policyID , CONST . QUICKBOOKS_CONFIG . SYNC_TAX , settingValue , ! settingValue ) ;
368
397
@@ -429,4 +458,5 @@ export {
429
458
updateQuickbooksOnlineSyncClasses ,
430
459
updateQuickbooksOnlineSyncLocations ,
431
460
updateQuickbooksOnlineSyncCustomers ,
461
+ updateQuickbooksOnlineAccountingMethod ,
432
462
} ;
0 commit comments