diff --git a/server/accounting/qb-receivables-lines.js b/server/accounting/qb-receivables-lines.js index 107b081f7..3e3fb4be5 100644 --- a/server/accounting/qb-receivables-lines.js +++ b/server/accounting/qb-receivables-lines.js @@ -9,6 +9,7 @@ exports.default = function ({ qbo = false, items, taxCodes, + classes, }) { const InvoiceLineAdd = []; const responsibilityCenters = bodyshop.md_responsibility_centers; @@ -95,6 +96,9 @@ exports.default = function ({ DetailType: "SalesItemLineDetail", Amount: DineroAmount, SalesItemLineDetail: { + ...(jobs_by_pk.class + ? { ClassRef: { value: classes[jobs_by_pk.class] } } + : {}), ItemRef: { value: items[account.accountitem], }, @@ -161,6 +165,9 @@ exports.default = function ({ DetailType: "SalesItemLineDetail", Amount: DineroAmount, SalesItemLineDetail: { + ...(jobs_by_pk.class + ? { ClassRef: { value: classes[jobs_by_pk.class] } } + : {}), ItemRef: { value: items[account.accountitem], }, @@ -227,6 +234,9 @@ exports.default = function ({ ItemRef: { value: items[mapaAccount.accountitem], }, + ...(jobs_by_pk.class + ? { ClassRef: { value: classes[jobs_by_pk.class] } } + : {}), TaxCodeRef: { value: QboTaxId, }, @@ -290,6 +300,9 @@ exports.default = function ({ ItemRef: { value: items[mashAccount.accountitem], }, + ...(jobs_by_pk.class + ? { ClassRef: { value: classes[jobs_by_pk.class] } } + : {}), TaxCodeRef: { value: QboTaxId, }, @@ -367,6 +380,9 @@ exports.default = function ({ amount: Math.round((jobs_by_pk.towing_payable || 0) * 100), }).toFormat(DineroQbFormat), SalesItemLineDetail: { + ...(jobs_by_pk.class + ? { ClassRef: { value: classes[jobs_by_pk.class] } } + : {}), ItemRef: { value: items[account.accountitem], }, @@ -415,6 +431,9 @@ exports.default = function ({ amount: Math.round((jobs_by_pk.storage_payable || 0) * 100), }).toFormat(DineroQbFormat), SalesItemLineDetail: { + ...(jobs_by_pk.class + ? { ClassRef: { value: classes[jobs_by_pk.class] } } + : {}), ItemRef: { value: items[account.accountitem], }, @@ -466,6 +485,9 @@ exports.default = function ({ amount: Math.round((jobs_by_pk.adjustment_bottom_line || 0) * 100), }).toFormat(DineroQbFormat), SalesItemLineDetail: { + ...(jobs_by_pk.class + ? { ClassRef: { value: classes[jobs_by_pk.class] } } + : {}), ItemRef: { value: items[account.accountitem], }, @@ -554,6 +576,9 @@ exports.default = function ({ DineroQbFormat ), SalesItemLineDetail: { + ...(jobs_by_pk.class + ? { ClassRef: { value: classes[jobs_by_pk.class] } } + : {}), ItemRef: { value: items["PVRT"], }, diff --git a/server/accounting/qbo/qbo-payables.js b/server/accounting/qbo/qbo-payables.js index 978dcc5ac..80bd07f54 100644 --- a/server/accounting/qbo/qbo-payables.js +++ b/server/accounting/qbo/qbo-payables.js @@ -253,7 +253,7 @@ const generateBillLine = ( DetailType: "AccountBasedExpenseLineDetail", AccountBasedExpenseLineDetail: { - ...(jobClass ? { ClassRef: { Id: classes[jobClass] } } : {}), + ...(jobClass ? { ClassRef: { value: classes[jobClass] } } : {}), TaxCodeRef: { value: taxCodes[findTaxCode(billLine.applicable_taxes, ioSalesTaxCodes)], @@ -323,7 +323,7 @@ async function QueryMetaData(oauthClient, qbo_realmId, req) { classes.json.QueryResponse && classes.json.QueryResponse.Class && classes.json.QueryResponse.Class.forEach((t) => { - accountMapping[t.Name] = t.Id; + classMapping[t.Name] = t.Id; }); return { diff --git a/server/accounting/qbo/qbo-receivables.js b/server/accounting/qbo/qbo-receivables.js index 450621030..e676a1d52 100644 --- a/server/accounting/qbo/qbo-receivables.js +++ b/server/accounting/qbo/qbo-receivables.js @@ -402,7 +402,7 @@ async function QueryMetaData(oauthClient, qbo_realmId, req) { classes.json.QueryResponse && classes.json.QueryResponse.Class && classes.json.QueryResponse.Class.forEach((t) => { - itemMapping[t.Name] = t.Id; + classMapping[t.Name] = t.Id; }); return { @@ -431,13 +431,14 @@ async function InsertInvoice( qbo: true, items, taxCodes, + classes }); const invoiceObj = { Line: InvoiceLineAdd, TxnDate: moment(job.date_invoiced).format("YYYY-MM-DD"), DocNumber: job.ro_number, - ...(job.class ? { ClassRef: { Id: classes[job.class] } } : {}), + ...(job.class ? { ClassRef: { value: classes[job.class] } } : {}), CustomerMemo: { value: `${job.clm_no ? `Claim No: ${job.clm_no}` : ``}${ job.po_number ? `PO No: ${job.po_number}` : ``