QBO Resolve classes issues.

This commit is contained in:
Patrick Fic
2022-02-03 12:07:20 -08:00
parent 173e9a278c
commit cf4f6f6e55
3 changed files with 30 additions and 4 deletions

View File

@@ -9,6 +9,7 @@ exports.default = function ({
qbo = false, qbo = false,
items, items,
taxCodes, taxCodes,
classes,
}) { }) {
const InvoiceLineAdd = []; const InvoiceLineAdd = [];
const responsibilityCenters = bodyshop.md_responsibility_centers; const responsibilityCenters = bodyshop.md_responsibility_centers;
@@ -95,6 +96,9 @@ exports.default = function ({
DetailType: "SalesItemLineDetail", DetailType: "SalesItemLineDetail",
Amount: DineroAmount, Amount: DineroAmount,
SalesItemLineDetail: { SalesItemLineDetail: {
...(jobs_by_pk.class
? { ClassRef: { value: classes[jobs_by_pk.class] } }
: {}),
ItemRef: { ItemRef: {
value: items[account.accountitem], value: items[account.accountitem],
}, },
@@ -161,6 +165,9 @@ exports.default = function ({
DetailType: "SalesItemLineDetail", DetailType: "SalesItemLineDetail",
Amount: DineroAmount, Amount: DineroAmount,
SalesItemLineDetail: { SalesItemLineDetail: {
...(jobs_by_pk.class
? { ClassRef: { value: classes[jobs_by_pk.class] } }
: {}),
ItemRef: { ItemRef: {
value: items[account.accountitem], value: items[account.accountitem],
}, },
@@ -227,6 +234,9 @@ exports.default = function ({
ItemRef: { ItemRef: {
value: items[mapaAccount.accountitem], value: items[mapaAccount.accountitem],
}, },
...(jobs_by_pk.class
? { ClassRef: { value: classes[jobs_by_pk.class] } }
: {}),
TaxCodeRef: { TaxCodeRef: {
value: QboTaxId, value: QboTaxId,
}, },
@@ -290,6 +300,9 @@ exports.default = function ({
ItemRef: { ItemRef: {
value: items[mashAccount.accountitem], value: items[mashAccount.accountitem],
}, },
...(jobs_by_pk.class
? { ClassRef: { value: classes[jobs_by_pk.class] } }
: {}),
TaxCodeRef: { TaxCodeRef: {
value: QboTaxId, value: QboTaxId,
}, },
@@ -367,6 +380,9 @@ exports.default = function ({
amount: Math.round((jobs_by_pk.towing_payable || 0) * 100), amount: Math.round((jobs_by_pk.towing_payable || 0) * 100),
}).toFormat(DineroQbFormat), }).toFormat(DineroQbFormat),
SalesItemLineDetail: { SalesItemLineDetail: {
...(jobs_by_pk.class
? { ClassRef: { value: classes[jobs_by_pk.class] } }
: {}),
ItemRef: { ItemRef: {
value: items[account.accountitem], value: items[account.accountitem],
}, },
@@ -415,6 +431,9 @@ exports.default = function ({
amount: Math.round((jobs_by_pk.storage_payable || 0) * 100), amount: Math.round((jobs_by_pk.storage_payable || 0) * 100),
}).toFormat(DineroQbFormat), }).toFormat(DineroQbFormat),
SalesItemLineDetail: { SalesItemLineDetail: {
...(jobs_by_pk.class
? { ClassRef: { value: classes[jobs_by_pk.class] } }
: {}),
ItemRef: { ItemRef: {
value: items[account.accountitem], value: items[account.accountitem],
}, },
@@ -466,6 +485,9 @@ exports.default = function ({
amount: Math.round((jobs_by_pk.adjustment_bottom_line || 0) * 100), amount: Math.round((jobs_by_pk.adjustment_bottom_line || 0) * 100),
}).toFormat(DineroQbFormat), }).toFormat(DineroQbFormat),
SalesItemLineDetail: { SalesItemLineDetail: {
...(jobs_by_pk.class
? { ClassRef: { value: classes[jobs_by_pk.class] } }
: {}),
ItemRef: { ItemRef: {
value: items[account.accountitem], value: items[account.accountitem],
}, },
@@ -554,6 +576,9 @@ exports.default = function ({
DineroQbFormat DineroQbFormat
), ),
SalesItemLineDetail: { SalesItemLineDetail: {
...(jobs_by_pk.class
? { ClassRef: { value: classes[jobs_by_pk.class] } }
: {}),
ItemRef: { ItemRef: {
value: items["PVRT"], value: items["PVRT"],
}, },

View File

@@ -253,7 +253,7 @@ const generateBillLine = (
DetailType: "AccountBasedExpenseLineDetail", DetailType: "AccountBasedExpenseLineDetail",
AccountBasedExpenseLineDetail: { AccountBasedExpenseLineDetail: {
...(jobClass ? { ClassRef: { Id: classes[jobClass] } } : {}), ...(jobClass ? { ClassRef: { value: classes[jobClass] } } : {}),
TaxCodeRef: { TaxCodeRef: {
value: value:
taxCodes[findTaxCode(billLine.applicable_taxes, ioSalesTaxCodes)], taxCodes[findTaxCode(billLine.applicable_taxes, ioSalesTaxCodes)],
@@ -323,7 +323,7 @@ async function QueryMetaData(oauthClient, qbo_realmId, req) {
classes.json.QueryResponse && classes.json.QueryResponse &&
classes.json.QueryResponse.Class && classes.json.QueryResponse.Class &&
classes.json.QueryResponse.Class.forEach((t) => { classes.json.QueryResponse.Class.forEach((t) => {
accountMapping[t.Name] = t.Id; classMapping[t.Name] = t.Id;
}); });
return { return {

View File

@@ -402,7 +402,7 @@ async function QueryMetaData(oauthClient, qbo_realmId, req) {
classes.json.QueryResponse && classes.json.QueryResponse &&
classes.json.QueryResponse.Class && classes.json.QueryResponse.Class &&
classes.json.QueryResponse.Class.forEach((t) => { classes.json.QueryResponse.Class.forEach((t) => {
itemMapping[t.Name] = t.Id; classMapping[t.Name] = t.Id;
}); });
return { return {
@@ -431,13 +431,14 @@ async function InsertInvoice(
qbo: true, qbo: true,
items, items,
taxCodes, taxCodes,
classes
}); });
const invoiceObj = { const invoiceObj = {
Line: InvoiceLineAdd, Line: InvoiceLineAdd,
TxnDate: moment(job.date_invoiced).format("YYYY-MM-DD"), TxnDate: moment(job.date_invoiced).format("YYYY-MM-DD"),
DocNumber: job.ro_number, DocNumber: job.ro_number,
...(job.class ? { ClassRef: { Id: classes[job.class] } } : {}), ...(job.class ? { ClassRef: { value: classes[job.class] } } : {}),
CustomerMemo: { CustomerMemo: {
value: `${job.clm_no ? `Claim No: ${job.clm_no}` : ``}${ value: `${job.clm_no ? `Claim No: ${job.clm_no}` : ``}${
job.po_number ? `PO No: ${job.po_number}` : `` job.po_number ? `PO No: ${job.po_number}` : ``