-
+ {disabled ? (
+ {job.ownr_ph1}
+ ) : (
+
+ )}
-
+ {disabled ? (
+ {job.ownr_ph2}
+ ) : (
+
+ )}
{`${job.ownr_addr1 || ""} ${job.ownr_addr2 || ""} ${
@@ -180,7 +197,11 @@ export function JobsDetailHeader({ job, bodyshop, disabled }) {
} ${job.ownr_st || ""} ${job.ownr_zip || ""}`}
- {job.ownr_ea || ""}
+ {disabled ? (
+ <>{job.ownr_ea || ""}>
+ ) : job.ownr_ea ? (
+ {job.ownr_ea}
+ ) : null}
{job.owner?.tax_number && (
@@ -195,17 +216,19 @@ export function JobsDetailHeader({ job, bodyshop, disabled }) {
style={{ height: "100%" }}
title={
job.vehicle ? (
-
- {vehicleTitle.length > 0
- ? vehicleTitle
- : t("vehicles.labels.novehinfo")}
-
+ disabled ? (
+ <>
+ {vehicleTitle.length > 0
+ ? vehicleTitle
+ : t("vehicles.labels.novehinfo")}{" "}
+ >
+ ) : (
+
+ {vehicleTitle.length > 0
+ ? vehicleTitle
+ : t("vehicles.labels.novehinfo")}
+
+ )
) : (
)
@@ -223,7 +246,9 @@ export function JobsDetailHeader({ job, bodyshop, disabled }) {
{bodyshop.pbs_serialnumber || bodyshop.cdk_dealerid ? (
job.v_vin?.length !== 17 ? (
-
+
) : null
) : null}
@@ -231,7 +256,7 @@ export function JobsDetailHeader({ job, bodyshop, disabled }) {
{job.regie_number || t("general.labels.na")}
-
+
{job.vehicle && job.vehicle.notes && (
@@ -10,9 +10,15 @@ export default function JobsRelatedRos({ jobid, job }) {
.filter((j) => j.id !== job.id)
.map((j) => (
- {`${j.ro_number || "N/A"}${
- j.clm_no ? ` | ${j.clm_no}` : ""
- }${j.status ? ` | ${j.status}` : ""}`}
+ {disabled ? (
+ <>{`${j.ro_number || "N/A"}${j.clm_no ? ` | ${j.clm_no}` : ""}${
+ j.status ? ` | ${j.status}` : ""
+ }`}>
+ ) : (
+ {`${j.ro_number || "N/A"}${
+ j.clm_no ? ` | ${j.clm_no}` : ""
+ }${j.status ? ` | ${j.status}` : ""}`}
+ )}
))}
diff --git a/client/src/components/production-list-columns/production-list-columns.data.js b/client/src/components/production-list-columns/production-list-columns.data.js
index 003a3b864..3ff8a344e 100644
--- a/client/src/components/production-list-columns/production-list-columns.data.js
+++ b/client/src/components/production-list-columns/production-list-columns.data.js
@@ -76,7 +76,14 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
dataIndex: "ownr",
key: "ownr",
ellipsis: true,
- render: (text, record) => ,
+ render: (text, record) =>
+ technician ? (
+
+ ) : (
+
+
+
+ ),
sorter: (a, b) => alphaSort(a.ownr_ln, b.ownr_ln),
sortOrder:
state.sortedInfo.columnKey === "ownr" && state.sortedInfo.order,
@@ -93,13 +100,18 @@ const r = ({ technician, state, activeStatuses, data, bodyshop }) => {
),
sortOrder:
state.sortedInfo.columnKey === "vehicle" && state.sortedInfo.order,
- render: (text, record) => (
- {`${
- record.v_model_yr || ""
- } ${record.v_make_desc || ""} ${record.v_model_desc || ""} ${
- record.v_color || ""
- } ${record.plate_no || ""}`}
- ),
+ render: (text, record) =>
+ technician ? (
+ <>{`${record.v_model_yr || ""} ${record.v_make_desc || ""} ${
+ record.v_model_desc || ""
+ } ${record.v_color || ""} ${record.plate_no || ""}`}>
+ ) : (
+ {`${
+ record.v_model_yr || ""
+ } ${record.v_make_desc || ""} ${record.v_model_desc || ""} ${
+ record.v_color || ""
+ } ${record.plate_no || ""}`}
+ ),
},
{
title: i18n.t("jobs.fields.actual_in"),
diff --git a/client/src/components/production-list-detail/production-list-detail.component.jsx b/client/src/components/production-list-detail/production-list-detail.component.jsx
index 7b4679a59..292e426af 100644
--- a/client/src/components/production-list-detail/production-list-detail.component.jsx
+++ b/client/src/components/production-list-detail/production-list-detail.component.jsx
@@ -14,12 +14,14 @@ import { selectTechnician } from "../../redux/tech/tech.selectors";
import { selectBodyshop } from "../../redux/user/user.selectors";
import CurrencyFormatter from "../../utils/CurrencyFormatter";
import { DateFormatter } from "../../utils/DateFormatter";
+import PhoneNumberFormatter from "../../utils/PhoneFormatter";
import AlertComponent from "../alert/alert.component";
import StartChatButton from "../chat-open-button/chat-open-button.component";
import JobAtChange from "../job-at-change/job-at-change.component";
import JobDetailCardsDocumentsComponent from "../job-detail-cards/job-detail-cards.documents.component";
import JobDetailCardsNotesComponent from "../job-detail-cards/job-detail-cards.notes.component";
import JobDetailCardsPartsComponent from "../job-detail-cards/job-detail-cards.parts.component";
+import CardTemplate from "../job-detail-cards/job-detail-cards.template.component";
import JobEmployeeAssignments from "../job-employee-assignments/job-employee-assignments.container";
import ScoreboardAddButton from "../job-scoreboard-add-button/job-scoreboard-add-button.component";
import LoadingSkeleton from "../loading-skeleton/loading-skeleton.component";
@@ -104,65 +106,85 @@ export function ProductionListDetail({
{error && }
{!loading && data && (
-
-
-
- {theJob.ro_number || ""}
-
-
-
- {data.jobs_by_pk.alt_transport || ""}
-
-
-
-
- {theJob.clm_no || ""}
-
-
- {theJob.ins_co_nm || ""}
-
-
-
-
-
-
-
- {`${theJob.v_model_yr || ""} ${theJob.v_color || ""} ${
- theJob.v_make_desc || ""
- } ${theJob.v_model_desc || ""}`}
-
-
- {theJob.clm_total}
-
-
- {theJob.actual_in}
-
-
- {theJob.scheduled_completion}
-
-
-
-
-
-
- {!bodyshop.uselocalmediaserver && (
-
+
+
+
+
+
+ {theJob.ro_number || ""}
+
+
+
+ {data.jobs_by_pk.alt_transport || ""}
+
+
+
+
+ {theJob.clm_no || ""}
+
+
+ {theJob.ins_co_nm || ""}
+
+
+
+
+ {!technician ? (
+ <>
+
+
+ >
+ ) : (
+ <>
+
+ {data.jobs_by_pk.ownr_ph1}
+
+
+ {data.jobs_by_pk.ownr_ph2}
+
+ >
+ )}
+
+
+
+ {`${theJob.v_model_yr || ""} ${theJob.v_color || ""} ${
+ theJob.v_make_desc || ""
+ } ${theJob.v_model_desc || ""}`}
+
+
+ {theJob.clm_total}
+
+
+ {theJob.actual_in}
+
+
+ {theJob.scheduled_completion}
+
+
+
- )}
+
+ {!bodyshop.uselocalmediaserver && (
+
+ )}
+
)}
diff --git a/client/src/graphql/jobs.queries.js b/client/src/graphql/jobs.queries.js
index fbeb8740d..4a1c85036 100644
--- a/client/src/graphql/jobs.queries.js
+++ b/client/src/graphql/jobs.queries.js
@@ -5,7 +5,7 @@ export const QUERY_ALL_ACTIVE_JOBS_PAGINATED = gql`
$offset: Int
$limit: Int
$order: [jobs_order_by!]
- $statuses: [String!]!,
+ $statuses: [String!]!
$isConverted: Boolean
) {
jobs(
@@ -120,7 +120,9 @@ export const QUERY_PARTS_QUEUE = gql`
}
}
jobs(
- where: { _and: [{ status: { _in: $statuses }, converted: { _eq: true } }] }
+ where: {
+ _and: [{ status: { _in: $statuses }, converted: { _eq: true } }]
+ }
offset: $offset
limit: $limit
order_by: $order
@@ -336,6 +338,7 @@ export const QUERY_JOBS_IN_PRODUCTION = gql`
category
iouparent
ro_number
+ ownerid
ownr_fn
ownr_ln
ownr_co_nm
diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json
index db916934d..c98838398 100644
--- a/client/src/translations/en_us/common.json
+++ b/client/src/translations/en_us/common.json
@@ -1704,6 +1704,7 @@
"estimator": "Estimator",
"filehandler": "File Handler",
"insurance": "Insurance Details",
+ "more": "More",
"notes": "Notes",
"parts": "Parts",
"totals": "Totals",
diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json
index a80aab214..44796ebdd 100644
--- a/client/src/translations/es/common.json
+++ b/client/src/translations/es/common.json
@@ -1704,6 +1704,7 @@
"estimator": "Estimador",
"filehandler": "File Handler",
"insurance": "detalles del seguro",
+ "more": "Más",
"notes": "Notas",
"parts": "Partes",
"totals": "Totales",
diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json
index 458e8a7ee..8b28cf76d 100644
--- a/client/src/translations/fr/common.json
+++ b/client/src/translations/fr/common.json
@@ -1704,6 +1704,7 @@
"estimator": "Estimateur",
"filehandler": "Gestionnaire de fichiers",
"insurance": "Détails de l'assurance",
+ "more": "Plus",
"notes": "Remarques",
"parts": "les pièces",
"totals": "Totaux",
diff --git a/client/src/utils/handleBeta.js b/client/src/utils/handleBeta.js
new file mode 100644
index 000000000..16b865161
--- /dev/null
+++ b/client/src/utils/handleBeta.js
@@ -0,0 +1,37 @@
+export const BETA_KEY = 'betaSwitchImex';
+
+export const checkBeta = () => {
+ const cookie = document.cookie.split('; ').find(row => row.startsWith(BETA_KEY));
+ return cookie ? cookie.split('=')[1] === 'true' : false;
+}
+
+
+export const setBeta = (value) => {
+ const domain = window.location.hostname.split('.').slice(-2).join('.');
+ document.cookie = `${BETA_KEY}=${value}; path=/; domain=.${domain}`;
+}
+
+export const handleBeta = () => {
+ // If the current host name does not start with beta or test, then we don't need to do anything.
+ if (window.location.hostname.startsWith('localhost')) {
+ console.log('Not on beta or test, so no need to handle beta.');
+ return;
+ }
+
+ const isBeta = checkBeta();
+
+ const currentHostName = window.location.hostname;
+
+ // Beta is enabled, but the current host name does start with beta.
+ if (isBeta && !currentHostName.startsWith('beta')) {
+ window.location.href = `${window.location.protocol}//beta.${currentHostName}${window.location.pathname}${window.location.search}${window.location.hash}`;
+ window.reload();
+ }
+
+ // Beta is not enabled, but the current host name does start with beta.
+ else if (!isBeta && currentHostName.startsWith('beta')) {
+ window.location.href = `${window.location.protocol}//${currentHostName.replace('beta.', '')}${window.location.pathname}${window.location.search}${window.location.hash}`;
+ window.reload();
+ }
+}
+export default handleBeta;