From 9ff3311579b4277a02668db942fcfe25c3a0b2e2 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Fri, 26 Sep 2025 08:19:57 -0700 Subject: [PATCH] Add vehicle query. --- server/accounting/pbs/pbs-job-export.js | 57 +++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/server/accounting/pbs/pbs-job-export.js b/server/accounting/pbs/pbs-job-export.js index b18e8e359..4d25d0c3d 100644 --- a/server/accounting/pbs/pbs-job-export.js +++ b/server/accounting/pbs/pbs-job-export.js @@ -68,6 +68,7 @@ exports.default = async function (socket, { txEnvelope, jobid }) { exports.PbsSelectedCustomer = async function PbsSelectedCustomer(socket, selectedCustomerId) { try { + socket.selectedCustomerId = selectedCustomerId; if (socket.JobData.bodyshop.pbs_configuration.disablecontactvehicle !== true) { CdkBase.createLogEvent(socket, "INFO", `User selected customer ${selectedCustomerId || "NEW"}`); @@ -89,6 +90,11 @@ exports.PbsSelectedCustomer = async function PbsSelectedCustomer(socket, selecte "INFO", `Contact and Vehicle updates disabled. Skipping to accounting data insert.` ); + const ownerRef = await QueryCustomerBycodeFromDms(socket, selectedCustomerId); + socket.ownerRef = ownerRef; + CdkBase.createLogEvent(socket, "INFO", `Upserting vehicle information to DMS for ${socket.JobData.v_vin}`); + const vehicleRef = await GetVehicleData(socket, ownerRef.ReferenceId); + socket.vehicleRef = vehicleRef; } CdkBase.createLogEvent(socket, "INFO", `Inserting accounting posting data..`); const insertResponse = await InsertAccountPostingData(socket); @@ -470,6 +476,57 @@ async function UpsertVehicleData(socket, ownerRef) { } } +async function GetVehicleData(socket, ownerRef) { + try { + const { data: Vehicles } = await axios.post( + PBS_ENDPOINTS.VehicleGet, + { + SerialNumber: socket.JobData.bodyshop.pbs_serialnumber, + // "VehicleId": "00000000000000000000000000000000", + // "Year": "String", + // "YearFrom": "String", + // "YearTo": "String", + // "Make": "String", + // "Model": "String", + // "Trim": "String", + // "ModelNumber": "String", + // "StockNumber": "String", + VIN: socket.JobData.v_vin, + // "LicenseNumber": "String", + // "Lot": "String", + // "Status": "String", + // "StatusList": ["String"], + // "OwnerRef": "00000000000000000000000000000000", + // "ModifiedSince": "0001-01-01T00:00:00.0000000Z", + // "ModifiedUntil": "0001-01-01T00:00:00.0000000Z", + // "LastSaleSince": "0001-01-01T00:00:00.0000000Z", + // "VehicleIDList": ["00000000000000000000000000000000"], + // "IncludeInactive": false, + // "IncludeBuildVehicles": false, + // "IncludeBlankLot": false, + // "ShortVIN": "String", + // "ResultLimit": 0, + // "LotAccessDivisions": [0], + // "OdometerTo": 0, + // "OdometerFrom": 0 + } + , + { auth: PBS_CREDENTIALS, socket } + ); + CheckForErrors(socket, Vehicles); + if (Vehicles.length === 1) { + return Vehicles[0]; + + } else { + CdkBase.createLogEvent(socket, "ERROR", `Error in Getting Vehicle Data - ${Vehicles.length} vehicle(s) found`); + } + } catch (error) { + CdkBase.createLogEvent(socket, "ERROR", `Error in UpsertVehicleData - ${error}`); + throw new Error(error); + } +} + + async function InsertAccountPostingData(socket) { try { const allocations = await CalculateAllocations(socket, socket.JobData.id);