diff --git a/server/fortellis/fortellis.js b/server/fortellis/fortellis.js index 6db9ce498..709461eaf 100644 --- a/server/fortellis/fortellis.js +++ b/server/fortellis/fortellis.js @@ -95,7 +95,8 @@ async function FortellisJobExport({ socket, redisHelpers, txEnvelope, jobid }) { defaultFortellisTTL ); - let DMSVehCustomer; + let DMSVehCustomerFromVehicle; + //let DMSVehCustomer; if (!DMSVid.newId) { CreateFortellisLogEvent(socket, "DEBUG", `{2.1} Querying the Vehicle using the DMSVid: ${DMSVid.vehiclesVehId}`); const DMSVeh = await QueryDmsVehicleById({ socket, redisHelpers, JobData, DMSVid }); @@ -106,38 +107,39 @@ async function FortellisJobExport({ socket, redisHelpers, txEnvelope, jobid }) { DMSVeh, defaultFortellisTTL ); + DMSVehCustomerFromVehicle = DMSVeh?.owners && DMSVeh.owners.find((o) => o.id.assigningPartyId === "CURRENT"); - //Add in contact bypass for Fortellis. - if (!JobData.bodyshop.cdk_configuration.disablecontact) { - const DMSVehCustomerFromVehicle = - DMSVeh?.owners && DMSVeh.owners.find((o) => o.id.assigningPartyId === "CURRENT"); + // //Add in contact bypass for Fortellis. + // if (!JobData.bodyshop.cdk_configuration.disablecontact) { + // const DMSVehCustomerFromVehicle = + // DMSVeh?.owners && DMSVeh.owners.find((o) => o.id.assigningPartyId === "CURRENT"); - if (DMSVehCustomerFromVehicle?.id && DMSVehCustomerFromVehicle.id.value) { - CreateFortellisLogEvent( - socket, - "DEBUG", - `{2.2} Querying the Customer using the ID from DMSVeh: ${DMSVehCustomerFromVehicle.id.value}` - ); - DMSVehCustomer = await QueryDmsCustomerById({ - socket, - redisHelpers, - JobData, - CustomerId: DMSVehCustomerFromVehicle.id.value - }); - await setSessionTransactionData( - socket.id, - getTransactionType(jobid), - FortellisCacheEnums.DMSVehCustomer, - DMSVehCustomer, - defaultFortellisTTL - ); - } - } + // if (DMSVehCustomerFromVehicle?.id && DMSVehCustomerFromVehicle.id.value) { + // CreateFortellisLogEvent( + // socket, + // "DEBUG", + // `{2.2} Querying the Customer using the ID from DMSVeh: ${DMSVehCustomerFromVehicle.id.value}` + // ); + // DMSVehCustomer = await QueryDmsCustomerById({ + // socket, + // redisHelpers, + // JobData, + // CustomerId: DMSVehCustomerFromVehicle.id.value + // }); + // await setSessionTransactionData( + // socket.id, + // getTransactionType(jobid), + // FortellisCacheEnums.DMSVehCustomer, + // DMSVehCustomer, + // defaultFortellisTTL + // ); + // } + // } } CreateFortellisLogEvent(socket, "DEBUG", `{2.3} Querying the Customer using the name.`); - if (!JobData.bodyshop.cdk_configuration.disablecontact) { + if (JobData.bodyshop.cdk_configuration.disablecontact) { //Just go straight to posting. - FortellisSelectedCustomer({ socket, redisHelpers, selectedCustomerId: bypassCustomerId, jobid }); + await FortellisSelectedCustomer({ socket, redisHelpers, selectedCustomerId: bypassCustomerId, jobid }); } else { const DMSCustList = await QueryDmsCustomerByName({ socket, redisHelpers, JobData }); await setSessionTransactionData( @@ -148,10 +150,22 @@ async function FortellisJobExport({ socket, redisHelpers, txEnvelope, jobid }) { defaultFortellisTTL ); - socket.emit("fortellis-select-customer", [ - ...(DMSVehCustomer ? [{ ...DMSVehCustomer, vinOwner: true }] : []), - ...DMSCustList - ]); + socket.emit("fortellis-select-customer", + //Removed to save one one API call while disputing with fortellis. + // [ + // // ...(DMSVehCustomer ? [{ ...DMSVehCustomer, vinOwner: true }] : []), + // ...DMSCustList + // ] + DMSVehCustomerFromVehicle ? + DMSCustList.map(c => { + //if customer id is the same as the current assigned owner on the vehicle id, set it as vinowner true. ) + if (DMSVehCustomerFromVehicle?.id?.value === c.customerId) { + return { ...c, vinOwner: true } + } else { + return c + } + }) : DMSCustList + ); } } catch (error) { CreateFortellisLogEvent(socket, "ERROR", `Error in FortellisJobExport - ${error} `, { @@ -226,8 +240,8 @@ async function FortellisSelectedCustomer({ socket, redisHelpers, selectedCustome return; } //Bypass only the customer creation. We still need to create the vehicle and update it to post the service history later on. + let DMSCust; if (!JobData.bodyshop.cdk_configuration.disablecontact) { - let DMSCust; if (selectedCustomerId) { CreateFortellisLogEvent(socket, "DEBUG", `{3.1} Querying the Customer using Customer ID: ${selectedCustomerId}`); @@ -257,6 +271,8 @@ async function FortellisSelectedCustomer({ socket, redisHelpers, selectedCustome defaultFortellisTTL ); } + }else{ + DMSCust = { customerId: bypassCustomerId }; } let DMSVeh; @@ -916,7 +932,7 @@ async function InsertDmsVehicle({ socket, redisHelpers, JobData, txEnvelope, DMS // "wheelbase": "" }, // Owners is not required. Exclude it if we are bypassing. - ...(selectedCustomerId !== bypassCustomerId && { + ...(DMSCust?.customerId !== bypassCustomerId && { owners: [ { id: {