Added no vehicle option to manual job creation IO-107

This commit is contained in:
Patrick Fic
2021-02-01 16:35:24 -08:00
parent 364d59ee9c
commit d8d77f8723
10 changed files with 87 additions and 26 deletions

View File

@@ -17796,6 +17796,27 @@
</translation> </translation>
</translations> </translations>
</concept_node> </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> <concept_node>
<name>ownerinfo</name> <name>ownerinfo</name>
<definition_loaded>false</definition_loaded> <definition_loaded>false</definition_loaded>

View File

@@ -19,6 +19,7 @@ export default function JobsCreateVehicleInfoNewComponent() {
...state, ...state,
vehicle: { vehicle: {
...state.vehicle, ...state.vehicle,
none: false,
new: !state.vehicle.new, new: !state.vehicle.new,
selectedid: null, selectedid: null,
}, },
@@ -27,6 +28,23 @@ export default function JobsCreateVehicleInfoNewComponent() {
> >
{t("jobs.labels.create.newvehicle")} {t("jobs.labels.create.newvehicle")}
</Checkbox> </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> <LayoutFormRow header={t("vehicles.forms.detail")} grow>
<Form.Item <Form.Item

View File

@@ -59,9 +59,9 @@ export default function JobsCreateVehicleInfoSearchComponent({
loading={loading} loading={loading}
title={() => { title={() => {
return ( return (
<div className='imex-table-header'> <div className="imex-table-header">
<Input.Search <Input.Search
className='imex-table-header__search' className="imex-table-header__search"
placeholder={t("general.labels.search")} placeholder={t("general.labels.search")}
onSearch={(value) => { onSearch={(value) => {
setState({ setState({
@@ -74,11 +74,11 @@ export default function JobsCreateVehicleInfoSearchComponent({
</div> </div>
); );
}} }}
size='small' size="small"
scroll={{ x: true }} scroll={{ x: true }}
pagination={{ position: "top" }} pagination={{ position: "top" }}
columns={columns} columns={columns}
rowKey='id' rowKey="id"
dataSource={vehicles} dataSource={vehicles}
onChange={handleTableChange} onChange={handleTableChange}
rowSelection={{ rowSelection={{
@@ -87,6 +87,7 @@ export default function JobsCreateVehicleInfoSearchComponent({
...state, ...state,
vehicle: { vehicle: {
...state.vehicle, ...state.vehicle,
none: false,
new: false, new: false,
selectedid: props.id, selectedid: props.id,
vehicleObj: props, vehicleObj: props,
@@ -105,6 +106,7 @@ export default function JobsCreateVehicleInfoSearchComponent({
...state, ...state,
vehicle: { vehicle: {
...state.vehicle, ...state.vehicle,
none: false,
new: false, new: false,
selectedid: record.id, selectedid: record.id,
vehicleObj: record, vehicleObj: record,

View File

@@ -1,4 +1,4 @@
import { Collapse, Form, InputNumber, Select, Switch } from "antd"; import { Collapse, Form, InputNumber, Switch } from "antd";
import React from "react"; import React from "react";
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { connect } from "react-redux"; import { connect } from "react-redux";

View File

@@ -5,6 +5,8 @@ import { Link } from "react-router-dom";
export default function VehicleTagPopoverComponent({ job }) { export default function VehicleTagPopoverComponent({ job }) {
const { t } = useTranslation(); const { t } = useTranslation();
if (!job.vehicle) return null;
const content = ( const content = (
<div style={{ width: "400px" }}> <div style={{ width: "400px" }}>
<Row> <Row>

View File

@@ -18,7 +18,10 @@ export default function JobsCreateComponent({ form }) {
{ {
title: t("jobs.labels.create.vehicleinfo"), title: t("jobs.labels.create.vehicleinfo"),
content: <JobsCreateVehicleInfoContainer />, content: <JobsCreateVehicleInfoContainer />,
validation: !!state.vehicle.new || !!state.vehicle.selectedid, validation:
!!state.vehicle.new ||
!!state.vehicle.selectedid ||
!!state.vehicle.none,
error: t("vehicles.errors.selectexistingornew"), error: t("vehicles.errors.selectexistingornew"),
}, },
{ {

View File

@@ -26,7 +26,13 @@ const mapDispatchToProps = (dispatch) => ({
function JobsCreateContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) { function JobsCreateContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) {
const { t } = useTranslation(); const { t } = useTranslation();
const contextState = useState({ 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 }, owner: { new: false, search: "", selectedid: null },
job: null, job: null,
created: false, created: false,
@@ -79,12 +85,16 @@ function JobsCreateContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) {
}); });
}; };
console.log("Manual State", state);
const handleFinish = (values) => { const handleFinish = (values) => {
let job = Object.assign( let job = Object.assign(
{}, {},
values, values,
{ {
vehicle: state.vehicle.selectedid ? null : values.vehicle, vehicle:
state.vehicle.selectedid || state.vehicle.none
? null
: values.vehicle,
vehicleid: state.vehicle.selectedid || null, vehicleid: state.vehicle.selectedid || null,
}, },
{ {
@@ -109,24 +119,26 @@ function JobsCreateContainer({ bodyshop, setBreadcrumbs, setSelectedHeader }) {
delete ownerData.id; delete ownerData.id;
delete ownerData.__typename; delete ownerData.__typename;
} }
if (!!!job.vehicleid) { if (!state.vehicle.none) {
delete job.vehicleid; if (!!!job.vehicleid) {
job.vehicle.data.shopid = bodyshop.id; delete job.vehicleid;
job.plate_no = job.vehicle.data.plate_no; job.vehicle.data.shopid = bodyshop.id;
job.plate_st = job.vehicle.data.plate_st; job.plate_no = job.vehicle.data.plate_no;
job.v_vin = job.vehicle.data.v_vin; job.plate_st = job.vehicle.data.plate_st;
job.v_model_yr = job.vehicle.data.v_model_yr; job.v_vin = job.vehicle.data.v_vin;
job.v_model_desc = job.vehicle.data.v_model_desc; job.v_model_yr = job.vehicle.data.v_model_yr;
job.v_make_desc = job.vehicle.data.v_make_desc; job.v_model_desc = job.vehicle.data.v_model_desc;
job.v_color = job.vehicle.data.v_color; job.v_make_desc = job.vehicle.data.v_make_desc;
} else { job.v_color = job.vehicle.data.v_color;
job.plate_no = state.vehicle.vehicleObj.plate_no; } else {
job.plate_st = state.vehicle.vehicleObj.plate_st; job.plate_no = state.vehicle.vehicleObj.plate_no;
job.v_vin = state.vehicle.vehicleObj.v_vin; job.plate_st = state.vehicle.vehicleObj.plate_st;
job.v_model_yr = state.vehicle.vehicleObj.v_model_yr; job.v_vin = state.vehicle.vehicleObj.v_vin;
job.v_model_desc = state.vehicle.vehicleObj.v_model_desc; job.v_model_yr = state.vehicle.vehicleObj.v_model_yr;
job.v_make_desc = state.vehicle.vehicleObj.v_make_desc; job.v_model_desc = state.vehicle.vehicleObj.v_model_desc;
job.v_color = state.vehicle.vehicleObj.v_color; job.v_make_desc = state.vehicle.vehicleObj.v_make_desc;
job.v_color = state.vehicle.vehicleObj.v_color;
}
} }
job = { ...job, ...ownerData }; job = { ...job, ...ownerData };

View File

@@ -1087,6 +1087,7 @@
"jobinfo": "Job Info", "jobinfo": "Job Info",
"newowner": "Create a new Owner instead. ", "newowner": "Create a new Owner instead. ",
"newvehicle": "Create a new Vehicle Instead", "newvehicle": "Create a new Vehicle Instead",
"novehicle": "No vehicle (only for ROs to track parts/labor only work).",
"ownerinfo": "Owner Info", "ownerinfo": "Owner Info",
"vehicleinfo": "Vehicle Info" "vehicleinfo": "Vehicle Info"
}, },

View File

@@ -1087,6 +1087,7 @@
"jobinfo": "", "jobinfo": "",
"newowner": "", "newowner": "",
"newvehicle": "", "newvehicle": "",
"novehicle": "",
"ownerinfo": "", "ownerinfo": "",
"vehicleinfo": "" "vehicleinfo": ""
}, },

View File

@@ -1087,6 +1087,7 @@
"jobinfo": "", "jobinfo": "",
"newowner": "", "newowner": "",
"newvehicle": "", "newvehicle": "",
"novehicle": "",
"ownerinfo": "", "ownerinfo": "",
"vehicleinfo": "" "vehicleinfo": ""
}, },