Baseline Parts Order modal functioning.
This commit is contained in:
@@ -1,14 +1,31 @@
|
||||
import React from "react";
|
||||
import { Modal } from "antd";
|
||||
import PartsOrderModalComponent from "./parts-order-modal.component";
|
||||
import React, { useState } from "react";
|
||||
import { useQuery, useMutation } from "react-apollo";
|
||||
import { connect } from "react-redux";
|
||||
import { createStructuredSelector } from "reselect";
|
||||
import { QUERY_ALL_VENDORS_FOR_ORDER } from "../../graphql/vendors.queries";
|
||||
import { useQuery } from "react-apollo";
|
||||
import LoadingSpinner from "../loading-spinner/loading-spinner.component";
|
||||
import { INSERT_NEW_PARTS_ORDERS } from "../../graphql/parts-orders.queries";
|
||||
import {
|
||||
selectCurrentUser,
|
||||
selectBodyshop
|
||||
} from "../../redux/user/user.selectors";
|
||||
import AlertComponent from "../alert/alert.component";
|
||||
import LoadingSpinner from "../loading-spinner/loading-spinner.component";
|
||||
import PartsOrderModalComponent from "./parts-order-modal.component";
|
||||
|
||||
export default function PartsOrderModalContainer({
|
||||
const mapStateToProps = createStructuredSelector({
|
||||
currentUser: selectCurrentUser,
|
||||
bodyshop: selectBodyshop
|
||||
});
|
||||
export default connect(
|
||||
mapStateToProps,
|
||||
null
|
||||
)(function PartsOrderModalContainer({
|
||||
partsOrderModalVisible,
|
||||
linesToOrder
|
||||
linesToOrder,
|
||||
jobId,
|
||||
currentUser,
|
||||
bodyshop
|
||||
}) {
|
||||
const [modalVisible, setModalVisible] = partsOrderModalVisible;
|
||||
const { loading, error, data } = useQuery(QUERY_ALL_VENDORS_FOR_ORDER, {
|
||||
@@ -16,13 +33,50 @@ export default function PartsOrderModalContainer({
|
||||
skip: !modalVisible
|
||||
});
|
||||
|
||||
const [insertPartOrder] = useMutation(INSERT_NEW_PARTS_ORDERS);
|
||||
|
||||
const partsOrderState = useState({
|
||||
vendorid: null,
|
||||
jobid: jobId,
|
||||
user_email: currentUser.email
|
||||
});
|
||||
|
||||
const [partsOrder, setPartsOrder] = partsOrderState;
|
||||
const handleOk = () => {
|
||||
insertPartOrder({
|
||||
variables: {
|
||||
po: [
|
||||
{
|
||||
...partsOrder,
|
||||
status: bodyshop.md_order_statuses.default_ordered || "Ordered*",
|
||||
parts_order_lines: {
|
||||
data: linesToOrder.reduce((acc, value) => {
|
||||
acc.push({
|
||||
line_desc: value.line_desc,
|
||||
joblineid: value.joblineid
|
||||
});
|
||||
return acc;
|
||||
}, [])
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
setModalVisible(false);
|
||||
};
|
||||
|
||||
return (
|
||||
<Modal visible={modalVisible} onCancel={() => setModalVisible(false)}>
|
||||
<Modal
|
||||
visible={modalVisible}
|
||||
onCancel={() => setModalVisible(false)}
|
||||
onOk={handleOk}>
|
||||
{error ? <AlertComponent message={error.message} type='error' /> : null}
|
||||
<LoadingSpinner loading={loading}>
|
||||
{JSON.stringify(linesToOrder)}
|
||||
<PartsOrderModalComponent vendorList={(data && data.vendors) || []} />
|
||||
<PartsOrderModalComponent
|
||||
vendorList={(data && data.vendors) || []}
|
||||
state={partsOrderState}
|
||||
/>
|
||||
</LoadingSpinner>
|
||||
</Modal>
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user