diff --git a/bodyshop_translations.babel b/bodyshop_translations.babel index 2449aeb52..e31ec91f4 100644 --- a/bodyshop_translations.babel +++ b/bodyshop_translations.babel @@ -27699,6 +27699,27 @@ + + addpayer + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + addtopartsqueue false @@ -31118,6 +31139,27 @@ dms + + IsARCustomer + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + address false @@ -45333,6 +45375,69 @@ + + esign-document-completed + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + esign-document-opened + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + + + esign-document-upload-failed + false + + + + + + en-US + false + + + es-MX + false + + + fr-CA + false + + + intake-delivery-checklist-completed false diff --git a/client/src/components/dms-customer-selector/pbs-customer-selector.jsx b/client/src/components/dms-customer-selector/pbs-customer-selector.jsx index fcded201e..7389e2f2d 100644 --- a/client/src/components/dms-customer-selector/pbs-customer-selector.jsx +++ b/client/src/components/dms-customer-selector/pbs-customer-selector.jsx @@ -1,4 +1,4 @@ -import { Button, Col } from "antd"; +import { Button, Checkbox, Col } from "antd"; import ResponsiveTable from "../responsive-table/responsive-table.component"; import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; @@ -49,7 +49,13 @@ export default function PBSCustomerSelector({ bodyshop, socket }) { if (!open) return null; const columns = [ - { title: t("jobs.fields.dms.id"), dataIndex: "ContactId", key: "ContactId" }, + { title: t("jobs.fields.dms.id"), dataIndex: "Code", key: "ContactId" }, + { + title: t("jobs.fields.dms.IsARCustomer"), + dataIndex: "IsARCustomer", + key: "IsARCustomer", + render: (text, record) => + }, { title: t("jobs.fields.dms.name1"), key: "name1", diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json index 976222c46..5199922ee 100644 --- a/client/src/translations/en_us/common.json +++ b/client/src/translations/en_us/common.json @@ -1785,9 +1785,9 @@ }, "jobs": { "actions": { - "addpayer": "Add Payer", "addDocuments": "Add Job Documents", "addNote": "Add Note", + "addpayer": "Add Payer", "addtopartsqueue": "Add to Parts Queue", "addtoproduction": "Add to Production", "addtoscoreboard": "Add to Scoreboard", @@ -1964,6 +1964,7 @@ "ded_status": "Deductible Status", "depreciation_taxes": "Betterment/Depreciation/Taxes", "dms": { + "IsARCustomer": "AR Customer?", "address": "Customer Address", "advisor": "Advisor #", "amount": "Amount", diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json index 619b7f0b1..bd8e7740d 100644 --- a/client/src/translations/es/common.json +++ b/client/src/translations/es/common.json @@ -1779,9 +1779,9 @@ }, "jobs": { "actions": { - "addpayer": "", "addDocuments": "Agregar documentos de trabajo", "addNote": "Añadir la nota", + "addpayer": "", "addtopartsqueue": "", "addtoproduction": "", "addtoscoreboard": "", @@ -1958,6 +1958,7 @@ "ded_status": "Estado deducible", "depreciation_taxes": "Depreciación / Impuestos", "dms": { + "IsARCustomer": "", "address": "", "advisor": "", "amount": "", diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json index a0c5be98e..0b6245761 100644 --- a/client/src/translations/fr/common.json +++ b/client/src/translations/fr/common.json @@ -1779,9 +1779,9 @@ }, "jobs": { "actions": { - "addpayer": "", "addDocuments": "Ajouter des documents de travail", "addNote": "Ajouter une note", + "addpayer": "", "addtopartsqueue": "", "addtoproduction": "", "addtoscoreboard": "", @@ -1958,6 +1958,7 @@ "ded_status": "Statut de franchise", "depreciation_taxes": "Amortissement / taxes", "dms": { + "IsARCustomer": "", "address": "", "advisor": "", "amount": "", diff --git a/server/accounting/pbs/pbs-job-export.js b/server/accounting/pbs/pbs-job-export.js index 7e0499023..1eddd759e 100644 --- a/server/accounting/pbs/pbs-job-export.js +++ b/server/accounting/pbs/pbs-job-export.js @@ -98,12 +98,26 @@ exports.PbsSelectedCustomer = async function PbsSelectedCustomer(socket, selecte socket.JobData.ownr_fn || "" } ${socket.JobData.ownr_ln || ""} ${socket.JobData.ownr_co_nm || ""}` ); - const ownerRef = await UpsertContactData(socket, selectedCustomerId); - socket.ownerRef = ownerRef; - WsLogger.createLogEvent(socket, "INFO", `Upserting vehicle information to DMS for ${socket.JobData.v_vin}`); - const vehicleRef = await UpsertVehicleData(socket, ownerRef.ReferenceId); - socket.vehicleRef = vehicleRef; + //If this is an AR customer, don't do anything. + + const selectedCustomer = [...(socket.DMSVehCustomer ? [{ ...socket.DMSVehCustomer, vinOwner: true }] : []), + ...socket.DMSCustList]?.find((cust) => cust.ContactId === selectedCustomerId); + + if (selectedCustomer?.IsARCustomer) { + + WsLogger.createLogEvent(socket, "INFO", `Skipping contact and vehicle update becuase it is marked as an AR contact in PBS.`); + + } + else { + + const ownerRef = await UpsertContactData(socket, selectedCustomerId); + socket.ownerRef = ownerRef; + WsLogger.createLogEvent(socket, "INFO", `Upserting vehicle information to DMS for ${socket.JobData.v_vin}`); + const vehicleRef = await UpsertVehicleData(socket, ownerRef.ReferenceId); + socket.vehicleRef = vehicleRef; + } + } else { WsLogger.createLogEvent( socket,