WIP PBS RO

This commit is contained in:
Patrick Fic
2025-08-22 08:21:29 -07:00
parent 55d242d40d
commit 5552c73721
7 changed files with 12764 additions and 11750 deletions

View File

@@ -1,4 +1,4 @@
<babeledit_project be_version="2.7.1" version="1.2">
<babeledit_project version="1.2" be_version="2.7.1">
<!--
BabelEdit project file
@@ -5305,6 +5305,27 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>ro_posting</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>sendmaterialscosting</name>
<definition_loaded>false</definition_loaded>
@@ -8472,6 +8493,27 @@
</translation>
</translations>
</concept_node>
<concept_node>
<name>responsibilitycenter</name>
<definition_loaded>false</definition_loaded>
<description></description>
<comment></comment>
<default_text></default_text>
<translations>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-MX</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-CA</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>templates</name>
<definition_loaded>false</definition_loaded>

View File

@@ -138,6 +138,15 @@ export function ShopInfoResponsibilityCenterComponent({ bodyshop, form }) {
<Switch />
</Form.Item>
)}
{bodyshop.pbs_serialnumber && (
<Form.Item
label={t("bodyshop.fields.dms.ro_posting")}
valuePropName="checked"
name={["pbs_configuration", "ro_posting"]}
>
<Switch />
</Form.Item>
)}
{bodyshop.pbs_serialnumber && (
<Form.Item
label={t("bodyshop.fields.dms.appostingaccount")}

View File

@@ -316,6 +316,7 @@
"itc_local": "Local Tax is ITC?",
"itc_state": "State Tax is ITC?",
"mappingname": "DMS Mapping Name",
"ro_posting": "Create $0 RO?",
"sendmaterialscosting": "Materials Cost as % of Sale",
"srcco": "Source Company #/Dealer #"
},

View File

@@ -316,6 +316,7 @@
"itc_local": "",
"itc_state": "",
"mappingname": "",
"ro_posting": "",
"sendmaterialscosting": "",
"srcco": ""
},

View File

@@ -316,6 +316,7 @@
"itc_local": "",
"itc_state": "",
"mappingname": "",
"ro_posting": "",
"sendmaterialscosting": "",
"srcco": ""
},

View File

@@ -23,5 +23,9 @@ exports.PBS_ENDPOINTS = {
VehicleGet: `${pbsDomain}/VehicleGet`,
AccountingPostingChange: `${pbsDomain}/AccountingPostingChange`,
ContactChange: `${pbsDomain}/ContactChange`,
VehicleChange: `${pbsDomain}/VehicleChange`
VehicleChange: `${pbsDomain}/VehicleChange`,
RepairOrderChange: `${pbsDomain}/RepairOrderChange`, //TODO: Verify that this is correct. Docs have /reply/ in path.
RepairOrderGet: `${pbsDomain}/RepairOrderGet`,
RepairOrderContactVehicleGet: `${pbsDomain}/RepairOrderContactVehicleGet`,
RepairOrderContactVehicleChange: `${pbsDomain}/RepairOrderContactVehicleChange`,
};

View File

