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,