diff --git a/src/app/api/quickbooks/auth/auth.service.ts b/src/app/api/quickbooks/auth/auth.service.ts index f28e5dc..d11b852 100644 --- a/src/app/api/quickbooks/auth/auth.service.ts +++ b/src/app/api/quickbooks/auth/auth.service.ts @@ -52,7 +52,23 @@ export class AuthService extends BaseService { } async manageIncomeAccountRef(intuitApi: IntuitAPI): Promise { - const incomeAccRef = await intuitApi.getSingleIncomeAccount() + const existingIncomeAccRef = await intuitApi.getSingleIncomeAccount() + if (existingIncomeAccRef) { + return existingIncomeAccRef?.Id + } + + console.info( + `IntuitAPI#manageIncomeAccountRef | No existing income account found. Creating new one.`, + ) + + const payload = { + Name: 'Assembly SOP Income', + Classification: 'Revenue', + AccountType: 'Income', + AccountSubType: 'SalesOfProductIncome', + Active: true, + } + const incomeAccRef = await intuitApi.createAccount(payload) return incomeAccRef.Id } @@ -60,7 +76,7 @@ export class AuthService extends BaseService { const accName = 'Assembly Processing Fees' const existingAccount = await intuitApi.getAnAccount(accName) if (existingAccount) { - return existingAccount.Id + return existingAccount?.Id } // Docs: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/account#the-account-object @@ -79,7 +95,7 @@ export class AuthService extends BaseService { const accName = 'Assembly General Asset' const existingAccount = await intuitApi.getAnAccount(accName) if (existingAccount) { - return existingAccount.Id + return existingAccount?.Id } /**