diff --git a/client/src/components/job-detail-cards/job-detail-cards.customer.component.jsx b/client/src/components/job-detail-cards/job-detail-cards.customer.component.jsx
index 86dcb31e6..76acbb7c3 100644
--- a/client/src/components/job-detail-cards/job-detail-cards.customer.component.jsx
+++ b/client/src/components/job-detail-cards/job-detail-cards.customer.component.jsx
@@ -35,14 +35,22 @@ export default function JobDetailCardsCustomerComponent({ loading, data }) {
)}
{`${(data.owner && data.owner.preferred_contact) || ""}`}
- {data.vehicle ? (
-
- {`${data.v_model_yr || ""} ${data.v_make_desc ||
- ""} ${data.v_model_desc || ""}`}
-
- ) : (
- {t("jobs.errors.novehicle")}
- )}
+
+ {data.vehicle ? (
+
+ {`${data.v_model_yr || ""} ${data.v_make_desc ||
+ ""} ${data.v_model_desc || ""}`}
+ a
+
+ ) : (
+
+ {`${data.v_model_yr || ""} ${data.v_make_desc ||
+ ""} ${data.v_model_desc || ""}`}
+ b
+
+ )}
+ e
+
) : null}
diff --git a/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx b/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx
index e31826772..8766e4add 100644
--- a/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx
+++ b/client/src/components/jobs-detail-header/jobs-detail-header.component.jsx
@@ -1,27 +1,16 @@
import { DownCircleFilled } from "@ant-design/icons";
-import {
- Avatar,
- Badge,
- Button,
- Checkbox,
- Descriptions,
- Dropdown,
- Menu,
- notification,
- PageHeader,
- Tag
-} from "antd";
+import { Avatar, Badge, Button, Checkbox, Descriptions, Dropdown, Menu, notification, PageHeader, Tag } from "antd";
import React from "react";
import { useTranslation } from "react-i18next";
import Moment from "react-moment";
import { connect } from "react-redux";
-import { Link } from "react-router-dom";
import { createStructuredSelector } from "reselect";
import CarImage from "../../assets/car.svg";
import { selectBodyshop } from "../../redux/user/user.selectors";
import CurrencyFormatter from "../../utils/CurrencyFormatter";
import BarcodePopup from "../barcode-popup/barcode-popup.component";
import OwnerTagPopoverComponent from "../owner-tag-popover/owner-tag-popover.component";
+import VehicleTagPopoverComponent from "../vehicle-tag-popover/vehicle-tag-popover.component";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop
@@ -113,25 +102,7 @@ export default connect(
{job.status ? {job.status} : null}
-
- {job.vehicleid ? (
-
- {`${job.v_model_yr || t("general.labels.na")}
- ${job.v_make_desc || t("general.labels.na")}
- ${job.v_model_desc || t("general.labels.na")} |
- ${job.plate_no || t("general.labels.na")} |
- ${job.v_vin || t("general.labels.na")}`}
-
- ) : (
-
- {`${job.v_model_yr || t("general.labels.na")}
- ${job.v_make_desc || t("general.labels.na")}
- ${job.v_model_desc || t("general.labels.na")} |
- ${job.plate_no || t("general.labels.na")} |
- ${job.v_vin || t("general.labels.na")}`}
-
- )}
-
+
}
diff --git a/client/src/components/jobs-list/jobs-list.component.jsx b/client/src/components/jobs-list/jobs-list.component.jsx
index 32f28d1c5..690fee55b 100644
--- a/client/src/components/jobs-list/jobs-list.component.jsx
+++ b/client/src/components/jobs-list/jobs-list.component.jsx
@@ -107,7 +107,7 @@ export default withRouter(function JobsList({
width: "15%",
ellipsis: true,
render: (text, record) => {
- return record.vehicle ? (
+ return record.vehicleid ? (
{`${record.v_model_yr || ""} ${record.v_make_desc ||
""} ${record.v_model_desc || ""}`}
@@ -123,12 +123,12 @@ export default withRouter(function JobsList({
key: "plate_no",
width: "8%",
ellipsis: true,
- sorter: (a, b) => alphaSort(a.vehicle.plate_no, b.vehicle.plate_no),
+ sorter: (a, b) => alphaSort(a.plate_no, b.plate_no),
sortOrder:
state.sortedInfo.columnKey === "plate_no" && state.sortedInfo.order,
render: (text, record) => {
- return record.vehicle.plate_no ? (
- {record.vehicle.plate_no}
+ return record.plate_no ? (
+ {record.plate_no}
) : (
t("general.labels.unknown")
);
diff --git a/client/src/components/vehicle-tag-popover/vehicle-tag-popover.component.jsx b/client/src/components/vehicle-tag-popover/vehicle-tag-popover.component.jsx
new file mode 100644
index 000000000..cb0b7cc0f
--- /dev/null
+++ b/client/src/components/vehicle-tag-popover/vehicle-tag-popover.component.jsx
@@ -0,0 +1,87 @@
+import { Button, Col, Descriptions, Popover, Row, Tag } from "antd";
+import React from "react";
+import { useTranslation } from "react-i18next";
+import { Link } from "react-router-dom";
+
+export default function VehicleTagPopoverComponent({ job }) {
+ const { t } = useTranslation();
+ const content = (
+
+
+
+
+
+ {`${job.v_model_yr || t("general.labels.na")}
+ ${job.v_make_desc || t("general.labels.na")}
+ ${job.v_model_desc || t("general.labels.na")}`}
+
+
+
+ {`${job.plate_no || t("general.labels.na")}`}
+
+
+ {`${job.plate_st || t("general.labels.na")}`}
+
+
+ {`${job.v_vin || t("general.labels.na")}`}
+
+
+
+
+
+
+ {`${job.vehicle.v_model_yr || t("general.labels.na")}
+ ${job.vehicle.v_make_desc || t("general.labels.na")}
+ ${job.vehicle.v_model_desc || t("general.labels.na")}`}
+
+
+
+ {`${job.vehicle.plate_no || t("general.labels.na")}`}
+
+
+ {`${job.vehicle.plate_st || t("general.labels.na")}`}
+
+
+ {`${job.vehicle.v_vin || t("general.labels.na")}`}
+
+
+
+
+
+
+
+
+ );
+
+ return (
+
+
+ {job.vehicleid ? (
+
+ {`${job.v_model_yr || t("general.labels.na")}
+ ${job.v_make_desc || t("general.labels.na")}
+ ${job.v_model_desc || t("general.labels.na")} |
+ ${job.plate_no || t("general.labels.na")} |
+ ${job.v_vin || t("general.labels.na")}`}
+
+ ) : (
+
+ {`${job.v_model_yr || t("general.labels.na")}
+ ${job.v_make_desc || t("general.labels.na")}
+ ${job.v_model_desc || t("general.labels.na")} |
+ ${job.plate_no || t("general.labels.na")} |
+ ${job.v_vin || t("general.labels.na")}`}
+
+ )}
+
+
+ );
+}
diff --git a/client/src/graphql/jobs.queries.js b/client/src/graphql/jobs.queries.js
index 57e55704d..5fd7e8458 100644
--- a/client/src/graphql/jobs.queries.js
+++ b/client/src/graphql/jobs.queries.js
@@ -108,6 +108,15 @@ export const GET_JOB_BY_PK = gql`
v_model_desc
v_make_desc
v_color
+ vehicle {
+ id
+ plate_no
+ v_vin
+ v_model_yr
+ v_model_desc
+ v_make_desc
+ v_color
+ }
ins_co_id
policy_no
loss_date
@@ -245,7 +254,13 @@ export const QUERY_JOB_CARD_DETAILS = gql`
v_model_desc
v_color
plate_no
-
+ vehicle {
+ v_model_yr
+ v_make_desc
+ v_model_desc
+ v_color
+ plate_no
+ }
actual_completion
actual_delivery
actual_in
diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json
index 7f3dcb694..4a4d5c58f 100644
--- a/client/src/translations/en_us/common.json
+++ b/client/src/translations/en_us/common.json
@@ -649,6 +649,9 @@
"v_type": "Type",
"v_vin": "Vehicle Identification Number"
},
+ "labels": {
+ "updatevehicle": "Update Vehicle Information"
+ },
"successes": {
"save": "Vehicle saved successfully."
}
diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json
index f34a8c497..1b780b06c 100644
--- a/client/src/translations/es/common.json
+++ b/client/src/translations/es/common.json
@@ -649,6 +649,9 @@
"v_type": "Tipo",
"v_vin": "Número de identificación del vehículo"
},
+ "labels": {
+ "updatevehicle": ""
+ },
"successes": {
"save": "Vehículo guardado con éxito."
}
diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json
index 593d02e05..18fb72893 100644
--- a/client/src/translations/fr/common.json
+++ b/client/src/translations/fr/common.json
@@ -649,6 +649,9 @@
"v_type": "Type",
"v_vin": "Plaque d'immatriculation"
},
+ "labels": {
+ "updatevehicle": ""
+ },
"successes": {
"save": "Le véhicule a été enregistré avec succès."
}