From df83acb5edeec2330afd8f7d5547623c0d73a4f0 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Mon, 6 Dec 2021 11:33:50 -0800 Subject: [PATCH] IO-117 PBS Updates. --- .../dms-log-events.component.jsx | 4 +- client/src/pages/dms/dms.container.jsx | 4 +- server/accounting/pbs/pbs-job-export.js | 68 ++++++++++++++----- server/graphql-client/queries.js | 6 ++ 4 files changed, 63 insertions(+), 19 deletions(-) diff --git a/client/src/components/dms-log-events/dms-log-events.component.jsx b/client/src/components/dms-log-events/dms-log-events.component.jsx index f88d6bd3b..8f57158e5 100644 --- a/client/src/components/dms-log-events/dms-log-events.component.jsx +++ b/client/src/components/dms-log-events/dms-log-events.component.jsx @@ -22,7 +22,9 @@ export default connect(mapStateToProps, mapDispatchToProps)(DmsLogEvents); export function DmsLogEvents({ socket, logs, bodyshop }) { return ( - + {logs.map((log, idx) => ( diff --git a/client/src/pages/dms/dms.container.jsx b/client/src/pages/dms/dms.container.jsx index 5fc7f1166..c5e44a3af 100644 --- a/client/src/pages/dms/dms.container.jsx +++ b/client/src/pages/dms/dms.container.jsx @@ -158,8 +158,8 @@ export function DmsContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) { +
- +
- ); diff --git a/server/accounting/pbs/pbs-job-export.js b/server/accounting/pbs/pbs-job-export.js index 056c84d0f..58c577038 100644 --- a/server/accounting/pbs/pbs-job-export.js +++ b/server/accounting/pbs/pbs-job-export.js @@ -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); diff --git a/server/graphql-client/queries.js b/server/graphql-client/queries.js index fd30f7242..61f659192 100644 --- a/server/graphql-client/queries.js +++ b/server/graphql-client/queries.js @@ -255,6 +255,8 @@ query QUERY_JOBS_FOR_PBS_EXPORT($id: uuid!) { clm_no dms_allocation invoice_allocation + kmin + kmout ownerid ownr_ln ownr_fn @@ -302,6 +304,10 @@ query QUERY_JOBS_FOR_PBS_EXPORT($id: uuid!) { v_make_desc v_color ca_customer_gst + vehicle{ + v_trimcode + v_makecode + } bodyshop { id md_ro_statuses