IO-3356 PBS posting initial working commit.
This commit is contained in:
@@ -11,10 +11,6 @@ const 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`;
|
||||
exports.PBS_ENDPOINTS = {
|
||||
|
||||
@@ -27,7 +27,7 @@ axios.interceptors.request.use((x) => {
|
||||
} | ${JSON.stringify(x.data)} | ${JSON.stringify(headers)}`;
|
||||
//console.log(printable);
|
||||
|
||||
CdkBase.createJsonEvent(socket, "SILLY", `Raw Request: ${printable}`, x.data);
|
||||
CdkBase.createJsonEvent(socket, "DEBUG", `Raw Request: ${printable}`, x.data);
|
||||
|
||||
return x;
|
||||
});
|
||||
@@ -37,7 +37,7 @@ axios.interceptors.response.use((x) => {
|
||||
|
||||
const printable = `${new Date()} | Response: ${x.status} | ${JSON.stringify(x.data)}`;
|
||||
//console.log(printable);
|
||||
CdkBase.createJsonEvent(socket, "SILLY", `Raw Response: ${printable}`, x.data);
|
||||
CdkBase.createJsonEvent(socket, "DEBUG", `Raw Response: ${printable}`, x.data);
|
||||
|
||||
return x;
|
||||
});
|
||||
@@ -104,16 +104,15 @@ exports.PbsSelectedCustomer = async function PbsSelectedCustomer(socket, selecte
|
||||
|
||||
//If export succesful, check to see if an RO exists.
|
||||
//If it does, update necessary elements, otherwise create it.
|
||||
|
||||
if (socket.jobData.bodyshop.pbs_configuration.ro_posting) { //TODO: Create `ro_posting` field on
|
||||
await CreateRepairOrderInPBS(socket, socket.ownerRef, socket.VehicleRef)
|
||||
}
|
||||
// if (socket.jobData.bodyshop.pbs_configuration.ro_posting) { //TODO: Create `ro_posting` field on
|
||||
await CreateRepairOrderInPBS(socket, socket.ownerRef, socket.VehicleRef)
|
||||
// }
|
||||
socket.emit("export-success", socket.JobData.id);
|
||||
} else {
|
||||
CdkBase.createLogEvent(socket, "ERROR", `Export was not successful.`);
|
||||
}
|
||||
} catch (error) {
|
||||
CdkBase.createLogEvent(socket, "ERROR", `Error encountered in CdkSelectedCustomer. ${error}`);
|
||||
CdkBase.createLogEvent(socket, "ERROR", `Error encountered in PbsSelectedCustomer. ${error}`);
|
||||
await InsertFailedExportLog(socket, error);
|
||||
}
|
||||
};
|
||||
@@ -631,17 +630,17 @@ async function InsertFailedExportLog(socket, error) {
|
||||
async function CreateRepairOrderInPBS(socket) {
|
||||
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)
|
||||
} else if (ExistingRepairOrderData.RepairOrders.length === 1) {
|
||||
} else if (RepairOrders.length === 1) {
|
||||
|
||||
//Upsert Scenario
|
||||
const InsertedRepairOrder = await RepairOrderChange(socket)
|
||||
} else {
|
||||
//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) {
|
||||
CdkBase.createLogEvent(socket, "ERROR", `Error in CreateRepairOrderInPBS - ${error} - ${JSON.stringify(error)}`);
|
||||
@@ -654,11 +653,11 @@ async function RepairOrderGet(socket) {
|
||||
PBS_ENDPOINTS.RepairOrderGet,
|
||||
{
|
||||
SerialNumber: socket.JobData.bodyshop.pbs_serialnumber,
|
||||
//"RepairOrderId": "00000000000000000000000000000000",
|
||||
"RepairOrderNumber": socket.JobData.ro_number,
|
||||
// "RawRepairOrderNumber": "String",
|
||||
//"RepairOrderId": "374728766",
|
||||
//"RepairOrderNumber": "4" || socket.JobData.ro_number,
|
||||
"RawRepairOrderNumber": socket.JobData.ro_number,
|
||||
// "Tag": "String",
|
||||
// "ContactRef": "00000000000000000000000000000000",
|
||||
//"ContactRef": "701de19bb6c146ffb90b9aead4ba0a82",
|
||||
// "ContactRefList": ["00000000000000000000000000000000"],
|
||||
// "VehicleRef": "00000000000000000000000000000000",
|
||||
// "VehicleRefList": ["00000000000000000000000000000000"],
|
||||
@@ -667,7 +666,7 @@ async function RepairOrderGet(socket) {
|
||||
// "CashieredUntil": "0001-01-01T00:00:00.0000000Z",
|
||||
// "OpenDateSince": "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",
|
||||
// "Shop": "String"
|
||||
},
|
||||
@@ -681,22 +680,20 @@ async function RepairOrderGet(socket) {
|
||||
}
|
||||
}
|
||||
|
||||
async function RepairOrderChange(socket) {
|
||||
async function RepairOrderChange(socket, PbsROObject) {
|
||||
try {
|
||||
const { data: RepairOrderChangeResponse } = await axios.post(
|
||||
PBS_ENDPOINTS.RepairOrderChange,
|
||||
{
|
||||
"RepairOrderInfo": {
|
||||
"Id": "string/00000000-0000-0000-0000-000000000000",
|
||||
"RepairOrderId": "00000000000000000000000000000000",
|
||||
|
||||
//"Id": "string/00000000-0000-0000-0000-000000000000",
|
||||
//"RepairOrderId": "00000000000000000000000000000000",
|
||||
SerialNumber: socket.JobData.bodyshop.pbs_serialnumber,
|
||||
|
||||
"RepairOrderNumber": socket.JobData.ro_number.match(/\d+/g), //TODO Verify if this is only the numbers.
|
||||
"RepairOrderNumber": socket.JobData.ro_number,
|
||||
"RawRepairOrderNumber": socket.JobData.ro_number,
|
||||
"DateOpened": moment(), //Confirm this is today.
|
||||
//"DateOpenedUTC": "0001-01-01T00:00:00.0000000Z",
|
||||
//"DateCashiered": "0001-01-01T00:00:00.0000000Z",
|
||||
"DateOpened": moment(),
|
||||
// "DateOpenedUTC": "0001-01-01T00:00:00.0000000Z",
|
||||
// "DateCashiered": "0001-01-01T00:00:00.0000000Z",
|
||||
// "DateCashieredUTC": "0001-01-01T00:00:00.0000000Z",
|
||||
"DatePromised": socket.JobData.scheduled_completion,
|
||||
// "DatePromisedUTC": "0001-01-01T00:00:00.0000000Z",
|
||||
@@ -706,11 +703,11 @@ async function RepairOrderChange(socket) {
|
||||
// "CSRRef": "00000000000000000000000000000000",
|
||||
// "BookingUser": "String",
|
||||
// "BookingUserRef": "00000000000000000000000000000000",
|
||||
"ContactRef": socket.ownerRef?.Contact?.Id, //TODO: Verify the structure of this, it's a resoponse object from PBS.
|
||||
"VehicleRef": socket.vehicleRef?.Vehicle?.Id,
|
||||
"ContactRef": socket.ownerRef?.ReferenceId,
|
||||
"VehicleRef": socket.vehicleRef?.ReferenceId,
|
||||
"MileageIn": socket.JobData.km_in,
|
||||
//"MileageOut": 0,//KM out not tracked.
|
||||
//"Tag": "String",
|
||||
// "MileageOut": 0,
|
||||
"Tag": "BODYSHOP",
|
||||
// "Location": "String",
|
||||
// "IsWaiter": false,
|
||||
// "IsComeback": false,
|
||||
@@ -718,7 +715,63 @@ async function RepairOrderChange(socket) {
|
||||
// "ChargeType": "String",
|
||||
// "PurchaseOrderNumber": "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": [
|
||||
// {
|
||||
// "RepairOrderRequestRef": "00000000000000000000000000000000",
|
||||
@@ -1552,22 +1605,21 @@ async function RepairOrderChange(socket) {
|
||||
// "PostalCode": "String",
|
||||
// "AdditionalInfo": "String"
|
||||
// },
|
||||
// "AlternateEndAddress": {
|
||||
// "Name": "String",
|
||||
// "Address": "String",
|
||||
// "City": "String",
|
||||
// "Province": "String",
|
||||
// "PostalCode": "String",
|
||||
// "AdditionalInfo": "String"
|
||||
// }
|
||||
// },
|
||||
"IsAsynchronous": false,
|
||||
// "UserRequest": "String",
|
||||
// "UserRef": "00000000000000000000000000000000"
|
||||
}
|
||||
// "AlternateEndAddress": {
|
||||
// "Name": "String",
|
||||
// "Address": "String",
|
||||
// "City": "String",
|
||||
// "Province": "String",
|
||||
// "PostalCode": "String",
|
||||
// "AdditionalInfo": "String"
|
||||
// }
|
||||
},
|
||||
"IsAsynchronous": false,
|
||||
// "UserRequest": "String",
|
||||
// "UserRef": "00000000000000000000000000000000"
|
||||
}
|
||||
|
||||
|
||||
,
|
||||
,
|
||||
{ auth: PBS_CREDENTIALS, socket }
|
||||
);
|
||||
CheckForErrors(socket, RepairOrderChangeResponse);
|
||||
|
||||
Reference in New Issue
Block a user