IO-3356 PBS posting initial working commit.
This commit is contained in:
@@ -11,10 +11,6 @@ const PBS_CREDENTIALS = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
exports.PBS_CREDENTIALS = PBS_CREDENTIALS;
|
exports.PBS_CREDENTIALS = PBS_CREDENTIALS;
|
||||||
// const cdkDomain =
|
|
||||||
// process.env.NODE_ENV === "production"
|
|
||||||
// ? "https://3pa.dmotorworks.com"
|
|
||||||
// : "https://uat-3pa.dmotorworks.com";
|
|
||||||
|
|
||||||
const pbsDomain = `https://partnerhub.pbsdealers.com/json/reply`;
|
const pbsDomain = `https://partnerhub.pbsdealers.com/json/reply`;
|
||||||
exports.PBS_ENDPOINTS = {
|
exports.PBS_ENDPOINTS = {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ axios.interceptors.request.use((x) => {
|
|||||||
} | ${JSON.stringify(x.data)} | ${JSON.stringify(headers)}`;
|
} | ${JSON.stringify(x.data)} | ${JSON.stringify(headers)}`;
|
||||||
//console.log(printable);
|
//console.log(printable);
|
||||||
|
|
||||||
CdkBase.createJsonEvent(socket, "SILLY", `Raw Request: ${printable}`, x.data);
|
CdkBase.createJsonEvent(socket, "DEBUG", `Raw Request: ${printable}`, x.data);
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
});
|
});
|
||||||
@@ -37,7 +37,7 @@ axios.interceptors.response.use((x) => {
|
|||||||
|
|
||||||
const printable = `${new Date()} | Response: ${x.status} | ${JSON.stringify(x.data)}`;
|
const printable = `${new Date()} | Response: ${x.status} | ${JSON.stringify(x.data)}`;
|
||||||
//console.log(printable);
|
//console.log(printable);
|
||||||
CdkBase.createJsonEvent(socket, "SILLY", `Raw Response: ${printable}`, x.data);
|
CdkBase.createJsonEvent(socket, "DEBUG", `Raw Response: ${printable}`, x.data);
|
||||||
|
|
||||||
return x;
|
return x;
|
||||||
});
|
});
|
||||||
@@ -104,16 +104,15 @@ exports.PbsSelectedCustomer = async function PbsSelectedCustomer(socket, selecte
|
|||||||
|
|
||||||
//If export succesful, check to see if an RO exists.
|
//If export succesful, check to see if an RO exists.
|
||||||
//If it does, update necessary elements, otherwise create it.
|
//If it does, update necessary elements, otherwise create it.
|
||||||
|
// if (socket.jobData.bodyshop.pbs_configuration.ro_posting) { //TODO: Create `ro_posting` field on
|
||||||
if (socket.jobData.bodyshop.pbs_configuration.ro_posting) { //TODO: Create `ro_posting` field on
|
await CreateRepairOrderInPBS(socket, socket.ownerRef, socket.VehicleRef)
|
||||||
await CreateRepairOrderInPBS(socket, socket.ownerRef, socket.VehicleRef)
|
// }
|
||||||
}
|
|
||||||
socket.emit("export-success", socket.JobData.id);
|
socket.emit("export-success", socket.JobData.id);
|
||||||
} else {
|
} else {
|
||||||
CdkBase.createLogEvent(socket, "ERROR", `Export was not successful.`);
|
CdkBase.createLogEvent(socket, "ERROR", `Export was not successful.`);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
CdkBase.createLogEvent(socket, "ERROR", `Error encountered in CdkSelectedCustomer. ${error}`);
|
CdkBase.createLogEvent(socket, "ERROR", `Error encountered in PbsSelectedCustomer. ${error}`);
|
||||||
await InsertFailedExportLog(socket, error);
|
await InsertFailedExportLog(socket, error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -631,17 +630,17 @@ async function InsertFailedExportLog(socket, error) {
|
|||||||
async function CreateRepairOrderInPBS(socket) {
|
async function CreateRepairOrderInPBS(socket) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
const ExistingRepairOrderData = await RepairOrderGet(socket);
|
const { RepairOrders } = await RepairOrderGet(socket);
|
||||||
|
|
||||||
if (ExistingRepairOrderData.RepairOrders.length === 0) {
|
if (RepairOrders.length === 0) {
|
||||||
const InsertedRepairOrder = await RepairOrderChange(socket)
|
const InsertedRepairOrder = await RepairOrderChange(socket)
|
||||||
} else if (ExistingRepairOrderData.RepairOrders.length === 1) {
|
} else if (RepairOrders.length === 1) {
|
||||||
|
|
||||||
//Upsert Scenario
|
//Upsert Scenario
|
||||||
const InsertedRepairOrder = await RepairOrderChange(socket)
|
const InsertedRepairOrder = await RepairOrderChange(socket)
|
||||||
} else {
|
} else {
|
||||||
//We had too many matches come back. Shouldn't be here.
|
//We had too many matches come back. Shouldn't be here.
|
||||||
CdkBase.createLogEvent(socket, "ERROR", `Error in CreateRepairOrderInPBS - Multiple RO's returned by PBS. ${JSON.stringify(ExistingRepairOrderData.RepairOrders)}`);
|
CdkBase.createLogEvent(socket, "ERROR", `Error in CreateRepairOrderInPBS - Multiple RO's returned by PBS. ${JSON.stringify(ExistingRepairOrderData)}`);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
CdkBase.createLogEvent(socket, "ERROR", `Error in CreateRepairOrderInPBS - ${error} - ${JSON.stringify(error)}`);
|
CdkBase.createLogEvent(socket, "ERROR", `Error in CreateRepairOrderInPBS - ${error} - ${JSON.stringify(error)}`);
|
||||||
@@ -654,11 +653,11 @@ async function RepairOrderGet(socket) {
|
|||||||
PBS_ENDPOINTS.RepairOrderGet,
|
PBS_ENDPOINTS.RepairOrderGet,
|
||||||
{
|
{
|
||||||
SerialNumber: socket.JobData.bodyshop.pbs_serialnumber,
|
SerialNumber: socket.JobData.bodyshop.pbs_serialnumber,
|
||||||
//"RepairOrderId": "00000000000000000000000000000000",
|
//"RepairOrderId": "374728766",
|
||||||
"RepairOrderNumber": socket.JobData.ro_number,
|
//"RepairOrderNumber": "4" || socket.JobData.ro_number,
|
||||||
// "RawRepairOrderNumber": "String",
|
"RawRepairOrderNumber": socket.JobData.ro_number,
|
||||||
// "Tag": "String",
|
// "Tag": "String",
|
||||||
// "ContactRef": "00000000000000000000000000000000",
|
//"ContactRef": "701de19bb6c146ffb90b9aead4ba0a82",
|
||||||
// "ContactRefList": ["00000000000000000000000000000000"],
|
// "ContactRefList": ["00000000000000000000000000000000"],
|
||||||
// "VehicleRef": "00000000000000000000000000000000",
|
// "VehicleRef": "00000000000000000000000000000000",
|
||||||
// "VehicleRefList": ["00000000000000000000000000000000"],
|
// "VehicleRefList": ["00000000000000000000000000000000"],
|
||||||
@@ -667,7 +666,7 @@ async function RepairOrderGet(socket) {
|
|||||||
// "CashieredUntil": "0001-01-01T00:00:00.0000000Z",
|
// "CashieredUntil": "0001-01-01T00:00:00.0000000Z",
|
||||||
// "OpenDateSince": "0001-01-01T00:00:00.0000000Z",
|
// "OpenDateSince": "0001-01-01T00:00:00.0000000Z",
|
||||||
// "OpenDateUntil": "0001-01-01T00:00:00.0000000Z",
|
// "OpenDateUntil": "0001-01-01T00:00:00.0000000Z",
|
||||||
// "ModifiedSince": "0001-01-01T00:00:00.0000000Z",
|
//"ModifiedSince": "2025-01-01T00:00:00.0000000Z",
|
||||||
// "ModifiedUntil": "0001-01-01T00:00:00.0000000Z",
|
// "ModifiedUntil": "0001-01-01T00:00:00.0000000Z",
|
||||||
// "Shop": "String"
|
// "Shop": "String"
|
||||||
},
|
},
|
||||||
@@ -681,22 +680,20 @@ async function RepairOrderGet(socket) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function RepairOrderChange(socket) {
|
async function RepairOrderChange(socket, PbsROObject) {
|
||||||
try {
|
try {
|
||||||
const { data: RepairOrderChangeResponse } = await axios.post(
|
const { data: RepairOrderChangeResponse } = await axios.post(
|
||||||
PBS_ENDPOINTS.RepairOrderChange,
|
PBS_ENDPOINTS.RepairOrderChange,
|
||||||
{
|
{
|
||||||
"RepairOrderInfo": {
|
"RepairOrderInfo": {
|
||||||
"Id": "string/00000000-0000-0000-0000-000000000000",
|
//"Id": "string/00000000-0000-0000-0000-000000000000",
|
||||||
"RepairOrderId": "00000000000000000000000000000000",
|
//"RepairOrderId": "00000000000000000000000000000000",
|
||||||
|
|
||||||
SerialNumber: socket.JobData.bodyshop.pbs_serialnumber,
|
SerialNumber: socket.JobData.bodyshop.pbs_serialnumber,
|
||||||
|
"RepairOrderNumber": socket.JobData.ro_number,
|
||||||
"RepairOrderNumber": socket.JobData.ro_number.match(/\d+/g), //TODO Verify if this is only the numbers.
|
|
||||||
"RawRepairOrderNumber": socket.JobData.ro_number,
|
"RawRepairOrderNumber": socket.JobData.ro_number,
|
||||||
"DateOpened": moment(), //Confirm this is today.
|
"DateOpened": moment(),
|
||||||
//"DateOpenedUTC": "0001-01-01T00:00:00.0000000Z",
|
// "DateOpenedUTC": "0001-01-01T00:00:00.0000000Z",
|
||||||
//"DateCashiered": "0001-01-01T00:00:00.0000000Z",
|
// "DateCashiered": "0001-01-01T00:00:00.0000000Z",
|
||||||
// "DateCashieredUTC": "0001-01-01T00:00:00.0000000Z",
|
// "DateCashieredUTC": "0001-01-01T00:00:00.0000000Z",
|
||||||
"DatePromised": socket.JobData.scheduled_completion,
|
"DatePromised": socket.JobData.scheduled_completion,
|
||||||
// "DatePromisedUTC": "0001-01-01T00:00:00.0000000Z",
|
// "DatePromisedUTC": "0001-01-01T00:00:00.0000000Z",
|
||||||
@@ -706,11 +703,11 @@ async function RepairOrderChange(socket) {
|
|||||||
// "CSRRef": "00000000000000000000000000000000",
|
// "CSRRef": "00000000000000000000000000000000",
|
||||||
// "BookingUser": "String",
|
// "BookingUser": "String",
|
||||||
// "BookingUserRef": "00000000000000000000000000000000",
|
// "BookingUserRef": "00000000000000000000000000000000",
|
||||||
"ContactRef": socket.ownerRef?.Contact?.Id, //TODO: Verify the structure of this, it's a resoponse object from PBS.
|
"ContactRef": socket.ownerRef?.ReferenceId,
|
||||||
"VehicleRef": socket.vehicleRef?.Vehicle?.Id,
|
"VehicleRef": socket.vehicleRef?.ReferenceId,
|
||||||
"MileageIn": socket.JobData.km_in,
|
"MileageIn": socket.JobData.km_in,
|
||||||
//"MileageOut": 0,//KM out not tracked.
|
// "MileageOut": 0,
|
||||||
//"Tag": "String",
|
"Tag": "BODYSHOP",
|
||||||
// "Location": "String",
|
// "Location": "String",
|
||||||
// "IsWaiter": false,
|
// "IsWaiter": false,
|
||||||
// "IsComeback": false,
|
// "IsComeback": false,
|
||||||
@@ -718,7 +715,63 @@ async function RepairOrderChange(socket) {
|
|||||||
// "ChargeType": "String",
|
// "ChargeType": "String",
|
||||||
// "PurchaseOrderNumber": "String",
|
// "PurchaseOrderNumber": "String",
|
||||||
// "Transportation": "String",
|
// "Transportation": "String",
|
||||||
"Status": "Closed",
|
"Status": "CLOSED", //This doesn't seem to apply.
|
||||||
|
Requests: [
|
||||||
|
{
|
||||||
|
// "RepairOrderRequestRef": "b1842ecad62c4279bbc2fef4f6bf6cde",
|
||||||
|
// "RepairOrderRequestId": 1,
|
||||||
|
// "CSR": "PBS",
|
||||||
|
// "CSRRef": "1ce12ac692564e94bda955d529ee911a",
|
||||||
|
// "Skill": "GEN",
|
||||||
|
"RequestCode": "MISC",
|
||||||
|
"RequestDescription": "REPAIR VEHICLE AT BODYSHOP",
|
||||||
|
"Status": "Completed",
|
||||||
|
// "TechRef": "00000000000000000000000000000000",
|
||||||
|
"AllowedHours": 0,
|
||||||
|
"EstimateLabour": 0,
|
||||||
|
"EstimateParts": 0,
|
||||||
|
"ComeBack": false,
|
||||||
|
"AddedOperation": true,
|
||||||
|
"PartLines": [],
|
||||||
|
"PartRequestLines": [],
|
||||||
|
"LabourLines": [],
|
||||||
|
"SubletLines": [],
|
||||||
|
"TimePunches": [],
|
||||||
|
"Summary": {
|
||||||
|
"Labour": 0,
|
||||||
|
"Parts": 0,
|
||||||
|
"OilGas": 0,
|
||||||
|
"SubletTow": 0,
|
||||||
|
"Misc": 0,
|
||||||
|
"Environment": 0,
|
||||||
|
"ShopSupplies": 0,
|
||||||
|
"Freight": 0,
|
||||||
|
"WarrantyDeductible": 0,
|
||||||
|
"Discount": 0,
|
||||||
|
"SubTotal": 0,
|
||||||
|
"Tax1": 0,
|
||||||
|
"Tax2": 0,
|
||||||
|
"InvoiceTotal": 0,
|
||||||
|
"CustomerDeductible": 0,
|
||||||
|
"GrandTotal": 0,
|
||||||
|
"LabourDiscount": 0,
|
||||||
|
"PartDiscount": 0,
|
||||||
|
"ServiceFeeTotal": 0,
|
||||||
|
"OEMDiscount": 0
|
||||||
|
},
|
||||||
|
// "Coupons": [],
|
||||||
|
// "PriceCode": "C",
|
||||||
|
// "JobGoodWill": false,
|
||||||
|
// "OriginType": "OperationCode",
|
||||||
|
"LineType": "RequestLine",
|
||||||
|
// "TireStorageType": 0,
|
||||||
|
// "IsDeleted": false,
|
||||||
|
// "InspectionRef": "00000000000000000000000000000000",
|
||||||
|
// "AWRTechCSRRef": "00000000000000000000000000000000",
|
||||||
|
// "DisplayInWebAppointments": false,
|
||||||
|
// "Severity": "Low"
|
||||||
|
},
|
||||||
|
],
|
||||||
// "Requests": [
|
// "Requests": [
|
||||||
// {
|
// {
|
||||||
// "RepairOrderRequestRef": "00000000000000000000000000000000",
|
// "RepairOrderRequestRef": "00000000000000000000000000000000",
|
||||||
@@ -1552,22 +1605,21 @@ async function RepairOrderChange(socket) {
|
|||||||
// "PostalCode": "String",
|
// "PostalCode": "String",
|
||||||
// "AdditionalInfo": "String"
|
// "AdditionalInfo": "String"
|
||||||
// },
|
// },
|
||||||
// "AlternateEndAddress": {
|
// "AlternateEndAddress": {
|
||||||
// "Name": "String",
|
// "Name": "String",
|
||||||
// "Address": "String",
|
// "Address": "String",
|
||||||
// "City": "String",
|
// "City": "String",
|
||||||
// "Province": "String",
|
// "Province": "String",
|
||||||
// "PostalCode": "String",
|
// "PostalCode": "String",
|
||||||
// "AdditionalInfo": "String"
|
// "AdditionalInfo": "String"
|
||||||
// }
|
// }
|
||||||
// },
|
},
|
||||||
"IsAsynchronous": false,
|
"IsAsynchronous": false,
|
||||||
// "UserRequest": "String",
|
// "UserRequest": "String",
|
||||||
// "UserRef": "00000000000000000000000000000000"
|
// "UserRef": "00000000000000000000000000000000"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
,
|
||||||
,
|
|
||||||
{ auth: PBS_CREDENTIALS, socket }
|
{ auth: PBS_CREDENTIALS, socket }
|
||||||
);
|
);
|
||||||
CheckForErrors(socket, RepairOrderChangeResponse);
|
CheckForErrors(socket, RepairOrderChangeResponse);
|
||||||
|
|||||||
Reference in New Issue
Block a user