Minor parts order additions.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
<babeledit_project be_version="2.6.1" version="1.2">
|
||||
<babeledit_project version="1.2" be_version="2.6.1">
|
||||
<!--
|
||||
|
||||
BabelEdit project file
|
||||
@@ -5884,6 +5884,136 @@
|
||||
</folder_node>
|
||||
</children>
|
||||
</folder_node>
|
||||
<folder_node>
|
||||
<name>parts_orders</name>
|
||||
<children>
|
||||
<folder_node>
|
||||
<name>errors</name>
|
||||
<children>
|
||||
<concept_node>
|
||||
<name>creating</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
<description></description>
|
||||
<comment></comment>
|
||||
<default_text></default_text>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-MX</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-CA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
</children>
|
||||
</folder_node>
|
||||
<folder_node>
|
||||
<name>fields</name>
|
||||
<children>
|
||||
<concept_node>
|
||||
<name>deliver_by</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
<description></description>
|
||||
<comment></comment>
|
||||
<default_text></default_text>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-MX</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-CA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
</children>
|
||||
</folder_node>
|
||||
<folder_node>
|
||||
<name>labels</name>
|
||||
<children>
|
||||
<concept_node>
|
||||
<name>email</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
<description></description>
|
||||
<comment></comment>
|
||||
<default_text></default_text>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-MX</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-CA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>print</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
<description></description>
|
||||
<comment></comment>
|
||||
<default_text></default_text>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-MX</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-CA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
</children>
|
||||
</folder_node>
|
||||
<folder_node>
|
||||
<name>successes</name>
|
||||
<children>
|
||||
<concept_node>
|
||||
<name>created</name>
|
||||
<definition_loaded>false</definition_loaded>
|
||||
<description></description>
|
||||
<comment></comment>
|
||||
<default_text></default_text>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-MX</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-CA</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
</children>
|
||||
</folder_node>
|
||||
</children>
|
||||
</folder_node>
|
||||
<folder_node>
|
||||
<name>profile</name>
|
||||
<children>
|
||||
|
||||
@@ -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>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -378,6 +378,21 @@
|
||||
"order": "Order Parts"
|
||||
}
|
||||
},
|
||||
"parts_orders": {
|
||||
"errors": {
|
||||
"creating": "Error encountered when creating parts order. "
|
||||
},
|
||||
"fields": {
|
||||
"deliver_by": "Deliver By"
|
||||
},
|
||||
"labels": {
|
||||
"email": "Send by Email",
|
||||
"print": "Show Printed Form"
|
||||
},
|
||||
"successes": {
|
||||
"created": "Parts order created successfully. "
|
||||
}
|
||||
},
|
||||
"profile": {
|
||||
"errors": {
|
||||
"state": "Error reading page state. Please refresh."
|
||||
|
||||
@@ -378,6 +378,21 @@
|
||||
"order": "Pedido de piezas"
|
||||
}
|
||||
},
|
||||
"parts_orders": {
|
||||
"errors": {
|
||||
"creating": "Se encontró un error al crear el pedido de piezas."
|
||||
},
|
||||
"fields": {
|
||||
"deliver_by": "Entregado por"
|
||||
},
|
||||
"labels": {
|
||||
"email": "Enviar por correo electrónico",
|
||||
"print": "Mostrar formulario impreso"
|
||||
},
|
||||
"successes": {
|
||||
"created": "Pedido de piezas creado con éxito."
|
||||
}
|
||||
},
|
||||
"profile": {
|
||||
"errors": {
|
||||
"state": "Error al leer el estado de la página. Porfavor refresca."
|
||||
|
||||
@@ -378,6 +378,21 @@
|
||||
"order": "Commander des pièces"
|
||||
}
|
||||
},
|
||||
"parts_orders": {
|
||||
"errors": {
|
||||
"creating": "Erreur rencontrée lors de la création de la commande de pièces."
|
||||
},
|
||||
"fields": {
|
||||
"deliver_by": "Livrer par"
|
||||
},
|
||||
"labels": {
|
||||
"email": "Envoyé par email",
|
||||
"print": "Afficher le formulaire imprimé"
|
||||
},
|
||||
"successes": {
|
||||
"created": "Commande de pièces créée avec succès."
|
||||
}
|
||||
},
|
||||
"profile": {
|
||||
"errors": {
|
||||
"state": "Erreur lors de la lecture de l'état de la page. Rafraichissez, s'il vous plait."
|
||||
|
||||
Reference in New Issue
Block a user