From 748f8f472d9a93587a84daf6cca5ef6ca31aa06a Mon Sep 17 00:00:00 2001 From: Patrick Fic <> Date: Tue, 24 Aug 2021 15:56:10 -0700 Subject: [PATCH] IO-233 Insert DMS Vehicle --- .../dms-post-form/dms-post-form.component.jsx | 2 +- server/cdk/cdk-job-export.js | 72 ++++++++++++++++++- 2 files changed, 72 insertions(+), 2 deletions(-) diff --git a/client/src/components/dms-post-form/dms-post-form.component.jsx b/client/src/components/dms-post-form/dms-post-form.component.jsx index e6c46ea89..27bffaf00 100644 --- a/client/src/components/dms-post-form/dms-post-form.component.jsx +++ b/client/src/components/dms-post-form/dms-post-form.component.jsx @@ -53,7 +53,7 @@ export function DmsPostForm({ bodyshop, socket, job }) { const handleFinish = (values) => { socket.emit(`${determineDmsType(bodyshop)}-export-job`, { jobId: job.id, - ...values, + txEnvelope: values, }); }; diff --git a/server/cdk/cdk-job-export.js b/server/cdk/cdk-job-export.js index e049af79a..4434a3d6a 100644 --- a/server/cdk/cdk-job-export.js +++ b/server/cdk/cdk-job-export.js @@ -12,10 +12,12 @@ const CdkBase = require("../web-sockets/web-socket"); const CdkWsdl = require("./cdk-wsdl").default; const logger = require("../utils/logger"); const { CDK_CREDENTIALS, CheckCdkResponseForError } = require("./cdk-wsdl"); +const moment = require("moment"); -exports.default = async function (socket, { jobid }) { +exports.default = async function (socket, { txEnvelope, jobid }) { socket.logEvents = []; socket.recordid = jobid; + socket.txEnvelope = txEnvelope; try { CdkBase.createLogEvent( socket, @@ -567,3 +569,71 @@ async function InsertDmsCustomer(socket, JobData, newCustomerNumber) { throw new Error(error); } } + +async function InsertDmsVehicle(socket, JobData) { + try { + const soapClientVehicleInsertUpdate = await soap.createClientAsync( + CdkWsdl.VehicleInsertUpdate + ); + + const soapResponseVehicleInsertUpdate = + await soapClientVehicleInsertUpdate.insertAsync({ + arg0: CDK_CREDENTIALS, + arg1: { id: JobData.bodyshop.cdk_dealerid }, + arg2: { + dealer: { + dealerNumber: JobData.bodyshop.cdk_dealerid, + VehicleId: socket.DmsVehId.vehiclesVehId, + }, + manufacturer: {}, + vehicle: { + DeliveryDate: moment().format("YYYYMMDD"), + Make: socket.txEnvelope.dms_make, + Model: socket.txEnvelope.dms_model, + ModelYear: JobData.v_model_yr, + OdometerStatus: socket.txEnvelope.kmout, + SaleClassValue: "MISC", + VIN: JobData.v_vin, + }, + owners: { + id: { + assigningPartyId: "CURRENT", + value: socket.DmsCust.id.value, + }, + }, + }, + }); + CheckCdkResponseForError(socket, soapResponseVehicleInsertUpdate); + const [result, rawResponse, , rawRequest] = soapResponseVehicleInsertUpdate; + + CdkBase.createXmlEvent( + socket, + rawRequest, + `soapClientVehicleInsertUpdate.insertAsync reqest.` + ); + + CdkBase.createLogEvent( + socket, + "TRACE", + `soapClientVehicleInsertUpdate.insertAsync Result ${JSON.stringify( + result, + null, + 2 + )}` + ); + CdkBase.createXmlEvent( + socket, + rawResponse, + `soapClientVehicleInsertUpdate.insertAsync response.` + ); + const VehicleFromDMS = result && result.return && result.return.vehicle; + return VehicleFromDMS; + } catch (error) { + CdkBase.createLogEvent( + socket, + "ERROR", + `Error in QueryDmsVehicleById - ${error}` + ); + throw new Error(error); + } +}