IO-1531 CC Contract add to production.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import { WarningFilled } from "@ant-design/icons";
|
import { WarningFilled } from "@ant-design/icons";
|
||||||
import { Form, Input, InputNumber, Space } from "antd";
|
import { Form, Input, InputNumber, Space, Switch } from "antd";
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
@@ -42,7 +42,6 @@ export default function ContractFormComponent({
|
|||||||
<ContractStatusSelector />
|
<ContractStatusSelector />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label={t("contracts.fields.start")}
|
label={t("contracts.fields.start")}
|
||||||
name="start"
|
name="start"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import { Button, Col, PageHeader, Row } from "antd";
|
import { Button, Col, PageHeader, Row, Space, Form, Switch } from "antd";
|
||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import ContractCarsContainer from "../../components/contract-cars/contract-cars.container";
|
import ContractCarsContainer from "../../components/contract-cars/contract-cars.container";
|
||||||
@@ -13,14 +14,25 @@ export default function ContractCreatePageComponent({
|
|||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
const CreateButton = (
|
const CreateButton = (
|
||||||
<Button
|
<Space size="large">
|
||||||
disabled={!selectedJobState[0] || !selectedCarState[0]}
|
{selectedJobState[0] && selectedCarState[0] && (
|
||||||
type="primary"
|
<Form.Item
|
||||||
onClick={() => form.submit()}
|
label={t("jobs.actions.addtoproduction")}
|
||||||
loading={loading}
|
name="addtoproduction"
|
||||||
>
|
valuePropName="checked"
|
||||||
{t("general.actions.create")}
|
>
|
||||||
</Button>
|
<Switch />
|
||||||
|
</Form.Item>
|
||||||
|
)}
|
||||||
|
<Button
|
||||||
|
disabled={!selectedJobState[0] || !selectedCarState[0]}
|
||||||
|
type="primary"
|
||||||
|
onClick={() => form.submit()}
|
||||||
|
loading={loading}
|
||||||
|
>
|
||||||
|
{t("general.actions.create")}
|
||||||
|
</Button>
|
||||||
|
</Space>
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { useHistory, useLocation } from "react-router-dom";
|
|||||||
import { createStructuredSelector } from "reselect";
|
import { createStructuredSelector } from "reselect";
|
||||||
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
|
import RbacWrapper from "../../components/rbac-wrapper/rbac-wrapper.component";
|
||||||
import { INSERT_NEW_CONTRACT } from "../../graphql/cccontracts.queries";
|
import { INSERT_NEW_CONTRACT } from "../../graphql/cccontracts.queries";
|
||||||
|
import { UPDATE_JOB } from "../../graphql/jobs.queries";
|
||||||
import {
|
import {
|
||||||
setBreadcrumbs,
|
setBreadcrumbs,
|
||||||
setSelectedHeader,
|
setSelectedHeader,
|
||||||
@@ -37,8 +38,9 @@ export function ContractCreatePageContainer({
|
|||||||
(location.state && location.state.jobId) || null
|
(location.state && location.state.jobId) || null
|
||||||
);
|
);
|
||||||
const [insertContract] = useMutation(INSERT_NEW_CONTRACT);
|
const [insertContract] = useMutation(INSERT_NEW_CONTRACT);
|
||||||
|
const [intakeJob] = useMutation(UPDATE_JOB);
|
||||||
|
|
||||||
const handleFinish = async (values) => {
|
const handleFinish = async ({ addtoproduction, ...values }) => {
|
||||||
if (!!selectedCarState[0] && !!selectedJobState[0]) {
|
if (!!selectedCarState[0] && !!selectedJobState[0]) {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
const result = await insertContract({
|
const result = await insertContract({
|
||||||
@@ -54,12 +56,35 @@ export function ContractCreatePageContainer({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!result.errors) {
|
if (!result.errors) {
|
||||||
//Update the courtesy car to have the damage.
|
//Update the courtesy car to have the damage.
|
||||||
notification["success"]({
|
notification["success"]({
|
||||||
message: t("contracts.successes.saved"),
|
message: t("contracts.successes.saved"),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//Intake the job if required
|
||||||
|
if (addtoproduction) {
|
||||||
|
const result2 = await intakeJob({
|
||||||
|
variables: {
|
||||||
|
jobId: selectedJobState[0],
|
||||||
|
job: {
|
||||||
|
actual_in: new Date(),
|
||||||
|
inproduction: true,
|
||||||
|
status: bodyshop.md_ro_statuses.default_arrived,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
if (result2.errors) {
|
||||||
|
notification["error"]({
|
||||||
|
message: t("jobs.errors.saving", {
|
||||||
|
error: JSON.stringify(!result2.errors),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
form.resetFields();
|
form.resetFields();
|
||||||
form.resetFields();
|
form.resetFields();
|
||||||
history.push(
|
history.push(
|
||||||
|
|||||||
Reference in New Issue
Block a user