|
|
|
|
@@ -6,7 +6,7 @@ require("dotenv").config({
|
|
|
|
|
),
|
|
|
|
|
});
|
|
|
|
|
const GraphQLClient = require("graphql-request").GraphQLClient;
|
|
|
|
|
const axios = require("axios").default;
|
|
|
|
|
const AxiosLib = require("axios").default;
|
|
|
|
|
const queries = require("../../graphql-client/queries");
|
|
|
|
|
const { PBS_ENDPOINTS, PBS_CREDENTIALS } = require("./pbs-constants");
|
|
|
|
|
|
|
|
|
|
@@ -16,6 +16,37 @@ const CalculateAllocations =
|
|
|
|
|
const CdkBase = require("../../web-sockets/web-socket");
|
|
|
|
|
const moment = require("moment");
|
|
|
|
|
|
|
|
|
|
const axios = AxiosLib.create();
|
|
|
|
|
axios.interceptors.request.use((x) => {
|
|
|
|
|
const socket = x.socket;
|
|
|
|
|
|
|
|
|
|
const headers = {
|
|
|
|
|
...x.headers.common,
|
|
|
|
|
...x.headers[x.method],
|
|
|
|
|
...x.headers,
|
|
|
|
|
};
|
|
|
|
|
const printable = `${new Date()} | Request: ${x.method.toUpperCase()} | ${
|
|
|
|
|
x.url
|
|
|
|
|
} | ${JSON.stringify(x.data)} | ${JSON.stringify(headers)}`;
|
|
|
|
|
console.log(printable);
|
|
|
|
|
|
|
|
|
|
CdkBase.createLogEvent(socket, "TRACE", `Raw Request: ${printable}`);
|
|
|
|
|
|
|
|
|
|
return x;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
axios.interceptors.response.use((x) => {
|
|
|
|
|
const socket = x.config.socket;
|
|
|
|
|
|
|
|
|
|
const printable = `${new Date()} | Response: ${x.status} | ${JSON.stringify(
|
|
|
|
|
x.data
|
|
|
|
|
)}`;
|
|
|
|
|
console.log(printable);
|
|
|
|
|
CdkBase.createLogEvent(socket, "TRACE", `Raw Response: ${printable}`);
|
|
|
|
|
|
|
|
|
|
return x;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
exports.default = async function (socket, { txEnvelope, jobid }) {
|
|
|
|
|
socket.logEvents = [];
|
|
|
|
|
socket.recordid = jobid;
|
|
|
|
|
@@ -31,7 +62,7 @@ exports.default = async function (socket, { txEnvelope, jobid }) {
|
|
|
|
|
socket.JobData = JobData;
|
|
|
|
|
|
|
|
|
|
//Query for the Vehicle record to get the associated customer.
|
|
|
|
|
// socket.DmsVeh = await QueryVehicleFromDms(socket);
|
|
|
|
|
socket.DmsVeh = await QueryVehicleFromDms(socket);
|
|
|
|
|
//Todo: Need to validate the lines and methods below.
|
|
|
|
|
if (socket.DmsVeh && socket.DmsVeh.CustomerRef) {
|
|
|
|
|
//Get the associated customer from the Vehicle Record.
|
|
|
|
|
@@ -72,7 +103,9 @@ exports.PbsSelectedCustomer = async function PbsSelectedCustomer(
|
|
|
|
|
CdkBase.createLogEvent(
|
|
|
|
|
socket,
|
|
|
|
|
"DEBUG",
|
|
|
|
|
`Upserting contact information to DMS for ${socket.JobData.ownr_fn} ${socket.JobData.ownr_ln} ${socket.JobData.ownr_co_nm}`
|
|
|
|
|
`Upserting contact information to DMS for ${
|
|
|
|
|
socket.JobData.ownr_fn || ""
|
|
|
|
|
} ${socket.JobData.ownr_ln || ""} ${socket.JobData.ownr_co_nm || ""}`
|
|
|
|
|
);
|
|
|
|
|
const ownerRef = await UpsertContactData(socket, selectedCustomerId);
|
|
|
|
|
|
|
|
|
|
@@ -83,6 +116,7 @@ exports.PbsSelectedCustomer = async function PbsSelectedCustomer(
|
|
|
|
|
);
|
|
|
|
|
await UpsertVehicleData(socket, ownerRef.ReferenceId);
|
|
|
|
|
CdkBase.createLogEvent(socket, "DEBUG", `Inserting account data.`);
|
|
|
|
|
return;
|
|
|
|
|
await InsertAccountPostingData(socket);
|
|
|
|
|
CdkBase.createLogEvent(socket, "DEBUG", `Marking job as exported.`);
|
|
|
|
|
await MarkJobExported(socket, socket.JobData.id);
|
|
|
|
|
@@ -135,7 +169,7 @@ async function QueryJobData(socket, jobid) {
|
|
|
|
|
|
|
|
|
|
async function QueryVehicleFromDms(socket) {
|
|
|
|
|
try {
|
|
|
|
|
const { data: VehicleGetResponse } = await axios.post(
|
|
|
|
|
const { data: VehicleGetResponse, request } = await axios.post(
|
|
|
|
|
PBS_ENDPOINTS.VehicleGet,
|
|
|
|
|
{
|
|
|
|
|
SerialNumber: socket.JobData.bodyshop.pbs_serialnumber,
|
|
|
|
|
@@ -160,8 +194,9 @@ async function QueryVehicleFromDms(socket) {
|
|
|
|
|
// IncludeBuildVehicles: false,
|
|
|
|
|
// ShortVIN: "String",
|
|
|
|
|
},
|
|
|
|
|
{ auth: PBS_CREDENTIALS }
|
|
|
|
|
{ auth: PBS_CREDENTIALS, socket }
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CheckForErrors(socket, VehicleGetResponse);
|
|
|
|
|
return VehicleGetResponse;
|
|
|
|
|
} catch (error) {
|
|
|
|
|
@@ -180,13 +215,13 @@ async function QueryCustomersFromDms(socket) {
|
|
|
|
|
{
|
|
|
|
|
SerialNumber: socket.JobData.bodyshop.pbs_serialnumber,
|
|
|
|
|
//ContactId: "00000000000000000000000000000000",
|
|
|
|
|
ContactCode: socket.JobData.owner.accountingid,
|
|
|
|
|
// ContactCode: socket.JobData.owner.accountingid,
|
|
|
|
|
FirstName: socket.JobData.ownr_co_nm
|
|
|
|
|
? socket.JobData.ownr_co_nm
|
|
|
|
|
: socket.JobData.ownr_fn,
|
|
|
|
|
LastName: socket.JobData.ownr_ln,
|
|
|
|
|
PhoneNumber: socket.JobData.ownr_ph1,
|
|
|
|
|
// EmailAddress: "String",
|
|
|
|
|
EmailAddress: socket.JobData.ownr_ea,
|
|
|
|
|
// ModifiedSince: "0001-01-01T00:00:00.0000000Z",
|
|
|
|
|
// ModifiedUntil: "0001-01-01T00:00:00.0000000Z",
|
|
|
|
|
// ContactIdList: ["00000000000000000000000000000000"],
|
|
|
|
|
@@ -196,7 +231,7 @@ async function QueryCustomersFromDms(socket) {
|
|
|
|
|
// DriverLicense: "String",
|
|
|
|
|
// ZipCode: "String",
|
|
|
|
|
},
|
|
|
|
|
{ auth: PBS_CREDENTIALS }
|
|
|
|
|
{ auth: PBS_CREDENTIALS, socket }
|
|
|
|
|
);
|
|
|
|
|
CheckForErrors(socket, CustomerGetResponse);
|
|
|
|
|
return CustomerGetResponse && CustomerGetResponse.Contacts;
|
|
|
|
|
@@ -232,7 +267,7 @@ async function QueryCustomerBycodeFromDms(socket, CustomerRef) {
|
|
|
|
|
// DriverLicense: "String",
|
|
|
|
|
// ZipCode: "String",
|
|
|
|
|
},
|
|
|
|
|
{ auth: PBS_CREDENTIALS }
|
|
|
|
|
{ auth: PBS_CREDENTIALS, socket }
|
|
|
|
|
);
|
|
|
|
|
CheckForErrors(socket, CustomerGetResponse);
|
|
|
|
|
return CustomerGetResponse && CustomerGetResponse.Contacts;
|
|
|
|
|
@@ -318,7 +353,7 @@ async function UpsertContactData(socket, selectedCustomerId) {
|
|
|
|
|
// UserRequest: "String",
|
|
|
|
|
// UserRef: "00000000000000000000000000000000",
|
|
|
|
|
},
|
|
|
|
|
{ auth: PBS_CREDENTIALS }
|
|
|
|
|
{ auth: PBS_CREDENTIALS, socket }
|
|
|
|
|
);
|
|
|
|
|
CheckForErrors(socket, ContactChangeResponse);
|
|
|
|
|
return ContactChangeResponse;
|
|
|
|
|
@@ -347,16 +382,17 @@ async function UpsertVehicleData(socket, ownerRef) {
|
|
|
|
|
//FleetNumber: "String",
|
|
|
|
|
//Status: "String",
|
|
|
|
|
OwnerRef: ownerRef, // "00000000000000000000000000000000",
|
|
|
|
|
//ModelNumber: "String",
|
|
|
|
|
ModelNumber:
|
|
|
|
|
socket.JobData.vehicle && socket.JobData.vehicle.v_makecode,
|
|
|
|
|
Make: socket.JobData.v_make_desc,
|
|
|
|
|
Model: socket.JobData.v_model_desc,
|
|
|
|
|
//Trim: "String",
|
|
|
|
|
Trim: socket.JobData.vehicle && socket.JobData.vehicle.v_trimcode,
|
|
|
|
|
//VehicleType: "String",
|
|
|
|
|
Year: socket.JobData.v_model_yr,
|
|
|
|
|
Odometer: socket.JobData.kmin,
|
|
|
|
|
Odometer: socket.JobData.kmout,
|
|
|
|
|
ExteriorColor: {
|
|
|
|
|
Code: socket.JobData.v_color,
|
|
|
|
|
//Description: "String",
|
|
|
|
|
Description: socket.JobData.v_color,
|
|
|
|
|
},
|
|
|
|
|
// InteriorColor: { Code: "String", Description: "String" },
|
|
|
|
|
//Engine: "String",
|
|
|
|
|
@@ -475,7 +511,7 @@ async function UpsertVehicleData(socket, ownerRef) {
|
|
|
|
|
// UserRequest: "String",
|
|
|
|
|
// UserRef: "00000000000000000000000000000000",
|
|
|
|
|
},
|
|
|
|
|
{ auth: PBS_CREDENTIALS }
|
|
|
|
|
{ auth: PBS_CREDENTIALS, socket }
|
|
|
|
|
);
|
|
|
|
|
CheckForErrors(socket, VehicleChangeResponse);
|
|
|
|
|
return VehicleChangeResponse;
|
|
|
|
|
@@ -564,7 +600,7 @@ async function InsertAccountPostingData(socket) {
|
|
|
|
|
Lines: wips,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{ auth: PBS_CREDENTIALS }
|
|
|
|
|
{ auth: PBS_CREDENTIALS, socket }
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CheckForErrors(socket, AccountPostingChange);
|
|
|
|
|
|