+
{
setState({
@@ -74,11 +74,11 @@ export default function JobsCreateVehicleInfoSearchComponent({
);
}}
- size='small'
+ size="small"
scroll={{ x: true }}
pagination={{ position: "top" }}
columns={columns}
- rowKey='id'
+ rowKey="id"
dataSource={vehicles}
onChange={handleTableChange}
rowSelection={{
@@ -87,6 +87,7 @@ export default function JobsCreateVehicleInfoSearchComponent({
...state,
vehicle: {
...state.vehicle,
+ none: false,
new: false,
selectedid: props.id,
vehicleObj: props,
@@ -105,6 +106,7 @@ export default function JobsCreateVehicleInfoSearchComponent({
...state,
vehicle: {
...state.vehicle,
+ none: false,
new: false,
selectedid: record.id,
vehicleObj: record,
diff --git a/client/src/components/jobs-detail-rates/jobs-detail-rates.parts.component.jsx b/client/src/components/jobs-detail-rates/jobs-detail-rates.parts.component.jsx
index 985662da5..213d815e8 100644
--- a/client/src/components/jobs-detail-rates/jobs-detail-rates.parts.component.jsx
+++ b/client/src/components/jobs-detail-rates/jobs-detail-rates.parts.component.jsx
@@ -1,4 +1,4 @@
-import { Collapse, Form, InputNumber, Select, Switch } from "antd";
+import { Collapse, Form, InputNumber, Switch } from "antd";
import React from "react";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
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
index f236761af..0293e0459 100644
--- a/client/src/components/vehicle-tag-popover/vehicle-tag-popover.component.jsx
+++ b/client/src/components/vehicle-tag-popover/vehicle-tag-popover.component.jsx
@@ -5,6 +5,8 @@ import { Link } from "react-router-dom";
export default function VehicleTagPopoverComponent({ job }) {
const { t } = useTranslation();
+ if (!job.vehicle) return null;
+
const content = (
diff --git a/client/src/pages/jobs-create/jobs-create.component.jsx b/client/src/pages/jobs-create/jobs-create.component.jsx
index ec838b4e4..74576eb3d 100644
--- a/client/src/pages/jobs-create/jobs-create.component.jsx
+++ b/client/src/pages/jobs-create/jobs-create.component.jsx
@@ -18,7 +18,10 @@ export default function JobsCreateComponent({ form }) {
{
title: t("jobs.labels.create.vehicleinfo"),
content: ,
- validation: !!state.vehicle.new || !!state.vehicle.selectedid,
+ validation:
+ !!state.vehicle.new ||
+ !!state.vehicle.selectedid ||
+ !!state.vehicle.none,
error: t("vehicles.errors.selectexistingornew"),
},
{
diff --git a/client/src/pages/jobs-create/jobs-create.container.jsx b/client/src/pages/jobs-create/jobs-create.container.jsx
index 857b0a7af..f6a66f417 100644
--- a/client/src/pages/jobs-create/jobs-create.container.jsx
+++ b/client/src/pages/jobs-create/jobs-create.container.jsx
@@ -26,7 +26,13 @@ const mapDispatchToProps = (dispatch) => ({
function JobsCreateContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) {
const { t } = useTranslation();
const contextState = useState({
- vehicle: { new: false, search: "", selectedid: null, vehicleObj: null },
+ vehicle: {
+ new: false,
+ search: "",
+ selectedid: null,
+ vehicleObj: null,
+ none: false,
+ },
owner: { new: false, search: "", selectedid: null },
job: null,
created: false,
@@ -79,12 +85,16 @@ function JobsCreateContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) {
});
};
+ console.log("Manual State", state);
const handleFinish = (values) => {
let job = Object.assign(
{},
values,
{
- vehicle: state.vehicle.selectedid ? null : values.vehicle,
+ vehicle:
+ state.vehicle.selectedid || state.vehicle.none
+ ? null
+ : values.vehicle,
vehicleid: state.vehicle.selectedid || null,
},
{
@@ -109,24 +119,26 @@ function JobsCreateContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) {
delete ownerData.id;
delete ownerData.__typename;
}
- if (!!!job.vehicleid) {
- delete job.vehicleid;
- job.vehicle.data.shopid = bodyshop.id;
- job.plate_no = job.vehicle.data.plate_no;
- job.plate_st = job.vehicle.data.plate_st;
- job.v_vin = job.vehicle.data.v_vin;
- job.v_model_yr = job.vehicle.data.v_model_yr;
- job.v_model_desc = job.vehicle.data.v_model_desc;
- job.v_make_desc = job.vehicle.data.v_make_desc;
- job.v_color = job.vehicle.data.v_color;
- } else {
- job.plate_no = state.vehicle.vehicleObj.plate_no;
- job.plate_st = state.vehicle.vehicleObj.plate_st;
- job.v_vin = state.vehicle.vehicleObj.v_vin;
- job.v_model_yr = state.vehicle.vehicleObj.v_model_yr;
- job.v_model_desc = state.vehicle.vehicleObj.v_model_desc;
- job.v_make_desc = state.vehicle.vehicleObj.v_make_desc;
- job.v_color = state.vehicle.vehicleObj.v_color;
+ if (!state.vehicle.none) {
+ if (!!!job.vehicleid) {
+ delete job.vehicleid;
+ job.vehicle.data.shopid = bodyshop.id;
+ job.plate_no = job.vehicle.data.plate_no;
+ job.plate_st = job.vehicle.data.plate_st;
+ job.v_vin = job.vehicle.data.v_vin;
+ job.v_model_yr = job.vehicle.data.v_model_yr;
+ job.v_model_desc = job.vehicle.data.v_model_desc;
+ job.v_make_desc = job.vehicle.data.v_make_desc;
+ job.v_color = job.vehicle.data.v_color;
+ } else {
+ job.plate_no = state.vehicle.vehicleObj.plate_no;
+ job.plate_st = state.vehicle.vehicleObj.plate_st;
+ job.v_vin = state.vehicle.vehicleObj.v_vin;
+ job.v_model_yr = state.vehicle.vehicleObj.v_model_yr;
+ job.v_model_desc = state.vehicle.vehicleObj.v_model_desc;
+ job.v_make_desc = state.vehicle.vehicleObj.v_make_desc;
+ job.v_color = state.vehicle.vehicleObj.v_color;
+ }
}
job = { ...job, ...ownerData };
diff --git a/client/src/translations/en_us/common.json b/client/src/translations/en_us/common.json
index bf238bd2c..247501752 100644
--- a/client/src/translations/en_us/common.json
+++ b/client/src/translations/en_us/common.json
@@ -1087,6 +1087,7 @@
"jobinfo": "Job Info",
"newowner": "Create a new Owner instead. ",
"newvehicle": "Create a new Vehicle Instead",
+ "novehicle": "No vehicle (only for ROs to track parts/labor only work).",
"ownerinfo": "Owner Info",
"vehicleinfo": "Vehicle Info"
},
diff --git a/client/src/translations/es/common.json b/client/src/translations/es/common.json
index a0783e7ab..80903d486 100644
--- a/client/src/translations/es/common.json
+++ b/client/src/translations/es/common.json
@@ -1087,6 +1087,7 @@
"jobinfo": "",
"newowner": "",
"newvehicle": "",
+ "novehicle": "",
"ownerinfo": "",
"vehicleinfo": ""
},
diff --git a/client/src/translations/fr/common.json b/client/src/translations/fr/common.json
index b3fc7527d..53149e4d0 100644
--- a/client/src/translations/fr/common.json
+++ b/client/src/translations/fr/common.json
@@ -1087,6 +1087,7 @@
"jobinfo": "",
"newowner": "",
"newvehicle": "",
+ "novehicle": "",
"ownerinfo": "",
"vehicleinfo": ""
},