Minor parts order additions.

This commit is contained in:
Patrick Fic
2020-02-18 10:52:30 -08:00
parent 4dc3fb492a
commit dbf5c38752
6 changed files with 225 additions and 13 deletions

View File

@@ -1,8 +1,13 @@
import React, { useState } from "react";
import { AutoComplete, Icon } from "antd";
import { AutoComplete, Icon, DatePicker, Radio } from "antd";
import { useTranslation } from "react-i18next";
export default function PartsOrderModalComponent({ vendorList, state }) {
export default function PartsOrderModalComponent({
vendorList,
state,
sendTypeState
}) {
const [partsOrder, setPartsOrder] = state;
const [sendType, setSendType] = sendTypeState;
const [vendorComplete, setVendorComplete] = useState(vendorList);
const { t } = useTranslation();
@@ -17,27 +22,42 @@ export default function PartsOrderModalComponent({ vendorList, state }) {
};
const handleSelect = (value, option) => {
console.log("value", value);
console.log("option", option);
setPartsOrder({ ...partsOrder, vendorid: value });
setPartsOrder({ ...partsOrder, vendorid: option.key });
};
return (
<div>
TODO Not sure why name is not populating.
<AutoComplete
onSearch={handleSearch}
onSelect={handleSelect}
optionLabelProp='id'
defaultOpen
backfill
optionLabelProp='value'
dataSource={vendorComplete}
placeholder={t("vendors.labels.search")}>
{vendorComplete.map(v => (
<AutoComplete.Option key={v.id}>
<AutoComplete.Option value={v.name} key={v.id}>
<div>{v.name}</div>
<div> {v.favorite ? <Icon type='heart' /> : null}</div>
</AutoComplete.Option>
))}
</AutoComplete>
{t("parts_orders.fields.deliver_by")}
<DatePicker
defaultValue={partsOrder.deliver_by}
onChange={e => {
setPartsOrder({ ...partsOrder, deliver_by: e });
}}
/>
<Radio.Group
defaultValue={sendType}
onChange={e => setSendType(e.target.value)}>
<Radio value={"e"}>{t("parts_orders.labels.email")}</Radio>
<Radio value={"p"}>{t("parts_orders.labels.print")}</Radio>
</Radio.Group>
</div>
);
}

View File

@@ -1,4 +1,4 @@
import { Modal } from "antd";
import { Modal, notification } from "antd";
import React, { useState } from "react";
import { useQuery, useMutation } from "react-apollo";
import { connect } from "react-redux";
@@ -12,6 +12,7 @@ import {
import AlertComponent from "../alert/alert.component";
import LoadingSpinner from "../loading-spinner/loading-spinner.component";
import PartsOrderModalComponent from "./parts-order-modal.component";
import { useTranslation } from "react-i18next";
const mapStateToProps = createStructuredSelector({
currentUser: selectCurrentUser,
@@ -32,8 +33,9 @@ export default connect(
fetchPolicy: "network-only",
skip: !modalVisible
});
const { t } = useTranslation();
const [insertPartOrder] = useMutation(INSERT_NEW_PARTS_ORDERS);
const sendTypeState = useState("e");
const partsOrderState = useState({
vendorid: null,
@@ -41,7 +43,8 @@ export default connect(
user_email: currentUser.email
});
const [partsOrder, setPartsOrder] = partsOrderState;
console.log("sendTypeState[0]", sendTypeState[0]);
const partsOrder = partsOrderState[0];
const handleOk = () => {
insertPartOrder({
variables: {
@@ -53,7 +56,9 @@ export default connect(
data: linesToOrder.reduce((acc, value) => {
acc.push({
line_desc: value.line_desc,
joblineid: value.joblineid
joblineid: value.joblineid,
status:
bodyshop.md_order_statuses.default_ordered || "Ordered*"
});
return acc;
}, [])
@@ -61,8 +66,19 @@ export default connect(
}
]
}
});
setModalVisible(false);
})
.then(r => {
notification["success"]({
message: t("parts_orders.successes.created")
});
setModalVisible(false);
})
.catch(error => {
notification["error"]({
message: t("parts_orders.errors.creating"),
description: error.message
});
});
};
return (
@@ -75,6 +91,7 @@ export default connect(
<PartsOrderModalComponent
vendorList={(data && data.vendors) || []}
state={partsOrderState}
sendTypeState={sendTypeState}
/>
</LoadingSpinner>
</Modal>