@@ -23,8 +23,7 @@ axios.interceptors.request.use((x) => {
...x.headers[x.method],
...x.headers
};
const printable = `${new Date()} | Request: ${x.method.toUpperCase()} | ${
x.url
const printable = `${new Date()} | Request: ${x.method.toUpperCase()} | ${x.url
} | ${JSON.stringify(x.data)} | ${JSON.stringify(headers)}`;
//console.log(printable);
@@ -80,14 +79,14 @@ exports.PbsSelectedCustomer = async function PbsSelectedCustomer(socket, selecte
CdkBase.createLogEvent(
socket,
"DEBUG",
`Upserting contact information to DMS for ${
socket.JobData.ownr_fn || ""
`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);
socket.ownerRef = ownerRef;
CdkBase.createLogEvent(socket, "DEBUG", `Upserting vehicle information to DMS for ${socket.JobData.v_vin}`);
await UpsertVehicleData(socket, ownerRef.ReferenceId);
const vehicleRef = await UpsertVehicleData(socket, ownerRef.ReferenceId);
socket.vehicleRef = vehicleRef;
} else {
CdkBase.createLogEvent(
socket,
@@ -103,6 +102,12 @@ exports.PbsSelectedCustomer = async function PbsSelectedCustomer(socket, selecte
CdkBase.createLogEvent(socket, "DEBUG", `Marking job as exported.`);
await MarkJobExported(socket, socket.JobData.id);
//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)
}
socket.emit("export-success", socket.JobData.id);
} else {
CdkBase.createLogEvent(socket, "ERROR", `Export was not successful.`);
@@ -621,3 +626,954 @@ async function InsertFailedExportLog(socket, error) {
CdkBase.createLogEvent(socket, "ERROR", `Error in InsertFailedExportLog - ${error} - ${JSON.stringify(error2)}`);
}
}
async function CreateRepairOrderInPBS(socket) {
try {
const ExistingRepairOrderData = await RepairOrderGet(socket);
if (ExistingRepairOrderData.RepairOrders.length === 0) {
const InsertedRepairOrder = await RepairOrderChange(socket)
} else if (ExistingRepairOrderData.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)}`);
}
} catch (error) {
CdkBase.createLogEvent(socket, "ERROR", `Error in CreateRepairOrderInPBS - ${error} - ${JSON.stringify(error)}`);
}
}
async function RepairOrderGet(socket) {
try {
const { data: RepairOrderGet } = await axios.post(
PBS_ENDPOINTS.RepairOrderGet,
{
SerialNumber: socket.JobData.bodyshop.pbs_serialnumber,
//"RepairOrderId": "00000000000000000000000000000000",
"RepairOrderNumber": socket.JobData.ro_number,
// "RawRepairOrderNumber": "String",
// "Tag": "String",
// "ContactRef": "00000000000000000000000000000000",
// "ContactRefList": ["00000000000000000000000000000000"],
// "VehicleRef": "00000000000000000000000000000000",
// "VehicleRefList": ["00000000000000000000000000000000"],
// "Status": "String",
// "CashieredSince": "0001-01-01T00:00:00.0000000Z",
// "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",
// "ModifiedUntil": "0001-01-01T00:00:00.0000000Z",
// "Shop": "String"
},
{ auth: PBS_CREDENTIALS, socket }
);
CheckForErrors(socket, RepairOrderGet);
return RepairOrderGet;
} catch (error) {
CdkBase.createLogEvent(socket, "ERROR", `Error in RepairOrderChange - ${error}`);
throw new Error(error);
}
}
async function RepairOrderChange(socket) {
try {
const { data: RepairOrderChangeResponse } = await axios.post(
PBS_ENDPOINTS.RepairOrderChange,
{
"RepairOrderInfo": {
"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.
"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",
// "DateCashieredUTC": "0001-01-01T00:00:00.0000000Z",
"DatePromised": socket.JobData.scheduled_completion,
// "DatePromisedUTC": "0001-01-01T00:00:00.0000000Z",
"DateVehicleCompleted": socket.JobData.actual_completion,
// "DateCustomerNotified": "0001-01-01T00:00:00.0000000Z",
// "CSR": "String",
// "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,
"MileageIn": socket.JobData.km_in,
//"MileageOut": 0,//KM out not tracked.
//"Tag": "String",
// "Location": "String",
// "IsWaiter": false,
// "IsComeback": false,
// "Shop": "String",
// "ChargeType": "String",
// "PurchaseOrderNumber": "String",
// "Transportation": "String",
"Status": "Closed",
// "Requests": [
// {
// "RepairOrderRequestRef": "00000000000000000000000000000000",
// "RepairOrderRequestId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "Skill": "String",
// "RequestCode": "String",
// "RequestDescription": "String",
// "Cause": "String",
// "Correction": "String",
// "Status": "String",
// "Tech": "String",
// "TechRef": "00000000000000000000000000000000",
// "AllowedHours": 0,
// "EstimateLabour": 0,
// "EstimateParts": 0,
// "ComeBack": false,
// "AddedOperation": false,
// "PartLines": [
// {
// "RepairOrderPartsLineRef": "00000000000000000000000000000000",
// "RepairOrderPartsLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "PartRef": "00000000000000000000000000000000",
// "PartNumber": "String",
// "PartDescription": "String",
// "Requested": 0,
// "Shipped": 0,
// "Ordered": 0,
// "PriceCode": "String",
// "Cost": 0,
// "UnitPrice": 0,
// "ExtendedPrice": 0,
// "NoHistory": false,
// "Tax1": 0,
// "Tax2": 0,
// "Discount": 0,
// "OriginalSerialNumber": "String",
// "ReplacementSerialNumber": "String",
// "IsPartsKit": false,
// "PartsKitName": "String",
// "Comment": "String",
// "PriceOverride": "String",
// "GMItemId": "String",
// "BIN": "String",
// "PartsRequestType": "Inquiry",
// "IsTransferred": false,
// "IsPickTicketPrinted": false,
// "SpecialOrderRef": "00000000000000000000000000000000"
// }
// ],
// "PartRequestLines": [
// {
// "RepairOrderPartsLineRef": "00000000000000000000000000000000",
// "RepairOrderPartsLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "PartRef": "00000000000000000000000000000000",
// "PartNumber": "String",
// "PartDescription": "String",
// "Requested": 0,
// "Shipped": 0,
// "Ordered": 0,
// "PriceCode": "String",
// "Cost": 0,
// "UnitPrice": 0,
// "ExtendedPrice": 0,
// "NoHistory": false,
// "Tax1": 0,
// "Tax2": 0,
// "Discount": 0,
// "OriginalSerialNumber": "String",
// "ReplacementSerialNumber": "String",
// "IsPartsKit": false,
// "PartsKitName": "String",
// "Comment": "String",
// "PriceOverride": "String",
// "GMItemId": "String",
// "BIN": "String",
// "PartsRequestType": "Inquiry",
// "IsTransferred": false,
// "IsPickTicketPrinted": false,
// "SpecialOrderRef": "00000000000000000000000000000000"
// }
// ],
// "LabourLines": [
// {
// "RepairOrderLabourLineRef": "00000000000000000000000000000000",
// "RepairOrderLabourLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "OpCode": "String",
// "OpDescription": "String",
// "Tech": "String",
// "TechRef": "00000000000000000000000000000000",
// "ActualHours": 0,
// "SoldHours": 0,
// "PriceCode": "String",
// "Price": 0,
// "Cost": 0,
// "Tax1": 0,
// "Tax2": 0,
// "Discount": 0,
// "PriceCodeType": 0,
// "PriceOverride": "String",
// "GMItemId": "String",
// "GMOPCode": "String"
// }
// ],
// "SubletLines": [
// {
// "RepairOrderSubletLineRef": "00000000000000000000000000000000",
// "RepairOrderSubletLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "Description": "String",
// "PriceCode": "String",
// "Price": 0,
// "Cost": 0,
// "Tax1": 0,
// "Tax2": 0
// }
// ],
// "TimePunches": [
// {
// "StartTime": "0001-01-01T00:00:00.0000000Z",
// "StopTime": "0001-01-01T00:00:00.0000000Z",
// "StartTimeLocal": "0001-01-01T00:00:00.0000000+00:00",
// "StopTimeLocal": "0001-01-01T00:00:00.0000000+00:00",
// "Tech": "String",
// "TechRef": "00000000000000000000000000000000"
// }
// ],
// "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,
// "CustomerDeductibleBillableDescription": "String",
// "GrandTotal": 0,
// "Status": "String",
// "DateCashiered": "0001-01-01T00:00:00.0000000Z",
// "LabourDiscount": 0,
// "PartDiscount": 0,
// "ServiceFeeTotal": 0,
// "OEMDiscount": 0
// },
// "Coupons": [{ "Code": "String", "Description": "String", "Amount": 0 }],
// "PriceCode": "String",
// "JobGoodWill": false,
// "JobReferback": "String",
// "ClaimNumber": "String",
// "OriginType": "String",
// "PartnerAddedReq": "String",
// "LineType": "RequestLine",
// "MenuPackagePriceType": "String",
// "TireStorageType": 0,
// "IsDeleted": false,
// "InspectionRef": "00000000000000000000000000000000",
// "AWRTechCSR": "String",
// "AWRTechCSRRef": "00000000000000000000000000000000",
// "FailureCode": "String",
// "DisplayInWebAppointments": false,
// "MarkedForDeletion": false,
// "Reason": "String",
// "Severity": "String",
// "JobNote": "String"
// }
// ],
// "CustomerSummary": {
// "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,
// "CustomerDeductibleBillableDescription": "String",
// "GrandTotal": 0,
// "Status": "String",
// "DateCashiered": "0001-01-01T00:00:00.0000000Z",
// "LabourDiscount": 0,
// "PartDiscount": 0,
// "ServiceFeeTotal": 0,
// "OEMDiscount": 0
// },
// "WarrantySummary": {
// "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,
// "CustomerDeductibleBillableDescription": "String",
// "GrandTotal": 0,
// "Status": "String",
// "DateCashiered": "0001-01-01T00:00:00.0000000Z",
// "LabourDiscount": 0,
// "PartDiscount": 0,
// "ServiceFeeTotal": 0,
// "OEMDiscount": 0
// },
// "InternalSummary": {
// "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,
// "CustomerDeductibleBillableDescription": "String",
// "GrandTotal": 0,
// "Status": "String",
// "DateCashiered": "0001-01-01T00:00:00.0000000Z",
// "LabourDiscount": 0,
// "PartDiscount": 0,
// "ServiceFeeTotal": 0,
// "OEMDiscount": 0
// },
// "Loaner": {
// "VehicleRef": "00000000000000000000000000000000",
// "FriendlyId": "String",
// "DatePickup": "0001-01-01T00:00:00.0000000Z",
// "DateDropOff": "0001-01-01T00:00:00.0000000Z",
// "OdomPickup": 0,
// "OdomDropOff": 0,
// "AgreementNumber": 0,
// "Comments": "String"
// },
"Memo": socket.txEnvelope.story,
// "MemoCustomerCopy": false,
// "AppointmentNumber": 0,
// "AppointmentRef": "00000000000000000000000000000000",
// "LastUpdate": "0001-01-01T00:00:00.0000000Z",
// "IsHardCopyPrinted": false,
// "PendingRequests": [
// {
// "RepairOrderRequestRef": "00000000000000000000000000000000",
// "RepairOrderRequestId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "Skill": "String",
// "RequestCode": "String",
// "RequestDescription": "String",
// "Cause": "String",
// "Correction": "String",
// "Status": "String",
// "Tech": "String",
// "TechRef": "00000000000000000000000000000000",
// "AllowedHours": 0,
// "EstimateLabour": 0,
// "EstimateParts": 0,
// "ComeBack": false,
// "AddedOperation": false,
// "PartLines": [
// {
// "RepairOrderPartsLineRef": "00000000000000000000000000000000",
// "RepairOrderPartsLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "PartRef": "00000000000000000000000000000000",
// "PartNumber": "String",
// "PartDescription": "String",
// "Requested": 0,
// "Shipped": 0,
// "Ordered": 0,
// "PriceCode": "String",
// "Cost": 0,
// "UnitPrice": 0,
// "ExtendedPrice": 0,
// "NoHistory": false,
// "Tax1": 0,
// "Tax2": 0,
// "Discount": 0,
// "OriginalSerialNumber": "String",
// "ReplacementSerialNumber": "String",
// "IsPartsKit": false,
// "PartsKitName": "String",
// "Comment": "String",
// "PriceOverride": "String",
// "GMItemId": "String",
// "BIN": "String",
// "PartsRequestType": "Inquiry",
// "IsTransferred": false,
// "IsPickTicketPrinted": false,
// "SpecialOrderRef": "00000000000000000000000000000000"
// }
// ],
// "PartRequestLines": [
// {
// "RepairOrderPartsLineRef": "00000000000000000000000000000000",
// "RepairOrderPartsLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "PartRef": "00000000000000000000000000000000",
// "PartNumber": "String",
// "PartDescription": "String",
// "Requested": 0,
// "Shipped": 0,
// "Ordered": 0,
// "PriceCode": "String",
// "Cost": 0,
// "UnitPrice": 0,
// "ExtendedPrice": 0,
// "NoHistory": false,
// "Tax1": 0,
// "Tax2": 0,
// "Discount": 0,
// "OriginalSerialNumber": "String",
// "ReplacementSerialNumber": "String",
// "IsPartsKit": false,
// "PartsKitName": "String",
// "Comment": "String",
// "PriceOverride": "String",
// "GMItemId": "String",
// "BIN": "String",
// "PartsRequestType": "Inquiry",
// "IsTransferred": false,
// "IsPickTicketPrinted": false,
// "SpecialOrderRef": "00000000000000000000000000000000"
// }
// ],
// "LabourLines": [
// {
// "RepairOrderLabourLineRef": "00000000000000000000000000000000",
// "RepairOrderLabourLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "OpCode": "String",
// "OpDescription": "String",
// "Tech": "String",
// "TechRef": "00000000000000000000000000000000",
// "ActualHours": 0,
// "SoldHours": 0,
// "PriceCode": "String",
// "Price": 0,
// "Cost": 0,
// "Tax1": 0,
// "Tax2": 0,
// "Discount": 0,
// "PriceCodeType": 0,
// "PriceOverride": "String",
// "GMItemId": "String",
// "GMOPCode": "String"
// }
// ],
// "SubletLines": [
// {
// "RepairOrderSubletLineRef": "00000000000000000000000000000000",
// "RepairOrderSubletLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "Description": "String",
// "PriceCode": "String",
// "Price": 0,
// "Cost": 0,
// "Tax1": 0,
// "Tax2": 0
// }
// ],
// "TimePunches": [
// {
// "StartTime": "0001-01-01T00:00:00.0000000Z",
// "StopTime": "0001-01-01T00:00:00.0000000Z",
// "StartTimeLocal": "0001-01-01T00:00:00.0000000+00:00",
// "StopTimeLocal": "0001-01-01T00:00:00.0000000+00:00",
// "Tech": "String",
// "TechRef": "00000000000000000000000000000000"
// }
// ],
// "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,
// "CustomerDeductibleBillableDescription": "String",
// "GrandTotal": 0,
// "Status": "String",
// "DateCashiered": "0001-01-01T00:00:00.0000000Z",
// "LabourDiscount": 0,
// "PartDiscount": 0,
// "ServiceFeeTotal": 0,
// "OEMDiscount": 0
// },
// "Coupons": [{ "Code": "String", "Description": "String", "Amount": 0 }],
// "PriceCode": "String",
// "JobGoodWill": false,
// "JobReferback": "String",
// "ClaimNumber": "String",
// "OriginType": "String",
// "PartnerAddedReq": "String",
// "LineType": "RequestLine",
// "MenuPackagePriceType": "String",
// "TireStorageType": 0,
// "IsDeleted": false,
// "InspectionRef": "00000000000000000000000000000000",
// "AWRTechCSR": "String",
// "AWRTechCSRRef": "00000000000000000000000000000000",
// "FailureCode": "String",
// "DisplayInWebAppointments": false,
// "MarkedForDeletion": false,
// "Reason": "String",
// "Severity": "String",
// "JobNote": "String"
// }
// ],
// "DeferredRequests": [
// {
// "RepairOrderRequestRef": "00000000000000000000000000000000",
// "RepairOrderRequestId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "Skill": "String",
// "RequestCode": "String",
// "RequestDescription": "String",
// "Cause": "String",
// "Correction": "String",
// "Status": "String",
// "Tech": "String",
// "TechRef": "00000000000000000000000000000000",
// "AllowedHours": 0,
// "EstimateLabour": 0,
// "EstimateParts": 0,
// "ComeBack": false,
// "AddedOperation": false,
// "PartLines": [
// {
// "RepairOrderPartsLineRef": "00000000000000000000000000000000",
// "RepairOrderPartsLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "PartRef": "00000000000000000000000000000000",
// "PartNumber": "String",
// "PartDescription": "String",
// "Requested": 0,
// "Shipped": 0,
// "Ordered": 0,
// "PriceCode": "String",
// "Cost": 0,
// "UnitPrice": 0,
// "ExtendedPrice": 0,
// "NoHistory": false,
// "Tax1": 0,
// "Tax2": 0,
// "Discount": 0,
// "OriginalSerialNumber": "String",
// "ReplacementSerialNumber": "String",
// "IsPartsKit": false,
// "PartsKitName": "String",
// "Comment": "String",
// "PriceOverride": "String",
// "GMItemId": "String",
// "BIN": "String",
// "PartsRequestType": "Inquiry",
// "IsTransferred": false,
// "IsPickTicketPrinted": false,
// "SpecialOrderRef": "00000000000000000000000000000000"
// }
// ],
// "PartRequestLines": [
// {
// "RepairOrderPartsLineRef": "00000000000000000000000000000000",
// "RepairOrderPartsLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "PartRef": "00000000000000000000000000000000",
// "PartNumber": "String",
// "PartDescription": "String",
// "Requested": 0,
// "Shipped": 0,
// "Ordered": 0,
// "PriceCode": "String",
// "Cost": 0,
// "UnitPrice": 0,
// "ExtendedPrice": 0,
// "NoHistory": false,
// "Tax1": 0,
// "Tax2": 0,
// "Discount": 0,
// "OriginalSerialNumber": "String",
// "ReplacementSerialNumber": "String",
// "IsPartsKit": false,
// "PartsKitName": "String",
// "Comment": "String",
// "PriceOverride": "String",
// "GMItemId": "String",
// "BIN": "String",
// "PartsRequestType": "Inquiry",
// "IsTransferred": false,
// "IsPickTicketPrinted": false,
// "SpecialOrderRef": "00000000000000000000000000000000"
// }
// ],
// "LabourLines": [
// {
// "RepairOrderLabourLineRef": "00000000000000000000000000000000",
// "RepairOrderLabourLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "OpCode": "String",
// "OpDescription": "String",
// "Tech": "String",
// "TechRef": "00000000000000000000000000000000",
// "ActualHours": 0,
// "SoldHours": 0,
// "PriceCode": "String",
// "Price": 0,
// "Cost": 0,
// "Tax1": 0,
// "Tax2": 0,
// "Discount": 0,
// "PriceCodeType": 0,
// "PriceOverride": "String",
// "GMItemId": "String",
// "GMOPCode": "String"
// }
// ],
// "SubletLines": [
// {
// "RepairOrderSubletLineRef": "00000000000000000000000000000000",
// "RepairOrderSubletLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "Description": "String",
// "PriceCode": "String",
// "Price": 0,
// "Cost": 0,
// "Tax1": 0,
// "Tax2": 0
// }
// ],
// "TimePunches": [
// {
// "StartTime": "0001-01-01T00:00:00.0000000Z",
// "StopTime": "0001-01-01T00:00:00.0000000Z",
// "StartTimeLocal": "0001-01-01T00:00:00.0000000+00:00",
// "StopTimeLocal": "0001-01-01T00:00:00.0000000+00:00",
// "Tech": "String",
// "TechRef": "00000000000000000000000000000000"
// }
// ],
// "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,
// "CustomerDeductibleBillableDescription": "String",
// "GrandTotal": 0,
// "Status": "String",
// "DateCashiered": "0001-01-01T00:00:00.0000000Z",
// "LabourDiscount": 0,
// "PartDiscount": 0,
// "ServiceFeeTotal": 0,
// "OEMDiscount": 0
// },
// "Coupons": [{ "Code": "String", "Description": "String", "Amount": 0 }],
// "PriceCode": "String",
// "JobGoodWill": false,
// "JobReferback": "String",
// "ClaimNumber": "String",
// "OriginType": "String",
// "PartnerAddedReq": "String",
// "LineType": "RequestLine",
// "MenuPackagePriceType": "String",
// "TireStorageType": 0,
// "IsDeleted": false,
// "InspectionRef": "00000000000000000000000000000000",
// "AWRTechCSR": "String",
// "AWRTechCSRRef": "00000000000000000000000000000000",
// "FailureCode": "String",
// "DisplayInWebAppointments": false,
// "MarkedForDeletion": false,
// "Reason": "String",
// "Severity": "String",
// "JobNote": "String"
// }
// ],
// "CancelledRequests": [
// {
// "RepairOrderRequestRef": "00000000000000000000000000000000",
// "RepairOrderRequestId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "Skill": "String",
// "RequestCode": "String",
// "RequestDescription": "String",
// "Cause": "String",
// "Correction": "String",
// "Status": "String",
// "Tech": "String",
// "TechRef": "00000000000000000000000000000000",
// "AllowedHours": 0,
// "EstimateLabour": 0,
// "EstimateParts": 0,
// "ComeBack": false,
// "AddedOperation": false,
// "PartLines": [
// {
// "RepairOrderPartsLineRef": "00000000000000000000000000000000",
// "RepairOrderPartsLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "PartRef": "00000000000000000000000000000000",
// "PartNumber": "String",
// "PartDescription": "String",
// "Requested": 0,
// "Shipped": 0,
// "Ordered": 0,
// "PriceCode": "String",
// "Cost": 0,
// "UnitPrice": 0,
// "ExtendedPrice": 0,
// "NoHistory": false,
// "Tax1": 0,
// "Tax2": 0,
// "Discount": 0,
// "OriginalSerialNumber": "String",
// "ReplacementSerialNumber": "String",
// "IsPartsKit": false,
// "PartsKitName": "String",
// "Comment": "String",
// "PriceOverride": "String",
// "GMItemId": "String",
// "BIN": "String",
// "PartsRequestType": "Inquiry",
// "IsTransferred": false,
// "IsPickTicketPrinted": false,
// "SpecialOrderRef": "00000000000000000000000000000000"
// }
// ],
// "PartRequestLines": [
// {
// "RepairOrderPartsLineRef": "00000000000000000000000000000000",
// "RepairOrderPartsLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "PartRef": "00000000000000000000000000000000",
// "PartNumber": "String",
// "PartDescription": "String",
// "Requested": 0,
// "Shipped": 0,
// "Ordered": 0,
// "PriceCode": "String",
// "Cost": 0,
// "UnitPrice": 0,
// "ExtendedPrice": 0,
// "NoHistory": false,
// "Tax1": 0,
// "Tax2": 0,
// "Discount": 0,
// "OriginalSerialNumber": "String",
// "ReplacementSerialNumber": "String",
// "IsPartsKit": false,
// "PartsKitName": "String",
// "Comment": "String",
// "PriceOverride": "String",
// "GMItemId": "String",
// "BIN": "String",
// "PartsRequestType": "Inquiry",
// "IsTransferred": false,
// "IsPickTicketPrinted": false,
// "SpecialOrderRef": "00000000000000000000000000000000"
// }
// ],
// "LabourLines": [
// {
// "RepairOrderLabourLineRef": "00000000000000000000000000000000",
// "RepairOrderLabourLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "OpCode": "String",
// "OpDescription": "String",
// "Tech": "String",
// "TechRef": "00000000000000000000000000000000",
// "ActualHours": 0,
// "SoldHours": 0,
// "PriceCode": "String",
// "Price": 0,
// "Cost": 0,
// "Tax1": 0,
// "Tax2": 0,
// "Discount": 0,
// "PriceCodeType": 0,
// "PriceOverride": "String",
// "GMItemId": "String",
// "GMOPCode": "String"
// }
// ],
// "SubletLines": [
// {
// "RepairOrderSubletLineRef": "00000000000000000000000000000000",
// "RepairOrderSubletLineId": 0,
// "CSR": "String",
// "CSRRef": "00000000000000000000000000000000",
// "Description": "String",
// "PriceCode": "String",
// "Price": 0,
// "Cost": 0,
// "Tax1": 0,
// "Tax2": 0
// }
// ],
// "TimePunches": [
// {
// "StartTime": "0001-01-01T00:00:00.0000000Z",
// "StopTime": "0001-01-01T00:00:00.0000000Z",
// "StartTimeLocal": "0001-01-01T00:00:00.0000000+00:00",
// "StopTimeLocal": "0001-01-01T00:00:00.0000000+00:00",
// "Tech": "String",
// "TechRef": "00000000000000000000000000000000"
// }
// ],
// "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,
// "CustomerDeductibleBillableDescription": "String",
// "GrandTotal": 0,
// "Status": "String",
// "DateCashiered": "0001-01-01T00:00:00.0000000Z",
// "LabourDiscount": 0,
// "PartDiscount": 0,
// "ServiceFeeTotal": 0,
// "OEMDiscount": 0
// },
// "Coupons": [{ "Code": "String", "Description": "String", "Amount": 0 }],
// "PriceCode": "String",
// "JobGoodWill": false,
// "JobReferback": "String",
// "ClaimNumber": "String",
// "OriginType": "String",
// "PartnerAddedReq": "String",
// "LineType": "RequestLine",
// "MenuPackagePriceType": "String",
// "TireStorageType": 0,
// "IsDeleted": false,
// "InspectionRef": "00000000000000000000000000000000",
// "AWRTechCSR": "String",
// "AWRTechCSRRef": "00000000000000000000000000000000",
// "FailureCode": "String",
// "DisplayInWebAppointments": false,
// "MarkedForDeletion": false,
// "Reason": "String",
// "Severity": "String",
// "JobNote": "String"
// }
// ],
// "Priority": 0,
// "TodayPhoneNumber": "String",
// "NotifyType": "String",
// "IncludeInternalPricing": false,
// "VINInquiryPerformed": false,
// "SONote": "String",
// "AlternateStartAddress": {
// "Name": "String",
// "Address": "String",
// "City": "String",
// "Province": "String",
// "PostalCode": "String",
// "AdditionalInfo": "String"
// },
// "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);
return RepairOrderChangeResponse;
} catch (error) {
CdkBase.createLogEvent(socket, "ERROR", `Error in RepairOrderChange - ${error}`);
throw new Error(error);
}
}