Fortellis bug fixes.

This commit is contained in:
Patrick Fic
2025-05-14 17:48:28 -07:00
parent 19ce1c66ad
commit 163eaac110
3 changed files with 39 additions and 16 deletions

View File

@@ -77,13 +77,26 @@ export function DmsCustomerSelector({ bodyshop, jobid }) {
const onUseGeneric = () => {
setOpen(false);
socket.emit(`${dmsType}-selected-customer`, bodyshop.cdk_configuration.generic_customer_number);
if (Fortellis.treatment === "on") {
wsssocket.emit(`fortellis-selected-customer`, {
selectedCustomerId: bodyshop.cdk_configuration.generic_customer_number,
jobid
});
} else {
socket.emit(`${dmsType}-selected-customer`, bodyshop.cdk_configuration.generic_customer_number);
}
setSelectedCustomer(null);
};
const onCreateNew = () => {
setOpen(false);
socket.emit(`${dmsType}-selected-customer`, null);
if (Fortellis.treatment === "on") {
wsssocket.emit(`fortellis-selected-customer`, { selectedCustomerId: null, jobid });
} else {
socket.emit(`${dmsType}-selected-customer`, null);
}
setSelectedCustomer(null);
};

View File

@@ -303,7 +303,7 @@ const FortellisActions = {
? "https://api.fortellis.io/cdk/drive/service-vehicle-mgmt/v2/"
: "https://api.fortellis.io/cdk-test/drive/service-vehicle-mgmt/v2/",
type: "put",
apiName: "CDK Drive Post Customer",
apiName: "CDK Drive Post Service Vehicle",
},
GetCOA: {
type: "get",

View File

@@ -51,7 +51,7 @@ async function FortellisJobExport({
await setSessionTransactionData(socket.id, getTransactionType(jobid), FortellisCacheEnums.JobData, JobData, defaultFortellisTTL);
CreateFortellisLogEvent(socket, "DEBUG", `{1} Begin Calculate DMS Vehicle ID using VIN: ${JobData.v_vin}`);
const DMSVid = await CalculateDmsVid({ socket, JobData, redisHelpers });
const DMSVid = (await CalculateDmsVid({ socket, JobData, redisHelpers }))[0];
await setSessionTransactionData(socket.id, getTransactionType(jobid), FortellisCacheEnums.DMSVid, DMSVid, defaultFortellisTTL);
let DMSVehCustomer;
@@ -125,7 +125,7 @@ async function FortellisSelectedCustomer({ socket, redisHelpers, ioHelpers, sele
"DEBUG",
`{3.1} Querying the Customer using Customer ID: ${selectedCustomerId}`
);
DMSCust = await QueryDmsCustomerById({ socket, redisHelpers, JobData, CustomerId: selectedCustomerId });
DMSCust = await QueryDmsCustomerById({ socket, redisHelpers, JobData, CustomerId: selectedCustomerId }); //TODO: Optimize here - if selected ID, we already have the customer information. Prevent an extra call to Fortellis.
await setSessionTransactionData(socket.id, getTransactionType(jobid), FortellisCacheEnums.DMSCust, DMSCust, defaultFortellisTTL);
} else {
CreateFortellisLogEvent(
@@ -133,7 +133,8 @@ async function FortellisSelectedCustomer({ socket, redisHelpers, ioHelpers, sele
"DEBUG",
`{3.2} Creating new customer.`
);
DMSCust = await InsertDmsCustomer({ socket, redisHelpers, JobData });
const DMSCustomerInsertResponse = await InsertDmsCustomer({ socket, redisHelpers, JobData });
DMSCust = { customerId: DMSCustomerInsertResponse.data }
await setSessionTransactionData(socket.id, getTransactionType(jobid), FortellisCacheEnums.DMSCust, DMSCust, defaultFortellisTTL);
}
@@ -360,7 +361,7 @@ async function InsertDmsCustomer({ socket, redisHelpers, JobData }) {
{
//"uuid": "",
"number": JobData.ownr_ph1?.replace(replaceSpecialRegex, ""),
// "type": "MOBILE",
"type": "HOME",
// "doNotCallIndicator": true,
// "doNotCallIndicatorDate": `null,
// "doNotCallRegistrySource": "",
@@ -394,11 +395,11 @@ async function InsertDmsCustomer({ socket, redisHelpers, JobData }) {
],
"emailAddresses": [
!_.isEmpty(socket.JobData.ownr_ea) ?
...!_.isEmpty(JobData.ownr_ea) ?
[{
//"uuid": "",
"address": socket.JobData.ownr_ea,
// "type": "PERSONAL",
"address": JobData.ownr_ea,
"type": "PERSONAL",
// "doNotEmailSource": "",
// "doNotEmail": false,
// "isPreferred": true,
@@ -843,6 +844,14 @@ async function UpdateDmsVehicle({ socket, redisHelpers, JobData, DMSVeh, DMSCust
}
}
const DMSVehToSend = _.cloneDeep(DMSVeh);
//Remove unsupported fields on the post API.
delete DMSVehToSend.dealer.lastActivityDate;
delete DMSVehToSend.manufacturer;
delete DMSVehToSend.invoice;
delete DMSVehToSend.inventoryAccount;
const result = await MakeFortellisCall({
...FortellisActions.UpdateVehicle,
requestSearchParams: {},
@@ -851,20 +860,21 @@ async function UpdateDmsVehicle({ socket, redisHelpers, JobData, DMSVeh, DMSCust
socket,
jobid: JobData.id,
body: {
...DMSVeh,
...DMSVehToSend,
dealer: {
...DMSVeh.dealer,
...((txEnvelope.inservicedate || DMSVeh.dealer.inServiceDate) && {
...DMSVehToSend.dealer, //TODO: Check why company is blank on a queried record.
comapny: "77",
...((txEnvelope.inservicedate || DMSVehToSend.dealer.inServiceDate) && {
inServiceDate:
txEnvelope.dms_unsold === true
? ""
: moment(DMSVeh.dealer.inServiceDate || txEnvelope.inservicedate)
: moment(DMSVehToSend.dealer.inServiceDate || txEnvelope.inservicedate)
// .tz(JobData.bodyshop.timezone)
.toISOString()
})
},
vehicle: {
...DMSVeh.vehicle,
...DMSVehToSend.vehicle,
...(txEnvelope.dms_model_override
? {
make: txEnvelope.dms_make,
@@ -874,7 +884,7 @@ async function UpdateDmsVehicle({ socket, redisHelpers, JobData, DMSVeh, DMSCust
deliveryDate:
txEnvelope.dms_unsold === true
? ""
: moment(DMSVeh.vehicle.deliveryDate)
: moment(DMSVehToSend.vehicle.deliveryDate)
//.tz(JobData.bodyshop.timezone)
.toISOString()
},