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>
</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>

View File

@@ -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

View File

@@ -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,

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 { useTranslation } from "react-i18next";
import { connect } from "react-redux";

View File

@@ -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>

View File

@@ -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"),
},
{

View File

@@ -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 };

View File

@@ -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"
},

View File

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

View File

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