Added no vehicle option to manual job creation IO-107
This commit is contained in:
@@ -17796,6 +17796,27 @@
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>novehicle</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
<description></description>
|
||||
<comment></comment>
|
||||
<default_text></default_text>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-MX</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-CA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>ownerinfo</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
|
||||
@@ -19,6 +19,7 @@ export default function JobsCreateVehicleInfoNewComponent() {
|
||||
...state,
|
||||
vehicle: {
|
||||
...state.vehicle,
|
||||
none: false,
|
||||
new: !state.vehicle.new,
|
||||
selectedid: null,
|
||||
},
|
||||
@@ -27,6 +28,23 @@ export default function JobsCreateVehicleInfoNewComponent() {
|
||||
>
|
||||
{t("jobs.labels.create.newvehicle")}
|
||||
</Checkbox>
|
||||
<Checkbox
|
||||
defaultChecked={state.vehicle.none}
|
||||
checked={state.vehicle.none}
|
||||
onChange={() => {
|
||||
setState({
|
||||
...state,
|
||||
vehicle: {
|
||||
...state.vehicle,
|
||||
new: false,
|
||||
none: !state.vehicle.none,
|
||||
selectedid: null,
|
||||
},
|
||||
});
|
||||
}}
|
||||
>
|
||||
{t("jobs.labels.create.novehicle")}
|
||||
</Checkbox>
|
||||
|
||||
<LayoutFormRow header={t("vehicles.forms.detail")} grow>
|
||||
<Form.Item
|
||||
|
||||
@@ -59,9 +59,9 @@ export default function JobsCreateVehicleInfoSearchComponent({
|
||||
loading={loading}
|
||||
title={() => {
|
||||
return (
|
||||
<div className='imex-table-header'>
|
||||
<div className="imex-table-header">
|
||||
<Input.Search
|
||||
className='imex-table-header__search'
|
||||
className="imex-table-header__search"
|
||||
placeholder={t("general.labels.search")}
|
||||
onSearch={(value) => {
|
||||
setState({
|
||||
@@ -74,11 +74,11 @@ export default function JobsCreateVehicleInfoSearchComponent({
|
||||
</div>
|
||||
);
|
||||
}}
|
||||
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,
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 = (
|
||||
<div style={{ width: "400px" }}>
|
||||
<Row>
|
||||
|
||||
@@ -18,7 +18,10 @@ export default function JobsCreateComponent({ form }) {
|
||||
{
|
||||
title: t("jobs.labels.create.vehicleinfo"),
|
||||
content: <JobsCreateVehicleInfoContainer />,
|
||||
validation: !!state.vehicle.new || !!state.vehicle.selectedid,
|
||||
validation:
|
||||
!!state.vehicle.new ||
|
||||
!!state.vehicle.selectedid ||
|
||||
!!state.vehicle.none,
|
||||
error: t("vehicles.errors.selectexistingornew"),
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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 };
|
||||
|
||||
@@ -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"
|
||||
},
|
||||
|
||||
@@ -1087,6 +1087,7 @@
|
||||
"jobinfo": "",
|
||||
"newowner": "",
|
||||
"newvehicle": "",
|
||||
"novehicle": "",
|
||||
"ownerinfo": "",
|
||||
"vehicleinfo": ""
|
||||
},
|
||||
|
||||
@@ -1087,6 +1087,7 @@
|
||||
"jobinfo": "",
|
||||
"newowner": "",
|
||||
"newvehicle": "",
|
||||
"novehicle": "",
|
||||
"ownerinfo": "",
|
||||
"vehicleinfo": ""
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user