bug fixes on intake BOD-114

This commit is contained in:
Patrick Fic
2020-05-13 13:45:06 -07:00
parent c470e0ba18
commit 7aff42537c
5 changed files with 77 additions and 63 deletions

View File

@@ -4,11 +4,14 @@ import CheckboxFormItem from "../job-intake-form-checkbox/job-itnake-form-checkb
import { useTranslation } from "react-i18next";
import { useMutation } from "@apollo/react-hooks";
import { UPDATE_JOB } from "../../../../graphql/jobs.queries";
import { MARK_LATEST_APPOINTMENT_AS_ARRIVED } from "../../../../graphql/appointments.queries";
import { useParams } from "react-router-dom";
import { selectBodyshop } from "../../../../redux/user/user.selectors";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import { useHistory } from "react-router-dom";
import queryString from "query-string";
import { useLocation } from "react-router-dom";
const mapStateToProps = createStructuredSelector({
bodyshop: selectBodyshop,
@@ -20,8 +23,11 @@ const mapDispatchToProps = (dispatch) => ({
export function JobIntakeForm({ formItems, bodyshop }) {
const { t } = useTranslation();
const [intakeJob] = useMutation(UPDATE_JOB);
const [markAptArrived] = useMutation(MARK_LATEST_APPOINTMENT_AS_ARRIVED);
const { jobId } = useParams();
const history = useHistory();
const search = queryString.parse(useLocation().search);
const handleFinish = async (values) => {
console.log("values", values);
@@ -38,6 +44,20 @@ export function JobIntakeForm({ formItems, bodyshop }) {
},
},
});
if (!!search.appointmentId) {
const appUpdate = await markAptArrived({
variables: { appointmentId: search.appointmentId },
});
if (!!appUpdate.errors) {
notification["error"]({
message: t("intake.errors.intake", {
error: JSON.stringify(result.errors),
}),
});
}
}
if (!!!result.errors) {
notification["success"]({ message: t("intake.successes.intake") });
history.push(`/manage/jobs/${jobId}`);

View File

@@ -1,13 +1,18 @@
import React from "react";
import JobIntakeTemplateList from "./components/job-intake-template-list/job-intake-template-list.component";
import JobIntakeForm from "./components/job-intake-form/job-intake-form.component";
import { Row, Col } from "antd";
export default function JobIntakeComponent({ intakeChecklistConfig }) {
const { form, templates } = intakeChecklistConfig;
return (
<div>
<JobIntakeTemplateList templates={templates} />
<JobIntakeForm formItems={form} />
</div>
<Row>
<Col span={12}>
<JobIntakeTemplateList templates={templates} />
</Col>
<Col span={12}>
<JobIntakeForm formItems={form} />
</Col>
</Row>
);
}

View File

@@ -56,36 +56,39 @@ export default function ScheduleEventComponent({ event, handleCancel }) {
<Button>{t("appointments.actions.viewjob")}</Button>
</Link>
) : null}
<Button onClick={() => handleCancel(event.id)}>
<Button onClick={() => handleCancel(event.id)} disabled={event.arrived}>
{t("appointments.actions.cancel")}
</Button>
<Button>
<Button disabled={event.arrived}>
{
//TODO Add reschedule Func.
}
{t("appointments.actions.reschedule")}
</Button>
{event.isintake ? (
<Button>
{
//TODO Add intake func.
}
{t("appointments.actions.intake")}
</Button>
<Link
to={{
pathname: `/manage/jobs/${event.job && event.job.id}/intake`,
search: `?appointmentId=${event.id}`,
}}>
<Button disabled={event.arrived}>
{t("appointments.actions.intake")}
</Button>
</Link>
) : null}
</div>
);
const RegularEvent = event.isintake ? (
<div>
<strong>{`${(event.job && event.job.ownr_fn) || ""} ${
(event.job && event.job.ownr_ln) || ""
}`}</strong>
<span style={{ margin: 4 }}>
<strong style={{ color: event.arrived ? "green" : "" }}>{`${
(event.job && event.job.ownr_fn) || ""
} ${(event.job && event.job.ownr_ln) || ""}`}</strong>
<div style={{ margin: 4 }}>
{`${(event.job && event.job.v_model_yr) || ""} ${
(event.job && event.job.v_make_desc) || ""
} ${(event.job && event.job.v_model_desc) || ""}`}
</span>
</div>
</div>
) : (
<div>
@@ -94,7 +97,7 @@ export default function ScheduleEventComponent({ event, handleCancel }) {
);
const Load = (
<div className="load">
<div className='load'>
<Progress percent={77} showInfo={false} />
</div>
);