IO-256 QBO Payables

This commit is contained in:
Patrick Fic
2021-09-29 08:43:15 -07:00
parent eb58274f90
commit 2637538d9a
8 changed files with 266 additions and 461 deletions

View File

@@ -14,7 +14,7 @@ const {
setNewRefreshToken,
} = require("./qbo-callback");
const OAuthClient = require("intuit-oauth");
const CreateInvoiceLines = require("../qb-receivables-lines");
const CreateInvoiceLines = require("../qb-receivables-lines").default;
const moment = require("moment");
const GraphQLClient = require("graphql-request").GraphQLClient;
@@ -332,6 +332,14 @@ async function QueryMetaData(oauthClient, req) {
},
});
const classes = await oauthClient.makeApiCall({
url: urlBuilder(req.cookies.qbo_realmId, "query", `select * From Class`),
method: "POST",
headers: {
"Content-Type": "application/json",
},
});
const taxCodeMapping = {};
taxCodes.json &&
@@ -348,14 +356,22 @@ async function QueryMetaData(oauthClient, req) {
itemMapping[t.Name] = t.Id;
});
const classMapping = {};
classes.json &&
classes.json.QueryResponse &&
classes.json.QueryResponse.Class.forEach((t) => {
itemMapping[t.Name] = t.Id;
});
return {
items: itemMapping,
taxCodes: taxCodeMapping,
classes: classMapping,
};
}
async function InsertInvoice(oauthClient, req, job, bodyshop, parentTierRef) {
const { items, taxCodes } = await QueryMetaData(oauthClient, req);
const { items, taxCodes, classes } = await QueryMetaData(oauthClient, req);
const InvoiceLineAdd = CreateInvoiceLines({
bodyshop,
jobs_by_pk: job,
@@ -368,6 +384,7 @@ async function InsertInvoice(oauthClient, req, job, bodyshop, parentTierRef) {
Line: InvoiceLineAdd,
TxnDate: moment(job.date_invoiced).format("YYYY-MM-DD"),
DocNumber: job.ro_number,
...(job.class ? { ClassRef: { Id: classes[job.class] } } : {}),
CustomerRef: {
value: parentTierRef.Id,
},