{"version":3,"sources":["reportWebVitals.js","GlobalReducer.js","hooks/useWhyDidYouUpdate.js","components/controls/ConfirmationDialog.js","Portal.js","components/paperbase/PortalTheme.js","components/authorisation/AuthorisedRoute.js","components/paperbase/Profile.js","components/controls/Notification.js","components/paperbase/Navigator.js","assets/PEGASUS_PORTAL_LOGOS-02.png","components/CurrentPage.js","static/navigation.js","components/paperbase/Header.js","components/paperbase/Paperbase.js","assets/PEGASUS_PORTAL_LOGOS-01.png","assets/1x1.gif","assets/pegasus-header-background.jpg","pages/login/header.js","pages/login/Banner.js","pages/login/login-error.js","pages/login/Credentials.js","assets/PEGAUS_HEALTH_ELEMENTS-01.png","assets/Logo_2_1.png","assets/Logo_2_2.png","pages/login/Promotion.js","hooks/useRedirect.js","pages/login/login.js","components/controls/Section.js","components/controls/DropdownField.js","components/controls/BigtextField.js","components/controls/InputField.js","components/controls/InputFieldAlt.js","components/controls/NameSelectEntry.js","components/controls/SerialNumber.js","components/controls/buildForm.js","components/popover-styles.js","components/Popover.js","static/lorem-ipsum.js","components/ProductCard.js","static/datatables-styles-alt.js","components/controls/select-products.js","hooks/useGetConsignmentStock.js","components/controls/ProductGrid.js","components/controls/FieldGroup.js","pages/create-order/ConfirmHighEnd.js","pages/create-order/ApproveOrder.js","pages/create-order/Authorisation.js","hooks/useCustomerInformation.js","pages/create-order/Success.js","pages/create-order/create-order.js","pages/login/set-customer.js","pages/profile/profile.js","static/datatables-styles.js","components/BaseDataTable.js","pages/view-authorisations/view-authorisations.js","hooks/useSetStopQuestions.js","pages/view-eqipment-on-hire/table-styling.js","pages/view-eqipment-on-hire/DisabledTextField.js","pages/view-eqipment-on-hire/TitleRow.js","pages/view-eqipment-on-hire/StopRental.js","pages/view-eqipment-on-hire/FromToTitleRow.js","hooks/useSetExchangeQuestions.js","pages/view-eqipment-on-hire/select-products.js","pages/view-eqipment-on-hire/InputButton.js","pages/view-eqipment-on-hire/ExchangeRental.js","hooks/useSetTransferQuestions.js","pages/view-eqipment-on-hire/TransferRental.js","pages/view-eqipment-on-hire/RentalDetails.js","hooks/usePopover.js","pages/view-eqipment-on-hire/Actions.js","pages/view-eqipment-on-hire/view-equipment-on-hire.js","pages/consignment-stock/Actions.js","pages/consignment-stock/consignment-stock.js","pages/rental-transfer-in/transfer-in.js","pages/rental-exchange-approve/exchange-approve.js","pages/rental-approve/approve-rental.js","pages/rental-stop/rental-stop.js","pages/rental-exchange/rental-exchange.js","pages/rental-transfer/rental-transfer.js","pages/invoice-approval/CostCentreInvoiceApproval.js","pages/invoice-approval/DivisionInvoiceApproval.js","pages/invoice-approval/FacilityInvoiceApproval.js","pages/invoice-approval/DistrictInvoiceApproval.js","components/Routing.js","index.js"],"names":["reportWebVitals","onPerfEntry","Function","then","_ref","getCLS","getFID","getFCP","getLCP","getTTFB","GlobalReducer","state","action","_payload$selectedShip","_payload$selectedShip2","payload","type","_objectSpread","credentials","headers","authenticated","user","selectedCustomer","selectedWard","no","selectedShipTo","shipToCode","customerDetail","loading","error","heading","message","JSON","stringify","success","loadConsignedStock","authorisationCount","consignmentProductsSelected","_objectWithoutProperties","loginPageLoaded","toApprove","selectedInvoiceLevel","selectedInvoiceNo","selectedInvoiceDistrict","selectedInvoiceFacility","selectedInvoiceDivision","selectedInvoiceWard","selectedInvoiceCostCentre","useWhyDidYouUpdate","name","props","previousProps","useRef","useEffect","current","allKeys","Object","keys","changesObj","forEach","key","from","to","length","console","log","useStyles","makeStyles","theme","dialogBody","padding","zIndex","minWidth","minHeight","paper","container","title","color","okButton","backgroundColor","width","cancelButton","actionItems","flexFlow","alignItems","actionItem","display","maxWidth","marginLeft","actionButtonWrap","actionCommentWrap","ConfirmationDialog","open","variant","description","showOkButton","okButtonText","showCancelButton","cancelButtonText","onSubmit","onCancel","onActionExchange","onActionTransfer","onActionStop","onActionCancel","dialogActions","classes","toLowerCase","renderDialogAction","actionname","_jsx","Button","className","onClick","children","buttontext","_jsxs","Dialog","aria-labelledby","aria-describedby","Alert","id","severity","AlertTitle","DialogContent","DialogContentText","DialogActions","map","index","Grid","item","xs","button","comment","autoFocus","initialState","host","window","location","protocol","LoadingIndicator","usePromiseTracker","promiseInProgress","style","height","position","top","left","justifyContent","Loader","api","axios","create","notInitialised","Context","React","createContext","Portal","_useReducer","useReducer","_useReducer2","_slicedToArray","dispatch","history","useHistory","_useState","useState","_useState2","confirmationOpen","setConfirmationOpen","_useState3","_useState4","confirmationTitle","setConfirmationTitle","_useState5","_useState6","confirmationVariant","setConfirmationVariant","_useState7","_useState8","setShowOkButton","_useState9","_useState10","setOkButtonText","_useState11","_useState12","okButtonAction","setOkButtonAction","_useState13","_useState14","setShowCancelButton","_useState15","_useState16","setCancelButtonText","_useState17","_useState18","cancelButtonAction","setCancelButtonAction","_useState19","_useState20","confirmationDescription","setConfirmationDescription","interceptors","request","use","manuallyIncrementPromiseCounter","response","_response$data$dialog","_response$data$dialog2","_response$data$dialog3","_response$data$dialog4","_response$data$dialog5","_response$data$dialog6","_response$data$dialog7","_response$data$dialog8","_response$data$dialog9","manuallyDecrementPromiseCounter","data","dialogMessage","actions","dialogType","status","parseInt","push","Promise","reject","Provider","value","replace","createMuiTheme","body","titleBar","formHeading","palette","background","default","primary","light","main","dark","secondary","badge","otherbutton","navigation","fontSize","letterSpacing","lineHeight","textTransform","textDecoration","fontWeight","itemActive","typography","h5","shape","borderRadius","MuiTab","disableRipple","mixins","toolbar","gradient","contrastText","header","overrides","_overrides","Mui","selected","acive","MuiDrawer","MuiButton","label","contained","boxShadow","containedPrimary","containedSecondary","root","cursor","MuiBadge","colorPrimary","MuiTabs","spacing","indicator","borderTopLeftRadius","borderTopRightRadius","common","white","_defineProperty","margin","breakpoints","up","MuiIconButton","MuiTooltip","tooltip","MuiDivider","MuiListItemText","fontWeightMedium","MuiListItemIcon","marginRight","MuiAvatar","MuiMenu","MuiMenuItem","paddingTop","paddingBottom","MuiSelect","MuiInputBase","input","MuiFormLabel","outlined","borderColor","shrink","filled","disabled","grey","notchedOutline","border","inputRoot","sizeSmall","colorSecondary","borderWidth","PortalTheme","ThemeProvider","AuthorisedRoute","permission","rest","_useContext","useContext","authorised","menuItemPermissions","includes","Route","render","iconButtonAvatar","LoginButton","IconButton","event","stopPropagation","Avatar","PersonOutlineSharpIcon","ProfileButton","_useContext2","fullName","concat","charAt","Profile","_useContext3","unit","customBadge","Notification","count","icon","Badge","badgeContent","max","FontAwesomeIcon","userProfileHeader","categoryHeader","userAvatar","categoryHeaderPrimary","itemCategory","firebase","itemActiveItem","itemPrimary","itemIcon","divider","marginTop","Navigator","_state$user","categories","Drawer","List","disablePadding","ListItem","clsx","ListItemIcon","faHome","ListItemText","Fragment","_ref2","childId","route","checkMenuItemPermissions","RouterLink","exact","activeClassName","Divider","memo","CurrentPage","x","apply","_toConsumableArray","filter","undefined","y","pathname","pageName","toUpperCase","library","add","faPencilAlt","faExclamationCircle","faRetweet","faSignOutAlt","faLock","faFileAlt","faWrench","faFolderOpen","lightColor","withStyles","menuButton","logo","phoneNumber","breadcrumb","onDrawerToggle","_Fragment","AppBar","elevation","Toolbar","Hidden","smUp","aria-label","MenuIcon","alt","src","Tooltip","NotificationsIcon","Copyright","Typography","align","Link","href","Date","getFullYear","bottom","right","wrapper","drawerStyle","drawer","flexShrink","app","flex","flexDirection","footer","mobileOpen","setMobileOpen","showError","setShowError","showSuccess","setShowSuccess","Boolean","handleDrawerToggle","handleCloseError","reason","handleCloseSuccess","CssBaseline","implementation","PaperProps","onClose","xsDown","Header","Snackbar","autoHideDuration","image","marginBottom","appbar","welcomeBar","welcomeBarLogo","backgroundImage","backgroundSize","backgroundRepeat","welcomeBarTop","borderBottom","welcomeTime","welcomePhoneNumber","paddingRight","welcomeBarNavigation","paddingLeft","welcomBarNavigationItem","loginButtonTop","Paper","square","moment","format","Banner","Card","CardMedia","LoginError","show","loginCard","loginButton","inputStyle","WebkitBoxShadow","passwordInput","WebkitTextSecurity","hintStyle","forgotPassword","Credentials","_jsx2","usernameElement","username","setUsername","password","setPassword","setError","setShow","setDisabled","matches","Collapse","in","timeout","collapsedHeight","TextField","InputProps","autoComplete","target","inputProps","placeholder","react","fullWidth","onChange","post","userName","result","invoiceApproval","Authorization","token","card","borderTop","cardContent","cardContainer","pictureContainer","textAlign","verticalAlign","picture","maxHeight","cardFooter","cardTitle","cardDescription","cardLink","learnMore","Promotion","promotion","CardContent","direction","component","uuid","shim","text","hyperLink","useRedirect","redirectToHome","redirectToCreateRentalOrder","redirectToApproval","approveTransactionType","redirectToViewAuthorisations","redirectToInvoiceApproval","content","welcome","loginRow","sideBanner","sideBannerContent","sideBannerIntro","sideBannerHeading","sideBannerContentText","sideBannerContentFineprint","phone","callIcon","infoTiles","middleBanner","bottomBanner","bannerHeading","bannerContent","bannerButton","pageFooter","pageFooterRows","pageFooterRow","pageFooterRow1","pageFooterLogoLeft","pageFooterLogoRight","pageFooterLogo","pageFooterPhoneNumber","pageFooterRow2","pageFooterRow3","pageFooterAddress","copyrightText","footerLoginLink","Login","_jsxs2","promotions","setPromotions","banners","setBanners","loggingIn","setLoggingIn","get","tiles","getAuthorisationCount","indexOf","catch","Carousel","indicatorIconButtonProps","activeIndicatorIconButtonProps","indicatorContainerProps","navButtonsAlwaysInvisible","banner","ScrollableAnchor","justify","section","Section","iconRight","noOp","FormControlLabel","control","labelPlacement","DropdownField","useFormContext","toplevelOnChange","passedValue","setValue","Controller","options","required","remainder","select","InputLabelProps","e","MenuItem","defaultValue","rules","BigtextField","maxlength","multiline","InputField","guid","min","minlength","model","onUpdate","InputFieldAlt","createFilterOptions","requiredBorder","defaultBorder","submitButton","NameSelectEntry","people","hideLabel","toggleOpen","handleClose","setDialogValue","surname","firstNames","dialogValue","Autocomplete","newValue","setTimeout","inputValue","substring","filterOptions","params","filtered","getOptionLabel","option","_option$name","selectOnFocus","clearOnBlur","handleHomeEndKeys","renderOption","freeSolo","renderInput","preventDefault","DialogTitle","serialNoPosition","SerialNumber","field","product","serialNumbers","disable","visible","setVisible","setSerialNumber","serialNo","Switch","checked","prev","REQBYDATE","iREQBYDATE","REQBYTIME","iREQBYTIME","MINREQBYDATE","serialNumber","storeCode","find","REQSTARTDATE","getOptionSelected","focused","extractControl","fieldType","editable","size","caption","mandatory","fieldID","fieldValueAsText","disabledBorder","dateValue","date","getTime","getTimezoneOffset","toISOString","split","rows","optionString","buildDeliveryForm","communityDelivery","postCodes","shipTo","_shipTo$name","_shipTo$address","_shipTo$address2","_shipTo$city","_shipTo$postCode","address","address2","city","postCode","usePopoverStyles","overflow","backDrop","backdropFilter","alignContent","contentTall","usePopoverStylesWithNoWidth","usePopoverStylesWithScrollbar","titleLogo","Popover","onExited","onEscapeKeyDown","showTitle","showScrollbar","tall","ignoreWidth","styleWithoutScrollbars","styleWithScrollbars","styleWithNoWidth","localClasses","PopoverMUI","anchorOrigin","vertical","horizontal","transformOrigin","transitionDuration","disableBackdropClick","disableEscapeKeyDown","BackdropProps","loremIpsum","actionArea","transition","transform","modelDetails","mask","opacity","cardAction","modelName","modelShortDescription","buttonRow","selectProductButton","learnMoreButton","ProductCard","setDescription","setModel","setLorem","MODEL","MODELDESCRIPTION","SHORTDESCRIPTION","onMouseOver","handleHover","CardActions","noWrap","persist","defaultPrevented","nativeEvent","datatableStylesAlt","subHeader","headRow","headCells","cells","selectProductModal","categoryRow","categoryList","link","linkActive","activeCategory","inactiveCategory","products","overflowY","dividerColumn","productItem","list","buttonContainer","confirmButton","deleteIcon","categoryDivider","previousProducts","reducer","splice","SelectProducts","columns","models","localState","localDispatch","setOpen","dialogOpen","setDialogOpen","setCells","setActiveCategory","loaded","setLoaded","buildCells","onProductSelected","utcOffset","Math","ceil","line","time","startDate","REQSTARTTIME","startTime","resetProducts","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","next","handleDialogClickOpen","stop","arguments","closeSelectProducts","_ref4","_callee2","_context2","selector","compact","cell","row","highEnd","sortable","faTimesCircle","removeProduct","DeleteForeverTwoTone","category","Container","LinkTwoTone","DataTable","persistTableHead","noHeader","striped","customStyles","useGetConsignmentStock","stock","setStock","table","subTitleBar","ProductGrid","transfer","productData","setProductData","openProductSelection","setOpenProductSelection","setProductsSelected","buildColumns","getProducts","all","transformConsignedStock","abrupt","sent","_x2","_x","_callee3","_context3","_ref5","_x3","_x4","handleProductUpdated","found","currentTarget","findIndex","attributes","selectedProducts","TableContainer","Table","stickyHeader","TableHead","TableRow","TableCell","colSpan","TableBody","Chip","buildProductRow","FieldGroup","fields","staff","contact","requestor","onContactChanged","onRequestorChanged","CardHeader","columnCaption","titleTypographyProps","groupHeight","emptyFields","Array","v","i","onContactChange","onRequestorChange","contacts","requestors","buildRentalForm","padFields","ConfirmHighEnd","setStatus","ApproveOrder","authorisers","setPeople","scopedRequestor","setRequestor","scopedContact","setContact","approver","setApprover","approverPassword","setApproverPassword","CONTACTPERSON","REQNURSE","APPROVER","person","portalUserEmail","Authorisation","_state$customerDetail","rentalAuthorizationType","wards","preselectedWard","useCustomerInformation","local","dispatchLocal","CUSTOMER","WARD","COSTCENTRE","values","setValues","customers","setCustomers","costCentres","setCostCentres","costCentreRequired","setCostCentreRequired","detail","customer","onCustomerSelected","onWardSelected","ward","costCentreMandatory","defaultCostCentre","costCentre","costCentreCode","Success","exitState","setExitState","delivery","borderLeft","borderRight","deliveryBar","deliveryOpening","collapse","form","CreateOrder","_useCustomerInformati","_useCustomerInformati2","information","onCostCentreSelected","setCommunityDelivery","groups","row1","setRow1","row2","setRow2","setDelivery","setComment","contactDetails","setContactDetails","gridColumns","setGridColumns","setModels","setPostCodes","productsOrdered","setProductsOrdered","_useState21","_useState22","showAddress","setShowAddress","_useState23","_useState24","shippingAddress","setShippingAddress","_useState25","_useState26","showApproval","setShowApproval","_useState27","_useState28","autoApproval","setAutoApproval","_useState29","_useState30","setStaff","_useState31","_useState32","_useState33","_useState34","_useState35","_useState36","formMethods","useForm","handleSubmit","reset","setDefaults","getFormData","wardPermissions","permissions","customerNumber","permissionSet","singleWard","entries","row1Height","groupsRow1","row2Height","groupsRow2","shortDescription","transformModels","postCode1","county","grid","onApproval","_state$selectedShipTo","_state$selectedShipTo2","_people$APPROVER","requestApproved","_form","USEREMAIL","SHIPTOCODE","CONTACTFIRSTNAMES","CONTACTSURNAME","REQNURSEFIRSTNAMES","REQNURSESURNAME","UTCOFFSET","PRODUCTS","SERIALNO","APPROVED","errorMessage","FormProvider","group","updatedProducts","ExpandMoreTwoTone","SetCustomer","onExit","setSelectedCustomer","setSelectedShipTo","Checkbox","shippingAddresses","handleCustomerSelected","handleShipToSelected","setWards","assignedWards","Slide","datatableStyles","dataTable","BaseDataTable","onRowsSelected","onRowClicked","onRowDoubleClicked","sortIcon","ArrowDownwardTwoTone","dense","pointerOnHover","highlightOnHover","enablePagination","selectableRows","selectableRowsNoSelectAll","selectableRowsHighlight","onSelectedRowsChange","ViewAuthorisations","setRows","handleRowClicked","deliveryAddress","deliveryCity","customerNo","initial","cleaned","pickup","biohazard","notes","useSetStopQuestions","details","setDetails","completed","setCompleted","question","StyledTableHeader","StyledTableCell","LabelCell","StyledTableRow","width2","width4","DisabledTextField","fourColumn","TitleRow","tableRow","cancel","defaultRadio","tableHeader","tableTitleRow","StopRental","currentRow","setCurrentRow","waitingRows","setWaitingRows","_useSetStopQuestions","_useSetStopQuestions2","onAnswered","approved","declined","showConfirmation","setShowConfirmation","_rows","_toArray","firstRow","remainingRows","slice","bed","patientName","patientNo","RadioGroup","Radio","colspan","equipmentDetails","RENTALORDERNO","rentalOrderNo","RENTALLINENO","rentalLineNo","BIOHAZARD","NOTES","Customer","_waitingRows","_waitingRows2","FromToTitleRow","dateOfExchange","now","newModel","newSerialNo","useSetExchangeQuestions","setProduct","iconButton","InputButton","join","InputBase","SearchIcon","defaultRequiredBorder","styledRow","tableCellStyle180","tableCellStyle300","ExchangeHeader","ExchangeRow","patient","ExchangeRental","_useSetExchangeQuesti","_useSetExchangeQuesti2","setConsignedProduct","_firstRow$reqNurse","reqNurse","advancePendingToCurrent","REASON","NEWMODEL","NEWSERIALNO","EXCHANGEDATE","onOk","_ref6","MuiPickersUtilsProvider","utils","DateFNSUtils","KeyboardDatePicker","disableToolbar","autoOk","maxDate","days","inputVariant","dateOfTransfer","currentWard","newWard","newBed","newPatientFirstName","newPatientSurname","newPatientNo","buttonSpacing","cancelSpacing","requiredSelectBorder","defaultSelectBorder","wardsUrl","TransferRow","patientFirstName","patientSurname","TransferRental","_useSetTransferQuesti","useSetTransferQuestions","_useSetTransferQuesti2","defaultWard","daysSinceStart","differenceInCalendarDays","parse","tempWards","tableCellStyle","_ref8","datePicker","minDate","sub","minDateMessage","toDateString","radioGroup","NEWWARD","NEWBED","NEWPATIENTFIRSTNAME","NEWPATIENTSURNAME","NEWPATIENTNO","TRANSFERDATE","_ref7","float","RentalDetails","sizeOfBase64String","base64String","match","handleOkClicked","tableCellLabelStyle","tableCellValueStyle","customerName","deliveryAddress2","deliveryPostCode","deliveryCounty","deliveryCountryRegionCode","deliveryBy","deliveryByName","creationDateTime","deliveryDateTime","stoppedDateTime","deliveryEMail","deliveryPhoneNo","rentalOrderLineNo","shipToName","signedBy","signaturePOD","signatureCell","usePopover","Actions","_usePopover","_usePopover2","showStopRental","openStopRental","closeStopRental","_usePopover3","_usePopover4","showExchangeRental","openExchangeRental","closeExchangeRental","_usePopover5","_usePopover6","showTransferRental","openTransferRental","closeTransferRental","_usePopover7","_usePopover8","showRentalDetails","openRentalDetails","closeRentalDetails","rowsSelected","reload","close","getDetailsPrint","trackPromise","openDetailsPrint","base64","binary_string","atob","len","bytes","Uint8Array","charCodeAt","fileData","buffer","blob","Blob","fileURL","URL","createObjectURL","flexWrap","url","ViewEquipmentOnHire","rentalCancelled","exchangeCancelled","transferCancelled","approvalCancelled","genericCancelled","selectedRows","setSelectedRows","selectedRow","setSelectedRow","toggleClearRows","setToggleClearRows","rentalLines","delayGet","sortFunction","customColumnSort","canCancelRow","handleCancelButtonClicked","rowA","rowB","datePartsA","datePartsB","trim","dates","compare","convert","d","constructor","Number","String","year","month","NaN","a","b","isFinite","this","valueOf","inRange","start","end","handleExchangeCancel","handleTransferCancel","handleApprovalCancel","handleRentalOrderCancel","handleGenericCancel","delete","hasSelection","updatedRows","newRow","clearSelectedRows","selectableRowDisabled","conditionalRowStyles","when","fill","ConsignmentStock","transformStock","allProducts","_i","_Object$entries","_Object$entries$_i","TransferIn","_customerInformation$","_customerInformation$2","_customerInformation$3","_customerInformation$4","_customerInformation$5","_customerInformation$6","customerInformation","setCustomerInformation","today","hour","minute","second","getExistingRental","requiredByDate","requiredByTime","put","ApproveExchange","exchange","ApproveRental","approveRental","RentalStop","showNotFound","setShowNotFound","setDialogActions","setOptions","handleActionButtonCancel","_data$dialogMessage$t","_data$dialogMessage$d","_data$dialogMessage$o","_data$dialogMessage$o2","_data$dialogMessage$o3","_data$dialogMessage$c","_data$dialogMessage$c2","_data$dialogMessage$c3","_data$dialogMessage$m","RentalExchange","RentalTransfer","queryForm","queryFormContent","queryFormFields","saveButton","CostCentreInvoiceApproval","invoices","setInvoices","queryRow","setQueryRow","resolved","setResolved","setMessage","setHistory","verifyOpen","setVerifyOpen","verifyError","popupMode","setPopupMode","browserHistory","invoiceNo","overDue","verified","onVerify","canVerify","lineColumns","Warning","openQueries","ContactSupportTwoTone","center","onViewHistory","onCreateQuery","grow","ExpandableComponent","ResetViewButton","onResetView","NavigateUpButton","onNavigateUp","isDrillDown","defaultPayload","browseUpPayload","refreshData","invoiceLineNo","level","district","facility","division","costcentre","onQueryCancelled","expandableRows","expandableRowDisabled","expandableRowsComponent","expandableRowExpanded","expanded","FormLabel","res","config","DivisionInvoiceApproval","StyledCell","getCssClass","unverified","onDrillDown","styled","div","_templateObject","_taggedTemplateLiteral","rowStatus","outlineColor","borderBottomColor","showAsWarning","showAsDanger","showAsOk","unverifiedAmount","isPastDue","verifiedAmount","isVerified","selectedInvoiceLineNo","districtCode","facilityCode","divisionCode","code","subCode","FacilityInvoiceApproval","divisionHeading","setDivisionHeading","wardCode","DistrictInvoiceApproval","ContentRoutes","useLocation","path","Paperbase","classname","ReactDOM","StrictMode","Router","document","getElementById"],"mappings":"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","file":"static/js/main.f9190bbf.chunk.js","sourcesContent":["const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","const GlobalReducer = (state, action) => {\r\n let payload = action.payload;\r\n\r\n switch (action.type) {\r\n case \"LOGGED-IN\":\r\n return {\r\n ...state,\r\n credentials: {\r\n ...state.credentials,\r\n headers: {\r\n ...state.credentials.headers,\r\n ...payload.headers,\r\n \"acl-customer\": \"\",\r\n \"acl-shipto\": \"\",\r\n \"acl-ward\": null,\r\n }\r\n },\r\n authenticated: true,\r\n user: payload.user,\r\n selectedCustomer: \"\",\r\n selectedWard: \"\",\r\n }\r\n\r\n case \"LOGGED-OUT\":\r\n return {\r\n ...state,\r\n credentials: {\r\n ...state.credentials,\r\n headers: {}\r\n },\r\n authenticated: false,\r\n user: null\r\n }\r\n\r\n case \"PROFILE-CUSTOMER-SELECTED\":\r\n return {\r\n ...state,\r\n credentials: {\r\n ...state.credentials,\r\n headers: {\r\n ...state.credentials.headers,\r\n \"acl-customer\": payload.selectedCustomer.no,\r\n \"acl-shipto\": payload.selectedShipTo?.shipToCode ?? \"\",\r\n \"acl-ward\": null,\r\n },\r\n },\r\n ...payload\r\n }\r\n\r\n case \"CUSTOMER-SELECTED\":\r\n return {\r\n ...state,\r\n credentials: {\r\n ...state.credentials,\r\n headers: {\r\n ...state.credentials.headers,\r\n \"acl-customer\": payload.selectedCustomer,\r\n // \"acl-shipto\": payload.selectedShipTo ?? \"\"\r\n },\r\n },\r\n ...payload\r\n }\r\n\r\n case \"WARD-SELECTED\":\r\n return {\r\n ...state,\r\n credentials: {\r\n ...state.credentials,\r\n headers: {\r\n ...state.credentials.headers,\r\n \"acl-ward\": payload.selectedWard\r\n },\r\n },\r\n ...payload\r\n };\r\n\r\n case \"CLEAR-CUSTOMER-SELECTION\":\r\n return {\r\n ...state,\r\n credentials: {\r\n ...state.credentials,\r\n headers: {\r\n ...state.credentials.headers,\r\n \"acl-customer\": \"\",\r\n \"acl-ward\": \"\",\r\n }\r\n },\r\n selectedCustomer: null,\r\n selectedWard: null,\r\n customerDetail: null,\r\n }\r\n\r\n case \"API-CALLED\":\r\n return {\r\n ...state,\r\n loading: true,\r\n }\r\n\r\n case \"API-SUCCESS\":\r\n return {\r\n ...state,\r\n loading: false\r\n }\r\n\r\n case \"API-ERROR\":\r\n return {\r\n ...state,\r\n loading: false,\r\n error: {\r\n heading: \"Error contacting the API\",\r\n message: JSON.stringify(payload)\r\n }\r\n }\r\n\r\n case \"POST-SUCCESS-MESSAGE\":\r\n return {\r\n ...state,\r\n success: payload\r\n }\r\n\r\n case \"SHOW-ERROR\":\r\n return {\r\n ...state,\r\n error: {\r\n ...payload\r\n }\r\n }\r\n\r\n case \"CLEAR-ALERTS\":\r\n return {\r\n ...state,\r\n error: null,\r\n success: null\r\n }\r\n\r\n case \"LOAD-CONSIGNED-STOCK\":\r\n return {\r\n ...state,\r\n loadConsignedStock: true\r\n }\r\n\r\n case \"UPDATE-AUTHORISATION-COUNT\":\r\n return {\r\n ...state,\r\n authorisationCount: payload.authorisationCount\r\n }\r\n\r\n case \"LOADED-CONSIGNED-STOCK\":\r\n return {\r\n ...state,\r\n loadConsignedStock: false\r\n }\r\n\r\n case \"CONSIGNMENT-PRODUCTS-SELECTED\":\r\n return {\r\n ...state,\r\n consignmentProductsSelected: {\r\n ...payload\r\n },\r\n }\r\n\r\n case \"CLEAR-CONSIGNMENT-PRODUCTS\":\r\n let { consignmentProductsSelected, ...rest } = state;\r\n\r\n return rest;\r\n\r\n case \"LOGINPAGE-LOADED\":\r\n return {\r\n ...state,\r\n loginPageLoaded: true,\r\n }\r\n\r\n case \"APPROVE-RENTAL\":\r\n return {\r\n ...state,\r\n toApprove: payload,\r\n }\r\n\r\n case 'RENTAL-APPROVED':\r\n let { toApprove, ...remainingState } = state;\r\n return remainingState;\r\n\r\n case 'INVOICESUMMARY-LINE-SELECTED':\r\n return {\r\n ...state,\r\n user: {\r\n ...state.user,\r\n selectedInvoiceLevel: payload.selectedInvoiceLevel,\r\n selectedInvoiceNo: payload.selectedInvoiceNo,\r\n selectedInvoiceDistrict: payload.selectedInvoiceDistrict,\r\n selectedInvoiceFacility: payload.selectedInvoiceFacility,\r\n selectedInvoiceDivision: payload.selectedInvoiceDivision,\r\n selectedInvoiceWard: payload.selectedInvoiceWard,\r\n selectedInvoiceCostCentre: payload.selectedInvoiceCostCentre\r\n }\r\n }\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport default GlobalReducer;","import { useEffect, useRef } from \"react\";\r\n\r\nexport default function useWhyDidYouUpdate(name, props) {\r\n // Get a mutable ref object where we can store props ...\r\n // ... for comparison next time this hook runs.\r\n const previousProps = useRef();\r\n\r\n useEffect(() => {\r\n if (previousProps.current) {\r\n // Get all keys from previous and current props\r\n const allKeys = Object.keys({ ...previousProps.current, ...props });\r\n // Use this object to keep track of changed props\r\n const changesObj = {};\r\n // Iterate through keys\r\n allKeys.forEach(key => {\r\n // If previous is different from current\r\n if (previousProps.current[key] !== props[key]) {\r\n // Add to changesObj\r\n changesObj[key] = {\r\n from: previousProps.current[key],\r\n to: props[key]\r\n };\r\n }\r\n });\r\n\r\n // If changesObj not empty then output to console\r\n if (Object.keys(changesObj).length) {\r\n console.log('[why-did-you-update]', name, changesObj);\r\n }\r\n }\r\n\r\n // Finally update previousProps with current props for next hook call\r\n previousProps.current = props;\r\n });\r\n}\r\n","import {\r\n Button,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogContentText,\r\n DialogActions,\r\n makeStyles,\r\n Grid,\r\n} from \"@material-ui/core\";\r\nimport { Alert, AlertTitle } from '@material-ui/lab';\r\nimport uuid from \"uuid-random\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n dialogBody: {\r\n padding: '0',\r\n zIndex: 10001,\r\n minWidth: '500px',\r\n minHeight: '200px',\r\n },\r\n paper: { minWidth: \"500px\", minHeight: '250px' },\r\n container: { zIndex: 100000 },\r\n title: {\r\n color: '#016895',\r\n },\r\n okButton: {\r\n backgroundColor: '#016895',\r\n color: '#FFFFFF',\r\n width: '100%',\r\n minWidth: '100px',\r\n '&:hover': {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n cancelButton: {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n width: '100%',\r\n '&:hover': {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n actionItems: {\r\n flexFlow: 'column',\r\n alignItems: 'flex-start',\r\n },\r\n actionItem: {\r\n display: 'flex',\r\n flexFlow: 'row',\r\n maxWidth: '100%',\r\n marginLeft: '0px !important',\r\n },\r\n actionButtonWrap: {\r\n padding: '10px',\r\n },\r\n actionCommentWrap: {\r\n padding: '10px',\r\n },\r\n\r\n}));\r\nexport const ConfirmationDialog = ({\r\n open,\r\n title,\r\n variant,\r\n description,\r\n showOkButton,\r\n okButtonText,\r\n showCancelButton,\r\n cancelButtonText,\r\n onSubmit,\r\n onCancel,\r\n onActionExchange,\r\n onActionTransfer,\r\n onActionStop,\r\n onActionCancel,\r\n dialogActions\r\n}) => {\r\n const classes = useStyles();\r\n if (variant.toLowerCase() !== \"error\" && variant.toLowerCase() !== \"warning\" && variant.toLowerCase() !== \"info\" && variant.toLowerCase() !== \"success\") {\r\n variant = 'info';\r\n }\r\n const renderDialogAction = (action) => {\r\n switch (action.actionname) {\r\n case 'Exchange':\r\n return ();\r\n case 'Transfer':\r\n return ();\r\n case 'Stop':\r\n return ();\r\n case 'Cancel':\r\n return ();\r\n default:\r\n return '';\r\n }\r\n }\r\n return (\r\n \r\n\r\n {title}\r\n \r\n {description}\r\n {dialogActions && dialogActions.length > 0 &&\r\n \r\n {dialogActions.map((action, index) => (\r\n \r\n
{action.button === 'Yes' && renderDialogAction(action)}
\r\n
{action.comment}
\r\n
\r\n ))}\r\n
\r\n }\r\n
\r\n \r\n {showOkButton &&\r\n \r\n \r\n \r\n }\r\n {showCancelButton &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n );\r\n};","import React, { useReducer, useEffect, useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport { manuallyIncrementPromiseCounter, manuallyDecrementPromiseCounter } from 'react-promise-tracker';\r\nimport GlobalReducer from \"./GlobalReducer\";\r\nimport useWhyDidYouUpdate from \"./hooks/useWhyDidYouUpdate\";\r\nimport { usePromiseTracker } from \"react-promise-tracker\";\r\nimport Loader from 'react-loader-spinner';\r\nimport { ConfirmationDialog } from './components/controls/ConfirmationDialog';\r\n\r\nconst initialState = {\r\n authenticated: false,\r\n credentials: {\r\n headers: {}\r\n },\r\n selectedCustomer: {},\r\n error: null,\r\n success: null,\r\n host: window.location.protocol + \"//\" + window.location.host,\r\n}\r\n\r\nconst LoadingIndicator = props => {\r\n const { promiseInProgress } = usePromiseTracker();\r\n return (\r\n promiseInProgress &&\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport const api = axios.create();\r\n\r\nlet notInitialised = true;\r\n\r\nconst Portal = (props) => {\r\n useWhyDidYouUpdate(\"Portal\", props);\r\n\r\n const { children } = props;\r\n const [state, dispatch] = useReducer(GlobalReducer, initialState);\r\n const history = useHistory();\r\n const [confirmationOpen, setConfirmationOpen] = useState(false);\r\n const [confirmationTitle, setConfirmationTitle] = useState('');\r\n const [confirmationVariant, setConfirmationVariant] = useState('');\r\n const [showOkButton, setShowOkButton] = useState(true);\r\n const [okButtonText, setOkButtonText] = useState('');\r\n const [okButtonAction, setOkButtonAction] = useState('');\r\n const [showCancelButton, setShowCancelButton] = useState(false);\r\n const [cancelButtonText, setCancelButtonText] = useState('');\r\n const [cancelButtonAction, setCancelButtonAction] = useState('');\r\n const [confirmationDescription, setConfirmationDescription] = useState('');\r\n\r\n const handleOkClick = () => {\r\n if (okButtonAction.length > 0) {\r\n setConfirmationOpen(false);\r\n history.replace(okButtonAction);\r\n } else {\r\n setConfirmationOpen(false);\r\n }\r\n }\r\n const handleCancelClick = () => {\r\n if (cancelButtonAction.length > 0) {\r\n setConfirmationOpen(false);\r\n history.replace(cancelButtonAction);\r\n } else {\r\n setConfirmationOpen(false);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (notInitialised) { \r\n api.interceptors.request.use(\r\n request => {\r\n dispatch({ type: \"API-CALLED\", payload: request });\r\n manuallyIncrementPromiseCounter();\r\n return request;\r\n }\r\n );\r\n api.interceptors.response.use(\r\n response => {\r\n dispatch({ type: \"API-SUCCESS\", payload: response });\r\n manuallyDecrementPromiseCounter();\r\n if (response.data.dialogMessage && response.data.dialogMessage.message.length > 0 && !response.data.dialogMessage.actions) {\r\n setConfirmationTitle(response.data.dialogMessage.title ?? response.data.dialogMessage.title);\r\n setConfirmationVariant(response.data.dialogMessage.dialogType ?? response.data.dialogMessage.dialogType.toLowerCase());\r\n setShowOkButton(response.data.dialogMessage.okButtonText ?? response.data.dialogMessage.okButtonText.length > 0);\r\n setOkButtonText(response.data.dialogMessage.okButtonText ?? response.data.dialogMessage.okButtonText);\r\n setOkButtonAction(response.data.dialogMessage.okButtonAction ?? response.data.dialogMessage.okButtonAction);\r\n setShowCancelButton(response.data.dialogMessage.cancelButtonText ?? response.data.dialogMessage.cancelButtonText.length > 0);\r\n setCancelButtonText(response.data.dialogMessage.cancelButtonText ?? response.data.dialogMessage.cancelButtonText);\r\n setCancelButtonAction(response.data.dialogMessage.cancelButtonAction ?? response.data.dialogMessage.cancelButtonAction);\r\n setConfirmationDescription(response.data.dialogMessage.message ?? response.data.dialogMessage.message);\r\n setConfirmationOpen(true); \r\n }\r\n return response;\r\n },\r\n error => {\r\n const { status } = error.response;\r\n\r\n switch (parseInt(status)) {\r\n case 401:\r\n dispatch({ type: \"LOGGED-OUT\" });\r\n history.push(\"/\");\r\n break;\r\n default:\r\n dispatch({ type: \"API-ERROR\", payload: error });\r\n break;\r\n }\r\n manuallyDecrementPromiseCounter();\r\n return Promise.reject(error);\r\n }\r\n )\r\n \r\n notInitialised = false;\r\n }\r\n }, [history])\r\n\r\n return (\r\n \r\n {children}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport const Context = React.createContext(initialState);\r\n\r\nexport default Portal;","import { createMuiTheme, ThemeProvider } from '@material-ui/core/styles';\r\n\r\nlet theme = createMuiTheme({\r\n body: {\r\n backgroundColor: \"#FFFFFF\",\r\n },\r\n titleBar: {\r\n backgroundColor: \"#B4D7E8\",\r\n color: \"#212F41\",\r\n },\r\n formHeading: {\r\n color: \"#212F41\",\r\n },\r\n palette: {\r\n background: {\r\n default: '#FFFFFF'\r\n },\r\n primary: {\r\n light: '#26A9E1',\r\n main: '#016895',\r\n dark: '#4E6E98',\r\n },\r\n secondary: {\r\n light: '#DDEAF0',\r\n main: '#67A4C0',\r\n dark: '#418DAF',\r\n badge: '#f44336',\r\n },\r\n otherbutton: {\r\n main: '#26A9E1',\r\n },\r\n navigation: {\r\n item: {\r\n color: '#FFFFFF',\r\n fontSize: '10pt',\r\n letterSpacing: 0.5,\r\n lineHeight: \"2rem\",\r\n textTransform: 'none',\r\n '&:hover': {\r\n color: '#26A9E1',\r\n },\r\n textDecoration: 'none',\r\n fontWeight: '500',\r\n },\r\n itemActive: {\r\n color: '#26A9E1',\r\n fontSize: '10pt',\r\n letterSpacing: 0.5,\r\n lineHeight: \"2rem\",\r\n textTransform: 'none',\r\n fontWeight: '500',\r\n },\r\n heading: {\r\n color: '#A2A2AE',\r\n fontSize: '11pt',\r\n letterSpacing: 0.5,\r\n lineHeight: \"1rem\",\r\n textTransform: 'uppercase',\r\n }\r\n }\r\n },\r\n typography: {\r\n h5: {\r\n // fontWeight: 500,\r\n fontSize: \"1.5rem\",\r\n letterSpacing: 0.5,\r\n lineHeight: \"3rem\"\r\n },\r\n },\r\n shape: {\r\n borderRadius: 0,\r\n },\r\n props: {\r\n MuiTab: {\r\n disableRipple: true,\r\n },\r\n },\r\n mixins: {\r\n toolbar: {\r\n minHeight: 48,\r\n },\r\n gradient: {\r\n background: \"#4FA1C9\",\r\n // background: \"linear-gradient(90deg, rgba(0,109,179,.7) 0%, rgba(0,124,229,.8) 6%, rgba(0,140,229,.9) 18%, rgba(0,155,229,1) 100%)\",\r\n }\r\n },\r\n});\r\n\r\ntheme = {\r\n ...theme,\r\n title: {\r\n ...theme.mixins.gradient,\r\n color: theme.palette.primary.contrastText,\r\n },\r\n header: {\r\n ...theme.mixins.gradient,\r\n backgroundColor: '#016895',\r\n },\r\n overrides: {\r\n Mui: {\r\n selected: {\r\n backgroundColor: \"red\"\r\n },\r\n acive: {}\r\n },\r\n MuiDrawer: {\r\n paper: {\r\n backgroundColor: '#505261',\r\n },\r\n },\r\n MuiButton: {\r\n label: {\r\n textTransform: 'none',\r\n },\r\n contained: {\r\n boxShadow: 'none',\r\n '&:active': {\r\n boxShadow: 'none',\r\n },\r\n \r\n },\r\n containedPrimary: {\r\n '&:hover': {\r\n backgroundColor: '#26A9E1',\r\n },\r\n },\r\n containedSecondary: {\r\n '&:hover': {\r\n backgroundColor: '#016895',\r\n },\r\n },\r\n root: {\r\n backgroundColor: '#016895',\r\n color: '#FFFFFF',\r\n cursor: 'pointer',\r\n '& Mui-disabled': {\r\n color: 'rgba(0, 0, 0, 0.26)',\r\n boxShadow: 'none',\r\n backgroundColor: 'rgba(0, 0, 0, 0.12)',\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.12)',\r\n color: 'rgba(0, 0, 0, 0.26)',\r\n }\r\n },\r\n '&:hover': {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n },\r\n MuiBadge: {\r\n colorPrimary: {\r\n color: '#fff',\r\n backgroundColor: '#EB0014',\r\n },\r\n },\r\n MuiTabs: {\r\n root: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n indicator: {\r\n height: 3,\r\n borderTopLeftRadius: 3,\r\n borderTopRightRadius: 3,\r\n backgroundColor: theme.palette.common.white,\r\n },\r\n },\r\n MuiTab: {\r\n root: {\r\n textTransform: 'none',\r\n margin: '0 16px',\r\n minWidth: 0,\r\n padding: 0,\r\n [theme.breakpoints.up('md')]: {\r\n padding: 0,\r\n minWidth: 0,\r\n },\r\n },\r\n },\r\n MuiIconButton: {\r\n root: {\r\n padding: theme.spacing(1),\r\n },\r\n },\r\n MuiTooltip: {\r\n tooltip: {\r\n borderRadius: 4,\r\n },\r\n },\r\n MuiDivider: {\r\n root: {\r\n backgroundColor: '#404854',\r\n },\r\n },\r\n MuiListItemText: {\r\n primary: {\r\n fontWeight: theme.typography.fontWeightMedium,\r\n },\r\n },\r\n MuiListItemIcon: {\r\n root: {\r\n color: 'inherit',\r\n marginRight: 0,\r\n '& svg': {\r\n fontSize: 20,\r\n },\r\n },\r\n },\r\n MuiAvatar: {\r\n root: {\r\n width: 36,\r\n height: 36,\r\n },\r\n },\r\n MuiMenu: {\r\n paper: {\r\n backgroundColor: '#016895',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n MuiMenuItem: {\r\n root: {\r\n paddingTop: 1,\r\n paddingBottom: 1,\r\n fontSize: \"10pt\",\r\n color: theme.palette.common.white,\r\n '&:hover': {\r\n backgroundColor: '#26A9E1 !important',\r\n },\r\n '&:focus': {\r\n backgroundColor: '#26A9E1',\r\n '& .MuiListItemIcon-root, & .MuiListItemText-primary': { \r\n color: theme.palette.common.white,\r\n },\r\n },\r\n '&Mui': {\r\n '&selected': {\r\n backgroundColor: 'rgb(0, 0, 0, 0.08)',\r\n '&:hover': {\r\n backgroundColor: '#26A9E1',\r\n },\r\n },\r\n \r\n },\r\n }\r\n },\r\n MuiSelect: {\r\n root: {\r\n fontSize: \"10pt\",\r\n },\r\n },\r\n MuiInputBase: {\r\n root: {\r\n lineHeight: \"0.85em\",\r\n background: \"#fff\",\r\n },\r\n input: {\r\n fontSize: \"10pt\",\r\n }\r\n },\r\n MuiFormLabel: {\r\n root: {\r\n lineHeight: \".85em\",\r\n },\r\n },\r\n MuiFormLabel: {\r\n root: {\r\n color: '#016895',\r\n },\r\n },\r\n MuiInputLabel: {\r\n outlined: {\r\n color: '#016895',\r\n borderColor: '#016895',\r\n },\r\n shrink: {\r\n color: '#016895',\r\n borderColor: '#016895',\r\n },\r\n filled: {\r\n color: '#016895',\r\n borderColor: '#016895',\r\n },\r\n },\r\n MuiOutlinedInput: {\r\n input: {\r\n paddingTop: \"10px\",\r\n paddingBottom: \"10px\",\r\n fontSize: \"10pt\",\r\n },\r\n disabled: {\r\n backgroundColor: theme.palette.grey[50]\r\n },\r\n notchedOutline: {\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n borderColor: \"rgba(1, 104, 149, .5)\",\r\n }\r\n },\r\n MuiContainer: {\r\n root: {\r\n display: \"flex\"\r\n }\r\n },\r\n Mui: {\r\n disabled: {\r\n '& MuiOutlinedInput-notchedOutline': {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n },\r\n },\r\n\r\n MuiCardActions: {\r\n root: {\r\n background: theme.palette.grey[200]\r\n }\r\n },\r\n MuiCardContent: {\r\n root: {\r\n \"&:last-child\": {\r\n paddingBottom: \"16px\"\r\n }\r\n }\r\n },\r\n MuiAutocomplete: {\r\n inputRoot: {\r\n \"&[class*='MuiOutlinedInput-root']\": {\r\n paddingBottom: 1,\r\n paddingTop: 0,\r\n }\r\n }\r\n },\r\n MuiTableCell: {\r\n sizeSmall: {\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n fontSize: \"10pt\"\r\n }\r\n },\r\n MuiRadio:{\r\n colorSecondary: {\r\n '&$checked': {\r\n color: 'green',\r\n },\r\n },\r\n },\r\n PrivateNotchedOutline: {\r\n root: {\r\n borderWidth: '0px',\r\n },\r\n },\r\n }\r\n};\r\n\r\nconst PortalTheme = ({ children }) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default PortalTheme;","import { useContext, useEffect } from \"react\";\r\nimport { Route, useHistory } from \"react-router-dom\";\r\n\r\nimport { Context } from \"../../Portal\";\r\n\r\nconst AuthorisedRoute = ({ children, permission, ...rest }) => {\r\n const [state] = useContext(Context);\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n if (!state.authenticated) {\r\n history.push(\"/login\");\r\n }\r\n }, [state.authenticated, history])\r\n\r\n let authorised = false;\r\n if (state.user) {\r\n if (permission) {\r\n authorised = state.user.menuItemPermissions.includes(permission);\r\n }\r\n else {\r\n authorised = true;\r\n }\r\n }\r\n\r\n if (!authorised) {\r\n return null;\r\n }\r\n\r\n return (\r\n children}\r\n />\r\n );\r\n}\r\n\r\nexport default AuthorisedRoute;","import { useContext, useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport Avatar from \"@material-ui/core/Avatar\";\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport PersonOutlineSharpIcon from '@material-ui/icons/PersonOutlineSharp';\r\n\r\nimport { Context } from \"../../Portal\";\r\n\r\nconst useStyles = makeStyles(() => ({\r\n iconButtonAvatar: {\r\n padding: '4px 2 4px 0',\r\n marginLeft: '-15px',\r\n },\r\n}));\r\n\r\nconst LoginButton = () => {\r\n const classes = useStyles();\r\n\r\n let history = useHistory();\r\n\r\n const redirectToLogin = (event) => {\r\n history.push(\"/login\");\r\n event.stopPropagation();\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst ProfileButton = ({ user }) => {\r\n const [state, dispatch] = useContext(Context);\r\n const classes = useStyles();\r\n\r\n useEffect(() => { }, [state.selectedCustomer])\r\n let history = useHistory();\r\n\r\n const { fullName } = user;\r\n\r\n const handleClick = (event) => {\r\n if (history.location.pathname !== \"/profile\") {\r\n history.push(\"/profile\");\r\n }\r\n event.stopPropagation();\r\n }\r\n\r\n return (\r\n \r\n \r\n {`${fullName.charAt(0)}`}\r\n \r\n \r\n );\r\n}\r\n\r\nconst Profile = (props) => {\r\n const [state] = useContext(Context);\r\n useEffect(() => { }, [state.authenticated]);\r\n\r\n let { user } = state;\r\n\r\n return state.authenticated ? : \r\n}\r\n\r\nexport default Profile;","import { makeStyles } from '@material-ui/core/styles';\r\nimport { Badge } from \"@material-ui/core\";\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n margin: {\r\n margin: theme.spacing.unit * 2\r\n },\r\n customBadge: {\r\n backgroundColor: \"#00AFD7\",\r\n color: \"white\"\r\n }\r\n}));\r\n\r\nconst Notification = ({ count, icon }) => {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Notification;","import React, { useContext, useEffect, useState } from 'react';\r\nimport { NavLink as RouterLink } from \"react-router-dom\";\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Divider, Drawer, List, ListItem, ListItemIcon, ListItemText, Typography } from '@material-ui/core';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport HomeIcon from '@material-ui/icons/Home';\r\nimport AnonAvatar from \"../../assets/avatar_anon.png\"; \r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faHome } from '@fortawesome/free-solid-svg-icons'\r\nimport Profile from \"./Profile\";\r\nimport { api } from '../../Portal';\r\nimport { Context } from '../../Portal';\r\nimport useWhyDidYouUpdate from '../../hooks/useWhyDidYouUpdate';\r\nimport Notification from '../controls/Notification';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n userProfileHeader: {\r\n paddingTop: theme.spacing(2),\r\n paddingBottom: theme.spacing(2),\r\n backgroundColor: '#383A46',\r\n color: '#FFFFFF',\r\n fontSize: '9pt',\r\n height: '51px',\r\n },\r\n categoryHeader: {\r\n paddingTop: theme.spacing(2),\r\n paddingBottom: theme.spacing(2),\r\n },\r\n userAvatar: {\r\n backgroundColor: '#FFFFFF',\r\n marginRight: theme.spacing(1),\r\n },\r\n categoryHeaderPrimary: theme.palette.navigation.heading,\r\n item: theme.palette.navigation.item,\r\n itemCategory: {\r\n boxShadow: '0 -1px 0 #404854 inset',\r\n paddingTop: theme.spacing(2),\r\n paddingBottom: theme.spacing(2),\r\n height: '30px',\r\n },\r\n firebase: {\r\n fontSize: 24,\r\n color: theme.palette.common.white,\r\n },\r\n itemActiveItem: theme.palette.navigation.itemActive,\r\n itemPrimary: {\r\n fontSize: 'inherit',\r\n },\r\n itemIcon: { \r\n minWidth: '40px',\r\n },\r\n divider: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\nfunction Navigator(props) {\r\n useWhyDidYouUpdate(\"Navigator\", props);\r\n\r\n const [state, dispatch] = useContext(Context);\r\n const classes = useStyles();\r\n const { categories } = props;\r\n\r\n useEffect(() => {\r\n }, [state.user, state.authenticated]);\r\n\r\n const checkMenuItemPermissions = (permission) => {\r\n if (!state.authenticated) {\r\n return false;\r\n }\r\n\r\n if (!permission) {\r\n return true;\r\n }\r\n\r\n return state.user.menuItemPermissions.includes(permission);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {state.user?.fullName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Project Overview\r\n \r\n \r\n {!state.authenticated ? null : categories.map(({ id, children }) => (\r\n \r\n \r\n \r\n {id}\r\n \r\n \r\n\r\n {children.map(({ id: childId, icon, type, route, permission }) => {\r\n if (!checkMenuItemPermissions(permission)) { \r\n return null;\r\n }\r\n var count = 0;\r\n if (type === 'authorizations') {\r\n count = state.authorisationCount;\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {childId}\r\n \r\n \r\n \r\n );\r\n })}\r\n\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default React.memo(Navigator);\r\n","export default __webpack_public_path__ + \"static/media/PEGASUS_PORTAL_LOGOS-02.65f66e04.png\";","import React from 'react';\r\nimport { Route } from 'react-router';\r\n\r\nexport default function CurrentPage({ navigation }) {\r\n return \r\n {({ location }) => {\r\n const children = [];\r\n navigation.forEach(x => children.push(...x.children));\r\n children.filter(x => x.children !== undefined).forEach(y => children.push(...y.children));\r\n const item = children.filter(x => x.route === location.pathname);\r\n const pageName = item && item.length > 0 ? item[0].id : '';\r\n return (\r\n
{pageName.toUpperCase()}
\r\n );\r\n }}\r\n
\r\n}\r\n","import { HotelTwoTone, MoveToInboxTwoTone, ReceiptTwoTone } from '@material-ui/icons';\r\nimport DnsRoundedIcon from '@material-ui/icons/DnsRounded';\r\nimport PermMediaOutlinedIcon from '@material-ui/icons/PhotoSizeSelectActual';\r\nimport PublicIcon from '@material-ui/icons/Public';\r\nimport SettingsEthernetIcon from '@material-ui/icons/SettingsEthernet';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faPencilAlt, faExclamationCircle, faRetweet, faSignOutAlt, faLock, faFileAlt, faWrench, faFolderOpen } from '@fortawesome/free-solid-svg-icons';\r\nimport { library } from '@fortawesome/fontawesome-svg-core'\r\n\r\nlibrary.add(faPencilAlt, faExclamationCircle, faRetweet, faSignOutAlt, faLock, faFileAlt, faWrench, faFolderOpen)\r\n\r\nconst navigation = [\r\n {\r\n id: 'Customer Service',\r\n children: [\r\n { id: 'Start a rental', icon: \"pencil-alt\", type: \"start\", route: \"/rental/start\", permission: \"Create Rental Order\" },\r\n { id: 'Stop a rental', icon: \"exclamation-circle\", type: \"stop\", route: \"/rental/stop\", permission: \"Stop Rental Order\" },\r\n { id: 'Transfers', icon: \"retweet\", type: \"transfer\", route: \"/rental/transfer\", permission: \"Transfer Equipment\" },\r\n { id: 'Exchanges', icon: \"sign-out-alt\", type: \"exchange\", route: \"/rental/exchange\", permission: \"Exchange Equipment\" },\r\n {\r\n id: 'View Authorisations',\r\n icon: \"lock\",\r\n type: \"authorizations\",\r\n route: \"/rental/authorisations\",\r\n permission: \"Authorize Rental Transaction\",\r\n children: [\r\n {\r\n id: \"Transfer In\",\r\n route: \"/rental/rental-transfer-in\",\r\n permission: \"Transfer Equipment\"\r\n },\r\n {\r\n id: \"Approve Exchange\",\r\n route: \"/rental/rental-exchange-approve\",\r\n permission: \"Exchange Equipment\"\r\n }\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n id: \"Equipment\",\r\n children: [\r\n { id: 'Consignment Stock', icon: \"wrench\", type: \"consignment\", route: \"/equipment/consignment\", permission: \"View Consignment Stock\" },\r\n { id: 'View equipment on hire', icon: \"folder-open\", type: \"hire\", route: \"/\" },\r\n { id: 'View Invoices', icon: \"file-alt\", type: \"invoices\", route: \"/invoices/approve\", permission: \"Authorize Rental Invoice\" },\r\n ],\r\n },\r\n ];\r\n\r\n export default navigation;","import React, { useContext } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Hidden from '@material-ui/core/Hidden';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Link from '@material-ui/core/Link';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport NotificationsIcon from '@material-ui/icons/Notifications';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport logo from \"../../assets/PEGASUS_PORTAL_LOGOS-02.png\";\r\nimport CurrentPage from \"../CurrentPage\"\r\nimport navigation from \"../../static/navigation\";\r\n\r\nimport { Context } from '../../Portal';\r\n\r\nconst lightColor = 'rgba(255, 255, 255, 0.7)';\r\n\r\nconst styles = (theme) => ({\r\n header: theme.header,\r\n menuButton: {\r\n marginLeft: -theme.spacing(1),\r\n },\r\n logo: {\r\n height: '45px',\r\n width: 'auto',\r\n },\r\n phoneNumber: {\r\n textDecoration: 'none',\r\n color: lightColor,\r\n fontSize: '20pt',\r\n '&:hover': {\r\n color: theme.palette.common.white,\r\n textDecoration: 'none',\r\n },\r\n },\r\n button: {\r\n borderColor: lightColor,\r\n },\r\n breadcrumb: {\r\n backgroundColor: '#26A9E1',\r\n padding: '6px 50px',\r\n fontSize: '11pt',\r\n width: '100%',\r\n },\r\n});\r\n\r\nfunction Header(props) {\r\n const [state, dispatch] = useContext(Context);\r\n \r\n const { classes, onDrawerToggle } = props;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \"Pegasus\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nHeader.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n onDrawerToggle: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default withStyles(styles)(Header);\r\n","import React, { useState, useContext, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport Hidden from '@material-ui/core/Hidden';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Link from '@material-ui/core/Link';\r\nimport { Alert, AlertTitle } from '@material-ui/lab';\r\n\r\nimport Navigator from './Navigator';\r\nimport Header from './Header';\r\nimport { CircularProgress, makeStyles, Snackbar } from '@material-ui/core';\r\nimport { Context } from '../../Portal';\r\nimport useWhyDidYouUpdate from '../../hooks/useWhyDidYouUpdate';\r\n\r\nfunction Copyright() {\r\n return (\r\n \r\n {'Copyright © '}\r\n \r\n Pegasus Health Group\r\n {' '}\r\n {new Date().getFullYear()}\r\n {'.'}\r\n \r\n );\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n alignItems: \"center\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n zIndex: 1,\r\n position: \"fixed\",\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n right: 0,\r\n backgroundColor: theme.body.backgroundColor, //\"rgba(255,255,255,0.7)\"\r\n },\r\n wrapper: {\r\n margin: \"auto\",\r\n position: 'relative',\r\n },\r\n}));\r\n\r\nconst Loading = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nconst drawerWidth = 256;\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n display: 'flex',\r\n minHeight: '100vh',\r\n },\r\n drawer: {\r\n [theme.breakpoints.up('sm')]: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n },\r\n app: {\r\n flex: 1,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n main: {\r\n flex: 1,\r\n padding: theme.spacing(2, 2),\r\n background: theme.body.backgroundColor,\r\n },\r\n footer: {\r\n padding: theme.spacing(2),\r\n background: '#eaeff1',\r\n },\r\n});\r\n\r\nconst drawerStyle = {\r\n style: {\r\n width: drawerWidth\r\n }\r\n}\r\n\r\nfunction Paperbase({children, ...props}) {\r\n useWhyDidYouUpdate(\"Paperbase\", props);\r\n\r\n const [state, dispatch] = useContext(Context);\r\n const { classes, navigation } = props;\r\n const [mobileOpen, setMobileOpen] = useState(false);\r\n const [showError, setShowError] = useState(false);\r\n const [showSuccess, setShowSuccess] = useState(false);\r\n\r\n useEffect(() => {\r\n setShowError(Boolean(state.error));\r\n setShowSuccess(Boolean(state.success));\r\n }, [state.loading, state.error, state.success])\r\n\r\n const handleDrawerToggle = () => {\r\n setMobileOpen(!mobileOpen);\r\n };\r\n\r\n const handleCloseError = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n } \r\n \r\n setShowError(false);\r\n dispatch({ type: \"CLEAR-ALERTS\" });\r\n }\r\n\r\n const handleCloseSuccess = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n } \r\n \r\n setShowSuccess(false);\r\n dispatch({ type: \"CLEAR-ALERTS\" });\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {children}\r\n
\r\n {showError && (\r\n \r\n \r\n Error\r\n \r\n {state.error.heading}\r\n \r\n \r\n {state.error.message}\r\n \r\n \r\n \r\n )}\r\n {showSuccess && (\r\n \r\n \r\n Success\r\n \r\n {state.success}\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nPaperbase.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default withStyles(styles)(Paperbase);\r\n","export default __webpack_public_path__ + \"static/media/PEGASUS_PORTAL_LOGOS-01.725c04c3.png\";","export default \"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\"","export default __webpack_public_path__ + \"static/media/pegasus-header-background.67864055.jpg\";","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { AppBar, Toolbar, Typography, Grid, Paper, Button, Link } from '@material-ui/core';\r\n\r\nimport logo from \"../../assets/PEGASUS_PORTAL_LOGOS-01.png\";\r\nimport background from \"../../assets/pegasus-header-background.jpg\";\r\nimport shim from \"../../assets/1x1.gif\";\r\nimport moment from 'moment';\r\n\r\nconst useStyles = makeStyles((theme) => (\r\n {\r\n image: {\r\n height: \"6.5rem\",\r\n width: \"24rem\",\r\n marginTop: \"1rem\",\r\n marginBottom: \"1rem\"\r\n },\r\n appbar: {\r\n background: \"white\",\r\n // backgroundImage: `url(${background})`,\r\n },\r\n welcomeBar: {\r\n background: theme.palette.primary.light,\r\n },\r\n welcomeBarLogo: {\r\n backgroundImage: `url(${logo})`,\r\n backgroundSize: 'auto 100%',\r\n backgroundRepeat: 'no-repeat',\r\n height: '100px',\r\n width: '100%',\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n alignItems: 'center'\r\n },\r\n welcomeBarTop: {\r\n borderBottom: '3px solid #016895',\r\n height: '60px',\r\n flexFlow: 'row',\r\n },\r\n welcomeTime: {\r\n width: \"100%\",\r\n margin: \"0 auto\",\r\n color: '#000000',\r\n justifyContent: 'center',\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: '100%',\r\n fontSize: '1.25rem',\r\n fontWeight: '500',\r\n lineHeight: '1.6',\r\n letterSpacing: '0.0075em',\r\n },\r\n welcomePhoneNumber: {\r\n width: \"100%\",\r\n margin: \"0 auto\",\r\n color: '#000000',\r\n paddingRight: '5pt',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n height: '100%',\r\n fontSize: '1.25rem',\r\n fontWeight: '700',\r\n lineHeight: '1.6',\r\n letterSpacing: '0.0075em',\r\n },\r\n welcomeBarNavigation: {\r\n justifyContent: 'space-around',\r\n alignItems: 'center',\r\n height: '100px',\r\n width: '100%',\r\n paddingLeft: '10%',\r\n paddingRight: '10%',\r\n },\r\n welcomBarNavigationItem: {\r\n color: '#000000',\r\n textDecoration: 'none',\r\n textTransform: 'uppercase',\r\n fontSize: '14pt',\r\n },\r\n loginButtonTop: {\r\n height: '100%',\r\n width: '100%',\r\n margin: \"0 auto\",\r\n fontSize: '12pt',\r\n textTransform: 'uppercase',\r\n }\r\n }\r\n));\r\n\r\n\r\n\r\nconst Header = () => {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {/*Sydney: Tue 7 September, 2021 | 03:12 PM*/}\r\n {moment().format('LLLL')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n LOGIN\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Header;","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Card, CardMedia } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n}));\r\n\r\nconst Banner = ({ item }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Banner;","import React from 'react'\r\nimport { Grid, Typography } from '@material-ui/core'\r\n\r\nexport default function LoginError({ show }) {\r\n return (\r\n \r\n {show &&\r\n \r\n User Name or Password is incorrect\r\n \r\n }\r\n {!show &&  }\r\n \r\n )\r\n}\r\n","import React, { useContext, useEffect, useRef, useState } from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\"\r\nimport { Button, Card, CardActions, CardContent, CardHeader, Collapse, Grid, TextField } from '@material-ui/core';\r\n\r\nimport LoginError from './login-error';\r\nimport { api, Context } from '../../Portal';\r\n\r\nconst url = \"/api/v1/users/login\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n loginCard: {\r\n backgroundColor: \"#016895\",\r\n maxWidth: '300px',\r\n marginTop: '65px',\r\n marginBottom: '10px',\r\n },\r\n loginButton: {\r\n backgroundColor: '#FFFFFF',\r\n color: '#016895',\r\n textTransform: 'uppercase',\r\n width: '100%',\r\n height: '50px',\r\n '&:hover': {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n inputStyle: {\r\n backgroundColor: \"#016895\",\r\n border: '1px solid #FFFFFF',\r\n width: '100%',\r\n height: '50px',\r\n color: '#FFFFFF',\r\n padding: '5px 15px',\r\n '&::before': {\r\n borderBottom: '0px',\r\n },\r\n '&:hover::before': {\r\n borderBottom: '0px !important',\r\n },\r\n '&:-webkit-autofill': {\r\n color: 'rgb(255, 255, 255) !important'\r\n }\r\n },\r\n input: {\r\n WebkitBoxShadow: '0 0 0 1000px #016895 inset',\r\n '&:-webkit-autofill': {\r\n color: 'rgb(255, 255, 255) !important',\r\n },\r\n fontSize: '13pt',\r\n },\r\n passwordInput: {\r\n WebkitBoxShadow: '0 0 0 1000px #016895 inset',\r\n '&:-webkit-autofill': {\r\n color: 'rgb(255, 255, 255) !important',\r\n },\r\n WebkitTextSecurity: 'disc',\r\n fontSize: '25pt',\r\n padding: '0',\r\n '&::-webkit-input-placeholder': {\r\n fontSize: '13pt',\r\n padding: '0',\r\n position: 'absolute',\r\n top: '10px',\r\n }\r\n },\r\n hintStyle: {\r\n zIndex: '1'\r\n },\r\n forgotPassword: {\r\n color: '#FFFFFF',\r\n textDecoration: 'none',\r\n fontSize: '9pt'\r\n }\r\n}));\r\n\r\nconst Credentials = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const usernameElement = useRef(null);\r\n const [username, setUsername] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [error, setError] = useState(false);\r\n const [show, setShow] = useState(false);\r\n const [disabled, setDisabled] = useState(true);\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n setShow(true);\r\n }, []);\r\n\r\n useEffect(() => {\r\n setDisabled(!(username && password) || state.authenticated);\r\n }, [username, password, state.authenticated])\r\n\r\n useEffect(() => {\r\n if (state.loginPageLoaded) {\r\n if (usernameElement.current && usernameElement.current.children[1] && usernameElement.current.children[1].children[0].matches(':-internal-autofill-selected')) {\r\n setDisabled(false);\r\n }\r\n }\r\n }, [state.loginPageLoaded])\r\n\r\n const handleLogin = () => {\r\n setError(false);\r\n\r\n api.post(state.host + url, { userName: username, password: password })\r\n .then(response => {\r\n let result = response.data;\r\n console.log(\"logged in...\", result)\r\n\r\n switch (result.authenticated) {\r\n case true:\r\n result.user.menuItemPermissions.push(\"View Equipment On Hire\");\r\n if (result.user.invoiceApproval && result.user.invoiceApproval != \"None\") {\r\n if (!result.user.menuItemPermissions.includes(\"Authorize Rental Invoice\")) {\r\n result.user.menuItemPermissions.push(\"Authorize Rental Invoice\");\r\n }\r\n } else {\r\n result.user.menuItemPermissions = result.user.menuItemPermissions.filter(value => { return value !== \"Authorize Rental Invoice\"; })\r\n }\r\n\r\n dispatch({\r\n type: \"LOGGED-IN\",\r\n payload: {\r\n headers: {\r\n Authorization: `Bearer ${result.token}`\r\n },\r\n user: {\r\n ...result.user\r\n }\r\n }\r\n });\r\n break;\r\n\r\n case false:\r\n setError(true);\r\n break;\r\n }\r\n\r\n });\r\n }\r\n\r\n return (\r\n usernameElement.current.click()}\r\n collapsedHeight={50}\r\n >\r\n \r\n \r\n setUsername(event.target.value)}\r\n ref={usernameElement}\r\n hintStyle={classes.hintStyle}\r\n autoFocus\r\n />\r\n \r\n \r\n setPassword(event.target.value)}\r\n />\r\n \r\n \r\n \r\n {state.authenticated ? \"LOGGED IN\" : \"LOGIN\"}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Credentials;","export default __webpack_public_path__ + \"static/media/PEGAUS_HEALTH_ELEMENTS-01.452007c3.png\";","export default __webpack_public_path__ + \"static/media/Logo_2_1.40a886c0.png\";","export default __webpack_public_path__ + \"static/media/Logo_2_2.c4cbca76.png\";","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Card, CardContent, CardHeader, CardMedia, Grid, IconButton, Typography } from '@material-ui/core';\r\nimport uuid from \"uuid-random\";\r\nimport OpenInNewIcon from '@material-ui/icons/OpenInNew';\r\nimport shim from '../../assets/1x1.gif'; \r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n card: {\r\n borderTop: \"0px solid \" + theme.palette.primary.light,\r\n marginTop: \"1.5rem\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n },\r\n cardContent: {\r\n height: '100%',\r\n display: 'flex',\r\n flexFlow: 'column nowrap',\r\n padding: '0',\r\n },\r\n cardContainer: {\r\n padding: '0',\r\n display: 'flex',\r\n flexFlow: 'column nowrap',\r\n width: '350px',\r\n height: '100%',\r\n },\r\n pictureContainer: {\r\n textAlign: 'center',\r\n verticalAlign: 'center',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n },\r\n picture: {\r\n display: 'flex',\r\n width: 'auto',\r\n height: '100%',\r\n minHeight: '300px',\r\n maxHeight: '300px',\r\n verticalAlign: 'middle',\r\n },\r\n cardFooter: {\r\n backgroundColor: \"#016895\",\r\n color: '#FFFFFF',\r\n padding: '10px',\r\n height: '100%',\r\n display: 'flex',\r\n flexFlow: 'column',\r\n },\r\n cardTitle: {\r\n color: '#FFFFFF',\r\n fontSize: '15pt',\r\n fontWeight: '500',\r\n },\r\n cardDescription: {\r\n color: '#FFFFFF',\r\n },\r\n cardLink: {\r\n color: '#26A9E1',\r\n textDecoration: 'none',\r\n fontSize: '9pt',\r\n cursor: 'pointer',\r\n fontWeight: '500',\r\n display: 'flex',\r\n flexFlow: 'column nowrap',\r\n justifyContent: 'flex-end',\r\n },\r\n learnMore: {\r\n\r\n }\r\n}));\r\n\r\nconst Promotion = ({ promotion }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n {Boolean(promotion.title) && (\r\n \r\n \r\n\r\n \r\n \r\n \r\n {promotion.picture !== \"data:image/jpeg;base64,\" && (\r\n \r\n )}\r\n {promotion.picture == \"data:image/jpeg;base64,\" && (\r\n \r\n )}\r\n \r\n \r\n \r\n {promotion.title}\r\n \r\n \r\n {promotion.text.map((text) => (\r\n \r\n {text}\r\n \r\n ))}\r\n \r\n {Boolean(promotion.hyperLink) && (\r\n window.open(promotion.hyperLink, \"_blank\")}\r\n >\r\n \r\n + LEARN MORE\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default Promotion;","import { useHistory } from \"react-router-dom\";\r\n\r\nconst useRedirect = () => {\r\n const history = useHistory();\r\n\r\n const redirectToHome = () => {\r\n //TODO: redirect correctly based on user permissions\r\n history.replace(\"/\");\r\n }\r\n\r\n const redirectToCreateRentalOrder = () => {\r\n history.push(\"/rental/start\");\r\n }\r\n\r\n const redirectToApproval = (approveTransactionType) => {\r\n if (approveTransactionType === \"Approve Transfer\") {\r\n history.push(\"/rental/rental-transfer-in\");\r\n return;\r\n }\r\n if (approveTransactionType === \"Approve Exchange\") {\r\n history.push(\"/rental/rental-exchange-approve\");\r\n return;\r\n }\r\n\r\n history.push(\"/rental/approve\");\r\n }\r\n\r\n const redirectToViewAuthorisations = () => {\r\n history.push(\"/rental/authorisations\")\r\n }\r\n const redirectToInvoiceApproval = () => {\r\n history.push(\"/invoices/approve\")\r\n }\r\n\r\n return {\r\n redirectToHome,\r\n redirectToCreateRentalOrder,\r\n redirectToApproval, \r\n redirectToViewAuthorisations,\r\n redirectToInvoiceApproval,\r\n };\r\n}\r\n\r\nexport default useRedirect;","import React, { useContext, useEffect, useState } from 'react';\r\nimport { makeStyles } from \"@material-ui/core/styles\"\r\n\r\nimport { Avatar, Collapse, CssBaseline, FormControlLabel, Grid, Paper, Typography, Button, Link } from '@material-ui/core';\r\nimport CallIcon from '@material-ui/icons/Call';\r\nimport Carousel from 'react-material-ui-carousel';\r\nimport uuid from \"uuid-random\";\r\n\r\nimport Header from './header';\r\nimport Banner from './Banner';\r\nimport Credentials from './Credentials';\r\n\r\nimport sideBanner from \"../../assets/PEGAUS_HEALTH_ELEMENTS-01.png\";\r\nimport pageFooterLogo from \"../../assets/PEGASUS_PORTAL_LOGOS-02.png\";\r\nimport pageFooterLogoLeft from \"../../assets/Logo_2_1.png\";\r\nimport pageFooterLogoRight from \"../../assets/Logo_2_2.png\";\r\nimport shim from \"../../assets/1x1.gif\";\r\n\r\nimport Promotion from './Promotion';\r\nimport { api, Context } from '../../Portal';\r\nimport useRedirect from '../../hooks/useRedirect';\r\nimport ScrollableAnchor from 'react-scrollable-anchor'\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n minHeight: \"100vh\",\r\n },\r\n content: {\r\n width: \"87.5%\",\r\n marginLeft: \"2.5%\"\r\n },\r\n welcome: {\r\n padding: \"1rem\",\r\n borderTop: \"4px solid #006db3\",\r\n },\r\n loginRow: {\r\n backgroundColor: '#016895',\r\n },\r\n sideBanner: {\r\n backgroundImage: `url(${sideBanner})`,\r\n backgroundSize: 'auto 100%',\r\n backgroundRepeat: 'no-repeat',\r\n },\r\n sideBannerContent: {\r\n display: 'flex',\r\n flexFlow: 'column',\r\n height: '100%',\r\n marginLeft: '15%',\r\n marginTop: '60px',\r\n verticalAlign: 'top',\r\n justifyContent: 'flex-start',\r\n color: '#FFFFFF',\r\n },\r\n sideBannerIntro: {\r\n fontSize: '20px',\r\n marginBottom: '30px',\r\n\r\n },\r\n sideBannerHeading: {\r\n fontSize: '26px',\r\n marginBottom: '20px',\r\n },\r\n sideBannerContentText: {\r\n fontSize: '20px',\r\n },\r\n sideBannerContentFineprint: {\r\n fontSize: '14px',\r\n },\r\n phone: {\r\n marginTop: \"1rem\",\r\n },\r\n callIcon: {\r\n margin: \".5rem\"\r\n },\r\n infoTiles: {\r\n display: \"flex\",\r\n flex: 3,\r\n justifyContent: \"space-between\",\r\n \"& > div:first-child\": {\r\n marginRight: \"10px\",\r\n },\r\n \"& > div + div\": {\r\n marginRight: \"6px\",\r\n marginLeft: \"6px\",\r\n },\r\n \"& > div:last-child\": {\r\n marginRight: 0,\r\n marginLeft: \"10px\",\r\n },\r\n },\r\n middleBanner: {\r\n alignItems: 'center',\r\n padding: '50px 0',\r\n },\r\n bottomBanner: {\r\n alignItems: 'center',\r\n padding: '50px 0',\r\n backgroundColor: '#E7E8EA',\r\n },\r\n bannerHeading: {\r\n fontSize: '18pt',\r\n padding: '20px 0',\r\n },\r\n bannerContent: {\r\n width: '60%',\r\n fontSize: '14pt',\r\n textAlign: 'center',\r\n lineHeight: '2em',\r\n \r\n },\r\n bannerButton: {\r\n border: '1px solid #000000',\r\n fontSize: '14pt',\r\n height: '50px',\r\n width: '300px',\r\n },\r\n pageFooter: {\r\n backgroundColor: '#016895',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n color: '#ffffff',\r\n },\r\n pageFooterRows: {\r\n justifyContent: 'center',\r\n flexFlow: 'row nowrap',\r\n width: '70%',\r\n },\r\n pageFooterRow: {\r\n textAlign: 'left',\r\n },\r\n pageFooterRow1: {\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n },\r\n pageFooterLogoLeft: {\r\n textAlign: 'right',\r\n },\r\n pageFooterLogoRight: {\r\n textAlign: 'left',\r\n },\r\n pageFooterLogo: {\r\n height: '100px',\r\n marginLeft: '-280px',\r\n },\r\n pageFooterPhoneNumber: {\r\n fontSize: '30pt',\r\n },\r\n pageFooterRow2: {\r\n alignItems: 'center',\r\n padding: '10px 0',\r\n justifyContent: 'flex-start',\r\n },\r\n pageFooterRow3: {\r\n alignItems: 'center',\r\n padding: '10px 0',\r\n justifyContent: 'flex-start',\r\n },\r\n pageFooterAddress: {\r\n padding: '0 100px 0 0',\r\n },\r\n copyrightText: {\r\n fontSize: '11pt',\r\n marginLeft: '5px',\r\n },\r\n footerLoginLink: {\r\n color: '#ffffff',\r\n textDecoration: 'none',\r\n }\r\n}));\r\n\r\nconst url = \"/views/v1/login\";\r\nconst approvalUrl = \"/api/v1/rentalorders/waiting-approval\";\r\n\r\nconst Login = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [promotions, setPromotions] = useState([]);\r\n const [banners, setBanners] = useState([]);\r\n const [loggingIn, setLoggingIn] = useState(false);\r\n const { redirectToHome } = useRedirect();\r\n const { redirectToInvoiceApproval } = useRedirect();\r\n const { redirectToViewAuthorisations } = useRedirect();\r\n const classes = useStyles();\r\n\r\n const Copyright = () => {\r\n return (\r\n \r\n © { new Date().getFullYear()} Pegasus Healthcare\r\n \r\n )\r\n }\r\n\r\n\r\n useEffect(() => {\r\n api.get(state.host + url)\r\n .then(({ data }) => {\r\n setPromotions(data.tiles);\r\n setBanners(data.banners);\r\n dispatch({ type: \"LOGINPAGE-LOADED\" });\r\n })\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (state.authenticated) {\r\n if (!loggingIn) {\r\n setLoggingIn(true);\r\n getAuthorisationCount();\r\n }\r\n }\r\n }, [state.authenticated, redirectToHome, redirectToViewAuthorisations, redirectToInvoiceApproval])\r\n\r\n const getAuthorisationCount = () => {\r\n\r\n api.get(state.host + approvalUrl, state.credentials)\r\n .then(({ data }) => {\r\n dispatch({ type: \"UPDATE-AUTHORISATION-COUNT\", payload: { authorisationCount: data.headers.length } });\r\n if (state.user.menuItemPermissions.indexOf(\"Authorize Rental Transaction\") !== -1 && data.headers.length > 0) {\r\n redirectToViewAuthorisations();\r\n } else if (state.user.menuItemPermissions.indexOf(\"Create Rental Order\") !== -1) {\r\n redirectToHome();\r\n } else if (state.user.menuItemPermissions.indexOf(\"Authorize Rental Invoice\") !== -1) {\r\n redirectToInvoiceApproval();\r\n } else if (state.user.menuItemPermissions.indexOf(\"Authorize Rental Transaction\") !== -1) {\r\n redirectToViewAuthorisations();\r\n } else {\r\n redirectToHome();\r\n }\r\n })\r\n .catch((error) => {\r\n if (state.user.menuItemPermissions.indexOf(\"Create Rental Order\") !== -1) {\r\n redirectToHome();\r\n } else if (state.user.menuItemPermissions.indexOf(\"Authorize Rental Invoice\") !== -1) {\r\n redirectToInvoiceApproval();\r\n } else if (state.user.menuItemPermissions.indexOf(\"Authorize Rental Transaction\") !== -1) {\r\n redirectToViewAuthorisations();\r\n }\r\n });\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n\t\t\t\t{banners && banners.length > 0 &&\r\n\t\t\t\t\t 0}\r\n\t\t\t\t\t\t{...(banners.length > 0 ? { timeout: 750 } : {})}\r\n\t\t\t\t\t\tcollapsedHeight={50}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{banners.map((banner) => (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n \r\n \r\n \r\n
\r\n
SECURE LOGIN
\r\n
Online Rental Management System
\r\n
Welcome to the Pegasus Online Management System
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\t\t\t\t
\r\n\t\t\t\t{promotions && promotions.length > 0 &&\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{promotions.map((promotion, index) => ())}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n \r\n \r\n \r\n ABOUT US\r\n \r\n \r\n
Pegasus Healthcare is Australia's leading supplier of high quality, clinically proven healthcare equipment solutions for the acute, community and residential care sectors.
\r\n\r\n
Our innovative healthcare equipment range includes solutions for pressure care, medical beds, falls prevention, mobility and bariatric care.
\r\n\r\n
Pegasus is a trusted partner to health care providers, caregivers, and patients across Australia. Our high quality clinically proven products, first class service excellence and customer support ensures we are able to make a positive difference to the clinical outcomes for our customers.
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Pegasus Health Group
\r\n 1/30 Heathcote Road, Moorebank, NSW 2170
\r\n Telephone 1300 303 603\r\n \r\n \r\n \r\n \r\n \r\n Customer Login |\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Login;\r\n","import { FormControlLabel, Grid, makeStyles, Typography } from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n section: {\r\n // borderBottom: \"1px solid \" + theme.formHeading.color,\r\n //marginBottom: \".5rem\"\r\n },\r\n heading: {\r\n ...theme.formHeading,\r\n }\r\n}))\r\n\r\nconst Section = ({ title, onClick, iconRight, className, children }) => {\r\n const classes = useStyles();\r\n\r\n const noOp = () => { };\r\n\r\n return (\r\n <>\r\n onClick ? onClick() : noOp()}\r\n >\r\n {!Boolean(iconRight) && (\r\n \r\n {title}\r\n \r\n )}\r\n\r\n {Boolean(iconRight) && (\r\n \r\n {title}\r\n }\r\n />\r\n )}\r\n \r\n \r\n {Boolean(children) && children}\r\n \r\n )\r\n}\r\n\r\nexport default Section;","import { useFormContext, Controller } from \"react-hook-form\";\r\nimport { Grid, MenuItem, TextField } from \"@material-ui/core\";\r\nimport { useEffect } from \"react\";\r\n\r\nconst DropdownField = (props) => {\r\n const { control } = useFormContext();\r\n const { name, label, onChange: toplevelOnChange, value: passedValue, xs, ...rest } = props;\r\n\r\n useEffect(() => {\r\n control.setValue(name, passedValue)\r\n }, [passedValue])\r\n\r\n return (\r\n {\r\n const { id, options, required, ...remainder } = rest;\r\n\r\n return (\r\n \r\n {\r\n onChange(e);\r\n if (toplevelOnChange) {\r\n toplevelOnChange(e);\r\n }\r\n }}\r\n name={name}\r\n autoComplete=\"new-password\"\r\n {...remainder}\r\n >\r\n {options.map(({ value, description }, index) => {\r\n return (\r\n {description}\r\n )\r\n })}\r\n \r\n \r\n )\r\n }}\r\n control={control}\r\n name={name}\r\n label={label}\r\n defaultValue={passedValue}\r\n rules={{ required: Boolean(props.required) }}\r\n />\r\n )\r\n}\r\n\r\nexport default DropdownField;","import { Controller, useFormContext } from \"react-hook-form\";\r\nimport { Grid, TextField } from \"@material-ui/core\";\r\nimport { useEffect } from \"react\";\r\n\r\nconst BigtextField = ({ label, required, name, xs, maxlength, value: passedValue, ...rest }) => {\r\n const { control } = useFormContext();\r\n\r\n useEffect(() => {\r\n control.setValue(name, passedValue)\r\n }, [passedValue])\r\n\r\n return (\r\n {\r\n return (\r\n \r\n 0 ? maxlength : '' }}\r\n required={Boolean(required)}\r\n error={Boolean(required && !value)}\r\n onChange={onChange}\r\n value={value ? value : passedValue}\r\n {...rest}\r\n />\r\n \r\n )\r\n }}\r\n >\r\n\r\n \r\n )\r\n}\r\n\r\nexport default BigtextField;","import { useEffect } from \"react\";\r\nimport { Controller, useFormContext } from \"react-hook-form\";\r\nimport { Grid, TextField } from \"@material-ui/core\";\r\n\r\nconst InputField = ({ label, type, guid, min, max, maxlength, minlength, required, model, onUpdate, onChange, name, xs, fullWidth, value: passedValue, ...rest }) => {\r\n const { control } = useFormContext();\r\n\r\n useEffect(() => {\r\n control.setValue(name, passedValue);\r\n }, [passedValue])\r\n\r\n return (\r\n {\r\n return (\r\n \r\n 0 ? maxlength : '', minlength: minlength, model: model, id: guid, guid: guid, autoComplete: \"new-password\" }}\r\n name={name}\r\n label={label}\r\n type={type}\r\n fullWidth={fullWidth}\r\n variant=\"outlined\"\r\n InputLabelProps={{\r\n shrink: true\r\n }} \r\n required={Boolean(required)}\r\n error={Boolean(required && !value)}\r\n onChange={onUpdate ? onUpdate : onChange}\r\n value={value ? value : passedValue}\r\n {...rest}\r\n />\r\n \r\n )\r\n }}\r\n >\r\n\r\n \r\n )\r\n}\r\n\r\nexport default InputField;","import { useEffect } from \"react\";\r\nimport { Controller, useFormContext } from \"react-hook-form\";\r\nimport { Grid, TextField } from \"@material-ui/core\";\r\n\r\nconst InputFieldAlt = ({ label, type, guid, min, max, maxlength, minlength, required, model, onUpdate, name, xs, fullWidth, passedValue, ...rest }) => {\r\n const { control } = useFormContext();\r\n\r\n useEffect(() => {\r\n control.setValue(name, passedValue);\r\n }, [passedValue])\r\n\r\n return (\r\n {\r\n return (\r\n \r\n \r\n \r\n )\r\n }}\r\n >\r\n\r\n \r\n )\r\n}\r\n\r\nexport default InputFieldAlt;","/* eslint-disable no-use-before-define */\r\nimport React, { useState } from 'react';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport Button from '@material-ui/core/Button';\r\nimport Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\nimport { Grid, makeStyles } from '@material-ui/core';\r\n\r\nconst filter = createFilterOptions();\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\t\trequired: {\r\n\t\t\t\tcolor: \"red\",\r\n\t\t},\r\n\t\trequiredBorder: {\r\n\t\t\t\t\"& fieldset\": {\r\n\t\t\t\t\t\tborder: \"1px solid red\",\r\n\t\t\t\t},\r\n\t\t\t\t\"& label\": {\r\n\t\t\t\t\t\tcolor: \"red\",\r\n\t\t\t\t},\r\n\t\t},\r\n\t\tdefault: {\r\n\t\t\t\tcolor: theme.palette.text.primary\r\n\t\t},\r\n\t\tdefaultBorder: {\r\n\t\t\t\t\"& fieldset\": {\r\n\t\t\t\t\t\tborder: \"1px solid rgba(1, 104, 149, 0.23)\"\r\n\t\t\t\t},\r\n\t\t\t\t\"& label\": {\r\n\t\t\t\t\t\tcolor: \"rgba(1, 104, 149, 0.5)\",\r\n\t\t\t\t},\r\n\t\t},\r\n\t\tsubmitButton: {\r\n\t\t\t\tcolor: theme.palette.text.secondary,\r\n\t\t},\r\n}));\r\n\r\nconst NameSelectEntry = ({ people, label, name, required, xs, value, onChange, hideLabel }) => {\r\n\t\tconst [localValue, setValue] = useState(null);\r\n\t\tconst [open, toggleOpen] = useState(false);\r\n\t\tconst classes = useStyles();\r\n\r\n\t\tconst handleClose = () => {\r\n\t\t\t\tsetDialogValue({\r\n\t\t\t\t\t\tname: '',\r\n\t\t\t\t\t\tsurname: '',\r\n\t\t\t\t\t\tfirstNames: ''\r\n\t\t\t });\r\n\r\n\t\t\t\ttoggleOpen(false);\r\n\t\t};\r\n\r\n\t\tconst [dialogValue, setDialogValue] = useState({ name: '', surname: '', firstNames: '' });\r\n\r\n\tconst handleSubmit = (event) => {\r\n\t\tevent.stopPropagation();\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tsetValue({ ...dialogValue });\r\n\t\t\t\tonChange({ ...dialogValue });\r\n\r\n\t\t\t\thandleClose();\r\n\t\t};\r\n\r\n\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\tif (typeof newValue === 'string') {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// timeout to avoid instant validation of the dialog's form.\r\n\t\t\t\t\t\t\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleOpen(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetDialogValue({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsurname: newValue,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfirstNames: '',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: ''\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t} else if (newValue && (newValue.inputValue || (newValue.name && newValue.name.substring(0, 4) === 'Add '))) {\r\n\t\t\t\t\t\t\t\t\t\t\t\ttoggleOpen(true);\r\n\t\t\t\t\t\t\t\t\t\t\t\tsetDialogValue({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsurname: newValue.inputValue,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfirstNames: '',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: ''\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\tsetValue(newValue);\r\n\t\t\t\t\t\t\t\t\t\t\t\tonChange({ ...newValue });\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tfilterOptions={(options, params) => {\r\n\t\t\t\t\t\t\t\t\t\tconst filtered = filter(options, params);\r\n\r\n\t\t\t\t\t\t\t\t\t\tfiltered.push({\r\n\t\t\t\t\t\t\t\t\t\t\t\tinputValue: params.inputValue,\r\n\t\t\t\t\t\t\t\t\t\t\t\tname: `Add ${label}`,\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn filtered;\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tid={name}\r\n\t\t\t\t\t\t\t\toptions={people}\r\n\t\t\t\t\t\t\t\tgetOptionLabel={(option) => {\r\n\t\t\t\t\t\t\t\t\t\t// e.g value selected with enter, right from the input\r\n\t\t\t\t\t\t\t\t\t\tif (typeof option === 'object') {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn option.name ?? \"\";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif (option.inputValue) {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn option.inputValue;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn option.newValue;\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\tselectOnFocus\r\n\t\t\t\t\t\t\t\tclearOnBlur\r\n\t\t\t\t\t\t\t\thandleHomeEndKeys\r\n\t\t\t\t\t\t\t\trenderOption={(option) => option.name}\r\n\t\t\t\t\t\t\t\tfreeSolo\r\n\t\t\t\t\t\t\t\tfullWidth\r\n\r\n\t\t\t\t\t\t\t\trenderInput={(params) => (\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\tAdd a new person\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tEnter person's details\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t setDialogValue({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...dialogValue,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsurname: event.target.value,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: `${event.target.value} ${dialogValue.firstNames}`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"Surname\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t setDialogValue({\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...dialogValue,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfirstNames: event.target.value,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: `${dialogValue.surname} ${event.target.value}`\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel=\"First names\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t);\r\n}\r\n\r\nexport default NameSelectEntry;","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Grid, Switch, TextField, Tooltip, Typography } from '@material-ui/core';\r\nimport Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n serialNoPosition: {\r\n marginTop: \"2px\",\r\n },\r\n}));\r\nconst filter = createFilterOptions();\r\n\r\nconst SerialNumber = ({ field, product, serialNumbers, required, disable, onUpdate, ...props }) => {\r\n const [visible, setVisible] = useState(false);\r\n const [show, setShow] = useState(false);\r\n const [serialNumber, setSerialNumber] = useState(\"\");\r\n\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n if (serialNumbers && serialNumbers.length > 0) {\r\n setVisible(true);\r\n }\r\n }, [serialNumbers]);\r\n\r\n useEffect(() => {\r\n setShow(Boolean(product.serialNo));\r\n setSerialNumber(product.serialNo);\r\n }, [product.serialNo]);\r\n\r\n const handleChange = () => {\r\n setShow(prev => {\r\n\t\t\tproduct.REQBYDATE = product.iREQBYDATE;\r\n\t\t\tproduct.REQBYTIME = product.iREQBYTIME;\r\n\t\t\tproduct.serialNo = \"\";\r\n\t\t\tproduct.MINREQBYDATE = product.iREQBYDATE;\r\n //if (prev) {\r\n setSerialNumber(\"\");\r\n\t\t\tonUpdate(product);\r\n //}\r\n return !prev;\r\n });\r\n }\r\n\r\n\tconst updateSerialNumber = (event, value) => {\r\n\t\tif (value && value.serialNumber) {\r\n\t\t\tsetSerialNumber(value.serialNumber);\r\n\t\t\tproduct.serialNo = value.serialNumber;\r\n\t\t\tproduct.MINREQBYDATE = product.REQSTARTDATE;\r\n\t\t} else {\r\n\t\t\tproduct.REQBYDATE = product.iREQBYDATE;\r\n\t\t\tproduct.REQBYTIME = product.iREQBYTIME;\r\n\t\t\tproduct.MINREQBYDATE = product.iREQBYDATE;\r\n\t\t}\r\n\t\tonUpdate(product);\r\n\t\t\r\n }\r\n\r\n return visible && (\r\n \r\n \r\n \r\n {show ? \"Clear serial number selection\" : \"Select serial number from consignment\"}\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n\r\n \r\n {Boolean(show) && (\r\n {\r\n if (typeof option === \"object\") {\r\n return option.serialNumber + \" (\" + option.storeCode + \")\";\r\n }\r\n return option;\r\n }}\r\n defaultValue={product.serialNo && serialNumbers.find(x => x.serialNumber == product.serialNo)}\r\n onChange={updateSerialNumber}\r\n getOptionSelected={(option, value) => option.serialNumber === value }\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SerialNumber;","import \"date-fns\";\r\nimport DateFNSUtils from \"@date-io/date-fns\";\r\n\r\nimport { Chip, TableCell, Typography } from \"@material-ui/core\";\r\nimport uuid from \"uuid-random\";\r\n\r\nimport Section from \"./Section\";\r\nimport BigtextField from \"./BigtextField\";\r\nimport DropdownField from \"./DropdownField\";\r\nimport InputField from \"./InputField\";\r\nimport InputFieldAlt from \"./InputFieldAlt\";\r\nimport NameSelectEntry from \"./NameSelectEntry\";\r\nimport SerialNumber from \"./SerialNumber\";\r\n\r\nexport const extractControl = ({ fieldType, type, editable, ...field }, classes, xs) => {\r\n let size = xs ? { xs: xs } : {};\r\n let disabled = editable === \"No\";\r\n \r\n\r\n switch (type) {\r\n case \"Group\":\r\n return (\r\n
\r\n )\r\n\r\n case \"Field\":\r\n case \"GridField\":\r\n let required = field.mandatory === \"Yes\";\r\n\r\n switch (fieldType) {\r\n case \"Text\":\r\n return (\r\n \r\n )\r\n\r\n case \"Date\":\r\n let dateValue = field.fieldValueAsText;\r\n if (!disabled && !Boolean(dateValue)) {\r\n var date = new Date();\r\n dateValue = new Date(date.getTime() - (date.getTimezoneOffset() * 60000))\r\n .toISOString()\r\n .split(\"T\")[0];\r\n }\r\n\r\n return (\r\n \r\n )\r\n\r\n case \"Integer\":\r\n return (\r\n \r\n )\r\n\r\n case \"Time\":\r\n return (\r\n \r\n )\r\n\r\n case \"Bigtext\":\r\n return (\r\n \r\n )\r\n\r\n case \"Code\":\r\n case \"Option\":\r\n return (\r\n ({ value: item, description: item }))\r\n }\r\n {...size}\r\n className={disabled ? classes.disabledBorder : classes.defaultBorder}\r\n />\r\n )\r\n\r\n case \"Person\":\r\n return (\r\n \r\n )\r\n }\r\n }\r\n}\r\n\r\nexport const buildRentalForm = (field, xs, staff, contact, onContactChange, requestor, onRequestorChange, classes) => {\r\n let required = field.mandatory === \"Yes\";\r\n let disabled = field.editable === \"No\";\r\n let size = xs ? { xs: xs } : {};\r\n \r\n\r\n switch (field.fieldID) {\r\n case \"CONTACTPERSON\":\r\n if (disabled) {\r\n return extractControl(field, classes, xs);\r\n }\r\n\r\n return (\r\n \r\n );\r\n case \"REQNURSE\":\r\n if (disabled) {\r\n return extractControl(field, classes, xs);\r\n }\r\n\r\n return (\r\n \r\n );\r\n\r\n default:\r\n return extractControl(field, classes, xs);\r\n }\r\n}\r\n\r\nexport const buildDeliveryForm = (field, communityDelivery, postCodes, shipTo, classes) => {\r\n let required = field.mandatory === \"Yes\";\r\n let xs = {};\r\n switch (field.caption) {\r\n case \"Delivery Information\":\r\n return null;\r\n\r\n case \"Delivery Name\":\r\n if (communityDelivery) {\r\n return extractControl(field, classes, xs);\r\n }\r\n\r\n return (\r\n \r\n )\r\n\r\n case \"Delivery Address\":\r\n if (communityDelivery) {\r\n return extractControl(field, classes, xs);\r\n }\r\n\r\n return (\r\n \r\n )\r\n\r\n case \"Delivery Address2\":\r\n if (communityDelivery) {\r\n return extractControl(field, classes, xs);\r\n }\r\n\r\n return (\r\n \r\n )\r\n\r\n case \"Delivery City\":\r\n if (communityDelivery) {\r\n return extractControl(field, classes, xs);\r\n }\r\n\r\n return (\r\n \r\n )\r\n\r\n case \"Delivery Post Code\":\r\n if (communityDelivery) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n )\r\n\r\n case \"Delivery Service Zone\":\r\n return null;\r\n\r\n default:\r\n return extractControl(field, classes, xs);\r\n }\r\n\r\n}\r\n\r\nexport const buildProductRow = (field, data, serialNumbers, editable, transfer, onUpdate) => {\r\n let required = field.mandatory === \"Yes\";\r\n switch (field.fieldID) {\r\n case \"MODEL\":\r\n return (\r\n \r\n \r\n {data.MODEL}\r\n \r\n \r\n )\r\n case \"MODELDESCRIPTION\":\r\n return (\r\n \r\n \r\n {data.MODELDESCRIPTION}\r\n \r\n \r\n )\r\n case \"highEnd\":\r\n return (\r\n \r\n {data.highEnd === \"Yes\" && (\r\n \r\n )}\r\n \r\n )\r\n case \"serialNo\":\r\n return (\r\n \r\n { Boolean(transfer) && (\r\n \r\n {data.serialNo}\r\n \r\n )\r\n }\r\n {!Boolean(transfer) && (\r\n\r\n editable && (\r\n \r\n )\r\n )\r\n }\r\n {!Boolean(transfer) && (\r\n !editable && (\r\n \r\n )\r\n )\r\n }\r\n \r\n )\r\n\r\n case \"REQBYDATE\":\r\n return (\r\n \r\n {editable &&\r\n \r\n }\r\n {!editable &&\r\n \r\n }\r\n \r\n )\r\n case \"REQBYTIME\":\r\n return (\r\n \r\n {editable &&\r\n \r\n }\r\n {!editable &&\r\n \r\n }\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default extractControl;","import { makeStyles } from \"@material-ui/core\";\r\n\r\nconst usePopoverStyles = makeStyles((theme) => ({\r\n root: {\r\n \"& > div\": {\r\n overflow: \"hidden\",\r\n },\r\n },\r\n backDrop: {\r\n backdropFilter: \"blur(3px)\",\r\n backgroundColor: 'rgba(0,0,30,0.4)'\r\n },\r\n content: {\r\n width: \"75vw\",\r\n padding: \"1em\",\r\n alignContent: 'flex-start',\r\n padding: '0',\r\n },\r\n contentTall: {\r\n // height: \"95vh\",\r\n width: \"75vw\",\r\n padding: \"1em\"\r\n },\r\n title: {\r\n height: \"5em\",\r\n }\r\n}));\r\n\r\nconst usePopoverStylesWithNoWidth = makeStyles((theme) => ({\r\n root: {\r\n \"& > div\": {\r\n overflow: \"hidden\",\r\n },\r\n },\r\n backDrop: {\r\n backdropFilter: \"blur(3px)\",\r\n backgroundColor: 'rgba(0,0,30,0.4)'\r\n },\r\n content: {\r\n // height: \"75vh\",\r\n width: \"432px\",\r\n padding: \"2em\"\r\n },\r\n contentTall: {\r\n // height: \"95vh\",\r\n // width: \"75vw\",\r\n padding: \"1em\"\r\n },\r\n title: {\r\n height: \"5em\",\r\n }\r\n}));\r\n\r\nconst usePopoverStylesWithScrollbar = makeStyles((theme) => ({\r\n root: {\r\n \"& > div\": {\r\n overflow: \"auto\",\r\n },\r\n },\r\n backDrop: {\r\n backdropFilter: \"blur(3px)\",\r\n backgroundColor: 'rgba(0,0,30,0.4)'\r\n },\r\n content: {\r\n // height: \"75vh\",\r\n width: \"75vw\",\r\n padding: \"1em\"\r\n },\r\n contentTall: {\r\n // height: \"95vh\",\r\n width: \"75vw\",\r\n padding: \"1em\"\r\n },\r\n title: {\r\n height: \"5em\",\r\n }\r\n}));\r\nexport { usePopoverStylesWithScrollbar, usePopoverStylesWithNoWidth }\r\nexport default usePopoverStyles;","import { Grid, makeStyles } from \"@material-ui/core\";\r\nimport PopoverMUI from \"@material-ui/core/Popover\";\r\n\r\nimport logo from \"../assets/PEGASUS_PORTAL_LOGOS-01.png\";\r\nimport usePopoverStyles, { usePopoverStylesWithScrollbar, usePopoverStylesWithNoWidth } from \"./popover-styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n header: {\r\n backgroundColor: '#DDEAF0',\r\n display: 'flex',\r\n flexFlow: 'row nowrap',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n padding: '10px 10px',\r\n },\r\n title: {\r\n color: '#000000',\r\n height: '100px',\r\n width: '100%',\r\n },\r\n titleLogo: {\r\n width: '100%',\r\n },\r\n phoneNumber: {\r\n fontSize: '25pt',\r\n color: '#000000',\r\n fontWeight: '700',\r\n },\r\n}));\r\nconst Popover = ({ onExited, onEscapeKeyDown, showTitle, children, showScrollbar, tall, ignoreWidth, ...props }) => {\r\n const styleWithoutScrollbars = usePopoverStyles();\r\n const styleWithScrollbars = usePopoverStylesWithScrollbar();\r\n const styleWithNoWidth = usePopoverStylesWithNoWidth();\r\n const classes = ignoreWidth ? styleWithNoWidth : showScrollbar ? styleWithScrollbars : styleWithoutScrollbars;\r\n const localClasses = useStyles();\r\n return (\r\n \r\n \r\n {showTitle && (\r\n \r\n \r\n \"Pegasus\r\n \r\n \r\n \r\n \r\n )}\r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Popover;","const loremIpsum = [\r\n \"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?\",\r\n \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\r\n \"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.\",\r\n \"Proin purus lacus, ultrices sed lacinia ut, tincidunt eu turpis. Nulla eget fermentum odio. Suspendisse consectetur pellentesque sapien, et fermentum tortor. Donec ac euismod nibh. Suspendisse potenti. Nullam mollis euismod lacus. Morbi sollicitudin odio nec odio interdum, ac euismod augue pulvinar. Vivamus molestie sollicitudin volutpat. Nunc scelerisque interdum orci, eget tincidunt quam tincidunt iaculis. Suspendisse lacinia magna ligula, sit amet facilisis ligula mollis nec.\",\r\n \"Vivamus fringilla mi dolor, ac vehicula magna ornare at. Fusce nisl mauris, convallis vitae consequat in, auctor vel quam. Cras faucibus, diam ut consectetur iaculis, nisi nisi pharetra nulla, id tempus enim velit a lorem. Duis sed auctor sem, ac tempus sem. Phasellus est felis, interdum eu semper non, dapibus ut enim. Duis vulputate, tellus ac vulputate tincidunt, ligula elit ullamcorper libero, ut porttitor nibh nisl eu justo. Donec at turpis sit amet ante euismod tempor. Sed non mauris dapibus, tempus enim malesuada, accumsan metus. Suspendisse potenti.\"\r\n];\r\n\r\nexport default loremIpsum;","import React, { useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Card, CardActions, CardMedia, Grid, Typography } from '@material-ui/core';\r\n\r\nimport loremIpsum from \"../static/lorem-ipsum\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n actionArea: {\r\n width:\"auto\",\r\n height: '200px',\r\n transition: \"all 0.2s linear\",\r\n position: \"relative\",\r\n \"& img\": {\r\n transition: \"all 0.2s linear\",\r\n width: \"auto\",\r\n },\r\n \"&:hover img\": {\r\n transform: \"scale(1.1)\"\r\n },\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n modelDetails: {\r\n padding: '5px 15px',\r\n },\r\n mask: {\r\n width: \"100%\",\r\n height: \"105%\",\r\n position: \"absolute\",\r\n overflow: \"hidden\",\r\n top: 0,\r\n left: 0,\r\n opacity: 0,\r\n backgroundColor: \"rgba(12, 19, 27, 0.6)\",\r\n transition: \"all 0.4s ease-in-out\",\r\n \"&:hover\": {\r\n opacity: 1,\r\n },\r\n paddingTop: \"10px\",\r\n paddingBottom: \"10px\",\r\n \"& button\": {\r\n transform: \"translateY(140px)\",\r\n opacity: 0,\r\n transition: \"all 0.4s linear\",\r\n zIndex: 10000,\r\n color: \"#fff\",\r\n margin: \"0 auto\",\r\n border: \"3px solid #fff\",\r\n height: 36,\r\n },\r\n \"&:hover button\": {\r\n opacity: 1,\r\n transform: \"translateY(45px)\",\r\n },\r\n },\r\n cardAction: {\r\n backgroundColor: '#016895',\r\n padding: '5px 0 0 0',\r\n },\r\n modelName: {\r\n color: '#FFFFFF',\r\n fontSize: '13pt',\r\n },\r\n modelShortDescription: {\r\n color: '#FFFFFF',\r\n fontSize: '10pt',\r\n },\r\n buttonRow: {\r\n flexFlow: 'row nowrap',\r\n },\r\n selectProductButton: {\r\n backgroundColor: '#67A4C0',\r\n color: '#FFFFFF',\r\n cursor: 'pointer',\r\n width: '100%',\r\n '&:hover': {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n },\r\n },\r\n learnMoreButton: {\r\n backgroundColor: '#418DAF',\r\n color: '#FFFFFF',\r\n cursor: 'pointer',\r\n width: '100%',\r\n '&:hover': {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n}));\r\n\r\nconst ProductCard = ({ product, index, onChange, ...props }) => {\r\n const [description, setDescription] = useState(\"\");\r\n const [model, setModel] = useState(\"\");\r\n const [lorem, setLorem] = useState(\"\");\r\n\r\n const classes = useStyles();\r\n\r\n let { MODEL, MODELDESCRIPTION, SHORTDESCRIPTION, image } = product;\r\n\r\n const handleHover = (model, description, index) => {\r\n setDescription(description);\r\n setModel(model);\r\n setLorem(loremIpsum[index % 5]);\r\n }\r\n\r\n return (\r\n handleHover(MODEL, MODELDESCRIPTION, index)}\r\n key={`${MODEL}-${index}`}\r\n >\r\n
event.stopPropagation()}>\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {MODELDESCRIPTION}\r\n \r\n \r\n \r\n \r\n {SHORTDESCRIPTION}\r\n \r\n \r\n \r\n \r\n \r\n \r\n LEARN MORE\r\n \r\n \r\n \r\n {\r\n event.persist();\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n event.stopPropagation();\r\n event.preventDefault();\r\n event.nativeEvent.stopPropagation();\r\n onChange(product);\r\n }}\r\n >\r\n SELECT\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ProductCard;","const datatableStylesAlt = {\r\n header: {\r\n style: {\r\n backgroundColor: \"#016895\",\r\n color: \"#FFFFFF\",\r\n fontSize: '12pt',\r\n minHeight: '40px',\r\n }\r\n },\r\n subHeader: {\r\n style: {\r\n backgroundColor: \"#FFFFFF\",\r\n color: \"#000000\",\r\n borderBottom: '1px solid #016895',\r\n minHeight: '40px',\r\n }\r\n },\r\n headRow: {\r\n style: {\r\n backgroundColor: \"#FFFFFF\",\r\n color: '#000000',\r\n borderBottom: '1px solid #016895',\r\n minHeight: '40px',\r\n }\r\n },\r\n headCells: {\r\n style: {\r\n backgroundColor: \"#FFFFFF\",\r\n paddingLeft: '8px',\r\n paddingRight: '8px',\r\n }\r\n },\r\n rows: {\r\n style: {\r\n paddingLeft: '5px',\r\n\r\n },\r\n },\r\n cells: {\r\n style: {\r\n paddingLeft: '8px',\r\n paddingRight: '8px',\r\n },\r\n }\r\n}\r\n\r\nexport default datatableStylesAlt;","import { useContext, useEffect, useReducer, useState } from \"react\";\r\nimport DataTable from \"react-data-table-component\";\r\nimport { AppBar, Button, Container, FormControlLabel, Grid, IconButton, Link, makeStyles, Tooltip, Typography } from \"@material-ui/core\";\r\nimport { ConfirmationDialog } from \"../../components/controls/ConfirmationDialog\";\r\nimport { DeleteForeverTwoTone, LinkTwoTone } from \"@material-ui/icons\";\r\nimport uuid from \"uuid-random\";\r\nimport moment from 'moment';\r\nimport { api, Context } from '../../Portal';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faTimesCircle } from '@fortawesome/free-solid-svg-icons';\r\n\r\nimport Popover from \"../../components/Popover\";\r\nimport ProductCard from \"../../components/ProductCard\";\r\nimport datatableStylesAlt from \"../../static/datatables-styles-alt\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n paddingTop: \".75rem\",\r\n paddingLeft: \".75rem\",\r\n paddingRight: \".75rem\",\r\n '& > * + *': {\r\n marginLeft: theme.spacing(2),\r\n },\r\n },\r\n selectProductModal: {\r\n backgroundColor: '#DEEBF1',\r\n },\r\n categoryRow: {\r\n width: '100%',\r\n justifyContent: 'flex-start',\r\n alignItems: 'center',\r\n borderTop: '1px solid #016895',\r\n borderBottom: '1px solid #016895',\r\n backgroundColor: 'transparent',\r\n height: '50px',\r\n },\r\n categoryList: {\r\n width: '100%',\r\n height: '100%',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n alignContent: 'center',\r\n display: 'flex',\r\n fontSize: '15pt',\r\n paddingRight: '30px',\r\n },\r\n link: {\r\n color: '#016895',\r\n fontWeight: '700',\r\n fontSize: '11pt',\r\n paddingLeft: \"1rem\",\r\n paddingRight: \"1rem\",\r\n cursor: 'pointer',\r\n \"&:link\": {\r\n color: '#016895',\r\n textDecoration: \"none\",\r\n },\r\n \"&:hover\": {\r\n color: \"#26A9E1\",\r\n textDecoration: \"none\",\r\n },\r\n \"&:visited\": {\r\n color: '#016895',\r\n textDecoration: \"none\",\r\n },\r\n \"&:active\": {\r\n color: \"#26A9E1\",\r\n textDecoration: \"none\",\r\n },\r\n },\r\n linkActive: {\r\n color: '#26A9E1',\r\n fontWeight: '700',\r\n fontSize: '11pt',\r\n paddingLeft: \"1rem\",\r\n paddingRight: \"1rem\",\r\n \"&:hover\": {\r\n color: \"#26A9E1\",\r\n textDecoration: \"none\",\r\n },\r\n },\r\n activeCategory: {\r\n display: 'flex',\r\n flexFlow: 'row wrap',\r\n width: '100%',\r\n marginBottom: '20px',\r\n },\r\n inactiveCategory: {\r\n display: 'flex',\r\n flexFlow: 'row wrap',\r\n width: '100%',\r\n marginBottom: '20px',\r\n },\r\n products: {\r\n display: \"flex\",\r\n paddingLeft: 0,\r\n paddingRight: 0,\r\n maxWidth: \"100%\",\r\n },\r\n left: {\r\n paddingTop: \"2em\",\r\n paddingBottom: \"1em\",\r\n height: \"70vh\",\r\n width: '70%',\r\n overflowY: \"auto\",\r\n },\r\n dividerColumn: {\r\n width: '5%',\r\n },\r\n right: {\r\n paddingTop: \"2em\",\r\n paddingBottom: \"1em\",\r\n width: '30%'\r\n },\r\n productItem: {\r\n paddingRight: '10px',\r\n paddingBottom: '10px',\r\n },\r\n list: {\r\n border: \"0px solid \" + theme.palette.primary.dark\r\n\r\n },\r\n buttonContainer: {\r\n padding: \"0\",\r\n width: '100%',\r\n },\r\n confirmButton: {\r\n backgroundColor: '#016895',\r\n color: '#FFFFFF',\r\n cursor: 'pointer',\r\n width: '100%',\r\n '&:hover': {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n cancelButton: {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n cursor: 'pointer',\r\n width: '100%',\r\n '&:hover': {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n deleteIcon: {\r\n color: '#016895',\r\n cursor: 'pointer',\r\n width: '20px',\r\n },\r\n categoryDivider: {\r\n width: '100%',\r\n marginBottom: '8px',\r\n color: '#FFFFFF',\r\n backgroundColor: '#016895',\r\n padding: '5px 0',\r\n },\r\n}));\r\n\r\nconst initialState = {\r\n products: [],\r\n previousProducts: []\r\n}\r\n\r\nconst url = \"/api/v1/equipment\";\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case \"add-product\":\r\n return {\r\n products: [\r\n ...state.products,\r\n {\r\n ...action.product,\r\n serialNo: \"\",\r\n onChange: (product, serialNo) => { product.serialNo = serialNo; }\r\n }\r\n ]\r\n }\r\n\r\n case \"remove-product\":\r\n state.products.splice(action.index, 1);\r\n return {\r\n products: [...state.products]\r\n }\r\n case \"reset-products\":\r\n state.products = [...initialState.previousProducts];\r\n return {\r\n products: [...state.products]\r\n }\r\n case \"set-products\":\r\n if (action.products) {\r\n initialState.previousProducts = [...action.products];\r\n return {\r\n products: [...action.products]\r\n }\r\n }\r\n return {\r\n products: []\r\n\r\n\t\t\t\t}\r\n\t\t\tdefault:\r\n\t\t\t\treturn { products: [] }\r\n }\r\n}\r\n\r\nconst SelectProducts = ({ columns, models, show, onExited, selected, ...props }) => {\r\n const [state, dispatch] = useContext(Context);\r\n const [localState, localDispatch] = useReducer(reducer, initialState)\r\n const [open, setOpen] = useState(false);\r\n const [dialogOpen, setDialogOpen] = useState(false);\r\n const [cells, setCells] = useState([]);\r\n\t\tconst [activeCategory, setActiveCategory] = useState('');\r\n\t\tconst [loaded, setLoaded] = useState(false);\r\n\r\n const classes = useStyles();\r\n\r\n\tuseEffect(() => {\r\n\t\t\tif (!loaded) {\r\n\t\t\t\tsetCells(buildCells(columns));\r\n\t\t\t\tsetDialogOpen(false);\r\n\t\t\t\tsetOpen(show);\r\n\t\t\t\tlocalDispatch({ type: \"set-products\", products: selected });\r\n\t\t\t\tsetLoaded(true);\r\n\t\t\t}\r\n }, [columns, show, selected]);\r\n\r\n const onProductSelected = (model) => {\r\n const utcOffset = Math.ceil(moment().utcOffset() /60);\r\n\t\t\tapi.get(state.host + `${url}/${model.MODEL}/delivery/${utcOffset}`, state.credentials)\r\n\t\t\t\t.then(({ data }) => {\r\n\t\t\t\t\tlet line = {\r\n\t\t\t\t\t\t...model,\r\n\t\t\t\t\t\tREQBYDATE: data.date,\r\n\t\t\t\t\t\tREQBYTIME: data.time,\r\n\t\t\t\t\t\tMINREQBYDATE: data.date,\r\n\t\t\t\t\t\tREQSTARTDATE: data.startDate,\r\n\t\t\t\t\t\tREQSTARTTIME: data.startTime,\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlocalDispatch({ type: \"add-product\", product: line });\r\n\r\n\t\t\t\t});\r\n }\r\n\r\n const removeProduct = (row, index) => {\r\n localDispatch({ type: \"remove-product\", index: index });\r\n }\r\n\r\n const resetProducts = async () => {\r\n if (localState.products.length !== initialState.previousProducts.length) {\r\n handleDialogClickOpen();\r\n } else {\r\n await localDispatch({ type: \"reset-products\" });\r\n setOpen(false);\r\n }\r\n }\r\n\r\n const handleDialogClickOpen = () => {\r\n setDialogOpen(true);\r\n };\r\n\r\n const handleStayClick = () => {\r\n setDialogOpen(false);\r\n };\r\n const handleOkClick = () => {\r\n closeSelectProducts();\r\n }\r\n\r\n const closeSelectProducts = async () => {\r\n await localDispatch({ type: \"reset-products\" });\r\n setDialogOpen(false);\r\n setOpen(false);\r\n }\r\n\r\n const buildCells = (columns) => {\r\n let cells = [];\r\n cells.push({\r\n name: columns[2].caption,\r\n selector: columns[2].fieldID,\r\n compact: true,\r\n cell: (row, index) => {\r\n if (row.highEnd === \"Yes\") {\r\n return (\r\n \r\n Authorise\r\n \r\n }\r\n >\r\n \r\n \r\n )\r\n }\r\n return null;\r\n },\r\n width: \"12px\",\r\n });\r\n cells.push({\r\n name: columns[0].caption,\r\n selector: columns[0].fieldID,\r\n sortable: true\r\n });\r\n cells.push({\r\n name: columns[1].caption,\r\n selector: columns[1].fieldID,\r\n sortable: true,\r\n wrap: true,\r\n width: '200px',\r\n });\r\n\r\n cells.push({\r\n title: \"\",\r\n sortable: false,\r\n compact: true,\r\n cell: (row, index) => (\r\n \r\n removeProduct(row, index)}\r\n >\r\n \r\n \r\n \r\n ),\r\n width: '20px',\r\n });\r\n\r\n return cells;\r\n }\r\n\r\n return (\r\n onExited(localState.products)}\r\n onEscapeKeyDown={() => onExited(localState.products)}\r\n showTitle={true}\r\n tall\r\n {...props}\r\n >\r\n \r\n \r\n \r\n {models.map((categories, index) => {\r\n if (index === 0 && activeCategory === '') { setActiveCategory(categories[0].category); }\r\n return (\r\n
\r\n \r\n { index === 0 ? '' : '|'} \r\n \r\n { setActiveCategory(categories[0].category) }}\r\n className={activeCategory === categories[0].category ? classes.linkActive : classes.link}\r\n key={uuid()}\r\n >\r\n {categories[0].category}\r\n \r\n
\r\n )\r\n })}\r\n \r\n {'|'}\r\n \r\n resetProducts()}\r\n className={classes.link}\r\n key={uuid()}\r\n >\r\n CLOSE\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {models.map((categories) => {\r\n return (\r\n \r\n \r\n }\r\n labelPlacement=\"start\"\r\n label={\r\n \r\n {categories[0].category}\r\n \r\n }\r\n />\r\n \r\n {categories.map((product, index) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setOpen(false)}\r\n className={classes.confirmButton}\r\n >\r\n CONFIRM\r\n \r\n \r\n \r\n resetProducts(initialState.products.length !== initialState.previousProducts.length)}\r\n >\r\n CANCEL\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SelectProducts;","import { useContext, useEffect, useState } from \"react\";\r\nimport { api, Context } from \"../Portal\";\r\n\r\nconst customerConsignedstockUrl = \"/api/v1/equipment/consigned-stock\";\r\n\r\nconst useGetConsignmentStock = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [stock, setStock] = useState([]);\r\n\r\n useEffect(() => {\r\n if (state.loadConsignedStock && state.selectedCustomer) {\r\n api.get(state.host + customerConsignedstockUrl, state.credentials)\r\n .then(({ data }) => {\r\n setStock(data);\r\n dispatch({ type: \"LOADED-CONSIGNED-STOCK\" });\r\n })\r\n }\r\n }, [state.loadConsignedStock, state.selectedCustomer]);\r\n\r\n return stock;\r\n}\r\n\r\nexport default useGetConsignmentStock;","import { useContext, useEffect, useState } from \"react\";\r\nimport { IconButton, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Button, makeStyles } from \"@material-ui/core\";\r\nimport { AllInclusive, DeleteForeverTwoTone } from \"@material-ui/icons\";\r\nimport uuid from \"uuid-random\";\r\nimport { buildProductRow } from \"./buildForm\";\r\nimport SelectProducts from \"./select-products\";\r\nimport useGetConsignmentStock from '../../hooks/useGetConsignmentStock';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faTimesCircle } from '@fortawesome/free-solid-svg-icons'\r\nimport moment from 'moment';\r\nimport { api, Context } from '../../Portal';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n margin: \"4px 3px 8px 3px\"\r\n },\r\n table: {\r\n border: \"0px solid \" + theme.palette.primary.dark,\r\n },\r\n titleBar: {\r\n ...theme.titleBar,\r\n fontSize: \"10pt\",\r\n paddingTop: 4,\r\n paddingBottom: 4,\r\n backgroundColor: '#016895',\r\n border: '1px solid #016895',\r\n },\r\n subTitleBar: {\r\n fontSize: \"10pt\",\r\n paddingTop: 4,\r\n paddingBottom: 4,\r\n backgroundColor: '#EDEDEF',\r\n },\r\n button: {\r\n marginLeft: \"5px\",\r\n },\r\n deleteIcon: {\r\n color: '#016895',\r\n paddingLeft: '40px',\r\n cursor: 'pointer',\r\n }\r\n}));\r\n\r\nconst url = \"/api/v1/equipment\";\r\n\r\n\r\n\r\nconst onProductSelected = (model) => {\r\n \r\n}\r\n\r\nconst buildColumns = (columns) => {\r\n let cells = [...columns];\r\n\r\n cells.splice(2, 0,\r\n {\r\n caption: \"\",\r\n fieldID: \"highEnd\",\r\n no: \"98\"\r\n },\r\n {\r\n caption: \"Consignment Serial No\",\r\n fieldID: \"serialNo\",\r\n no: \"99\",\r\n }\r\n );\r\n\r\n return cells;\r\n}\r\n\r\nconst ProductGrid = ({ consignmentProductsSelected, columns, data, models, onChange, onUpdate, editable, transfer, ...props }) => {\r\n const [state, dispatch] = useContext(Context);\r\n\t\tconst [productData, setProductData] = useState([]);\r\n\t\tconst [consignmentProducts, setConsignmentProducts] = useState([]);\r\n const [openProductSelection, setOpenProductSelection] = useState(false);\r\n const [productsSelected, setProductsSelected] = useState([]);\r\n const [cells, setCells] = useState([]);\r\n const stock = useGetConsignmentStock();\r\n\r\n const classes = useStyles();\r\n\r\n\tuseEffect(() => {\r\n\t\t\t\tif (consignmentProductsSelected) {\r\n\t\t\t\t\tstate.consignmentProductsSelected = consignmentProductsSelected;\r\n\t\t\t\t}\r\n setProductData(data);\r\n setCells(buildColumns(columns))\r\n }, [data, columns, consignmentProductsSelected, state]);\r\n\r\n\t\tuseEffect(() => {\r\n\t\t\tif (!Boolean(state.consignmentProductsSelected)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tgetProducts(state.consignmentProductsSelected.products)\r\n\t\t\t\t.then((products) => {\r\n\t\t\t\t\tsetProductData(products);\r\n\t\t\t\t\tonChange(products);\r\n\t\t\t\t\tdispatch({ type: \"CLEAR-CONSIGNMENT-PRODUCTS\" });\r\n\t\t\t\t});\r\n\t\t}, [state.consignmentProductsSelected])\r\n\r\n const getProducts = async (products) => {\r\n return await Promise.all(products\r\n .map(async (product) => {\r\n return await transformConsignedStock(product, models)\r\n }\r\n ));\r\n }\r\n\r\n const transformConsignedStock = async (item, models) => {\r\n\r\n let model = models.map(categories => (categories.find(x => x.MODEL === item.model)))\r\n .find(x => Boolean(x));\r\n\r\n const utcOffset = Math.ceil(moment().utcOffset() / 60);\r\n return await api.get(state.host + `${url}/${model.MODEL}/delivery/${utcOffset}`, state.credentials)\r\n .then(({ data }) => {\r\n model = {\r\n ...model,\r\n REQBYDATE: data.date,\r\n REQBYTIME: data.time,\r\n iREQBYDATE: data.date,\r\n iREQBYTIME: data.time,\r\n\t\t\t\t\t\t\t\t\t\tMINREQBYDATE: item.serialNumber ? data.startDate : data.date,\r\n\t\t\t\t\t\t\t\t\t\tREQSTARTDATE: data.startDate,\r\n\t\t\t\t\t\t\t\t\t\tREQSTARTTIME: data.startTime,\r\n guid: uuid(),\r\n }\r\n return {\r\n ...model,\r\n serialNo: item.serialNumber,\r\n storeCode: item.storeCode,\r\n onChange: (product, serialNo, storeCode, guid) => { product.serialNo = serialNo; product.storeCode = storeCode; product.guid = guid; }\r\n }\r\n });\r\n }\r\n\r\n const removeProduct = (product) => {\r\n let products = [...productData];\r\n\r\n let found = products.findIndex(item => item.MODEL === product.MODEL);\r\n if (found >= 0) {\r\n products.splice(found, 1);\r\n }\r\n\r\n setProductData(products);\r\n onChange(products);\r\n }\r\n\r\n const onProductSelectionConfirmation = (selectedProducts) => {\r\n // TODO: add action parameter for \"cancel\" to not add selectedProducts - or copy from productsSelected as set in handleAddProducts\r\n selectedProducts.map((product) => {\r\n if (!product.iREQBYDATE) {\r\n product.iREQBYDATE = product.REQBYDATE;\r\n }\r\n if (!product.iREQBYTIME) {\r\n product.iREQBYTIME = product.REQBYTIME;\r\n }\r\n if (!product.guid) {\r\n product.guid = uuid();\r\n }\r\n });\r\n setProductData(selectedProducts);\r\n setOpenProductSelection(false);\r\n\r\n onChange(selectedProducts);\r\n }\r\n\r\n const handleAddProducts = () => {\r\n setProductsSelected([...productData]);\r\n setOpenProductSelection(true);\r\n }\r\n\r\n const handleProductUpdated = (product) => {\r\n\t\twindow.event.preventDefault();\r\n\t\tlet found = {}\r\n\t\tlet products = [...productData];\r\n\t\tif (product.currentTarget) {\r\n\t\t\tfound = products.findIndex(item => item.guid === product.currentTarget.attributes.guid.value);\r\n\t\t\tif (found >= 0) {\r\n\t\t\t\tif (product.currentTarget.value !== products[found].iREQBYDATE) {\r\n\t\t\t\t\tproducts[found].REQBYTIME = '10:00';\r\n\t\t\t\t\tproducts[found].REQBYDATE = product.currentTarget.value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tproducts[found].REQBYDATE = product.currentTarget.value;\r\n\t\t\t\t\tproducts[found].REQBYTIME = products[found].iREQBYTIME;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfound = products.findIndex(item => item.guid === product.guid);\r\n\t\t\tproducts[found] = product;\r\n\t\t}\r\n\t\t\r\n\t\tsetProductData(products);\r\n\t\tonUpdate(productData);\r\n }\r\n\r\n return (\r\n <>\r\n {openProductSelection && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Select Products\r\n \r\n \r\n \r\n \r\n {cells.map((cell, index) => {\r\n return (\r\n \r\n {cell.caption}\r\n \r\n )\r\n })}\r\n \r\n Remove\r\n \r\n \r\n \r\n \r\n {productData.map((product, index) => {\r\n return (\r\n \r\n {cells.map((cell) => {\r\n return (\r\n buildProductRow(cell, product, stock[product.MODEL], editable, transfer, handleProductUpdated)\r\n )\r\n })}\r\n \r\n {editable &&\r\n removeProduct(product)}\r\n >\r\n \r\n \r\n }\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ProductGrid;","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Card, CardContent, CardHeader, Grid } from '@material-ui/core';\r\nimport { buildRentalForm } from './buildForm';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n card: {\r\n ...theme.body,\r\n border: \"0px solid \" + theme.palette.primary.dark,\r\n backgroundColor: '#F4F4F6',\r\n },\r\n header: {\r\n paddingTop: \".5rem\",\r\n paddingBottom: \".5rem\",\r\n ...theme.titleBar,\r\n backgroundColor: \"#E3E4E6\",\r\n color: \"#212F41\",\r\n }\r\n}));\r\n\r\nconst FieldGroup = ({ fields, height, children, staff, contact, requestor, onContactChanged, onRequestorChanged, classes, ...props }) => {\r\n const localClasses = useStyles();\r\n\r\n const padFields = () => {\r\n let groupHeight = 0;\r\n if (Boolean(children)) {\r\n groupHeight = height - children.length\r\n }\r\n else{\r\n groupHeight = height - fields.length; \r\n }\r\n\r\n let emptyFields = [];\r\n\r\n if (groupHeight > 0) {\r\n emptyFields = Array.from({ length: groupHeight }, (v, i) => i);\r\n }\r\n\r\n return (\r\n <>\r\n {Boolean(children) ? children : fields.map(field => (buildRentalForm(field, 12, staff, contact, onContactChanged, requestor, onRequestorChanged, classes)))}\r\n {emptyFields.map(() => (\r\n \r\n  \r\n \r\n ))}\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {padFields()}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FieldGroup;","import { useEffect, useState } from \"react\";\r\nimport { Button, Grid, Typography, makeStyles } from \"@material-ui/core\";\r\n\r\nimport Popover from \"../../components/Popover\";\r\nimport FieldGroup from \"../../components/controls/FieldGroup\";\r\n\r\nconst useStyles = makeStyles((theme) => ({}));\r\n\r\nconst ConfirmHighEnd = ({ show, onExited, message }) => {\r\n const [open, setOpen] = useState(false);\r\n const [status, setStatus] = useState(\"\");\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n setOpen(show);\r\n }, [show])\r\n\r\n const handleCancel = () => {\r\n setStatus(\"cancelled\");\r\n setOpen(false);\r\n }\r\n\r\n const handleApprove = () => {\r\n setStatus(\"approved\");\r\n setOpen(false);\r\n }\r\n\r\n const handleExited = () => {\r\n if (status === \"cancelled\") {\r\n onExited(status);\r\n }\r\n\r\n if (status === \"not approved\") {\r\n onExited(status);\r\n }\r\n\r\n if (status === \"approved\") {\r\n onExited(status);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n Accept\r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ConfirmHighEnd;","import { useContext, useEffect, useState } from \"react\";\r\nimport { Button, Grid, makeStyles, TextField, Typography } from \"@material-ui/core\";\r\n\r\nimport { api, Context } from \"../../Portal\";\r\nimport Popover from \"../../components/Popover\";\r\nimport DropdownField from \"../../components/controls/DropdownField\";\r\nimport InputField from \"../../components/controls/InputField\";\r\nimport FieldGroup from \"../../components/controls/FieldGroup\";\r\n\r\nconst url = \"/api/v1/users/authorise\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n disabled: {\r\n \"& input\": {\r\n color: \"#545454\",\r\n fontWeight: \"bold\",\r\n }\r\n },\r\n button: {\r\n marginLeft: \"8px\",\r\n }\r\n}))\r\nconst ApproveOrder = ({ show, onExited, staff, contact, requestor, message, ...props }) => {\r\n const [state, dispatch] = useContext(Context);\r\n const [open, setOpen] = useState(false);\r\n const [status, setStatus] = useState(\"\");\r\n const [people, setPeople] = useState({ authorisers: [], requestors: [], contacts: [] });\r\n const [scopedRequestor, setRequestor] = useState({});\r\n const [scopedContact, setContact] = useState({});\r\n const [approver, setApprover] = useState(\"\");\r\n const [approverPassword, setApproverPassword] = useState(\"\");\r\n const [error, setError] = useState(false);\r\n\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n setOpen(show);\r\n if (Boolean(staff)) {\r\n setPeople(staff);\r\n }\r\n setApproverPassword(\"\");\r\n setApprover(\"\");\r\n setStatus(\"\");\r\n setError(\"\");\r\n setRequestor(requestor);\r\n setContact(contact);\r\n }, [show, staff, requestor, contact])\r\n\r\n const handleCancel = () => {\r\n setStatus(\"cancelled\");\r\n setOpen(false);\r\n }\r\n\r\n const handleHold = () => {\r\n setStatus(\"not approved\");\r\n setOpen(false);\r\n }\r\n\r\n const handleApprove = () => {\r\n setError(false);\r\n api.post(state.host + url, { userName: approver, password: approverPassword }, state.credentials)\r\n .then(response => {\r\n let result = response.data;\r\n switch (result.authorised) {\r\n case true:\r\n setStatus(\"approved\");\r\n setApproverPassword(\"\");\r\n setApprover(\"\");\r\n setOpen(false);\r\n break;\r\n\r\n case false:\r\n setError(true);\r\n setApproverPassword(\"\");\r\n break;\r\n }\r\n })\r\n .catch((error) => {\r\n setStatus(\"cancelled\");\r\n setApproverPassword(\"\");\r\n onExited(status);\r\n })\r\n }\r\n\r\n const handleExited = () => {\r\n if (status === \"cancelled\") {\r\n onExited(status);\r\n setApproverPassword(\"\");\r\n setApprover(\"\");\r\n }\r\n\r\n if (status === \"not approved\") {\r\n onExited(status, { CONTACTPERSON: scopedContact, REQNURSE: scopedRequestor });\r\n setApproverPassword(\"\");\r\n setApprover(\"\");\r\n }\r\n\r\n if (status === \"approved\") {\r\n onExited(status, { CONTACTPERSON: scopedContact, REQNURSE: scopedRequestor, APPROVER: approver });\r\n setApproverPassword(\"\");\r\n setApprover(\"\");\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n {scopedContact.name &&\r\n \r\n }\r\n {scopedRequestor.name &&\r\n \r\n }\r\n ({ value: person.portalUserEmail, description: person.name }))}\r\n onChange={(event) => setApprover(event.target.value)}\r\n xs={12}\r\n />\r\n \r\n setApproverPassword(event.target.value)}\r\n />\r\n \r\n\r\n \r\n {error && (\r\n \r\n Invalid credentials supplied\r\n \r\n )}\r\n \r\n \r\n\r\n\r\n \r\n \r\n Approve\r\n \r\n \r\n Hold\r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ApproveOrder;","import React, { useContext } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Context } from '../../Portal';\r\nimport ConfirmHighEnd from './ConfirmHighEnd';\r\nimport ApproveOrder from './ApproveOrder';\r\n\r\nconst useStyles = makeStyles((theme) => ({}));\r\n\r\nconst Authorisation = ({show, onExited, staff, contact, requestor }) => {\r\n const [state, dispatch] = useContext(Context);\r\n\r\n switch (state.customerDetail?.rentalAuthorizationType) {\r\n case \"High-End - Question Only\":\r\n return (\r\n \r\n );\r\n\r\n case \"High-End - Authorization\":\r\n return (\r\n \r\n );\r\n\r\n case \"All Authorization\":\r\n return (\r\n \r\n );\r\n\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nexport default Authorisation;","import { useReducer } from \"react\";\r\nimport { useContext, useEffect, useState } from \"react\";\r\nimport { api, Context } from \"../Portal\";\r\n\r\nconst generalSectionUrl = \"/views/v1/create-order/general\";\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case \"set-wards\":\r\n return {\r\n ...state,\r\n wards: action.payload,\r\n }\r\n\r\n case \"preselect-ward\": \r\n return {\r\n ...state,\r\n preselectedWard: action.payload,\r\n }\r\n }\r\n}\r\n\r\nconst useCustomerInformation = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [local, dispatchLocal] = useReducer(reducer, { wards: [] });\r\n\r\n const [values, setValues] = useState({ CUSTOMER: \"\", WARD: \"\", COSTCENTRE: \"\" });\r\n const [customers, setCustomers] = useState([]);\r\n const [costCentres, setCostCentres] = useState([]);\r\n const [costCentreRequired, setCostCentreRequired] = useState(false);\r\n\r\n useEffect(() => {\r\n setValues({ CUSTOMER: \"\", WARD: \"\", COSTCENTRE: \"\" });\r\n setCustomers(state.user.customers);\r\n\r\n if (state.user.customers.length > 0) {\r\n let detail = state.user.customers.find(customer => customer.no === state.user.customers[0].no);\r\n dispatch({ type: \"CUSTOMER-SELECTED\", payload: { selectedCustomer: state.user.customers[0].no, customerDetail: detail } });\r\n onCustomerSelected({ target: { value: state.user.customers[0].no } });\r\n }\r\n\r\n //return () => {\r\n // dispatch({ type: \"CLEAR-CUSTOMER-SELECTION\" });\r\n // setValues({ CUSTOMER: \"\", WARD: \"\", COSTCENTRE: \"\" });\r\n //}\r\n }, [state.user.customers, dispatch]);\r\n\r\n useEffect(() => {\r\n if (local.wards.length > 0) {\r\n onWardSelected({ target: { value: local.wards[0].description } });\r\n return;\r\n }\r\n\r\n if (Boolean(local.preselectedWard)) {\r\n onWardSelected({ target: { value: local.preselectedWard } })\r\n }\r\n }, [local.wards.length, local.preselectedWard]);\r\n\r\n const onCustomerSelected = (event, ward) => {\r\n let value = event.target.value;\r\n let detail = state.user.customers.find(customer => customer.no === value);\r\n\r\n setValues({ CUSTOMER: value, WARD: \"\", COSTCENTRE: \"\" });\r\n\r\n setCostCentreRequired(detail?.costCentreMandatory === \"Yes\");\r\n api.get(state.host + generalSectionUrl, { ...state.credentials, headers: { ...state.credentials.headers, \"acl-customer\": value } })\r\n .then(({ data }) => {\r\n dispatch({ type: \"CUSTOMER-SELECTED\", payload: { selectedCustomer: value, customerDetail: detail } });\r\n dispatchLocal({ type: \"set-wards\", payload: data});\r\n dispatchLocal({ type: \"preselect-ward\", payload: ward });\r\n });\r\n }\r\n\r\n const onWardSelected = (event) => {\r\n let value = event.target.value;\r\n\r\n setValues((prev) => ({ ...prev, WARD: value, COSTCENTRE: \"\" }));\r\n\r\n let ward = local.wards.find(ward => ward.description === value);\r\n\r\n setCostCentres(ward.costCentres);\r\n dispatch({ type: \"WARD-SELECTED\", payload: { selectedWard: value } });\r\n\r\n if (ward.costCentres.length > 0) {\r\n let defaultCostCentre = ward.costCentres.find(costCentre => costCentre.default === \"Yes\");\r\n\r\n setValues((prev) => ({ ...prev, COSTCENTRE: defaultCostCentre.costCentreCode }));\r\n \r\n return;\r\n }\r\n\r\n if (costCentreRequired) {\r\n dispatch({ type: \"SHOW-ERROR\", payload: { heading: \"Missing Cost Centers\", message: `${value} Ward has no cost centers` } });\r\n }\r\n }\r\n\r\n const onCostCentreSelected = (event) => {\r\n setValues((prev) => ({ ...prev, COSTCENTRE: event.target.value }));\r\n }\r\n\r\n return [values, costCentreRequired, customers, local.wards, costCentres, onCustomerSelected, onWardSelected, onCostCentreSelected];\r\n}\r\n\r\nexport default useCustomerInformation;","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Popover from '../../components/Popover';\r\nimport { Button, Grid, Typography } from '@material-ui/core';\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n button: {\r\n marginRight: \"2em\",\r\n },\r\n actions: {\r\n marginTop: \"2em\"\r\n }\r\n}));\r\n\r\nconst Success = ({ show, onExited, ...props }) => {\r\n const [open, setOpen] = useState(false);\r\n const [exitState, setExitState] = useState(\"\");\r\n\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n setOpen(show);\r\n\r\n }, [show]);\r\n\r\n const handleCreateAnother = () => {\r\n setExitState(\"new\");\r\n setOpen(false);\r\n }\r\n\r\n const handleReturnHome = () => {\r\n setExitState(\"dashboard\");\r\n setOpen(false);\r\n }\r\n\r\n return (\r\n onExited(exitState)}\r\n ignoreWidth\r\n >\r\n \r\n Rental Order has been created successfully.\r\n \r\n \r\n What would you like to do next?\r\n \r\n\r\n \r\n \r\n Create another\r\n \r\n \r\n Return to dashboard\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Success;","import React, { useContext, useEffect, useReducer, useState } from 'react';\r\nimport { useForm, FormProvider } from \"react-hook-form\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Collapse, Container, Grid } from '@material-ui/core';\r\nimport { ExpandMoreTwoTone } from '@material-ui/icons';\r\n\r\nimport { api, Context } from '../../Portal';\r\nimport Section from '../../components/controls/Section';\r\nimport DropdownField from '../../components/controls/DropdownField';\r\nimport { extractControl, buildDeliveryForm } from '../../components/controls/buildForm';\r\nimport ProductGrid from '../../components/controls/ProductGrid';\r\nimport FieldGroup from '../../components/controls/FieldGroup';\r\nimport Authorisation from './Authorisation';\r\nimport moment from 'moment';\r\nimport useCustomerInformation from '../../hooks/useCustomerInformation';\r\nimport Success from './Success';\r\nimport useRedirect from '../../hooks/useRedirect';\r\n\r\nconst additionalSectionUrl = \"/views/v1/create-order/additional\";\r\nconst url = \"/api/v1/rentalorders\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n delivery: {\r\n borderBottom: \"0px solid \" + theme.palette.primary.dark,\r\n borderLeft: \"0px solid \" + theme.palette.primary.dark,\r\n borderRight: \"0px solid \" + theme.palette.primary.dark,\r\n width: \"100%\",\r\n margin: \"0\",\r\n maxWidth: \"100%\",\r\n padding: \"1rem\",\r\n backgroundColor: '#F4F4F6',\r\n borderWidth: '0px',\r\n },\r\n deliveryBar: {\r\n ...theme.titleBar,\r\n border: \"0px solid \" + theme.palette.primary.dark,\r\n marginLeft: \"4px\",\r\n marginRight: \"4px\",\r\n backgroundColor: '#E3E4E6',\r\n },\r\n deliveryOpening: {\r\n ...theme.titleBar,\r\n borderTop: \"0px solid \" + theme.palette.primary.dark,\r\n borderLeft: \"0px solid \" + theme.palette.primary.dark,\r\n borderRight: \"0px solid \" + theme.palette.primary.dark,\r\n marginLeft: \"4px\",\r\n marginRight: \"4px\",\r\n backgroundColor: '#E3E4E6',\r\n },\r\n collapse: {\r\n width: \"100%\",\r\n maxWidth: \"100%\",\r\n marginLeft: \"4px\",\r\n marginRight: \"4px\",\r\n },\r\n defaultBorder: {\r\n \"& fieldset\": {\r\n border: \"1px solid rgba(1, 104, 149, .5)\", \r\n },\r\n \"& input:disabled fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n \"& label\": {\r\n color: \"rgba(1, 104, 149, 1)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n },\r\n },\r\n disabledBorder: {\r\n \"& fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n \"& label\": {\r\n color: \"rgba(0, 0, 0, .5)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n }\r\n}));\r\n\r\nconst unifyShippingAddress = (customer, shipTo) => {\r\n if (!shipTo || Object.entries(shipTo).length === 0) {\r\n return {\r\n name: customer.name,\r\n address: customer.address,\r\n address2: \"\",\r\n city: customer.city,\r\n postCode: customer.postCode\r\n }\r\n }\r\n\r\n return {\r\n name: shipTo.name,\r\n address: shipTo.address,\r\n address2: \"\",\r\n city: shipTo.city,\r\n postCode: shipTo.postCode\r\n }\r\n}\r\n\r\nconst transformModels = (models) => {\r\n\tif (models) {\r\n\t\treturn models.map(categories => (\r\n\t\t\tcategories.map(product => ({\r\n\t\t\t\tcategory: product.category,\r\n\t\t\t\tMODEL: product.model,\r\n\t\t\t\tMODELDESCRIPTION: product.description,\r\n\t\t\t\tSHORTDESCRIPTION: product.shortDescription,\r\n\t\t\t\tREQBYDATE: \"\",\r\n\t\t\t\tREQBYTIME: \"\",\r\n\t\t\t\timage: product.image,\r\n\t\t\t\thighEnd: product.highEnd\r\n\t\t\t}))\r\n\t\t));\r\n\t}\r\n}\r\n\r\nlet form = {};\r\n\r\nconst CreateOrder = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [information, costCentreRequired, customers, wards, costCentres, onCustomerSelected, onWardSelected, onCostCentreSelected] = useCustomerInformation();\r\n\r\n const [communityDelivery, setCommunityDelivery] = useState(false);\r\n const [row1, setRow1] = useState({ height: 0, groups: [] });\r\n const [row2, setRow2] = useState({ height: 0, groups: [] });\r\n const [delivery, setDelivery] = useState([]);\r\n const [comment, setComment] = useState([]);\r\n const [contactDetails, setContactDetails] = useState([]);\r\n const [gridColumns, setGridColumns] = useState([]);\r\n const [models, setModels] = useState([]);\r\n\r\n const [postCodes, setPostCodes] = useState([]);\r\n\r\n const [productsOrdered, setProductsOrdered] = useState([]);\r\n const [showAddress, setShowAddress] = useState(false);\r\n const [shippingAddress, setShippingAddress] = useState({});\r\n\r\n const [showApproval, setShowApproval] = useState(false);\r\n const [autoApproval, setAutoApproval] = useState(false);\r\n const [staff, setStaff] = useState({ authorisers: [], requestors: [], contacts: [] });\r\n const [contact, setContact] = useState({\r\n name: '',\r\n surname: '',\r\n firstNames: ''\r\n });\r\n const [requestor, setRequestor] = useState({\r\n name: '',\r\n surname: '',\r\n firstNames: ''\r\n });\r\n const [showSuccess, setShowSuccess] = useState(false);\r\n\r\n const formMethods = useForm();\r\n const { handleSubmit, reset } = formMethods;\r\n const { redirectToHome } = useRedirect();\r\n\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n form = {};\r\n return () => {\r\n setDefaults();\r\n dispatch({ type: \"CLEAR-CUSTOMER-SELECTION\" })\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!Boolean(information.WARD)) {\r\n setDefaults();\r\n }\r\n }, [information.WARD]);\r\n\r\n useEffect(() => {\r\n if (Boolean(state.selectedWard)) {\r\n getFormData();\r\n dispatch({ type: \"LOAD-CONSIGNED-STOCK\" });\r\n }\r\n\r\n let wardPermissions = state.user\r\n .permissions\r\n .find(permission => permission.customerNumber === state.selectedCustomer && permission.ward === state.selectedWard);\r\n\r\n setDefaults();\r\n\r\n if (wardPermissions && wardPermissions.permissionSet.includes(\"Authorize Rental Transaction\")) {\r\n setAutoApproval(true);\r\n return;\r\n }\r\n\r\n if (state.customerDetail?.rentalAuthorizationType === \"No Authorization\") {\r\n setAutoApproval(true);\r\n return;\r\n }\r\n\r\n setAutoApproval(false);\r\n }, [state.selectedWard]);\r\n\r\n useEffect(() => {\r\n\t\t\t\tif (Boolean(state.consignmentProductsSelected)) {\r\n if (state.consignmentProductsSelected && state.selectedCustomer) {\r\n let products = state.consignmentProductsSelected.products;\r\n let ward = products[0].ward;\r\n let singleWard = true;\r\n\r\n for (let index = 1; index < products.length; index++) {\r\n if (products[index].ward !== ward) {\r\n singleWard = false;\r\n break;\r\n }\r\n }\r\n\r\n if (singleWard) {\r\n onCustomerSelected({ target: { value: state.consignmentProductsSelected.customer } }, ward);\r\n return;\r\n }\r\n }\r\n\t\t\t\t\t\tdispatch({ type: \"CONSIGNMENT-PRODUCTS-SELECTED\" });\r\n onCustomerSelected({ target: { value: state.consignmentProductsSelected.customer } });\r\n }\r\n }, [state.consignmentProductsSelected]);\r\n\r\n const setDefaults = () => {\r\n setCommunityDelivery(false);\r\n setRow1({ height: 0, groups: [] });\r\n setRow2({ height: 0, groups: [] });\r\n setDelivery([]);\r\n setComment([]);\r\n setContactDetails([]);\r\n setModels([]);\r\n setPostCodes([]);\r\n //setProductsOrdered([]);- don't set so that it does not clear the list\r\n setShowAddress(false);\r\n setShippingAddress({});\r\n setGridColumns([]);\r\n setStaff({ authorisers: [], requestors: [], contacts: [] });\r\n setContact({\r\n name: '',\r\n surname: '',\r\n firstNames: ''\r\n });\r\n setRequestor({\r\n name: '',\r\n surname: '',\r\n firstNames: ''\r\n });\r\n }\r\n\r\n const getFormData = () => {\r\n api.get(state.host + additionalSectionUrl, state.credentials)\r\n .then(({ data }) => {\r\n setShippingAddress(unifyShippingAddress(state.customerDetail, state.selectedShipTo));\r\n\r\n setCommunityDelivery(data.communityDelivery);\r\n setStaff(data.staff);\r\n setRow1({ height: data.row1Height, groups: data.groupsRow1 });\r\n setRow2({ height: data.row2Height, groups: data.groupsRow2 });\r\n setDelivery(data.delivery);\r\n setComment(data.comment);\r\n setContactDetails(data.contactDetails);\r\n setModels(transformModels(data.models));\r\n setPostCodes(data.postCodes.map(({ postCode1, city, county }) => ({ value: postCode1, description: `${postCode1} ${city} ${county}` })));\r\n setShowAddress(data.communityDelivery);\r\n setGridColumns(data.grid);\r\n });\r\n }\r\n\r\n const onProductsSelected = (selectedProducts) => {\r\n setProductsOrdered(selectedProducts);\r\n }\r\n\r\n const onProductsUpdated = (updatedProducts) => {\r\n setProductsOrdered(updatedProducts);\r\n }\r\n\r\n const handleAddressCollapse = () => {\r\n setShowAddress(!showAddress);\r\n }\r\n\r\n const onApproval = (status, people) => {\r\n setShowApproval(false);\r\n if (status === \"cancelled\") {\r\n return false;\r\n }\r\n\r\n let requestApproved = autoApproval;\r\n\r\n if (status === \"not approved\") {\r\n requestApproved = false;\r\n }\r\n\r\n if (status === \"approved\") {\r\n requestApproved = true;\r\n }\r\n\r\n let {CUSTOMER, WARD, COSTCENTRE, REQBYDATE, REQBYTIME, ...rest} = form;\r\n const utcOffset = Math.ceil(moment().utcOffset() / 60);\r\n let data = {\r\n USEREMAIL: state.user.username,\r\n CUSTOMER: CUSTOMER,\r\n SHIPTOCODE: state.selectedShipTo?.shipToCode ?? \"\",\r\n WARD: WARD,\r\n COSTCENTRE: COSTCENTRE,\r\n CONTACTFIRSTNAMES: contact.firstNames,\r\n CONTACTSURNAME: contact.surname,\r\n REQNURSEFIRSTNAMES: requestor.firstNames,\r\n REQNURSESURNAME: requestor.surname,\r\n APPROVER: people?.APPROVER ?? state.user.username,\r\n UTCOFFSET: utcOffset,\r\n ...rest,\r\n PRODUCTS: productsOrdered.map((product) => {\r\n let { category, highEnd, serialNo, onChange, onUpdate, image, ...rest } = product;\r\n return {\r\n ...rest,\r\n SERIALNO: serialNo\r\n }\r\n }),\r\n APPROVED: requestApproved,\r\n };\r\n\r\n api.post(state.host + url, data, state.credentials)\r\n .then(({ data }) => {\r\n if (Boolean(data.errorMessage)) {\r\n dispatch({ type: \"SHOW-ERROR\", payload: { heading: \"Creating Rental Order\", message: data.errorMessage } });\r\n return;\r\n }\r\n setProductsOrdered([]);\r\n setContact(\"\");\r\n setRequestor(\"\");\r\n reset();\r\n });\r\n }\r\n\r\n const onSubmit = (data) => {\r\n if (contact.name === \"\" || requestor.name === \"\") {\r\n dispatch({ type: \"SHOW-ERROR\", payload: { heading: \"Contact Information\", message: \"Contact information is not complete\" } });\r\n return;\r\n }\r\n if (productsOrdered.length === 0) {\r\n dispatch({ type: \"SHOW-ERROR\", payload: { heading: \"No equipment\", message: \"Please select equipment for this rental order\" } });\r\n return;\r\n }\r\n\r\n form = data;\r\n\r\n if (autoApproval) {\r\n onApproval(\"auto-approve\");\r\n return;\r\n }\r\n\r\n let highEndOrdered = Boolean(productsOrdered.find(product => product.highEnd === \"Yes\"));\r\n\r\n if (highEndOrdered) {\r\n setShowApproval(true);\r\n return;\r\n }\r\n\r\n if (state.customerDetail.rentalAuthorizationType === \"All Authorization\") {\r\n setShowApproval(true);\r\n return;\r\n }\r\n\r\n onApproval(\"auto-approve\")\r\n }\r\n\r\n const onSuccess = (action) => {\r\n setShowSuccess(false);\r\n\r\n if (action === \"new\") {\r\n setProductsOrdered([]);\r\n setContact(\"\");\r\n setRequestor(\"\");\r\n reset();\r\n return;\r\n }\r\n\r\n redirectToHome();\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n ({ value: customer.no, description: customer.name }))}\r\n xs={12}\r\n className={classes.defaultBorder}\r\n />\r\n ({ value: ward.description, description: ward.description }))}\r\n xs={12}\r\n className={classes.defaultBorder}\r\n />\r\n {(costCentreRequired || (costCentres.length > 0 && !costCentreRequired)) && (\r\n ({ value: costCentre.costCentreCode, description: costCentre.costCentreCode }))}\r\n xs={12}\r\n className={classes.defaultBorder}\r\n />\r\n )}\r\n \r\n\r\n\t\t\t\t\t{row1.groups && row1.groups.length > 0 && row1.groups.map(group => (\r\n \r\n ))}\r\n {row2.groups && row2.groups.length > 0 && row2.groups.map(group => (\r\n \r\n ))}\r\n\r\n\t\t\t\t\t\t{gridColumns.length > 0 && (\r\n\t\t\t\t\t\t\t\r\n )}\r\n\r\n {delivery.length > 0 && (\r\n }\r\n className={showAddress ? classes.deliveryOpening : classes.deliveryBar}\r\n >\r\n \r\n \r\n \r\n {delivery.map(field => (buildDeliveryForm(field, communityDelivery, postCodes, shippingAddress, classes)))}\r\n\r\n {contactDetails.map(field => (extractControl(field, classes)))}\r\n \r\n \r\n \r\n
\r\n )}\r\n\r\n {comment.length > 0 && (\r\n \r\n )}\r\n\r\n {row1.groups.length > 0 && (\r\n \r\n \r\n Create Rental Order\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n )}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default CreateOrder;","import React, { useContext, useEffect, useState } from 'react'\r\nimport { Button, Checkbox, FormControlLabel, Grid } from '@material-ui/core'\r\nimport { Context } from '../../Portal'\r\n\r\nconst SetCustomer = ({ show, onExit, xs }) => {\r\n const [state, dispatch] = useContext(Context);\r\n const [selectedCustomer, setSelectedCustomer] = useState({});\r\n const [selectedShipTo, setSelectedShipTo] = useState({});\r\n\r\n useEffect(() => {\r\n setSelectedCustomer(state.selectedCustomer);\r\n setSelectedShipTo(state.selectedShipTo);\r\n }, [state.selectedCustomer, state.selectedShipTo])\r\n\r\n const handleCustomerSelected = (customer) => {\r\n setSelectedCustomer(customer);\r\n\r\n if (customer.shippingAddresses.length > 0) {\r\n setSelectedShipTo(customer.shippingAddresses[0]);\r\n }\r\n else {\r\n setSelectedShipTo({});\r\n }\r\n }\r\n\r\n const handleShipToSelected = (customer, shipTo) => {\r\n setSelectedCustomer(customer);\r\n setSelectedShipTo(shipTo);\r\n }\r\n\r\n const handleClick = (event) => {\r\n event.stopPropagation();\r\n dispatch({ type: \"PROFILE-CUSTOMER-SELECTED\", payload: { selectedCustomer: selectedCustomer, selectedShipTo: selectedShipTo } });\r\n onExit();\r\n }\r\n\r\n return (\r\n show && state.user && (\r\n \r\n\r\n {state.user.customers.map(customer => {\r\n return (\r\n \r\n handleCustomerSelected(customer)}\r\n />}\r\n />\r\n {customer.shippingAddresses.map(shipTo => {\r\n return (\r\n \r\n handleShipToSelected(customer, shipTo)}\r\n />}\r\n />\r\n \r\n )\r\n })}\r\n \r\n )\r\n })}\r\n\r\n \r\n \r\n Select customer\r\n \r\n \r\n \r\n )\r\n )\r\n}\r\n\r\nexport default SetCustomer\r\n","import { useContext, useEffect, useState } from \"react\";\r\nimport { Grid, makeStyles, Slide, Card, List, ListItem, CardContent, ListItemIcon, Checkbox, ListItemText } from \"@material-ui/core\";\r\n\r\nimport { Context } from \"../../Portal\";\r\nimport SetCustomer from \"../login/set-customer\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n heading: {\r\n ...theme.title,\r\n marginLeft: -theme.spacing(2),\r\n width: `calc(100% + ${theme.spacing(4)}px)`,\r\n overflow: \"hidden\"\r\n },\r\n root: {\r\n display: 'flex',\r\n alignItems: \"center\",\r\n '& > *': {\r\n margin: theme.spacing(2),\r\n },\r\n },\r\n card: {\r\n marginTop: theme.spacing(2)\r\n }\r\n\r\n}));\r\n\r\nconst Profile = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [open, setOpen] = useState(true);\r\n const [wards, setWards] = useState([]);\r\n\r\n useEffect(() => {\r\n setWards(state.user.assignedWards.find(ward => ward.customerNumber === state.selectedCustomer.no).ward);\r\n }, [state.user, state.selectedCustomer]);\r\n\r\n let classes = useStyles();\r\n\r\n let { user } = state;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {}} xs={8} />\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {wards.map((ward) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Profile;","const datatableStyles = {\r\n header: {\r\n style: {\r\n backgroundColor: \"#B4D7E8\",\r\n color: \"#212F41\",\r\n }\r\n },\r\n subHeader: {\r\n style: {\r\n backgroundColor: \"#B4D7E8\",\r\n color: \"#212F41\",\r\n }\r\n },\r\n headRow: {\r\n style: {\r\n backgroundColor: \"#B4D7E8\",\r\n }\r\n },\r\n headCells: {\r\n style: {\r\n color: \"#212F41\",\r\n }\r\n }\r\n}\r\n\r\nexport default datatableStyles;","import React from 'react';\r\nimport DataTable from 'react-data-table-component';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Grid } from '@material-ui/core';\r\nimport { ArrowDownwardTwoTone } from '@material-ui/icons';\r\n\r\nimport datatableStyles from \"../static/datatables-styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n dataTable: {\r\n border: \"1px solid \" + theme.palette.primary.dark,\r\n },\r\n}));\r\n\r\n\r\nconst BaseDataTable = ({ cells, rows, actions, onRowsSelected, onRowClicked, onRowDoubleClicked, ...props}) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n <>\r\n }\r\n persistTableHead\r\n dense\r\n pointerOnHover\r\n highlightOnHover\r\n\t\t\t\t\t\t\t\tnoHeader\r\n\t\t\t\t\t\t\t\tenablePagination = {false}\r\n striped\r\n customStyles={datatableStyles}\r\n selectableRows\r\n selectableRowsNoSelectAll\r\n selectableRowsHighlight\r\n onSelectedRowsChange={onRowsSelected}\r\n className={classes.dataTable}\r\n {...props}\r\n />\r\n \r\n {actions}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default BaseDataTable;","import { useContext, useEffect } from \"react\";\r\nimport { useState } from \"react\";\r\n\r\nimport { api, Context } from \"../../Portal\";\r\nimport { Chip } from \"@material-ui/core\";\r\nimport BaseDataTable from \"../../components/BaseDataTable\";\r\nimport useRedirect from '../../hooks/useRedirect';\r\nimport { PermMedia } from \"@material-ui/icons\";\r\n\r\n\r\nconst url = \"/api/v1/rentalorders/waiting-approval\";\r\n\r\nconst ViewAuthorisations = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [rows, setRows] = useState([]);\r\n const [cells, setCells] = useState([]);\r\n const { redirectToApproval } = useRedirect();\r\n\r\n useEffect(() => {\r\n buildCells();\r\n get();\r\n }, []);\r\n\r\n const buildCells = () => {\r\n setCells([\r\n {\r\n name: 'Type',\r\n selector: 'approveTransactionType',\r\n sortable: true,\r\n cell: (row) => {\r\n return (\r\n handleRowClicked(row)}\r\n />\r\n )\r\n },\r\n },\r\n {\r\n name: 'Customer',\r\n selector: 'customer',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Ward',\r\n selector: 'ward',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Rental Order',\r\n selector: 'rentalOrderNo',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Cost Center',\r\n selector: 'costCentreCode',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Patient',\r\n selector: 'patientName',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Patient No',\r\n selector: 'patientNo',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Requested On',\r\n selector: 'creationDate',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Bed',\r\n selector: 'bed',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Contact',\r\n selector: 'contactPerson',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Requesting Nurse',\r\n selector: 'requestingNurse',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Delivery',\r\n selector: 'shipTo',\r\n sortable: true,\r\n cell: row => {\r\n return (\r\n <>\r\n {`${row.deliveryAddress}, ${row.deliveryCity}`}\r\n \r\n )\r\n }\r\n },\r\n ]);\r\n }\r\n\r\n const get = () => {\r\n api.get(state.host + url, state.credentials)\r\n .then(({ data }) => {\r\n setRows(data.headers);\r\n if (data.headers.length !== state.authorisationCount) {\r\n dispatch({ type: \"UPDATE-AUTHORISATION-COUNT\", payload: { authorisationCount: data.headers.length } });\r\n }\r\n });\r\n }\r\n\r\n const handleRowClicked = (row) => {\r\n let customerNo = state.user.customers.find(customer => customer.name === row.customer);\r\n\r\n dispatch({ type: \"APPROVE-RENTAL\", payload: { ...row } })\r\n dispatch({ type: \"CUSTOMER-SELECTED\", payload: { selectedCustomer: customerNo.no } })\r\n dispatch({ type: \"WARD-SELECTED\", payload: { selectedWard: row.ward } })\r\n\r\n redirectToApproval(row.approveTransactionType);\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default ViewAuthorisations;","import { useState } from \"react\";\r\n\r\nconst initial = {\r\n cleaned: null,\r\n pickup: null,\r\n biohazard: null,\r\n notes: \"\"\r\n}\r\n\r\nconst useSetStopQuestions = () => {\r\n const [details, setDetails] = useState(initial);\r\n const [completed, setCompleted] = useState(false);\r\n\r\n const onChange = (question) => {\r\n setDetails(prev => {\r\n let newValue = { ...prev, ...question };\r\n\r\n if (newValue.cleaned && newValue.pickup && newValue.biohazard) {\r\n if (newValue.biohazard === \"Yes\") {\r\n if (newValue.notes) {\r\n setCompleted(true);\r\n }\r\n else {\r\n setCompleted(false);\r\n }\r\n return newValue;\r\n }\r\n\r\n setCompleted(true);\r\n }\r\n\r\n return newValue;\r\n });\r\n }\r\n\r\n const reset = () => {\r\n setDetails(initial);\r\n setCompleted(false);\r\n }\r\n\r\n return [details, completed, onChange, reset];\r\n}\r\n\r\nexport default useSetStopQuestions;","import datatableStyles from \"../../static/datatables-styles\";\r\nimport { TableCell, TableHead, TableRow, withStyles } from '@material-ui/core';\r\n\r\nexport const StyledTableHeader = withStyles((theme) => ({\r\n root: {\r\n ...datatableStyles.header.style,\r\n }\r\n}))(TableHead);\r\n\r\nexport const StyledTableCell = withStyles((theme) => ({\r\n root: {\r\n border: \"none\",\r\n padding: 4,\r\n }\r\n}))(TableCell);\r\n\r\nexport const LabelCell = withStyles((theme) => ({\r\n root: {\r\n textAlign: \"right\"\r\n }\r\n}))(StyledTableCell);\r\n\r\nexport const StyledTableRow = withStyles((theme) => {\r\n return ({\r\n root: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.common.white,\r\n },\r\n '&:nth-of-type(even)': {\r\n backgroundColor: theme.palette.common.white,\r\n },\r\n },\r\n });\r\n})(TableRow);\r\n\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { TextField } from '@material-ui/core';\r\nimport { StyledTableCell } from './table-styling';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n width2: {\r\n width: \"27.5%\",\r\n },\r\n width4: {\r\n width: \"75%\" \r\n },\r\n}));\r\n\r\nconst DisabledTextField = ({fourColumn, children, width, ...props}) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default DisabledTextField;","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { TableRow } from '@material-ui/core';\r\nimport { StyledTableCell } from './table-styling';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n title: {\r\n height: 36,\r\n fontSize: \"12pt\",\r\n },\r\n}));\r\n\r\nconst TitleRow = ({children, ...props}) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default TitleRow;","import React, { useContext, useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, FormControlLabel, Grid, Paper, Radio, RadioGroup, Table, TableBody, TableContainer, TableRow, TextareaAutosize, TextField, Typography } from '@material-ui/core';\r\n\r\nimport Popover from '../../components/Popover';\r\nimport useSetStopQuestions from '../../hooks/useSetStopQuestions';\r\nimport { api, Context } from '../../Portal';\r\nimport DisabledTextField from './DisabledTextField';\r\nimport TitleRow from './TitleRow';\r\nimport { LabelCell, StyledTableCell, StyledTableHeader, StyledTableRow } from './table-styling';\r\nimport { ConfirmationDialog } from \"../../components/controls/ConfirmationDialog\";\r\nimport moment from 'moment';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\t\tpaper: {\r\n\t\t\t\tmarginBottom: 24,\r\n\t\t\t\tpadding: 24,\r\n\t\t\t\t...theme.body,\r\n\t\t\t\tbackgroundColor: 'transparent',\r\n\t\t\t\tborder: '0',\r\n\t\t},\r\n\t\ttable: {\r\n\t\t\t\tborder: \"0px solid \" + theme.palette.primary.dark,\r\n\t\t\t\tmarginBottom: 0,\r\n\t\t},\r\n\t\ttableRow: {\r\n\t\t\t\tbackground: \"#fff\",\r\n\t\t},\r\n\t\tbutton: {\r\n\t\t\t\twidth: \"64px\",\r\n\t\t},\r\n\t\tcancel: {\r\n\t\t\t\twidth: \"64px\",\r\n\t\t\t\tmarginLeft: 42,\r\n\t\t},\r\n\t\trequired: {\r\n\t\t\t\tcolor: \"red\",\r\n\t\t},\r\n\t\trequiredBorder: {\r\n\t\t\t\tborder: \"1px solid red\",\r\n\t\t},\r\n\t\tdefault: {\r\n\t\t\t\tcolor: theme.palette.text.primary\r\n\t\t},\r\n\t\tdefaultRadio: {\r\n\t\t\t\t\"&:checked\": {\r\n\t\t\t\t\t\tcolor: \"green\",\r\n\t\t\t\t}\r\n\t\t},\r\n\t\tdefaultBorder: {\r\n\t\t\t\tborder: \"1px solid rgb(118, 118, 118)\"\r\n\t\t},\r\n\t\ttableHeader: {\r\n\t\t\t\tbackgroundColor: '#016895',\r\n\t\t\t\tcolor: '#FFFFFF',\r\n\t\t\t\tfontSize: '16pt',\r\n\t\t\t\tlineHeight: '24pt',\r\n\t\t},\r\n\t\ttableTitleRow: {\r\n\t\t\t\tcolor: '#FFFFFF',\r\n\t\t},\r\n\t\tokButton: {\r\n\t\t\t\twidth: '100%',\r\n\t\t},\r\n\t\tcancelButton: {\r\n\t\t\t\tbackgroundColor: '#AEAEAE',\r\n\t\t\t\tcolor: '#2E2E2E',\r\n\t\t\t\tcursor: 'pointer',\r\n\t\t\t\twidth: '100%',\r\n\t\t\t\t'&:hover': {\r\n\t\t\t\t\t\tbackgroundColor: '#707070',\r\n\t\t\t\t\t\tcolor: '#FFFFFF',\r\n\t\t\t\t}\r\n\t\t},\r\n}));\r\n\r\nconst url = \"/api/v1/equipment/stop-hire\";\r\n\r\nconst StopRental = ({ rows, show, onExited, onEscapeKeyDown, options, ...props }) => {\r\n\t\tconst [state, dispatch] = useContext(Context);\r\n\t\tconst [currentRow, setCurrentRow] = useState({});\r\n\t\tconst [waitingRows, setWaitingRows] = useState([]);\r\n\t\tconst [details, completed, onAnswered, reset] = useSetStopQuestions();\r\n\t\tconst [showConfirmation, setShowConfirmation] = useState({ approved: false, declined: false });\r\n\t\tconst utcOffset = Math.ceil(moment().utcOffset() / 60);\r\n\t\tconst classes = useStyles();\r\n\r\n\t\tuseEffect(() => {\r\n\t\t\t\tlet [firstRow, ...remainingRows] = rows;\r\n\r\n\t\t\t\tsetCurrentRow(firstRow);\r\n\t\t\t\tsetWaitingRows(remainingRows);\r\n\t\t}, [rows])\r\n\r\n\t\tconst handleOkClicked = () => {\r\n\t\t\t\tlet equipmentDetails = {\r\n\t\t\t\t\t\tRENTALORDERNO: currentRow.rentalOrderNo,\r\n\t\t\t\t\t\tRENTALLINENO: currentRow.rentalLineNo,\r\n\t\t\t\t\t\tSERIALNO: currentRow.serialNo,\r\n\t\t\t\t\t\tBIOHAZARD: details.biohazard,\r\n\t\t\t\t\t\tNOTES: details.notes,\r\n\t\t\t\t\t\tCUSTOMER: currentRow.Customer,\r\n\t\t\t\t\t\tWARD: options ? state.selectedWard : currentRow.ward,\r\n\t\t\t\t\t\tUTCOFFSET: utcOffset\r\n\t\t\t\t};\r\n\r\n\t\t\t\tapi.post(state.host + url, equipmentDetails, state.credentials)\r\n\t\t\t\t\t\t.then(({ data }) => {\r\n\t\t\t\t\t\t\t\tlet [firstRow, ...remainingRows] = waitingRows;\r\n\r\n\t\t\t\t\t\t\t\tif (!firstRow) {\r\n\t\t\t\t\t\t\t\t\t\tonExited();\r\n\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treset();\r\n\t\t\t\t\t\t\t\tsetCurrentRow(firstRow);\r\n\t\t\t\t\t\t\t\tsetWaitingRows(remainingRows);\r\n\t\t\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tconst handleCancelClicked = () => {\r\n\t\t\t\tsetShowConfirmation({ approved: false, declined: true });\r\n\t\t}\r\n\r\n\t\tconst onOk = () => {\r\n\t\t\t\tlet [firstRow, ...remainingRows] = waitingRows;\r\n\r\n\t\t\t\tif (!firstRow) {\r\n\t\t\t\t\t\tonExited();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treset();\r\n\t\t\t\tsetCurrentRow(firstRow);\r\n\t\t\t\tsetWaitingRows(remainingRows);\r\n\t\t}\r\n\r\n\t\treturn show && Boolean(currentRow) && (\r\n\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tStop Rental Order\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tModel\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tSerial No\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWard\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tBed\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tPatient\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tPatient No\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tRental Start\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCleaned?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t onAnswered({ cleaned: event.target.value })}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tYes\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tImmediate Pickup?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t onAnswered({ pickup: event.target.value })}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tYes\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBiohazard?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t onAnswered({ biohazard: event.target.value })} row>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tYes\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNo\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBiohazard Notes\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t onAnswered({ notes: event.target.value })}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={details.biohazard === \"No\" ? classes.defaultBorder : Boolean(details.notes) ? classes.defaultBorder : classes.requiredBorder}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tOk\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCancel\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t{waitingRows.length > 0 && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPending Stop Rental Orders\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tCustomer\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWard\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPatient\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tPatient No\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tRental Start\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tBed\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tModel\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSerial No\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{waitingRows.map(row => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{row.customer}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{row.ward}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{row.patientName}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{row.patientNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{row.startDate}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{row.bed}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{row.model}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{row.serialNo}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\r\n\t\t)\r\n}\r\n\r\nexport default StopRental;","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { StyledTableCell } from './table-styling';\r\nimport { TableRow } from '@material-ui/core';\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n title: {\r\n textAlign: \"center\",\r\n fontSize: \"larger \",\r\n color: '#FFFFFF',\r\n },\r\n}));\r\n\r\nconst FromToTitleRow = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n From\r\n \r\n \r\n To\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FromToTitleRow;","import { useState } from \"react\";\r\n\r\nconst initial = {\r\n cleaned: null,\r\n pickup: null,\r\n biohazard: null,\r\n notes: \"\",\r\n dateOfExchange: Date.now(),\r\n newModel: \"\",\r\n newSerialNo: null,\r\n reason: \"\"\r\n}\r\n\r\nconst useSetExchangeQuestions = () => {\r\n const [details, setDetails] = useState(initial);\r\n const [completed, setCompleted] = useState(false);\r\n\r\n const onChange = (question) => {\r\n setDetails(prev => {\r\n let newValue = { ...prev, ...question };\r\n\r\n if (newValue.biohazard && newValue.dateOfExchange && newValue.newModel && newValue.reason) {\r\n if (newValue.biohazard === \"Yes\") {\r\n if (newValue.notes) {\r\n setCompleted(true);\r\n }\r\n else {\r\n setCompleted(false);\r\n }\r\n return newValue;\r\n }\r\n\r\n setCompleted(true);\r\n }\r\n else{\r\n setCompleted(false);\r\n }\r\n\r\n return newValue;\r\n });\r\n }\r\n\r\n const reset = () => {\r\n initial.dateOfExchange = Date.now();\r\n setDetails(initial);\r\n setCompleted(false);\r\n }\r\n\r\n return [details, completed, onChange, reset];\r\n}\r\n\r\nexport default useSetExchangeQuestions;","import { useEffect, useState } from \"react\";\r\nimport { AppBar, Container, FormControlLabel, Grid, Link, makeStyles, Typography } from \"@material-ui/core\";\r\nimport { LinkTwoTone } from \"@material-ui/icons\";\r\nimport uuid from \"uuid-random\";\r\n\r\nimport Popover from \"../../components/Popover\";\r\nimport ProductCard from \"../../components/ProductCard\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n paddingTop: \".75rem\",\r\n paddingLeft: \".75rem\",\r\n paddingRight: \".75rem\",\r\n '& > * + *': {\r\n marginLeft: theme.spacing(2),\r\n },\r\n },\r\n selectProductModal: {\r\n backgroundColor: '#DEEBF1',\r\n },\r\n categoryRow: {\r\n width: '100%',\r\n justifyContent: 'flex-start',\r\n alignItems: 'center',\r\n borderTop: '1px solid #016895',\r\n borderBottom: '1px solid #016895',\r\n backgroundColor: 'transparent',\r\n height: '50px',\r\n },\r\n categoryList: {\r\n width: '100%',\r\n height: '100%',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n alignContent: 'center',\r\n display: 'flex',\r\n fontSize: '15pt',\r\n paddingRight: '30px',\r\n },\r\n link: {\r\n color: '#016895',\r\n fontWeight: '700',\r\n fontSize: '11pt',\r\n paddingLeft: \"1rem\",\r\n paddingRight: \"1rem\",\r\n cursor: 'pointer',\r\n \"&:link\": {\r\n color: '#016895',\r\n textDecoration: \"none\",\r\n },\r\n \"&:hover\": {\r\n color: \"#26A9E1\",\r\n textDecoration: \"none\",\r\n },\r\n \"&:visited\": {\r\n color: '#016895',\r\n textDecoration: \"none\",\r\n },\r\n \"&:active\": {\r\n color: \"#26A9E1\",\r\n textDecoration: \"none\",\r\n },\r\n },\r\n linkActive: {\r\n color: '#26A9E1',\r\n fontWeight: '700',\r\n fontSize: '11pt',\r\n paddingLeft: \"1rem\",\r\n paddingRight: \"1rem\",\r\n \"&:hover\": {\r\n color: \"#26A9E1\",\r\n textDecoration: \"none\",\r\n },\r\n },\r\n activeCategory: {\r\n display: 'flex',\r\n flexFlow: 'row wrap',\r\n width: '100%',\r\n marginBottom: '20px',\r\n },\r\n inactiveCategory: {\r\n display: 'flex',\r\n flexFlow: 'row wrap',\r\n width: '100%',\r\n marginBottom: '20px',\r\n },\r\n products: {\r\n display: \"flex\",\r\n paddingLeft: 0,\r\n paddingRight: 0,\r\n maxWidth: \"100%\",\r\n },\r\n left: {\r\n paddingTop: \"2em\",\r\n paddingBottom: \"1em\",\r\n height: \"70vh\",\r\n width: '70%',\r\n overflowY: \"auto\",\r\n },\r\n dividerColumn: {\r\n width: '5%',\r\n },\r\n right: {\r\n paddingTop: \"2em\",\r\n paddingBottom: \"1em\",\r\n width: '30%'\r\n },\r\n productItem: {\r\n paddingRight: '10px',\r\n paddingBottom: '10px',\r\n },\r\n list: {\r\n border: \"0px solid \" + theme.palette.primary.dark\r\n\r\n },\r\n buttonContainer: {\r\n padding: \"0\",\r\n width: '100%',\r\n },\r\n confirmButton: {\r\n backgroundColor: '#016895',\r\n color: '#FFFFFF',\r\n cursor: 'pointer',\r\n width: '100%',\r\n '&:hover': {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n cancelButton: {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n cursor: 'pointer',\r\n width: '100%',\r\n '&:hover': {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n deleteIcon: {\r\n color: '#016895',\r\n cursor: 'pointer',\r\n width: '20px',\r\n },\r\n categoryDivider: {\r\n width: '100%',\r\n marginBottom: '8px',\r\n color: '#FFFFFF',\r\n backgroundColor: '#016895',\r\n padding: '5px 0',\r\n },\r\n}));\r\n\r\nconst SelectProducts = ({ models, show, onExited, ...props }) => {\r\n const [open, setOpen] = useState(false);\r\n const [product, setProduct] = useState({});\r\n const [cells, setCells] = useState([]);\r\n const [activeCategory, setActiveCategory] = useState('');\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n setOpen(show);\r\n }, [show]);\r\n\r\n const onProductSelected = (model) => {\r\n setProduct(model);\r\n setOpen(false);\r\n }\r\n\r\n return (\r\n onExited(product)}\r\n onEscapeKeyDown={() => onExited(product)}\r\n showTitle={true}\r\n tall\r\n {...props}\r\n >\r\n \r\n \r\n \r\n {models.map((categories, index) => {\r\n return (\r\n event.preventDefault()}\r\n className={classes.link}\r\n key={uuid()}\r\n >\r\n {categories[0].category}\r\n \r\n )\r\n })}\r\n \r\n \r\n\r\n \r\n \r\n {models.map((categories) => {\r\n return (\r\n <>\r\n \r\n }\r\n labelPlacement=\"start\"\r\n label={\r\n \r\n {categories[0].category}\r\n \r\n }\r\n />\r\n \r\n {categories.map((product, index) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default SelectProducts;","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: '1px 2px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: \"100%\",\r\n },\r\n input: {\r\n marginLeft: theme.spacing(1),\r\n flex: 1,\r\n },\r\n iconButton: {\r\n padding: 4,\r\n },\r\n divider: {\r\n height: 28,\r\n margin: 4,\r\n },\r\n requiredBorder: {\r\n margin: '5px',\r\n width: \"300px\",\r\n border: \"1px solid #f44336\",\r\n },\r\n defaultBorder: {\r\n margin: '5px',\r\n width: \"300px\",\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n },\r\n disabledBorder: {\r\n margin: '5px',\r\n width: \"300px\",\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n}));\r\n\r\nconst InputButton = ({ onClick, disabled, value, required, ...props }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default InputButton;","import React, { useContext, useEffect, useState } from 'react';\r\nimport \"date-fns\";\r\nimport add from \"date-fns/add\";\r\nimport DateFNSUtils from \"@date-io/date-fns\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, FormControlLabel, Grid, Paper, Radio, RadioGroup, Table, TableBody, TableContainer, TableRow, TextareaAutosize, TextField, Typography } from '@material-ui/core';\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers';\r\n\r\nimport Popover from '../../components/Popover';\r\nimport { LabelCell, StyledTableCell, StyledTableHeader, StyledTableRow } from './table-styling';\r\nimport TitleRow from './TitleRow';\r\nimport DisabledTextField from './DisabledTextField';\r\nimport FromToTitleRow from './FromToTitleRow';\r\nimport useSetExchangeQuestions from \"../../hooks/useSetExchangeQuestions\";\r\nimport { api, Context } from '../../Portal';\r\nimport SelectProducts from \"./select-products\";\r\nimport SerialNumber from '../../components/controls/SerialNumber';\r\nimport InputButton from \"./InputButton\";\r\nimport InputField from \"../../components/controls/InputField\";\r\nimport BigtextField from \"../../components/controls/BigtextField\";\r\nimport { ConfirmationDialog } from \"../../components/controls/ConfirmationDialog\";\r\nimport Authorisation from '../create-order/Authorisation';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n marginBottom: 24,\r\n padding: 24,\r\n ...theme.body,\r\n backgroundColor: 'transparent',\r\n border: '0',\r\n },\r\n table: {\r\n border: \"0px solid \" + theme.palette.primary.dark,\r\n marginBottom: 0,\r\n },\r\n tableRow: {\r\n background: \"#fff\",\r\n },\r\n cancel: {\r\n marginLeft: 42,\r\n },\r\n required: {\r\n color: \"red\",\r\n },\r\n requiredBorder: {\r\n border: \"1px solid red\",\r\n },\r\n default: {\r\n color: theme.palette.text.primary\r\n },\r\n defaultBorder: {\r\n margin: '5px',\r\n width: \"300px\",\r\n \"& fieldset\": {\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n },\r\n \"& input:disabled fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n \"& label\": {\r\n color: \"rgba(1, 104, 149, 1)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n },\r\n },\r\n defaultRequiredBorder: {\r\n margin: '5px',\r\n width: \"300px\",\r\n \"& fieldset\": {\r\n border: \"1px solid red\",\r\n },\r\n \"& input:disabled fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid red\",\r\n },\r\n },\r\n disabledBorder: {\r\n margin: '5px',\r\n width: \"300px\",\r\n \"& fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n \"& label\": {\r\n color: \"rgba(0, 0, 0, .5)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n },\r\n tableHeader: {\r\n backgroundColor: '#016895',\r\n color: '#FFFFFF',\r\n fontSize: '16pt',\r\n lineHeight: '24pt',\r\n },\r\n tableTitleRow: {\r\n color: '#FFFFFF',\r\n },\r\n okButton: {\r\n width: '100%',\r\n },\r\n cancelButton: {\r\n backgroundColor: '#AEAEAE',\r\n color: '#2E2E2E',\r\n cursor: 'pointer',\r\n width: '100%',\r\n '&:hover': {\r\n backgroundColor: '#707070',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n styledRow: {\r\n padding: '5px',\r\n },\r\n tableCellStyle180: {\r\n maxWidth: '180px',\r\n width: '180px',\r\n },\r\n tableCellStyle300: {\r\n maxWidth: '300px',\r\n width: '300px', \r\n padding: 0,\r\n },\r\n}));\r\n\r\nconst ExchangeHeader = () => {\r\n return (\r\n \r\n \r\n Pending Exchange Product Orders\r\n \r\n\r\n \r\n Model\r\n Serial No\r\n Customer\r\n Ward\r\n Patient\r\n Patient No\r\n Rental Start\r\n Bed\r\n \r\n \r\n )\r\n}\r\n\r\nconst ExchangeRow = ({ row }) => {\r\n return (\r\n \r\n {row.model}\r\n {row.serialNo}\r\n {row.customer}\r\n {row.ward}\r\n {row.patient}\r\n {row.patientNo}\r\n {row.startDate}\r\n {row.bed}\r\n \r\n )\r\n}\r\n\r\nconst url = \"/api/v1/equipment/exchange\";\r\nconst consignedUrl = \"/api/v1/equipment/consigned-stock\";\r\nconst productsUrl = \"/api/v1/products\";\r\nconst showCleaned = false;\r\nconst showImmediatePickup = false;\r\n\r\nconst transformModels = (models) => {\r\n return models.map(categories => (\r\n categories.map(product => ({\r\n category: product.category,\r\n MODEL: product.model,\r\n MODELDESCRIPTION: product.description,\r\n SHORTDESCRIPTION: product.shortDescription,\r\n REQBYDATE: \"\",\r\n REQBYTIME: \"\",\r\n image: product.image,\r\n highEnd: product.highEnd\r\n }))\r\n ));\r\n}\r\n\r\nconst ExchangeRental = ({ rows, show, onExited, onEscapeKeyDown, options, ...props }) => {\r\n const [state, dispatch] = useContext(Context);\r\n const [currentRow, setCurrentRow] = useState({});\r\n const [waitingRows, setWaitingRows] = useState([]);\r\n const [details, completed, onAnswered, reset] = useSetExchangeQuestions();\r\n const [consignedProduct, setConsignedProduct] = useState([]);\r\n const [models, setModels] = useState([]);\r\n const [openProductSelection, setOpenProductSelection] = useState(false);\r\n const [product, setProduct] = useState({});\r\n const [showConfirmation, setShowConfirmation] = useState({ approved: false, declined: false });\r\n const [showApproval, setShowApproval] = useState(false);\r\n const [staff, setStaff] = useState({ authorisers: [], requestors: [], contacts: [] });\r\n const [contact, setContact] = useState({\r\n name: '',\r\n surname: '',\r\n firstNames: ''\r\n });\r\n const [requestor, setRequestor] = useState({\r\n name: '',\r\n surname: '',\r\n firstNames: ''\r\n });\r\n const additionalSectionUrl = \"/views/v1/create-order/additional\";\r\n\r\n\r\n let credentials = { ...state.credentials };\r\n\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n return;\r\n }\r\n \r\n let [firstRow, ...remainingRows] = rows;\r\n let requestor = firstRow?.reqNurse ?? '';\r\n setDefaults(requestor);\r\n getFormData();\r\n advancePendingToCurrent(firstRow, remainingRows);\r\n\r\n api.get(state.host + consignedUrl, credentials)\r\n .then(({ data }) => {\r\n setConsignedProduct(data);\r\n });\r\n }, [show, rows, state.host]);\r\n\r\n const setDefaults = (requestor) => {\r\n setStaff({ authorisers: [], requestors: [], contacts: [] });\r\n setContact({\r\n name: '',\r\n surname: '',\r\n firstNames: ''\r\n });\r\n setRequestor({\r\n name: requestor,\r\n surname: '',\r\n firstNames: ''\r\n });\r\n }\r\n\r\n const getFormData = () => {\r\n api.get(state.host + additionalSectionUrl, state.credentials)\r\n .then(({ data }) => {\r\n setStaff(data.staff);\r\n });\r\n }\r\n\r\n const handleOkClicked = () => {\r\n\r\n let approvalRequired = Boolean(details.newModel !== currentRow.model);\r\n\r\n if (approvalRequired) {\r\n setShowApproval(true);\r\n return;\r\n }\r\n\r\n onApproval(\"auto-approve\")\r\n\t}\r\n\r\n const onApproval = (status, people) => {\r\n setShowApproval(false);\r\n let requestApproved = false;\r\n if (status === \"cancelled\") {\r\n return false;\r\n }\r\n\r\n if (status === \"not approved\") {\r\n requestApproved = false;\r\n }\r\n\r\n if (status === \"approved\" || status === \"auto-approve\") {\r\n requestApproved = true;\r\n }\r\n\r\n let equipmentDetails = {\r\n RENTALORDERNO: currentRow.rentalOrderNo,\r\n RENTALLINENO: currentRow.rentalLineNo,\r\n SERIALNO: currentRow.serialNo,\r\n BIOHAZARD: details.biohazard,\r\n NOTES: details.notes,\r\n REASON: details.reason,\r\n NEWMODEL: details.newModel,\r\n NEWSERIALNO: \"\",\r\n EXCHANGEDATE: new Date(details.dateOfExchange).toISOString().substring(0, 10),\r\n APPROVED: requestApproved,\r\n APPROVER: people?.APPROVER ?? state.user.username,\r\n CUSTOMER: currentRow.Customer,\r\n WARD: currentRow.ward\r\n };\r\n\r\n api.post(state.host + url, equipmentDetails, credentials)\r\n .then(({ data }) => {\r\n if (data.success) {\r\n onOk();\r\n }\r\n });\r\n }\r\n\r\n const onProductSelectionConfirmation = (selectedProducts) => {\r\n // TODO: add action parameter for \"cancel\" to not add selectedProducts - or copy from productsSelected as set in handleAddProducts\r\n setProduct(selectedProducts);\r\n onAnswered({ newModel: selectedProducts.MODEL })\r\n setOpenProductSelection(false);\r\n }\r\n\r\n const advancePendingToCurrent = (firstRow, remainingRows) => {\r\n reset();\r\n setCurrentRow(firstRow);\r\n setWaitingRows(remainingRows);\r\n\r\n let customer = state.user.customers.find(customer => customer.name === firstRow.customer);\r\n credentials = {\r\n ...state.credentials,\r\n headers: {\r\n ...state.credentials.headers,\r\n \"acl-customer\": customer.no, \r\n \"acl-ward\": firstRow.ward\r\n }\r\n };\r\n\r\n api.get(productsUrl, credentials)\r\n .then(({ data }) => {\r\n setModels(transformModels(data));\r\n })\r\n }\r\n\r\n const handleCancelClicked = () => {\r\n setShowConfirmation({ approved: false, declined: true });\r\n }\r\n\r\n const onOk = () => {\r\n let [firstRow, ...remainingRows] = waitingRows;\r\n\r\n if (!firstRow) {\r\n onExited();\r\n return;\r\n }\r\n\r\n advancePendingToCurrent(firstRow, remainingRows);\r\n }\r\n\r\n return show && Boolean(currentRow) && (\r\n \r\n {openProductSelection && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n Exchange Product Order\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Model\r\n \r\n \r\n \r\n Model\r\n \r\n setOpenProductSelection(true)}\r\n value={details.newModel}\r\n required={true}\r\n disabled={false}\r\n className={classes.defaultBorder}\r\n />\r\n \r\n \r\n \r\n \r\n Serial No\r\n \r\n {product.serialNo ? (\r\n <>\r\n Serial No\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Ward\r\n \r\n \r\n \r\n \r\n \r\n Bed\r\n \r\n \r\n \r\n \r\n \r\n Patient\r\n \r\n \r\n \r\n \r\n \r\n Patient No\r\n \r\n \r\n \r\n \r\n \r\n Rental Start\r\n \r\n Date of Exchange\r\n \r\n \r\n onAnswered({ dateOfExchange: date })}\r\n />\r\n \r\n \r\n \r\n \r\n {showCleaned &&\r\n \r\n Cleaned?\r\n \r\n onAnswered({ cleaned: event.target.value })}\r\n >\r\n \r\n }\r\n label={\r\n \r\n Yes\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n }\r\n {showImmediatePickup &&\r\n \r\n Immediate Pickup?\r\n \r\n onAnswered({ pickup: event.target.value })}\r\n >\r\n \r\n }\r\n label={\r\n \r\n Yes\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n }\r\n \r\n Biohazard?\r\n \r\n onAnswered({ biohazard: event.target.value })}\r\n row\r\n >\r\n \r\n }\r\n label={\r\n \r\n Yes\r\n \r\n }\r\n />\r\n \r\n }\r\n label={\r\n \r\n No\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Biohazard Notes\r\n \r\n onAnswered({ notes: event.target.value })}\r\n className={classes.defaultBorder}\r\n />\r\n \r\n Reason\r\n \r\n onAnswered({ reason: event.target.value })}\r\n required={true}\r\n className={classes.defaultBorder}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Ok\r\n \r\n \r\n \r\n \r\n Cancel\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {waitingRows.length > 0 && (\r\n \r\n \r\n \r\n \r\n {waitingRows.map(row => (\r\n \r\n ))}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default ExchangeRental;","import { useState } from \"react\";\r\n\r\nconst initial = {\r\n dateOfTransfer: \"\",\r\n currentWard: \"\",\r\n newWard: \"\",\r\n newBed: \"\",\r\n newPatientFirstName: \"\",\r\n newPatientSurname: \"\",\r\n newPatientNo: \"\",\r\n option: \"\",\r\n contact: {\r\n name: \"\",\r\n surname: \"\",\r\n firstNames: \"\",\r\n }\r\n}\r\n\r\nconst useSetExchangeQuestions = () => {\r\n const [details, setDetails] = useState(initial);\r\n const [completed, setCompleted] = useState(false);\r\n\r\n const onChange = (question) => {\r\n setDetails(prev => {\r\n let newValue = { ...prev, ...question };\r\n setCompleted(\r\n (((newValue.newBed !== \"\" && newValue.newPatientFirstName !== \"\" && newValue.newPatientSurname !== \"\" && newValue.newPatientNo !== \"\")) && newValue.contact.surname !== '' && newValue.contact.name !== '' && newValue.dateOfTransfer !== '' && newValue.option !== '')\r\n );\r\n\r\n return newValue;\r\n });\r\n }\r\n\r\n const reset = () => {\r\n initial.dateOfTransfer = Date.now();\r\n setDetails(initial);\r\n setCompleted(false);\r\n }\r\n\r\n return [details, completed, onChange, reset];\r\n}\r\n\r\nexport default useSetExchangeQuestions;","import React, { useContext, useEffect, useState } from 'react';\r\nimport \"date-fns\";\r\nimport add from \"date-fns/add\";\r\nimport sub from \"date-fns/sub\";\r\nimport differenceInCalendarDays from 'date-fns/differenceInCalendarDays';\r\nimport parse from 'date-fns/parse';\r\nimport DateFNSUtils from \"@date-io/date-fns\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Grid, Paper, Table, TableBody, TableContainer, TableRow, FormControlLabel, Radio, RadioGroup } from '@material-ui/core';\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from '@material-ui/pickers';\r\n\r\nimport Popover from '../../components/Popover';\r\nimport { LabelCell, StyledTableCell, StyledTableHeader, StyledTableRow } from './table-styling';\r\nimport TitleRow from './TitleRow';\r\nimport FromToTitleRow from './FromToTitleRow';\r\nimport DisabledTextField from './DisabledTextField';\r\nimport useSetTransferQuestions from \"../../hooks/useSetTransferQuestions\";\r\nimport { api, Context } from '../../Portal';\r\nimport NameSelectEntry from '../../components/controls/NameSelectEntry';\r\nimport { ConfirmationDialog } from \"../../components/controls/ConfirmationDialog\";\r\nimport DropdownField from \"../../components/controls/DropdownField\";\r\nimport InputField from \"../../components/controls/InputField\"; \r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n marginBottom: 24,\r\n padding: 24,\r\n ...theme.body,\r\n backgroundColor: 'transparent',\r\n border: '0',\r\n },\r\n table: {\r\n border: \"0px solid \" + theme.palette.primary.dark,\r\n marginBottom: 0,\r\n },\r\n tableRow: {\r\n background: \"#fff\",\r\n },\r\n buttonSpacing: {\r\n marginLeft: 14,\r\n },\r\n cancelSpacing: {\r\n marginLeft: 42,\r\n },\r\n required: {\r\n color: \"red\",\r\n },\r\n requiredBorder: {\r\n border: \"1px solid red\",\r\n },\r\n requiredSelectBorder: {\r\n \"& > div > div\": {\r\n border: \"1px solid red\",\r\n },\r\n },\r\n default: {\r\n color: theme.palette.text.primary\r\n },\r\n defaultBorder: {\r\n border: \"1px solid rgb(118, 118, 118)\"\r\n },\r\n defaultSelectBorder: {\r\n \"& > div > div\": {\r\n border: \"1px solid rgba(0, 0, 0, 0.23)\"\r\n },\r\n },\r\n tableHeader: {\r\n backgroundColor: '#016895',\r\n color: '#FFFFFF',\r\n fontSize: '16pt',\r\n lineHeight: '24pt',\r\n },\r\n tableTitleRow: {\r\n color: '#FFFFFF',\r\n },\r\n okButton: {\r\n width: '100%',\r\n },\r\n cancelButton: {\r\n backgroundColor: '#AEAEAE',\r\n color: '#2E2E2E',\r\n cursor: 'pointer',\r\n width: '100%',\r\n '&:hover': {\r\n backgroundColor: '#707070',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n defaultBorder: {\r\n margin: '5px',\r\n width: \"300px\",\r\n \"& fieldset\": {\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n },\r\n \"& input:disabled fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n \"& label\": {\r\n color: \"rgba(1, 104, 149, 1)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n },\r\n },\r\n disabledBorder: {\r\n margin: '5px',\r\n width: \"300px\",\r\n \"& fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n \"& label\": {\r\n color: \"rgba(0, 0, 0, .5)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n },\r\n tableCellStyle: {\r\n marginLeft: \"-4px\",\r\n display: \"block\",\r\n },\r\n datePicker: {\r\n width: \"300px\",\r\n },\r\n hideRow: {\r\n display: \"none\",\r\n },\r\n radioGroup: {\r\n flexFlow: 'row',\r\n }\r\n}));\r\n\r\nconst url = \"/api/v1/equipment/transfer\";\r\nconst altUrl = \"/api/v1/equipment/transferandstop\";\r\nconst wardsUrl = \"/api/v1/wards\";\r\n\r\nconst TransferRow = ({ row }) => {\r\n return (\r\n \r\n {row.customer}\r\n {row.ward}\r\n {row.patientFirstName}\r\n {row.patientSurname}\r\n {row.patientNo}\r\n {row.startDate}\r\n {row.bed}\r\n {row.model}\r\n {row.serialNo}\r\n \r\n )\r\n}\r\n\r\nconst TransferRental = ({ rows, show, onExited, onEscapeKeyDown, options, ...props }) => {\r\n const [state, dispatch] = useContext(Context);\r\n const [currentRow, setCurrentRow] = useState({});\r\n const [waitingRows, setWaitingRows] = useState([]);\r\n const [details, completed, onAnswered, reset] = useSetTransferQuestions();\r\n const [wards, setWards] = useState([]);\r\n const [defaultWard, setDefaultWard] = useState({});\r\n const [staff, setStaff] = useState([]);\r\n const [showConfirmation, setShowConfirmation] = useState({ approved: false, declined: false });\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n return;\r\n }\r\n\r\n let [firstRow, ...remainingRows] = rows;\r\n firstRow.daysSinceStart = differenceInCalendarDays(Date.now(), parse(firstRow.startDate, \"dd/MM/yyyy\", new Date()));\r\n\r\n setCurrentRow(firstRow);\r\n\r\n details.newBed = firstRow.bed;\r\n details.newPatientFirstName = firstRow.patientFirstName;\r\n details.newPatientSurname = firstRow.patientSurname;\r\n details.newPatientNo = firstRow.patientNo;\r\n\r\n onAnswered({\r\n currentWard: firstRow.ward\r\n })\r\n\r\n if (!options) {\r\n onAnswered({\r\n option: 'N/A',\r\n })\r\n }\r\n\r\n setWaitingRows(remainingRows);\r\n\r\n api.get(state.host + wardsUrl + `?remove=`, state.credentials)\r\n .then(({ data }) => {\r\n var tempWards = [];\r\n if (data.length > 0) {\r\n tempWards.push(...data);\r\n }\r\n setWards(tempWards);\r\n if (state.selectedCustomer !== '' && state.selectedWard !== '') {\r\n state.user.selectedCustomer = state.selectedCustomer;\r\n state.user.selectedWard = state.selectedWard;\r\n onAnswered({\r\n newWard: state.user.selectedWard,\r\n })\r\n } else {\r\n onAnswered({\r\n newWard: wards[0].name ? wards[0].name : '',\r\n });\r\n }\r\n })\r\n api.get(state.host + wardsUrl + `/${firstRow.ward}/staff`, { ...state.credentials, headers: { ...state.credentials.headers, \"acl-ward\": firstRow.ward } })\r\n .then(({ data }) => {\r\n setStaff(data);\r\n })\r\n }, [rows, show])\r\n\r\n const showNewRows = (details) => {\r\n return true;\r\n }\r\n\r\n const showNewRowsRequired = (details) => {\r\n return true;\r\n }\r\n\r\n const handleOkClicked = () => {\r\n let equipmentDetails = {\r\n RENTALORDERNO: currentRow.rentalOrderNo,\r\n RENTALLINENO: currentRow.rentalLineNo,\r\n SERIALNO: currentRow.serialNo,\r\n NEWWARD: details.newWard,\r\n NEWBED: details.newBed,\r\n NEWPATIENTFIRSTNAME: details.newPatientFirstName,\r\n NEWPATIENTSURNAME: details.newPatientSurname,\r\n NEWPATIENTNO: details.newPatientNo,\r\n TRANSFERDATE: new Date(details.dateOfTransfer).toISOString().substring(0, 10),\r\n CONTACTFIRSTNAMES: details.contact.firstNames,\r\n CONTACTSURNAME: details.contact.surname,\r\n CUSTOMER: currentRow.Customer,\r\n WARD: currentRow.ward\r\n };\r\n\r\n if (currentRow.option === 'Stop') {\r\n api.post(state.host + altUrl, equipmentDetails, state.credentials)\r\n .then(({ data }) => {\r\n if (data.success) {\r\n onOk();\r\n }\r\n });\r\n } else {\r\n api.post(state.host + url, equipmentDetails, state.credentials)\r\n .then(({ data }) => {\r\n if (data.success) {\r\n onOk();\r\n }\r\n });\r\n }\r\n }\r\n\r\n const handleCancelClicked = () => {\r\n setShowConfirmation({ approved: false, declined: true });\r\n }\r\n\r\n const onOk = () => {\r\n let previousRow = currentRow;\r\n let previousDetails = details;\r\n\r\n let [firstRow, ...remainingRows] = waitingRows;\r\n\r\n if (!firstRow) {\r\n onExited();\r\n return;\r\n }\r\n\r\n reset();\r\n onAnswered({\r\n currentWard: firstRow.ward\r\n })\r\n setCurrentRow(firstRow);\r\n\t\t\tonAnswered({\r\n\t\t\t\tdateOfTransfer: firstRow.dateOfTransfer,\r\n\t\t\t\tnewWard: defaultWard.name ? defaultWard.name : '',\r\n\t\t\t\tnewBed: firstRow.bed,\r\n\t\t\t\tnewPatientFirstName: firstRow.patientFirstName,\r\n\t\t\t\tnewPatientSurname: firstRow.patientSurname,\r\n\t\t\t\tnewPatientNo: firstRow.patientNo,\r\n\t\t\t\toption: '',\r\n\t\t\t\tcontact: '',\r\n\t\t\t});\r\n if (!options) {\r\n onAnswered({\r\n option: 'N/A',\r\n })\r\n }\r\n setWaitingRows(remainingRows);\r\n }\r\n\r\n return show && Boolean(currentRow) && (\r\n \r\n \r\n \r\n \r\n \r\n Product Transfer\r\n \r\n \r\n \r\n\r\n \r\n \r\n Model\r\n \r\n \r\n \r\n \r\n \r\n \r\n Serial No\r\n \r\n \r\n \r\n \r\n Ward\r\n \r\n Ward\r\n { wards.length > 0 &&\r\n 0) ? wards.map(({ name }, index) => ({ key: `$ward-${index}`, value: name, description: name })) : { key: 'ward-0', value: '' }}\r\n className={classes.defaultBorder}\r\n onChange={(event) => { onAnswered({ newWard: event.target.value }); }}\r\n />\r\n }\r\n \r\n \r\n \r\n \r\n Bed\r\n \r\n {showNewRows(details) && (\r\n <>\r\n Bed\r\n { onAnswered({ newBed: event.target.value }); }}\r\n className={classes.defaultBorder} value={details.newBed} fourColumn />\r\n \r\n )}\r\n \r\n \r\n \r\n Patient First Name\r\n \r\n {showNewRows(details) && (\r\n <>\r\n Patient First Name\r\n { onAnswered({ newPatientFirstName: event.target.value }); }}\r\n className={classes.defaultBorder} value={details.newPatientFirstName} fourColumn />\r\n \r\n )}\r\n \r\n \r\n \r\n Patient Surname\r\n \r\n {showNewRows(details) && (\r\n <>\r\n Patient Surname\r\n { onAnswered({ newPatientSurname: event.target.value }); }}\r\n className={classes.defaultBorder} value={details.newPatientSurname} fourColumn />\r\n \r\n )}\r\n \r\n \r\n \r\n Patient No\r\n \r\n {showNewRows(details) && (\r\n <>\r\n Patient No\r\n { onAnswered({ newPatientNo: event.target.value }); }}\r\n className={classes.defaultBorder} value={details.newPatientNo} fourColumn />\r\n \r\n )}\r\n \r\n \r\n \r\n Rental Start\r\n \r\n Transfer Date\r\n \r\n \r\n 30 ? 30 : currentRow.daysSinceStart })}\r\n inputVariant=\"outlined\"\r\n onChange={(date) => onAnswered({ dateOfTransfer: date })}\r\n minDateMessage={\"Date should not be before \" + sub(Date.now(), { days: currentRow.daysSinceStart > 30 ? 30 : currentRow.daysSinceStart }).toDateString('dd/MM/YYYY')}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Contact Person\r\n \r\n onAnswered({ contact: name })}\r\n className={classes.defaultBorder}\r\n xs={12}\r\n />\r\n \r\n \r\n \r\n {options &&\r\n \r\n \r\n \r\n onAnswered({ option: event.target.value })}>\r\n \r\n } label=\"Continue Renting\" />\r\n \r\n } label=\"Stop Rental\" />\r\n \r\n \r\n \r\n }\r\n \r\n \r\n\r\n \r\n \r\n \r\n Ok\r\n \r\n \r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n {waitingRows.length > 0 && (\r\n \r\n \r\n \r\n \r\n Pending Transfers Out\r\n \r\n \r\n Customer\r\n Ward\r\n Patient\r\n Patient No\r\n Rental Start\r\n Bed\r\n Model\r\n Serial No\r\n \r\n \r\n\r\n \r\n {waitingRows.map(row => (\r\n \r\n ))}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default TransferRental;","import React, { useContext, useEffect, useState } from 'react';\r\nimport \"date-fns\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Grid, CardMedia, Paper, Table, TableBody, TableContainer } from '@material-ui/core';\r\n\r\nimport Popover from '../../components/Popover';\r\nimport { StyledTableCell, StyledTableHeader, StyledTableRow } from './table-styling';\r\nimport TitleRow from './TitleRow';\r\nimport { api, Context } from '../../Portal';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n marginBottom: 24,\r\n padding: 24,\r\n ...theme.body,\r\n backgroundColor: 'transparent',\r\n border: '0',\r\n },\r\n table: {\r\n border: \"0px solid \" + theme.palette.primary.dark,\r\n marginBottom: 0,\r\n },\r\n tableRow: {\r\n background: \"#fff\",\r\n },\r\n buttonSpacing: {\r\n marginLeft: 14,\r\n },\r\n cancelSpacing: {\r\n marginLeft: 42,\r\n },\r\n required: {\r\n color: \"red\",\r\n },\r\n requiredBorder: {\r\n border: \"1px solid red\",\r\n },\r\n requiredSelectBorder: {\r\n \"& > div > div\": {\r\n border: \"1px solid red\",\r\n },\r\n },\r\n default: {\r\n color: theme.palette.text.primary\r\n },\r\n defaultBorder: {\r\n border: \"1px solid rgb(118, 118, 118)\"\r\n },\r\n defaultSelectBorder: {\r\n \"& > div > div\": {\r\n border: \"1px solid rgba(0, 0, 0, 0.23)\"\r\n },\r\n },\r\n tableHeader: {\r\n backgroundColor: '#016895',\r\n color: '#FFFFFF',\r\n fontSize: '16pt',\r\n lineHeight: '24pt',\r\n },\r\n tableTitleRow: {\r\n color: '#FFFFFF',\r\n },\r\n okButton: {\r\n width: '100%',\r\n },\r\n cancelButton: {\r\n backgroundColor: '#AEAEAE',\r\n color: '#2E2E2E',\r\n cursor: 'pointer',\r\n height: '100%',\r\n width: '100%',\r\n '&:hover': {\r\n backgroundColor: '#707070',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n defaultBorder: {\r\n margin: '5px',\r\n width: \"300px\",\r\n \"& fieldset\": {\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n },\r\n \"& input:disabled fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n \"& label\": {\r\n color: \"rgba(1, 104, 149, 1)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n },\r\n },\r\n disabledBorder: {\r\n margin: '5px',\r\n width: \"300px\",\r\n \"& fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n \"& label\": {\r\n color: \"rgba(0, 0, 0, .5)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n },\r\n tableCellLabelStyle: {\r\n textAlign: 'right',\r\n width: '300px',\r\n fontWeight: '900',\r\n float: 'left',\r\n },\r\n tableCellStyle: {\r\n marginLeft: \"-4px\",\r\n display: \"block\",\r\n },\r\n tableCellValueStyle: {\r\n textAlign: 'left',\r\n width: '300px',\r\n fontWeight: '500',\r\n float: 'left',\r\n },\r\n datePicker: {\r\n width: \"300px\",\r\n },\r\n hideRow: {\r\n display: \"none\",\r\n },\r\n signatureCell: {\r\n width: \"200px\",\r\n height: \"auto\",\r\n border: '1px solid #000000',\r\n padding: '0px !important',\r\n },\r\n buttonRow: {\r\n backgroundColor: '#ffffff',\r\n paddingTop: '10px',\r\n },\r\n}));\r\n\r\nconst url = \"/api/v1/equipment/orderdetails\";\r\n\r\nconst RentalDetails = ({ row, show, onExited, onEscapeKeyDown, ...props }) => {\r\n const [state, dispatch] = useContext(Context);\r\n const [currentRow, setCurrentRow] = useState(null);\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n if (!show) {\r\n return;\r\n }\r\n\r\n api.get(state.host + `${url}/${row.rentalOrderNo}`, state.credentials)\r\n .then(({ data }) => {\r\n setCurrentRow(data[0]);\r\n })\r\n }, [row, show])\r\n\r\n const sizeOfBase64String = (base64String) => {\r\n if (!base64String) return 0;\r\n const padding = (base64String.match(/(=*)$/) || [])[1].length;\r\n return 4 * Math.ceil((base64String.length / 3)) - padding;\r\n }\r\n\r\n\r\n const handleOkClicked = () => {\r\n setCurrentRow(null);\r\n onExited(false);\r\n }\r\n\r\n return show && Boolean(currentRow) && (\r\n \r\n \r\n \r\n \r\n \r\n Rental Details\r\n \r\n \r\n\r\n \r\n \r\n Customer Name\r\n {currentRow.customerName}\r\n \r\n \r\n Customer No\r\n {currentRow.customerNo}\r\n \r\n \r\n Delivery Address\r\n {(currentRow.deliveryAddress.length > 0 ? currentRow.deliveryAddress + \", \" : \"\") + (currentRow.deliveryAddress2.length > 0 ? currentRow.deliveryAddress2 + \", \" : \"\") + (currentRow.deliveryCity.length > 0 ? currentRow.deliveryCity + \", \" : \"\") + (currentRow.deliveryPostCode.length > 0 ? currentRow.deliveryPostCode + \", \" : \"\") + (currentRow.deliveryCounty.length > 0 ? currentRow.deliveryCounty + \", \" : \"\") + currentRow.deliveryCountryRegionCode}\r\n \r\n \r\n Delivery By\r\n {currentRow.deliveryBy}\r\n \r\n \r\n Delivery By Name\r\n {currentRow.deliveryByName}\r\n \r\n \r\n Creation Date & Time\r\n {currentRow.creationDateTime}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tDelivery Date & Time\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{currentRow.deliveryDateTime}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tStopped Date & Time\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{currentRow.stoppedDateTime}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n \r\n Delivery EMail\r\n {currentRow.deliveryEMail}\r\n \r\n \r\n Delivery Phone No\r\n {currentRow.deliveryPhoneNo}\r\n \r\n \r\n No\r\n {currentRow.no}\r\n \r\n \r\n Rental Order Line No\r\n {currentRow.rentalOrderLineNo}\r\n \r\n \r\n Rental Order No\r\n {currentRow.rentalOrderNo}\r\n \r\n \r\n Ship To Code\r\n {currentRow.shipToCode}\r\n \r\n \r\n Ship To Name\r\n {currentRow.shipToName}\r\n \r\n \r\n Ward\r\n {currentRow.ward}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Job Proof\r\n \r\n \r\n\r\n \r\n \r\n Delivered\r\n {currentRow.deliveryDateTime}\r\n \r\n \r\n Signee\r\n {currentRow.signedBy}\r\n \r\n \r\n Signature \r\n {sizeOfBase64String(currentRow.signaturePOD[0]) > 0 &&\r\n
\r\n
Signature is recorded ({sizeOfBase64String(currentRow.signaturePOD[0])} bytes)
\r\n
0 ? classes.signatureCell : ''}>\r\n \r\n
\r\n
}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n Ok\r\n \r\n \r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default RentalDetails;","import React, { useState } from \"react\";\r\n\r\nconst usePopover = () => {\r\n const [show, setShow] = useState(false);\r\n\r\n const open = () => {\r\n setShow(true);\r\n }\r\n\r\n const close = () => {\r\n setShow(false);\r\n }\r\n\r\n return [show, open, close];\r\n}\r\n\r\nexport default usePopover;","import React, { useContext } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Grid } from '@material-ui/core';\r\nimport StopRental from './StopRental';\r\nimport ExchangeRental from './ExchangeRental';\r\nimport TransferRental from './TransferRental';\r\nimport RentalDetails from './RentalDetails';\r\nimport usePopover from '../../hooks/usePopover';\r\nimport { api, Context } from '../../Portal';\r\nimport { trackPromise } from 'react-promise-tracker';\r\n\r\nconst useStyles = makeStyles((theme) => ({}));\r\n\r\nconst url = \"/api/v1/equipment/orderreport\";\r\n\r\nconst Actions = ({ rows, row, onExited, ...props }) => {\r\n const [state, dispatch] = useContext(Context);\r\n const [showStopRental, openStopRental, closeStopRental] = usePopover();\r\n const [showExchangeRental, openExchangeRental, closeExchangeRental] = usePopover();\r\n const [showTransferRental, openTransferRental, closeTransferRental] = usePopover();\r\n const [showRentalDetails, openRentalDetails, closeRentalDetails] = usePopover();\r\n\r\n const rowsSelected = (open) => {\r\n if (rows.length !== 0) {\r\n open();\r\n }\r\n }\r\n\r\n const rowSelected = (open) => {\r\n if (row.length !== 0) {\r\n open();\r\n }\r\n }\r\n\r\n const printDetails = () => {\r\n if (row.length !== 0) {\r\n getDetailsPrint();\r\n }\r\n }\r\n\r\n const reload = (close) => {\r\n close();\r\n onExited();\r\n }\r\n\r\n const getDetailsPrint = () => {\r\n trackPromise(\r\n api.get(state.host + `${url}/${row.rentalOrderNo}`, state.credentials)\r\n .then((response) => {\r\n openDetailsPrint(response.data)\r\n }));\r\n }\r\n\r\n const openDetailsPrint = (base64) => {\r\n const binary_string = window.atob(base64);\r\n const len = binary_string.length;\r\n const bytes = new Uint8Array(len);\r\n for (var i = 0; i < len; i++) {\r\n bytes[i] = binary_string.charCodeAt(i);\r\n }\r\n const fileData = bytes.buffer;\r\n const blob = new Blob([fileData], {\r\n type: 'application/pdf'\r\n });\r\n const fileURL = URL.createObjectURL(blob);\r\n window.open(fileURL, '_blank', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,height=650,width=1000,scrollbars=yes,status=yes');\r\n }\r\n\treturn (\r\n\t\t
\r\n \r\n\t\t\t\t\t{state.user.menuItemPermissions.includes(\"Transfer Equipment\") && (\r\n\t\t\t\t\t\t rowsSelected(openTransferRental)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tTransfer\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{state.user.menuItemPermissions.includes(\"Exchange Equipment\") && (\r\n\t\t\t\t\t\t rowsSelected(openExchangeRental)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tExchange\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{state.user.menuItemPermissions.includes(\"Create Rental Order\") && (\r\n\t\t\t\t\t\t rowsSelected(openStopRental)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tStop Rental\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n rowSelected(openRentalDetails)}\r\n >\r\n Rental Details\r\n \r\n printDetails()}\r\n >\r\n Print Rental Details\r\n \r\n \r\n\r\n {rows.length > 0 && (\r\n reload(closeStopRental)}\r\n onEscapeKeyDown={() => reload(closeStopRental)}\r\n />\r\n )}\r\n\r\n {rows.length > 0 && (\r\n reload(closeTransferRental)}\r\n onEscapeKeyDown={() => reload(closeTransferRental)}\r\n />\r\n )}\r\n\r\n {rows.length > 0 && (\r\n reload(closeExchangeRental)}\r\n onEscapeKeyDown={() => reload(closeExchangeRental)}\r\n />\r\n )}\r\n\r\n {row.selected && (\r\n reload(closeRentalDetails)}\r\n onEscapeKeyDown={() => reload(closeRentalDetails)}\r\n />\r\n )}\r\n
\r\n )\r\n}\r\n\r\n\r\nexport default Actions;","import { useContext, useEffect, useState } from \"react\";\r\nimport { useForm, FormProvider } from \"react-hook-form\";\r\n\r\nimport { Checkbox, makeStyles, Button } from \"@material-ui/core\";\r\nimport { AllInclusive, DeleteForeverTwoTone } from \"@material-ui/icons\";\r\nimport { api, Context } from \"../../Portal\";\r\nimport FieldGroup from '../../components/controls/FieldGroup';\r\nimport useCustomerInformation from '../../hooks/useCustomerInformation';\r\nimport DropdownField from '../../components/controls/DropdownField';\r\nimport BaseDataTable from \"../../components/BaseDataTable\";\r\nimport Actions from \"./Actions\";\r\nimport { ConfirmationDialog } from \"../../components/controls/ConfirmationDialog\";\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faTimesCircle } from '@fortawesome/free-solid-svg-icons';\r\n\r\nconst url = \"/api/v1/equipment/\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n deleteIcon: {\r\n color: '#016895',\r\n paddingLeft: '0px',\r\n marginLeft: '-10px',\r\n cursor: 'pointer',\r\n },\r\n}));\r\n\r\nconst ViewEquipmentOnHire = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [information, costCentreRequired, customers, wards, costCentres, onCustomerSelected] = useCustomerInformation();\r\n const [showConfirmation, setShowConfirmation] = useState({ rentalCancelled: false, exchangeCancelled: false, transferCancelled: false, approvalCancelled: false, genericCancelled: false });\r\n const [rows, setRows] = useState([]);\r\n const [cells, setCells] = useState([]);\r\n const [selectedRows, setSelectedRows] = useState([]);\r\n const [selectedRow, setSelectedRow] = useState([]);\r\n\tconst [toggleClearRows, setToggleClearRows] = useState(false);\r\n\r\n const formMethods = useForm();\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n buildCells();\r\n setSelectedRows([]);\r\n setRows([])\r\n\r\n return () => {\r\n dispatch({ type: \"CLEAR-CUSTOMER-SELECTION\" });\r\n setRows([]);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n\t\tif (Boolean(state.selectedCustomer)) {\r\n\t\t\tget();\r\n }\r\n }, [state.selectedCustomer]);\r\n\r\n const get = () => {\r\n setSelectedRow([]);\r\n setToggleClearRows(prev => !prev);\r\n api.get(state.host + url, state.credentials)\r\n .then(({ data }) => {\r\n setRows(data.rentalLines);\r\n });\r\n }\r\n\r\n const delayGet = () => {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\tif (Boolean(state.selectedCustomer)) {\r\n\t\t\t\tget();\r\n\t\t\t}\r\n }, 200);\r\n }\r\n\r\n const handleSelectedRows = (state) => {\r\n setSelectedRows(state.selectedRows);\r\n }\r\n\r\n const buildCells = () => {\r\n setCells([\r\n {\r\n name: 'Ward',\r\n selector: 'ward',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Patient',\r\n selector: 'patientName',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Patient No',\r\n selector: 'patientNo',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Started',\r\n selector: 'startDate',\r\n\t\t\t\t\t\t\t\tsortable: true,\r\n\t\t\t\t\t\t\t\tsortFunction: customColumnSort,\r\n },\r\n {\r\n name: 'Bed',\r\n selector: 'bed',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Model',\r\n selector: 'model',\r\n sortable: true,\r\n },\r\n {\r\n name: 'Serial No',\r\n selector: 'serialNo',\r\n sortable: true,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n name: 'Rental Order No.',\r\n\t\t\t\t\t\t\t\tselector: 'rentalOrderNo',\r\n sortable: true,\r\n },\r\n {\r\n name: \"Status\",\r\n selector: \"status\",\r\n sortable: true,\r\n },\r\n {\r\n name: '',\r\n selector: '',\r\n sortable: false,\r\n width: '20px',\r\n cell: (row) => {\r\n if (canCancelRow(row)) {\r\n return (\r\n \r\n handleCancelButtonClicked(row)}\r\n >\r\n \r\n \r\n \r\n )\r\n }\r\n },\r\n },\r\n ]);\r\n };\r\n\r\n\tconst customColumnSort = (rowA, rowB) => {\r\n\t\tvar datePartsA = rowA.startDate.split(\"/\");\r\n\t\tvar datePartsB = rowB.startDate.split(\"/\");\r\n\t\tif (rowA.startDate.trim().length == 0) {\r\n\t\t\tdatePartsA = \"01/01/1900\".split(\"/\");\r\n\t\t};\r\n\t\tif (rowB.startDate.trim().length == 0) {\r\n\t\t\tdatePartsB = \"01/01/1900\".split(\"/\");\r\n\t\t};\r\n\t\t\r\n\t\treturn dates.compare(new Date(datePartsA[2], datePartsA[1] - 1, datePartsA[0]), new Date(datePartsB[2], datePartsB[1] - 1, datePartsB[0]));\r\n\t};\r\n\r\n\tvar dates = {\r\n\t\tconvert: function (d) {\r\n\t\t\t// Converts the date in d to a date-object. The input can be:\r\n\t\t\t// a date object: returned without modification\r\n\t\t\t// an array : Interpreted as [year,month,day]. NOTE: month is 0-11.\r\n\t\t\t// a number : Interpreted as number of milliseconds\r\n\t\t\t// since 1 Jan 1970 (a timestamp) \r\n\t\t\t// a string : Any format supported by the javascript engine, like\r\n\t\t\t// \"YYYY/MM/DD\", \"MM/DD/YYYY\", \"Jan 31 2009\" etc.\r\n\t\t\t// an object : Interpreted as an object with year, month and date\r\n\t\t\t// attributes. **NOTE** month is 0-11.\r\n\t\t\treturn (\r\n\t\t\t\td.constructor === Date ? d :\r\n\t\t\t\t\td.constructor === Array ? new Date(d[0], d[1], d[2]) :\r\n\t\t\t\t\t\td.constructor === Number ? new Date(d) :\r\n\t\t\t\t\t\t\td.constructor === String ? new Date(d) :\r\n\t\t\t\t\t\t\t\ttypeof d === \"object\" ? new Date(d.year, d.month, d.date) :\r\n\t\t\t\t\t\t\t\t\tNaN\r\n\t\t\t);\r\n\t\t},\r\n\t\tcompare: function (a, b) {\r\n\t\t\t// Compare two dates (could be of any type supported by the convert\r\n\t\t\t// function above) and returns:\r\n\t\t\t// -1 : if a < b\r\n\t\t\t// 0 : if a = b\r\n\t\t\t// 1 : if a > b\r\n\t\t\t// NaN : if a or b is an illegal date\r\n\t\t\t// NOTE: The code inside isFinite does an assignment (=).\r\n\t\t\treturn (\r\n\t\t\t\tisFinite(a = this.convert(a).valueOf()) &&\r\n\t\t\t\t\tisFinite(b = this.convert(b).valueOf()) ?\r\n\t\t\t\t\t(a > b) - (a < b) :\r\n\t\t\t\t\tNaN\r\n\t\t\t);\r\n\t\t},\r\n\t\tinRange: function (d, start, end) {\r\n\t\t\t// Checks if date in d is between dates in start and end.\r\n\t\t\t// Returns a boolean or NaN:\r\n\t\t\t// true : if d is between start and end (inclusive)\r\n\t\t\t// false : if d is before start or after end\r\n\t\t\t// NaN : if one or more of the dates is illegal.\r\n\t\t\t// NOTE: The code inside isFinite does an assignment (=).\r\n\t\t\treturn (\r\n\t\t\t\tisFinite(d = this.convert(d).valueOf()) &&\r\n\t\t\t\t\tisFinite(start = this.convert(start).valueOf()) &&\r\n\t\t\t\t\tisFinite(end = this.convert(end).valueOf()) ?\r\n\t\t\t\t\tstart <= d && d <= end :\r\n\t\t\t\t\tNaN\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n const handleCancelButtonClicked = (row) => {\r\n if (row.status === \"Pending Exchange In\" || row.status === \"Pending Exchange Out\") {\r\n handleExchangeCancel(row);\r\n } else if (row.status === \"Pending Transfer In\" || row.status === \"Pending Transfer Out\") {\r\n handleTransferCancel(row);\r\n } else if (row.status === \"Pending Approval\") {\r\n handleApprovalCancel(row);\r\n } else if (row.status === \"Ready to deliver\") {\r\n handleRentalOrderCancel(row);\r\n } else {\r\n handleGenericCancel(row);\r\n }\r\n }\r\n\r\n\tconst handleApprovalCancel = (row) => {\r\n\t\tdispatch({ type: \"CUSTOMER-SELECTED\", payload: { selectedCustomer: state.user.customers[0].no } });\r\n api.delete(state.host + url + `transaction/${row.rentalOrderNo}/${row.rentalLineNo}`, state.credentials)\r\n .then(({ data }) => {\r\n delayGet();\r\n });\r\n }\r\n\r\n\tconst handleGenericCancel = (row) => {\r\n\t\tdispatch({ type: \"CUSTOMER-SELECTED\", payload: { selectedCustomer: state.user.customers[0].no } });\r\n api.delete(state.host + url + `transaction/${row.rentalOrderNo}/${row.rentalLineNo}`, state.credentials)\r\n .then(({ data }) => {\r\n delayGet();\r\n });\r\n }\r\n\r\n\tconst handleTransferCancel = (row) => {\r\n\t\tdispatch({ type: \"CUSTOMER-SELECTED\", payload: { selectedCustomer: state.user.customers[0].no } });\r\n api.delete(state.host + url + `transaction/${row.rentalOrderNo}/${row.rentalLineNo}`, state.credentials)\r\n .then(({ data }) => {\r\n delayGet();\r\n });\r\n }\r\n\r\n\tconst handleExchangeCancel = (row) => {\r\n\t\tdispatch({ type: \"CUSTOMER-SELECTED\", payload: { selectedCustomer: state.user.customers[0].no } });\r\n api.delete(state.host + url + `transaction/${row.rentalOrderNo}/${row.rentalLineNo}`, state.credentials)\r\n .then(({ data }) => {\r\n delayGet();\r\n });\r\n }\r\n\r\n\tconst handleRentalOrderCancel = (row) => {\r\n\t\tdispatch({ type: \"CUSTOMER-SELECTED\", payload: { selectedCustomer: state.user.customers[0].no } });\r\n api.delete(state.host + url + `transaction/${row.rentalOrderNo}/${row.rentalLineNo}`, state.credentials)\r\n .then(({ data }) => {\r\n delayGet();\r\n });\r\n }\r\n\r\n const onOk = () => {\r\n delayGet();\r\n }\r\n\r\n const setSelectableRows = (row) => {\r\n return row.status !== \"Rented\";\r\n }\r\n\r\n const canCancelRow = (row) => {\r\n return row.status !== \"Rented\";\r\n }\r\n\r\n const conditionalRowStyles = [\r\n {\r\n when: row => row.selected,\r\n style: {\r\n backgroundColor: '#016895',\r\n color: 'white',\r\n '&:hover': {\r\n cursor: 'pointer',\r\n backgroundColor: '#016895',\r\n color: 'white',\r\n },\r\n '& svg path': {\r\n fill: '#ffffff',\r\n }\r\n },\r\n },\r\n ];\r\n\r\n const onRowClicked = (row) => {\r\n let hasSelection = false;\r\n const updatedRows = rows.map(item => {\r\n if (row.rentalOrderNo === item.rentalOrderNo && row.rentalLineNo === item.rentalLineNo) {\r\n let newRow = {\r\n ...item,\r\n selected: item.selected ? !item.selected : true\r\n };\r\n hasSelection = true;\r\n setSelectedRow(newRow);\r\n return newRow;\r\n }\r\n let newRow = {\r\n ...item,\r\n selected: false\r\n };\r\n return newRow;\r\n \r\n });\r\n if (!hasSelection) { setSelectedRow({}); }\r\n setRows(updatedRows);\r\n }\r\n\r\n const onRowDoubleClicked = (row) => {\r\n const updatedRows = rows.map(item => {\r\n if (row.rentalOrderNo === item.rentalOrderNo && row.rentalLineNo === item.rentalLineNo) {\r\n setSelectedRow(row);\r\n return {\r\n ...item,\r\n selected: true\r\n };\r\n }\r\n\r\n item.selected = false;\r\n return item;\r\n\r\n });\r\n\r\n setRows(updatedRows);\r\n }\r\n\r\n return (\r\n \r\n \r\n ({ value: customer.no, description: customer.name }))}\r\n xs={12}\r\n />\r\n \r\n\r\n }\r\n onRowClicked={onRowClicked}\r\n onRowDoubleClicked={onRowDoubleClicked}\r\n onRowsSelected={handleSelectedRows}\r\n clearSelectedRows={toggleClearRows}\r\n selectableRowDisabled={setSelectableRows}\r\n conditionalRowStyles={conditionalRowStyles}\r\n selectableRows\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default ViewEquipmentOnHire;","import React, { useContext } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Grid } from '@material-ui/core';\r\n\r\nimport useRedirect from '../../hooks/useRedirect';\r\nimport { Context } from '../../Portal';\r\n\r\nconst useStyles = makeStyles((theme) => ({}));\r\n\r\nconst Actions = ({ rows, ...props }) => {\r\n const [state, dispatch] = useContext(Context);\r\n const { redirectToCreateRentalOrder } = useRedirect();\r\n\r\n const createRentalOrder = () => {\r\n dispatch({ type: \"CONSIGNMENT-PRODUCTS-SELECTED\", payload: { products: rows, customer: state.selectedCustomer } })\r\n redirectToCreateRentalOrder();\r\n }\r\n\r\n return (\r\n \r\n \r\n Create Rental Order\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Actions;","import React, { useContext, useEffect, useState } from 'react';\r\nimport { useForm, FormProvider } from \"react-hook-form\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nimport { Context } from '../../Portal';\r\nimport useGetConsignmentStock from '../../hooks/useGetConsignmentStock';\r\nimport FieldGroup from '../../components/controls/FieldGroup';\r\nimport useCustomerInformation from '../../hooks/useCustomerInformation';\r\nimport DropdownField from '../../components/controls/DropdownField';\r\nimport Actions from './Actions';\r\nimport BaseDataTable from '../../components/BaseDataTable';\r\n\r\nconst useStyles = makeStyles((theme) => ({}));\r\n\r\nconst ConsignmentStock = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [information, costCentreRequired, customers, wards, costCentres, onCustomerSelected, onWardSelected, onCostCentreSelected] = useCustomerInformation();\r\n const [cells, setCells] = useState([]);\r\n const [rows, setRows] = useState([]);\r\n const [selectedRows, setSelectedRows] = useState([]);\r\n\r\n const stock = useGetConsignmentStock();\r\n const formMethods = useForm();\r\n\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n setCells(buildCells());\r\n setSelectedRows([]);\r\n setRows([])\r\n\r\n return () => {\r\n dispatch({ type: \"CLEAR-CUSTOMER-SELECTION\" });\r\n setRows([]);\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (state.selectedCustomer === null) {\r\n return;\r\n }\r\n if (Boolean(state.selectedCustomer)) {\r\n dispatch({ type: \"LOAD-CONSIGNED-STOCK\" });\r\n }\r\n }, [state.selectedCustomer])\r\n\r\n useEffect(() => {\r\n transformStock();\r\n }, [stock])\r\n\r\n const buildCells = () => {\r\n return [\r\n {\r\n name: \"Store\",\r\n selector: \"storeCode\",\r\n sortable: true\r\n },\r\n {\r\n name: \"Ward\",\r\n selector: \"ward\",\r\n sortable: true\r\n },\r\n {\r\n name: \"Model\",\r\n selector: \"model\",\r\n sortable: true\r\n },\r\n {\r\n name: \"Description\",\r\n selector: \"description\",\r\n sortable: true\r\n },\r\n {\r\n name: \"Serial Number\",\r\n selector: \"serialNumber\",\r\n sortable: true\r\n },\r\n ]\r\n }\r\n\r\n const transformStock = () => {\r\n let allProducts = [];\r\n\r\n for (const [key, value] of Object.entries(stock)) {\r\n allProducts = allProducts.concat(value);\r\n }\r\n\r\n setRows(allProducts);\r\n }\r\n\r\n const handleSelectedRows = (state) => {\r\n setSelectedRows(state.selectedRows);\r\n }\r\n\r\n return (\r\n \r\n \r\n ({ value: customer.no, description: customer.name }))}\r\n xs={12}\r\n />\r\n \r\n \r\n }\r\n onRowsSelected={handleSelectedRows}\r\n />\r\n\r\n \r\n )\r\n}\r\n\r\nexport default ConsignmentStock;","import React, { useContext, useEffect, useReducer, useState } from 'react';\r\nimport { useForm, FormProvider } from \"react-hook-form\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Collapse, Container, Grid } from '@material-ui/core';\r\nimport { ExpandMoreTwoTone } from '@material-ui/icons';\r\nimport uuid from \"uuid-random\";\r\nimport moment from 'moment';\r\nimport { api, Context } from '../../Portal';\r\nimport Section from '../../components/controls/Section';\r\nimport DropdownField from '../../components/controls/DropdownField';\r\nimport { extractControl, buildDeliveryForm } from '../../components/controls/buildForm';\r\nimport ProductGrid from '../../components/controls/ProductGrid';\r\nimport FieldGroup from '../../components/controls/FieldGroup';\r\nimport useCustomerInformation from '../../hooks/useCustomerInformation';\r\nimport useRedirect from '../../hooks/useRedirect';\r\n\r\nconst viewUrl = \"/views/v1/transfer-in\";\r\nconst url = \"/api/v1/rentalorders\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n delivery: {\r\n borderBottom: \"1px solid \" + theme.palette.primary.dark,\r\n borderLeft: \"1px solid \" + theme.palette.primary.dark,\r\n borderRight: \"1px solid \" + theme.palette.primary.dark,\r\n width: \"100%\",\r\n margin: \"0\",\r\n maxWidth: \"100%\",\r\n padding: \"1rem\"\r\n },\r\n deliveryBar: {\r\n ...theme.titleBar,\r\n border: \"1px solid \" + theme.palette.primary.dark,\r\n marginLeft: \"4px\",\r\n marginRight: \"4px\",\r\n },\r\n deliveryOpening: {\r\n ...theme.titleBar,\r\n borderTop: \"1px solid \" + theme.palette.primary.dark,\r\n borderLeft: \"1px solid \" + theme.palette.primary.dark,\r\n borderRight: \"1px solid \" + theme.palette.primary.dark,\r\n marginLeft: \"4px\",\r\n marginRight: \"4px\",\r\n },\r\n collapse: {\r\n width: \"100%\",\r\n maxWidth: \"100%\",\r\n marginLeft: \"4px\",\r\n marginRight: \"4px\",\r\n },\r\n button: {\r\n marginRight: \"2em\",\r\n },\r\n defaultBorder: {\r\n \"& fieldset\": {\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n },\r\n \"& input:disabled fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n \"& label\": {\r\n color: \"rgba(1, 104, 149, 1)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n },\r\n },\r\n disabledBorder: {\r\n \"& fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n \"& label\": {\r\n color: \"rgba(0, 0, 0, .5)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n },\r\n}));\r\n\r\nconst transformModels = (models) => {\r\n return models.map(categories => (\r\n categories.map(product => ({\r\n category: product.category,\r\n MODEL: product.model,\r\n MODELDESCRIPTION: product.description,\r\n SHORTDESCRIPTION: product.shortDescription,\r\n REQBYDATE: \"\",\r\n REQBYTIME: \"\",\r\n image: product.image,\r\n highEnd: product.highEnd\r\n }))\r\n ));\r\n}\r\nconst TransferIn = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [information, costCentreRequired, customers, wards, , onCustomerSelected, onWardSelected, onCostCentreSelected] = useCustomerInformation();\r\n\r\n const [costCentres, setCostCentres] = useState([]);\r\n const [communityDelivery, setCommunityDelivery] = useState(false);\r\n const [row1, setRow1] = useState({ height: 0, groups: [] });\r\n const [row2, setRow2] = useState({ height: 0, groups: [] });\r\n\r\n const [delivery, setDelivery] = useState([]);\r\n const [comment, setComment] = useState([]);\r\n const [contactDetails, setContactDetails] = useState([]);\r\n const [gridColumns, setGridColumns] = useState([]);\r\n const [models, setModels] = useState([]);\r\n\r\n const [postCodes, setPostCodes] = useState([]);\r\n\r\n const [productsOrdered, setProductsOrdered] = useState([]);\r\n const [showAddress, setShowAddress] = useState(false);\r\n const [staff, setStaff] = useState({ authorisers: [], requestors: [], contacts: [] });\r\n const [customerInformation, setCustomerInformation] = useState([]);\r\n const [contact, setContact] = useState({\r\n name: '',\r\n surname: '',\r\n firstNames: ''\r\n });\r\n const [requestor, setRequestor] = useState({\r\n name: '',\r\n surname: '',\r\n firstNames: ''\r\n });\r\n const { redirectToViewAuthorisations } = useRedirect();\r\n\r\n const formMethods = useForm();\r\n const { handleSubmit, reset } = formMethods;\r\n const classes = useStyles();\r\n\r\n let today = moment();\r\n if (today.hour() < 2) {\r\n today.hour(10);\r\n today.minute(0);\r\n today.second(0);\r\n } else if (today.hour() >= 14) {\r\n today.date(today.date() + 1);\r\n today.hour(10);\r\n today.minute(0);\r\n today.second(0);\r\n } else {\r\n today.hour(today.hour() + 4);\r\n }\r\n\r\n useEffect(() => {\r\n getExistingRental();\r\n return () => {\r\n dispatch({ type: \"CLEAR-CUSTOMER-SELECTION\" });\r\n }\r\n }, []);\r\n\r\n const getExistingRental = () => {\r\n const utcOffset = Math.ceil(moment().utcOffset() / 60);\r\n api.get(state.host + viewUrl + `/${state.toApprove.rentalOrderNo}/${utcOffset}`, state.credentials)\r\n .then(({ data }) => {\r\n setCommunityDelivery(data.communityDelivery);\r\n setStaff(data.staff);\r\n setRow1({ height: data.row1Height, groups: data.groupsRow1 });\r\n setRow2({ height: data.row2Height, groups: data.groupsRow2 });\r\n setDelivery(data.delivery);\r\n setComment(data.comment);\r\n setContactDetails(data.contactDetails);\r\n setModels(transformModels(data.models));\r\n setPostCodes(data.postCodes.map(({ postCode1, city, county }) => ({ value: postCode1, description: `${postCode1} ${city} ${county}` })));\r\n setShowAddress(data.communityDelivery);\r\n setGridColumns(data.grid);\r\n setCustomerInformation(data.customerInformation);\r\n setCostCentres(data.costCentres);\r\n setProductsOrdered(data.products.map(x => ({\r\n MODEL: x.model,\r\n MODELDESCRIPTION: x.description,\r\n highEnd: x.highEnd,\r\n serialNo: x.serialNumber,\r\n REQBYDATE: x.requiredByDate,\r\n REQBYTIME: x.requiredByTime,\r\n iREQBYDATE: x.requiredByDate,\r\n iREQBYTIME: x.requiredByTime,\r\n guid: uuid()\r\n })));\r\n });\r\n }\r\n\r\n const onProductsSelected = (products) => {\r\n setProductsOrdered(products);\r\n }\r\n\r\n const onProductUpdated = (products) => {\r\n\r\n }\r\n\r\n const handleAddressCollapse = () => {\r\n setShowAddress(!showAddress);\r\n }\r\n\r\n const handleApprove = (data) => {\r\n let { CUSTOMER, WARD, COSTCENTRE, REQBYDATE, REQBYTIME, CONTACTPERSON, REQNURSE, ...rest } = data;\r\n\r\n let transfer = {\r\n USEREMAIL: state.user.username,\r\n CUSTOMER: CUSTOMER,\r\n SHIPTOCODE: state.selectedShipTo?.shipToCode ?? \"\",\r\n WARD: WARD,\r\n COSTCENTRE: COSTCENTRE,\r\n ...rest,\r\n PRODUCTS: productsOrdered.map((product) => {\r\n let { category, highEnd, serialNo, onChange, image, ...rest } = product;\r\n return {\r\n ...rest,\r\n SERIALNO: serialNo ?? \"\"\r\n }\r\n }),\r\n APPROVED: true,\r\n };\r\n\r\n api.put(state.host + url + `/transfer/${state.toApprove.rentalOrderNo}`, transfer, state.credentials)\r\n .then(({ data }) => {\r\n redirectToViewAuthorisations();\r\n });\r\n }\r\n\r\n const handleDecline = () => {\r\n api.delete(state.host + url + `/transfer/${state.toApprove.rentalOrderNo}`, state.credentials)\r\n .then(({ data }) => {\r\n redirectToViewAuthorisations();\r\n });\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {row1.groups.length > 0 && (\r\n \r\n ({ value: customer.no, description: customer.name }))}\r\n xs={12}\r\n />\r\n ({ value: ward.description, description: ward.description }))}\r\n xs={12}\r\n />\r\n {(costCentreRequired || (costCentres.length > 0 && !costCentreRequired)) && (\r\n ({ value: costCentre.costCentreCode, description: costCentre.costCentreCode }))}\r\n xs={12}\r\n />\r\n )}\r\n \r\n )}\r\n\r\n {row1.groups.length > 0 && row1.groups.map(group => (\r\n \r\n ))}\r\n {row2.groups.length > 0 && row2.groups.map(group => (\r\n \r\n ))}\r\n\r\n {gridColumns.length > 0 && (\r\n \r\n )}\r\n\r\n {delivery.length > 0 && (\r\n }\r\n className={showAddress ? classes.deliveryOpening : classes.deliveryBar}\r\n >\r\n \r\n \r\n \r\n {delivery.map(field => (buildDeliveryForm(field, communityDelivery, postCodes, \"\", classes)))}\r\n\r\n {contactDetails.map(field => (extractControl(field, classes)))}\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {comment.length > 0 && (\r\n \r\n )}\r\n\r\n {row1.groups.length > 0 && (\r\n \r\n \r\n Approve Transfer\r\n \r\n \r\n Decline Transfer\r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default TransferIn;","import React, { useContext, useEffect, useReducer, useState } from 'react';\r\nimport { useForm, FormProvider } from \"react-hook-form\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Collapse, Container, Grid } from '@material-ui/core';\r\nimport { ExpandMoreTwoTone } from '@material-ui/icons';\r\nimport uuid from \"uuid-random\";\r\nimport moment from 'moment';\r\nimport { api, Context } from '../../Portal';\r\nimport Section from '../../components/controls/Section';\r\nimport DropdownField from '../../components/controls/DropdownField';\r\nimport { extractControl, buildDeliveryForm } from '../../components/controls/buildForm';\r\nimport ProductGrid from '../../components/controls/ProductGrid';\r\nimport FieldGroup from '../../components/controls/FieldGroup';\r\nimport useCustomerInformation from '../../hooks/useCustomerInformation';\r\nimport useRedirect from '../../hooks/useRedirect';\r\n\r\nconst viewUrl = \"/views/v1/approve-exchange\";\r\nconst url = \"/api/v1/rentalorders\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n delivery: {\r\n borderBottom: \"1px solid \" + theme.palette.primary.dark,\r\n borderLeft: \"1px solid \" + theme.palette.primary.dark,\r\n borderRight: \"1px solid \" + theme.palette.primary.dark,\r\n width: \"100%\",\r\n margin: \"0\",\r\n maxWidth: \"100%\",\r\n padding: \"1rem\"\r\n },\r\n deliveryBar: {\r\n ...theme.titleBar,\r\n border: \"1px solid \" + theme.palette.primary.dark,\r\n marginLeft: \"4px\",\r\n marginRight: \"4px\",\r\n },\r\n deliveryOpening: {\r\n ...theme.titleBar,\r\n borderTop: \"1px solid \" + theme.palette.primary.dark,\r\n borderLeft: \"1px solid \" + theme.palette.primary.dark,\r\n borderRight: \"1px solid \" + theme.palette.primary.dark,\r\n marginLeft: \"4px\",\r\n marginRight: \"4px\",\r\n },\r\n collapse: {\r\n width: \"100%\",\r\n maxWidth: \"100%\",\r\n marginLeft: \"4px\",\r\n marginRight: \"4px\",\r\n },\r\n button: {\r\n marginRight: \"2em\",\r\n },\r\n defaultBorder: {\r\n \"& fieldset\": {\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n },\r\n \"& input:disabled fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n \"& label\": {\r\n color: \"rgba(1, 104, 149, 1)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n },\r\n },\r\n disabledBorder: {\r\n \"& fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n \"& label\": {\r\n color: \"rgba(0, 0, 0, .5)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n },\r\n}));\r\n\r\nconst transformModels = (models) => {\r\n return models.map(categories => (\r\n categories.map(product => ({\r\n category: product.category,\r\n MODEL: product.model,\r\n MODELDESCRIPTION: product.description,\r\n SHORTDESCRIPTION: product.shortDescription,\r\n REQBYDATE: \"\",\r\n REQBYTIME: \"\",\r\n image: product.image,\r\n highEnd: product.highEnd\r\n }))\r\n ));\r\n}\r\n\r\nconst ApproveExchange = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [information, costCentreRequired, customers, wards, , onCustomerSelected, onWardSelected, onCostCentreSelected] = useCustomerInformation();\r\n\r\n const [costCentres, setCostCentres] = useState([]);\r\n const [communityDelivery, setCommunityDelivery] = useState(false);\r\n const [row1, setRow1] = useState({ height: 0, groups: [] });\r\n const [row2, setRow2] = useState({ height: 0, groups: [] });\r\n\r\n const [delivery, setDelivery] = useState([]);\r\n const [comment, setComment] = useState([]);\r\n const [contactDetails, setContactDetails] = useState([]);\r\n const [gridColumns, setGridColumns] = useState([]);\r\n const [models, setModels] = useState([]);\r\n\r\n const [postCodes, setPostCodes] = useState([]);\r\n\r\n const [productsOrdered, setProductsOrdered] = useState([]);\r\n const [showAddress, setShowAddress] = useState(false);\r\n const [staff, setStaff] = useState({ authorisers: [], requestors: [], contacts: [] });\r\n const [customerInformation, setCustomerInformation] = useState([]);\r\n const [contact, setContact] = useState({\r\n name: '',\r\n surname: '',\r\n firstNames: ''\r\n });\r\n const [requestor, setRequestor] = useState({\r\n name: '',\r\n surname: '',\r\n firstNames: ''\r\n });\r\n const { redirectToViewAuthorisations } = useRedirect();\r\n\r\n const formMethods = useForm();\r\n const { handleSubmit, reset } = formMethods;\r\n const classes = useStyles();\r\n\r\n let today = moment();\r\n if (today.hour() < 2) {\r\n today.hour(10);\r\n today.minute(0);\r\n today.second(0);\r\n } else if (today.hour() >= 14) {\r\n today.date(today.date() + 1);\r\n today.hour(10);\r\n today.minute(0);\r\n today.second(0);\r\n } else {\r\n today.hour(today.hour() + 4);\r\n }\r\n\r\n useEffect(() => {\r\n getExistingRental();\r\n return () => {\r\n dispatch({ type: \"CLEAR-CUSTOMER-SELECTION\" });\r\n }\r\n }, []);\r\n\r\n const getExistingRental = () => {\r\n const utcOffset = Math.ceil(moment().utcOffset() / 60);\r\n api.get(state.host + viewUrl + `/${state.toApprove.rentalOrderNo}/${utcOffset}`, state.credentials)\r\n .then(({ data }) => {\r\n setCommunityDelivery(data.communityDelivery);\r\n setStaff(data.staff);\r\n setRow1({ height: data.row1Height, groups: data.groupsRow1 });\r\n setRow2({ height: data.row2Height, groups: data.groupsRow2 });\r\n setDelivery(data.delivery);\r\n setComment(data.comment);\r\n setContactDetails(data.contactDetails);\r\n setModels(transformModels(data.models));\r\n setPostCodes(data.postCodes.map(({ postCode1, city, county }) => ({ value: postCode1, description: `${postCode1} ${city} ${county}` })));\r\n setShowAddress(data.communityDelivery);\r\n setGridColumns(data.grid);\r\n setCustomerInformation(data.customerInformation);\r\n setCostCentres(data.costCentres);\r\n setProductsOrdered(data.products.map(x => ({\r\n MODEL: x.model,\r\n MODELDESCRIPTION: x.description,\r\n highEnd: x.highEnd,\r\n serialNo: x.serialNo,\r\n REQBYDATE: x.requiredByDate,\r\n REQBYTIME: x.requiredByTime,\r\n iREQBYDATE: x.requiredByDate,\r\n iREQBYTIME: x.requiredByTime,\r\n guid: uuid()\r\n })));\r\n });\r\n }\r\n\r\n const onProductsSelected = (products) => {\r\n setProductsOrdered(products);\r\n }\r\n\r\n const onProductUpdated = (products) => {\r\n\r\n }\r\n\r\n const handleAddressCollapse = () => {\r\n setShowAddress(!showAddress);\r\n }\r\n\r\n const handleApprove = (data) => {\r\n let { CUSTOMER, WARD, COSTCENTRE, REQBYDATE, REQBYTIME, ...rest } = data;\r\n\r\n let exchange = {\r\n USEREMAIL: state.user.username,\r\n CUSTOMER: CUSTOMER,\r\n SHIPTOCODE: state.selectedShipTo?.shipToCode ?? \"\",\r\n WARD: WARD,\r\n COSTCENTRE: COSTCENTRE,\r\n ...rest,\r\n PRODUCTS: productsOrdered.map((product) => {\r\n let { category, highEnd, serialNo, onChange, image, ...rest } = product;\r\n return {\r\n ...rest,\r\n SERIALNO: serialNo ?? \"\"\r\n }\r\n }),\r\n APPROVED: true,\r\n };\r\n\r\n api.put(state.host + url + `/exchange/${state.toApprove.rentalOrderNo}`, exchange, state.credentials)\r\n .then(({ data }) => {\r\n redirectToViewAuthorisations();\r\n });\r\n }\r\n\r\n const handleDecline = () => {\r\n api.delete(state.host + url + `/exchange/${state.toApprove.rentalOrderNo}`, state.credentials)\r\n .then(({ data }) => {\r\n redirectToViewAuthorisations();\r\n });\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {row1.groups.length > 0 && (\r\n \r\n ({ value: customer.no, description: customer.name }))}\r\n xs={12}\r\n />\r\n ({ value: ward.description, description: ward.description }))}\r\n xs={12}\r\n />\r\n {(costCentreRequired || (costCentres.length > 0 && !costCentreRequired)) && (\r\n ({ value: costCentre.costCentreCode, description: costCentre.costCentreCode }))}\r\n xs={12}\r\n />\r\n )}\r\n \r\n )}\r\n\r\n {row1.groups.length > 0 && row1.groups.map(group => (\r\n \r\n ))}\r\n {row2.groups.length > 0 && row2.groups.map(group => (\r\n \r\n ))}\r\n\r\n {gridColumns.length > 0 && (\r\n \r\n )}\r\n\r\n {delivery.length > 0 && (\r\n }\r\n className={showAddress ? classes.deliveryOpening : classes.deliveryBar}\r\n >\r\n \r\n \r\n \r\n {delivery.map(field => (buildDeliveryForm(field, communityDelivery, postCodes, \"\", classes)))}\r\n\r\n {contactDetails.map(field => (extractControl(field, classes)))}\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {comment.length > 0 && (\r\n \r\n )}\r\n\r\n {row1.groups.length > 0 && (\r\n \r\n \r\n Approve Exchange\r\n \r\n \r\n Decline Exchange\r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default ApproveExchange;","import React, { useContext, useEffect, useReducer, useState } from 'react';\r\nimport { useForm, FormProvider } from \"react-hook-form\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Collapse, Container, Grid } from '@material-ui/core';\r\nimport { ExpandMoreTwoTone } from '@material-ui/icons';\r\nimport uuid from \"uuid-random\";\r\nimport moment from 'moment';\r\nimport { api, Context } from '../../Portal';\r\nimport Section from '../../components/controls/Section';\r\nimport DropdownField from '../../components/controls/DropdownField';\r\nimport { extractControl, buildDeliveryForm } from '../../components/controls/buildForm';\r\nimport ProductGrid from '../../components/controls/ProductGrid';\r\nimport FieldGroup from '../../components/controls/FieldGroup';\r\nimport useCustomerInformation from '../../hooks/useCustomerInformation';\r\nimport useRedirect from '../../hooks/useRedirect';\r\n\r\nconst viewUrl = \"/views/v1/approve\";\r\nconst url = \"/api/v1/rentalorders\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n delivery: {\r\n borderBottom: \"1px solid \" + theme.palette.primary.dark,\r\n borderLeft: \"1px solid \" + theme.palette.primary.dark,\r\n borderRight: \"1px solid \" + theme.palette.primary.dark,\r\n width: \"100%\",\r\n margin: \"0\",\r\n maxWidth: \"100%\",\r\n padding: \"1rem\"\r\n },\r\n deliveryBar: {\r\n ...theme.titleBar,\r\n border: \"1px solid \" + theme.palette.primary.dark,\r\n marginLeft: \"4px\",\r\n marginRight: \"4px\",\r\n },\r\n deliveryOpening: {\r\n ...theme.titleBar,\r\n borderTop: \"1px solid \" + theme.palette.primary.dark,\r\n borderLeft: \"1px solid \" + theme.palette.primary.dark,\r\n borderRight: \"1px solid \" + theme.palette.primary.dark,\r\n marginLeft: \"4px\",\r\n marginRight: \"4px\",\r\n },\r\n collapse: {\r\n width: \"100%\",\r\n maxWidth: \"100%\",\r\n marginLeft: \"4px\",\r\n marginRight: \"4px\",\r\n },\r\n button: {\r\n marginRight: \"2em\",\r\n },\r\n defaultBorder: {\r\n \"& fieldset\": {\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n },\r\n \"& input:disabled fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n \"& label\": {\r\n color: \"rgba(1, 104, 149, 1)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid rgba(1, 104, 149, .5)\",\r\n },\r\n },\r\n disabledBorder: {\r\n \"& fieldset\": {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n \"& label\": {\r\n color: \"rgba(0, 0, 0, .5)\",\r\n },\r\n '& hover': {\r\n border: \"1px solid rgba(0, 0, 0, .38)\",\r\n },\r\n },\r\n}));\r\n\r\nconst transformModels = (models) => {\r\n return models.map(categories => (\r\n categories.map(product => ({\r\n category: product.category,\r\n MODEL: product.model,\r\n MODELDESCRIPTION: product.description,\r\n SHORTDESCRIPTION: product.shortDescription,\r\n REQBYDATE: \"\",\r\n REQBYTIME: \"\",\r\n image: product.image,\r\n highEnd: product.highEnd\r\n }))\r\n ));\r\n}\r\n\r\nconst ApproveRental = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [information, costCentreRequired, customers, wards, , onCustomerSelected, onWardSelected, onCostCentreSelected] = useCustomerInformation();\r\n\r\n const [costCentres, setCostCentres] = useState([]);\r\n const [communityDelivery, setCommunityDelivery] = useState(false);\r\n const [row1, setRow1] = useState({ height: 0, groups: [] });\r\n const [row2, setRow2] = useState({ height: 0, groups: [] });\r\n\r\n const [delivery, setDelivery] = useState([]);\r\n const [comment, setComment] = useState([]);\r\n const [contactDetails, setContactDetails] = useState([]);\r\n const [gridColumns, setGridColumns] = useState([]);\r\n const [models, setModels] = useState([]);\r\n\r\n const [postCodes, setPostCodes] = useState([]);\r\n\r\n const [productsOrdered, setProductsOrdered] = useState([]);\r\n const [showAddress, setShowAddress] = useState(false);\r\n const [staff, setStaff] = useState({ authorisers: [], requestors: [], contacts: [] });\r\n const [customerInformation, setCustomerInformation] = useState([]);\r\n const [contact, setContact] = useState({\r\n name: '',\r\n surname: '',\r\n firstNames: ''\r\n });\r\n const [requestor, setRequestor] = useState({\r\n name: '',\r\n surname: '',\r\n firstNames: ''\r\n });\r\n const { redirectToViewAuthorisations } = useRedirect();\r\n\r\n const formMethods = useForm();\r\n const { handleSubmit, reset } = formMethods;\r\n const classes = useStyles();\r\n\r\n let today = moment();\r\n if (today.hour() < 2) {\r\n today.hour(10);\r\n today.minute(0);\r\n today.second(0);\r\n } else if (today.hour() >= 14) {\r\n today.date(today.date() + 1);\r\n today.hour(10);\r\n today.minute(0);\r\n today.second(0);\r\n } else {\r\n today.hour(today.hour() + 4);\r\n }\r\n\r\n useEffect(() => {\r\n getExistingRental();\r\n return () => {\r\n dispatch({ type: \"CLEAR-CUSTOMER-SELECTION\" });\r\n }\r\n }, []);\r\n\r\n const getExistingRental = () => {\r\n const utcOffset = Math.ceil(moment().utcOffset() / 60);\r\n api.get(state.host + viewUrl + `/${state.toApprove.rentalOrderNo}/${utcOffset}`, state.credentials)\r\n .then(({ data }) => {\r\n setCommunityDelivery(data.communityDelivery);\r\n setStaff(data.staff);\r\n setRow1({ height: data.row1Height, groups: data.groupsRow1 });\r\n setRow2({ height: data.row2Height, groups: data.groupsRow2 });\r\n setDelivery(data.delivery);\r\n setComment(data.comment);\r\n setContactDetails(data.contactDetails);\r\n setModels(transformModels(data.models));\r\n setPostCodes(data.postCodes.map(({ postCode1, city, county }) => ({ value: postCode1, description: `${postCode1} ${city} ${county}` })));\r\n setShowAddress(data.communityDelivery);\r\n setGridColumns(data.grid);\r\n setCustomerInformation(data.customerInformation);\r\n setCostCentres(data.costCentres);\r\n setProductsOrdered(data.products.map(x => ({\r\n MODEL: x.model,\r\n MODELDESCRIPTION: x.description,\r\n highEnd: x.highEnd,\r\n serialNo: x.serialNo,\r\n REQBYDATE: x.requiredByDate,\r\n REQBYTIME: x.requiredByTime,\r\n iREQBYDATE: x.requiredByDate,\r\n iREQBYTIME: x.requiredByTime,\r\n guid: uuid()\r\n })));\r\n });\r\n }\r\n\r\n const onProductsSelected = (products) => {\r\n setProductsOrdered(products);\r\n }\r\n\r\n const onProductUpdated = (products) => {\r\n\r\n }\r\n\r\n const handleAddressCollapse = () => {\r\n setShowAddress(!showAddress);\r\n }\r\n\r\n const onSubmit = (data) => {\r\n if (productsOrdered.length === 0) {\r\n dispatch({ type: \"SHOW-ERROR\", payload: { heading: \"No equipment\", message: \"Please select equipment for this rental order\" } });\r\n return;\r\n }\r\n\r\n let { CUSTOMER, WARD, COSTCENTRE, REQBYDATE, REQBYTIME, ...rest } = data;\r\n\r\n let approveRental = {\r\n USEREMAIL: state.user.username,\r\n CUSTOMER: CUSTOMER,\r\n SHIPTOCODE: state.selectedShipTo?.shipToCode ?? \"\",\r\n WARD: WARD,\r\n COSTCENTRE: COSTCENTRE,\r\n ...rest,\r\n PRODUCTS: productsOrdered.map((product) => {\r\n let { category, highEnd, serialNo, onChange, image, ...rest } = product;\r\n return {\r\n ...rest,\r\n SERIALNO: serialNo ?? \"\"\r\n }\r\n }),\r\n APPROVED: true,\r\n };\r\n\r\n api.put(state.host + url + `/${state.toApprove.rentalOrderNo}`, approveRental, state.credentials)\r\n .then(({ data }) => {\r\n redirectToViewAuthorisations();\r\n });\r\n }\r\n\r\n const handleDecline = () => {\r\n api.delete(state.host + url + `/${state.toApprove.rentalOrderNo}`, state.credentials)\r\n .then(({ data }) => {\r\n redirectToViewAuthorisations();\r\n });\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {row1.groups.length > 0 && (\r\n \r\n ({ value: customer.no, description: customer.name }))}\r\n xs={12}\r\n />\r\n ({ value: ward.description, description: ward.description }))}\r\n xs={12}\r\n />\r\n {(costCentreRequired || (costCentres.length > 0 && !costCentreRequired)) && (\r\n ({ value: costCentre.costCentreCode, description: costCentre.costCentreCode }))}\r\n xs={12}\r\n />\r\n )}\r\n \r\n )}\r\n\r\n {row1.groups.length > 0 && row1.groups.map(group => (\r\n \r\n ))}\r\n {row2.groups.length > 0 && row2.groups.map(group => (\r\n \r\n ))}\r\n\r\n {gridColumns.length > 0 && (\r\n \r\n )}\r\n\r\n {delivery.length > 0 && (\r\n }\r\n className={showAddress ? classes.deliveryOpening : classes.deliveryBar}\r\n >\r\n \r\n \r\n \r\n {delivery.map(field => (buildDeliveryForm(field, communityDelivery, postCodes, \"\", classes)))}\r\n\r\n {contactDetails.map(field => (extractControl(field, classes)))}\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {comment.length > 0 && (\r\n \r\n )}\r\n\r\n {row1.groups.length > 0 && (\r\n \r\n \r\n Approve Rental\r\n \r\n \r\n Decline Rental\r\n \r\n \r\n )}\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default ApproveRental;","import React, { useContext, useEffect, useState } from 'react';\r\nimport { useForm, FormProvider } from \"react-hook-form\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Collapse, Container, Grid, TextField, Typography } from '@material-ui/core';\r\nimport { ConfirmationDialog } from '../../components/controls/ConfirmationDialog';\r\nimport FieldGroup from '../../components/controls/FieldGroup';\r\nimport DropdownField from '../../components/controls/DropdownField';\r\nimport useCustomerInformation from '../../hooks/useCustomerInformation';\r\nimport { api, Context } from '../../Portal';\r\nimport usePopover from '../../hooks/usePopover';\r\nimport StopRental from '../view-eqipment-on-hire/StopRental';\r\nimport TransferRental from '../view-eqipment-on-hire/TransferRental';\r\nimport ExchangeRental from '../view-eqipment-on-hire/ExchangeRental';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n actions: {\r\n marginTop: \"2em\",\r\n },\r\n}));\r\n\r\nvar url = \"/api/v1/equipment/stop/serialnumbers\";\r\n\r\nconst RentalStop = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [information, costCentreRequired, customers, wards, costCentres, onCustomerSelected, onWardSelected, onCostCentreSelected] = useCustomerInformation();\r\n const [serialNumber, setSerialNumber] = useState(\"\");\r\n const [rows, setRows] = useState([]);\r\n const [showNotFound, setShowNotFound] = useState(false);\r\n const [confirmationOpen, setConfirmationOpen] = useState(false);\r\n const [confirmationTitle, setConfirmationTitle] = useState('');\r\n const [confirmationVariant, setConfirmationVariant] = useState('');\r\n const [showOkButton, setShowOkButton] = useState(true);\r\n const [okButtonText, setOkButtonText] = useState('');\r\n const [okButtonAction, setOkButtonAction] = useState('');\r\n const [showCancelButton, setShowCancelButton] = useState(false);\r\n const [cancelButtonText, setCancelButtonText] = useState('');\r\n const [cancelButtonAction, setCancelButtonAction] = useState('');\r\n const [dialogActions, setDialogActions] = useState({});\r\n const [confirmationDescription, setConfirmationDescription] = useState('');\r\n const [showTransferRental, openTransferRental, closeTransferRental] = usePopover();\r\n const [showExchangeRental, openExchangeRental, closeExchangeRental] = usePopover();\r\n const [showStopRental, openStopRental, closeStopRental] = usePopover();\r\n const [options, setOptions] = useState(false);\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n return () => {\r\n dispatch({ type: \"CLEAR-CUSTOMER-SELECTION\" })\r\n }\r\n }, []);\r\n\r\n const formMethods = useForm();\r\n\r\n const handleFind = (event) => {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n api.get(state.host + `${url}/${serialNumber}`, state.credentials)\r\n .then(({ data }) => {\r\n if (data.dialogMessage && data.dialogMessage.actions) {\r\n setConfirmationTitle(data.dialogMessage.title ?? data.dialogMessage.title);\r\n setConfirmationVariant(data.dialogMessage.dialogType ?? data.dialogMessage.dialogType.toLowerCase());\r\n setShowOkButton(data.dialogMessage.okButtonText ?? data.dialogMessage.okButtonText.length > 0);\r\n setOkButtonText(data.dialogMessage.okButtonText ?? data.dialogMessage.okButtonText);\r\n setOkButtonAction(data.dialogMessage.okButtonAction ?? data.dialogMessage.okButtonAction);\r\n setShowCancelButton(data.dialogMessage.cancelButtonText ?? data.dialogMessage.cancelButtonText.length > 0);\r\n setCancelButtonText(data.dialogMessage.cancelButtonText ?? data.dialogMessage.cancelButtonText);\r\n setCancelButtonAction(data.dialogMessage.cancelButtonAction ?? data.dialogMessage.cancelButtonAction);\r\n setConfirmationDescription(data.dialogMessage.message ?? data.dialogMessage.message);\r\n setDialogActions(data.dialogMessage.actions);\r\n setRows(data.result);\r\n setOptions(true);\r\n setConfirmationOpen(true);\r\n } else if (data.result.length > 0 && !data.dialogMessage) {\r\n setOptions(false);\r\n setRows(data.result);\r\n openStopRental();\r\n return;\r\n }\r\n if (data.result.length === 0) {\r\n setShowNotFound(true);\r\n }\r\n \r\n })\r\n }\r\n\r\n const handleActionButtonTransfer = () => {\r\n if (rows.length > 0) {\r\n setOptions(true);\r\n openTransferRental();\r\n setConfirmationOpen(false);\r\n }\r\n }\r\n\r\n const handleActionButtonExchange = () => {\r\n if (rows.length > 0) {\r\n setOptions(true);\r\n openExchangeRental();\r\n setConfirmationOpen(false);\r\n }\r\n }\r\n\r\n const handleActionButtonStop = () => {\r\n if (rows.length > 0) {\r\n setOptions(true);\r\n openStopRental();\r\n setConfirmationOpen(false);\r\n }\r\n }\r\n\r\n const handleActionButtonCancel = async () => {\r\n setRows([]);\r\n setConfirmationOpen(false);\r\n }\r\n\r\n const handleOkClick = () => {\r\n setConfirmationOpen(false);\r\n }\r\n const handleCancelClick = () => {\r\n setConfirmationOpen(false);\r\n }\r\n\r\n const reload = (close) => {\r\n close();\r\n setSerialNumber(\"\");\r\n setRows([]);\r\n }\r\n\r\n const OnSerialNumberChanged = (event) => {\r\n setSerialNumber(event.target.value);\r\n setShowNotFound(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n ({ value: customer.no, description: customer.name }))}\r\n xs={12}\r\n className={classes.defaultBorder}\r\n />\r\n ({ value: ward.description, description: ward.description }))}\r\n xs={12}\r\n className={classes.defaultBorder}\r\n />\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n Cannot find a rental order for {serialNumber}\r\n \r\n \r\n \r\n\r\n \r\n \r\n Find\r\n \r\n \r\n \r\n\r\n {rows.length > 0 && (\r\n reload(closeStopRental)}\r\n onEscapeKeyDown={() => reload(closeStopRental)}\r\n options={options}\r\n />\r\n )}\r\n {rows.length > 0 && (\r\n reload(closeExchangeRental)}\r\n onEscapeKeyDown={() => reload(closeExchangeRental)}\r\n options={options}\r\n />\r\n )}\r\n {rows.length > 0 && (\r\n reload(closeTransferRental)}\r\n onEscapeKeyDown={() => reload(closeTransferRental)}\r\n options={options}\r\n />\r\n )}\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default RentalStop;","import React, { useContext, useEffect, useState, useReducer } from 'react';\r\nimport { useForm, FormProvider } from \"react-hook-form\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Collapse, Container, Grid, TextField, Typography } from '@material-ui/core';\r\nimport { ConfirmationDialog } from '../../components/controls/ConfirmationDialog';\r\nimport FieldGroup from '../../components/controls/FieldGroup';\r\nimport DropdownField from '../../components/controls/DropdownField';\r\nimport useCustomerInformation from '../../hooks/useCustomerInformation';\r\nimport { api, Context } from '../../Portal';\r\nimport usePopover from '../../hooks/usePopover';\r\nimport StopRental from '../view-eqipment-on-hire/StopRental';\r\nimport TransferRental from '../view-eqipment-on-hire/TransferRental';\r\nimport ExchangeRental from '../view-eqipment-on-hire/ExchangeRental';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n actions: {\r\n marginTop: \"2em\",\r\n },\r\n}));\r\n\r\nvar url = \"/api/v1/equipment/exchange/serialnumbers\";\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case \"set-wards\":\r\n return {\r\n ...state,\r\n wards: action.payload,\r\n }\r\n\r\n case \"preselect-ward\":\r\n return {\r\n ...state,\r\n preselectedWard: action.payload,\r\n }\r\n }\r\n}\r\n\r\nconst RentalExchange = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [information, costCentreRequired, customers, wards, costCentres, onCustomerSelected, onWardSelected, onCostCentreSelected] = useCustomerInformation();\r\n const [local, dispatchLocal] = useReducer(reducer, { wards: [] });\r\n const [serialNumber, setSerialNumber] = useState(\"\");\r\n const [rows, setRows] = useState([]);\r\n const [values, setValues] = useState({ CUSTOMER: \"\", WARD: \"\", COSTCENTRE: \"\" });\r\n const [showNotFound, setShowNotFound] = useState(false);\r\n const [confirmationOpen, setConfirmationOpen] = useState(false);\r\n const [confirmationTitle, setConfirmationTitle] = useState('');\r\n const [confirmationVariant, setConfirmationVariant] = useState('');\r\n const [showOkButton, setShowOkButton] = useState(true);\r\n const [okButtonText, setOkButtonText] = useState('');\r\n const [okButtonAction, setOkButtonAction] = useState('');\r\n const [showCancelButton, setShowCancelButton] = useState(false);\r\n const [cancelButtonText, setCancelButtonText] = useState('');\r\n const [cancelButtonAction, setCancelButtonAction] = useState('');\r\n const [dialogActions, setDialogActions] = useState({});\r\n const [confirmationDescription, setConfirmationDescription] = useState('');\r\n const [showTransferRental, openTransferRental, closeTransferRental] = usePopover();\r\n const [showExchangeRental, openExchangeRental, closeExchangeRental] = usePopover();\r\n const [showStopRental, openStopRental, closeStopRental] = usePopover();\r\n const [options, setOptions] = useState(false);\r\n const formMethods = useForm();\r\n const classes = useStyles();\r\n\r\n\tuseEffect(() => {\r\n\t\treturn () => {\r\n\t\t\tdispatch({ type: \"CLEAR-CUSTOMER-SELECTION\" })\r\n\t\t}\r\n }, []);\r\n\r\n const handleFind = (event) => {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n\r\n api.get(state.host + `${url}/${serialNumber}`, state.credentials)\r\n .then(({ data }) => {\r\n if (data.dialogMessage && data.dialogMessage.actions) {\r\n setConfirmationTitle(data.dialogMessage.title ?? data.dialogMessage.title);\r\n setConfirmationVariant(data.dialogMessage.dialogType ?? data.dialogMessage.dialogType.toLowerCase());\r\n setShowOkButton(data.dialogMessage.okButtonText ?? data.dialogMessage.okButtonText.length > 0);\r\n setOkButtonText(data.dialogMessage.okButtonText ?? data.dialogMessage.okButtonText);\r\n setOkButtonAction(data.dialogMessage.okButtonAction ?? data.dialogMessage.okButtonAction);\r\n setShowCancelButton(data.dialogMessage.cancelButtonText ?? data.dialogMessage.cancelButtonText.length > 0);\r\n setCancelButtonText(data.dialogMessage.cancelButtonText ?? data.dialogMessage.cancelButtonText);\r\n setCancelButtonAction(data.dialogMessage.cancelButtonAction ?? data.dialogMessage.cancelButtonAction);\r\n setConfirmationDescription(data.dialogMessage.message ?? data.dialogMessage.message);\r\n setDialogActions(data.dialogMessage.actions);\r\n setRows(data.result);\r\n setOptions(true);\r\n setConfirmationOpen(true);\r\n } else if (data.result.length > 0 && !data.dialogMessage) {\r\n setRows(data.result);\r\n setOptions(false);\r\n openExchangeRental();\r\n return;\r\n }\r\n if (data.result.length === 0) {\r\n setShowNotFound(true);\r\n }\r\n })\r\n }\r\n\r\n const handleActionButtonTransfer = () => {\r\n if (rows.length > 0) {\r\n setOptions(true);\r\n openTransferRental();\r\n setConfirmationOpen(false);\r\n }\r\n }\r\n\r\n const handleActionButtonExchange = () => {\r\n if (rows.length > 0) {\r\n setOptions(true);\r\n openExchangeRental();\r\n setConfirmationOpen(false);\r\n }\r\n }\r\n\r\n const handleActionButtonStop = () => {\r\n if (rows.length > 0) {\r\n setOptions(true);\r\n openStopRental();\r\n setConfirmationOpen(false);\r\n }\r\n }\r\n\r\n const handleActionButtonCancel = async () => {\r\n setRows([]);\r\n setConfirmationOpen(false);\r\n }\r\n\r\n const handleOkClick = () => {\r\n setConfirmationOpen(false);\r\n }\r\n const handleCancelClick = () => {\r\n setConfirmationOpen(false);\r\n }\r\n\r\n const reload = (close) => {\r\n close();\r\n setSerialNumber(\"\");\r\n setRows([]);\r\n }\r\n\r\n const OnSerialNumberChanged = (event) => {\r\n setSerialNumber(event.target.value);\r\n setShowNotFound(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n\r\n \r\n\r\n\r\n \r\n ({ value: customer.no, description: customer.name }))}\r\n xs={12}\r\n className={classes.defaultBorder}\r\n />\r\n ({ value: ward.description, description: ward.description }))}\r\n xs={12}\r\n className={classes.defaultBorder}\r\n />\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n Cannot find a rental order for {serialNumber}\r\n \r\n \r\n \r\n \r\n \r\n \r\n Find\r\n \r\n \r\n \r\n\r\n {rows.length > 0 && (\r\n reload(closeStopRental)}\r\n onEscapeKeyDown={() => reload(closeStopRental)}\r\n options={options}\r\n />\r\n )}\r\n {rows.length > 0 && (\r\n reload(closeExchangeRental)}\r\n onEscapeKeyDown={() => reload(closeExchangeRental)}\r\n options={options}\r\n />\r\n )}\r\n {rows.length > 0 && (\r\n reload(closeTransferRental)}\r\n onEscapeKeyDown={() => reload(closeTransferRental)}\r\n options={options}\r\n />\r\n )}\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default RentalExchange;","import React, { useContext, useEffect, useState, useReducer } from 'react';\r\nimport { useForm, FormProvider } from \"react-hook-form\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Button, Collapse, Container, Grid, TextField, Typography } from '@material-ui/core';\r\nimport { ConfirmationDialog } from '../../components/controls/ConfirmationDialog';\r\nimport FieldGroup from '../../components/controls/FieldGroup';\r\nimport DropdownField from '../../components/controls/DropdownField';\r\nimport useCustomerInformation from '../../hooks/useCustomerInformation';\r\nimport { api, Context } from '../../Portal';\r\nimport usePopover from '../../hooks/usePopover';\r\nimport StopRental from '../view-eqipment-on-hire/StopRental';\r\nimport TransferRental from '../view-eqipment-on-hire/TransferRental';\r\nimport ExchangeRental from '../view-eqipment-on-hire/ExchangeRental';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n actions: {\r\n marginTop: \"2em\",\r\n },\r\n}));\r\n\r\nconst url = \"/api/v1/equipment/transfer/serialnumbers\";\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case \"set-wards\":\r\n return {\r\n ...state,\r\n wards: action.payload,\r\n }\r\n\r\n case \"preselect-ward\":\r\n return {\r\n ...state,\r\n preselectedWard: action.payload,\r\n }\r\n }\r\n}\r\n\r\nconst RentalTransfer = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [information, costCentreRequired, customers, wards, costCentres, onCustomerSelected, onWardSelected, onCostCentreSelected] = useCustomerInformation();\r\n const [local, dispatchLocal] = useReducer(reducer, { wards: [] });\r\n const [serialNumber, setSerialNumber] = useState(\"\");\r\n const [rows, setRows] = useState([]);\r\n const [values, setValues] = useState({ CUSTOMER: \"\", WARD: \"\", COSTCENTRE: \"\" });\r\n const [showNotFound, setShowNotFound] = useState(false);\r\n const [confirmationOpen, setConfirmationOpen] = useState(false);\r\n const [confirmationTitle, setConfirmationTitle] = useState('');\r\n const [confirmationVariant, setConfirmationVariant] = useState('');\r\n const [showOkButton, setShowOkButton] = useState(true);\r\n const [okButtonText, setOkButtonText] = useState('');\r\n const [okButtonAction, setOkButtonAction] = useState('');\r\n const [showCancelButton, setShowCancelButton] = useState(false);\r\n const [cancelButtonText, setCancelButtonText] = useState('');\r\n const [cancelButtonAction, setCancelButtonAction] = useState('');\r\n const [dialogActions, setDialogActions] = useState({});\r\n const [confirmationDescription, setConfirmationDescription] = useState('');\r\n const [showTransferRental, openTransferRental, closeTransferRental] = usePopover();\r\n const [showExchangeRental, openExchangeRental, closeExchangeRental] = usePopover();\r\n const [showStopRental, openStopRental, closeStopRental] = usePopover();\r\n const [options, setOptions] = useState(false);\r\n const [ward, setWard] = useState('');\r\n const formMethods = useForm();\r\n const classes = useStyles();\r\n\r\n useEffect(() => {\r\n return () => {\r\n dispatch({ type: \"CLEAR-CUSTOMER-SELECTION\" })\r\n }\r\n }, []);\r\n\r\n const handleFind = (event) => {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n setRows([]);\r\n api.get(state.host + `${url}/${serialNumber}`, state.credentials)\r\n .then(({ data }) => {\r\n if (data.dialogMessage && data.dialogMessage.actions) {\r\n setConfirmationTitle(data.dialogMessage.title ?? data.dialogMessage.title);\r\n setConfirmationVariant(data.dialogMessage.dialogType ?? data.dialogMessage.dialogType.toLowerCase());\r\n setShowOkButton(data.dialogMessage.okButtonText ?? data.dialogMessage.okButtonText.length > 0);\r\n setOkButtonText(data.dialogMessage.okButtonText ?? data.dialogMessage.okButtonText);\r\n setOkButtonAction(data.dialogMessage.okButtonAction ?? data.dialogMessage.okButtonAction);\r\n setShowCancelButton(data.dialogMessage.cancelButtonText ?? data.dialogMessage.cancelButtonText.length > 0);\r\n setCancelButtonText(data.dialogMessage.cancelButtonText ?? data.dialogMessage.cancelButtonText);\r\n setCancelButtonAction(data.dialogMessage.cancelButtonAction ?? data.dialogMessage.cancelButtonAction);\r\n setConfirmationDescription(data.dialogMessage.message ?? data.dialogMessage.message);\r\n setDialogActions(data.dialogMessage.actions);\r\n setRows(data.result);\r\n setOptions(true);\r\n setConfirmationOpen(true);\r\n } else if (data.result.length > 0 && !data.dialogMessage) {\r\n setRows(data.result);\r\n setOptions(false);\r\n openTransferRental();\r\n return;\r\n }\r\n if (data.result.length === 0) {\r\n setShowNotFound(true);\r\n }\r\n })\r\n }\r\n\r\n const handleActionButtonTransfer = () => {\r\n if (rows.length > 0) {\r\n setOptions(true);\r\n openTransferRental();\r\n setConfirmationOpen(false);\r\n }\r\n }\r\n\r\n const handleActionButtonExchange = () => {\r\n if (rows.length > 0) {\r\n setOptions(true);\r\n openExchangeRental();\r\n setConfirmationOpen(false);\r\n }\r\n }\r\n\r\n const handleActionButtonStop = () => {\r\n if (rows.length > 0) {\r\n setOptions(true);\r\n openStopRental();\r\n setConfirmationOpen(false);\r\n }\r\n }\r\n\r\n const handleActionButtonCancel = async () => {\r\n setRows([]);\r\n setConfirmationOpen(false);\r\n }\r\n\r\n const handleOkClick = () => {\r\n setConfirmationOpen(false);\r\n }\r\n const handleCancelClick = () => {\r\n setConfirmationOpen(false);\r\n }\r\n\r\n const reload = (close) => {\r\n close();\r\n setSerialNumber(\"\");\r\n setRows([]);\r\n }\r\n\r\n const OnSerialNumberChanged = (event) => {\r\n setSerialNumber(event.target.value);\r\n setShowNotFound(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n\r\n \r\n\r\n\r\n \r\n ({ value: customer.no, description: customer.name }))}\r\n xs={12}\r\n className={classes.defaultBorder}\r\n />\r\n ({ value: ward.description, description: ward.description }))}\r\n xs={12}\r\n className={classes.defaultBorder}\r\n />\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n Cannot find a rental order for {serialNumber}\r\n \r\n \r\n \r\n\r\n \r\n \r\n Find\r\n \r\n \r\n \r\n\r\n {rows.length > 0 && (\r\n reload(closeStopRental)}\r\n onEscapeKeyDown={() => reload(closeStopRental)}\r\n options={options}\r\n />\r\n )}\r\n {rows.length > 0 && (\r\n reload(closeExchangeRental)}\r\n onEscapeKeyDown={() => reload(closeExchangeRental)}\r\n options={options}\r\n />\r\n )}\r\n {rows.length > 0 && (\r\n reload(closeTransferRental)}\r\n onEscapeKeyDown={() => reload(closeTransferRental)}\r\n options={options}\r\n />\r\n )}\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default RentalTransfer;","import React, { useContext, useEffect, useState } from 'react';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport DataTable from 'react-data-table-component';\r\nimport { Button, Chip, FormControlLabel, FormLabel, Grid, Radio, RadioGroup, TextField } from '@material-ui/core';\r\nimport datatableStyles from '../../static/datatables-styles';\r\nimport { ContactSupportTwoTone, Warning, WarningTwoTone } from '@material-ui/icons';\r\nimport { api, Context } from '../../Portal';\r\nimport Popover from '../../components/Popover';\r\nimport { ConfirmationDialog } from \"../../components/controls/ConfirmationDialog\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n queryForm: {\r\n height: '100%',\r\n justifyContent: 'space-between',\r\n flexFlow: 'column nowrap',\r\n },\r\n queryFormContent: {\r\n height: '100%',\r\n flexFlow: 'column nowrap',\r\n justifyContent: 'space-between',\r\n },\r\n queryFormFields: {\r\n padding: '10px',\r\n },\r\n buttonRow: {\r\n justifyContent: 'flex-end',\r\n\r\n },\r\n saveButton: {\r\n backgroundColor: '#016895',\r\n color: '#FFFFFF',\r\n cursor: 'pointer',\r\n width: '100%',\r\n '&:hover': {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n cancelButton: {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n cursor: 'pointer',\r\n width: '100%',\r\n '&:hover': {\r\n backgroundColor: '#26A9E1',\r\n color: '#FFFFFF',\r\n }\r\n },\r\n}));\r\n\r\nvar url = \"/api/v1/invoices\";\r\n// var queryUrl = \"/api/v1/invoices\";\r\n\r\nfunction CostCentreInvoiceApproval() {\r\n const [state, dispatch] = useContext(Context);\r\n const [invoices, setInvoices] = useState([]);\r\n const [open, setOpen] = useState(false);\r\n const [queryRow, setQueryRow] = useState({});\r\n const [resolved, setResolved] = useState(\"No\");\r\n const [message, setMessage] = useState(\"\");\r\n const [history, setHistory] = useState(\"\");\r\n const [verifyOpen, setVerifyOpen] = useState(false);\r\n const [verifyError, setVerifyError] = useState(\"\")\r\n const [popupMode, setPopupMode] = useState(\"full\");\r\n\r\n const browserHistory = useHistory();\r\n const classes = useStyles();\r\n\r\n const columns = [\r\n {\r\n name: 'Month',\r\n sortable: true,\r\n selector: \"month\",\r\n },\r\n {\r\n name: 'Ward',\r\n sortable: false,\r\n selector: \"ward\",\r\n },\r\n {\r\n name: 'Cost Centre',\r\n sortable: false,\r\n selector: \"costCentre\",\r\n },\r\n {\r\n cell: row => (\r\n <>\r\n {row.invoiceNo}\r\n {row.overDue && }\r\n \r\n ),\r\n name: \"Invoice Number\"\r\n },\r\n {\r\n name: 'Total',\r\n selector: 'total'\r\n },\r\n {\r\n cell: row => (\r\n <>\r\n {!row.verified &&\r\n onVerify(row)}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n size=\"small\"\r\n disabled={row.canVerify}\r\n >\r\n Approve\r\n }\r\n \r\n )\r\n }\r\n ];\r\n\r\n const lineColumns = [\r\n {\r\n cell: row => {\r\n\r\n if (row.status === \"Query\") {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (!row.openQueries && (row.status === \"Open\" || row.status == \"Verified\")) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (row.status === \"Open\") {\r\n return null;\r\n }\r\n\r\n },\r\n width: \"40px\"\r\n },\r\n {\r\n name: 'Cost Centre',\r\n sortable: true,\r\n selector: \"costCentre\",\r\n center: false,\r\n },\r\n {\r\n name: 'Rental Order',\r\n sortable: true,\r\n selector: \"rentalOrder\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Model',\r\n sortable: true,\r\n selector: \"model\",\r\n center: false,\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n name: 'Serial No.',\r\n sortable: true,\r\n selector: \"serialNo\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Patient',\r\n sortable: true,\r\n selector: \"patientFullName\",\r\n center: false,\r\n },\r\n {\r\n name: 'Patient No.',\r\n sortable: true,\r\n selector: \"patientNo\",\r\n center: false,\r\n },\r\n {\r\n name: 'From',\r\n sortable: true,\r\n selector: \"dateFrom\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'To',\r\n sortable: true,\r\n selector: \"dateTo\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Days',\r\n sortable: true,\r\n selector: \"days\",\r\n width: \"4em\",\r\n center: true,\r\n compact: true,\r\n },\r\n {\r\n name: 'Rate',\r\n sortable: true,\r\n selector: \"rate\",\r\n right: true,\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Total',\r\n sortable: true,\r\n selector: \"total\",\r\n right: true,\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Status',\r\n sortable: true,\r\n selector: \"status\",\r\n center: true,\r\n },\r\n {\r\n cell: row => {\r\n if (row.status === \"Verified\") {\r\n return (\r\n <>\r\n onViewHistory(row)}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n size=\"small\"\r\n >\r\n History\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n <>\r\n onCreateQuery(row)}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n size=\"small\"\r\n >\r\n Query\r\n \r\n \r\n );\r\n },\r\n grow: 1.25,\r\n },\r\n ];\r\n const ExpandableComponent = ({ data }) => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n const ResetViewButton = () => {\r\n return (\r\n onResetView()}\r\n type=\"button\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n size=\"small\"\r\n >\r\n Back to top\r\n );\r\n }\r\n\r\n const NavigateUpButton = () => {\r\n return (\r\n onNavigateUp()}\r\n type=\"button\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n size=\"small\"\r\n >\r\n Up one level\r\n );\r\n }\r\n\r\n const isDrillDown = () => {\r\n return state.user.invoiceApproval === \"Facility\" || state.user.invoiceApproval === \"District\" || state.user.invoiceApproval == \"Division\" || state.user.invoiceApproval === \"Customer\";\r\n }\r\n\r\n const onResetView = () => {\r\n var payload = defaultPayload();\r\n dispatch({\r\n type: \"INVOICESUMMARY-LINE-SELECTED\",\r\n payload: payload\r\n });\r\n browserHistory.push('/invoices/approve');\r\n }\r\n\r\n const handleOkClick = () => {\r\n setVerifyOpen(false);\r\n }\r\n\r\n\r\n const onNavigateUp = () => {\r\n var payload = browseUpPayload();\r\n if (state.user.invoiceApproval === \"Division\") {\r\n payload = defaultPayload();\r\n }\r\n dispatch({\r\n type: \"INVOICESUMMARY-LINE-SELECTED\",\r\n payload: payload\r\n });\r\n browserHistory.push('/invoices/approve');\r\n }\r\n\r\n const browseUpPayload = () => {\r\n if (state.user.selectedInvoiceDivision !== \"\") {\r\n return {\r\n selectedInvoiceLevel: \"Division\",\r\n selectedInvoiceNo: state.user.selectedInvoiceNo,\r\n selectedInvoiceDistrict: state.user.selectedInvoiceDistrict,\r\n selectedInvoiceFacility: state.user.selectedInvoiceFacility,\r\n selectedInvoiceDivision: state.user.selectedInvoiceDivision,\r\n selectedInvoiceWard: \"\",\r\n selectedInvoiceCostCentre: \"\"\r\n }\r\n } else {\r\n return {\r\n selectedInvoiceLevel: \"Facility\",\r\n selectedInvoiceNo: state.user.selectedInvoiceNo,\r\n selectedInvoiceDistrict: state.user.selectedInvoiceDistrict,\r\n selectedInvoiceFacility: state.user.selectedInvoiceFacility,\r\n selectedInvoiceDivision: \"\",\r\n selectedInvoiceWard: \"\",\r\n selectedInvoiceCostCentre: \"\"\r\n }\r\n }\r\n }\r\n const defaultPayload = () => {\r\n return {\r\n selectedInvoiceLevel: \"\",\r\n selectedInvoiceNo: \"\",\r\n selectedInvoiceDistrict: \"\",\r\n selectedInvoiceFacility: \"\",\r\n selectedInvoiceDivision: \"\",\r\n selectedInvoiceWard: \"\",\r\n selectedInvoiceCostCentre: \"\"\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n console.log(\"state...\", state);\r\n\t\t\tapi.get(state.host + url + `?level=${state.user.selectedInvoiceLevel}&district=${state.user.selectedInvoiceDistrict}&facility=${state.user.selectedInvoiceFacility}&division=${state.user.selectedInvoiceDivision}&ward=${state.user.selectedInvoiceWard}&costcentre=${state.user.selectedInvoiceCostCentre}&invoiceNo=${state.user.selectedInvoiceNo}`, state.credentials)\r\n\t\t\t\t.then(({ data }) => {\r\n\t\t\t\t\tconsole.log(\"data...\", data);\r\n\t\t\t\t\tsetInvoices(data);\r\n\t\t\t\t})\r\n\t\t\t\t.catch((error) => {\r\n\t\t\t\t\tconsole.log(\"error...\", error);\r\n\t\t\t\t});\r\n }, []);\r\n\r\n const refreshData = () => {\r\n console.log(\"state...\", state);\r\n api.get(state.host + url + `?level=${state.user.selectedInvoiceLevel}&district=${state.user.selectedInvoiceDistrict}&facility=${state.user.selectedInvoiceFacility}&division=${state.user.selectedInvoiceDivision}&ward=${state.user.selectedInvoiceWard}&costcentre=${state.user.selectedInvoiceCostCentre}&invoiceNo=${state.user.selectedInvoiceNo}`, state.credentials)\r\n .then(({ data }) => {\r\n console.log(\"data...\", data);\r\n setInvoices(data);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t.catch((error) => {\r\n\t\t\t\t\t\tconsole.log(\"error...\", error);\r\n\t\t\t\t\t});\r\n }\r\n\r\n const onCreateQuery = (row) => {\r\n setOpen(true);\r\n api.get(state.host + url + `?level=${state.user.selectedInvoiceLevel}&district=${state.user.selectedInvoiceDistrict}&facility=${state.user.selectedInvoiceFacility}&division=${state.user.selectedInvoiceDivision}&ward=${state.user.selectedInvoiceWard}&costcentre=${state.user.selectedInvoiceCostCentre}&invoiceNo=${row.invoiceNo}&invoiceLineNo=${row.invoiceLineNo}`, state.credentials)\r\n .then(({ data }) => {\r\n setHistory(data.history);\r\n });\r\n\r\n setQueryRow(row);\r\n setPopupMode(\"full\");\r\n };\r\n\r\n const onViewHistory = (row) => {\r\n setOpen(true);\r\n api.get(state.host + url + `?level=${state.user.selectedInvoiceLevel}&district=${state.user.selectedInvoiceDistrict}&facility=${state.user.selectedInvoiceFacility}&division=${state.user.selectedInvoiceDivision}&ward=${state.user.selectedInvoiceWard}&costcentre=${state.user.selectedInvoiceCostCentre}&invoiceNo=${row.invoiceNo}&invoiceLineNo=${row.invoiceLineNo}`, state.credentials)\r\n .then(({ data }) => {\r\n setHistory(data.history);\r\n });\r\n\r\n setQueryRow(row);\r\n setPopupMode(\"history\");\r\n };\r\n\r\n const onVerify = (row) => {\r\n let post = {\r\n invoiceNo: row.invoiceNo,\r\n level: \"CostCentre\",\r\n district: state.user.selectedInvoiceDistrict,\r\n facility: state.user.selectedInvoiceFacility,\r\n division: state.user.selectedInvoiceDivision,\r\n ward: row.ward,\r\n costcentre: row.costCentre\r\n };\r\n\r\n api.post(state.host + url + \"/verify\", post, state.credentials)\r\n .then(({ data }) => {\r\n console.log(\"verify...\", data);\r\n refreshData();\r\n });\r\n };\r\n\r\n const onQuery = () => {\r\n console.log(\"Row...\", queryRow);\r\n let post = {\r\n invoiceNo: queryRow.invoiceNo,\r\n invoiceLineNo: queryRow.invoiceLineNo,\r\n message: message,\r\n resolved: resolved\r\n };\r\n\r\n api.post(state.host + url + \"/query\", post, state.credentials)\r\n .then((res) => {\r\n var data = JSON.parse(res.config.data);\r\n setOpen(false);\r\n setResolved(data.resolved);\r\n setMessage(\"\");\r\n refreshData();\r\n });\r\n };\r\n\r\n const onQueryCancelled = () => {\r\n setOpen(false);\r\n setResolved(\"No\");\r\n setMessage(\"\");\r\n };\r\n\r\n const handleResolved = (event) => {\r\n setResolved(event.target.value);\r\n };\r\n\r\n return (\r\n <>\r\n }\r\n striped\r\n customStyles={datatableStyles}\r\n columns={columns}\r\n data={invoices}\r\n expandableRows\r\n expandableRowDisabled={row => row.disabled}\r\n expandableRowsComponent={}\r\n\t\t\t\t\t\t\t\texpandableRowExpanded={row => row.expanded || isDrillDown()}\r\n />\r\n \r\n { } }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {popupMode === \"full\" && (\r\n \r\n setMessage(event.target.value)} />\r\n \r\n Resolved\r\n \r\n \r\n } label=\"Yes\" />\r\n } label=\"No\" />\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {popupMode === \"full\" && (\r\n \r\n \r\n \r\n Save\r\n \r\n \r\n \r\n \r\n Cancel\r\n \r\n \r\n \r\n )}\r\n {popupMode === \"history\" && (\r\n \r\n Ok\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n \r\n );\r\n}\r\n\r\nexport default CostCentreInvoiceApproval;","import React, { useContext, useEffect, useState } from 'react';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport DataTable from 'react-data-table-component';\r\nimport { Button, Chip, Link, FormControlLabel, FormLabel, Grid, Radio, RadioGroup, TextField } from '@material-ui/core';\r\nimport datatableStyles from '../../static/datatables-styles';\r\nimport { ContactSupportTwoTone, Warning, WarningTwoTone } from '@material-ui/icons';\r\nimport { api, Context } from '../../Portal';\r\nimport Popover from '../../components/Popover';\r\nimport { ConfirmationDialog } from \"../../components/controls/ConfirmationDialog\";\r\nimport styled from \"styled-components\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n button: {\r\n marginLeft: \"8px\"\r\n }\r\n}));\r\n\r\nvar url = \"/api/v1/invoices\";\r\n// var queryUrl = \"/api/v1/invoices\";\r\n\r\nconst DivisionInvoiceApproval = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [invoices, setInvoices] = useState([]);\r\n const [open, setOpen] = useState(false);\r\n const [queryRow, setQueryRow] = useState({});\r\n const [resolved, setResolved] = useState(\"No\");\r\n const [message, setMessage] = useState(\"\");\r\n const [history, setHistory] = useState(\"\");\r\n const [verifyOpen, setVerifyOpen] = useState(false);\r\n const [verifyError, setVerifyError] = useState(\"\")\r\n const [user, setUser] = useState(state.user);\r\n\r\n const browserHistory = useHistory();\r\n const classes = useStyles();\r\n\r\n const columns = [\r\n {\r\n name: 'Month',\r\n sortable: true,\r\n selector: \"month\",\r\n },\r\n {\r\n name: 'Division',\r\n sortable: false,\r\n selector: \"divisionCode\",\r\n },\r\n {\r\n cell: row => (\r\n <>\r\n {row.invoiceNo + \" Summary\"}\r\n {row.overDue && }\r\n \r\n ),\r\n name: \"Invoice Number\"\r\n },\r\n {\r\n name: 'Total',\r\n selector: 'total'\r\n },\r\n {\r\n cell: row => (\r\n <>\r\n {!row.verified &&\r\n onVerify(row)}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n size=\"small\"\r\n disabled={!row.canVerify}\r\n >\r\n Approve\r\n \r\n }\r\n \r\n )\r\n }\r\n ];\r\n\r\n const lineColumns = [\r\n {\r\n cell: row => {\r\n if (row.openQueries) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (row.status === \"Queried\") {\r\n return (\r\n \r\n )\r\n }\r\n },\r\n width: \"40px\"\r\n },\r\n {\r\n name: 'Cost Centre',\r\n sortable: true,\r\n selector: \"subCode\",\r\n center: false\r\n },\r\n {\r\n name: 'Ward',\r\n sortable: true,\r\n selector: \"code\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Verified',\r\n sortable: true,\r\n selector: \"verified\",\r\n center: false,\r\n right: true,\r\n compact: true,\r\n },\r\n {\r\n name: 'Unverified',\r\n sortable: true,\r\n selector: \"unverified\",\r\n center: false,\r\n right: true,\r\n cell: (row) => (\r\n \r\n {row.unverified}\r\n \r\n )\r\n },\r\n {\r\n name: 'Due Date',\r\n sortable: true,\r\n selector: \"verifyByDate\",\r\n // width: \"4em\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Verified By',\r\n sortable: true,\r\n selector: \"verifier\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Phone',\r\n sortable: true,\r\n selector: \"phone\",\r\n // width: \"4em\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Email',\r\n sortable: true,\r\n selector: \"email\",\r\n right: false,\r\n center: false,\r\n compact: true,\r\n },\r\n ]\r\n const ExpandableComponent = ({ data }) => {\r\n return (\r\n {\r\n onDrillDown(data);\r\n }}\r\n conditionalRowStyles={conditionalRowStyles}\r\n />\r\n );\r\n }\r\n\r\n const StyledCell = styled.div`\r\n &.warning {\r\n color: #cb3837 !important;\r\n }\r\n &.danger {\r\n color: #680000 !important;\r\n }\r\n `;\r\n\r\n const getCssClass = (row) => {\r\n return rowStatus(row);\r\n }\r\n\r\n const conditionalRowStyles = [\r\n {\r\n when: row => rowStatus(row) === 'warning', //ORANGE\r\n style: {\r\n backgroundColor: 'rgba(255, 150, 50, 0.8)',\r\n color: 'white',\r\n '&:hover': {\r\n cursor: 'pointer',\r\n backgroundColor: 'rgba(255, 150, 50, 1)',\r\n color: 'white',\r\n outlineColor: 'rgba(255, 150, 50, 1)',\r\n borderBottomColor: 'rgba(255, 150, 50, 0.8)',\r\n },\r\n },\r\n },\r\n {\r\n when: row => rowStatus(row) === 'danger', //RED\r\n style: {\r\n backgroundColor: 'rgba(203, 56, 55, 0.8)',\r\n color: 'white',\r\n '&:hover': {\r\n cursor: 'pointer',\r\n backgroundColor: 'rgba(203, 56, 55, 1)',\r\n color: 'white',\r\n outlineColor: 'rgba(203, 56, 55, 1)',\r\n borderBottomColor: 'rgba(203, 56, 55, 0.8)',\r\n },\r\n },\r\n },\r\n {\r\n when: row => rowStatus(row) === 'ok', //GREEN\r\n style: {\r\n backgroundColor: 'rgba(44, 151, 75, 0.8)',\r\n color: 'white',\r\n '&:hover': {\r\n cursor: 'pointer',\r\n backgroundColor: 'rgba(44, 151, 75, 0.9)',\r\n color: 'white',\r\n outlineColor: 'rgba(44, 151, 75, 1)',\r\n borderBottomColor: 'rgba(44, 151, 75, 0.8)',\r\n },\r\n },\r\n },\r\n ];\r\n\r\n const rowStatus = (row) => {\r\n if (showAsWarning(row)) { return \"warning\" }\r\n if (showAsDanger(row)) { return \"danger\" }\r\n if (showAsOk(row)) { return \"ok\" }\r\n return \"\";\r\n }\r\n\r\n const showAsWarning = (row) => {\r\n return row.unverifiedAmount > 0 && row.isPastDue && row.verifiedAmount > 0;\r\n }\r\n\r\n const showAsDanger = (row) => {\r\n return row.isPastDue && row.unverifiedAmount > 0 && row.verifiedAmount === 0;\r\n }\r\n\r\n const showAsOk = (row) => {\r\n return row.isVerified && row.unverifiedAmount === 0;\r\n }\r\n\r\n const ResetViewButton = () => {\r\n return (\r\n onResetView()}\r\n type=\"button\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n size=\"small\"\r\n >\r\n Back to top\r\n );\r\n }\r\n\r\n const NavigateUpButton = () => {\r\n return (\r\n onNavigateUp()}\r\n type=\"button\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n size=\"small\"\r\n >\r\n Up One level\r\n );\r\n }\r\n\r\n const onDrillDown = (data) => {\r\n dispatch({\r\n type: \"INVOICESUMMARY-LINE-SELECTED\",\r\n payload: {\r\n selectedInvoiceLevel: \"CostCentre\",\r\n selectedInvoiceLineNo: data.invoiceLineNo,\r\n selectedInvoiceNo: data.invoiceNo,\r\n selectedInvoiceDistrict: data.districtCode,\r\n selectedInvoiceFacility: data.facilityCode,\r\n selectedInvoiceDivision: data.divisionCode,\r\n selectedInvoiceWard: data.code,\r\n selectedInvoiceCostCentre: data.subCode\r\n }\r\n });\r\n browserHistory.push('/invoices/approve');\r\n }\r\n\r\n const isDrillDown = () => {\r\n return state.user.invoiceApproval === \"Facility\" || state.user.invoiceApproval === \"District\" || state.user.invoiceApproval === \"Customer\";\r\n }\r\n\r\n const isUserAuthLevel = () => {\r\n return state.user.invoiceApproval === \"Division\";\r\n }\r\n\r\n const onResetView = () => {\r\n var payload = defaultPayload();\r\n dispatch({\r\n type: \"INVOICESUMMARY-LINE-SELECTED\",\r\n payload: payload\r\n });\r\n browserHistory.push('/invoices/approve');\r\n }\r\n\r\n const onNavigateUp = () => {\r\n var payload = browseUpPayload();\r\n if (state.user.invoiceApproval === \"Facility\") {\r\n payload = defaultPayload();\r\n }\r\n dispatch({\r\n type: \"INVOICESUMMARY-LINE-SELECTED\",\r\n payload: payload\r\n });\r\n browserHistory.push('/invoices/approve');\r\n }\r\n\r\n const browseUpPayload = () => {\r\n return {\r\n selectedInvoiceLevel: \"Facility\",\r\n selectedInvoiceNo: state.user.selectedInvoiceNo,\r\n selectedInvoiceDistrict: state.user.selectedInvoiceDistrict,\r\n selectedInvoiceFacility: state.user.selectedInvoiceFacility,\r\n selectedInvoiceDivision: \"\", \r\n selectedInvoiceWard: \"\",\r\n selectedInvoiceCostCentre: \"\" \r\n }\r\n }\r\n const defaultPayload = () => {\r\n return {\r\n selectedInvoiceLevel: \"\",\r\n selectedInvoiceNo: \"\",\r\n selectedInvoiceDistrict: \"\",\r\n selectedInvoiceFacility: \"\",\r\n selectedInvoiceDivision: \"\",\r\n selectedInvoiceWard: \"\",\r\n selectedInvoiceCostCentre: \"\"\r\n }\r\n }\r\n\r\n const handleOkClick = () => {\r\n setVerifyOpen(false);\r\n }\r\n\r\n useEffect(() => {\r\n console.log(\"state...\", state)\r\n api.get(state.host + url + `?level=${state.user.selectedInvoiceLevel}&district=${state.user.selectedInvoiceDistrict}&facility=${state.user.selectedInvoiceFacility}&division=${state.user.selectedInvoiceDivision}&ward=${state.user.selectedInvoiceWard}&costcentre=${state.user.selectedInvoiceCostCentre}&invoiceNo=${state.user.selectedInvoiceNo}`, state.credentials)\r\n .then(({ data }) => {\r\n console.log(\"data...\", data)\r\n setInvoices(data);\r\n });\r\n }, []);\r\n\r\n const refreshData = () => {\r\n console.log(\"state...\", state)\r\n api.get(state.host + url + `?level=${state.user.selectedInvoiceLevel}&district=${state.user.selectedInvoiceDistrict}&facility=${state.user.selectedInvoiceFacility}&division=${state.user.selectedInvoiceDivision}&ward=${state.user.selectedInvoiceWard}&costcentre=${state.user.selectedInvoiceCostCentre}&invoiceNo=${state.user.selectedInvoiceNo}`, state.credentials)\r\n .then(({ data }) => {\r\n console.log(\"data...\", data)\r\n setInvoices(data);\r\n });\r\n }\r\n\r\n const onCreateQuery = (row) => {\r\n setOpen(true);\r\n api.get(state.host + url + `?level=${state.user.selectedInvoiceLevel}&district=${state.user.selectedInvoiceDistrict}&facility=${state.user.selectedInvoiceFacility}&division=${state.user.selectedInvoiceDivision}&ward=${state.user.selectedInvoiceWard}&costcentre=${state.user.selectedInvoiceCostCentre}&invoiceNo=${row.invoiceNo}&invoiceLineNo=${row.invoiceLineNo}&user=${state.user}`, state.credentials)\r\n .then(({ data }) => {\r\n setHistory(data.history);\r\n });\r\n\r\n setQueryRow(row);\r\n setResolved(\"No\");\r\n setMessage(\"\");\r\n }\r\n\r\n const onVerify = (row) => {\r\n let post = {\r\n invoiceNo: row.invoiceNo,\r\n level: \"Division\",\r\n district: row.districtCode,\r\n facility: row.facilityCode,\r\n division: row.divisionCode,\r\n ward: \"\",\r\n costcentre: \"\"\r\n };\r\n\r\n api.post(state.host + url + \"/verify\", post, state.credentials)\r\n .then(({ data }) => {\r\n console.log(\"verify...\", data)\r\n refreshData();\r\n });\r\n }\r\n\r\n const onQuery = () => {\r\n console.log(\"Row...\", queryRow)\r\n let post = {\r\n invoiceNo: queryRow.invoiceNo,\r\n invoiceLineNo: queryRow.invoiceLineNo,\r\n message: message,\r\n resolved: resolved\r\n };\r\n\r\n api.post(state.host + url + \"/query\", post, state.credentials)\r\n .then(() => {\r\n setOpen(false);\r\n });\r\n }\r\n\r\n const onQueryCancelled = () => {\r\n setOpen(false);\r\n }\r\n\r\n const handleResolved = (event) => {\r\n setResolved(event.target.value);\r\n }\r\n\r\n return (\r\n <>\r\n }\r\n striped\r\n customStyles={datatableStyles}\r\n columns={columns}\r\n data={invoices}\r\n expandableRows\r\n expandableRowDisabled={row => row.disabled}\r\n expandableRowsComponent={}\r\n\t\t\t\t\t\t\t\texpandableRowExpanded={row => row.expanded || isDrillDown()}\r\n />\r\n \r\n \r\n );\r\n}\r\n\r\nexport default DivisionInvoiceApproval;","import React, { useContext, useEffect, useState } from 'react';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport DataTable from 'react-data-table-component';\r\nimport { Button, Chip, Link, FormControlLabel, FormLabel, Grid, Radio, RadioGroup, TextField } from '@material-ui/core';\r\nimport datatableStyles from '../../static/datatables-styles';\r\nimport { ContactSupportTwoTone, Warning, WarningTwoTone } from '@material-ui/icons';\r\nimport { api, Context } from '../../Portal';\r\nimport Popover from '../../components/Popover';\r\nimport { ConfirmationDialog } from \"../../components/controls/ConfirmationDialog\";\r\nimport styled from \"styled-components\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n button: {\r\n marginLeft: \"8px\"\r\n }\r\n}));\r\n\r\nvar url = \"/api/v1/invoices\";\r\n// var queryUrl = \"/api/v1/invoices\";\r\n\r\nconst FacilityInvoiceApproval = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [invoices, setInvoices] = useState([]);\r\n const [open, setOpen] = useState(false);\r\n const [queryRow, setQueryRow] = useState({});\r\n const [resolved, setResolved] = useState(\"No\");\r\n const [message, setMessage] = useState(\"\");\r\n const [history, setHistory] = useState(\"\");\r\n const [verifyOpen, setVerifyOpen] = useState(false);\r\n const [verifyError, setVerifyError] = useState(\"\")\r\n const [user, setUser] = useState(state.user);\r\n const [divisionHeading, setDivisionHeading] = useState(\"Division\");\r\n\r\n const browserHistory = useHistory();\r\n const classes = useStyles();\r\n\r\n const columns = [\r\n {\r\n name: 'Month',\r\n sortable: true,\r\n selector: \"month\",\r\n },\r\n {\r\n name: 'Facility',\r\n sortable: false,\r\n selector: \"facilityName\",\r\n },\r\n {\r\n cell: row => (\r\n <>\r\n {row.invoiceNo + \" Summary\"}\r\n {row.overDue && }\r\n \r\n ),\r\n name: \"Invoice Number\"\r\n },\r\n {\r\n name: 'Total',\r\n selector: 'total'\r\n },\r\n {\r\n cell: row => (\r\n <>\r\n {!row.verified &&\r\n onVerify(row)}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n size=\"small\"\r\n disabled={!row.canVerify}\r\n >\r\n Approve\r\n \r\n }\r\n \r\n )\r\n }\r\n ];\r\n\r\n const lineColumns = [\r\n {\r\n cell: row => {\r\n if (row.openQueries) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (row.status === \"Queried\") {\r\n return (\r\n \r\n )\r\n }\r\n },\r\n width: \"40px\"\r\n },\r\n {\r\n name: divisionHeading,\r\n sortable: true,\r\n selector: \"code\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Verified',\r\n sortable: true,\r\n selector: \"verified\",\r\n center: false,\r\n right: true,\r\n compact: true,\r\n },\r\n {\r\n name: 'Unverified',\r\n sortable: true,\r\n selector: \"unverified\",\r\n center: false,\r\n right: true,\r\n cell: (row) => (\r\n \r\n {row.unverified}\r\n \r\n )\r\n },\r\n {\r\n name: 'Due Date',\r\n sortable: true,\r\n selector: \"verifyByDate\",\r\n // width: \"4em\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Verified By',\r\n sortable: true,\r\n selector: \"verifier\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Phone',\r\n sortable: true,\r\n selector: \"phone\",\r\n // width: \"4em\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Email',\r\n sortable: true,\r\n selector: \"email\",\r\n right: false,\r\n center: false,\r\n compact: true,\r\n },\r\n ]\r\n const ExpandableComponent = ({ data }) => {\r\n return (\r\n {\r\n onDrillDown(data);\r\n }}\r\n conditionalRowStyles={conditionalRowStyles}\r\n />\r\n );\r\n }\r\n\r\n const StyledCell = styled.div`\r\n &.warning {\r\n color: #cb3837 !important;\r\n }\r\n &.danger {\r\n color: #680000 !important;\r\n }\r\n `;\r\n\r\n const getCssClass = (row) => {\r\n return rowStatus(row);\r\n }\r\n\r\n const conditionalRowStyles = [\r\n {\r\n when: row => rowStatus(row) === 'warning', //ORANGE\r\n style: {\r\n backgroundColor: 'rgba(255, 150, 50, 0.8)',\r\n color: 'white',\r\n '&:hover': {\r\n cursor: 'pointer',\r\n backgroundColor: 'rgba(255, 150, 50, 1)',\r\n color: 'white',\r\n outlineColor: 'rgba(255, 150, 50, 1)',\r\n borderBottomColor: 'rgba(255, 150, 50, 0.8)',\r\n },\r\n },\r\n },\r\n {\r\n when: row => rowStatus(row) === 'danger', //RED\r\n style: {\r\n backgroundColor: 'rgba(203, 56, 55, 0.8)',\r\n color: 'white',\r\n '&:hover': {\r\n cursor: 'pointer',\r\n backgroundColor: 'rgba(203, 56, 55, 1)',\r\n color: 'white',\r\n outlineColor: 'rgba(203, 56, 55, 1)',\r\n borderBottomColor: 'rgba(203, 56, 55, 0.8)',\r\n },\r\n },\r\n },\r\n {\r\n when: row => rowStatus(row) === 'ok', //GREEN\r\n style: {\r\n backgroundColor: 'rgba(44, 151, 75, 0.8)',\r\n color: 'white',\r\n '&:hover': {\r\n cursor: 'pointer',\r\n backgroundColor: 'rgba(44, 151, 75, 0.9)',\r\n color: 'white',\r\n outlineColor: 'rgba(44, 151, 75, 1)',\r\n borderBottomColor: 'rgba(44, 151, 75, 0.8)',\r\n },\r\n },\r\n },\r\n ];\r\n\r\n const rowStatus = (row) => {\r\n if (showAsWarning(row)) { return \"warning\" }\r\n if (showAsDanger(row)) { return \"danger\" }\r\n if (showAsOk(row)) { return \"ok\" }\r\n return \"\";\r\n }\r\n\r\n const showAsWarning = (row) => {\r\n return row.unverifiedAmount > 0 && row.isPastDue && row.verifiedAmount > 0;\r\n }\r\n\r\n const showAsDanger = (row) => {\r\n return row.isPastDue && row.unverifiedAmount > 0 && row.verifiedAmount === 0;\r\n }\r\n\r\n const showAsOk = (row) => {\r\n return row.isVerified && row.unverifiedAmount === 0;\r\n }\r\n\r\n const ResetViewButton = () => {\r\n return (\r\n onResetView()}\r\n type=\"button\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n size=\"small\"\r\n >\r\n Back to top\r\n );\r\n }\r\n\r\n const NavigateUpButton = () => {\r\n return (\r\n onNavigateUp()}\r\n type=\"button\"\r\n variant=\"contained\"\r\n color=\"primary\"\r\n size=\"small\"\r\n >\r\n Up One level\r\n );\r\n }\r\n\r\n const onResetView = () => {\r\n var payload = defaultPayload();\r\n dispatch({\r\n type: \"INVOICESUMMARY-LINE-SELECTED\",\r\n payload: payload\r\n });\r\n browserHistory.push('/invoices/approve');\r\n }\r\n\r\n const onDrillDown = (data) => {\r\n if (data.code !== \"\" && data.divisionCode !== \"\") {\r\n dispatch({\r\n type: \"INVOICESUMMARY-LINE-SELECTED\",\r\n payload: {\r\n selectedInvoiceLevel: \"Division\",\r\n selectedInvoiceLineNo: \"\",\r\n selectedInvoiceNo: data.invoiceNo,\r\n selectedInvoiceDistrict: data.districtCode,\r\n selectedInvoiceFacility: data.facilityCode,\r\n selectedInvoiceDivision: data.code,\r\n selectedInvoiceWard: data.wardCode,\r\n selectedInvoiceCostCentre: data.subCode\r\n }\r\n });\r\n } else {\r\n dispatch({\r\n type: \"INVOICESUMMARY-LINE-SELECTED\",\r\n payload: {\r\n selectedInvoiceLevel: \"CostCentre\",\r\n selectedInvoiceLineNo: data.invoiceLineNo,\r\n selectedInvoiceNo: data.invoiceNo,\r\n selectedInvoiceDistrict: data.districtCode,\r\n selectedInvoiceFacility: data.facilityCode,\r\n selectedInvoiceDivision: data.divisionCode,\r\n selectedInvoiceWard: data.code,\r\n selectedInvoiceCostCentre: data.subCode\r\n }\r\n });\r\n }\r\n\r\n browserHistory.push('/invoices/approve');\r\n }\r\n\r\n const isDrillDown = () => {\r\n return state.user.invoiceApproval === \"District\" || state.user.invoiceApproval === \"Customer\";\r\n }\r\n\r\n const isUserAuthLevel = () => {\r\n return state.user.invoiceApproval === \"Facility\";\r\n }\r\n\r\n const onNavigateUp = () => {\r\n var payload = browseUpPayload();\r\n if (state.user.invoiceApproval === \"Customer\" || state.user.invoiceApproval === \"District\") {\r\n payload = defaultPayload();\r\n }\r\n dispatch({\r\n type: \"INVOICESUMMARY-LINE-SELECTED\",\r\n payload: payload\r\n });\r\n browserHistory.push('/invoices/approve');\r\n }\r\n\r\n const browseUpPayload = () => {\r\n return {\r\n selectedInvoiceLevel: \"Facility\",\r\n selectedInvoiceNo: state.user.selectedInvoiceNo,\r\n selectedInvoiceDistrict: state.user.selectedInvoiceDistrict,\r\n selectedInvoiceFacility: state.user.selectedInvoiceFacility,\r\n selectedInvoiceDivision: \"\",\r\n selectedInvoiceWard: \"\",\r\n selectedInvoiceCostCentre: \"\"\r\n }\r\n }\r\n const defaultPayload = () => {\r\n return {\r\n selectedInvoiceLevel: \"\",\r\n selectedInvoiceNo: \"\",\r\n selectedInvoiceDistrict: \"\",\r\n selectedInvoiceFacility: \"\",\r\n selectedInvoiceDivision: \"\",\r\n selectedInvoiceWard: \"\",\r\n selectedInvoiceCostCentre: \"\"\r\n }\r\n }\r\n\r\n const handleOkClick = () => {\r\n setVerifyOpen(false);\r\n }\r\n\r\n useEffect(() => {\r\n console.log(\"state...\", state)\r\n api.get(state.host + url + `?level=${state.user.selectedInvoiceLevel}&district=${state.user.selectedInvoiceDistrict}&facility=${state.user.selectedInvoiceFacility}&division=${state.user.selectedInvoiceDivision}&ward=${state.user.selectedInvoiceWard}&costcentre=${state.user.selectedInvoiceCostCentre}&invoiceNo=${state.user.selectedInvoiceNo}`, state.credentials)\r\n .then(({ data }) => {\r\n if (data[0].divisionCode === \"\") {\r\n setDivisionHeading(\"Ward\");\r\n }\r\n console.log(\"data...\", data)\r\n setInvoices(data);\r\n });\r\n }, []);\r\n\r\n const refreshData = () => {\r\n console.log(\"state...\", state)\r\n api.get(state.host + url + `?level=${state.user.selectedInvoiceLevel}&district=${state.user.selectedInvoiceDistrict}&facility=${state.user.selectedInvoiceFacility}&division=${state.user.selectedInvoiceDivision}&ward=${state.user.selectedInvoiceWard}&costcentre=${state.user.selectedInvoiceCostCentre}&invoiceNo=${state.user.selectedInvoiceNo}`, state.credentials)\r\n .then(({ data }) => {\r\n\r\n console.log(\"data...\", data)\r\n setInvoices(data);\r\n });\r\n }\r\n\r\n const onCreateQuery = (row) => {\r\n setOpen(true);\r\n api.get(state.host + url + `?level=${state.user.selectedInvoiceLevel}&district=${state.user.selectedInvoiceDistrict}&facility=${state.user.selectedInvoiceFacility}&division=${state.user.selectedInvoiceDivision}&ward=${state.user.selectedInvoiceWard}&costcentre=${state.user.selectedInvoiceCostCentre}&invoiceNo=${row.invoiceNo}&invoiceLineNo=${row.invoiceLineNo}&user=${state.user}`, state.credentials)\r\n .then(({ data }) => {\r\n setHistory(data.history);\r\n });\r\n\r\n setQueryRow(row);\r\n setResolved(\"No\");\r\n setMessage(\"\");\r\n }\r\n\r\n const onVerify = (row) => {\r\n let post = {\r\n invoiceNo: row.invoiceNo,\r\n level: \"Facility\",\r\n district: row.districtCode,\r\n facility: row.facilityCode,\r\n division: \"\",\r\n ward: \"\",\r\n costcentre: \"\"\r\n };\r\n\r\n api.post(state.host + url + \"/verify\", post, state.credentials)\r\n .then(({ data }) => {\r\n console.log(\"verify...\", data)\r\n refreshData();\r\n });\r\n }\r\n\r\n const onQuery = () => {\r\n console.log(\"Row...\", queryRow)\r\n let post = {\r\n invoiceNo: queryRow.invoiceNo,\r\n invoiceLineNo: queryRow.invoiceLineNo,\r\n message: message,\r\n resolved: resolved\r\n };\r\n\r\n api.post(state.host + url + \"/query\", post, state.credentials)\r\n .then(() => {\r\n setOpen(false);\r\n });\r\n }\r\n\r\n const onQueryCancelled = () => {\r\n setOpen(false);\r\n }\r\n\r\n const handleResolved = (event) => {\r\n setResolved(event.target.value);\r\n }\r\n\r\n return (\r\n <>\r\n }\r\n striped\r\n customStyles={datatableStyles}\r\n columns={columns}\r\n data={invoices}\r\n expandableRows\r\n expandableRowDisabled={row => row.disabled}\r\n expandableRowsComponent={}\r\n\t\t\t\t\t\t\t\texpandableRowExpanded={row => row.expanded || isDrillDown()}\r\n />\r\n \r\n \r\n );\r\n}\r\n\r\nexport default FacilityInvoiceApproval;","import React, { useContext, useEffect, useState } from 'react';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport DataTable from 'react-data-table-component';\r\nimport { Button, Chip, FormControlLabel, FormLabel, Grid, Radio, RadioGroup, TextField } from '@material-ui/core';\r\nimport datatableStyles from '../../static/datatables-styles';\r\nimport { ContactSupportTwoTone, Warning, WarningTwoTone } from '@material-ui/icons';\r\nimport { api, Context } from '../../Portal';\r\nimport Popover from '../../components/Popover';\r\nimport { ConfirmationDialog } from \"../../components/controls/ConfirmationDialog\";\r\nimport styled from \"styled-components\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n button: {\r\n marginLeft: \"8px\"\r\n }\r\n}));\r\n\r\nvar url = \"/api/v1/invoices\";\r\n// var queryUrl = \"/api/v1/invoices\";\r\n\r\nconst DistrictInvoiceApproval = () => {\r\n const [state, dispatch] = useContext(Context);\r\n const [invoices, setInvoices] = useState([]);\r\n const [open, setOpen] = useState(false);\r\n const [queryRow, setQueryRow] = useState({});\r\n const [resolved, setResolved] = useState(\"No\");\r\n const [message, setMessage] = useState(\"\");\r\n const [history, setHistory] = useState(\"\");\r\n const [verifyOpen, setVerifyOpen] = useState(false);\r\n const [verifyError, setVerifyError] = useState(\"\")\r\n const browserHistory = useHistory();\r\n const classes = useStyles();\r\n\r\n const columns = [\r\n {\r\n name: 'Month',\r\n sortable: true,\r\n selector: \"month\",\r\n },\r\n {\r\n name: 'Customer',\r\n sortable: false,\r\n selector: \"customerName\",\r\n },\r\n {\r\n cell: row => (\r\n <>\r\n {row.invoiceNo + \" Summary\"}\r\n {row.overDue && }\r\n \r\n ),\r\n name: \"Invoice Number\"\r\n },\r\n {\r\n name: 'Total',\r\n selector: 'total'\r\n },\r\n {\r\n cell: row => (\r\n <>\r\n {!row.verified &&\r\n onVerify(row)}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n size=\"small\"\r\n disabled={!row.canVerify}\r\n >\r\n Approve\r\n \r\n }\r\n \r\n )\r\n }\r\n ];\r\n\r\n const lineColumns = [\r\n {\r\n cell: row => {\r\n if (row.openQueries) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (row.status === \"Queried\") {\r\n return (\r\n \r\n )\r\n }\r\n },\r\n width: \"40px\"\r\n },\r\n {\r\n name: 'Facility',\r\n sortable: true,\r\n selector: \"facilityName\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Verified',\r\n sortable: true,\r\n selector: \"verified\",\r\n center: false,\r\n right: true,\r\n compact: true,\r\n },\r\n {\r\n name: 'Unverified',\r\n sortable: true,\r\n selector: \"unverified\",\r\n center: false,\r\n right: true,\r\n cell: (row) => (\r\n \r\n {row.unverified}\r\n \r\n )\r\n },\r\n {\r\n name: 'Due Date',\r\n sortable: true,\r\n selector: \"verifyByDate\",\r\n // width: \"4em\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Verified By',\r\n sortable: true,\r\n selector: \"verifier\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Phone',\r\n sortable: true,\r\n selector: \"phone\",\r\n // width: \"4em\",\r\n center: false,\r\n compact: true,\r\n },\r\n {\r\n name: 'Email',\r\n sortable: true,\r\n selector: \"email\",\r\n right: false,\r\n center: false,\r\n compact: true,\r\n },\r\n ]\r\n const ExpandableComponent = ({ data }) => {\r\n return (\r\n {\r\n onDrillDown(data);\r\n }}\r\n conditionalRowStyles={conditionalRowStyles}\r\n />\r\n );\r\n }\r\n\r\n const StyledCell = styled.div`\r\n &.warning {\r\n color: #cb3837 !important;\r\n }\r\n &.danger {\r\n color: #680000 !important;\r\n }\r\n `;\r\n\r\n const getCssClass = (row) => {\r\n return rowStatus(row);\r\n }\r\n\r\n const conditionalRowStyles = [\r\n {\r\n when: row => rowStatus(row) === 'warning', //ORANGE\r\n style: {\r\n backgroundColor: 'rgba(255, 150, 50, 0.8)',\r\n color: 'white',\r\n '&:hover': {\r\n cursor: 'pointer',\r\n backgroundColor: 'rgba(255, 150, 50, 1)',\r\n color: 'white',\r\n outlineColor: 'rgba(255, 150, 50, 1)',\r\n borderBottomColor: 'rgba(255, 150, 50, 0.8)',\r\n },\r\n },\r\n },\r\n {\r\n when: row => rowStatus(row) === 'danger', //RED\r\n style: {\r\n backgroundColor: 'rgba(203, 56, 55, 0.8)',\r\n color: 'white',\r\n '&:hover': {\r\n cursor: 'pointer',\r\n backgroundColor: 'rgba(203, 56, 55, 1)',\r\n color: 'white',\r\n outlineColor: 'rgba(203, 56, 55, 1)',\r\n borderBottomColor: 'rgba(203, 56, 55, 0.8)',\r\n },\r\n },\r\n },\r\n {\r\n when: row => rowStatus(row) === 'ok', //GREEN\r\n style: {\r\n backgroundColor: 'rgba(44, 151, 75, 0.8)',\r\n color: 'white',\r\n '&:hover': {\r\n cursor: 'pointer',\r\n backgroundColor: 'rgba(44, 151, 75, 0.9)',\r\n color: 'white',\r\n outlineColor: 'rgba(44, 151, 75, 1)',\r\n borderBottomColor: 'rgba(44, 151, 75, 0.8)',\r\n },\r\n },\r\n },\r\n ];\r\n\r\n const rowStatus = (row) => {\r\n if (showAsWarning(row)) { return \"warning\" }\r\n if (showAsDanger(row)) { return \"danger\" }\r\n if (showAsOk(row)) { return \"ok\" }\r\n return \"\";\r\n }\r\n\r\n const showAsWarning = (row) => {\r\n return row.unverifiedAmount > 0 && row.isPastDue && row.verifiedAmount > 0;\r\n }\r\n\r\n const showAsDanger = (row) => {\r\n return row.isPastDue && row.unverifiedAmount > 0 && row.verifiedAmount === 0;\r\n }\r\n\r\n const showAsOk = (row) => {\r\n return row.isVerified && row.unverifiedAmount === 0;\r\n }\r\n\r\n const onDrillDown = (data) => {\r\n dispatch({\r\n type: \"INVOICESUMMARY-LINE-SELECTED\",\r\n payload: {\r\n selectedInvoiceLevel: \"Facility\",\r\n selectedInvoiceNo: data.invoiceNo,\r\n selectedInvoiceDistrict: data.districtCode,\r\n selectedInvoiceFacility: data.facilityCode,\r\n selectedInvoiceDivision: \"\",\r\n selectedInvoiceWard: \"\",\r\n selectedInvoiceCostCentre: \"\"\r\n }\r\n });\r\n browserHistory.push('/invoices/approve');\r\n }\r\n\r\n const isUserAuthLevel = () => {\r\n return state.user.invoiceApproval === \"Customer\";\r\n }\r\n\r\n const handleOkClick = () => {\r\n setVerifyOpen(false);\r\n }\r\n\r\n useEffect(() => {\r\n console.log(\"state...\", state)\r\n api.get(state.host + url + `?level=${state.user.selectedInvoiceLevel}&district=${state.user.selectedInvoiceDistrict}&facility=${state.user.selectedInvoiceFacility}&division=${state.user.selectedInvoiceDivision}&ward=${state.user.selectedInvoiceWard}&costcentre=${state.user.selectedInvoiceCostCentre}&invoiceNo=${state.user.selectedInvoiceNo}`, state.credentials)\r\n .then(({ data }) => {\r\n console.log(\"data...\", data)\r\n setInvoices(data);\r\n });\r\n }, []);\r\n\r\n const refreshData = () => {\r\n console.log(\"state...\", state)\r\n api.get(state.host + url + `?level=${state.user.selectedInvoiceLevel}&district=${state.user.selectedInvoiceDistrict}&facility=${state.user.selectedInvoiceFacility}&division=${state.user.selectedInvoiceDivision}&ward=${state.user.selectedInvoiceWard}&costcentre=${state.user.selectedInvoiceCostCentre}&invoiceNo=${state.user.selectedInvoiceNo}`, state.credentials)\r\n .then(({ data }) => {\r\n console.log(\"data...\", data)\r\n setInvoices(data);\r\n });\r\n }\r\n\r\n const onCreateQuery = (row) => {\r\n setOpen(true);\r\n api.get(state.host + url + `?level=${state.user.selectedInvoiceLevel}&district=${state.user.selectedInvoiceDistrict}&facility=${state.user.selectedInvoiceFacility}&division=${state.user.selectedInvoiceDivision}&ward=${state.user.selectedInvoiceWard}&costcentre=${state.user.selectedInvoiceCostCentre}&invoiceNo=${row.invoiceNo}&invoiceLineNo=${row.invoiceLineNo}&user=${state.user}`, state.credentials)\r\n .then(({ data }) => {\r\n setHistory(data.history);\r\n });\r\n\r\n setQueryRow(row);\r\n setResolved(\"No\");\r\n setMessage(\"\");\r\n }\r\n\r\n const onVerify = (row) => {\r\n let post = {\r\n invoiceNo: row.invoiceNo,\r\n level: \"Customer\",\r\n district: row.districtCode,\r\n facility: \"\",\r\n division: \"\",\r\n ward: \"\",\r\n costcentre: \"\"\r\n };\r\n\r\n api.post(state.host + url + \"/verify\", post, state.credentials)\r\n .then(({ data }) => {\r\n console.log(\"verify...\", data)\r\n refreshData();\r\n });\r\n }\r\n\r\n const onQuery = () => {\r\n console.log(\"Row...\", queryRow)\r\n let post = {\r\n invoiceNo: queryRow.invoiceNo,\r\n invoiceLineNo: queryRow.invoiceLineNo,\r\n message: message,\r\n resolved: resolved\r\n };\r\n\r\n api.post(state.host + url + \"/query\", post, state.credentials)\r\n .then(() => {\r\n setOpen(false);\r\n });\r\n }\r\n\r\n const onQueryCancelled = () => {\r\n setOpen(false);\r\n }\r\n\r\n const handleResolved = (event) => {\r\n setResolved(event.target.value);\r\n }\r\n\r\n return (\r\n <>\r\n row.disabled}\r\n expandableRowsComponent={}\r\n expandableRowExpanded={row => row.expanded}\r\n />\r\n \r\n \r\n );\r\n}\r\n\r\nexport default DistrictInvoiceApproval;","import { Switch, Route, useLocation } from \"react-router-dom\";\r\nimport { makeStyles } from \"@material-ui/core\";\r\n\r\nimport AuthorisedRoute from \"./authorisation/AuthorisedRoute\";\r\n\r\nimport Paperbase from \"./paperbase/Paperbase\";\r\nimport Login from \"../pages/login/login\";\r\n\r\nimport CreateOrder from \"../pages/create-order/create-order\";\r\nimport Profile from \"../pages/profile/profile\";\r\n\r\nimport ViewAuthorisations from \"../pages/view-authorisations/view-authorisations\";\r\nimport ViewEquipmentOnHire from \"../pages/view-eqipment-on-hire/view-equipment-on-hire\";\r\nimport ConsignmentStock from \"../pages/consignment-stock/consignment-stock\";\r\n\r\nimport TransferIn from \"../pages/rental-transfer-in/transfer-in\";\r\nimport ApproveExchange from \"../pages/rental-exchange-approve/exchange-approve\";\r\nimport ApproveRental from \"../pages/rental-approve/approve-rental\";\r\nimport RentalStop from \"../pages/rental-stop/rental-stop\";\r\nimport RentalExchange from \"../pages/rental-exchange/rental-exchange\";\r\nimport RentalTransfer from \"../pages/rental-transfer/rental-transfer\";\r\nimport CostCentreInvoiceApproval from \"../pages/invoice-approval/CostCentreInvoiceApproval\";\r\nimport { Context } from \"../Portal\";\r\nimport { useContext } from \"react\";\r\nimport DivisionInvoiceApproval from \"../pages/invoice-approval/DivisionInvoiceApproval\";\r\nimport FacilityInvoiceApproval from \"../pages/invoice-approval/FacilityInvoiceApproval\";\r\nimport DistrictInvoiceApproval from \"../pages/invoice-approval/DistrictInvoiceApproval\";\r\n\r\nlet useStyles = makeStyles((theme) => ({\r\n root: {\r\n margin: theme.spacing(2),\r\n }\r\n}))\r\n\r\nconst ContentRoutes = ({ navigation }) => {\r\n const [state, dispatch] = useContext(Context);\r\n const classes = useStyles();\r\n const location = useLocation();\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(state.user && (state.user.invoiceApproval === \"Detailed\" || state.user.invoiceApproval === \"CostCentre\" || state.user.selectedInvoiceLevel === \"CostCentre\")) && //Cost Center\r\n \r\n }\r\n {(state.user && ((state.user.invoiceApproval === \"Division\" && state.user.selectedInvoiceLevel === \"\") || (state.user.selectedInvoiceLevel === \"Division\"))) && //Division\r\n \r\n }\r\n {(state.user && ((state.user.invoiceApproval === \"Facility\" && state.user.selectedInvoiceLevel === \"\") || (state.user.selectedInvoiceLevel === \"Facility\"))) && //Facility\r\n \r\n }\r\n {(state.user && ((state.user.invoiceApproval === \"Customer\" && state.user.selectedInvoiceLevel === \"\") || (state.user.selectedInvoiceLevel === \"District\"))) && //District\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport { ContentRoutes };","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter as Router } from \"react-router-dom\";\r\n\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nimport Portal from \"./Portal\";\r\nimport PortalTheme from './components/paperbase/PortalTheme';\r\nimport { ContentRoutes } from './components/Routing';\r\nimport navigation from \"./static/navigation\";\r\n\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals(console.log);"],"sourceRoot":""}