BOD-11 BOD-12 BOD-10 WIP Guided manual estimate creation.

This commit is contained in:
Patrick Fic
2020-03-23 09:24:09 -07:00
parent 7889ee61ae
commit c55f5ebafc
17 changed files with 769 additions and 133 deletions

View File

@@ -2,28 +2,71 @@ import React, { useState } from "react";
import JobsCreateComponent from "./jobs-create.component";
import { Form } from "antd";
import JobCreateContext from "./jobs-create.context";
export default function JobsCreateContainer() {
const [form] = Form.useForm();
import { useMutation, useLazyQuery } from "react-apollo";
import { INSERT_NEW_JOB } from "../../graphql/jobs.queries";
import { QUERY_OWNER_FOR_JOB_CREATION } from "../../graphql/owners.queries";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { selectBodyshop } from "../../redux/user/user.selectors";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop
});
export default connect(mapStateToProps, null)(JobsCreateContainer);
function JobsCreateContainer({ bodyshop }) {
const contextState = useState({
vehicle: { new: false, search: "", selectedid: null },
owner: { new: false, search: "", selectedid: null },
job: null
});
const [form] = Form.useForm();
const [state] = contextState;
const [insertJob] = useMutation(INSERT_NEW_JOB);
const [loadOwner] = useLazyQuery(QUERY_OWNER_FOR_JOB_CREATION);
const handleFinish = values => {
console.log("Form Values", values);
//const vehicleSpread = state.vehicle.selectedid ? {vehicleid: state.vehicle.selectedid} : {vehicle: {data: { ...values.vehicle} }
const job = Object.assign(
console.log("state", state);
let job = Object.assign(
{},
values,
{
vehicle: state.vehicle.selectedid ? null : values.vehicle,
vehicleid: state.vehicle.selectedid || null
},
{
owner: state.owner.selectedid ? null : values.owner,
ownerid: state.owner.selectedid || null
},
{
status: bodyshop.md_ro_statuses.default_imported || "Open*", //Pull from redux store.
shopid: bodyshop.id
}
);
if (!!job.owner) {
//spread the owner into to the job
console.log("Spread New Owner");
let ownerData = job.owner.data;
delete ownerData.allow_text_message;
delete ownerData.preferred_contact;
job = { ...job, ...ownerData };
runInsertJob(job);
} else {
//lookup the owner and spread it then.
loadOwner({
variables: { id: state.owner.selectedid },
onCompleted: data => {
console.log("data", data);
runInsertJob({ ...job, ...data.owners_by_pk });
}
});
}
};
const runInsertJob = job => {
console.log("Job To Save", job);
insertJob({ variables: { job: job } });
};
return (