diff --git a/react-ui/src/components/addOrder/Index.js b/react-ui/src/components/addOrder/Index.js index fc6be0bde..36361b84b 100755 --- a/react-ui/src/components/addOrder/Index.js +++ b/react-ui/src/components/addOrder/Index.js @@ -174,7 +174,9 @@ const Index = () => { {page === successMsgPageNumber && } + setSamples={setSamples} + setPage={setPage}/> + }
{(page !== firstPageNumber && page <= orderPageNumber) && } diff --git a/react-ui/src/components/addOrder/OrderSuccessMessage.js b/react-ui/src/components/addOrder/OrderSuccessMessage.js index 4bee33aa1..eca057d15 100644 --- a/react-ui/src/components/addOrder/OrderSuccessMessage.js +++ b/react-ui/src/components/addOrder/OrderSuccessMessage.js @@ -1,28 +1,95 @@ -import React, {Component} from 'react'; -import {Button, Row} from "@carbon/react"; - -class OrderSuccessMessage extends Component { - render() { - return ( -
-
- Order Entry saved successfully -

Save successful

- - - - - - -
-
- ); +import React, {useEffect, useState} from 'react'; +import {Button, Row, TextInput} from "@carbon/react"; +import config from "../../config.json"; +import {SampleOrderFormValues} from "../formModel/innitialValues/OrderEntryFormValues"; +import {sampleObject} from "./Index"; + + +const OrderSuccessMessage = (props) => { + const {orderFormValues, setOrderFormValues, setSamples, setPage} = props; + const [allowPrintBarCodes, setAllowPrintBarCodes] = useState(false); + const [numberOfPrints, setNumberOfPrints] = useState(1); + + + const handlePrintBarCode = () => { + setAllowPrintBarCodes(true) } + const handleNumberOfPrints = (e) => { + setNumberOfPrints(e.target.value); + } + const confirmPrintHandler = () => { + let barcodesPdf = config.serverBaseUrl + `/LabelMakerServlet?labNo=${orderFormValues.sampleOrderItems.labNo}&type=order&quantity=${numberOfPrints}`; + window.open(barcodesPdf); + } + + const handleAnotherSiteOrder = () => { + const siteId = orderFormValues.sampleOrderItems.referringSiteId; + const siteName = orderFormValues.sampleOrderItems.referringSiteName; + const providerId = orderFormValues.sampleOrderItems.providerId; + const providerFirstName = orderFormValues.sampleOrderItems.providerFirstName; + const providerLastName = orderFormValues.sampleOrderItems.providerLastName; + const providerWorkPhone = orderFormValues.sampleOrderItems.providerWorkPhone; + const providerFax = orderFormValues.sampleOrderItems.providerFax; + const providerEmail = orderFormValues.sampleOrderItems.providerEmail; + + setOrderFormValues(SampleOrderFormValues); + + setOrderFormValues({ + ...SampleOrderFormValues, + rememberSiteAndRequester: true, + sampleOrderItems: { + ...SampleOrderFormValues.sampleOrderItems, + referringSiteId: siteId, + referringSiteName: siteName, + providerId: providerId, + providerFirstName: providerFirstName, + providerLastName: providerLastName, + providerWorkPhone: providerWorkPhone, + providerFax: providerFax, + providerEmail: providerEmail + } + }); + setPage(0); + } + + useEffect(() => { + if (!orderFormValues.rememberSiteAndRequester) { + setOrderFormValues(SampleOrderFormValues); + } + setSamples([sampleObject]); + }, []); + + return (
+
+ Order Entry saved successfully +

Save successful

+ + + + {allowPrintBarCodes && + +
+ { + handleNumberOfPrints(e) + }} labelText="Number to Print"/> + +
+
+ } + + + {orderFormValues.rememberSiteAndRequester && + } + +
+
); } export default OrderSuccessMessage; diff --git a/react-ui/src/components/addOrder/add-order.scss b/react-ui/src/components/addOrder/add-order.scss index 7b1d39b87..d5a6b5918 100644 --- a/react-ui/src/components/addOrder/add-order.scss +++ b/react-ui/src/components/addOrder/add-order.scss @@ -1,4 +1,5 @@ @use '@carbon/styles/scss/type'; + .singleTest { padding: 1rem 0.75rem; } @@ -116,7 +117,7 @@ color: red !important; } .orderEntrySuccessMsg{ - width: 100px; + width: 240px; top: 0; bottom: 0; left: 0; @@ -127,7 +128,16 @@ width: 220px; text-align: center; } -.placeAnotherOrderBtn{ + +.confirmPrintCodeBtn { + height: 30px; + width: 70px; + text-align: center; + margin-top: 26px; + margin-left: 10px; +} + +.placeAnotherOrderBtn { width: 220px; text-align: center; margin-top: 10px;