{"version":3,"sources":["../../@hobs/components/Buttons/Buttons.module.scss","../../@hobs/constants/cor.js","../../@hobs/auth/reducer.js","../../@hobs/reducers/attachment.js","../../@hobs/reducers/odata.js","../../@hobs/reducers/locations.js","../../@hobs/reducers/serviceRequests.js","../../@hobs/reducers/parties.js","../../@hobs/reducers/phases.js","../../@hobs/reducers/users.js","../../@hobs/reducers/units.js","../../@hobs/reducers/cor.js","../../@hobs/reducers/discussion.js","../../@hobs/reducers/customServiceRequests.js","../../@hobs/constants/assignmentServiceRequest.js","../../@hobs/reducers/assignmentServiceRequest.js","../../@hobs/reducers/gridSelections.js","../../@hobs/reducers/annex.js","../../@hobs/reducers/exercises.js","../../@hobs/reducers/exercise.js","../../@hobs/reducers/approvalSummary.js","../../@hobs/reducers/transportation.js","../../@hobs/reducers/mealPlanner.js","../../@hobs/reducers/tickets.js","../../@hobs/reducers/activity.js","../../@hobs/reducers/notifications.js","reducers/sor.js","reducers/index.js","store.js","serviceWorker.js","index.js","actions/exercises.js","../../@hobs/components/Loader/index.js","../../@hobs/auth/utils/index.js","../../@hobs/constants/attachment.js","../../@hobs/constants/transportation.js","../../@hobs/auth/actions.js","../../@hobs/constants/odata.js","../../@hobs/constants/phases.js","../../@hobs/components/Input/Input.module.scss","../../@hobs/components/InformationToolTip/InformationToolTip.module.scss","containers/StatementOfRequirements/Units/SorUnits.module.scss","../../@hobs/components/Grid/ColumnMenu/ColumnMenu.module.scss","../../@hobs/components/PageHeader/PageHeader.module.scss","../../@hobs/constants/approvalSummary.js","../../@hobs/components/Tabs/Tabs.module.scss","../../@hobs/components/Panel/Panel.module.scss","../../@hobs/components/Buttons/Buttons.js","../../@hobs/components/Buttons/index.js","../../@hobs/constants/notifications.js","../../@hobs/components/Phase/Phase.module.scss","../../@hobs/components/Dropdown/Dropdown.module.scss","../../@hobs/components/Dialog/Dialog.module.scss","../../@hobs/components/Autocomplete/Autocomplete.module.scss","../../@hobs/components/DropZone/DropZone.module.scss","../../@hobs/components/DateInput/DateInput.module.scss","containers/StatementOfRequirements/Units/SorForm.module.scss","../../@hobs/components/Header/Header.module.scss","../../@hobs/components/Submenu/Submenu.module.scss","../../@hobs/components/Homepage/Homepage.module.scss","../../@hobs/utils/fetch/index.js","../../@hobs/components/InfoPanel/InfoPanel.module.scss","../../@hobs/components/NumericInput/NumericInput.module.scss","../../@hobs/components/Alert/Alert.module.scss","../../@hobs/components/ServiceRequestFooter/ServiceRequestFooter.module.scss","../../@hobs/components/Headings/Headings.js","../../@hobs/components/Headings/index.js","../../@hobs/components/Loader/Loader.js","../../@hobs/components/Headings/Headings.module.scss","../../@hobs/components/Tooltip/Tooltip.module.scss","../../@hobs/components/InputLabel/InputLabel.module.scss","../../@hobs/auth/components/LoginTokenForm/LoginTokenForm.module.scss","../../@hobs/components/Confirm/Confirm.module.scss","../../@hobs/components/Switch/Switch.module.scss","containers/StatementOfRequirements/Units/SorCor.module.scss","../../@hobs/constants/serviceRequests.js","../../@hobs/constants/sor.js","../../@hobs/containers/NotFound/NotFound.module.scss","../../@hobs/components/Icon/Icon.module.scss","../../@hobs/components/FormError/FormError.module.scss","../../@hobs/auth/components/LoginForm/LoginForm.module.scss","../../@hobs/auth/components/ResetForm/ResetForm.module.scss","../../@hobs/components/Indicator/Indicator.module.scss","../../@hobs/components/Textarea/Textarea.module.scss","../../@hobs/components/File/File.module.scss","../../@hobs/components/PageActions/PageActions.module.scss","../../@hobs/utils/baseReducer/baseReducer.js","../../@hobs/utils/baseReducer/index.js","../../@hobs/components/ServiceRequestNavContext/ServiceRequestNavContext.js","../../@hobs/components/ServiceRequestNavContext/index.js","containers/App/App.js","../../@hobs/utils/fetch/fetch.js","assets/images/ndlo-logo.png","assets/images/wgs-logo.png","../../@hobs/utils/loading/reducer.js","../../@hobs/utils/loading/selector.js","../../@hobs/utils/loading/index.js","../../@hobs/components/Loader/Loader.module.scss","../../@hobs/constants/users.js","../../@hobs/components/Status/Status.module.scss","../../@hobs/hocs/WithAnnexFilter/WithAnnexFilter.module.scss","../../@hobs/components/Checkbox/Checkbox.module.scss","../../@hobs/components/Panel/arrow.svg","../../@hobs/components/Grid/GridLoader/GridLoader.module.scss","../../@hobs/components/BluePanel/BluePanel.module.scss","../../@hobs/components/RadioButton/RadioButton.module.scss","../../@hobs/auth/components/PrivateRoute/PrivateRoute.js","../../@hobs/containers/NotFound/NotFound.js","../../@hobs/components/CoreLayout/CoreLayout.js","../../@hobs/components/Header/Header.js","../../@hobs/components/Icon/Icon.js","../../@hobs/components/Icon/icons/ArrowDown.js","../../@hobs/components/Icon/icons/ArrowDownSmall.js","../../@hobs/components/Icon/icons/ArrowDownOutline.js","../../@hobs/components/Icon/icons/ArrowDownSmallOutline.js","../../@hobs/components/Icon/icons/ArrowRightOutline.js","../../@hobs/components/Icon/icons/ArrowRight.js","../../@hobs/components/Icon/icons/ArrowTop.js","../../@hobs/components/Icon/icons/ExclamationMark.js","../../@hobs/components/Icon/icons/Attachment.js","../../@hobs/components/Icon/icons/BackArrow.js","../../@hobs/components/Icon/icons/Bell.js","../../@hobs/components/Icon/icons/Calendar.js","../../@hobs/components/Icon/icons/Chat.js","../../@hobs/components/Icon/icons/CloseSmall.js","../../@hobs/components/Icon/icons/Close.js","../../@hobs/components/Icon/icons/Download.js","../../@hobs/components/Icon/icons/Filter.js","../../@hobs/components/Icon/icons/Pen.js","../../@hobs/components/Icon/icons/Remove.js","../../@hobs/components/Icon/icons/Settings.js","../../@hobs/components/Icon/icons/Tick.js","../../@hobs/components/Icon/icons/UserManual.js","../../@hobs/components/Icon/icons/Plus.js","../../@hobs/components/Icon/icons/Upload.js","../../@hobs/components/Icon/icons/Location.js","../../@hobs/components/Icon/icons/Delete.js","../../@hobs/components/Icon/icons/Info.js","../../@hobs/components/Icon/icons/History.js","../../@hobs/components/Icon/icons/Truck.js","../../@hobs/components/Icon/icons/TrashBin.js","../../@hobs/components/Icon/icons/Search.js","../../@hobs/components/Icon/icons/Split.js","../../@hobs/components/Icon/icons/InfoSmall.js","../../@hobs/components/Icon/icons/Change.js","../../@hobs/components/Phase/Phase.js","../../@hobs/components/Submenu/Submenu.js","../../@hobs/components/Tooltip/Tooltip.js","../../@hobs/hocs/WithRoles/WithRoles.js","../../@hobs/utils/constants/constants.js","../../@hobs/utils/formatWithTimeZone/formatWithTimeZone.js","../../@hobs/components/Notifications/Notifications.js","../../@hobs/utils/useOuterClick/useOuterClick.js","../../@hobs/actions/utils/utils.js","../../@hobs/actions/odata.js","../../@hobs/actions/notifications.js","../../@hobs/utils/download/download.js","../../@hobs/constants/userManual.js","propTypes/user.js","components/PrivateLayout/UserMenu/UserMenu.js","components/PrivateLayout/SettingsMenu/SettingsMenu.js","components/PrivateLayout/PrivateLayout.js","../../@hobs/actions/phases.js","../../@hobs/actions/userManual.js","../../@hobs/components/Homepage/Homepage.js","containers/Home/Home.js","../../@hobs/components/FormError/FormError.js","../../@hobs/components/InputLabel/InputLabel.js","../../@hobs/components/Input/Input.js","../../@hobs/validations/validations.js","../../@hobs/auth/components/LoginForm/LoginForm.js","../../@hobs/auth/components/LoginTokenForm/LoginTokenForm.js","../../@hobs/utils/customLogoResolver/customLogoResolver.js","containers/Login/Login.js","containers/Logout/Logout.js","../../@hobs/components/Toast/Toast.js","../../@hobs/auth/components/ResetForm/ResetForm.js","containers/Reset/Reset.js","../../@hobs/components/Status/Status.js","../../@hobs/components/Indicator/Indicator.js","../../@hobs/hocs/WithQuickSearch/WithQuickSearch.js","../../@hobs/hocs/WithAnnexFilter/WithAnnexFilter.js","../../@hobs/components/Money/Money.js","../../@hobs/components/Dropdown/Dropdown.js","../../@hobs/utils/expandItem/expandItem.js","../../@hobs/components/Grid/CellDate/CellDate.js","../../@hobs/components/Dialog/Dialog.js","../../@hobs/components/Checkbox/Checkbox.js","../../@hobs/hocs/WithVisibleColumns/WithVisibleColumns.js","../../@hobs/components/Grid/ColumnMenu/ColumnMenu.js","../../@hobs/components/Grid/Columns/Columns.js","../../@hobs/utils/grid/overrides.js","../../@hobs/components/Drawer/Drawer.js","../../@hobs/components/Textarea/Textarea.js","../../@hobs/components/Discussion/DiscussionForm.js","../../@hobs/components/Discussion/Message.js","../../@hobs/components/Discussion/propTypes.js","../../@hobs/components/Discussion/Discussion.js","../../@hobs/containers/Discussion/Discussion.js","../../@hobs/actions/discussion.js","../../@hobs/components/Summary/Summary.js","../../@hobs/components/Quantity/Quantity.js","../../@hobs/containers/ServiceRequests/ServiceRequests.js","actions/sor.js","containers/RequestedServices/RequestedServices.js","../../@hobs/actions/annex.js","../../@hobs/actions/gridSelections.js","../../@hobs/components/Panel/Panel.js","../../@hobs/components/CheckboxTree/CheckboxTree.js","../../@hobs/components/Confirm/Confirm.js","../../@hobs/components/InformationToolTip/InformationToolTip.js","../../@hobs/components/InfoPanel/InfoPanel.js","../../@hobs/components/File/File.js","../../@hobs/components/DropZone/DropZone.js","../../@hobs/components/PageActions/PageActions.js","../../@hobs/components/PageHeader/PageHeader.js","../../@hobs/components/Grid/GridLoader/GridLoader.js","../../@hobs/utils/calculateByDays/index.js","../../@hobs/components/DateInput/DateInput.js","../../@hobs/components/Switch/Switch.js","../../@hobs/components/NumericInput/NumericInput.js","../../@hobs/components/BluePanel/BluePanel.js","../../@hobs/components/FieldHistoryMessage/FieldHistoryMessage.js","../../@hobs/utils/dateToInitialMonth/dateToInitialMonth.js","../../@hobs/components/CalculateByDays/CalculateByDays.js","../../@hobs/actions/serviceRequests.js","../../@hobs/components/ActivityDropdown/activityDropdown.js","../../@hobs/components/DeliveryInformation/DeliveryInformation.js","../../@hobs/components/Autocomplete/Autocomplete.js","../../@hobs/components/LocationDetails/LocationDetails.js","../../@hobs/containers/ServiceRequest/ServiceRequest.js","../../@hobs/actions/locations.js","../../@hobs/actions/attachment.js","../../@hobs/constants/additionalServiceRequest.js","actions/serviceRequests.js","containers/ServiceRequest/ServiceRequest.js","../../@hobs/actions/additionalServiceRequest.js","../../@hobs/containers/Catalog/Catalog.js","../../@hobs/constants/catalog.js","../../@hobs/constants/catalogItem.js","containers/Catalog/Catalog.js","../../@hobs/actions/catalog.js","../../@hobs/actions/catalogItem.js","../../@hobs/components/Tabs/Tab.js","../../@hobs/components/Tabs/Tabs.js","actions/parties.js","../../@hobs/components/RadioButton/RadioButton.js","../../@hobs/components/Alert/Alert.js","actions/units.js","containers/Units/UnitDialog/UnitDialog.js","containers/StatementOfRequirements/utils/tree.js","containers/StatementOfRequirements/Units/SorForm.js","containers/StatementOfRequirements/Units/SorUnits.js","actions/activities.js","containers/Activities/ActivityDialog/ActivityDialog.js","../../@hobs/actions/activities.js","containers/Activities/Activities.js","containers/StatementOfRequirements/Units/SorFinance.js","containers/StatementOfRequirements/Units/SorCor.js","actions/cor.js","containers/StatementOfRequirements/StatementOfRequirements.js","../../@hobs/hocs/WithEscNavigation/WithEscNavigation.js","../../@hobs/actions/tickets.js","../../@hobs/components/CatalogItemInfo/CatalogItemInfo.js","../../@hobs/components/AssignmentResponse/AssignmentResponse.js","../../@hobs/components/HeadingActions/HeadingActions.js","../../@hobs/components/PageLinks/PageLinks.js","../../@hobs/components/ServiceRequestFooter/ServiceRequestFooter.js","../../@hobs/containers/ChangeRequestCreateDialog/ChangeRequestCreateDialog.js","../../@hobs/containers/ActionWithCommentDialog/ActionWithCommentDialog.js","../../@hobs/components/CancellationCosts/CancellationCosts.js","../../@hobs/containers/ServiceRequestCustom/ServiceRequestCustom.js","containers/ServiceRequestCustom/ServiceRequestCustom.js","actions/customServiceRequests.js","containers/ServiceRequestEdit/ServiceRequestEdit.js","../../@hobs/containers/ServiceRequestEdit/ServiceRequestEdit.js","../../@hobs/containers/Users/Users.js","../../@hobs/actions/users.js","containers/Users/UserDialog/UserForm/UserForm.js","containers/Users/UserDialog/UserPasswordManager/UserPasswordManager.js","containers/Users/UserDialog/UserDialog.js","actions/users.js","containers/Users/Users.js","containers/Units/Units.js","containers/Party/Party.js","containers/TermsAndConditions/TermsAndConditions.js","containers/TermsAndConditionsView/TermsAndConditionsView.js","../../@hobs/utils/countDecimals/countDecimals.js","../../@hobs/containers/Transportation/PageLinks.js","../../@hobs/containers/Transportation/Transportation.js","components/HeadingActions/HeadingActions.js","containers/ServiceRequestEdit/PageLinks.js","containers/Transportation/Transportation.js","../../@hobs/actions/transportation.js","../../@hobs/constants/serviceRequestAuditLog.js","containers/ServiceRequestAuditLog/ServiceRequestAuditLogs/ServiceRequestAuditLogItems/ServiceRequestAuditLogItems.js","../../@hobs/actions/serviceRequestAuditLog.js","containers/ServiceRequestAuditLog/ServiceRequestAuditLogs/ServiceRequestAuditLogs.js","containers/ServiceRequestAuditLog/ServiceRequestEditAuditLogs.js","containers/ServiceRequestCustom/PageLinks.js","containers/ServiceRequestAuditLog/ServiceRequestCustomAuditLogs.js","../../@hobs/containers/ApprovalSummary/ApprovalSummary.js","containers/ApprovalSummary/ApprovalSummary.js","actions/approvalSummary.js","../../@hobs/actions/mealPlanner.js","../../@hobs/containers/MealPlanner/MealPlanner.js","containers/MealPlanner/MealPlanner.js","containers/Tickets/Tickets.js","../../@hobs/containers/ChangeHistory/ChangeHistory.js","containers/ChangeHistory/ChangeHistory.js","routes/Routes.js","routes/index.js","../../@hobs/utils/config/config.js","../../@hobs/utils/config/index.js","../../@hobs/components/ErrorBoundaries/ErrorBoundaries.js","../../@hobs/components/ErrorBoundaries/index.js","../../@hobs/constants/exercises.js","../../@hobs/constants/tickets.js","../../@hobs/constants/gridSelections.js","../../@hobs/constants/units.js","../../@hobs/constants/activity.js","../../@hobs/polyfill/closest.js","../../@hobs/polyfill/remove.js","../../@hobs/auth/constants.js","../../@hobs/constants/annex.js","../../@hobs/constants/mealPlanner.js","../../@hobs/constants/parties.js","containers/StatementOfRequirements/Units/SorFinance.module.scss","../../@hobs/constants/locations.js","../../@hobs/constants/discussion.js","../../@hobs/constants/customServiceRequests.js"],"names":["module","exports","raised-button","large","with-icon","ghost-button","danger","inactive-button","square-button","square-ghost-button","small","__webpack_require__","d","__webpack_exports__","CORDATA","UPDATE","CLEAR","EXPORTCOR","REQUEST","SUCCESS","FAILURE","token","isValidToken","localStorage","getItem","JSON","parse","initialState","loggedIn","user","Object","objectSpread","getTokenData","auth","state","arguments","length","undefined","action","type","constants","LOGIN_REQUEST","isLoading","loggingIn","LOGIN_SUCCESS","LOGIN_UPDATE","LOGIN_FAILURE","RESET_REQUEST","LOGOUT","Attachment","_this$actionMap","_this","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","defaultState","uploadAttachments","assign","attachments","concat","toConsumableArray","response","setAttachments","deleteAttachment","filteredAttachments","filter","attachment","name","file","clearAttachments","actionMap","defineProperty","UPLOAD","SET","DELETE","BaseReducer","reducers_attachment","OData","loadODataList","payload","resetODataList","list","RESET","data","total","reducers_odata","Locations","addQueryResults","query","QUERY","reducers_locations","ServiceRequests","addAdditionalInformation","additionalInformation","results","serviceRequestId","addCalculateByDaysResults","calculateByDays","clearCosts","addServiceRequestItem","item","addForSubmitData","forSubmit","getCategoryServiceRequest","categoryServiceRequest","getCategorySubitems","categorySubitems","getFooter","footer","clearFooter","CalculateByDays","CLEAR_COSTS","ForSubmit","GET","AdditionalInformation","GETCATEGORYSERVICEREQUEST","GETCATEGORYSUBITEMS","GET_FOOTER","CLEAR_FOOTER","units","reducers_serviceRequests","Parties","getPartyCreateForSubmit","partyCreateForSubmit","getParty","party","getPartyUnits","partyUnits","getAssignedPartyUnits","assignedPartyUnits","getCurrentParty","currentParty","FORSUBMIT","UNITS","UNITS_CURRENT","CURRENT","reducers_parties","Phases","setPhases","phases","setPhaseTypes","phaseTypes","GET_TYPES","reducers_phases","Users","getUserForSubmit","userForSubmit","getUser","clearUser","reducers_users","Units","getUnitsForSubmit","unitsForSubmit","getUnit","unit","clearUnit","unitTypes","unitOperationTypes","reducers_units","Cor","loadCorData","cor","clearCorData","reducers_cor","Discussion","appendMessage","discussions","getMessages","clearMessages","CREATE","markAsUnreadEnabled","discussionWith","reducers_discussion","annexes","groups","reducers_customServiceRequests","BULK_ASSIGN_FORSUBMIT","AssigmentServiceRequest","addAssigmentServiceRequestItem","clearAssigmentServiceRequestItem","loadBulkForSubmitData","bulkForSubmit","subcontractors","valueAddedTaxes","activities","assignmentServiceRequest","GridSelection","loadAnnexOverviewGrid","annexOverviewGrid","loadAuditLogGrid","auditLogGrid","loadExerciseGrid","exerciseGrid","loadPartyGrid","partyGrid","loadRequestedServicesGrid","requestedServicesGrid","loadSorGrid","sorGrid","loadUserGrid","userGrid","loadCatalogGrid","catalogGrid","loadOrderGrid","orderGrid","loadGroupGrid","groupGrid","loadTicketGrid","ticketGrid","GETANNEXOVERVIEW","GETAUDITLOGGRID","GETEXERCISEGRID","GETPARTYGRID","GETREQUESTEDSERVICES","GETSORGRID","GETUSERGRID","GET_CATALOG_GRID","GET_ORDER_GRID","GET_GROUP_GRID","GET_TICKET_GRID","statuses","unitsOfMeasure","regions","additionalRequestsStatuses","additionalRequestTypes","assigned","sendingNations","reducers_gridSelections","Annex","addAnnexesList","addAnnexesTree","tree","getAnnex","annex","clearAnnex","reducers_annex","Exercises","addExercisesList","exercises","addExercisesHomePage","currentPage","page","addExercisesTerms","currentTermPage","addRemainingDayObject","remainingDayObject","homePage","terms","remainingDays","reducers_exercises","Exercise","loadExercise","exercise","loadStaticData","parties","loadCurrentExercise","current","resetData","exerciseStaticData","exercisePost","exercisePut","exerciseGet","ApprovalSummary","addApprovalSummaryUnits","clearApprovalSummary","CLEAR_APPROVAL_SUMMARY","reducers_approvalSummary","TransportationShape","suppliers","transportTypes","transportationDetailsTypes","vehicleTypes","lines","generalInformation","pickupDetails","deliveryDetails","Transportation","addTransportation","addForSubmit","resetForSubmit","FOR_SUBMIT","reducers_transportation","MealPlanner","getServiceRequests","serviceRequests","getForSubmit","clearServiceRequests","getKitchenForSubmit","kitchenForSubmit","getMealPlannerLocations","mealPlannerLocations","UPDATE_KITCHEN_FOR_SUBMIT","QUERY_MEAL_PLANNER_LOCATIONS","kitchens","reducers_mealPlanner","Tickets","addTicket","tickets","clearTicket","clearCalculateByDaysResults","CALCULATE_BY_DAYS","hnUsersForAssignment","sendingNationsForCreate","reducers_tickets","Activity","addActivitiesList","getActivity","activity","clearActivity","reducers_activity","Notifications","appendNotificationData","value","index","self","findIndex","t","ServiceRequestId","IndicationDescription","totalCount","GETNOTIFICATIONS","RESETNOTIFICATIONS","reducers_notifications","Sor","responsiblePerson","loadSorUnits","clearFinanceData","finance","whoCanConfirmFsor","loadSorFinanceData","loadWhoCanConfirmFsor","loadSorUnit","resetSorUnit","canCreateServiceRequest","loadSummaryData","sorSummary","loadSorParty","sorParty","clearSorParty","UNIT","REMOVE","UNITSTATICDATA","FINANCE","WHOCANCONFIRMSOR","CLEARFINANCEDATA","CANCREATESERVICEREQUEST","SUMMARY","GETSORPARTY","CLEAR_SOR_PARTY","usersWhoCanConfirmFsor","history","reducers_sor","createBrowserHistory","middleware","thunk","routerMiddleware","loadingBarMiddleware","promiseTypeSuffixes","composedEnhancers","compose","apply","applyMiddleware","store","createStore","combineReducers","odata","router","connectRouter","loadingBar","loadingBarReducer","loading","locations","users","sor","discussion","customServiceRequests","gridSelections","approvalSummary","transportation","mealPlanner","notifications","Boolean","window","location","hostname","match","i18n","use","initReactI18next","init","resources","en","translation","require","lng","fallbackLng","interpolation","escapeValue","ReactDOM","render","react_default","a","createElement","es","esm","App","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister","getExercises","dispatch","fetchSecure","success","failure","toString","T_TfsBuildAgents_Manual_work_108_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__","catch","error","getCurrentExercise","getExerciseHomePage","getExerciseTerms","acceptExerciseTerms","termsAccept","method","updateToken","changeCurrentExercise","id","changeCurrentExerciseId","getRemainingDaysObject","status","_Loader__WEBPACK_IMPORTED_MODULE_0__","jwt_decode__WEBPACK_IMPORTED_MODULE_0__","jwtDecode","e","EXPORT_EXCEL","getApiUrl","global","config","baseApiURL","process","getMfaSessionTokenName","login","email","password","API_URL","mfaSessionToken","fetch","headers","Content-Type","body","stringify","json","setItem","T_TfsBuildAgents_Manual_work_108_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_2__","isMfaEnabled","isMfaValid","mfaUnverifiedToken","isMfaValidationNeeded","submitMfaVerificationToken","verificationToken","removeItem","message","lockoutEnabled","requestMfaTokenByEmail","reset","userId","resetToken","confirmPassword","_ref","T_TfsBuildAgents_Manual_work_108_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__","T_TfsBuildAgents_Manual_work_108_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default","mark","_callee","wrap","_context","prev","next","t0","text","t1","sent","abrupt","stop","_x","RESET_SUCCESS","RESET_FAILUTER","logout","XLS","form-item","form-error-input","form-error","form-item-borderless","no-margin","error-label","search","search-tiny","content","ToolTip","FloatRight","WithMargins","Icon","popover--popover","ShowHide","left","right","units--empty","units--empty--message","header","overlayWrapper","overlayBackdrop","menu","actions","custom-filter","custom-filter--content","custom-filter--options","custom-filter--actions","custom-filter--popover","label","page-header","back-link","parent","link","order","APPROVE","CANCEL_APPROVAL","activeTabWrapper","noBackgroundWrapper","tabsList","tab","active","panel","arrow","heading","footnote","GhostButton","_classnames","_ref$type","size","children","onClick","disabled","to","_ref$title","title","iconLeft","className","classNames","classnames","Styles","react_router_dom","RaisedButton","_ref2","_classnames2","href","_ref2$title","_ref2$disabled","SquareButton","_ref4","SquareGhostButton","_ref6","Buttons_GhostButton","Buttons_RaisedButton","Buttons_SquareButton","Buttons_SquareGhostButton","phase","active-notice","complete","circle","inactive","select","fixed","draggable","rnd","dialog","backdrop","autocomplete","popover","popover-empty","no-results","input-wrapper","container","info","loader-backdrop","attachment-loader","zone","input","icon","datepicker","form","statusField","twoColumns","textField","buttons","main","submenu","link-container","active-link","homepage-wrapper","section-title","content-box","_fetch__WEBPACK_IMPORTED_MODULE_0__","expanded","numeric-input","strike","alert","service-request-footer","service-request-message","service-request-message--notification","service-request-controls","H1","h1","H2","h2","H5","_ref3","h5","Headings_H1","Headings_H2","Headings_H5","react__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_0___default","n","_Loader_module_scss__WEBPACK_IMPORTED_MODULE_1__","_Loader_module_scss__WEBPACK_IMPORTED_MODULE_1___default","Loader","loader","viewBox","cx","cy","r","fill","strokeWidth","strokeMiterlimit","tooltip--content","tooltip--icon","labelWrapper","history-indication","confirm","inline-buttons","wrapper","switch","dark","top-wrapper","bottom-wrapper","table-wrapper","pax","table","row","unit-group","unit-name","sub-unit","sub-component","equipment","equipment-input-wrapper","date","CREATECATEGORYSPLIT","RESOLVECATEGORYREQUEST","REOPENCATEGORYREQUEST","CALCULATE_BY_DAYS_FROM_CATALOG","CONFIRM","GET_INTERNAL_PENDING_FLAG","UPDATE_INTERNAL_PENDING_FLAG","UPDATE_ACTIVITY","GET_EXCLUDE_FROM_FSOR_CONFIRMATION","UPDATE_EXCLUDE_FROM_FSOR_CONFIRMATION","ADD","UPDATEFINANCEDATA","PHASECHANGE","CONFIRM_ISOR","CONFIRM_FSOR","VALIDATE_CONFIRM_FSOR","withIndication","indicator","indicator-wrapper","textarea","borderless","remove","Error","reducer","bind","createClass","key","actionResponse","baseReducer_BaseReducer","ServiceRequestNavContext","React","createContext","serviceRequestNavigation","orderId","previousGridPosition","navigationOrigin","windowScrollOffset","dataState","selectedAnnex","savedQuickSearch","setServiceRequestNavigation","setServiceRequestId","setOrderId","setPreviousGridPosition","clearPreviousPosition","clearSelectedAnnex","clearSavedQuickSearch","clearSavedDataState","props","T_TfsBuildAgents_Manual_work_108_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_3__","T_TfsBuildAgents_Manual_work_108_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__","T_TfsBuildAgents_Manual_work_108_s_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__","firstTabClickEvent","keyCode","classList","add","removeEventListener","addEventListener","firstMouseDownEvent","setState","quickSearch","getConfig","onPrivatePageLoad","prevProps","_this$props$auth","isExercisesLoading","_this$props","react__WEBPACK_IMPORTED_MODULE_8___default","_hobs_components_Loader__WEBPACK_IMPORTED_MODULE_10__","_hobs_components_ServiceRequestNavContext__WEBPACK_IMPORTED_MODULE_12__","Provider","_hobs_components_ErrorBoundaries__WEBPACK_IMPORTED_MODULE_11__","_routes__WEBPACK_IMPORTED_MODULE_16__","Component","exercisesLoading","createLoadingSelector","mapDispatchToProps","connect","_fetch","path","_ref$body","_ref$method","_ref$multipart","multipart","_ref$forceBlob","forceBlob","_ref$cancel","cancel","_ref$params","params","_ref$token","request","Authorization","validateStatus","Pragma","responseType","axios","CancelToken","source","cancelToken","formData","FormData","keys","forEach","Array","isArray","append","Response","p","Loading","matches","exec","_matches","slicedToArray","requestName","requestState","some","reducer_reducer","rotate","dash","PATCHPARTY","CHANGEPASSWORD","RESENDRESETPASSWORD","CHANGELOCKSTATUS","SOFTDELETEUSER","annexes-filter","checkbox","radio-button","PrivateRoute","_ref$redirect","redirect","component","Layout","layout","layoutProps","rest","objectWithoutProperties","react_router","AgreedToExercise","pathname","from","NotFound","role","aria-label","alt","CoreLayout","Header","_ref$left","Fragment","build_default","secondary","Icons","ArrowDown","width","height","fillRule","ArrowDownSmall","ArrowDownOutline","ArrowDownSmallOutline","ArrowRightOutline","ArrowRight","ArrowTop","ExclamationMark","stroke","stroke-width","fill-rule","transform","font-family","font-size","font-weight","x","y","BackArrow","Bell","style","Calendar","Chat","CloseSmall","preserveAspectRatio","Close","Download","Filter","Pen","Remove","Settings","Tick","UserManual","Plus","Upload","Location","Delete","Info","History","Truck","TrashBin","Search","Split","InfoSmall","Change","_ref$hasNotification","hasNotification","str","result","replace","word","toLowerCase","toUpperCase","charAt","slice","camelize","_className","withTranslation","currentPhase","hideRemainingInfo","map","completed","ShortId","generate","exact","activeClassName","components_Phase_Phase","phaseName","hide","Tooltip","tooltip","components","popoverClassName","WithRoles","Roles","_PureComponent","_getPrototypeOf2","_len","args","_key","hasUserPermission","roles","includes","UserRole","inherits","PureComponent","DATE_FORMAT","BACKEND_DATE_FORMAT","DATETIME_FORMAT","MAX_FILE_SIZE","MEAL_PLANS_EXPORT_FILE_NAME","GRID_CUSTOM_FILTER_FIELDS","PAGE_SIZES","ORDER_STATUSES","0","color","1","2","3","TICKETS_STATUSES","4","STATUSES","5","6","7","8","9","10","11","12","13","DEFAULT_STATUS_FILTER","filters","field","operator","logic","GRID_OPERATORS","numeric","USER_ROLES","SystemAdmin","ADMIN","USER","READONLY","HOST_UNIT","UNIT_PARENT_TYPES","Unit","SubUnit","UNIT_TYPES","INDICATIONS","CategoryNotResolved","HasNewMessages","IsNotFullOrdered","IsReplyToSnIsMissing","QuantityNotAssigned","SupplierUpdateToService","TransportationInformationMissing","AddReqResponseRequired","IsEarlyConfirmationRequired","MAX_INT32","SERVICE_REQUEST_NAVIGATION_ORIGIN","AnnexOverview","RequestedServices","Orders","APPROVAL_STATUSES","SERVICE_REQUEST_FOOTER_STATUSES","MONTH_NAMES","PARTY_TYPE","HostNation","Id","Name","SendingNation","Supplier","getCurrentUserLanguage","_window$navigator","userLanguage","language","indexOf","split","format","isValid","Date","locale","Locales","options","fnsFormat","getTime","formatLocal","parseWithTimeZone","parseLocal","parseFns","formatLong","dateWithoutTimeZone","RegExp","onLoadMore","notificationCount","_ref$data","onSelected","_useState","useState","_useState2","isOpen","setIsOpen","_useState3","_useState4","setIsLoading","loadMoreOptionRef","useRef","outerClickRef","callback","callbackRef","innerRef","useEffect","handleClick","contains","target","useOuterClick","observer","IntersectionObserver","entries","isIntersecting","click","observe","load","skip","ref","cursor","components_Icon_Icon","i","RequestNumber","LastChangeDate","actionCreator","uri","formatFilter","tryGetODataString","toODataString","oDataFetch","oDataParams","dateString","dateRegex","addTimeZoneOffsetToDate","queryOData","take","getNotifications","queryXLSOData","resetOData","getODataParams","selectedFields","join","blob","fileName","msSaveOrOpenBlob","url","URL","createObjectURL","Blob","download","appendChild","GetAttachmentData","asyncToGenerator","regenerator_default","attachmentId","DOWNLOAD","shape","UserEmail","string","isRequired","UserName","UserId","oneOf","CurrentExerciseId","PartyId","UserMenu","_ref$onOptionClick","onOptionClick","submenuLinks","links","getPhaseTypes","getUserManual","remainingDaysObject","withRouter","_ref$withSubmenu","withSubmenu","currentExerciseId","setCurrentExerciseId","userSettingsTooltipIsDisabled","setUserSettingsTooltipIsDisabled","exercisePopoverRef","settingsPopoverRef","queryNotifications","listen","useCallback","notificationsQueryFilterItem","notificationsQueryFilter","downloadUserManual","event","userManual","preventDefault","components_Header_Header","currentExercise","find","exerciseId","minimal","usePortal","modifiers","offset","lib","renderThumbVertical","autoHeight","setOpenState","push","position","Position","BOTTOM_LEFT","renderExercises","Notifications_Notifications_Notifications","notification","components_Tooltip_Tooltip","PartyName","onOpening","onClosed","UserMenu_UserMenu","PrivateLayout_SettingsMenu_SettingsMenu","components_Submenu_Submenu","components_CoreLayout_CoreLayout","Homepage","Home","components_Homepage_Homepage","dangerouslySetInnerHTML","__html","WithErrorLabel","errors","objectPath","get","isError","IsError","data-error-label","getIn","touched","InputLabel","indicationMessage","_classNames","_ref$large","placeholder","_ref$onChange","onChange","onKeyUp","_ref$onBlur","onBlur","_ref$onKeyPress","onKeyPress","_ref$onPaste","onPaste","noMargin","maxLength","autoComplete","_ref$borderless","defaultValue","components_InputLabel_InputLabel","required","trim","validator","isEmail","phoneRegex","LoginForm","emailValidation","translations","validation","emailRequired","onSubmit","values","setSubmitting","setErrors","_this2","formik_esm","validateOnBlur","validateOnChange","initialValues","isSubmitting","validate","Input","passwordRequired","msg","data-api-error","Buttons","emailCounterSeconds","LoginTokenForm","emailResendCounter","setEmailResetCounter","emailCounterEnabled","setEmailCounterEnabled","_useState5","_useState6","isAccountLocked","setIsAccountLocked","_useState7","_useState8","emailResendText","setEmailResendText","_onResendEmail","onResendEmail","startEmailCounter","counter","setTimeout","resendEmail","tokenValidation","tokenRequired","_onSubmit","_callee2","_context2","_x2","customLogoPaths","getLoginImage","viableLogo","Promise","all","logoPath","logoResult","tryGetLogoImage","available","Login","logoSrc","isValidatingMfaToken","src","components_LoginTokenForm_LoginTokenForm","submitToken","components_LoginForm_LoginForm","submit","username","Logout","Toaster","BPToaster","create","TOP","mergeOptions","toastProps","intent","Intent","NONE","WARNING","show","Toast","DANGER","warning","ResetForm","details","Reset","components_ResetForm_ResetForm","Status","_ref$order","_ref$inverted","inverted","isNaN","borderColor","border","backgroundColor","Indicator","KEY_ENTER","WithQuickSearch","QuickSearch","inputValue","withQuickSearchFilter","handleQuickSearchChange","onSearch","withQuickSearchForm","preFilledQuickSearch","components_Input_Input","AnnexFilter","selected","toggleAnnex","annexId","resetFilter","formateOdataFilter","fieldName","renderAnnexesFilterForm","onSelect","preselectedAnnex","AllButton","Button","withAnnexFilterSelected","withAnnexFilterOdata","withAnnexFilterForm","formatCurrency","showPlaceholder","accounting","formatMoney","symbol","precision","thousand","pos","neg","zero","Money","amount","amountRangeString","currency","defaultProps","formattedAmount","numberAmount","Number","parseFloat","amounts","amountFrom","amountTo","wrapperClass","data-input","tabIndex","expandDataItem","clickedElement","tagName","toggleExpanded","parentElement","element","CellDate","dataItem","CellDateTime","DraggableDialog","onClose","_ref$width","defaultDialogWidth","dialogRef","rnrRef","windowWidth","innerWidth","windowHeight","innerHeight","updateCalculatedSize","currentHeight","styles","getComputedStyle","margin","Math","ceil","offsetHeight","getAbsoluteHeight","updateSize","min","updatePosition","max","react_rnd_lib","bounds","enableResizing","default","dragHandleClassName","data-icon","Dialog","backdropClassName","Checkbox","_ref$onClick","checked","htmlFor","attrs","ObjectPath","WithVisibleColumns","VisibleColumns","columns","originalColumns","appliedColumns","dialogOpen","selectAllChecked","onUpdate","openDialog","checkSelectAllChecked","onDialogClose","areAllSelected","getOwnPropertyNames","every","visible","getVisibleColumnCount","reduce","getGridColumns","setColumns","updateFn","onItemCheckedChange","column","onAllSelectedCheckedChange","changeCheckStateAllTo","isChecked","singleColumnSelected","_this3","sort","b","perChunk","resultArray","chunkIndex","floor","_this4","columnChunks","getColumns","components_Checkbox_Checkbox","components_Dialog_Dialog","columnKeys","hiddenInSelection","applyColumnChanges","withVisibleColumns","ColumnMenu","customFilterValues","saveSettings","onCloseMenu","onSave","getCurrentFilters","fields","res","filtr","resetSettings","onReset","handleFilter","onFilterChange","createCustomFilter","stopPropagation","setFilterValues","customFilter","currentFilters","fixFilterValue","notCheckedCount","newField","defaultKey","cFilter","restFilters","_this5","_this$props2","count","onKeyDown","onlyUniqueValues","onFilterCheckboxSelect","_this$props3","sortable","operators","dist_es_main","shouldDismissPopover","popoverProps","filterable","filterUI","firstFilterProps","hideSecondFilter","filterOperators","Columns","filterFields","headerClassName","has-filter","hasColumnFilter","array","columnMenu","Grid_ColumnMenu_ColumnMenu","cell","cell-numeric","toggle","withDataStateLocalOverrides","LSdataStateName","localOverrides","overrides","walkThrueFilters","test","parseInt","getFullYear","addtional","withGridLocalOverrides","defaultColumns","LSGridPropsName","onUserResetSettings","NotificationsQueryFilterName","Drawer","_ref$disabled","DiscussionForm","handleSubmit","Textarea","onMarkUnread","DiscussionFormConnected","Message","discussionId","userFullName","partyName","sendingDate","isMyPartyMessage","bool","messageFrom","modalRoot","messageBottom","createRef","markedUnread","openDiscussion","onDiscussionOpen","handleClose","onDiscussionClose","resetForm","onMessageCreate","handleMarkUnread","scrollToBottom","scrollIntoView","maybeShowEmptyBlock","el","removeChild","currentUserId","canHostUnitEdit","number","serviceRequestNumber","without-initials","initials","icon-only","iconOnly","no-messages","hasNoMessages","hasUnread","createPortal","Drawer_Drawer_Drawer","isCloseButtonShown","Classes","DRAWER_BODY","DIALOG_BODY","Message_Message","DRAWER_FOOTER","isOnlyPreviewMode","isMarkAsUnreadEnabled","discussionStatus","getDiscussion","resetDiscussion","sendMessage","markUnread","components_Discussion_Discussion","isLoadingMessages","MARK_UNREAD","sendingNationName","annexName","requestedQuantity","organization","phone","Quantity","formatNumber","formatAmount","INDICATION_TRANSPORTATION_FIELD","corStatus","handleScroll","getElementsByClassName","grid","pageYOffset","offsetTop","maxWidth","offsetWidth","exportServiceRequests","getXlsData","exportRef","save","getExportFileName","setCorStatus","quantity","isCreateSrDisabled","canCreateAdditionalServiceRequest","dataStateChange","onUserSaveSettings","getColumnsWithCustomFilter","defaultGridColumns","gridKey","defaultDataState","getDataState","getServiceRequestsUrl","PartyTypeId","onQuickSearch","quickSearchValue","_this$state","handleUnitFilterChange","selectedUnit","closeSorConfirmDialog","showConfirmDialog","getUnitOptions","unitsTree","flattenUnitsTree","unitName","unitId","getTotalEstimatedTotalCost","XLSoData","FooterTotalActualCost","roundNumber","FooterTotalCost","FooterTotalGrossAmount","FooterTotalEstimatedCostFrom","FooterTotalEstimatedCostTo","FooterTotalEstimatedGrossAmountFrom","FooterTotalEstimatedGrossAmountTo","Indications","minResizableWidth","headerCell","indications","getIndications","valign","components_Indicator_Indicator","indication","getIndicationColumnFilter","editURI","IsCustom","partyId","Consumer","nav","HasAttachments","colSpan","xls","AdditionalInfo","_ref5","AdditionalInfoActive","StatusId","components_Status_Status","StatusGridName","Service","Description","Group","_ref7","AnnexId","_ref8","xlsField","RequestedQuantity","_ref9","components_Quantity_Quantity","IsCalculatedByDays","_ref10","TotalQuantity","_ref11","DeliveryQuantity","_ref12","IsDeliveryFinalized","_ref13","UnitOfMeasureId","_ref14","UnitOfMeasure","UnallocatedQuantity","_ref15","Region","LocationComment","LocationTo","LocationCommentTo","Site","UnitId","DateFrom","DateTo","Days","EstimatedTotalCost","_ref16","components_Money_Money","EstimatedTotalCostFrom","EstimatedTotalCostTo","EstimatedGrossAmount","_ref17","EstimatedGrossAmountFrom","EstimatedGrossAmountTo","ActualCost","_ref18","ActualGrossAmount","_ref19","IsPaid","_ref20","ActivityName","DiscussionStatus","_ref21","containers_Discussion_Discussion","CreationDate","DeliveryComment","Comment","ResponseComment","dir","deepcopy","isConfirmIsorDisabled","previousWindowScrollOffset","indicationTypes","filterValue","toFixed","oData","displayData","getColumnFilterValuesAsString","getColumnFilterValuesAsStringNoId","gridFilterFieldName","getAnnexes","getRequestedServicesGrid","applyCustomFilters","getSorParty","statementOfRequirementId","getSor","crealSorParty","level","repeat","fallbackValue","getFieldValue","responsibleName","StatusIdOriginal","StatusName","_this6","newState","scrollTo","getSorFinanceData","getSorSummary","_this$props3$withVisi","scrollWindow","clearSavedOffset","navigateToSavedLocation","setSavedDataState","Headings","components_Summary_Summary","getSummaryInfo","canManageApprovals","components_Dropdown_Dropdown","getDisplayData","_this3$state","additionalDataStateOverride","es_main","resizable","reorderable","pageable","pageSizes","onDataStateChange","rowRender","service-requests-view--disabled","service-requests-view--last-visited","_ServiceRequests","propTypes","PropTypes","func","object","WithAnnexFilter","Panel","withArrow","showFootnote","Arrow","DEMO_NODES","CheckboxTree","_ref$nodes","nodes","index_browser_default","ConfirmContainer","resolveCallback","rejectCallback","yesButtonTitle","noButtonTitle","onCloseCallback","assertThisInitialized","handleYes","handleNo","resetState","renderConfirm","Translation","containerElement","cc","InformationToolTip","toolTipInformation","startDisabled","catalogItemId","hasMargins","floatRight","toolTipOpen","setToolTipOpen","toolTipInformationOld","setOldInformation","catalogItemIdOld","setOldItemId","onToolTip","class","isVisible","InfoPanel","titleIndicationMessage","detailsIndicationMessage","tooltipStartDisabled","code","setExpanded","contentRef","onExpand","currentTarget","isContentFullyVisible","scrollHeight","textLineHeight","components_InformationToolTip_InformationToolTip","onRemove","rel","checkIfFileNameExists","files","acceptedFiles","aitem","DropZone","isUploadingFiles","onDrop","multiple","showSuccessMessages","onDropRejected","onError","inMb","components_File_File","hasOwnProperty","canRemove","_this$props4","accept","maxSize","dropzoneParams","getNames","dist_es","getRootProps","getInputProps","isDragActive","PageActions","setContainerPadding","ignoreBottomPadding","paddingBottom","Wrapper","_ref2$onClick","_ref2$status","_ref2$order","_ref2$unit","_ref2$parent","_ref2$accounting","PageHeader_Wrapper","purchaseOrderNumber","positionNumber","GridLoader","loadingPanel","gridContent","querySelector","utils_calculateByDays","catalog","dateFrom","dateTo","isCalculatedByDays","isAccommodation","newValues","rateFrom","RateFrom","rateTo","RateTo","WEEKDAYS_SHORT","_ref$setFieldValue","setFieldValue","_ref$minDate","minDate","_ref$maxDate","maxDate","addYears","_ref$timePrecision","timePrecision","_ref$initialMonth","initialMonth","jsDateFormatter","formatDate","parseDate","parseFn","dateInput","portalClassName","dayPickerProps","firstDayOfWeek","weekdaysShort","inputProps","selectedDate","formattedDate","wrapperClassName","labelElement","_ref$noMargin","_ref$strike","_ref$showButtons","showButtons","_ref$valueNullable","valueNullable","_ref$max","onValueChange","numberValue","stringValue","buttonPosition","BluePanel","FieldHistoryMessage","editedFields","additionalFields","editedFieldName","defaultField","editedFieldsInfo","editedField","changedDate","getLatestEditedFieldName","changeDate","changedBy","newDateValue","newValue","String","dateToInitialMonth","differenceInDays","isInline","isTooltipOpen","setIsTooltipOpen","inlineStyle","components_Switch_Switch","confirmServiceRequest","updateActivity","sorId","sr","activityInForm","dropdownValue","setDropdownValue","activityList","setActivityList","canEditActivity","Dropdown","activityId","activityName","Loader_Loader","uoms","showPlaceholderOption","showTotalEstimates","_ref$editedFields","_ref$values","exerciseCurrency","DateInput","NumericInput","uom","components_CalculateByDays_CalculateByDays","Switch","ActivityDropdown_activityDropdown","components_BluePanel_BluePanel","Autocomplete","handleChange","minLength","onQueryChange","val","onItemSelect","selectedItem","resetValue","inputEl","defaultQuery","items","noResultsMessage","inputClass","suggest","inputValueRenderer","noResults","itemRenderer","resetOnClose","resetOnQuery","resetOnSelect","initialContent","lat","lon","desc","_ref$locationItems","locationItems","_ref$onQueryChange","_ref$initialLocation","initialLocation","_ref$defaultQuery","_ref$schema","schema","locationComment","_ref$isExpandable","isExpandable","_ref$editedFieldsHist","editedFieldsHistory","setLocation","hasLocationData","original","setOpen","location-details--expandable","location-details--isOpen","latitude","longtitude","open","region","site","longitude","ServiceRequest","chTreeChecked","chTreeExpanded","closeForm","selectedCatalog","oDataAnnexesFilter","oDataSearchFilter","isFirstPanelExpanded","handleFileUpload","forSubmitData","submitData","CatalogItemId","unitOfMeasureId","UnitsOfMeasure","regionId","regionName","locationName","regionIdFrom","locationFrom","regionNameFrom","locationNameFrom","locationCommentFrom","siteFrom","latitudeFrom","longitudeFrom","comment","_create","isAdditionalRequest","getServiceRequestEditUrl","getServiceRequestsGridUrl","clearAnnexesTree","queryOdata","onAnnexCheck","onLocationQueryChange","locationQueryTimeout","clearTimeout","queryLocations","handleQuickSearchChangeTimeout","checkAttachmentFileNames","isTransportation","IsTransportation","IsAccommodation","isMeal","IsMeal","isAccommodationOrMeal","getInitialActivity","serviceRequest","toActivityEntity","isDefault","getUnits","newUnits","toUnitsEntity","onGridRowClick","validateForm","IsDefault","toggleFirstPanelExpanded","getExerciseCurrency","validationSchema","Yup","typeError","nullable","when","is","otherwise","loadRequiredData","getAnnexesTree","clearCalculateByDays","navContext","isAdditionalSrCreateForm","createAdditionalServiceRequest","annexesTree","group","groupId","_this$state2","getCatalogItemsQueryUrl","calculate","UnitOfMeasureCode","dirty","Confirm","_this$state3","defaultUom","isDisabled","enableReinitialize","handleReset","components_PageActions_PageActions","cancelForm","components_PageHeader_PageHeader","components_Panel_Panel","components_CheckboxTree_CheckboxTree","toAnnexesTreeEntity","onCheck","buttonCount","selectedField","onRowClick","targetTagName","Grid_GridLoader_GridLoader","getCustomServiceRequestUrl","components_InfoPanel_InfoPanel","AttachmentId","components_DeliveryInformation_DeliveryInformation","toUomsEntity","calculateByDaysResults","showCurrency","components_LocationDetails_LocationDetails","toAutocompleteEntity","components_DropZone_DropZone","CREATE_CUSTOM","getServiceRequest","serviceRequestsId","_ServiceRequest","oDataLoading","Catalog","upload","overrideItems","catalogItemCode","showDialog","exportCatalog","showDeleteDialog","deleteCatalogItem","closeDeleteDialog","uploadCatalog","handleInputChange","getCatalogPathName","getUomFieldValue","uomsValues","uomsString","getCatalogGrid","Code","ServiceName","ServiceType","getCustomFilter","ServiceParent","ServiceDescription","GroupName","AnnexName","Uoms","ServiceNatureType","ValueAddedTaxCode","_getGridColumns","edit","getEditPathName","delete","EXPORT","customFilters","selectedRows","isAllSelected","Tab","isActive","Tabs","_React$PureComponent","activeTab","changeActiveTab","activeTabIndex","Children","toArray","tabs","child","cloneElement","noBackground","isValidElement","Tab_Tab","RadioButton","Alert","deleteUnit","UnitDialog","createUnit","onUnitCreate","updatedUnits","unitTypeName","parentUnitType","parentUnit","parentUnitId","createdUnit","toLowercaseFirst","setUnitError","updateUnit","reloadUnits","getPartyPathName","onDialogClosed","onDialogOpening","guid","unitCreateSchema","unitOperationTypeId","unitUpdateSchema","deleteIndex","substring","selectedValue","unitType","components_RadioButton_RadioButton","longName","unitOperationType","flatUnits","sortUnits","_this$props5","isEdit","isDialogOpen","components_Alert_Alert","getUnitTypesOptions","getUnitsSelectDefaultMessage","getUnitsOptions","getUnitOperationTypesOptions","getTags","sorUnitSchema","creationDate","likelyFrom","likelyTo","removeNull","alignIndicator","DropDown","person","removeUnit","DEFAULT_FILTER","SorUnits","addElementToExercise","hasUnits","addElementDisabled","fetchUnits","getSorUnits","selectUnit","getSorUnit","getUnitStaticData","isCreated","handleNodeClick","getFilterButtons","ButtonAllUnits","ButtonUATOE","getUnitsForUnitDialog","canAddUnitToExercise","selectedUnitId","canCreateUnit","buildTree","fn","head","childNodes","isSelected","isExpanded","hasCaret","secondaryLabel","Units_UnitDialog_UnitDialog","getUnitCreatePathName","contents","onNodeClick","Units_SorForm","ActivityDialog","createActivity","setError","isAssigned","reloadActivities","getSorPathName","activitySchema","description","isFirstActivity","getInitialActivityValues","Activities","getDefaultColumns","loadODataQuery","getBoolSwitch","controls","getActivityPathName","ActivityId","deleteActivity","Activities_ActivityDialog_ActivityDialog","onSortChange","SorFinance","sorFinance","isUploadingAttachment","updateSorFinanceData","handleFileRemove","getUsersWhoCanConfirmSorList","sorUserList","getUserWhoCanConfirmSor","sorUser","canRenderForm","financeItemSchema","paymentMadeByName","paymentMadeByAddress1","paymentMadeByAddress2","paymentMadeByAddress3","paymentMadeByCountry","financePocName","financePocEmail","financePocPhone","excludeEmptyString","getSorFinanceDataForSubmit","clearSorFinanceData","initialFormValues","paymentToBeMadeByName","address1","address2","address3","country","pocName","whoCanConfirmFsorId","whoCanConfirmFsorUser","containers_Activities_Activities","financeDataLoading","sorFinanceData","SorCor","corDataCopy","corData","setCorData","setSubUnitLevelQuantity","setUnitLevelQuantity","getPaxTotalQuantity","getEquipmentQuantity","updateCorInformation","vehicles","tracks","containers","ships","aircraft","calculateEquipment","set","renderEquipmentFields","calculatePaxFieldValue","parentId","unitTypeId","handleQuantityChange","handleCheckboxChange","paxFieldsComponent","isFormFieldsAvailable","renderPaxFields","VALIDATION","originalValue","comments","corItemSchema","of","getCorInformation","corDataLoading","StatementOfRequirements","fetchAdminAssignedPartyUnits","Tabs_Tabs","Units_SorUnits","hasUnitAssigned","Units_SorCor","Units_SorFinance","ESC_ENTER","WithEscNavigation","EscNavigation","withEscNavigationCallback","escListener","_componentDidMount","createAcceptResponse","ACCEPT_RESPONSE","createRejectResponse","REJECT_RESPONSE","changeRequestAcceptResponse","ACCEPT_CHANGE_RESPONSE","changeRequestRejectResponse","REJECT_CHANGE_RESPONSE","createCancellationRequest","CREATE_CANCELLATION_REQUEST","groupName","categoryServiceRequests","annexinformation","assignmentResponse","assignmentDelivery","_ref$delivery","delivery","readOnly","onDeliverySubmit","vatOptions","getSelectedVat","isFileDialogOpen","onFileDialogOpen","onFileDialogClose","onFileSelect","isDeliveryFileDialogOpen","onDeliveryFileDialogOpen","onDeliveryFileDialogClose","onSharedCostChange","onEarlyConfirmationRequiredChange","onDeliveryFinalizedChange","onDeliveryRollback","setKey","deliveryQuantityApprovalRequired","setDeliveryQuantityApprovalRequired","prevDelivery","usePrevious","onRollBackUpdate","getDefaultVat","valueAddedTaxId","calcTotalCost","canDeliveryQuantity","unitCost","calcDeliveryTotalCost","unitCostDisplay","totalCostDisplay","totalCost","getResponseValues","grossAmount","isDraft","SUBMIT_TYPE","abortEarly","yupToFormErrors","setTouched","setNestedObjectValues","deliveryQuantity","positive","isQuantityApprovalRequired","noValidate","canBeEdited","isEditable","calcUnitCost","vatValue","percentage","no-files","sharedCost","isSharedCost","earlyConfirmation","isEarlyConfirmationRequired","calcDeliveryUnitCost","isDeliveryFinalized","deliveryFinalized","_callee3","_context3","_callee4","_context4","canRollBack","_callee6","_context6","_callee5","_context5","HeadingActions","isDirty","showPath","editPath","historyPath","transportationPath","changeHistoryPath","navigateTo","PageLinks","components_HeadingActions_HeadingActions","ServiceRequestFooter","calculatedCostValues","ChangeRequestCreateDialog","calculateCosts","closeDialog","submitConfirm","createChangeRequest","reload","getInitialActivityId","getInitialActivityName","currentState","reateFrom","reateTo","valueIndex","titleIndex","calculateByDaysData","unitsOptions","uomsOptions","days","CREATE_CHANGE_REQUEST","ActionWithCommentDialog","submitConfirmReject","isCommentRequired","cancelText","confirmText","commentLabel","Dialog_DraggableDialog","cancellation","isPreviewMode","finalizeCancellationCosts","cancellationCostInvolved","isCancellationFinalized","price","calculateGrossAmount","isFinalized","priceDisplay","Price","TotalCost","vat","codeAndPercentage","ValueAddedTaxId","rows","confirmMessage","setCancellationCostState","resetCancellationCostErrors","CancellationCostInvolved","setFinalCostValue","updateIsCostFinalized","ServiceRequestCustom","navigateBack","getBackNavigationUrl","isEarlyConfirmationRequiredAndNotEditable","getAnnexOptions","getGroupOptions","filteredGroups","setAnnexValue","currentGroup","updateCustom","update","getSubmitData","navigation","_customCreate","getCustomServiceRequestEditUrl","_remove","onResponseFileDialogOpen","responseFileDialogOpen","onResponseFileDialogClose","deliveryFileDialogOpen","onChangeRequestResponseFileDialogOpen","changeRequestResponseFileDialogOpen","onChangeRequestResponseFileDialogClose","toggleChangeItem","prevState","showChangeItem","changeItem","itemChanged","CatalogAttachments","unitOfMeasureCode","catalogItemAttachments","uomDefault","onItemQueryChange","navigationHistory","withSearch","rejectChangeRequestResponse","acceptChangeRequestResponse","_this$props6","rejectAdditionalRequestResponse","_this$props7","acceptAdditionalRequestResponse","_this$props8","createRequestCancellation","setDialogError","_this$props9","renderHeaderCenterActions","isEarlyConfirmationSubmitting","serviceName","serviceDescription","currentValues","_this$props10","_this$props11","_this$props12","createCustomAdditionalServiceRequest","_this$props13","_this$props14","_this$props15","hasDefaultAnnex","addServiceCode","components_ServiceRequestFooter_ServiceRequestFooter","previousPageHistory","_this$props16","isActivityEmptyOnLoad","_this$props17","canUserCreateTicket","isChangeDisabled","showCreateChangeRequestDialog","isCancellationDisabled","showRequestCancellationDialog","canUserAcceptResponse","formHasValueChanges","_this7","containers_ActionWithCommentDialog_ActionWithCommentDialog","getAssignmentServiceRequest","_this8","_this$props18","isActivityNameDifferent","renderChangeRequestCreateDialog","renderRequestCancellationDialog","formInitialValues","renderHeader","renderPageActions","renderItemInformation","renderAdditionalDetails","renderDeliveryInformation","renderAssignmentResponse","components_AssignmentResponse_AssignmentResponse","components_CancellationCosts_CancellationCosts","changeRequestResponse","_this9","_this$props19","renderTransportationLocations","_this10","_this11","_this12","selectedValues","catalogItemCanBeChanged","components_CatalogItemInfo_CatalogItemInfo","getAnnexWithInformation","annexInformation","renderCustomServiceRequestItemInfo","_this13","_this14","getServiceRequestEditHeaderTitle","getServiceRequestCreateHeaderTitle","partyCode","requestNumber","statusGridName","statusId","components_PageLinks_PageLinks","getDiscussionInitials","getShowPath","getEditPath","getChangeHistoryPath","getHistoryPath","_this15","_this16","_this17","onConfirmServiceRequest","_this18","hasEarlyConfirmation","earlyConfirmationIsEditable","getEarlyConfirmFooter","getEarlyConfirmNoPermissionFooterForDisabled","footerType","getAdditionalEditableCreateWaitingForHnFooter","getAdditionalEditableCreateAcceptFooter","getDefaultFooter","getEarlyConfirmFooterForDisabled","getAdditionalCreateWaitingForHnFooter","getAdditionalCreateAcceptFooter","getNoTicketsFooter","getAdditionalChangeWaitingForHnFooter","getChangeAcceptFooter","getCancellationWaitingForHnFooter","getAdditionalChangeWaitingForSnFooter","getAdditionalCreateWaitingForSnFooter","_this19","containers_ChangeRequestCreateDialog_ChangeRequestCreateDialog","_ServiceRequestCustom","serviceRequestsLoading","ServiceRequestEdit","originalIsTransportation","parentCategory","loadComponentData","_values$location","_values$locationFrom","catalogItemChangeErrorMessage","getServiceRequestParent","getTransportationPath","unitOfMeasureName","information","isCategory","onIsActiveChange","FirstName","LastName","getUserGrid","IsSystemAdmin","IsUserActiveInParty","getUserPathName","Email","UnitName","RoleName","LoginExpiration","LastLogin","IsActive","Locked","_getDefaultColumns","PARTY_USER_TYPES","getActionUrl","partyType","useTranslation","userSchema","unitOptions","roleOptions","defaultLoginExpirationDate","setDate","getDate","firstName","lastName","loginExpirationDate","roleId","isDeleted","canEditUnit","canEditRole","canDeleteUser","resetPasswordSchema","onResetPasswordSubmit","onResendPasswordSubmit","onPasswordLockChange","onUserDeleted","resendDisabled","isChangeSubmitting","setIsChangeSubmitting","isPasswordLocked","isLocked","userState","userPasswordState","UserDialog","createUser","setUserError","updateUser","onUserUpdated","setUserSuccess","changeUserPassword","changePassword","setUserPasswordSuccess","setUserPasswordError","resendResetUserPasswordEmail","resendResetPassword","passwordLocked","changeLockStatus","softDeleteUser","reloadGrid","fetchRequiredData","emailValidator","isUnitRequired","roleLongName","assignedUnits","UserDialog_UserForm_UserForm","getUserSchema","getRoleOptions","UserDialog_UserPasswordManager_UserPasswordManager","lockStatus","requestUrl","exportUsers","loadUserOdataQuery","trueTitle","falseTitle","resultDataState","Users_UserDialog_UserDialog","justifyContent","getDefaultSnColumns","_Users","getUnitObject","canEdit","getUnitPathName","sortedUnits","onNodeCollapse","handleNodeCollapse","onNodeExpand","handleNodeExpand","Party","requisitionNumber","fetchAssignedUnits","containers_Units_Units","canEditUnits","src_containers_Users_Users","partyTypeId","TermsAndConditions","TermsAndConditionsView","countDecimals","valueOf","isCustom","transportationTime","hour","minute","getInitialValues","onBackClick","exportTransporation","exportExcel","timeCheck","minutes","_event$target","selectionStart","charCode","allowedFirstNumber","allowedSecondNumber","detailedInformationFields","getValue","eq","serialNumber","namePoc","zipCode","postAddress","mobilePhone","mission","remarks","typeId","weight","dgrName","unNr","dgrClass","neq","vehicleTypeId","vehicleType","transportationTypeId","transportationType","transportInformation","supplierName","supplierId","time","getPaddedTime","_this$props6$transpor","setTransportationTime","convertObjectNullsToString","transportType","transportTypeId","statusName","Transportation_PageLinks_PageLinks","discussionStatusId","modifiedDate","renderTransportationHeading","renderExportButton","renderPageLinks","renderGeneralInformation","renderTransportationInfo","arrayHelpers","src_components_HeadingActions_HeadingActions_0","_this$props$transport","ServiceRequestEdit_PageLinks_PageLinks","_Transportation","GETAUDITLOGITEMS","ServiceRequestAuditLogItems","getDisplayDate","auditLogItemDataState","requestedServicesAuditLogId","auditLog","getAuditLogItems","RequestedServicesAuditLogId","auditLogItems","closeDetails","dateValue","isNumber","isMoney","expand","getActionTypeValue","getPhaseTypeValue","CreatedDate","UserFullName","PhaseTypeId","ActionTypeId","Currency","OldValue","OldDateTimeValue","FieldName","NewValue","NewDateTimeValue","ServiceRequestAuditLogs","actionTypeId","actionType","phaseTypeId","phaseType","onDetailsClose","getAuditLogGrid","getPhaseTypeFilterValues","getActionTypeFilterValues","Fields","ServiceRequestAuditLogs_ServiceRequestAuditLogItems_ServiceRequestAuditLogItems","ServiceRequestEditAuditLogs","ServiceRequestAuditLog_ServiceRequestAuditLogs_ServiceRequestAuditLogs","ServiceRequestCustomAuditLogs","ServiceRequestCustom_PageLinks_PageLinks","isConfirmIsorEnabled","handleConfirmIsorClick","canUserConfirmIsor","showConfirmIsorDialog","getPartyName","handleIsorConfirmSubmit","_confirmIsor","loadApprovalSummary","isConfirmFsorEnabled","isConfirmFsorDisabled","handleConfirmFsorClick","canUserConfirmFsor","_validateConfirmFsor","showConfirmFsorDialog","handleFsorConfirmSubmit","_confirmFsor","unloadData","getApprovalSummary","confirmSor","validateConfirmFsor","confirmFsor","approve","canUserApproveUnit","_approveUnit","cancelApproval","canUserCancelUnitApproval","_cancelApproval","renderUnit","not-approved","approvalDate","serviceRequestCount","estimatedCost","cancelUnitApproval","approveUnit","renderChildUnits","getBackUrl","renderUnits","_ApprovalSummary","MemoizedMealPlanItemFields","memo","mealPlanItems","todayDate","serviceRequestIndex","groupIndex","canEditMealPlanner","mealPlan","keyName","month","getMonth","lastMealPlanMonth","nextMealPlanMonth","first-day-of-month","last-day-of-month","isEnabled","emptyArray","mealPlans","mp","mealPlanId","orderNumber","correctMealPlanItems","acc","mpItemsAcc","mpItem","mealPlanSubServiceId","mealPlanSubServiceName","gi","filterServiceRequests","kitchenId","nationId","formik","bag","getFormikBag","validateData","queryLocationsForMealPlanner","exportMealPlans","handleSplit","renderServiceRequestMealPlanItems","differenceInCalendarDays","months","differenceInCalendarMonths","canSplitMealPlanner","renderServiceRequestMealPlanItemsSelects","hasSplittedMealItems","hasEnabledMealPlans","mealPlanSubServices","subServiceId","subServiceName","mealPlanItemsData","highestOrderNumber","accumulated","mpItemsData","validItems","groupItem","groupOrderNumber","mealPlanItem","mealPlanItemId","mpSubServiceItem","originalData","updateServiceRequests","reloadServiceRequests","playload","kitchenDialog","getServiceRequestKitchenForSubmit","synchronizeScroll","hoveredTable","serviceRequestInfoVerticalScroll","scrollTop","serviceRequestDataVerticalScroll","onTableMouseEnter","filterDateFrom","filterDateTo","locationId","mpValidation","mpi","filterSchema","getMealPlannerForSubmit","nation","kitchen","kitchenName","renderNationFilter","firstServiceRequest","_","timeRepeat","selectedKitchenId","getKitchenName","renderKitchenName","canRenderNation","align","updateServiceRequestKitchen","updateKitchen","cancelChanges","renderKitchenDialog","onScroll","onMouseEnter","renderServiceRequestInfo","getMonthColumnHeaders","getDateColumnHeaders","renderServiceRequest","renderFilters","renderServiceRequests","_MealPlanner","clearMealPlanner","exportTickets","getTicketGrid","columnsWithLocalOverrides","TicketNumber","AdditionalRequestStatusName","AdditionalRequestStatusId","RequestType","IsCustomServiceRequest","AnnexInformation","LocationName","getColumnFilterByNameValues","RegionId","RegionName","DeliveryFromDate","DeliveryToDate","LastUpdate","_this$props2$withVisi","SHORT_NAMES","Host Nation","Sending Nation","ChangeHistory","onAddChangeRequest","onRequestForCancellation","_this$props$match$par","_this$props2$match$pa","getTickets","clearTickets","isActionsEnabled","additionalRequestTypeId","accepted","isAcceptedAutomatically","fullName","rejected","ticketInfo","ticket","additionalInfo","createdByFullName","creationComment","ticketStatus","createdByPartyType","additionalRequestType","ticketNumber","ticketStatusId","cancellationRequest","renderChangeServiceRequestChanges","changeRequest","renderNewServiceRequestChanges","newServiceRequest","renderTicketClosed","ticketClosed","responseFromHn","responseFromHnData","getValues","renderCancellationResponseFromHn","changes","getRenderValue","renderValue","oldValues","hasOldValue","getOldValue","getOldAmountValue","isResponsiblePersonSet","toUnit","unitOfMeasure","fromDate","toDate","totalDays","getDisplayValue","locationFromName","locationFromComment","locationToName","locationToComment","totalQuantity","estimatedTotalCost","getOldMoneyValue","newValuesData","renderServiceRequestChanges","renderResponseFromHn","confirmed","lastConfirmedValues","renderLastConfirmedValues","renderNoResults","renderChangeRequests","Routes","basename","components_PrivateRoute_PrivateRoute","PrivateLayout","routes_Routes","ErrorBoundaries","goToBeginning","hasError","components_ErrorBoundaries_ErrorBoundaries","CONFIRM_REJECT","CONFIRM_CHANGE","REJECT_CHANGE","CONFIRM_CANCELLATION","REJECT_CANCELLATION","CONFIRM_CANCELLATION_COSTS","GET_ACTIVITY_GRID","Element","prototype","msMatchesSelector","webkitMatchesSelector","closest","s","parentNode","nodeType","CharacterData","DocumentType","configurable","enumerable","writable","UPDATE_KITCHEN","EXPORT_MEAL_PLANS","middle-wrapper","input-group-wrapper","input-group","uploads-group","input-group-title","divider"],"mappings":"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KAAKq4D,qBACP50D,IACCA,EAAO84E,aACN5jD,IACAl1B,EAAO84E,aACL5jD,IACFl1B,EAAO84E,aACL5jD,IACJ9iB,EAAAC,EAAAC,cAAAF,EAAAC,EAAAuZ,SAAA,MACI5rB,EAAO84E,aACP5jD,IACAl1B,EAAO84E,aACL5jD,KACF34B,KAAKw8E,8CACHjhB,EACAv1B,GAEHviC,EAAO84E,aACN5jD,IACA34B,KAAKy8E,wCACHlhB,EACAv1B,IAINhmC,KAAK08E,iBAAiBnhB,EAAOv1B,EAAc6Z,IAG9C/gC,GAAYrb,GACXoS,EAAAC,EAAAC,cAAAF,EAAAC,EAAAuZ,SAAA,KACG5rB,EAAO84E,aAAe5jD,IACrBwjD,GACA/L,GACAgM,GACAp8E,KAAK28E,iCACHnjB,EAAe52D,kBAElBa,EAAO84E,aAAe5jD,IACrBwjD,GACA/L,IACCgM,GACDp8E,KAAKs8E,gDACL74E,EAAO84E,aACP5jD,IACAl1B,EAAO84E,aACL5jD,KACF34B,KAAK48E,wCACNn5E,EAAO84E,aACN5jD,IACA34B,KAAK68E,kCACNp5E,EAAO84E,aACN5jD,IACA34B,KAAK88E,sBACLr5E,EAAO84E,aACP5jD,IACAl1B,EAAO84E,aACL5jD,KACF34B,KAAK+8E,wCACNt5E,EAAO84E,aACN5jD,IACA34B,KAAKg9E,yBACLv5E,EAAO84E,aACP5jD,IACAl1B,EAAO84E,aACL5jD,KACF34B,KAAKi9E,oCACNx5E,EAAO84E,aACN5jD,IACA34B,KAAKk9E,wCACNz5E,EAAO84E,aACN5jD,IACA34B,KAAKm9E,oGAOiB,IAAAC,EAAAp9E,KACxBm3D,EAAkBn3D,KAAKipB,MAAvBkuC,cACAqC,EAAmBx5D,KAAKnB,MAAxB26D,eAER,OACE3jD,EAAAC,EAAAC,cAACsnE,GAAD,CACExa,aAAc7iE,KAAKnB,MAAMg6E,8BACzB3G,OAAQlyE,KAAK06D,iBACbqX,YAAa,WACXqL,EAAKxzD,SAAS,CACZivD,+BAA+B,KAGnClG,aACExb,GAAiBA,EAAc/yD,MAC3BpE,KAAK25D,SAASxC,EAAc/y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","file":"static/js/main.56e79cac.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"raised-button\":\"Buttons_raised-button__SHHA_\",\"large\":\"Buttons_large__1PTGT\",\"with-icon\":\"Buttons_with-icon__1dR-9\",\"ghost-button\":\"Buttons_ghost-button__R7zWV\",\"danger\":\"Buttons_danger__1BA7L\",\"inactive-button\":\"Buttons_inactive-button__3Mo0a\",\"square-button\":\"Buttons_square-button__2Z8rh\",\"square-ghost-button\":\"Buttons_square-ghost-button__3hkW1\",\"small\":\"Buttons_small__1w3op\"};","export const CORDATA = {\r\n REQUEST: 'StatementOfRequirements/GetCor/Request',\r\n SUCCESS: 'StatementOfRequirements/GetCor/Success',\r\n FAILURE: 'StatementOfRequirements/GetCor/Failure'\r\n};\r\nexport const UPDATE = {\r\n REQUEST: 'StatementOfRequirements/UpdateCor/Request',\r\n SUCCESS: 'StatementOfRequirements/UpdateCor/Success',\r\n FAILURE: 'StatementOfRequirements/UpdateCor/Failure'\r\n};\r\nexport const CLEAR = {\r\n SUCCESS: 'StatementOfRequirements/ClearCor/Success',\r\n FAILURE: 'StatementOfRequirements/ClearCor/Failure'\r\n};\r\nexport const EXPORTCOR = {\r\n REQUEST: 'StatementOfRequirements/ExportCor/Request',\r\n SUCCESS: 'StatementOfRequirements/ExportCor/Success',\r\n FAILURE: 'StatementOfRequirements/ExportCor/Failure'\r\n};\r\n","import { constants } from './constants';\r\nimport { isValidToken, getTokenData } from './utils';\r\n\r\nconst token = isValidToken(localStorage.getItem('token'))\r\n ? JSON.parse(localStorage.getItem('token'))\r\n : null;\r\n\r\nconst initialState = token\r\n ? { loggedIn: !!token, user: { token, ...getTokenData(token) } }\r\n : {\r\n loggedIn: false,\r\n user: {}\r\n };\r\n\r\nexport function auth(state = initialState, action) {\r\n switch (action.type) {\r\n case constants.LOGIN_REQUEST:\r\n return {\r\n isLoading: true,\r\n loggingIn: true,\r\n user: action.user\r\n };\r\n case constants.LOGIN_SUCCESS:\r\n return {\r\n isLoading: false,\r\n loggedIn: true,\r\n user: action.user\r\n };\r\n case constants.LOGIN_UPDATE:\r\n return {\r\n isLoading: false,\r\n loggedIn: true,\r\n user: action.user\r\n };\r\n case constants.LOGIN_FAILURE:\r\n return {\r\n isLoading: false,\r\n loggedIn: false\r\n };\r\n case constants.RESET_REQUEST:\r\n return {\r\n isLoading: true,\r\n loggingIn: false\r\n };\r\n case constants.LOGOUT:\r\n return {};\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport { UPLOAD, SET, DELETE, CLEAR } from '@hobs/constants/attachment';\r\n\r\nclass Attachment extends BaseReducer {\r\n static defaultState = {\r\n attachments: []\r\n };\r\n\r\n constructor() {\r\n super(Attachment.defaultState);\r\n\r\n this.actionMap = {\r\n [UPLOAD.SUCCESS]: this.uploadAttachments,\r\n [SET.SUCCESS]: this.setAttachments,\r\n [DELETE.SUCCESS]: this.deleteAttachment,\r\n [CLEAR.SUCCESS]: this.clearAttachments\r\n };\r\n }\r\n\r\n uploadAttachments = (state, action) => {\r\n return Object.assign({}, state, {\r\n attachments: [...state.attachments, ...action.response]\r\n });\r\n };\r\n\r\n setAttachments = (state, action) => {\r\n return Object.assign({}, state, { attachments: action.attachments });\r\n };\r\n\r\n deleteAttachment = (state, action) => {\r\n const filteredAttachments = state.attachments.filter(\r\n attachment => attachment.name !== action.file.name\r\n );\r\n\r\n return Object.assign({}, state, { attachments: filteredAttachments });\r\n };\r\n\r\n clearAttachments = state => {\r\n return Object.assign({}, state, { attachments: [] });\r\n };\r\n}\r\nexport default new Attachment().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport { list } from '@hobs/constants/odata';\r\n\r\nclass OData extends BaseReducer {\r\n static defaultState = {\r\n data: [],\r\n total: 0\r\n };\r\n\r\n constructor() {\r\n super(OData.defaultState);\r\n this.actionMap = {\r\n [list.SUCCESS]: this.loadODataList,\r\n [list.RESET]: this.resetODataList\r\n };\r\n }\r\n\r\n loadODataList = (state, action) => {\r\n return Object.assign({}, state, action.payload);\r\n };\r\n\r\n resetODataList = () => {\r\n return OData.defaultState;\r\n };\r\n}\r\nexport default new OData().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport { QUERY } from '@hobs/constants/locations';\r\n\r\nclass Locations extends BaseReducer {\r\n static defaultState = {\r\n query: []\r\n };\r\n constructor() {\r\n super(Locations.defaultState);\r\n\r\n this.actionMap = {\r\n [QUERY.SUCCESS]: this.addQueryResults\r\n };\r\n }\r\n\r\n addQueryResults = (state, action) => {\r\n return Object.assign({}, state, { query: action.query });\r\n };\r\n}\r\nexport default new Locations().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport {\r\n CalculateByDays,\r\n CLEAR_COSTS,\r\n ForSubmit,\r\n GET,\r\n AdditionalInformation,\r\n GETCATEGORYSERVICEREQUEST,\r\n GETCATEGORYSUBITEMS,\r\n GET_FOOTER,\r\n CLEAR_FOOTER\r\n} from '@hobs/constants/serviceRequests';\r\n\r\nclass ServiceRequests extends BaseReducer {\r\n static defaultState = {\r\n calculateByDays: null,\r\n item: {},\r\n forSubmit: {\r\n units: []\r\n },\r\n additionalInformation: {},\r\n categoryServiceRequest: {},\r\n categorySubitems: {},\r\n footer: null\r\n };\r\n constructor() {\r\n super(ServiceRequests.defaultState);\r\n\r\n this.actionMap = {\r\n [CalculateByDays.SUCCESS]: this.addCalculateByDaysResults,\r\n [CLEAR_COSTS.SUCCESS]: this.clearCosts,\r\n [ForSubmit.SUCCESS]: this.addForSubmitData,\r\n [GET.SUCCESS]: this.addServiceRequestItem,\r\n [AdditionalInformation.SUCCESS]: this.addAdditionalInformation,\r\n [GETCATEGORYSERVICEREQUEST.SUCCESS]: this.getCategoryServiceRequest,\r\n [GETCATEGORYSUBITEMS.SUCCESS]: this.getCategorySubitems,\r\n [GET_FOOTER.SUCCESS]: this.getFooter,\r\n [CLEAR_FOOTER.SUCCESS]: this.clearFooter\r\n };\r\n }\r\n\r\n addAdditionalInformation = (state, action) => {\r\n return Object.assign({}, state, {\r\n additionalInformation: {\r\n ...state.additionalInformation,\r\n [action.results.serviceRequestId]: action.results\r\n }\r\n });\r\n };\r\n\r\n addCalculateByDaysResults = (state, action) => {\r\n return Object.assign({}, state, { calculateByDays: action.results });\r\n };\r\n\r\n clearCosts = state => {\r\n return Object.assign({}, state, { calculateByDays: null });\r\n };\r\n\r\n addServiceRequestItem = (state, action) => {\r\n return Object.assign({}, state, { item: action.item });\r\n };\r\n\r\n addForSubmitData = (state, action) => {\r\n return Object.assign({}, state, { forSubmit: action.results });\r\n };\r\n\r\n getCategoryServiceRequest = (state, action) => {\r\n return Object.assign({}, state, { categoryServiceRequest: action.item });\r\n };\r\n\r\n getCategorySubitems = (state, action) => {\r\n return Object.assign({}, state, { categorySubitems: action.payload });\r\n };\r\n\r\n getFooter = (state, action) => {\r\n return Object.assign({}, state, { footer: action.response });\r\n };\r\n\r\n clearFooter = (state) => {\r\n return Object.assign({}, state, { footer: null });\r\n }\r\n}\r\nexport default new ServiceRequests().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport { FORSUBMIT, UNITS, GET, UNITS_CURRENT, CURRENT } from '@hobs/constants/parties';\r\n\r\nclass Parties extends BaseReducer {\r\n static defaultState = {\r\n partyCreateForSubmit: {},\r\n party: null,\r\n partyUnits: null,\r\n assignedPartyUnits: null,\r\n currentParty: null\r\n };\r\n\r\n constructor() {\r\n super(Parties.defaultState);\r\n\r\n this.actionMap = {\r\n [FORSUBMIT.SUCCESS]: this.getPartyCreateForSubmit,\r\n [GET.SUCCESS]: this.getParty,\r\n [UNITS.SUCCESS]: this.getPartyUnits,\r\n [UNITS_CURRENT.SUCCESS]: this.getAssignedPartyUnits,\r\n [CURRENT.SUCCESS]: this.getCurrentParty\r\n };\r\n }\r\n\r\n getPartyCreateForSubmit = (state, action) => {\r\n return Object.assign({}, state, {\r\n partyCreateForSubmit: action.response\r\n });\r\n };\r\n\r\n getParty = (state, action) => {\r\n return Object.assign({}, state, {\r\n party: action.response\r\n });\r\n };\r\n\r\n getPartyUnits = (state, action) => {\r\n return Object.assign({}, state, {\r\n partyUnits: action.response\r\n });\r\n };\r\n\r\n getAssignedPartyUnits = (state, action) => {\r\n return Object.assign({}, state, {\r\n assignedPartyUnits: action.response\r\n });\r\n };\r\n\r\n getCurrentParty = (state, action) => {\r\n return Object.assign({}, state, {\r\n currentParty: action.response\r\n });\r\n };\r\n}\r\nexport default new Parties().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport { GET, GET_TYPES } from '@hobs/constants/phases';\r\n\r\nclass Phases extends BaseReducer {\r\n static defaultState = {\r\n phases: [],\r\n phaseTypes: []\r\n };\r\n\r\n constructor() {\r\n super(Phases.defaultState);\r\n\r\n this.actionMap = {\r\n [GET.SUCCESS]: this.setPhases,\r\n [GET_TYPES.SUCCESS]: this.setPhaseTypes\r\n };\r\n }\r\n\r\n setPhases = (state, action) => {\r\n return Object.assign({}, state, { phases: action.response });\r\n };\r\n\r\n setPhaseTypes = (state, action) => {\r\n return Object.assign({}, state, { phaseTypes: action.response });\r\n };\r\n}\r\n\r\nexport default new Phases().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport { FORSUBMIT, GET, CLEAR } from '@hobs/constants/users';\r\n\r\nclass Users extends BaseReducer {\r\n static defaultState = {\r\n userForSubmit: {},\r\n user: null\r\n };\r\n\r\n constructor() {\r\n super(Users.defaultState);\r\n\r\n this.actionMap = {\r\n [FORSUBMIT.SUCCESS]: this.getUserForSubmit,\r\n [GET.SUCCESS]: this.getUser,\r\n [CLEAR.SUCCESS]: this.clearUser\r\n };\r\n }\r\n\r\n getUserForSubmit = (state, action) => {\r\n return Object.assign({}, state, {\r\n userForSubmit: action.response\r\n });\r\n };\r\n\r\n getUser = (state, action) => {\r\n return Object.assign({}, state, {\r\n user: action.response\r\n });\r\n };\r\n\r\n clearUser = state => {\r\n return Object.assign({}, state, { userForSubmit: {}, user: null });\r\n };\r\n}\r\nexport default new Users().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport { FORSUBMIT, GET, CLEAR } from '@hobs/constants/units';\r\n\r\nclass Units extends BaseReducer {\r\n static defaultState = {\r\n unitsForSubmit: {\r\n unitTypes: [],\r\n unitOperationTypes: []\r\n },\r\n unit: null\r\n };\r\n\r\n constructor() {\r\n super(Units.defaultState);\r\n\r\n this.actionMap = {\r\n [FORSUBMIT.SUCCESS]: this.getUnitsForSubmit,\r\n [GET.SUCCESS]: this.getUnit,\r\n [CLEAR.SUCCESS]: this.clearUnit\r\n };\r\n }\r\n\r\n getUnitsForSubmit = (state, action) => {\r\n return Object.assign({}, state, {\r\n unitsForSubmit: action.response\r\n });\r\n };\r\n\r\n getUnit = (state, action) => {\r\n return Object.assign({}, state, {\r\n unit: action.payload\r\n })\r\n };\r\n\r\n clearUnit = state => {\r\n return Object.assign({}, state, { unit: null });\r\n };\r\n}\r\nexport default new Units().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport { CORDATA, CLEAR } from '@hobs/constants/cor';\r\n\r\nclass Cor extends BaseReducer {\r\n static defaultState = {\r\n cor: {}\r\n };\r\n\r\n constructor() {\r\n super(Cor.defaultState);\r\n this.actionMap = {\r\n [CORDATA.SUCCESS]: this.loadCorData,\r\n [CLEAR.SUCCESS]: this.clearCorData\r\n };\r\n }\r\n\r\n loadCorData = (state, action) => {\r\n return Object.assign({}, state, {\r\n cor: action.payload\r\n });\r\n };\r\n\r\n clearCorData = state => {\r\n return Object.assign({}, state, {\r\n cor: {}\r\n });\r\n };\r\n}\r\n\r\nexport default new Cor().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport { GET, CREATE } from '@hobs/constants/discussion';\r\n\r\nclass Discussion extends BaseReducer {\r\n static defaultState = {\r\n total: 0,\r\n markAsUnreadEnabled: null,\r\n discussionWith: null,\r\n discussions: []\r\n };\r\n\r\n constructor() {\r\n super(Discussion.defaultState);\r\n\r\n this.actionMap = {\r\n [GET.RESET]: this.clearMessages,\r\n [GET.SUCCESS]: this.getMessages,\r\n [CREATE.SUCCESS]: this.appendMessage,\r\n };\r\n }\r\n\r\n appendMessage = (state, action) => {\r\n return Object.assign({}, state, {\r\n total: state.total + 1,\r\n discussions: [...state.discussions, action.payload]\r\n })\r\n }\r\n\r\n getMessages = (state, action) => {\r\n return action.payload;\r\n };\r\n\r\n clearMessages = () => {\r\n return Discussion.defaultState;\r\n };\r\n}\r\nexport default new Discussion().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport {\r\n FORSUBMIT\r\n} from '@hobs/constants/customServiceRequests';\r\n\r\nclass ServiceRequests extends BaseReducer {\r\n static defaultState = {\r\n forSubmit: {\r\n units: [],\r\n annexes: [],\r\n groups: []\r\n }\r\n };\r\n constructor() {\r\n super(ServiceRequests.defaultState);\r\n\r\n this.actionMap = {\r\n [FORSUBMIT.SUCCESS]: this.addForSubmitData\r\n };\r\n }\r\n\r\n addForSubmitData = (state, action) => {\r\n return Object.assign({}, state, { forSubmit: action.results });\r\n };\r\n}\r\nexport default new ServiceRequests().reducer;\r\n","export const item = {\r\n REQUEST: 'AssignmentServiceRequest/Item/Request',\r\n SUCCESS: 'AssignmentServiceRequest/Item/Success',\r\n FAILURE: 'AssignmentServiceRequest/Item/Failure'\r\n};\r\n\r\nexport const split = {\r\n REQUEST: 'AssignmentServiceRequest/Split/Request',\r\n SUCCESS: 'AssignmentServiceRequest/Split/Success',\r\n FAILURE: 'AssignmentServiceRequest/Split/Failure'\r\n};\r\n\r\nexport const SPLITTED_RESEND = {\r\n REQUEST: 'AssignmentServiceRequest/SplitResend/Request',\r\n SUCCESS: 'AssignmentServiceRequest/SplitResend/Success',\r\n FAILURE: 'AssignmentServiceRequest/SplitResend/Failure'\r\n};\r\n\r\nexport const RESPONSE_SUGGESTION = {\r\n REQUEST: 'AssignmentServiceRequest/ResponseSuggestion/Request',\r\n SUCCESS: 'AssignmentServiceRequest/ResponseSuggestion/Success',\r\n FAILURE: 'AssignmentServiceRequest/ResponseSuggestion/Failure'\r\n};\r\n\r\nexport const splitAndSend = {\r\n REQUEST: 'AssignmentServiceRequest/SplitAndSend/Request',\r\n SUCCESS: 'AssignmentServiceRequest/SplitAndSend/Success',\r\n FAILURE: 'AssignmentServiceRequest/SplitAndSend/Failure'\r\n};\r\n\r\nexport const undo = {\r\n REQUEST: 'AssignmentServiceRequest/Split/Undo/Request',\r\n SUCCESS: 'AssignmentServiceRequest/Split/Undo/Success',\r\n FAILURE: 'AssignmentServiceRequest/Split/Undo/Failure'\r\n};\r\n\r\nexport const remove = {\r\n REQUEST: 'AssignmentServiceRequest/Split/Undo/Request',\r\n SUCCESS: 'AssignmentServiceRequest/Split/Undo/Success',\r\n FAILURE: 'AssignmentServiceRequest/Split/Undo/Failure'\r\n};\r\n\r\nexport const updateResponse = {\r\n REQUEST: 'AssignmentServiceRequest/Split/Undo/Request',\r\n SUCCESS: 'AssignmentServiceRequest/Split/Undo/Success',\r\n FAILURE: 'AssignmentServiceRequest/Split/Undo/Failure'\r\n};\r\nexport const FORSUBMIT = {\r\n REQUEST: 'AssignmentServiceRequest/ForSubmit/Request',\r\n SUCCESS: 'AssignmentServiceRequest/ForSubmit/Success',\r\n FAILURE: 'AssignmentServiceRequest/ForSubmit/Failure'\r\n};\r\nexport const UPDATESPLITTED = {\r\n REQUEST: 'AssignmentServiceRequest/Update/Splitted/Request',\r\n SUCCESS: 'AssignmentServiceRequest/Update/Splitted/Success',\r\n FAILURE: 'AssignmentServiceRequest/Update/Splitted/Failure'\r\n};\r\n\r\nexport const CLEAR = {\r\n REQUEST: 'AssignmentServiceRequest/Clear/Request',\r\n SUCCESS: 'AssignmentServiceRequest/Clear/Success',\r\n FAILURE: 'AssignmentServiceRequest/Clear/Failure'\r\n};\r\n\r\nexport const BULK_ASSIGN = {\r\n REQUEST: 'AssignmentServiceRequest/BulkAssignment/Request',\r\n SUCCESS: 'AssignmentServiceRequest/BulkAssignment/Success',\r\n FAILURE: 'AssignmentServiceRequest/BulkAssignment/Failure'\r\n};\r\n\r\nexport const BULK_APPOINT = {\r\n REQUEST: 'AssignmentServiceRequest/BulkAppointment/Request',\r\n SUCCESS: 'AssignmentServiceRequest/BulkAppointment/Success',\r\n FAILURE: 'AssignmentServiceRequest/BulkAppointment/Failure'\r\n};\r\n\r\nexport const CAN_BULK_ASSIGN = {\r\n REQUEST: 'AssignmentServiceRequest/CanBulkAssign/Request',\r\n SUCCESS: 'AssignmentServiceRequest/CanBulkAssign/Success',\r\n FAILURE: 'AssignmentServiceRequest/CanBulkAssign/Failure'\r\n};\r\nexport const BULK_ASSIGN_FORSUBMIT = {\r\n REQUEST: 'AssignmentServiceRequest/BulkAssignment/ForSubmit/Request',\r\n SUCCESS: 'AssignmentServiceRequest/BulkAssignment/ForSubmit/Success',\r\n FAILURE: 'AssignmentServiceRequest/BulkAssignment/ForSubmit/Failure'\r\n};\r\nexport const UPDATERESPONSESHAREDCOST = {\r\n REQUEST: 'AssignmentServiceRequest/Response/IsSharedCost/Request',\r\n SUCCESS: 'AssignmentServiceRequest/Response/IsSharedCost/Success',\r\n FAILURE: 'AssignmentServiceRequest/Response/IsSharedCost/Failure'\r\n};\r\nexport const UPDATERESPONSE_IS_EARLY_CONFIRMATION_REQUIRED = {\r\n REQUEST: 'AssignmentServiceRequest/Response/IsEarlyConfirmationRequired/Request',\r\n SUCCESS: 'AssignmentServiceRequest/Response/IsEarlyConfirmationRequired/Success',\r\n FAILURE: 'AssignmentServiceRequest/Response/IsEarlyConfirmationRequired/Failure'\r\n}\r\nexport const GETANNEXFILTEREDIDS = {\r\n REQUEST: 'AssignmentServiceRequest/GetAnnexFilteredIds/Request',\r\n SUCCESS: 'AssignmentServiceRequest/GetAnnexFilteredIds/Success',\r\n FAILURE: 'AssignmentServiceRequest/GetAnnexFilteredIds/Failure'\r\n};\r\nexport const UPDATE_ASSIGNMENT_DELIVERY = {\r\n REQUEST: 'AssignmentServiceRequest/UpdaetAssignmentDelivery/Request',\r\n SUCCESS: 'AssignmentServiceRequest/UpdaetAssignmentDelivery/Success',\r\n FAILURE: 'AssignmentServiceRequest/UpdaetAssignmentDelivery/Failure'\r\n};\r\nexport const ROLLBACK_DELIVERY = {\r\n REQUEST: 'AssignmentServiceRequest/RollbackDelivery/Request',\r\n SUCCESS: 'AssignmentServiceRequest/RollbackDelivery/Success',\r\n FAILURE: 'AssignmentServiceRequest/RollbackDelivery/Failure'\r\n};\r\nexport const APPOINTMENT = {\r\n REQUEST: 'AssignmentServiceRequest/Appointment/Request',\r\n SUCCESS: 'AssignmentServiceRequest/Appointment/Success',\r\n FAILURE: 'AssignmentServiceRequest/Appointment/Failure'\r\n};\r\n\r\nexport const REMOVE_APPOINTMENT = {\r\n REQUEST: 'AssignmentServiceRequest/RemoveAppointment/Request',\r\n SUCCESS: 'AssignmentServiceRequest/RemoveAppointment/Success',\r\n FAILURE: 'AssignmentServiceRequest/RemoveAppointment/Failure'\r\n};\r\nexport const UPDATE_ASSIGNMENT_DELIVERY_FINILIZED = {\r\n REQUEST:\r\n 'AssignmentServiceRequest/UpdaetAssignmentDeliveryFinalizedStatus/Request',\r\n SUCCESS:\r\n 'AssignmentServiceRequest/UpdaetAssignmentDeliveryFinalizedStatus/Success',\r\n FAILURE:\r\n 'AssignmentServiceRequest/UpdaetAssignmentDeliveryFinalizedStatus/Failure'\r\n};\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport {\r\n item,\r\n FORSUBMIT,\r\n CLEAR,\r\n BULK_ASSIGN_FORSUBMIT\r\n} from '@hobs/constants/assignmentServiceRequest';\r\n\r\nclass AssigmentServiceRequest extends BaseReducer {\r\n static defaultState = {\r\n item: {},\r\n forSubmit: {\r\n subcontractors: [],\r\n valueAddedTaxes: [],\r\n activities: []\r\n },\r\n bulkForSubmit: []\r\n };\r\n constructor() {\r\n super(AssigmentServiceRequest.defaultState);\r\n\r\n this.actionMap = {\r\n [item.SUCCESS]: this.addAssigmentServiceRequestItem,\r\n [FORSUBMIT.SUCCESS]: this.addForSubmitData,\r\n [CLEAR.SUCCESS]: this.clearAssigmentServiceRequestItem,\r\n [BULK_ASSIGN_FORSUBMIT.SUCCESS]: this.loadBulkForSubmitData\r\n };\r\n }\r\n\r\n addAssigmentServiceRequestItem = (state, action) => {\r\n return Object.assign({}, state, { item: action.item });\r\n };\r\n\r\n addForSubmitData = (state, action) => {\r\n return Object.assign({}, state, { forSubmit: action.forSubmit });\r\n };\r\n\r\n clearAssigmentServiceRequestItem = state => {\r\n return Object.assign({}, state, { item: {} });\r\n };\r\n\r\n loadBulkForSubmitData = (state, action) => {\r\n return Object.assign({}, state, { bulkForSubmit: action.bulkForSubmit });\r\n };\r\n}\r\nexport default new AssigmentServiceRequest().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport {\r\n GETANNEXOVERVIEW,\r\n GETAUDITLOGGRID,\r\n GETEXERCISEGRID,\r\n GETPARTYGRID,\r\n GETREQUESTEDSERVICES,\r\n GETSORGRID,\r\n GETUSERGRID,\r\n GET_CATALOG_GRID,\r\n GET_ORDER_GRID,\r\n GET_GROUP_GRID,\r\n GET_TICKET_GRID\r\n} from '@hobs/constants/gridSelections';\r\n\r\nclass GridSelection extends BaseReducer {\r\n static defaultState = {\r\n annexOverviewGrid: {},\r\n auditLogGrid: {},\r\n exerciseGrid: {},\r\n partyGrid: {},\r\n requestedServicesGrid: {\r\n statuses: [],\r\n groups: [],\r\n annexes: [],\r\n unitsOfMeasure: [],\r\n regions: []\r\n },\r\n catalogGrid: {},\r\n sorGrid: {},\r\n userGrid: {},\r\n orderGrid: {},\r\n groupGrid: {\r\n annexes: []\r\n },\r\n ticketGrid: {\r\n additionalRequestsStatuses: [],\r\n additionalRequestTypes: [],\r\n assigned: [],\r\n sendingNations: []\r\n }\r\n };\r\n\r\n constructor() {\r\n super(GridSelection.defaultState);\r\n this.actionMap = {\r\n [GETANNEXOVERVIEW.SUCCESS]: this.loadAnnexOverviewGrid,\r\n [GETAUDITLOGGRID.SUCCESS]: this.loadAuditLogGrid,\r\n [GETEXERCISEGRID.SUCCESS]: this.loadExerciseGrid,\r\n [GETPARTYGRID.SUCCESS]: this.loadPartyGrid,\r\n [GETREQUESTEDSERVICES.SUCCESS]: this.loadRequestedServicesGrid,\r\n [GETSORGRID.SUCCESS]: this.loadSorGrid,\r\n [GETUSERGRID.SUCCESS]: this.loadUserGrid,\r\n [GET_CATALOG_GRID.SUCCESS]: this.loadCatalogGrid,\r\n [GET_ORDER_GRID.SUCCESS]: this.loadOrderGrid,\r\n [GET_GROUP_GRID.SUCCESS]: this.loadGroupGrid,\r\n [GET_TICKET_GRID.SUCCESS]: this.loadTicketGrid\r\n };\r\n }\r\n\r\n loadAnnexOverviewGrid = (state, action) => {\r\n return Object.assign({}, state, {\r\n annexOverviewGrid: action.response\r\n });\r\n };\r\n\r\n loadAuditLogGrid = (state, action) => {\r\n return Object.assign({}, state, {\r\n auditLogGrid: action.response\r\n });\r\n };\r\n\r\n loadExerciseGrid = (state, action) => {\r\n return Object.assign({}, state, {\r\n exerciseGrid: action.response\r\n });\r\n };\r\n\r\n loadPartyGrid = (state, action) => {\r\n return Object.assign({}, state, {\r\n partyGrid: action.response\r\n });\r\n };\r\n\r\n loadRequestedServicesGrid = (state, action) => {\r\n return Object.assign({}, state, {\r\n requestedServicesGrid: action.response\r\n });\r\n };\r\n\r\n loadSorGrid = (state, action) => {\r\n return Object.assign({}, state, {\r\n sorGrid: action.response\r\n });\r\n };\r\n\r\n loadUserGrid = (state, action) => {\r\n return Object.assign({}, state, {\r\n userGrid: action.response\r\n });\r\n };\r\n loadCatalogGrid = (state, action) => {\r\n return Object.assign({}, state, {\r\n catalogGrid: action.response\r\n });\r\n };\r\n loadOrderGrid = (state, action) => {\r\n return Object.assign({}, state, {\r\n orderGrid: action.response\r\n });\r\n };\r\n loadGroupGrid = (state, action) => {\r\n return Object.assign({}, state, {\r\n groupGrid: action.response\r\n });\r\n };\r\n loadTicketGrid = (state, action) => {\r\n return Object.assign({}, state, {\r\n ticketGrid: action.response\r\n });\r\n };\r\n}\r\nexport default new GridSelection().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport { list, tree, GET, CLEAR } from '@hobs/constants/annex';\r\n\r\nclass Annex extends BaseReducer {\r\n static defaultState = {\r\n list: [],\r\n tree: [],\r\n annex: null\r\n };\r\n\r\n constructor() {\r\n super(Annex.defaultState);\r\n\r\n this.actionMap = {\r\n [list.SUCCESS]: this.addAnnexesList,\r\n [tree.SUCCESS]: this.addAnnexesTree,\r\n [GET.SUCCESS]: this.getAnnex,\r\n [CLEAR.SUCCESS]: this.clearAnnex\r\n };\r\n }\r\n\r\n addAnnexesList = (state, action) => {\r\n return Object.assign({}, state, { list: action.annexes });\r\n };\r\n\r\n addAnnexesTree = (state, action) => {\r\n return Object.assign({}, state, { tree: action.annexes });\r\n };\r\n\r\n getAnnex = (state, action) => {\r\n return Object.assign({}, state, {\r\n annex: action.response\r\n });\r\n };\r\n\r\n clearAnnex = state => {\r\n return Object.assign({}, state, { annex: null });\r\n };\r\n}\r\nexport default new Annex().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport {\r\n list,\r\n homePage,\r\n terms,\r\n remainingDays\r\n} from '@hobs/constants/exercises';\r\n\r\nclass Exercises extends BaseReducer {\r\n static defaultState = {\r\n list: [],\r\n currentPage: null,\r\n currentTermPage: null,\r\n remainingDayObject: {}\r\n };\r\n\r\n constructor() {\r\n super(Exercises.defaultState);\r\n\r\n this.actionMap = {\r\n [list.SUCCESS]: this.addExercisesList,\r\n [homePage.SUCCESS]: this.addExercisesHomePage,\r\n [terms.SUCCESS]: this.addExercisesTerms,\r\n [remainingDays.SUCCESS]: this.addRemainingDayObject\r\n };\r\n }\r\n\r\n addExercisesList = (state, action) => {\r\n return Object.assign({}, state, { list: action.exercises });\r\n };\r\n\r\n addExercisesHomePage = (state, action) => {\r\n return Object.assign({}, state, { currentPage: action.page });\r\n };\r\n\r\n addExercisesTerms = (state, action) => {\r\n return Object.assign({}, state, { currentTermPage: action.page });\r\n };\r\n\r\n addRemainingDayObject = (state, action) => {\r\n return Object.assign({}, state, { remainingDayObject: action.payload });\r\n };\r\n}\r\nexport default new Exercises().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport {\r\n exerciseStaticData,\r\n exerciseGet,\r\n exercisePost,\r\n exercisePut,\r\n CURRENT\r\n} from '@hobs/constants/exercises';\r\n\r\nclass Exercise extends BaseReducer {\r\n static defaultState = {\r\n parties: [],\r\n exercise: null,\r\n current: {}\r\n };\r\n\r\n constructor() {\r\n super(Exercise.defaultState);\r\n this.actionMap = {\r\n [exerciseStaticData.SUCCESS]: this.loadStaticData,\r\n [exercisePost.SUCCESS]: this.loadExercise,\r\n [exercisePut.SUCCESS]: this.loadExercise,\r\n [exerciseGet.RESET]: this.resetData,\r\n [exerciseGet.SUCCESS]: this.loadExercise,\r\n [CURRENT.SUCCESS]: this.loadCurrentExercise\r\n };\r\n }\r\n\r\n loadExercise = (state, action) => {\r\n return Object.assign({}, state, {\r\n exercise: action.payload\r\n });\r\n };\r\n\r\n loadStaticData = (state, action) => {\r\n return Object.assign({}, state, {\r\n parties: action.payload.parties\r\n });\r\n };\r\n\r\n loadCurrentExercise = (state, action) => {\r\n return Object.assign({}, state, {\r\n current: action.payload\r\n });\r\n };\r\n\r\n resetData = state => {\r\n return Object.assign({}, state, {\r\n parties: [],\r\n exercise: null\r\n });\r\n };\r\n}\r\nexport default new Exercise().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport { GET, CLEAR_APPROVAL_SUMMARY } from '@hobs/constants/approvalSummary';\r\n\r\nclass ApprovalSummary extends BaseReducer {\r\n static defaultState = {\r\n units: []\r\n };\r\n\r\n constructor() {\r\n super(ApprovalSummary.defaultState);\r\n\r\n this.actionMap = {\r\n [GET.SUCCESS]: this.addApprovalSummaryUnits,\r\n [CLEAR_APPROVAL_SUMMARY.SUCCESS]: this.clearApprovalSummary\r\n };\r\n }\r\n\r\n addApprovalSummaryUnits = (state, action) => {\r\n return Object.assign({}, state, { units: action.response });\r\n };\r\n\r\n clearApprovalSummary = (state) => {\r\n return Object.assign({}, state, { units: [] });\r\n };\r\n}\r\nexport default new ApprovalSummary().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport { GET, FOR_SUBMIT, RESET } from '@hobs/constants/transportation';\r\n\r\nconst TransportationShape = {\r\n forSubmit: {\r\n suppliers: [],\r\n transportTypes: [],\r\n transportationDetailsTypes: [],\r\n vehicleTypes: []\r\n },\r\n item: {\r\n lines: [],\r\n generalInformation: {},\r\n pickupDetails: {},\r\n deliveryDetails: {}\r\n }\r\n};\r\n\r\nclass Transportation extends BaseReducer {\r\n static defaultState = TransportationShape;\r\n constructor() {\r\n super(Transportation.defaultState);\r\n\r\n this.actionMap = {\r\n [GET.SUCCESS]: this.addTransportation,\r\n [FOR_SUBMIT.SUCCESS]: this.addForSubmit,\r\n [RESET.SUCCESS]: this.resetForSubmit\r\n };\r\n }\r\n\r\n addTransportation = (state, action) => {\r\n return Object.assign({}, state, { item: action.response });\r\n };\r\n\r\n addForSubmit = (state, action) => {\r\n return Object.assign({}, state, { forSubmit: action.response });\r\n };\r\n\r\n resetForSubmit = state => {\r\n return Object.assign({}, state, TransportationShape);\r\n };\r\n}\r\n\r\nexport default new Transportation().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport { GET, CLEAR, FOR_SUBMIT, UPDATE_KITCHEN_FOR_SUBMIT, QUERY_MEAL_PLANNER_LOCATIONS } from '@hobs/constants/mealPlanner';\r\n\r\nclass MealPlanner extends BaseReducer {\r\n static defaultState = {\r\n serviceRequests: [],\r\n forSubmit: { units: [], kitchens: [], sendingNations: [] },\r\n kitchenForSubmit: [],\r\n mealPlannerLocations: []\r\n };\r\n\r\n constructor() {\r\n super(MealPlanner.defaultState);\r\n\r\n this.actionMap = {\r\n [GET.SUCCESS]: this.getServiceRequests,\r\n [CLEAR.SUCCESS]: this.clearServiceRequests,\r\n [FOR_SUBMIT.SUCCESS]: this.getForSubmit,\r\n [UPDATE_KITCHEN_FOR_SUBMIT.SUCCESS]: this.getKitchenForSubmit,\r\n [QUERY_MEAL_PLANNER_LOCATIONS.SUCCESS]: this.getMealPlannerLocations\r\n };\r\n }\r\n\r\n getServiceRequests = (state, action) => {\r\n return Object.assign({}, state, { serviceRequests: action.response });\r\n };\r\n\r\n getForSubmit = (state, action) => {\r\n return Object.assign({}, state, { forSubmit: action.response });\r\n };\r\n\r\n clearServiceRequests = state => {\r\n return Object.assign({}, state, { serviceRequests: [] });\r\n };\r\n\r\n getKitchenForSubmit = (state, action) => {\r\n return Object.assign({}, state, { kitchenForSubmit: action.response });\r\n };\r\n\r\n getMealPlannerLocations = (state, action) => {\r\n return Object.assign({}, state, { mealPlannerLocations: action.response });\r\n };\r\n}\r\nexport default new MealPlanner().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport {\r\n FORSUBMIT,\r\n GET,\r\n CLEAR,\r\n CALCULATE_BY_DAYS,\r\n CLEAR_COSTS\r\n} from '@hobs/constants/tickets';\r\n\r\nclass Tickets extends BaseReducer {\r\n static defaultState = {\r\n tickets: {\r\n tickets: []\r\n },\r\n forSubmit: {\r\n hnUsersForAssignment: [],\r\n sendingNationsForCreate: []\r\n },\r\n calculateByDays: null\r\n };\r\n constructor() {\r\n super(Tickets.defaultState);\r\n\r\n this.actionMap = {\r\n [GET.SUCCESS]: this.addTicket,\r\n [FORSUBMIT.SUCCESS]: this.getForSubmit,\r\n [CLEAR.SUCCESS]: this.clearTicket,\r\n [CALCULATE_BY_DAYS.SUCCESS]: this.addCalculateByDaysResults,\r\n [CLEAR_COSTS.SUCCESS]: this.clearCalculateByDaysResults\r\n };\r\n }\r\n\r\n getForSubmit = (state, action) => {\r\n return Object.assign({}, state, {\r\n forSubmit: action.response\r\n });\r\n };\r\n\r\n addTicket = (state, action) => {\r\n return Object.assign({}, state, { tickets: action.response });\r\n };\r\n\r\n clearTicket = state => {\r\n return Object.assign({}, state, { tickets: { tickets: [] } });\r\n };\r\n\r\n addCalculateByDaysResults = (state, action) => {\r\n return Object.assign({}, state, { calculateByDays: action.response });\r\n };\r\n\r\n clearCalculateByDaysResults = state => {\r\n return Object.assign({}, state, { calculateByDays: null });\r\n };\r\n}\r\nexport default new Tickets().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport { list, GET, CLEAR } from '@hobs/constants/activity';\r\n\r\nclass Activity extends BaseReducer {\r\n static defaultState = {\r\n list: [],\r\n tree: [],\r\n activity: null\r\n };\r\n\r\n constructor() {\r\n super(Activity.defaultState);\r\n\r\n this.actionMap = {\r\n [list.SUCCESS]: this.addActivitiesList,\r\n [GET.SUCCESS]: this.getActivity,\r\n [CLEAR.SUCCESS]: this.clearActivity\r\n };\r\n }\r\n\r\n addActivitiesList = (state, action) => {\r\n return Object.assign({}, state, { list: action.activities });\r\n };\r\n\r\n getActivity = (state, action) => {\r\n return Object.assign({}, state, {\r\n activity: action.response\r\n });\r\n };\r\n\r\n clearActivity = state => {\r\n return Object.assign({}, state, { activity: null });\r\n };\r\n}\r\nexport default new Activity().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport {\r\n GETNOTIFICATIONS,\r\n RESETNOTIFICATIONS\r\n} from '@hobs/constants/notifications';\r\n\r\nclass Notifications extends BaseReducer {\r\n static defaultState = {\r\n data: [],\r\n totalCount: 0\r\n };\r\n\r\n constructor() {\r\n super(Notifications.defaultState);\r\n\r\n this.actionMap = {\r\n [GETNOTIFICATIONS.SUCCESS]: this.appendNotificationData,\r\n [RESETNOTIFICATIONS.SUCCESS]: this.resetData\r\n };\r\n }\r\n\r\n appendNotificationData = (state, action) => {\r\n let data = [...state.data, ...action.response.value];\r\n\r\n // removes duplicates in case new notification gets added\r\n data = data.filter((value, index, self) => {\r\n return (\r\n index ===\r\n self.findIndex(\r\n t =>\r\n t.ServiceRequestId === value.ServiceRequestId &&\r\n t.IndicationDescription == value.IndicationDescription\r\n )\r\n );\r\n });\r\n\r\n return Object.assign({}, state, {\r\n data: data,\r\n totalCount: action.response['@odata.count']\r\n });\r\n };\r\n\r\n resetData = state => {\r\n return Object.assign({}, state, {\r\n data: [],\r\n totalCount: 0\r\n });\r\n };\r\n}\r\nexport default new Notifications().reducer;\r\n","import { BaseReducer } from '@hobs/utils/baseReducer';\r\nimport {\r\n UNITS,\r\n UNIT,\r\n UNITSTATICDATA,\r\n REMOVE,\r\n FINANCE,\r\n WHOCANCONFIRMSOR,\r\n CLEARFINANCEDATA,\r\n CANCREATESERVICEREQUEST,\r\n SUMMARY,\r\n GETSORPARTY,\r\n CLEAR_SOR_PARTY\r\n} from '@hobs/constants/sor';\r\n\r\nclass Sor extends BaseReducer {\r\n static defaultState = {\r\n units: [],\r\n responsiblePerson: [],\r\n unit: null,\r\n finance: {},\r\n whoCanConfirmFsor: {\r\n usersWhoCanConfirmFsor: []\r\n },\r\n canCreateServiceRequest: false,\r\n sorSummary: {},\r\n sorParty: {}\r\n };\r\n\r\n constructor() {\r\n super(Sor.defaultState);\r\n this.actionMap = {\r\n [UNITS.SUCCESS]: this.loadSorUnits,\r\n [UNIT.SUCCESS]: this.loadSorUnit,\r\n [UNIT.FAILURE]: this.resetSorUnit,\r\n [REMOVE.SUCCESS]: this.resetSorUnit,\r\n [UNIT.RESET]: this.resetSorUnit,\r\n [UNITSTATICDATA.SUCCESS]: this.loadStaticData,\r\n [FINANCE.SUCCESS]: this.loadSorFinanceData,\r\n [WHOCANCONFIRMSOR.SUCCESS]: this.loadWhoCanConfirmFsor,\r\n [CLEARFINANCEDATA.SUCCESS]: this.clearFinanceData,\r\n [CANCREATESERVICEREQUEST.SUCCESS]: this.canCreateServiceRequest,\r\n [SUMMARY.SUCCESS]: this.loadSummaryData,\r\n [GETSORPARTY.SUCCESS]: this.loadSorParty,\r\n [CLEAR_SOR_PARTY.SUCCESS]: this.clearSorParty\r\n };\r\n }\r\n\r\n loadStaticData = (state, action) => {\r\n return Object.assign({}, state, {\r\n responsiblePerson: action.payload.responsiblePerson\r\n });\r\n };\r\n\r\n loadSorUnits = (state, action) => {\r\n return Object.assign({}, state, {\r\n units: action.payload\r\n });\r\n };\r\n\r\n clearFinanceData = state => {\r\n return Object.assign({}, state, {\r\n finance: {},\r\n whoCanConfirmFsor: {}\r\n });\r\n };\r\n\r\n loadSorFinanceData = (state, action) => {\r\n return Object.assign({}, state, {\r\n finance: action.payload\r\n });\r\n };\r\n\r\n loadWhoCanConfirmFsor = (state, action) => {\r\n return Object.assign({}, state, {\r\n whoCanConfirmFsor: action.payload\r\n });\r\n };\r\n\r\n loadSorUnit = (state, action) => {\r\n return Object.assign({}, state, {\r\n unit: action.payload\r\n });\r\n };\r\n\r\n resetSorUnit = state => {\r\n return Object.assign({}, state, {\r\n unit: null,\r\n responsiblePerson: []\r\n });\r\n };\r\n\r\n canCreateServiceRequest = (state, action) => {\r\n return Object.assign({}, state, {\r\n canCreateServiceRequest: action.payload.canCreateServiceRequest\r\n });\r\n };\r\n\r\n loadSummaryData = (state, action) => {\r\n return Object.assign({}, state, {\r\n sorSummary: action.payload\r\n });\r\n };\r\n loadSorParty = (state, action) => {\r\n return Object.assign({}, state, {\r\n sorParty: action.payload\r\n });\r\n };\r\n clearSorParty = state => {\r\n return Object.assign({}, state, {\r\n sorParty: {}\r\n });\r\n };\r\n}\r\nexport default new Sor().reducer;\r\n","import { combineReducers } from 'redux';\r\nimport { connectRouter } from 'connected-react-router';\r\nimport { loadingBarReducer } from 'react-redux-loading-bar';\r\nimport { auth } from '@hobs/auth/reducer';\r\nimport { loadingReducer as loading } from '@hobs/utils/loading';\r\nimport attachment from '@hobs/reducers/attachment';\r\nimport odata from '@hobs/reducers/odata';\r\nimport locations from '@hobs/reducers/locations';\r\nimport serviceRequests from '@hobs/reducers/serviceRequests';\r\nimport parties from '@hobs/reducers/parties';\r\nimport phases from '@hobs/reducers/phases';\r\nimport users from '@hobs/reducers/users';\r\nimport units from '@hobs/reducers/units';\r\nimport cor from '@hobs/reducers/cor';\r\nimport discussion from '@hobs/reducers/discussion';\r\nimport customServiceRequests from '@hobs/reducers/customServiceRequests';\r\nimport assignmentServiceRequest from '@hobs/reducers/assignmentServiceRequest';\r\nimport gridSelections from '@hobs/reducers/gridSelections';\r\nimport annex from '@hobs/reducers/annex';\r\nimport exercises from '@hobs/reducers/exercises';\r\nimport exercise from '@hobs/reducers/exercise';\r\nimport approvalSummary from '@hobs/reducers/approvalSummary';\r\nimport transportation from '@hobs/reducers/transportation';\r\nimport mealPlanner from '@hobs/reducers/mealPlanner';\r\nimport tickets from '@hobs/reducers/tickets';\r\nimport activity from '@hobs/reducers/activity';\r\nimport notifications from '@hobs/reducers/notifications';\r\nimport sor from './sor';\r\n\r\nexport default history =>\r\n combineReducers({\r\n auth,\r\n attachment,\r\n exercise,\r\n exercises,\r\n odata,\r\n annex,\r\n router: connectRouter(history),\r\n loadingBar: loadingBarReducer,\r\n loading,\r\n locations,\r\n serviceRequests,\r\n units,\r\n users,\r\n phases,\r\n parties,\r\n sor,\r\n cor,\r\n discussion,\r\n customServiceRequests,\r\n assignmentServiceRequest,\r\n gridSelections,\r\n approvalSummary,\r\n transportation,\r\n mealPlanner,\r\n tickets,\r\n activity,\r\n notifications\r\n });\r\n","import { createStore, applyMiddleware, compose } from 'redux';\r\nimport { routerMiddleware } from 'connected-react-router';\r\nimport thunk from 'redux-thunk';\r\nimport { createBrowserHistory } from 'history';\r\nimport { loadingBarMiddleware } from 'react-redux-loading-bar';\r\nimport rootReducer from './reducers';\r\n\r\nexport const history = createBrowserHistory();\r\n\r\nconst initialState = {};\r\nconst enhancers = [];\r\nconst middleware = [\r\n thunk,\r\n routerMiddleware(history),\r\n loadingBarMiddleware({\r\n promiseTypeSuffixes: ['Request', 'Success', 'Failure']\r\n })\r\n];\r\n\r\nif (process.env.NODE_ENV === 'development') {\r\n const devToolsExtension = window.__REDUX_DEVTOOLS_EXTENSION__;\r\n\r\n if (typeof devToolsExtension === 'function') {\r\n enhancers.push(devToolsExtension());\r\n }\r\n}\r\n\r\nconst composedEnhancers = compose(\r\n applyMiddleware(...middleware),\r\n ...enhancers\r\n);\r\n\r\nconst store = createStore(\r\n rootReducer(history),\r\n initialState,\r\n composedEnhancers\r\n);\r\n\r\nexport default store;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read http://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n // eslint-disable-next-line no-console\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker === null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n // eslint-disable-next-line no-console\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n // eslint-disable-next-line no-console\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n // eslint-disable-next-line no-console\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType !== null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n // eslint-disable-next-line no-console\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import 'react-app-polyfill/ie9';\r\nimport 'react-app-polyfill/stable';\r\nimport '@hobs/polyfill/closest';\r\nimport '@hobs/polyfill/remove';\r\n\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { ConnectedRouter } from 'connected-react-router';\r\nimport i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport store, { history } from './store';\r\nimport App from './containers/App';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport '@progress/kendo-theme-default/dist/all.css';\r\nimport '@hobs/styles/grid.scss';\r\nimport '@hobs/styles/global.scss';\r\n\r\ni18n.use(initReactI18next) // passes i18n down to react-i18next\r\n .init({\r\n resources: {\r\n en: {\r\n translation: require('./translations/en.json')\r\n }\r\n },\r\n lng: 'en',\r\n fallbackLng: 'en',\r\n interpolation: {\r\n escapeValue: false\r\n }\r\n });\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: http://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport { updateToken } from '@hobs/auth/actions';\r\n\r\nimport {\r\n list,\r\n homePage,\r\n terms,\r\n termsAccept,\r\n changeCurrentExerciseId,\r\n remainingDays,\r\n CURRENT\r\n} from '@hobs/constants/exercises';\r\n\r\nexport function getExercises() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('Account/Exercises')\r\n .then(response => {\r\n if (response) {\r\n dispatch(success(response.payload.exercises));\r\n\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: list.REQUEST };\r\n }\r\n function success(exercises) {\r\n return { type: list.SUCCESS, exercises };\r\n }\r\n function failure(error) {\r\n return { type: list.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getCurrentExercise() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('Exercises/current')\r\n .then(response => {\r\n if (response.payload) {\r\n dispatch(success(response.payload));\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CURRENT.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: CURRENT.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: CURRENT.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getExerciseHomePage() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('Exercises/HomePage')\r\n .then(response => {\r\n if (response) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: homePage.REQUEST };\r\n }\r\n function success(page) {\r\n return { type: homePage.SUCCESS, page };\r\n }\r\n function failure(error) {\r\n return { type: homePage.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getExerciseTerms() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('Exercises/Terms')\r\n .then(response => {\r\n if (response) {\r\n dispatch(success(response.payload));\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: terms.REQUEST };\r\n }\r\n function success(page) {\r\n return { type: terms.SUCCESS, page };\r\n }\r\n function failure(error) {\r\n return { type: terms.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function acceptExerciseTerms() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('Users/AgreeToTerms', { method: 'POST' })\r\n .then(response => {\r\n if (response.payload && response.payload.token) {\r\n dispatch(updateToken(response.payload.token));\r\n dispatch(success());\r\n\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: termsAccept.REQUEST };\r\n }\r\n function success() {\r\n return { type: termsAccept.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: termsAccept.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function changeCurrentExercise(id) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`Account/ChangeCurrentExercise/${id}`, {\r\n method: 'POST'\r\n })\r\n .then(response => {\r\n if (response.payload && response.payload.token) {\r\n dispatch(updateToken(response.payload.token));\r\n dispatch(getCurrentExercise());\r\n dispatch(success());\r\n\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: changeCurrentExerciseId.REQUEST };\r\n }\r\n function success() {\r\n return { type: changeCurrentExerciseId.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: changeCurrentExerciseId.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getRemainingDaysObject() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('Exercise/RemainingPhaseDays')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: remainingDays.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: remainingDays.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: remainingDays.FAILURE, error };\r\n }\r\n}\r\n","export { default } from './Loader';\r\n","import jwtDecode from 'jwt-decode';\r\n\r\nexport function IsJsonString(str) {\r\n try {\r\n JSON.parse(str);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport function getTokenData(token) {\r\n try {\r\n return jwtDecode(token);\r\n } catch (e) {\r\n return {};\r\n }\r\n}\r\n\r\nexport function isValidToken(token) {\r\n try {\r\n jwtDecode(token);\r\n } catch (e) {\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n","export const UPLOAD = {\r\n REQUEST: 'Attachments/Upload/Request',\r\n SUCCESS: 'Attachments/Upload/Success',\r\n FAILURE: 'Attachments/Upload/Failure'\r\n};\r\n\r\nexport const SET = {\r\n REQUEST: 'Attachments/Set/Request',\r\n SUCCESS: 'Attachments/Set/Success',\r\n FAILURE: 'Attachments/Set/Failure'\r\n};\r\n\r\nexport const DELETE = {\r\n REQUEST: 'Attachments/Delete/Request',\r\n SUCCESS: 'Attachments/Delete/Success',\r\n FAILURE: 'Attachments/Delete/Failure'\r\n};\r\n\r\nexport const CLEAR = {\r\n REQUEST: 'Attachments/Clear/Request',\r\n SUCCESS: 'Attachments/Clear/Success',\r\n FAILURE: 'Attachments/Clear/Failure'\r\n};\r\n","export const GET = {\r\n REQUEST: 'Transportation/Get/Request',\r\n SUCCESS: 'Transportation/Get/Success',\r\n FAILURE: 'Transportation/Get/Failure'\r\n};\r\n\r\nexport const FOR_SUBMIT = {\r\n REQUEST: 'Transportation/ForSubmit/Request',\r\n SUCCESS: 'Transportation/ForSubmit/Success',\r\n FAILURE: 'Transportation/ForSubmit/Failure'\r\n};\r\n\r\nexport const UPDATE = {\r\n REQUEST: 'Transportation/Update/Request',\r\n SUCCESS: 'Transportation/Update/Success',\r\n FAILURE: 'Transportation/Update/Failure'\r\n};\r\n\r\nexport const RESET = {\r\n SUCCESS: 'Transportation/Reset/Success'\r\n};\r\n\r\nexport const EXPORT_EXCEL = {\r\n REQUEST: 'Transportation/ExportExcel/Request',\r\n SUCCESS: 'Transportation/ExportExcel/Success',\r\n FAILURE: 'Transportation/ExportExcel/Failure'\r\n};\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport { getTokenData } from './utils';\r\nimport { constants } from './constants';\r\n\r\nfunction getApiUrl() {\r\n return process.env.NODE_ENV === 'production' && global.config.baseApiURL\r\n ? global.config.baseApiURL\r\n : process.env.REACT_APP_API_URL;\r\n}\r\n\r\nfunction getMfaSessionTokenName() {\r\n return `mfaSessionToken-${getApiUrl()}`;\r\n}\r\n\r\nexport function login(email, password) {\r\n return dispatch => {\r\n dispatch(request({ email }));\r\n\r\n const API_URL = getApiUrl();\r\n\r\n const mfaSessionToken = localStorage.getItem(getMfaSessionTokenName());\r\n\r\n return fetch(`${API_URL}/Account/Login`, {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ email, password, mfaSessionToken})\r\n })\r\n .then(response => response.json())\r\n .then(response => {\r\n if (response.token) {\r\n localStorage.setItem('token', JSON.stringify(response.token));\r\n dispatch(\r\n success({\r\n ...response,\r\n ...getTokenData(response.token)\r\n })\r\n );\r\n\r\n return { success: true };\r\n } else if (response.isMfaEnabled && !response.isMfaValid && response.mfaUnverifiedToken){\r\n dispatch(failure(response.toString()));\r\n\r\n localStorage.setItem('mfaUnverifiedToken', response.mfaUnverifiedToken);\r\n\r\n return { success: false, isMfaValidationNeeded: true};\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request(user) {\r\n return { type: constants.LOGIN_REQUEST, user };\r\n }\r\n function success(user) {\r\n return { type: constants.LOGIN_SUCCESS, user };\r\n }\r\n function failure(error) {\r\n return { type: constants.LOGIN_FAILURE, error };\r\n }\r\n}\r\n\r\nexport function submitMfaVerificationToken(verificationToken) {\r\n return dispatch => {\r\n const mfaSessionToken = localStorage.getItem(getMfaSessionTokenName());\r\n const body = { verificationToken, mfaSessionToken };\r\n const mfaUnverifiedToken = localStorage.getItem('mfaUnverifiedToken');\r\n\r\n return fetchSecure('Account/submit-verification-token', { method: 'POST', body: body, token: mfaUnverifiedToken})\r\n .then(response => {\r\n if (response.status == 200){\r\n var payload = response.payload;\r\n if (payload.token) {\r\n localStorage.setItem('token', JSON.stringify(payload.token));\r\n localStorage.removeItem('mfaUnverifiedToken');\r\n\r\n dispatch(\r\n success({\r\n ...payload,\r\n ...getTokenData(payload.token)\r\n })\r\n );\r\n\r\n return { success: true };\r\n }\r\n }\r\n\r\n return { success: false, message: response.payload.message, lockoutEnabled: response.payload.lockoutEnabled }\r\n });\r\n\r\n function success(user) {\r\n return { type: constants.LOGIN_SUCCESS, user };\r\n }\r\n }\r\n};\r\n\r\nexport function requestMfaTokenByEmail() {\r\n return () => {\r\n const mfaSessionToken = localStorage.getItem(getMfaSessionTokenName());\r\n const body = { mfaSessionToken };\r\n const mfaUnverifiedToken = localStorage.getItem('mfaUnverifiedToken');\r\n\r\n return fetchSecure('Account/send-verification-token', { method: 'POST', body: body, token: mfaUnverifiedToken})\r\n .then(response => {\r\n if (response.status == 200){\r\n localStorage.setItem(getMfaSessionTokenName(), response.payload.mfaSessionToken);\r\n return { success: true }\r\n }\r\n return { success: false }\r\n });\r\n }\r\n};\r\n\r\nexport function reset(userId, resetToken, password, confirmPassword) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n const API_URL = getApiUrl();\r\n\r\n return fetch(`${API_URL}/Account/ChangePassword`, {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({ userId, resetToken, password, confirmPassword })\r\n })\r\n .then(async response => {\r\n return {\r\n status: response.status,\r\n payload: await response.text()\r\n };\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n localStorage.removeItem('token');\r\n\r\n dispatch(success());\r\n return {\r\n success: true,\r\n status: response.status,\r\n payload: response.payload\r\n };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return {\r\n success: false,\r\n status: response.status,\r\n payload: JSON.parse(response.payload)\r\n };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n\r\n return {\r\n success: false,\r\n payload: {}\r\n };\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: constants.RESET_REQUEST };\r\n }\r\n function success() {\r\n return { type: constants.RESET_SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: constants.RESET_FAILUTER, error };\r\n }\r\n}\r\n\r\nexport function updateToken(token) {\r\n return dispatch => {\r\n localStorage.setItem('token', JSON.stringify(token));\r\n dispatch({\r\n type: constants.LOGIN_UPDATE,\r\n user: {\r\n token,\r\n ...getTokenData(token)\r\n }\r\n });\r\n };\r\n}\r\n\r\nexport function logout() {\r\n return dispatch => {\r\n localStorage.removeItem('token');\r\n\r\n return fetchSecure('Account/Logout', { method: 'POST' })\r\n .then(() => {\r\n dispatch({ type: constants.LOGOUT });\r\n })\r\n .catch(() => {\r\n dispatch({ type: constants.LOGOUT });\r\n });\r\n };\r\n}\r\n","export const list = {\r\n REQUEST: 'OData/Request',\r\n SUCCESS: 'OData/Success',\r\n FAILURE: 'OData/Failure',\r\n RESET: 'OData/Reset'\r\n};\r\n\r\nexport const XLS = {\r\n REQUEST: 'ODataXls/Request',\r\n SUCCESS: 'ODataXls/Success',\r\n FAILURE: 'ODataXls/Failure'\r\n};\r\n","export const GET = {\r\n REQUEST: 'Phases/Get/Request',\r\n SUCCESS: 'Phases/Get/Success',\r\n FAILURE: 'Phases/Get/Failure'\r\n};\r\n\r\nexport const GET_TYPES = {\r\n REQUEST: 'PhaseTypes/Get/Request',\r\n SUCCESS: 'PhaseTypes/Get/Success',\r\n FAILURE: 'PhaseTypes/Get/Failure'\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form-item\":\"Input_form-item__3vASi\",\"form-error-input\":\"Input_form-error-input__2Fh23\",\"form-error\":\"Input_form-error__2gne_\",\"form-item-borderless\":\"Input_form-item-borderless__RA9tS\",\"no-margin\":\"Input_no-margin__3PM-y\",\"error\":\"Input_error__3UXZl\",\"error-label\":\"Input_error-label__2P_DB\",\"large\":\"Input_large__2aUe0\",\"with-icon\":\"Input_with-icon__3pdjz\",\"search\":\"Input_search__38qiW\",\"search-tiny\":\"Input_search-tiny__mugSJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"InformationToolTip_content__ONpzb\",\"ToolTip\":\"InformationToolTip_ToolTip__2Okbl\",\"FloatRight\":\"InformationToolTip_FloatRight__eGbA-\",\"WithMargins\":\"InformationToolTip_WithMargins__2-_aB\",\"Icon\":\"InformationToolTip_Icon__Ntw5-\",\"popover--popover\":\"InformationToolTip_popover--popover__e5CWJ\",\"ShowHide\":\"InformationToolTip_ShowHide__3NrLH\",\"left\":\"InformationToolTip_left__1LJQS\",\"right\":\"InformationToolTip_right__39wDy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"units\":\"SorUnits_units__2-ffE\",\"units--empty\":\"SorUnits_units--empty__1aTlk\",\"units--empty--message\":\"SorUnits_units--empty--message__a2Clw\",\"left\":\"SorUnits_left__pWgYC\",\"header\":\"SorUnits_header__3gH4f\",\"right\":\"SorUnits_right__1YxWl\",\"overlayWrapper\":\"SorUnits_overlayWrapper__36qfg\",\"overlayBackdrop\":\"SorUnits_overlayBackdrop__2YOfr\",\"tree\":\"SorUnits_tree__2jesm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menu\":\"ColumnMenu_menu__3Cyo7\",\"actions\":\"ColumnMenu_actions__1gxWB\",\"custom-filter\":\"ColumnMenu_custom-filter__3PFD7\",\"custom-filter--content\":\"ColumnMenu_custom-filter--content__4jzq4\",\"custom-filter--options\":\"ColumnMenu_custom-filter--options__fQc89\",\"custom-filter--actions\":\"ColumnMenu_custom-filter--actions__10Zum\",\"custom-filter--popover\":\"ColumnMenu_custom-filter--popover__1c3lF\",\"label\":\"ColumnMenu_label__2pyBk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"page-header\":\"PageHeader_page-header__XSYWE\",\"back-link\":\"PageHeader_back-link__1lWi5\",\"unit\":\"PageHeader_unit__TfWds\",\"parent\":\"PageHeader_parent__1WnQZ\",\"link\":\"PageHeader_link__3ri86\",\"order\":\"PageHeader_order__2oyu5\"};","export const GET = {\r\n REQUEST: 'ApprovalSummary/GET/Request',\r\n SUCCESS: 'ApprovalSummary/GET/Success',\r\n FAILURE: 'ApprovalSummary/GET/Failure'\r\n};\r\n\r\nexport const APPROVE = {\r\n REQUEST: 'ApprovalSummary/APPROVE/Request',\r\n SUCCESS: 'ApprovalSummary/APPROVE/Success',\r\n FAILURE: 'ApprovalSummary/APPROVE/Failure'\r\n};\r\n\r\nexport const CANCEL_APPROVAL = {\r\n REQUEST: 'ApprovalSummary/CANCEL_APPROVAL/Request',\r\n SUCCESS: 'ApprovalSummary/CANCEL_APPROVAL/Success',\r\n FAILURE: 'ApprovalSummary/CANCEL_APPROVAL/Failure'\r\n};\r\n\r\nexport const CLEAR_APPROVAL_SUMMARY = {\r\n REQUEST: 'ApprovalSummary/CLEAR_APPROVAL_SUMMARY/Request',\r\n SUCCESS: 'ApprovalSummary/CLEAR_APPROVAL_SUMMARY/Success',\r\n FAILURE: 'ApprovalSummary/CLEAR_APPROVAL_SUMMARY/Failure'\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"activeTabWrapper\":\"Tabs_activeTabWrapper__2fQ6N\",\"noBackgroundWrapper\":\"Tabs_noBackgroundWrapper__uxxIa\",\"tabsList\":\"Tabs_tabsList__23W3W\",\"tab\":\"Tabs_tab__3e8rm\",\"active\":\"Tabs_active__1ge4F\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"panel\":\"Panel_panel__e4lkF\",\"arrow\":\"Panel_arrow__1deqG\",\"heading\":\"Panel_heading__3Dz_c\",\"left\":\"Panel_left__zCKNf\",\"right\":\"Panel_right__1p0fr\",\"footnote\":\"Panel_footnote__30UXJ\",\"content\":\"Panel_content__1wyrt\"};","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport classnames from 'classnames';\r\nimport Styles from './Buttons.module.scss';\r\n\r\nexport const GhostButton = ({\r\n type = 'button',\r\n size,\r\n children,\r\n onClick,\r\n disabled,\r\n to,\r\n title = '',\r\n iconLeft,\r\n large,\r\n className,\r\n danger\r\n}) => {\r\n const classNames = classnames(Styles['ghost-button'], {\r\n [Styles['with-icon']]: iconLeft,\r\n [Styles['large']]: large || size === 'large',\r\n [Styles['small']]: size === 'small',\r\n [Styles.danger]: danger,\r\n [className]: className\r\n });\r\n\r\n if (to && !disabled) {\r\n return (\r\n \r\n {iconLeft ? iconLeft : null}\r\n {children}\r\n \r\n );\r\n }\r\n return (\r\n \r\n {iconLeft ? iconLeft : null}\r\n {children}\r\n \r\n );\r\n};\r\n\r\nGhostButton.propTypes = {\r\n type: PropTypes.string,\r\n className: PropTypes.string,\r\n large: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n danger: PropTypes.bool,\r\n iconLeft: PropTypes.element,\r\n size: PropTypes.oneOf(['small', 'large', '']),\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object,\r\n PropTypes.string\r\n ]),\r\n onClick: PropTypes.func,\r\n title: PropTypes.string,\r\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\r\n};\r\n\r\nexport const RaisedButton = ({\r\n type,\r\n children,\r\n onClick,\r\n href,\r\n title = '',\r\n to,\r\n iconLeft,\r\n disabled = false,\r\n large,\r\n size,\r\n className\r\n}) => {\r\n const classNames = classnames(Styles['raised-button'], {\r\n [Styles['with-icon']]: iconLeft,\r\n [Styles['large']]: large || size === 'large',\r\n [Styles['small']]: size === 'small',\r\n [className]: className\r\n });\r\n\r\n if (to && !disabled) {\r\n return (\r\n \r\n {iconLeft ? iconLeft : null}\r\n {children}\r\n \r\n );\r\n }\r\n if (href) {\r\n return (\r\n \r\n {iconLeft ? iconLeft : null}\r\n {children}\r\n \r\n );\r\n }\r\n return (\r\n \r\n {iconLeft ? iconLeft : null}\r\n {children}\r\n \r\n );\r\n};\r\n\r\nRaisedButton.propTypes = {\r\n title: PropTypes.string,\r\n large: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n href: PropTypes.string,\r\n type: PropTypes.string,\r\n iconLeft: PropTypes.element,\r\n size: PropTypes.oneOf(['small', 'large', '']),\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object,\r\n PropTypes.string,\r\n PropTypes.number\r\n ]),\r\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\r\n onClick: PropTypes.func,\r\n className: PropTypes.string\r\n};\r\n\r\nexport const InactiveButton = ({ type, children, onClick }) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nInactiveButton.propTypes = {\r\n type: PropTypes.string,\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object,\r\n PropTypes.string\r\n ]),\r\n onClick: PropTypes.func\r\n};\r\n\r\nexport const SquareButton = ({ size, type, children, onClick }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nSquareButton.propTypes = {\r\n size: PropTypes.oneOf(['small', '']),\r\n type: PropTypes.string,\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object,\r\n PropTypes.string\r\n ]),\r\n onClick: PropTypes.func\r\n};\r\n\r\nexport const SquareGhostButton = ({ size, type, children, onClick }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nSquareGhostButton.propTypes = {\r\n size: PropTypes.oneOf(['small', '']),\r\n type: PropTypes.string,\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object,\r\n PropTypes.string\r\n ]),\r\n onClick: PropTypes.func\r\n};\r\n","export {\r\n GhostButton,\r\n RaisedButton,\r\n SquareButton,\r\n SquareGhostButton\r\n} from './Buttons';\r\n","export const GETNOTIFICATIONS = {\r\n REQUEST: 'Notifications/Request',\r\n SUCCESS: 'Notifications/Success',\r\n FAILURE: 'Notifications/Failure'\r\n}\r\n\r\nexport const RESETNOTIFICATIONS = {\r\n SUCCESS: 'Notifications/Reset'\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"phase\":\"Phase_phase__1UTPR\",\"active-notice\":\"Phase_active-notice__3p8t7\",\"complete\":\"Phase_complete__3HJ8u\",\"circle\":\"Phase_circle__3cxHT\",\"active\":\"Phase_active__2lGBw\",\"inactive\":\"Phase_inactive__29JGY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form-item\":\"Dropdown_form-item__1UuK9\",\"no-margin\":\"Dropdown_no-margin__1y0_Y\",\"select\":\"Dropdown_select__2qPVO\",\"disabled\":\"Dropdown_disabled__2YM6I\",\"arrow\":\"Dropdown_arrow__tZky5\",\"large\":\"Dropdown_large__1e9fe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fixed\":\"Dialog_fixed__2yVPe\",\"draggable\":\"Dialog_draggable__2Us2t\",\"rnd\":\"Dialog_rnd__3-V3J\",\"dialog\":\"Dialog_dialog__3ILp8\",\"backdrop\":\"Dialog_backdrop__sub5N\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"autocomplete\":\"Autocomplete_autocomplete__1blA4\",\"popover\":\"Autocomplete_popover__2ndps\",\"popover-empty\":\"Autocomplete_popover-empty__169zM\",\"item\":\"Autocomplete_item__icfui\",\"no-results\":\"Autocomplete_no-results__5dsVK\",\"reset\":\"Autocomplete_reset__6QV5C\",\"input-wrapper\":\"Autocomplete_input-wrapper__2HdqS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"DropZone_container__2jIU1\",\"info\":\"DropZone_info__oXFR7\",\"loader-backdrop\":\"DropZone_loader-backdrop__kGXMP\",\"attachment-loader\":\"DropZone_attachment-loader__1_RrU\",\"zone\":\"DropZone_zone__1I6zk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"DateInput_input__1PCbJ\",\"no-margin\":\"DateInput_no-margin__1rjyQ\",\"icon\":\"DateInput_icon__1u5xD\",\"datepicker\":\"DateInput_datepicker__THf8S\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form\":\"SorForm_form__2spWf\",\"statusField\":\"SorForm_statusField__2qClw\",\"twoColumns\":\"SorForm_twoColumns__2M3bj\",\"textField\":\"SorForm_textField__1jGm0\",\"buttons\":\"SorForm_buttons__3Gkjy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"Header_header__1061j\",\"main\":\"Header_main__2XpkC\",\"loadingBar\":\"Header_loadingBar__1itAu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"submenu\":\"Submenu_submenu__1tnPT\",\"main\":\"Submenu_main__3qaV9\",\"link-container\":\"Submenu_link-container__cEW_p\",\"active-link\":\"Submenu_active-link__1LwhU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"homepage-wrapper\":\"Homepage_homepage-wrapper__2X22-\",\"section-title\":\"Homepage_section-title__23XjO\",\"content-box\":\"Homepage_content-box__2lIdV\",\"content\":\"Homepage_content__2KPMh\",\"title\":\"Homepage_title__307sL\"};","export { _fetch } from './fetch';\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"InfoPanel_container__1e-nW\",\"title\":\"InfoPanel_title__7b_ie\",\"expanded\":\"InfoPanel_expanded__2Aj_9\",\"content\":\"InfoPanel_content__3o2Dq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"numeric-input\":\"NumericInput_numeric-input__2HeDv\",\"no-margin\":\"NumericInput_no-margin__1f6UC\",\"strike\":\"NumericInput_strike__modra\",\"input\":\"NumericInput_input__3Bm6e\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"alert\":\"Alert_alert__1266w\",\"content\":\"Alert_content__2sT1f\",\"info\":\"Alert_info__2wz_x\",\"icon\":\"Alert_icon__vhEke\",\"success\":\"Alert_success__3Inha\",\"error\":\"Alert_error__1j8s-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"service-request-footer\":\"ServiceRequestFooter_service-request-footer__2yDhm\",\"service-request-message\":\"ServiceRequestFooter_service-request-message__I1ora\",\"service-request-message--notification\":\"ServiceRequestFooter_service-request-message--notification__2mURj\",\"service-request-controls\":\"ServiceRequestFooter_service-request-controls__3qBzA\"};","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Styles from './Headings.module.scss';\r\n\r\nexport const H1 = ({ children }) => {\r\n return

{children}

;\r\n};\r\n\r\nH1.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport const H2 = ({ children }) => {\r\n return

{children}

;\r\n};\r\n\r\nH2.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport const H5 = ({ children }) => {\r\n return
{children}
;\r\n};\r\n\r\nH5.propTypes = {\r\n children: PropTypes.any\r\n};\r\n","export * from './Headings';\r\n","import React from 'react';\r\n\r\nimport Styles from './Loader.module.scss';\r\n\r\nconst Loader = () => {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Loader;\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"h1\":\"Headings_h1__1vJUR\",\"h2\":\"Headings_h2__j5ErY\",\"h5\":\"Headings_h5__2KKdi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tooltip--content\":\"Tooltip_tooltip--content__1PWb9\",\"tooltip--icon\":\"Tooltip_tooltip--icon__1hvry\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"label\":\"InputLabel_label__3uzjK\",\"labelWrapper\":\"InputLabel_labelWrapper__2e2YO\",\"history-indication\":\"InputLabel_history-indication__6VBhr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form\":\"LoginTokenForm_form__1m4Dt\",\"error-label\":\"LoginTokenForm_error-label__2Otio\",\"buttons\":\"LoginTokenForm_buttons__1qYpl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"confirm\":\"Confirm_confirm__1B27p\",\"inline-buttons\":\"Confirm_inline-buttons__2Ij1u\",\"message\":\"Confirm_message__1cUXw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"Switch_wrapper__3xnB8\",\"switch\":\"Switch_switch__29WG2\",\"dark\":\"Switch_dark__1MXnO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"SorCor_wrapper__2y7GE\",\"top-wrapper\":\"SorCor_top-wrapper__3DcT5\",\"bottom-wrapper\":\"SorCor_bottom-wrapper__OSBfv\",\"table-wrapper\":\"SorCor_table-wrapper__1yGt7\",\"pax\":\"SorCor_pax__2Ebly\",\"table\":\"SorCor_table__1OssY\",\"row\":\"SorCor_row__1xTsE\",\"unit-group\":\"SorCor_unit-group__bKFF-\",\"unit-name\":\"SorCor_unit-name__FIPMz\",\"sub-unit\":\"SorCor_sub-unit__MB2zX\",\"sub-component\":\"SorCor_sub-component__2R3io\",\"title\":\"SorCor_title__1TqRn\",\"equipment\":\"SorCor_equipment__1QR1Y\",\"total\":\"SorCor_total__1cigC\",\"input-wrapper\":\"SorCor_input-wrapper__1gATi\",\"equipment-input-wrapper\":\"SorCor_equipment-input-wrapper__15FAY\",\"date\":\"SorCor_date__2HSKr\"};","export const AdditionalInformation = {\r\n REQUEST: 'ServiceRequests/AdditionalInformation/Request',\r\n SUCCESS: 'ServiceRequests/AdditionalInformation/Success',\r\n FAILURE: 'ServiceRequests/AdditionalInformation/Failure'\r\n};\r\n\r\nexport const CalculateByDays = {\r\n REQUEST: 'ServiceRequests/CalculateByDays/Request',\r\n SUCCESS: 'ServiceRequests/CalculateByDays/Success',\r\n FAILURE: 'ServiceRequests/CalculateByDays/Failure'\r\n};\r\n\r\nexport const CLEAR_COSTS = {\r\n REQUEST: 'ServiceRequests/ClearCosts/Request',\r\n SUCCESS: 'ServiceRequests/ClearCosts/Success',\r\n FAILURE: 'ServiceRequests/ClearCosts/Failure'\r\n};\r\n\r\nexport const ForSubmit = {\r\n REQUEST: 'ServiceRequests/ForSubmit/Request',\r\n SUCCESS: 'ServiceRequests/ForSubmit/Success',\r\n FAILURE: 'ServiceRequests/ForSubmit/Failure'\r\n};\r\n\r\nexport const CREATE = {\r\n REQUEST: 'ServiceRequests/Create/Request',\r\n SUCCESS: 'ServiceRequests/Create/Success',\r\n FAILURE: 'ServiceRequests/Create/Failure'\r\n};\r\n\r\nexport const GET = {\r\n REQUEST: 'ServiceRequests/Get/Request',\r\n SUCCESS: 'ServiceRequests/Get/Success',\r\n FAILURE: 'ServiceRequests/Get/Failure'\r\n};\r\n\r\nexport const UPDATE = {\r\n REQUEST: 'ServiceRequests/Update/Request',\r\n SUCCESS: 'ServiceRequests/Update/Success',\r\n FAILURE: 'ServiceRequests/Update/Failure'\r\n};\r\n\r\nexport const REMOVE = {\r\n REQUEST: 'ServiceRequests/Remove/Request',\r\n SUCCESS: 'ServiceRequests/Remove/Success',\r\n FAILURE: 'ServiceRequests/Remove/Failure'\r\n};\r\n\r\nexport const GETCATEGORYSERVICEREQUEST = {\r\n REQUEST: 'ServiceRequests/GetCategoryServiceRequest/Request',\r\n SUCCESS: 'ServiceRequests/GetCategoryServiceRequest/Success',\r\n FAILURE: 'ServiceRequests/GetCategoryServiceRequest/Failure'\r\n};\r\n\r\nexport const GETCATEGORYSUBITEMS = {\r\n REQUEST: 'ServiceRequests/GetCategorySubitems/Request',\r\n SUCCESS: 'ServiceRequests/GetCategorySubitems/Success',\r\n FAILURE: 'ServiceRequests/GetCategorySubitems/Failure'\r\n};\r\n\r\nexport const CREATECATEGORYSPLIT = {\r\n REQUEST: 'ServiceRequests/CreateCategorySplit/Request',\r\n SUCCESS: 'ServiceRequests/CreateCategorySplit/Success',\r\n FAILURE: 'ServiceRequests/CreateCategorySplit/Failure'\r\n};\r\n\r\nexport const RESOLVECATEGORYREQUEST = {\r\n REQUEST: 'ServiceRequests/ResolveCategoryRequest/Request',\r\n SUCCESS: 'ServiceRequests/ResolveCategoryRequest/Success',\r\n FAILURE: 'ServiceRequests/ResolveCategoryRequest/Failure'\r\n};\r\n\r\nexport const REOPENCATEGORYREQUEST = {\r\n REQUEST: 'ServiceRequests/ReopenCategoryRequest/Request',\r\n SUCCESS: 'ServiceRequests/ReopenCategoryRequest/Success',\r\n FAILURE: 'ServiceRequests/ReopenCategoryRequest/Failure'\r\n};\r\n\r\nexport const GET_FOOTER = {\r\n REQUEST: 'ServiceRequests/GetFooter/Request',\r\n SUCCESS: 'ServiceRequests/GetFooter/Success',\r\n FAILURE: 'ServiceRequests/GetFooter/Failure'\r\n};\r\n\r\nexport const CALCULATE_BY_DAYS_FROM_CATALOG = {\r\n REQUEST: 'ServiceRequests/CalculateByDaysForCatalog/Request',\r\n SUCCESS: 'ServiceRequests/CalculateByDaysForCatalog/Success',\r\n FAILURE: 'ServiceRequests/CalculateByDaysForCatalog/Failure'\r\n};\r\n\r\nexport const CLEAR_FOOTER = {\r\n SUCCESS: 'ServiceRequests/ClearFooter/Success'\r\n};\r\n\r\nexport const CONFIRM = {\r\n REQUEST: 'ServiceRequests/Confirm/Request',\r\n SUCCESS: 'ServiceRequests/Confirm/Success',\r\n FAILURE: 'ServiceRequests/Confirm/Failure'\r\n};\r\n\r\nexport const GET_INTERNAL_PENDING_FLAG = {\r\n REQUEST: 'ServiceRequests/GetInternalPendingFlag/Request',\r\n SUCCESS: 'ServiceRequests/GetInternalPendingFlag/Success',\r\n FAILURE: 'ServiceRequests/GetInternalPendingFlag/Failure'\r\n};\r\n\r\nexport const UPDATE_INTERNAL_PENDING_FLAG = {\r\n REQUEST: 'ServiceRequests/UpdateInternalPendingFlag/Request',\r\n SUCCESS: 'ServiceRequests/UpdateInternalPendingFlag/Success',\r\n FAILURE: 'ServiceRequests/UpdateInternalPendingFlag/Failure'\r\n};\r\n\r\nexport const UPDATE_ACTIVITY = {\r\n REQUEST: 'ServiceRequests/UpdateActivity/Request',\r\n SUCCESS: 'ServiceRequests/UpdateActivity/Success',\r\n FAILURE: 'ServiceRequests/UpdateActivity/Failure'\r\n};\r\n\r\nexport const GET_EXCLUDE_FROM_FSOR_CONFIRMATION = {\r\n REQUEST: 'ServiceRequests/GetExcludeFromFsorConfirmation/Request',\r\n SUCCESS: 'ServiceRequests/GetExcludeFromFsorConfirmation/Success',\r\n FAILURE: 'ServiceRequests/GetExcludeFromFsorConfirmation/Failure'\r\n};\r\n\r\nexport const UPDATE_EXCLUDE_FROM_FSOR_CONFIRMATION = {\r\n REQUEST: 'ServiceRequests/ExcludeFromFsorConfirmation/Request',\r\n SUCCESS: 'ServiceRequests/ExcludeFromFsorConfirmation/Success',\r\n FAILURE: 'ServiceRequests/ExcludeFromFsorConfirmation/Failure'\r\n};\r\n","export const UNITS = {\r\n REQUEST: 'StatementOfRequirements/GetUnits/Request',\r\n SUCCESS: 'StatementOfRequirements/GetUnits/Success',\r\n FAILURE: 'StatementOfRequirements/GetUnits/Failure'\r\n};\r\nexport const UNIT = {\r\n REQUEST: 'StatementOfRequirements/GetUnit/Request',\r\n SUCCESS: 'StatementOfRequirements/GetUnit/Success',\r\n FAILURE: 'StatementOfRequirements/GetUnit/Failure',\r\n RESET: 'StatementOfRequirements/GetUnit/Reset'\r\n};\r\nexport const ADD = {\r\n REQUEST: 'StatementOfRequirements/AddUnit/Request',\r\n SUCCESS: 'StatementOfRequirements/AddUnit/Success',\r\n FAILURE: 'StatementOfRequirements/AddUnit/Failure'\r\n};\r\nexport const UPDATE = {\r\n REQUEST: 'StatementOfRequirements/UpdateUnit/Request',\r\n SUCCESS: 'StatementOfRequirements/UpdateUnit/Success',\r\n FAILURE: 'StatementOfRequirements/UpdateUnit/Failure'\r\n};\r\nexport const UNITSTATICDATA = {\r\n REQUEST: 'StatementOfRequirements/GetUnitStaticData/Request',\r\n SUCCESS: 'StatementOfRequirements/GetUnitStaticData/Success',\r\n FAILURE: 'StatementOfRequirements/GetUnitStaticData/Failure'\r\n};\r\nexport const REMOVE = {\r\n REQUEST: 'StatementOfRequirements/RemoveUnit/Request',\r\n SUCCESS: 'StatementOfRequirements/RemoveUnit/Success',\r\n FAILURE: 'StatementOfRequirements/RemoveUnit/Failure'\r\n};\r\nexport const FINANCE = {\r\n REQUEST: 'StatementOfRequirements/GetFinanceData/Request',\r\n SUCCESS: 'StatementOfRequirements/GetFinanceData/Success',\r\n FAILURE: 'StatementOfRequirements/GetFinanceData/Failure'\r\n};\r\nexport const UPDATEFINANCEDATA = {\r\n REQUEST: 'StatementOfRequirements/UpdateFinanceData/Request',\r\n SUCCESS: 'StatementOfRequirements/UpdateFinanceData/Success',\r\n FAILURE: 'StatementOfRequirements/UpdateFinanceData/Failure'\r\n};\r\nexport const WHOCANCONFIRMSOR = {\r\n REQUEST: 'StatementOfRequirements/WhoCanConfirmSor/Request',\r\n SUCCESS: 'StatementOfRequirements/WhoCanConfirmSor/Success',\r\n FAILURE: 'StatementOfRequirements/WhoCanConfirmSor/Failure'\r\n};\r\nexport const PHASECHANGE = {\r\n REQUEST: 'StatementOfRequirements/PhaseChange/Request',\r\n SUCCESS: 'StatementOfRequirements/PhaseChange/Success',\r\n FAILURE: 'StatementOfRequirements/PhaseChange/Failure'\r\n};\r\nexport const CLEARFINANCEDATA = {\r\n SUCCESS: 'StatementOfRequirements/ClearFinanceData/Success',\r\n FAILURE: 'StatementOfRequirements/ClearFinanceData/Failure'\r\n};\r\nexport const GET = {\r\n REQUEST: 'StatementOfRequirements/Get/Request',\r\n SUCCESS: 'StatementOfRequirements/Get/Success',\r\n FAILURE: 'StatementOfRequirements/Get/Failure'\r\n};\r\nexport const CONFIRM = {\r\n REQUEST: 'StatementOfRequirements/Confirm/Request',\r\n SUCCESS: 'StatementOfRequirements/Confirm/Success',\r\n FAILURE: 'StatementOfRequirements/Confirm/Failure'\r\n};\r\nexport const EXPORT = {\r\n REQUEST: 'StatementOfRequirements/ExportSor/Request',\r\n SUCCESS: 'StatementOfRequirements/ExportSor/Success',\r\n FAILURE: 'StatementOfRequirements/ExportSor/Failure'\r\n};\r\nexport const GET_SOR_SR = {\r\n REQUEST: 'StatementOfRequirements/ServiceRequest/Request',\r\n SUCCESS: 'StatementOfRequirements/ServiceRequest/Success',\r\n FAILURE: 'StatementOfRequirements/ServiceRequest/Failure'\r\n};\r\nexport const GETSORPARTY = {\r\n REQUEST: 'StatementOfRequirements/GetSorParty/Request',\r\n SUCCESS: 'StatementOfRequirements/GetSorParty/Success',\r\n FAILURE: 'StatementOfRequirements/GetSorParty/Failure'\r\n};\r\nexport const CLEAR_SOR_PARTY = {\r\n SUCCESS: 'StatementOfRequirements/ClearSorParty/Success'\r\n};\r\nexport const SUMMARY = {\r\n REQUEST: 'StatementOfRequirements/Summary/Request',\r\n SUCCESS: 'StatementOfRequirements/Summary/Success',\r\n FAILURE: 'StatementOfRequirements/Summary/Failure'\r\n};\r\nexport const CONFIRM_ISOR = {\r\n REQUEST: 'StatementOfRequirements/ConfirmIsor/Request',\r\n SUCCESS: 'StatementOfRequirements/ConfirmIsor/Success',\r\n FAILURE: 'StatementOfRequirements/ConfirmIsor/Failure'\r\n};\r\nexport const CANCREATESERVICEREQUEST = {\r\n REQUEST: 'StatementOfRequirements/CanCreateServiceRequest/Request',\r\n SUCCESS: 'StatementOfRequirements/CanCreateServiceRequest/Success',\r\n FAILURE: 'StatementOfRequirements/CanCreateServiceRequest/Failure'\r\n};\r\nexport const CONFIRM_FSOR = {\r\n REQUEST: 'StatementOfRequirements/ConfirmFsor/Request',\r\n SUCCESS: 'StatementOfRequirements/ConfirmFsor/Success',\r\n FAILURE: 'StatementOfRequirements/ConfirmFsor/Failure'\r\n};\r\nexport const VALIDATE_CONFIRM_FSOR = {\r\n REQUEST: 'StatementOfRequirements/ValidateConfirmFsor/Request',\r\n SUCCESS: 'StatementOfRequirements/ValidateConfirmFsor/Success',\r\n FAILURE: 'StatementOfRequirements/ValidateConfirmFsor/Failure'\r\n};\r\nexport const FREEZE = {\r\n REQUEST: 'StatementOfRequirements/Freeze/Request',\r\n SUCCESS: 'StatementOfRequirements/Freeze/Success',\r\n FAILURE: 'StatementOfRequirements/Freeze/Failure'\r\n};\r\nexport const UPDATE_ALL_SORS_FROZEN_STATE = {\r\n REQUEST: 'StatementOfRequirements/Frozen/Request',\r\n SUCCESS: 'StatementOfRequirements/Frozen/Success',\r\n FAILURE: 'StatementOfRequirements/Frozen/Failure'\r\n};\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"NotFound_wrapper__2y_0b\",\"content\":\"NotFound_content__1rSAv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"Icon_icon__1yeWL\",\"withIndication\":\"Icon_withIndication__2SYR9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"error-label\":\"FormError_error-label__2Lh60\",\"error\":\"FormError_error__1yvGI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form\":\"LoginForm_form__36Tk_\",\"error-label\":\"LoginForm_error-label__1usNE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form\":\"ResetForm_form__Iy6Ra\",\"error-label\":\"ResetForm_error-label__ea2Uf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"indicator\":\"Indicator_indicator__FIc04\",\"indicator-wrapper\":\"Indicator_indicator-wrapper__2NTAi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textarea\":\"Textarea_textarea__liMTU\",\"error\":\"Textarea_error__3v2RW\",\"borderless\":\"Textarea_borderless__3tKUM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"file\":\"File_file__3nJku\",\"remove\":\"File_remove__XCRAw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"PageActions_container__2TVX1\",\"wrapper\":\"PageActions_wrapper__2qaBd\"};","export class BaseReducer {\r\n actionMap = {};\r\n defaultState = {};\r\n /**\r\n * Default state should be provided from child class\r\n * @param defaultState\r\n */\r\n constructor(defaultState) {\r\n if (defaultState === undefined) {\r\n throw new Error('Default state should be provided');\r\n }\r\n this.actionMap = {};\r\n this.reducer = this.reducer.bind(this);\r\n this.defaultState = defaultState;\r\n }\r\n\r\n /**\r\n *\r\n * @param state\r\n * @param action\r\n * @returns {*}\r\n */\r\n reducer(state, action) {\r\n state = state || this.defaultState;\r\n const actionResponse = this.actionMap[action.type];\r\n return actionResponse ? actionResponse(state, action) : state;\r\n }\r\n}\r\n","export * from './baseReducer';\r\n","import React from 'react';\r\n\r\nexport const ServiceRequestNavContext = React.createContext({\r\n serviceRequestNavigation: null,\r\n orderId: null,\r\n serviceRequestId: null,\r\n previousGridPosition: {\r\n navigationOrigin: null,\r\n windowScrollOffset: null,\r\n dataState: null,\r\n selectedAnnex: null,\r\n savedQuickSearch: null\r\n },\r\n setServiceRequestNavigation: () => {},\r\n setServiceRequestId: () => {},\r\n setOrderId: () => {},\r\n setPreviousGridPosition: () => {},\r\n clearPreviousPosition: () => {},\r\n clearSelectedAnnex: () => {},\r\n clearSavedQuickSearch: () => {},\r\n clearSavedDataState: () => {}\r\n});\r\n","export { ServiceRequestNavContext } from './ServiceRequestNavContext';\r\n","import React, { Component } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport Loader from '@hobs/components/Loader';\r\nimport propTypes from 'prop-types';\r\nimport ErrorBoundaries from '@hobs/components/ErrorBoundaries';\r\nimport { ServiceRequestNavContext } from '@hobs/components/ServiceRequestNavContext';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport { getConfig } from '@hobs/utils/config';\r\nimport { getExercises, getCurrentExercise } from '../../actions/exercises';\r\nimport Routes from '../../routes';\r\nimport './App.scss';\r\n\r\nclass App extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.setServiceRequestNavigation = value => {\r\n this.setState({\r\n serviceRequestNavigation: value,\r\n serviceRequestId: null,\r\n orderId: null\r\n });\r\n };\r\n this.setServiceRequestId = value => {\r\n this.setState({\r\n serviceRequestId: value,\r\n orderId: null\r\n });\r\n };\r\n this.setOrderId = value => {\r\n this.setState({\r\n serviceRequestId: null,\r\n orderId: value\r\n });\r\n };\r\n this.setPreviousGridPosition = (\r\n dataState,\r\n windowScrollOffset,\r\n selectedAnnex,\r\n quickSearch,\r\n navigationOrigin\r\n ) => {\r\n this.setState({\r\n previousGridPosition: {\r\n navigationOrigin,\r\n windowScrollOffset,\r\n dataState,\r\n selectedAnnex,\r\n savedQuickSearch: quickSearch\r\n }\r\n });\r\n };\r\n this.clearSelectedAnnex = () => {\r\n this.setState({\r\n previousGridPosition: {\r\n selectedAnnex: null\r\n }\r\n });\r\n };\r\n this.clearSavedQuickSearch = () => {\r\n this.setState({\r\n previousGridPosition: {\r\n savedQuickSearch: null\r\n }\r\n });\r\n };\r\n this.clearPreviousPosition = () => {\r\n this.setState({\r\n previousGridPosition: {\r\n navigationOrigin: null,\r\n windowScrollOffset: null,\r\n dataState: null,\r\n selectedAnnex: null,\r\n savedQuickSearch: null\r\n }\r\n });\r\n };\r\n\r\n this.clearSavedDataState = () => {\r\n this.setState({\r\n previousGridPosition: {\r\n ...this.state.previousGridPosition,\r\n dataState: null\r\n }\r\n });\r\n };\r\n\r\n this.state = {\r\n isLoading: process.env.NODE_ENV === 'production',\r\n serviceRequestNavigation: null,\r\n serviceRequestId: null,\r\n orderId: null,\r\n previousGridPosition: {\r\n navigationOrigin: null,\r\n windowScrollOffset: null,\r\n dataState: null,\r\n selectedAnnex: null,\r\n savedQuickSearch: null\r\n },\r\n setServiceRequestNavigation: this.setServiceRequestNavigation,\r\n setServiceRequestId: this.setServiceRequestId,\r\n setOrderId: this.setOrderId,\r\n setPreviousGridPosition: this.setPreviousGridPosition,\r\n clearPreviousPosition: this.clearPreviousPosition,\r\n clearSelectedAnnex: this.clearSelectedAnnex,\r\n clearSavedQuickSearch: this.clearSavedQuickSearch,\r\n clearSavedDataState: this.clearSavedDataState\r\n };\r\n }\r\n\r\n async componentDidMount() {\r\n if (process.env.NODE_ENV === 'production') {\r\n const config = await getConfig();\r\n global.config = config;\r\n\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n\r\n if (this.props.auth.loggedIn) {\r\n this.onPrivatePageLoad();\r\n }\r\n\r\n window.addEventListener('keydown', this.firstTabClickEvent);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { loggedIn, isLoading } = this.props.auth;\r\n\r\n if (\r\n prevProps.auth.loggedIn !== loggedIn &&\r\n loggedIn &&\r\n !this.props.isExercisesLoading &&\r\n !isLoading\r\n ) {\r\n this.onPrivatePageLoad();\r\n }\r\n }\r\n\r\n // Calls this method only then user is logged in on first load/login\r\n onPrivatePageLoad() {\r\n this.props.getExercises();\r\n this.props.getCurrentExercise();\r\n }\r\n\r\n firstTabClickEvent = e => {\r\n if (e.keyCode === 9) {\r\n document.body.classList.add('tab-nav');\r\n\r\n window.removeEventListener('keydown', this.firstTabClickEvent);\r\n window.addEventListener('mousedown', this.firstMouseDownEvent);\r\n }\r\n };\r\n\r\n firstMouseDownEvent = () => {\r\n document.body.classList.remove('tab-nav');\r\n\r\n window.removeEventListener('mousedown', this.firstMouseDownEvent);\r\n window.addEventListener('keydown', this.firstTabClickEvent);\r\n };\r\n\r\n render() {\r\n const {\r\n auth: { loggedIn },\r\n isExercisesLoading,\r\n exercises\r\n } = this.props;\r\n\r\n if (isExercisesLoading || this.state.isLoading) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n if (exercises.length === 0 && loggedIn) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nApp.propTypes = {\r\n getExercises: propTypes.func,\r\n getCurrentExercise: propTypes.func,\r\n auth: propTypes.object,\r\n exercises: propTypes.array,\r\n isExercisesLoading: propTypes.bool\r\n};\r\n\r\nconst exercisesLoading = createLoadingSelector(['Exercises/List']);\r\nconst mapStateToProps = state => ({\r\n isExercisesLoading: exercisesLoading(state),\r\n exercises: state.exercises.list,\r\n auth: state.auth\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n getExercises,\r\n getCurrentExercise\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(App);\r\n","import axios from 'axios';\r\n\r\nlet call;\r\n\r\nexport const _fetch = (\r\n path,\r\n {\r\n body = {},\r\n method = 'GET',\r\n multipart = false,\r\n forceBlob = false,\r\n cancel = false,\r\n params = null,\r\n token = null\r\n } = {}\r\n) => {\r\n if (call && cancel) {\r\n call.cancel('Only one request allowed at a time.');\r\n }\r\n const API_URL =\r\n process.env.NODE_ENV === 'production' && global.config.baseApiURL\r\n ? global.config.baseApiURL\r\n : process.env.REACT_APP_API_URL;\r\n\r\n token = token == null ? JSON.parse(localStorage.getItem('token')) : token;\r\n\r\n const request = {\r\n method: method,\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n },\r\n validateStatus: status => {\r\n return status < 500; // Reject only if the status code is greater than or equal to 500\r\n }\r\n };\r\n\r\n if (!multipart) {\r\n request.headers = {\r\n ...request.headers,\r\n Pragma: 'no-cache',\r\n 'Content-Type': 'application/json'\r\n };\r\n }\r\n\r\n if (request) {\r\n request.params = params;\r\n }\r\n\r\n if (forceBlob) {\r\n request.responseType = 'blob';\r\n }\r\n\r\n if (cancel) {\r\n call = axios.CancelToken.source();\r\n request.cancelToken = call.token;\r\n }\r\n\r\n if (method !== 'GET') {\r\n if (multipart) {\r\n const formData = new FormData();\r\n Object.keys(body).forEach(key => {\r\n if (Array.isArray(body[key])) {\r\n body[key].forEach(item => {\r\n formData.append(key, item);\r\n });\r\n } else {\r\n formData.append(key, body[key]);\r\n }\r\n });\r\n\r\n request.data = formData;\r\n } else {\r\n request.data = JSON.stringify(body);\r\n }\r\n }\r\n\r\n return axios(`${API_URL}/${path}`, request)\r\n .then(async response => {\r\n if (response.status === 401) {\r\n localStorage.removeItem('token');\r\n // there is no store, so we are using default browser pushState.\r\n return (location.href = `${process.env.PUBLIC_URL}/logout`);\r\n }\r\n if (response.status === 403) {\r\n // there is no store, so we are using default browser pushState.\r\n return (location.href = `${process.env.PUBLIC_URL}/`);\r\n }\r\n\r\n const contentType = response.headers['content-type'];\r\n\r\n if (!contentType) {\r\n return {\r\n status: response.status\r\n };\r\n }\r\n\r\n if (forceBlob && response.status >= 400) {\r\n return {\r\n status: response.status,\r\n payload: await new Response(response.data).json()\r\n };\r\n }\r\n\r\n if (forceBlob) {\r\n return response.data;\r\n }\r\n\r\n return {\r\n status: response.status,\r\n payload: response.data\r\n };\r\n })\r\n .catch(error => {\r\n throw new Error(error);\r\n });\r\n};\r\n","module.exports = __webpack_public_path__ + \"static/media/ndlo-logo.593f8707.png\";","module.exports = __webpack_public_path__ + \"static/media/wgs-logo.0caed639.png\";","import { BaseReducer } from '@hobs/utils/baseReducer';\r\n\r\nclass Loading extends BaseReducer {\r\n static defaultState = {};\r\n constructor() {\r\n super(Loading.defaultState);\r\n }\r\n\r\n reducer(state, action) {\r\n state = state || this.defaultState;\r\n const matches = /(.*)\\/(Request|Success|Failure)/.exec(action.type);\r\n if (!matches) {\r\n return state;\r\n }\r\n const [, requestName, requestState] = matches;\r\n return {\r\n ...state,\r\n [requestName]: requestState === 'Request'\r\n };\r\n }\r\n}\r\n\r\nconst reducer = new Loading().reducer;\r\nexport { reducer as loadingReducer };\r\n","/**\r\n * @param actions\r\n * @returns {(state) => any}\r\n *\r\n * Ex. const loading = createLoadingSelector(['Action/Type']);\r\n */\r\nexport const createLoadingSelector = actions => state => {\r\n return actions.some(action => state.loading[action]);\r\n};\r\n","export * from './reducer';\r\nexport * from './selector';\r\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loader\":\"Loader_loader__2g__Y\",\"rotate\":\"Loader_rotate__hO_0l\",\"dash\":\"Loader_dash__1aTqh\"};","export const FORSUBMIT = {\r\n REQUEST: 'Users/ForSubmit/Request',\r\n SUCCESS: 'Users/ForSubmit/Success',\r\n FAILURE: 'Users/ForSubmit/Failure'\r\n};\r\n\r\nexport const GET = {\r\n REQUEST: 'Users/Get/Request',\r\n SUCCESS: 'Users/Get/Success',\r\n FAILURE: 'Users/Get/Failure'\r\n};\r\n\r\nexport const CREATE = {\r\n REQUEST: 'Users/Create/Request',\r\n SUCCESS: 'Users/Create/Success',\r\n FAILURE: 'Users/Create/Failure'\r\n};\r\n\r\nexport const PATCHPARTY = {\r\n REQUEST: 'Users/PatchParty/Request',\r\n SUCCESS: 'Users/PatchParty/Success',\r\n FAILURE: 'Users/PatchParty/Failure'\r\n};\r\n\r\nexport const UPDATE = {\r\n REQUEST: 'Users/Update/Request',\r\n SUCCESS: 'Users/Update/Success',\r\n FAILURE: 'Users/Update/Failure'\r\n};\r\n\r\nexport const CLEAR = {\r\n REQUEST: 'Users/Clear/Request',\r\n SUCCESS: 'Users/Clear/Success',\r\n FAILURE: 'Users/Clear/Failure'\r\n};\r\n\r\nexport const CHANGEPASSWORD = {\r\n REQUEST: 'Users/ChangePassword/Request',\r\n SUCCESS: 'Users/ChangePassword/Success',\r\n FAILURE: 'Users/ChangePassword/Failure'\r\n}\r\n\r\nexport const RESENDRESETPASSWORD = {\r\n REQUEST: 'Users/ResendResetPassword/Request',\r\n SUCCESS: 'Users/ResendResetPassword/Success',\r\n FAILURE: 'Users/ResendResetPassword/Failure'\r\n}\r\n\r\nexport const CHANGELOCKSTATUS = {\r\n REQUEST: 'Users/ChangeLockStatus/Request',\r\n SUCCESS: 'Users/ChangeLockStatus/Success',\r\n FAILURE: 'Users/ChangeLockStatus/Failure'\r\n}\r\n\r\nexport const SOFTDELETEUSER = {\r\n REQUEST: 'Users/SoftDelete/Request',\r\n SUCCESS: 'Users/SoftDelete/Success',\r\n FAILURE: 'Users/SoftDelete/Failure'\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"status\":\"Status_status__3sBTY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"annexes-filter\":\"WithAnnexFilter_annexes-filter__3bzoE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"checkbox\":\"Checkbox_checkbox__14u-P\"};","module.exports = __webpack_public_path__ + \"static/media/arrow.2c8952e3.svg\";","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loader\":\"GridLoader_loader__2XDCo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"panel\":\"BluePanel_panel__1N5Ax\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"radio-button\":\"RadioButton_radio-button__a4OJ6\"};","import React from 'react';\r\nimport { Route, Redirect } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { isValidToken, getTokenData } from '../../utils';\r\n\r\nconst PrivateRoute = ({\r\n redirect = '/login',\r\n component: Component,\r\n layout: Layout,\r\n layoutProps,\r\n ...rest\r\n}) => (\r\n {\r\n const token = localStorage.getItem('token');\r\n if (token && isValidToken(token)) {\r\n if (\r\n getTokenData(token).AgreedToExercise === 'False' &&\r\n props.location.pathname !== '/terms-and-conditions'\r\n ) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (Layout) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }}\r\n />\r\n);\r\n\r\nPrivateRoute.propTypes = {\r\n redirect: PropTypes.string,\r\n component: PropTypes.oneOfType([\r\n PropTypes.func,\r\n PropTypes.element,\r\n PropTypes.object\r\n ]),\r\n layout: PropTypes.oneOfType([\r\n PropTypes.func,\r\n PropTypes.element,\r\n PropTypes.object\r\n ]),\r\n layoutProps: PropTypes.object,\r\n location: PropTypes.object\r\n};\r\n\r\nexport default PrivateRoute;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Styles from './NotFound.module.scss';\r\n\r\nconst NotFound = ({ location }) => {\r\n return (\r\n
\r\n
\r\n

\r\n 404{' '}\r\n \r\n 🤧\r\n \r\n

\r\n
\r\n
\r\n No match found for {location.pathname}\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nNotFound.propTypes = {\r\n location: PropTypes.string\r\n};\r\n\r\nexport default NotFound;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport './styles.scss';\r\n\r\nconst CoreLayout = ({ children }) => {\r\n return
{children}
;\r\n};\r\n\r\nCoreLayout.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.element,\r\n PropTypes.string,\r\n PropTypes.number,\r\n PropTypes.object\r\n ])\r\n};\r\n\r\nexport default CoreLayout;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport LoadingBar from 'react-redux-loading-bar';\r\nimport Styles from './Header.module.scss';\r\n\r\nconst Header = ({ left = <>, right, submenu }) => {\r\n return (\r\n
\r\n \r\n
\r\n
{left}
\r\n {right &&
{right}
}\r\n
\r\n
{submenu}
\r\n
\r\n );\r\n};\r\n\r\nHeader.propTypes = {\r\n left: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\r\n right: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\r\n submenu: PropTypes.oneOfType([PropTypes.element, PropTypes.string, PropTypes.bool])\r\n};\r\n\r\nexport default Header;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cx from 'classnames';\r\nimport Styles from './Icon.module.scss';\r\n\r\nimport ArrowDown from './icons/ArrowDown';\r\nimport ArrowDownSmall from './icons/ArrowDownSmall';\r\nimport ArrowDownOutline from './icons/ArrowDownOutline';\r\nimport ArrowDownSmallOutline from './icons/ArrowDownSmallOutline';\r\nimport ArrowRightOutline from './icons/ArrowRightOutline';\r\nimport ArrowRight from './icons/ArrowRight';\r\nimport ArrowTop from './icons/ArrowTop';\r\nimport Attachment from './icons/Attachment';\r\nimport BackArrow from './icons/BackArrow';\r\nimport Bell from './icons/Bell';\r\nimport Calendar from './icons/Calendar';\r\nimport Chat from './icons/Chat';\r\nimport CloseSmall from './icons/CloseSmall';\r\nimport Close from './icons/Close';\r\nimport Download from './icons/Download';\r\nimport Filter from './icons/Filter';\r\nimport Pen from './icons/Pen';\r\nimport Remove from './icons/Remove';\r\nimport Settings from './icons/Settings';\r\nimport Tick from './icons/Tick';\r\nimport UserManual from './icons/UserManual';\r\nimport Plus from './icons/Plus';\r\nimport ExclamationMark from './icons/ExclamationMark';\r\nimport Upload from './icons/Upload';\r\nimport Location from './icons/Location';\r\nimport Delete from './icons/Delete';\r\nimport Info from './icons/Info';\r\nimport History from './icons/History';\r\nimport Truck from './icons/Truck';\r\nimport Search from './icons/Search';\r\nimport InfoSmall from './icons/InfoSmall';\r\nimport Change from './icons/Change';\r\nimport TrashBin from './icons/TrashBin';\r\nimport Split from './icons/Split';\r\n\r\nconst Icons = {\r\n ArrowDown,\r\n ArrowDownSmall,\r\n ArrowDownOutline,\r\n ArrowDownSmallOutline,\r\n ArrowRightOutline,\r\n ArrowRight,\r\n ArrowTop,\r\n ExclamationMark,\r\n Attachment,\r\n BackArrow,\r\n Bell,\r\n Calendar,\r\n Chat,\r\n CloseSmall,\r\n Close,\r\n Download,\r\n Filter,\r\n Pen,\r\n Remove,\r\n Settings,\r\n Tick,\r\n UserManual,\r\n Plus,\r\n Upload,\r\n Location,\r\n Delete,\r\n Info,\r\n History,\r\n Truck,\r\n TrashBin,\r\n Search,\r\n Split,\r\n InfoSmall,\r\n Change\r\n};\r\n\r\nfunction camelize(str) {\r\n const result = str\r\n .replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function(word, index) {\r\n return index === 0 ? word.toLowerCase() : word.toUpperCase();\r\n })\r\n .replace(/\\s+/g, '');\r\n return result.charAt(0).toUpperCase() + result.slice(1);\r\n}\r\n\r\nconst Icon = ({ icon, hasNotification = false, ...rest }) => {\r\n const Component = Icons[camelize(icon)];\r\n const _className = cx(Styles.icon, {\r\n [Styles.withIndication]: hasNotification\r\n });\r\n\r\n if (!Component) {\r\n throw new Error('No such icon in icons list');\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nIcon.propTypes = {\r\n icon: PropTypes.string,\r\n hasNotification: PropTypes.bool\r\n};\r\n\r\nexport default Icon;\r\n","import React from 'react';\r\n\r\nconst SvgArrowDown = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgArrowDown;\r\n","import React from 'react';\r\n\r\nconst SvgArrowDownSmall = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgArrowDownSmall;\r\n","import React from 'react';\r\n\r\nconst SvgArrowDownOutline = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgArrowDownOutline;\r\n","import React from 'react';\r\n\r\nconst SvgArrowDownSmallOutline = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgArrowDownSmallOutline;\r\n","import React from 'react';\r\n\r\nconst SvgArrowRightOutline = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgArrowRightOutline;\r\n","import React from 'react';\r\n\r\nconst SvgArrowRight = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgArrowRight;\r\n","import React from 'react';\r\n\r\nconst SvgArrowTop = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgArrowTop;\r\n","import React from 'react';\r\n\r\nconst SvgExclamationMark = props => (\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 SvgExclamationMark;\r\n","import React from 'react';\r\n\r\nconst SvgAttachment = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgAttachment;\r\n","import React from 'react';\r\n\r\nconst SvgBackArrow = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgBackArrow;\r\n","import React from 'react';\r\n\r\nconst SvgBell = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgBell;\r\n","import React from 'react';\r\n\r\nconst SvgCalendar = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgCalendar;\r\n","import React from 'react';\r\n\r\nconst SvgChat = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgChat;\r\n","import React from 'react';\r\n\r\nconst SvgCloseSmall = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgCloseSmall;\r\n","import React from 'react';\r\n\r\nconst SvgClose = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgClose;\r\n","import React from 'react';\r\n\r\nconst SvgDownload = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgDownload;\r\n","import React from 'react';\r\n\r\nconst SvgFilter = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgFilter;\r\n","import React from 'react';\r\n\r\nconst SvgPen = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgPen;\r\n","import React from 'react';\r\n\r\nconst SvgRemove = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgRemove;\r\n","import React from 'react';\r\n\r\nconst SvgSettings = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgSettings;\r\n","import React from 'react';\r\n\r\nconst SvgTick = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgTick;\r\n","import React from 'react';\r\n\r\nconst SvgUserManual = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgUserManual;\r\n","import React from 'react';\r\n\r\nconst SvgPlus = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgPlus;\r\n","import React from 'react';\r\n\r\nconst SvgUpload = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgUpload;\r\n","import React from 'react';\r\n\r\nconst SvgLocation = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgLocation;\r\n","import React from 'react';\r\n\r\nconst SvgDelete = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgDelete;\r\n","import React from 'react';\r\n\r\nconst SvgInfo = props => (\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 SvgInfo;\r\n","import React from 'react';\r\n\r\nconst SvgHistory = props => (\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 SvgHistory;\r\n","import React from 'react';\r\n\r\nconst Truck = props => (\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 Truck;\r\n","import React from 'react';\r\n\r\nconst SvgTrashBin = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgTrashBin;\r\n","import React from 'react';\r\n\r\nconst SvgSearch = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgSearch;\r\n","import React from 'react';\r\n\r\nconst SvgSplit = props => (\r\n \r\n \r\n \r\n);\r\n\r\nexport default SvgSplit;\r\n","import React from 'react';\r\n\r\nconst SvgInfoSmall = props => (\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 SvgInfoSmall;\r\n","import React from 'react';\r\n\r\nconst Change = props => (\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 Change;\r\n","import React from 'react';\r\nimport ShortId from 'shortid';\r\nimport classnames from 'classnames';\r\nimport { withTranslation } from 'react-i18next/src/index';\r\nimport PropTypes from 'prop-types';\r\nimport Styles from './Phase.module.scss';\r\n\r\nconst Phase = ({\r\n phases,\r\n currentPhase,\r\n remainingDays,\r\n hideRemainingInfo,\r\n t\r\n}) => {\r\n return (\r\n
\r\n
    \r\n {phases.map((phase, index) => {\r\n const completed =\r\n index < phases.findIndex(phase => phase.name === currentPhase);\r\n const active = phase.name === currentPhase;\r\n const className = classnames({\r\n [Styles.complete]: completed,\r\n [Styles.active]: active,\r\n [Styles.inactive]: !completed && !active\r\n });\r\n return (\r\n
  • \r\n {!hideRemainingInfo && active && (\r\n \r\n \r\n {remainingDays}\r\n {remainingDays > 1 ? t(' days left') : t(' day left')}\r\n \r\n \r\n )}\r\n \r\n {phase.name}\r\n
  • \r\n );\r\n })}\r\n
\r\n
\r\n );\r\n};\r\n\r\nPhase.propTypes = {\r\n phases: PropTypes.array,\r\n currentPhase: PropTypes.string,\r\n remainingDays: PropTypes.number,\r\n hideRemainingInfo: PropTypes.bool,\r\n t: PropTypes.func\r\n};\r\n\r\nexport default withTranslation()(Phase);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next/src/index';\r\nimport ShortId from 'shortid';\r\nimport Phase from '@hobs/components/Phase';\r\nimport Styles from './Submenu.module.scss';\r\n\r\nconst Submenu = ({ left, right, t }) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nSubmenu.propTypes = {\r\n left: PropTypes.oneOfType([\r\n PropTypes.element,\r\n PropTypes.string,\r\n PropTypes.object,\r\n PropTypes.array\r\n ]),\r\n right: PropTypes.object,\r\n t: PropTypes.func\r\n};\r\n\r\nexport default connect()(withTranslation()(Submenu));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Tooltip as BPTooltip } from '@blueprintjs/core';\r\nimport Styles from './Tooltip.module.scss';\r\n\r\nconst Tooltip = ({ children, tooltip, ...props }) => (\r\n \r\n {children ? children : }\r\n \r\n);\r\n\r\nTooltip.propTypes = {\r\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n tooltip: PropTypes.oneOfType([PropTypes.string, PropTypes.array])\r\n};\r\n\r\nexport default Tooltip;\r\n","import { connect } from 'react-redux';\r\nimport React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction WithRoles(Component) {\r\n class Roles extends PureComponent {\r\n hasUserPermission = roles => {\r\n const { user } = this.props;\r\n\r\n if (Array.isArray(roles)) {\r\n return roles.includes(user.UserRole);\r\n }\r\n\r\n return roles === user.UserRole;\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n Roles.propTypes = {\r\n user: PropTypes.object\r\n };\r\n\r\n const mapStateToProps = state => ({\r\n user: state.auth.user\r\n });\r\n\r\n return connect(\r\n mapStateToProps,\r\n null\r\n )(Roles);\r\n}\r\n\r\nexport default WithRoles;\r\n","export const DATE_FORMAT = 'P';\r\nexport const BACKEND_DATE_FORMAT = 'yyyy-MM-dd HH:mm:ss'; // 2019-02-13 22:02:33\r\nexport const DATETIME_FORMAT = 'Pp';\r\nexport const TIME_ZONE = 'UTC';\r\nexport const MAX_FILE_SIZE = 10485760; // Max Files Size is 10 MB. Value in bytes.\r\n\r\nexport const ANNEX_OVERVIEW_EXPORT_FILE_NAME = 'annex overview.xlsx';\r\nexport const MEAL_PLANS_EXPORT_FILE_NAME = 'HN mealplanner';\r\nexport const ORDERS_EXPORT_FILE_NAME = 'orders.xlsx';\r\nexport const TICKETS_EXPORT_FILE_NAME = 'tickets.xlsx';\r\nexport const USERS_EXPORT_FILE_NAME = 'users.xlsx';\r\n\r\nexport const ERROR_LOGS_EXPORT_FILE_NAME = 'error logs.xlsx';\r\nexport const OUTBOX_LOGS_EXPORT_FILE_NAME = 'outbox logs';\r\nexport const INBOX_LOGS_EXPORT_FILE_NAME = 'inbox logs';\r\nexport const SERVER_STATUS_EXPORT_FILE_NAME = 'server status.json';\r\n\r\nexport const HN_MANUAL_FILE_NAME = 'HN user reference guide_v1.0.pdf';\r\nexport const SN_MANUAL_FILE_NAME = 'SN user reference guide_v1.0.pdf';\r\nexport const SP_MANUAL_FILE_NAME = 'SP user reference guide_v1.0.pdf';\r\n\r\nexport const GRID_CUSTOM_FILTER_FIELDS = {\r\n annexes: 'annexes',\r\n groups: 'groups',\r\n indicationTypes: 'indicationTypes',\r\n regions: 'regions',\r\n sendingNations: 'sendingNations',\r\n statuses: 'statuses',\r\n unitsOfMeasure: 'unitsOfMeasure',\r\n fullyAssigned: 'fullyAssigned',\r\n locations: 'locations',\r\n locationsTo: 'locationsTo',\r\n Suppliers: 'suppliers',\r\n appointedUnits: 'appointedUnits'\r\n};\r\n\r\n// Page sizes for kendo grid.\r\n// https://www.telerik.com/kendo-react-ui/components/grid/api/GridProps/#toc-pageable\r\nexport const PAGE_SIZES = [5, 10, 20, 50, 100];\r\n\r\nexport const ORDER_STATUSES = {\r\n 0: {\r\n type: '',\r\n color: '#F66D00'\r\n },\r\n 1: {\r\n type: 'OrderDraft',\r\n color: '#F66D00'\r\n },\r\n 2: {\r\n type: 'Ordered',\r\n color: '#92B99F'\r\n },\r\n 3: {\r\n type: 'Canceled',\r\n color: '#868B9E'\r\n }\r\n};\r\n\r\nexport const TICKETS_STATUSES = {\r\n 0: {\r\n type: 'New',\r\n color: '#FDAD00'\r\n },\r\n 1: {\r\n type: 'Assigned',\r\n color: '#EC5E00'\r\n },\r\n 2: {\r\n type: 'Replied',\r\n color: '#9B26AF'\r\n },\r\n 3: {\r\n type: 'Resolved',\r\n color: '#1E7A5A'\r\n },\r\n 4: {\r\n type: 'Rejected',\r\n color: '#BA3058'\r\n }\r\n};\r\n\r\nexport const STATUSES = {\r\n 0: {\r\n type: 'New',\r\n color: '#FED004'\r\n },\r\n 1: {\r\n type: 'Replied',\r\n color: '#094DCC'\r\n },\r\n 2: {\r\n type: 'Removed',\r\n color: '#868B9E'\r\n },\r\n 3: {\r\n type: 'Edited',\r\n color: '#FE9904'\r\n },\r\n 4: {\r\n type: 'Confirmed',\r\n color: '#49C78F'\r\n },\r\n 5: {\r\n type: 'OrderDraft',\r\n color: '#F66D00'\r\n },\r\n 6: {\r\n type: 'Ordered',\r\n color: '#92B99F'\r\n },\r\n 7: {\r\n type: 'OrderRejected',\r\n color: '#BA3058'\r\n },\r\n 8: {\r\n type: 'OrderConfirmed',\r\n color: '#49C78F'\r\n },\r\n 9: {\r\n type: 'Delivered',\r\n color: '#1E7A5A'\r\n },\r\n 10: {\r\n type: 'Invoiced',\r\n color: '#2195F2'\r\n },\r\n 11: {\r\n type: 'NewCategory',\r\n color: '#FED004' // no\r\n },\r\n 12: {\r\n type: 'ResolvedCategory',\r\n color: '#868B9E' // no\r\n },\r\n 13: {\r\n type: 'Cancelled',\r\n color: '#c00000'\r\n }\r\n};\r\n\r\nexport const SERVER_STATUSES = {\r\n 0: {\r\n type: 'Unhealthy',\r\n color: '#FF5555'\r\n },\r\n 1: {\r\n type: 'Degraded',\r\n color: '#FE9904'\r\n },\r\n 2: {\r\n type: 'Healthy',\r\n color: '#49C78F'\r\n },\r\n 3: {\r\n type: 'Pending',\r\n color: '#FED004'\r\n },\r\n 4: {\r\n type: 'Failed',\r\n color: '#868B9E'\r\n }\r\n};\r\n\r\n/**\r\n * 💎\r\n * Easiest way to format filters for default selected fields:\r\n * @hobs/components/Grid/ColumnMenu/ColumnMenu.js - createCustomFilter\r\n * log the results of selected fields and apply them here, thats EZ\r\n */\r\nexport const DEFAULT_STATUS_FILTER = {\r\n filters: [\r\n { field: 'StatusId', operator: 'eq', value: 0 },\r\n { field: 'StatusId', operator: 'eq', value: 1 },\r\n { field: 'StatusId', operator: 'eq', value: 3 },\r\n { field: 'StatusId', operator: 'eq', value: 4 },\r\n { field: 'StatusId', operator: 'eq', value: 5 },\r\n { field: 'StatusId', operator: 'eq', value: 6 },\r\n { field: 'StatusId', operator: 'eq', value: 7 },\r\n { field: 'StatusId', operator: 'eq', value: 8 },\r\n { field: 'StatusId', operator: 'eq', value: 9 },\r\n { field: 'StatusId', operator: 'eq', value: 10 },\r\n { field: 'StatusId', operator: 'eq', value: 11 },\r\n { field: 'StatusId', operator: 'eq', value: 13 }\r\n ],\r\n logic: 'or'\r\n};\r\n\r\nexport const DEFAULT_DAYS_UNTIL_USER_EXPIRE = 180;\r\n\r\nexport const COR_STATUS_TYPES = {\r\n 1: {\r\n intent: 'danger',\r\n icon: 'small-cross'\r\n },\r\n 2: {\r\n intent: 'warning',\r\n icon: 'info-sign'\r\n },\r\n 3: {\r\n intent: 'success',\r\n icon: 'small-tick'\r\n },\r\n 4: {\r\n intent: 'none',\r\n icon: 'small-cross'\r\n }\r\n};\r\n\r\nexport const GRID_OPERATORS = {\r\n text: [\r\n { text: 'Starts with', operator: 'startswith' },\r\n { text: 'Contains', operator: 'contains' },\r\n { text: 'Is equal to', operator: 'eq' }\r\n ],\r\n numeric: [\r\n { text: 'Is equal to', operator: 'eq' },\r\n { text: 'Is greater than', operator: 'gte' },\r\n { text: 'Is less than', operator: 'lte' }\r\n ],\r\n date: [\r\n { text: 'From date', operator: 'gte' },\r\n { text: 'To date', operator: 'lte' }\r\n ]\r\n};\r\n\r\nexport const USER_ROLES = {\r\n SystemAdmin: 'SystemAdmin',\r\n ADMIN: 'Admin',\r\n USER: 'User',\r\n READONLY: 'Readonly',\r\n HOST_UNIT: 'HostUnit'\r\n};\r\n\r\nexport const UNIT_PARENT_TYPES = {\r\n Unit: null,\r\n SubUnit: 'Unit',\r\n Component: 'SubUnit'\r\n};\r\n\r\nexport const UNIT_TYPES = {\r\n Unit: 'Unit',\r\n SubUnit: 'SubUnit',\r\n Component: 'Component'\r\n};\r\n\r\nexport const INDICATIONS = {\r\n CategoryNotResolved: 'Category not resolved',\r\n HasNewMessages: 'Unread message',\r\n IsNotFullOrdered: 'Not fully ordered',\r\n IsReplyToSnIsMissing: 'Response is not sent',\r\n QuantityNotAssigned: 'Quantity not assigned',\r\n SupplierUpdateToService: 'Supplier update to Service',\r\n TransportationInformationMissing: 'Transportation info. not filled',\r\n AddReqResponseRequired: 'Change response not confirmed',\r\n IsEarlyConfirmationRequired: 'Early confirmation required'\r\n};\r\n\r\nexport const MAX_INT32 = 2147483647;\r\n\r\nexport const SERVICE_REQUEST_NAVIGATION_ORIGIN = {\r\n AnnexOverview: 'AnnexOverview',\r\n RequestedServices: 'RequestedServices',\r\n Orders: 'Orders',\r\n Tickets: 'Tickets'\r\n};\r\n\r\nexport const PARTY_NAVIGATION_ORIGIN = {\r\n Parties: 'Parties',\r\n AllUsers: 'AllUsers'\r\n};\r\n\r\nexport const APPROVAL_STATUSES = {\r\n 0: {\r\n type: 'Pending',\r\n color: '#FED004'\r\n },\r\n 1: {\r\n type: 'Approved',\r\n color: '#49C78F'\r\n }\r\n};\r\n\r\nexport const SERVICE_REQUEST_FOOTER_STATUSES = {\r\n None: 'None',\r\n AdditionalCreateConfirm: 'AdditionalCreateConfirm',\r\n AdditionalCreateWaitingForHn: 'AdditionalCreateWaitingForHn',\r\n AdditionalCreateWaitingForSn: 'AdditionalCreateWaitingForSn',\r\n AdditionalCreateAccept: 'AdditionalCreateAccept',\r\n RequestForCancellation: 'RequestForCancellation',\r\n AdditionalChangeConfirm: 'AdditionalChangeConfirm',\r\n AdditionalChangeWaitingForHn: 'AdditionalChangeWaitingForHn',\r\n AdditionalChangeWaitingForSn: 'AdditionalChangeWaitingForSn',\r\n AdditionalChangeAccept: 'AdditionalChangeAccept',\r\n AdditionalCancellationWaitingForHn: 'AdditionalCancellationWaitingForHn',\r\n AdditionalCancellationConfirm: 'AdditionalCancellationConfirm'\r\n};\r\n\r\nexport const MONTH_NAMES = {\r\n 0: 'January',\r\n 1: 'February',\r\n 2: 'March',\r\n 3: 'April',\r\n 4: 'May',\r\n 5: 'June',\r\n 6: 'July',\r\n 7: 'August',\r\n 8: 'September',\r\n 9: 'October',\r\n 10: 'November',\r\n 11: 'December'\r\n};\r\n\r\nexport const HEALTH_CHECK_REFRESH_INTERVAL = 10000;\r\n\r\nexport const PARTY_TYPE = {\r\n HostNation: {\r\n Id: 1,\r\n Name: 'Host Nation'\r\n },\r\n SendingNation: {\r\n Id: 2,\r\n Name: 'Sending Nation'\r\n },\r\n Supplier: {\r\n Id: 3,\r\n Name: 'Supplier'\r\n }\r\n};\r\n\r\nexport const SOR_PHASE_TYPES = {\r\n Fsor: 3\r\n};\r\n\r\nexport const ACCEPTED_FILE_FORMATS = [\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\r\n 'application/msword',\r\n '.txt', \r\n '.xslx',\r\n '.xlsx', \r\n '.csv', \r\n 'application/pdf', \r\n '.xls', \r\n 'image/jpg', \r\n 'image/jpeg', \r\n 'image/png', \r\n '.ppt', \r\n '.pptx', \r\n '.odp',\r\n '.msg'\r\n]\r\n","import { isValid, format as fnsFormat, parse as parseFns } from 'date-fns';\r\n\r\nimport * as Locales from 'date-fns/esm/locale';\r\n\r\n/**\r\n * 🇱🇹 🇳🇴 🇪🇺 Locales\r\n * If something wrong with dates - check locales import,\r\n * if there is such a language\r\n * and its name is correct\r\n */\r\n\r\nconst getCurrentUserLanguage = () => {\r\n const { userLanguage, language } = window.navigator;\r\n\r\n if (language) {\r\n /**\r\n * We are selecting first language from the list, because it's means\r\n * that is users native or prefered language/locale\r\n */\r\n if (language === 'en') {\r\n return 'enUS';\r\n }\r\n\r\n if (\r\n ['en-GB', 'en-US', 'en-US'].indexOf(language) === -1 &&\r\n language.indexOf('-') > -1\r\n ) {\r\n return language.split('-')[0];\r\n }\r\n\r\n return language.replace('-', '');\r\n } else {\r\n return userLanguage.replace('-', '');\r\n }\r\n};\r\n\r\nexport const format = (date, format) => {\r\n if (!isValid(new Date(Date.parse(date)))) {\r\n return '-';\r\n }\r\n\r\n const locale = Locales[getCurrentUserLanguage()];\r\n\r\n const options = {};\r\n\r\n if (locale) {\r\n options.locale = locale;\r\n }\r\n\r\n return fnsFormat(parse(date).getTime(), format, options);\r\n};\r\n\r\nexport const formatLocal = (date, format) => {\r\n if (!isValid(new Date(Date.parse(date)))) {\r\n return '-';\r\n }\r\n\r\n const locale = Locales[getCurrentUserLanguage()];\r\n\r\n const options = {};\r\n\r\n if (locale) {\r\n options.locale = locale;\r\n }\r\n\r\n return fnsFormat(parseWithTimeZone(date).getTime(), format, options);\r\n};\r\n\r\nexport const parseLocal = date => {\r\n const locale = Locales[getCurrentUserLanguage()];\r\n\r\n return parseFns(\r\n date,\r\n locale.formatLong.date({\r\n width: 'short'\r\n }),\r\n new Date(2010, 0, 1),\r\n {\r\n locale\r\n }\r\n );\r\n};\r\n\r\nexport const parse = date => {\r\n if (!isValid(new Date(Date.parse(date)))) {\r\n return '-';\r\n }\r\n\r\n // Hack, replace +00:00 or any time zone to nothing.\r\n const dateWithoutTimeZone =\r\n typeof date === 'string'\r\n ? date.replace(new RegExp(/\\+\\d\\d:\\d\\d/), '').replace('Z', '')\r\n : date;\r\n\r\n return new Date(Date.parse(dateWithoutTimeZone));\r\n};\r\n\r\nexport const parseWithTimeZone = date => {\r\n if (!isValid(new Date(Date.parse(date)))) {\r\n return '-';\r\n }\r\n\r\n return new Date(Date.parse(date));\r\n};\r\n","import React, { useEffect, useState, useRef } from 'react';\r\nimport Loader from '@hobs/components/Loader';\r\nimport './Notifications.scss';\r\nimport { DATETIME_FORMAT } from '@hobs/utils/constants';\r\nimport { formatLocal } from '@hobs/utils/formatWithTimeZone';\r\nimport Icon from '../Icon';\r\nimport { useOuterClick } from '@hobs/utils/useOuterClick';\r\n\r\nexport const Notifications = ({\r\n onLoadMore,\r\n notificationCount,\r\n data = [],\r\n loading,\r\n onSelected\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const loadMoreOptionRef = useRef();\r\n const outerClickRef = useOuterClick(() => {\r\n setIsOpen(false);\r\n });\r\n\r\n useEffect(() => {\r\n // load notifications when Load More becomes visible\r\n if (!isOpen || !notificationCount) return;\r\n\r\n const observer = new IntersectionObserver(entries => {\r\n if (entries[0].isIntersecting) {\r\n loadMoreOptionRef.current.click();\r\n }\r\n });\r\n\r\n if (!loadMoreOptionRef.current) return;\r\n\r\n observer.observe(loadMoreOptionRef.current);\r\n }, [isOpen]);\r\n\r\n useEffect(() => {\r\n setIsLoading(false);\r\n }, [data]);\r\n\r\n const onToggle = () => {\r\n setIsOpen(!isOpen);\r\n };\r\n\r\n const onOptionSelected = notification => {\r\n onSelected(notification);\r\n setIsOpen(false);\r\n };\r\n\r\n const load = () => {\r\n if (isLoading) {\r\n return;\r\n }\r\n\r\n onLoadMore({ skip: data.length });\r\n setIsLoading(true);\r\n };\r\n\r\n const renderLoadMoreOption = () => {\r\n if (notificationCount <= data.length) return <>;\r\n\r\n return (\r\n <>\r\n
\r\n \r\n {!isLoading && data.length > 0 ? 'Load more' : 'Loading...'}\r\n \r\n \r\n );\r\n };\r\n\r\n const renderOptions = () => (\r\n
\r\n
\r\n {notificationCount == 0 ? (\r\n

No actions requred

\r\n ) : (\r\n

Urgent action required ({notificationCount})

\r\n )}\r\n
\r\n {!!data.length &&
}\r\n {loading && (\r\n
\r\n \r\n
\r\n )}\r\n {!loading &&\r\n data.map((item, i, row) => (\r\n onOptionSelected(item)}\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{`Request ${item.RequestNumber}`}

\r\n

{item.IndicationDescription}

\r\n

\r\n {formatLocal(item.LastChangeDate, DATETIME_FORMAT)}\r\n

\r\n
\r\n
\r\n {i + 1 !== row.length &&
}\r\n
\r\n ))}\r\n {renderLoadMoreOption()}\r\n
\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {notificationCount !== 0 && (\r\n \r\n

{notificationCount}

\r\n
\r\n )}\r\n {isOpen && renderOptions()}\r\n
\r\n );\r\n};\r\n","import React, { useEffect, useRef } from 'react';\r\n\r\nexport function useOuterClick(callback) {\r\n const callbackRef = useRef();\r\n const innerRef = useRef();\r\n useEffect(() => { callbackRef.current = callback; });\r\n useEffect(() => {\r\n document.addEventListener(\"click\", handleClick);\r\n return () => document.removeEventListener(\"click\", handleClick);\r\n function handleClick(e) {\r\n if (innerRef.current && callbackRef.current && \r\n !innerRef.current.contains(e.target)\r\n ) callbackRef.current(e);\r\n }\r\n }, []);\r\n \r\n return innerRef;\r\n}","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\n\r\n/**\r\n * actionCreator constructor\r\n * @param {string} uri Call to api\r\n * @param {string} type Redux constant\r\n * @param {object} params Params to fetchSecure\r\n */\r\nexport const actionCreator = (uri, type, params = {}) => {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(uri, params)\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, ...response };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: type.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: type.SUCCESS, response };\r\n }\r\n function failure(error) {\r\n return { type: type.FAILURE, error };\r\n }\r\n};\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport { toODataString } from '@progress/kendo-data-query';\r\nimport { list, XLS } from '@hobs/constants/odata';\r\nimport { getNotifications } from './notifications';\r\n\r\nexport function formatFilter(quickSearch) {\r\n return {\r\n logic: 'and',\r\n filters: [\r\n {\r\n field: 'QuickSearchField',\r\n operator: 'contains',\r\n value: quickSearch\r\n }\r\n ]\r\n };\r\n}\r\n\r\nexport function tryGetODataString(params) {\r\n try {\r\n return toODataString(params);\r\n } catch (e) {\r\n return '';\r\n }\r\n}\r\n\r\nfunction oDataFetch(path, params) {\r\n if (params.quickSearch) {\r\n params = { ...params, filter: formatFilter(params.quickSearch) };\r\n }\r\n \r\n let oDataParams = tryGetODataString(params);\r\n\r\n // add '+02:00' timezone to dates to also include selected date (default is 00:00)\r\n oDataParams = addTimeZoneOffsetToDate(oDataParams);\r\n\r\n // Replaces ' and ' to allow to use guid\r\n const regExp = /('%3Cguid%3E)|(%3C%2Fguid%3E')/g;\r\n oDataParams = oDataParams.replace(regExp, '');\r\n\r\n return fetchSecure(`${path}?$count=true&${oDataParams}`, { cancel: true });\r\n}\r\n\r\nfunction addTimeZoneOffsetToDate(dateString) {\r\n // Check if the string contains a date in the expected format\r\n const dateRegex = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z/g;\r\n const matches = dateString.match(dateRegex);\r\n if (!matches) {\r\n return dateString;\r\n }\r\n \r\n // Add timezone offset to each date\r\n const modifiedString = dateString.replace(dateRegex, (match) => {\r\n if (match) {\r\n const encodedPlusSymbol = '%2b'\r\n return match.replace(\"Z\", `${encodedPlusSymbol}02:00`);\r\n }\r\n return match;\r\n });\r\n \r\n return modifiedString;\r\n}\r\n\r\nexport function queryOData(path, params = { take: 10, skip: 0 }) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return oDataFetch(path, params)\r\n .then(response => {\r\n dispatch(\r\n success({\r\n data: response.payload.value,\r\n total: response.payload['@odata.count']\r\n })\r\n );\r\n\r\n if (path === 'AnnexServiceRequestQuery' || path === 'ServiceRequestQuery') {\r\n return dispatch(getNotifications({ ...params, skip: 0, take: 0 }));\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: list.REQUEST };\r\n }\r\n function success(payload) {\r\n return { type: list.SUCCESS, payload };\r\n }\r\n function failure(error) {\r\n return { type: list.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function queryXLSOData(path, params = {}) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return oDataFetch(path, params)\r\n .then(response => {\r\n dispatch(\r\n success({\r\n data: response.payload.value,\r\n total: response.payload['@odata.count']\r\n })\r\n );\r\n\r\n return {\r\n data: response.payload.value,\r\n total: response.payload['@odata.count']\r\n };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: XLS.REQUEST };\r\n }\r\n function success(payload) {\r\n return { type: XLS.SUCCESS, payload };\r\n }\r\n function failure(error) {\r\n return { type: XLS.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function resetOData() {\r\n return {\r\n type: list.RESET\r\n };\r\n}\r\n","import {\r\n GETNOTIFICATIONS,\r\n RESETNOTIFICATIONS\r\n} from '@hobs/constants/notifications';\r\nimport { actionCreator } from './utils/utils';\r\nimport { formatFilter, tryGetODataString } from './odata';\r\n\r\nconst getODataParams = params => {\r\n let oDataParams = '';\r\n oDataParams = tryGetODataString(params);\r\n\r\n // Replaces ' and ' to allow to use guid\r\n const regExp = /('%3Cguid%3E)|(%3C%2Fguid%3E')/g;\r\n oDataParams = oDataParams.replace(regExp, '');\r\n\r\n return oDataParams;\r\n};\r\n\r\nexport const getNotifications = (params = { skip: 0, take: 50 }) => {\r\n if (params.quickSearch) {\r\n params = { ...params, filter: formatFilter(params.quickSearch) };\r\n }\r\n\r\n let oDataParams = '';\r\n const selectedFields = [\r\n 'ServiceRequestId',\r\n 'RequestNumber',\r\n 'IndicationDescription',\r\n 'LastChangeDate'\r\n ].join(',');\r\n\r\n if (params.skip === 0 && params.take === 0) {\r\n params = { ...params, take: 50 }; // ERR_HTTP2_PROTOCOL_ERROR if take is 0\r\n\r\n oDataParams = getODataParams(params);\r\n\r\n return dispatch => {\r\n dispatch({\r\n type: RESETNOTIFICATIONS.SUCCESS\r\n });\r\n actionCreator(\r\n `NotificationsQuery?$count=true&${oDataParams}&$select=${selectedFields}`,\r\n GETNOTIFICATIONS,\r\n { method: 'GET' }\r\n )(dispatch);\r\n };\r\n } else {\r\n oDataParams = getODataParams(params);\r\n\r\n return actionCreator(\r\n `NotificationsQuery?$count=true&${oDataParams}&$select=${selectedFields}`,\r\n GETNOTIFICATIONS,\r\n { method: 'GET' }\r\n );\r\n }\r\n};\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\n\r\nexport const Download = (blob, fileName) => {\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n // MSIE\r\n window.navigator.msSaveOrOpenBlob(blob, fileName);\r\n } else {\r\n // Modern browsers\r\n const url = window.URL.createObjectURL(new Blob([blob]));\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = fileName;\r\n // we need to append the element to the\r\n // dom -> otherwise it will not work in firefox\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove(); //afterwards we remove the element again\r\n }\r\n};\r\n\r\nexport const GetAttachmentData = async attachmentId => {\r\n const attachment = await fetchSecure(`Attachments/${attachmentId}`, {\r\n forceBlob: true\r\n });\r\n return attachment;\r\n};\r\n","export const DOWNLOAD = {\r\n REQUEST: 'UserManual/Download/Request',\r\n SUCCESS: 'UserManual/Download/Success',\r\n FAILURE: 'UserManual/Download/Failure'\r\n};\r\n","import { shape, string, oneOf } from 'prop-types';\r\n\r\nexport const userContract = shape({\r\n UserEmail: string.isRequired,\r\n UserName: string.isRequired,\r\n UserId: string.isRequired,\r\n UserRole: oneOf(['Admin', 'User']),\r\n CurrentExerciseId: string,\r\n PartyId: string\r\n});\r\n","import React from 'react';\r\nimport { Menu } from '@blueprintjs/core';\r\nimport { Link } from 'react-router-dom';\r\nimport propTypes from 'prop-types';\r\n\r\nexport const UserMenu = ({ t }) => (\r\n \r\n {t('Logout')}\r\n \r\n);\r\n\r\nUserMenu.propTypes = {\r\n t: propTypes.func\r\n};\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { Menu } from '@blueprintjs/core';\r\nimport { Link } from 'react-router-dom';\r\nimport propTypes from 'prop-types';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\nimport { USER_ROLES } from '@hobs/utils/constants';\r\n\r\nconst SettingsMenu = ({ t, hasUserPermission, onOptionClick = () => {} }) => {\r\n if (!hasUserPermission(USER_ROLES.ADMIN)) {\r\n return <>;\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n {t('Manage party')}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nSettingsMenu.propTypes = {\r\n t: propTypes.func,\r\n hasUserPermission: propTypes.func,\r\n onOptionClick: propTypes.func\r\n};\r\n\r\nexport default connect()(WithRoles(SettingsMenu));\r\n","import React, { useState, useEffect, useRef, useCallback } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport Layout from '@hobs/components/CoreLayout';\r\nimport classNames from 'classnames';\r\nimport { Popover, Position } from '@blueprintjs/core';\r\nimport Header from '@hobs/components/Header';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Submenu from '@hobs/components/Submenu';\r\nimport Tooltip from '@hobs/components/Tooltip';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\nimport { USER_ROLES, SN_MANUAL_FILE_NAME } from '@hobs/utils/constants';\r\nimport { Notifications } from '@hobs/components/Notifications/Notifications';\r\nimport { getNotifications } from '@hobs/actions/notifications';\r\nimport { Download } from '@hobs/utils/download';\r\nimport { Scrollbars } from 'react-custom-scrollbars';\r\nimport { withTranslation } from 'react-i18next/src/index';\r\nimport { getPhaseTypes } from '@hobs/actions/phases';\r\nimport { getUserManual } from '@hobs/actions/userManual';\r\nimport { userContract } from '../../propTypes/user';\r\nimport {\r\n changeCurrentExercise,\r\n getRemainingDaysObject\r\n} from '../../actions/exercises';\r\n\r\nimport { UserMenu } from './UserMenu/UserMenu';\r\nimport '@blueprintjs/core/src/blueprint.scss';\r\nimport './PrivateLayout.scss';\r\nimport SettingsMenu from './SettingsMenu';\r\n\r\nconst submenuLinks = {\r\n links: [\r\n {\r\n link: '/',\r\n name: 'Home'\r\n },\r\n {\r\n link: '/terms-and-conditions-view',\r\n name: 'Terms and Conditions'\r\n },\r\n {\r\n link: '/catalog',\r\n name: 'Catalog'\r\n },\r\n {\r\n link: '/sor-requisites',\r\n name: 'SOR requisites'\r\n },\r\n {\r\n link: '/requested-services',\r\n name: 'Requested services'\r\n },\r\n {\r\n link: '/tickets',\r\n name: 'Tickets list'\r\n },\r\n {\r\n link: '/meal-planner',\r\n name: 'Meal planning'\r\n }\r\n ]\r\n};\r\n\r\nconst PrivateLayout = ({\r\n children,\r\n exercises,\r\n remainingDaysObject,\r\n user,\r\n changeCurrentExercise,\r\n getRemainingDaysObject,\r\n getPhaseTypes,\r\n phaseTypes,\r\n t,\r\n history,\r\n withSubmenu = true,\r\n hasUserPermission,\r\n getUserManual,\r\n notifications,\r\n getNotifications\r\n}) => {\r\n const [currentExerciseId, setCurrentExerciseId] = useState(\r\n user.CurrentExerciseId\r\n );\r\n const [\r\n userSettingsTooltipIsDisabled,\r\n setUserSettingsTooltipIsDisabled\r\n ] = useState(false);\r\n\r\n const exercisePopoverRef = useRef(null);\r\n const settingsPopoverRef = useRef(null);\r\n\r\n useEffect(() => {\r\n getRemainingDaysObject();\r\n getPhaseTypes();\r\n queryNotifications({ skip: 0, take: 0 });\r\n }, [getPhaseTypes, getRemainingDaysObject, queryNotifications]);\r\n\r\n useEffect(() => {\r\n history.listen(() => {\r\n if (history.location.pathname !== '/requested-services') {\r\n queryNotifications({ skip: 0, take: 0 });\r\n }\r\n });\r\n }, [history, queryNotifications]);\r\n\r\n const changeCurrentExerciseId = id => () => {\r\n changeCurrentExercise(id).then(response => {\r\n if (response.success) {\r\n setCurrentExerciseId(id);\r\n getRemainingDaysObject();\r\n queryNotifications(0, 0);\r\n exercisePopoverRef.current.setOpenState(false);\r\n history.push('/');\r\n }\r\n });\r\n };\r\n\r\n const queryNotifications = useCallback(\r\n filter => {\r\n const notificationsQueryFilterItem = localStorage.getItem(\r\n 'NotificationsQueryFilter'\r\n );\r\n\r\n if (notificationsQueryFilterItem == null) {\r\n getNotifications(filter);\r\n return;\r\n }\r\n\r\n const notificationsQueryFilter = JSON.parse(notificationsQueryFilterItem);\r\n\r\n getNotifications({ ...notificationsQueryFilter, ...filter });\r\n },\r\n [getNotifications]\r\n );\r\n\r\n const downloadUserManual = async event => {\r\n event.preventDefault();\r\n const userManual = await getUserManual();\r\n\r\n if (userManual.success) {\r\n Download(userManual.payload, SN_MANUAL_FILE_NAME);\r\n }\r\n };\r\n\r\n const renderExercises = () => {\r\n const currentExercise = exercises.find(\r\n exercise => exercise.exerciseId === currentExerciseId\r\n );\r\n\r\n return (\r\n \r\n (\r\n \r\n )}\r\n autoHeight={true}\r\n >\r\n {exercises.map(item => {\r\n return (\r\n \r\n {item.name}\r\n \r\n );\r\n })}\r\n \r\n \r\n }\r\n position={Position.BOTTOM_LEFT}\r\n >\r\n
{currentExercise ? currentExercise.name : ''}
\r\n \r\n );\r\n };\r\n\r\n const onNotificationSelected = notification => {\r\n history.push(`/service-request/${notification.ServiceRequestId}`);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {(hasUserPermission(USER_ROLES.ADMIN) ||\r\n hasUserPermission(USER_ROLES.USER)) && (\r\n \r\n )}\r\n \r\n {t('User manual')}\r\n \r\n \r\n setUserSettingsTooltipIsDisabled(true)}\r\n onClosed={() => setUserSettingsTooltipIsDisabled(false)}\r\n className={classNames([\r\n 'header--controls',\r\n 'header--user-menu'\r\n ])}\r\n minimal={true}\r\n usePortal={false}\r\n modifiers={{\r\n offset: {\r\n offset: '-10, 18'\r\n }\r\n }}\r\n content={}\r\n position={Position.BOTTOM_LEFT}\r\n >\r\n <>{user.UserName}\r\n \r\n \r\n {hasUserPermission(USER_ROLES.ADMIN) && (\r\n {\r\n settingsPopoverRef.current.setOpenState(false);\r\n }}\r\n />\r\n }\r\n position={Position.BOTTOM_LEFT}\r\n >\r\n <>\r\n {t('Settings')}\r\n \r\n \r\n )}\r\n \r\n }\r\n submenu={\r\n withSubmenu && (\r\n \r\n )\r\n }\r\n />\r\n {children}\r\n \r\n );\r\n};\r\n\r\nPrivateLayout.propTypes = {\r\n user: userContract,\r\n exercises: PropTypes.array,\r\n history: PropTypes.object,\r\n withSubmenu: PropTypes.bool,\r\n remainingDaysObject: PropTypes.object,\r\n changeCurrentExercise: PropTypes.func,\r\n getRemainingDaysObject: PropTypes.func,\r\n getUserManual: PropTypes.func,\r\n phaseTypes: PropTypes.array,\r\n getPhaseTypes: PropTypes.func,\r\n children: PropTypes.oneOfType([\r\n PropTypes.func,\r\n PropTypes.array,\r\n PropTypes.element\r\n ]),\r\n t: PropTypes.func,\r\n hasUserPermission: PropTypes.func,\r\n getNotifications: PropTypes.func,\r\n notifications: PropTypes.object\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n user: state.auth.user,\r\n exercises: state.exercises.list,\r\n remainingDaysObject: state.exercises.remainingDayObject,\r\n phaseTypes: state.phases.phaseTypes,\r\n notifications: state.notifications\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n changeCurrentExercise,\r\n getRemainingDaysObject,\r\n getPhaseTypes,\r\n getUserManual,\r\n getNotifications\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(withRouter(WithRoles(PrivateLayout))));\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport { GET, GET_TYPES } from '@hobs/constants/phases';\r\n\r\nexport function getPhases() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('phases')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, ...response };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: GET.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: GET.SUCCESS, response };\r\n }\r\n function failure(error) {\r\n return { type: GET.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getPhaseTypes() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('common/phaseTypes')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, ...response };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: GET_TYPES.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: GET_TYPES.SUCCESS, response };\r\n }\r\n function failure(error) {\r\n return { type: GET_TYPES.FAILURE, error };\r\n }\r\n}\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport { DOWNLOAD } from '@hobs/constants/userManual';\r\n\r\nexport function getUserManual() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('UserManual/Export', { forceBlob: true })\r\n .then(response => {\r\n if (response) {\r\n dispatch(success());\r\n\r\n return { success: true, payload: response };\r\n } else {\r\n dispatch(failure());\r\n const data = {\r\n status: response.status,\r\n payload: response.response\r\n ? JSON.parse(response.response)\r\n : response\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(() => {\r\n dispatch(failure());\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: DOWNLOAD.REQUEST };\r\n }\r\n function success() {\r\n return { type: DOWNLOAD.SUCCESS };\r\n }\r\n function failure() {\r\n return { type: DOWNLOAD.FAILURE };\r\n }\r\n}\r\n","import React from 'react';\r\nimport propTypes from 'prop-types';\r\nimport Styles from './Homepage.module.scss';\r\n\r\nconst Homepage = ({ children }) => {\r\n return (\r\n
\r\n

Home

\r\n
\r\n
\r\n
{children}
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nHomepage.propTypes = {\r\n children: propTypes.oneOfType([\r\n propTypes.object,\r\n propTypes.array,\r\n propTypes.string\r\n ])\r\n};\r\n\r\nexport default Homepage;\r\n","import React from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport Homepage from '@hobs/components/Homepage';\r\nimport './Home.scss';\r\nimport { getExerciseHomePage } from '../../actions/exercises';\r\n\r\nclass Home extends React.PureComponent {\r\n static propTypes = {\r\n getExerciseHomePage: PropTypes.func,\r\n auth: PropTypes.object,\r\n page: PropTypes.oneOfType([PropTypes.object, PropTypes.string])\r\n };\r\n\r\n componentDidMount() {\r\n this.props.getExerciseHomePage();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { CurrentExerciseId } = this.props.auth.user;\r\n if (\r\n prevProps &&\r\n CurrentExerciseId !== prevProps.auth.user.CurrentExerciseId\r\n ) {\r\n this.props.getExerciseHomePage();\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n auth: state.auth,\r\n page: state.exercises.currentPage\r\n});\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getExerciseHomePage: id => dispatch(getExerciseHomePage(id))\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withRouter(Home));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport objectPath from 'object-path';\r\nimport classnames from 'classnames';\r\nimport { getIn } from 'formik';\r\nimport Styles from './FormError.module.scss';\r\n\r\nexport const WithErrorLabel = Component => {\r\n const Label = props => {\r\n const { field, form } = props;\r\n const errors = objectPath.get(form, 'errors');\r\n const name = objectPath.get(field, 'name');\r\n\r\n const isError = IsError(field, form);\r\n\r\n return (\r\n \r\n \r\n {isError && (\r\n
\r\n {getIn(errors, name)}\r\n
\r\n )}\r\n \r\n );\r\n };\r\n\r\n Label.propTypes = {\r\n form: PropTypes.object,\r\n field: PropTypes.object\r\n };\r\n\r\n return Label;\r\n};\r\n\r\nexport const IsError = (field, form) => {\r\n const touched = objectPath.get(form, 'touched');\r\n const errors = objectPath.get(form, 'errors');\r\n const name = objectPath.get(field, 'name');\r\n return getIn(touched, name) && getIn(errors, name);\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Tooltip from '@hobs/components/Tooltip';\r\nimport Styles from './InputLabel.module.scss';\r\n\r\nconst InputLabel = ({ children, indicationMessage, ...props }) => {\r\n return (\r\n \r\n \r\n {indicationMessage && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nInputLabel.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object,\r\n PropTypes.string\r\n ]),\r\n indicationMessage: PropTypes.object\r\n};\r\n\r\nexport default InputLabel;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classNames from 'classnames';\r\nimport { WithErrorLabel } from '@hobs/components/FormError';\r\nimport InputLabel from '../InputLabel';\r\n\r\nimport Styles from './Input.module.scss';\r\n\r\nconst Input = ({\r\n large = false,\r\n field,\r\n placeholder,\r\n children,\r\n disabled,\r\n error,\r\n type = 'text',\r\n onChange = () => {},\r\n icon,\r\n search,\r\n onKeyUp,\r\n onBlur = () => {},\r\n onKeyPress = () => {},\r\n onPaste = () => {},\r\n noMargin,\r\n value,\r\n maxLength,\r\n innerRef,\r\n autoComplete,\r\n className,\r\n name,\r\n borderless = false,\r\n indicationMessage,\r\n defaultValue\r\n}) => {\r\n return (\r\n \r\n {children && (\r\n \r\n {children}\r\n \r\n )}\r\n {icon ? icon : null}\r\n {\r\n onChange(event);\r\n if (field && field.onChange) {\r\n field.onChange(event);\r\n }\r\n }}\r\n onKeyPress={onKeyPress}\r\n onPaste={onPaste}\r\n onBlur={event => {\r\n onBlur(event);\r\n if (field && field.onBlur) {\r\n field.onBlur(event);\r\n }\r\n }}\r\n defaultValue={defaultValue}\r\n />\r\n {error && }\r\n \r\n );\r\n};\r\n\r\nInput.propTypes = {\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.bool,\r\n PropTypes.number\r\n ]),\r\n name: PropTypes.string,\r\n error: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.bool,\r\n PropTypes.number,\r\n PropTypes.object\r\n ]),\r\n className: PropTypes.string,\r\n innerRef: PropTypes.any,\r\n large: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n noMargin: PropTypes.bool,\r\n search: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\r\n form: PropTypes.object,\r\n field: PropTypes.object,\r\n placeholder: PropTypes.string,\r\n maxLength: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n onChange: PropTypes.func,\r\n onKeyUp: PropTypes.func,\r\n onPaste: PropTypes.func,\r\n onBlur: PropTypes.func,\r\n onKeyPress: PropTypes.func,\r\n icon: PropTypes.element,\r\n type: PropTypes.oneOf(['time', 'text', 'password', 'date', 'number']),\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object,\r\n PropTypes.string\r\n ]),\r\n autoComplete: PropTypes.string,\r\n borderless: PropTypes.bool,\r\n indicationMessage: PropTypes.object,\r\n defaultValue: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.bool,\r\n PropTypes.number\r\n ])\r\n};\r\n\r\nexport default WithErrorLabel(Input);\r\n","import validator from 'validator';\r\n\r\nexport const required = (message = 'Required') => value => {\r\n if (!value.toString().trim().length) {\r\n // We can return string or jsx as the 'error' prop for the validated Component\r\n return message;\r\n }\r\n};\r\n\r\nexport const email = (message = 'Invalid email format') => value => {\r\n if (!validator.isEmail(value)) {\r\n return message;\r\n }\r\n};\r\n\r\nexport const phoneRegex = /^(\\+?\\d{0,4})?\\s?-?\\s?(\\(?\\d{3}\\)?)\\s?-?\\s?(\\(?\\d{3}\\)?)\\s?-?\\s?(\\(?\\d{4}\\)?)?$/;\r\n\r\nexport const multiEmailsValidator = value => {\r\n if (!value) {\r\n return;\r\n }\r\n\r\n const emails = value.split(';');\r\n\r\n const areEmailsValid = emails.reduce((result, email) => {\r\n if (!result) {\r\n return result;\r\n }\r\n\r\n return !email || validator.isEmail(email);\r\n }, true);\r\n\r\n return !areEmailsValid;\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Formik, Field, Form, ErrorMessage } from 'formik';\r\nimport Input from '@hobs/components/Input';\r\nimport { required, email } from '@hobs/validations';\r\nimport { RaisedButton } from '@hobs/components/Buttons';\r\nimport Styles from './LoginForm.module.scss';\r\n\r\nclass LoginForm extends React.Component {\r\n emailValidation = value => {\r\n const { translations } = this.props;\r\n\r\n if (required()(value)) {\r\n return required(translations.validation.emailRequired)(value);\r\n }\r\n if (email()(value)) {\r\n return email(translations.validation.email)(value);\r\n }\r\n\r\n return false;\r\n };\r\n\r\n onSubmit = async (values, actions) => {\r\n const results = await this.props.onSubmit(values);\r\n\r\n if (results && !results.success) {\r\n actions.setSubmitting(false);\r\n actions.setErrors({\r\n password: true,\r\n email: true,\r\n form: results.message\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n const { translations } = this.props;\r\n return (\r\n
\r\n \r\n {({ isSubmitting }) => (\r\n
\r\n \r\n {translations.email}\r\n \r\n \r\n {translations.password}\r\n \r\n\r\n (\r\n
\r\n {msg}\r\n
\r\n )}\r\n />\r\n\r\n \r\n {translations.login}\r\n \r\n \r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nLoginForm.propTypes = {\r\n onSubmit: PropTypes.func,\r\n translations: PropTypes.object\r\n};\r\n\r\nexport default LoginForm;\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Formik, Field, Form, ErrorMessage } from 'formik';\r\nimport Input from '@hobs/components/Input';\r\nimport { required } from '@hobs/validations';\r\nimport { RaisedButton } from '@hobs/components/Buttons';\r\nimport Styles from './LoginTokenForm.module.scss';\r\n\r\nconst emailCounterSeconds = 10;\r\n\r\nconst LoginTokenForm = (props) => {\r\n const [emailResendCounter, setEmailResetCounter] = useState(0);\r\n const [emailCounterEnabled, setEmailCounterEnabled] = useState(true);\r\n const [isAccountLocked, setIsAccountLocked] = useState(false);\r\n const [emailResendText, setEmailResendText] = useState(emailCounterSeconds);\r\n\r\n useEffect(() => {\r\n props.onResendEmail();\r\n startEmailCounter(emailCounterSeconds);\r\n }, []);\r\n\r\n async function onResendEmail() {\r\n setEmailCounterEnabled(false);\r\n const result = await props.onResendEmail();\r\n\r\n if (!result.success) {\r\n return;\r\n }\r\n\r\n setEmailCounterEnabled(true);\r\n startEmailCounter(emailCounterSeconds);\r\n }\r\n\r\n function startEmailCounter(counter) {\r\n counter--;\r\n if (counter > 0) {\r\n setEmailResetCounter(counter);\r\n setEmailResendText(counter);\r\n\r\n setTimeout(() => startEmailCounter(counter), 1000);\r\n }\r\n else {\r\n setEmailResetCounter(0);\r\n setEmailResendText(props.translations.resendEmail);\r\n }\r\n }\r\n\r\n function tokenValidation(value) {\r\n const { translations } = props;\r\n\r\n if (required()(value)) {\r\n return required(translations.validation.tokenRequired)(value);\r\n }\r\n\r\n if (value.length > 10) {\r\n return 'Verification code is too long';\r\n }\r\n\r\n return false;\r\n };\r\n\r\n async function onSubmit(values, actions) {\r\n const results = await props.onSubmit(values.token);\r\n\r\n if (results && !results.success) {\r\n setIsAccountLocked(results.lockoutEnabled);\r\n actions.setErrors({\r\n token: true,\r\n form: results.message || 'Verification code is incorrect or has expired. Please try again'\r\n });\r\n }\r\n\r\n actions.setSubmitting(false);\r\n };\r\n\r\n\r\n const { translations } = props;\r\n return (\r\n
\r\n \r\n {({ isSubmitting }) => (\r\n
\r\n \r\n {translations.token}\r\n \r\n\r\n (\r\n
\r\n {msg}\r\n
\r\n )}\r\n />\r\n\r\n
\r\n \r\n {translations.login}\r\n \r\n 0}\r\n onClick={() => onResendEmail()}\r\n >\r\n {emailResendText}\r\n \r\n
\r\n \r\n )}\r\n \r\n
\r\n );\r\n}\r\n\r\nLoginTokenForm.propTypes = {\r\n onSubmit: PropTypes.func,\r\n onResendEmail: PropTypes.func,\r\n translations: PropTypes.object\r\n};\r\n\r\nexport default LoginTokenForm;\r\n","import axios from 'axios';\r\n\r\nconst customLogoPaths = [\r\n '/custom/logo.png',\r\n '/custom/logo.jpg',\r\n '/custom/logo.jpeg',\r\n '/custom/logo.gif',\r\n '/custom/logo.svg'\r\n];\r\n\r\nexport const getLoginImage = async () => {\r\n const viableLogo = [];\r\n\r\n await Promise.all(\r\n customLogoPaths.map(async logoPath => {\r\n const logoResult = await tryGetLogoImage(\r\n `${process.env.PUBLIC_URL}${logoPath}?v=${new Date().getTime()}`\r\n );\r\n if (logoResult.available) {\r\n viableLogo.push(logoResult.path);\r\n }\r\n })\r\n );\r\n\r\n if (!viableLogo.length) {\r\n return;\r\n }\r\n\r\n return viableLogo[0];\r\n};\r\n\r\nconst tryGetLogoImage = path => {\r\n return axios(`${path}`, { method: 'HEAD' })\r\n .then(response => {\r\n return {\r\n path,\r\n available:\r\n response.status < 400 &&\r\n response.headers['content-type'].includes('image')\r\n };\r\n })\r\n .catch(() => {\r\n return { path, available: false };\r\n });\r\n};\r\n","import React from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { login, submitMfaVerificationToken, requestMfaTokenByEmail } from '@hobs/auth/actions';\r\nimport { withTranslation } from 'react-i18next';\r\nimport LoginForm from '@hobs/auth/components/LoginForm';\r\nimport LoginTokenForm from '@hobs/auth/components/LoginTokenForm';\r\nimport { connect } from 'react-redux';\r\nimport propTypes from 'prop-types';\r\nimport { getLoginImage } from '@hobs/utils/customLogoResolver';\r\nimport './Login.scss';\r\n\r\nclass Login extends React.PureComponent {\r\n static propTypes = {\r\n login: propTypes.func,\r\n submitMfaVerificationToken: propTypes.func,\r\n requestMfaTokenByEmail: propTypes.func,\r\n history: propTypes.object,\r\n t: propTypes.func\r\n };\r\n\r\n state = {\r\n logoSrc: null,\r\n isValidatingMfaToken: false\r\n };\r\n\r\n async submit(values) {\r\n const results = await this.props.login(values.email, values.password);\r\n\r\n if (results.success) {\r\n return this.props.history.push('/');\r\n }\r\n\r\n if (results.isMfaValidationNeeded){\r\n this.setState({isValidatingMfaToken: true})\r\n }\r\n\r\n return results;\r\n }\r\n\r\n async submitToken(token) {\r\n const results = await this.props.submitMfaVerificationToken(token);\r\n\r\n if (results.success) {\r\n return this.props.history.push('/');\r\n }\r\n\r\n return results;\r\n }\r\n\r\n async resendEmail() {\r\n const results = await this.props.requestMfaTokenByEmail();\r\n\r\n return results;\r\n }\r\n\r\n componentDidMount() {\r\n this.getLoginImage();\r\n }\r\n\r\n getLoginImage = () => {\r\n getLoginImage().then(result => {\r\n if (!result) {\r\n this.setState({\r\n logoSrc: require('../../assets/images/ndlo-logo.png')\r\n });\r\n return;\r\n }\r\n\r\n this.setState({ logoSrc: result });\r\n });\r\n };\r\n\r\n render() {\r\n const { t } = this.props;\r\n\r\n return (\r\n
\r\n
HOBS
\r\n
\r\n
\r\n {this.state.logoSrc ? (\r\n \"\"\r\n ) : (\r\n \r\n )}\r\n \"\"\r\n
\r\n
\r\n
\r\n {this.state.isValidatingMfaToken ? \r\n
\r\n
{t('Email login')}
\r\n
{t('Verification code has been sent to your email. Please check your email and type in the code below.')}
\r\n \r\n
\r\n :\r\n
\r\n
{t('Login')}
\r\n \r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n login: (username, password) => dispatch(login(username, password)),\r\n submitMfaVerificationToken: (token) => dispatch(submitMfaVerificationToken(token)),\r\n requestMfaTokenByEmail: () => dispatch(requestMfaTokenByEmail())\r\n \r\n };\r\n}\r\n\r\nexport default withRouter(\r\n connect(\r\n null,\r\n mapDispatchToProps\r\n )(withTranslation()(Login))\r\n);\r\n","import { PureComponent } from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { logout } from '@hobs/auth/actions.js';\r\nimport { connect } from 'react-redux';\r\nimport propTypes from 'prop-types';\r\n\r\nclass Logout extends PureComponent {\r\n static propTypes = {\r\n logout: propTypes.func,\r\n history: propTypes.object\r\n };\r\n\r\n componentDidMount() {\r\n this.props.logout().then(() => {\r\n this.props.history.push('/login');\r\n });\r\n }\r\n render() {\r\n return null;\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n logout: () => dispatch(logout())\r\n };\r\n}\r\n\r\nexport default connect(\r\n null,\r\n mapDispatchToProps\r\n)(withRouter(Logout));\r\n","import { Position, Intent, Toaster as BPToaster } from '@blueprintjs/core';\r\nconst Toaster = BPToaster.create({\r\n className: 'hobs-toaster',\r\n position: Position.TOP\r\n});\r\n\r\nconst mergeOptions = props => {\r\n let toastProps = {};\r\n if (typeof props === 'string') {\r\n toastProps.message = props;\r\n toastProps.intent = Intent.NONE;\r\n } else {\r\n toastProps = props;\r\n }\r\n return toastProps;\r\n};\r\n\r\nconst success = (props, key) => {\r\n const toastProps = mergeOptions(props);\r\n toastProps.intent = Intent.SUCCESS;\r\n toastProps.icon = 'tick';\r\n Toaster.show(toastProps, key);\r\n};\r\n\r\nconst error = (props, key) => {\r\n const toastProps = mergeOptions(props);\r\n toastProps.intent = Intent.DANGER;\r\n toastProps.icon = 'delete';\r\n Toaster.show(toastProps, key);\r\n};\r\n\r\nconst info = (props, key) => {\r\n const toastProps = mergeOptions(props);\r\n toastProps.intent = Intent.WARNING;\r\n toastProps.icon = 'info-sign';\r\n Toaster.show(toastProps, key);\r\n};\r\n\r\nconst warning = info;\r\n\r\nexport const Toast = {\r\n success,\r\n error,\r\n info,\r\n warning\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Formik, Field, Form, ErrorMessage } from 'formik';\r\nimport Input from '@hobs/components/Input';\r\nimport { RaisedButton } from '@hobs/components/Buttons';\r\nimport Styles from './ResetForm.module.scss';\r\n\r\nclass ResetForm extends React.Component {\r\n onSubmit = async (values, actions) => {\r\n const results = await this.props.onSubmit(values);\r\n\r\n if (results && !results.success) {\r\n actions.setSubmitting(false);\r\n actions.setErrors({\r\n form: results.payload.details\r\n ? results.payload.details[0].message[0]\r\n : results.payload.message\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n const { translations } = this.props;\r\n return (\r\n
\r\n \r\n {({ isSubmitting }) => (\r\n
\r\n \r\n {translations.password}\r\n \r\n \r\n {translations.confirmPassword}\r\n \r\n\r\n \r\n\r\n \r\n {translations.confirm}\r\n \r\n \r\n )}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nResetForm.propTypes = {\r\n onSubmit: PropTypes.func,\r\n translations: PropTypes.object\r\n};\r\n\r\nexport default ResetForm;\r\n","import React from 'react';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { reset } from '@hobs/auth/actions';\r\nimport { withTranslation } from 'react-i18next';\r\nimport Toast from '@hobs/components/Toast';\r\nimport ResetForm from '@hobs/auth/components/ResetForm';\r\nimport { connect } from 'react-redux';\r\nimport propTypes from 'prop-types';\r\nimport { getLoginImage } from '@hobs/utils/customLogoResolver';\r\n\r\nimport './Reset.scss';\r\n\r\nclass Reset extends React.PureComponent {\r\n static propTypes = {\r\n reset: propTypes.func,\r\n history: propTypes.object,\r\n t: propTypes.func,\r\n match: propTypes.object\r\n };\r\n\r\n state = {\r\n logoSrc: null\r\n };\r\n\r\n async submit(values) {\r\n const {\r\n t,\r\n match: { params },\r\n reset\r\n } = this.props;\r\n\r\n const results = await reset(\r\n params.userId,\r\n params.token,\r\n values.password,\r\n values.confirmPassword\r\n );\r\n\r\n if (results.success) {\r\n Toast.success(\r\n t(\r\n 'Password was changed successfully, now you can login using your user name and newly created password'\r\n )\r\n );\r\n\r\n return this.props.history.push('/login');\r\n }\r\n\r\n return results;\r\n }\r\n\r\n componentDidMount() {\r\n this.getLoginImage();\r\n }\r\n\r\n getLoginImage = () => {\r\n getLoginImage().then(result => {\r\n if (!result) {\r\n this.setState({\r\n logoSrc: require('../../assets/images/ndlo-logo.png')\r\n });\r\n return;\r\n }\r\n\r\n this.setState({ logoSrc: result });\r\n });\r\n };\r\n\r\n render() {\r\n const { t } = this.props;\r\n\r\n return (\r\n
\r\n
HOBS
\r\n
\r\n
\r\n {this.state.logoSrc ? (\r\n \"\"\r\n ) : (\r\n \r\n )}\r\n \"\"\r\n
\r\n
\r\n
\r\n
{t('reset.title')}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch) {\r\n return {\r\n reset: (email, resetToken, password, confirmPassword) =>\r\n dispatch(reset(email, resetToken, password, confirmPassword))\r\n };\r\n}\r\n\r\nexport default withRouter(\r\n connect(\r\n null,\r\n mapDispatchToProps\r\n )(withTranslation()(Reset))\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cx from 'classnames';\r\nimport { STATUSES, ORDER_STATUSES } from '@hobs/utils/constants';\r\nimport Styles from './Status.module.scss';\r\n\r\nconst Status = ({\r\n name,\r\n type = 0,\r\n statuses,\r\n order = false,\r\n inverted = false\r\n}) => {\r\n if (!statuses) {\r\n statuses = order ? ORDER_STATUSES : STATUSES;\r\n }\r\n\r\n const color = statuses[isNaN(type) ? 0 : type].color;\r\n\r\n return (\r\n \r\n {name}\r\n \r\n );\r\n};\r\n\r\nStatus.propTypes = {\r\n order: PropTypes.bool,\r\n name: PropTypes.string,\r\n type: PropTypes.number,\r\n statuses: PropTypes.object,\r\n inverted: PropTypes.bool\r\n};\r\n\r\nexport default Status;\r\n","import React from 'react';\r\nimport Tooltip from '@hobs/components/Tooltip';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport Styles from './Indicator.module.scss';\r\n\r\nconst Indicator = ({ message }) => {\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nIndicator.propTypes = {\r\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.array])\r\n};\r\n\r\nexport default Indicator;\r\n","import React, { PureComponent } from 'react';\r\nimport ShortId from 'shortid';\r\nimport Input from '@hobs/components/Input';\r\nimport Icon from '@hobs/components/Icon';\r\n\r\nconst KEY_ENTER = 13;\r\n\r\nfunction WithQuickSearch(Component) {\r\n return class QuickSearch extends PureComponent {\r\n state = {\r\n key: ShortId.generate(),\r\n inputValue: null,\r\n withQuickSearchFilter: {}\r\n };\r\n\r\n handleQuickSearchChange = onSearch => event => {\r\n if (event.keyCode === KEY_ENTER) {\r\n this.quickSearch(event.target.value, onSearch);\r\n }\r\n };\r\n\r\n quickSearch = (value, onSearch) => {\r\n\r\n let state = {};\r\n if (value === '' || !value) {\r\n state = {\r\n withQuickSearchFilter: {}\r\n };\r\n } else {\r\n state = {\r\n withQuickSearchFilter: {\r\n logic: 'and',\r\n filters: [\r\n {\r\n field: 'QuickSearchField',\r\n operator: 'contains',\r\n value\r\n }\r\n ]\r\n }\r\n };\r\n }\r\n\r\n this.setState(state, () => {\r\n onSearch(value);\r\n });\r\n };\r\n\r\n withQuickSearchForm = ({ onSearch, preFilledQuickSearch, placeholder, ...props }) => {\r\n\r\n if (\r\n preFilledQuickSearch && \r\n !this.state.inputValue &&\r\n preFilledQuickSearch !== this.state.inputValue\r\n ) {\r\n this.setState(\r\n {\r\n key: ShortId.generate(),\r\n inputValue: preFilledQuickSearch\r\n },\r\n this.quickSearch(preFilledQuickSearch, onSearch)\r\n );\r\n }\r\n return (\r\n }\r\n placeholder={placeholder || \"search\"}\r\n defaultValue={\r\n preFilledQuickSearch ? preFilledQuickSearch : this.state.inputValue\r\n }\r\n onKeyUp={this.handleQuickSearchChange(onSearch)}\r\n />\r\n );\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n };\r\n}\r\n\r\nexport default WithQuickSearch;\r\n","import React, { PureComponent } from 'react';\r\nimport { compose } from 'redux';\r\nimport { connect } from 'react-redux';\r\nimport ShortId from 'shortid';\r\nimport { SquareButton, SquareGhostButton } from '@hobs/components/Buttons';\r\nimport PropTypes from 'prop-types';\r\nimport Styles from './WithAnnexFilter.module.scss';\r\n\r\nconst WithAnnexFilter = Component => {\r\n class AnnexFilter extends PureComponent {\r\n state = {\r\n selected: null\r\n };\r\n\r\n toggleAnnex = (annex, callback) => {\r\n let selected = this.state.selected;\r\n if (selected === annex.annexId) {\r\n selected = null;\r\n } else {\r\n selected = annex.annexId;\r\n }\r\n\r\n this.setState(\r\n {\r\n selected\r\n },\r\n () => {\r\n callback(this.state.selected, annex);\r\n }\r\n );\r\n };\r\n\r\n resetFilter = callback => {\r\n this.setState(\r\n {\r\n selected: null\r\n },\r\n () => {\r\n callback(this.state.selected, null);\r\n }\r\n );\r\n };\r\n\r\n formateOdataFilter = fieldName => {\r\n return {\r\n logic: 'or',\r\n filters: [\r\n {\r\n field: fieldName,\r\n operator: 'eq',\r\n value: `${this.state.selected}`\r\n }\r\n ]\r\n };\r\n };\r\n\r\n renderAnnexesFilterForm = (onSelect = () => {}, preselectedAnnex = null) => {\r\n const AllButton = this.state.selected ? SquareGhostButton : SquareButton;\r\n if (preselectedAnnex && this.state.selected !== preselectedAnnex.annexId) {\r\n this.toggleAnnex(preselectedAnnex, onSelect);\r\n }\r\n\r\n return (\r\n
\r\n {\r\n this.resetFilter(onSelect);\r\n }}\r\n type=\"button\"\r\n key={ShortId.generate()}\r\n >\r\n {this.props.t('All')}\r\n \r\n\r\n {this.props.annexes\r\n .map(annex => {\r\n const Button =\r\n this.state.selected === annex.annexId\r\n ? SquareButton\r\n : SquareGhostButton;\r\n\r\n return (\r\n {\r\n this.toggleAnnex(annex, onSelect);\r\n }}\r\n key={annex.annexId}\r\n >\r\n {annex.name}\r\n \r\n );\r\n })}\r\n
\r\n );\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n AnnexFilter.propTypes = {\r\n annexes: PropTypes.array,\r\n t: PropTypes.func\r\n };\r\n\r\n return AnnexFilter;\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n annexes: state.annex.list\r\n});\r\n\r\nexport default compose(\r\n connect(\r\n mapStateToProps,\r\n null\r\n ),\r\n WithAnnexFilter\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport accounting from 'accounting';\r\n\r\nexport const formatCurrency = (value, showPlaceholder) => {\r\n if (!value && value !== 0) {\r\n return `${showPlaceholder ? '--' : ''}`;\r\n }\r\n // TODO CONFIG BY LOCALE\r\n return accounting.formatMoney(value, {\r\n symbol: '',\r\n precision: 2,\r\n thousand: ' ',\r\n format: {\r\n pos: '%s%v',\r\n neg: '-%s%v',\r\n zero: '%s%v'\r\n }\r\n });\r\n};\r\n\r\nconst Money = ({ amount, amountRangeString, currency, component, showPlaceholder, className }) => {\r\n const Component = component || Money.defaultProps.component;\r\n const formattedAmount = typeof amount === 'string' ? amount.replace(',', '.') : amount;\r\n const numberAmount = Number.parseFloat(formattedAmount);\r\n \r\n if (amountRangeString) {\r\n const amounts = amountRangeString.replace(',', '.').split(' - ')\r\n const amountFrom = Number.parseFloat(amounts[0]);\r\n const amountTo = amounts[1] ? Number.parseFloat(amounts[1]) : null;\r\n if (isNaN(amountFrom)) {\r\n return -\r\n }\r\n \r\n return (\r\n \r\n {formatCurrency(amountFrom, false)}\r\n {amountTo && ' - ' + formatCurrency(amountTo, false)} \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {formatCurrency(numberAmount, showPlaceholder)} \r\n {numberAmount ? ' ' + currency.toUpperCase() : ''}\r\n \r\n );\r\n};\r\n\r\nMoney.defaultProps = {\r\n component: 'span',\r\n amount: 0,\r\n currency: '',\r\n showPlaceholder: false\r\n};\r\n\r\nMoney.propTypes = {\r\n amount: PropTypes.number | PropTypes.string,\r\n currency: PropTypes.string,\r\n component: PropTypes.string,\r\n className: PropTypes.string,\r\n showColors: PropTypes.bool,\r\n showPlaceholder: PropTypes.bool\r\n};\r\n\r\nexport default Money;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { WithErrorLabel } from '@hobs/components/FormError';\r\nimport classnames from 'classnames';\r\nimport InputLabel from '../InputLabel';\r\nimport Styles from './Dropdown.module.scss';\r\n\r\nconst Dropdown = ({\r\n label,\r\n field,\r\n value,\r\n name,\r\n placeholder,\r\n noMargin,\r\n children,\r\n onChange = () => {},\r\n disabled,\r\n large,\r\n wrapperClass,\r\n indicationMessage\r\n}) => {\r\n return (\r\n \r\n {label && (\r\n {label}\r\n )}\r\n \r\n {\r\n onChange(event);\r\n if (field && field.onChange) {\r\n field.onChange(event);\r\n }\r\n }}\r\n >\r\n {children}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nDropdown.propTypes = {\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.bool,\r\n PropTypes.number\r\n ]),\r\n name: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n noMargin: PropTypes.bool,\r\n large: PropTypes.bool,\r\n wrapperClass: PropTypes.string,\r\n form: PropTypes.object,\r\n field: PropTypes.object,\r\n placeholder: PropTypes.string,\r\n onChange: PropTypes.func,\r\n type: PropTypes.oneOf(['text', 'password']),\r\n label: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object,\r\n PropTypes.string\r\n ]),\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object,\r\n PropTypes.string\r\n ]),\r\n indicationMessage: PropTypes.object\r\n};\r\n\r\nexport default WithErrorLabel(Dropdown);\r\n","export const expandDataItem = event => {\r\n const clickedElement = event.target;\r\n const isTd = clickedElement.tagName === 'TD';\r\n\r\n if (isTd) {\r\n toggleExpanded(clickedElement);\r\n return;\r\n }\r\n\r\n toggleExpanded(clickedElement.parentElement);\r\n};\r\n\r\nconst toggleExpanded = element => {\r\n const isExpanded = element.classList.contains('expanded');\r\n isExpanded\r\n ? element.classList.remove('expanded')\r\n : element.classList.add('expanded');\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { isValid } from 'date-fns';\r\nimport { format, parse, formatLocal } from '@hobs/utils/formatWithTimeZone';\r\nimport { DATE_FORMAT, DATETIME_FORMAT } from '@hobs/utils/constants';\r\nimport { expandDataItem } from '@hobs/utils/expandItem';\r\n\r\nexport const CellDate = props => {\r\n const date = parse(props.dataItem[props.field]);\r\n\r\n if (date === '-' || !isValid(date)) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n
{format(date, DATE_FORMAT)}
\r\n \r\n );\r\n};\r\n\r\nexport const CellDateTime = props => {\r\n const date = formatLocal(props.dataItem[props.field], DATETIME_FORMAT);\r\n if (!date) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {date}\r\n \r\n );\r\n};\r\n\r\nCellDate.propTypes = {\r\n dataItem: PropTypes.shape({\r\n dataItem: PropTypes.array\r\n }),\r\n field: PropTypes.string,\r\n className: PropTypes.string\r\n};\r\n\r\nCellDateTime.propTypes = {\r\n dataItem: PropTypes.shape({\r\n dataItem: PropTypes.array\r\n }),\r\n field: PropTypes.string,\r\n className: PropTypes.string\r\n};\r\n","import React, { useRef, useCallback, useEffect } from 'react';\r\nimport { Rnd } from 'react-rnd';\r\nimport { Dialog as BPDialog } from '@blueprintjs/core';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport Styles from './Dialog.module.scss';\r\n\r\nconst getAbsoluteHeight = element => {\r\n const styles = window.getComputedStyle(element);\r\n const margin =\r\n parseFloat(styles['marginTop']) + parseFloat(styles['marginBottom']);\r\n\r\n return Math.ceil(element.offsetHeight + margin);\r\n};\r\n\r\nexport const DraggableDialog = ({\r\n children,\r\n className,\r\n isOpen,\r\n onClose,\r\n title,\r\n width: defaultDialogWidth = 500\r\n}) => {\r\n const dialogRef = useRef();\r\n const rnrRef = useRef();\r\n\r\n const windowWidth = window.innerWidth;\r\n const windowHeight = window.innerHeight;\r\n\r\n const updateCalculatedSize = useCallback(() => {\r\n let currentHeight = 0;\r\n\r\n if (dialogRef.current) {\r\n currentHeight = getAbsoluteHeight(dialogRef.current);\r\n }\r\n\r\n if (!rnrRef.current) {\r\n return null;\r\n }\r\n\r\n const height = !currentHeight ? 'auto' : currentHeight;\r\n\r\n rnrRef.current.updateSize({\r\n width: Math.min(defaultDialogWidth, windowWidth),\r\n height\r\n });\r\n\r\n rnrRef.current.updatePosition({\r\n x: Math.max((windowWidth - defaultDialogWidth) / 2, 0),\r\n y: Math.max((windowHeight - height) / 2, 0)\r\n });\r\n }, [defaultDialogWidth, windowHeight, windowWidth]);\r\n\r\n useEffect(() => {\r\n updateCalculatedSize();\r\n }, [isOpen, updateCalculatedSize]);\r\n\r\n if (!isOpen) {\r\n return null;\r\n }\r\n\r\n // Copy of BP3 dialog\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n

{title}

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {children}\r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nDraggableDialog.propTypes = {\r\n className: PropTypes.string,\r\n title: PropTypes.string,\r\n width: PropTypes.number,\r\n children: PropTypes.any,\r\n isOpen: PropTypes.bool,\r\n onClose: PropTypes.func\r\n};\r\n\r\nconst Dialog = ({ children, className, ...rest }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nDialog.propTypes = {\r\n className: PropTypes.string,\r\n children: PropTypes.any\r\n};\r\n\r\nexport default Dialog;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ShortId from 'shortid';\r\nimport ObjectPath from 'object-path';\r\nimport InputLabel from '../InputLabel';\r\nimport Styles from './Checkbox.module.scss';\r\n\r\nconst Checkbox = ({\r\n field,\r\n children,\r\n onChange = () => {},\r\n onClick = () => {},\r\n value,\r\n name,\r\n checked\r\n}) => {\r\n const htmlFor = ShortId.generate();\r\n\r\n const attrs = {};\r\n attrs.checked = ObjectPath.get(field, 'value') ? true : checked;\r\n\r\n return (\r\n
\r\n \r\n {children}\r\n
\r\n );\r\n};\r\n\r\nCheckbox.propTypes = {\r\n name: PropTypes.string,\r\n checked: PropTypes.bool,\r\n children: PropTypes.any,\r\n onChange: PropTypes.func,\r\n onClick: PropTypes.func,\r\n value: PropTypes.oneOfType([\r\n PropTypes.string,\r\n PropTypes.bool,\r\n PropTypes.number\r\n ]),\r\n field: PropTypes.object,\r\n form: PropTypes.object\r\n};\r\n\r\nexport default Checkbox;\r\n","import React, { PureComponent } from 'react';\r\nimport ShortId from 'shortid';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from '@hobs/components/Dialog';\r\nimport { RaisedButton } from '@hobs/components/Buttons';\r\nimport Checkbox from '@hobs/components/Checkbox';\r\nimport Toast from '@hobs/components/Toast';\r\n\r\nfunction WithVisibleColumns(Component) {\r\n class VisibleColumns extends PureComponent {\r\n state = {\r\n columns: {},\r\n originalColumns: {},\r\n appliedColumns: {},\r\n dialogOpen: false,\r\n selectAllChecked: true,\r\n onUpdate: () => {}\r\n };\r\n\r\n openDialog = () => {\r\n this.setState({\r\n originalColumns: this.state.columns\r\n });\r\n\r\n this.setState({\r\n dialogOpen: true\r\n });\r\n\r\n this.checkSelectAllChecked(this.state.columns);\r\n };\r\n\r\n onDialogClose = () => {\r\n this.setState({\r\n dialogOpen: false,\r\n columns: this.state.originalColumns\r\n });\r\n };\r\n\r\n checkSelectAllChecked = columns => {\r\n if (!columns) return;\r\n const areAllSelected = Object.getOwnPropertyNames(columns)\r\n .filter(key => columns[key].title)\r\n .every(key => columns[key].visible);\r\n\r\n this.setState({\r\n selectAllChecked: areAllSelected\r\n });\r\n };\r\n\r\n getVisibleColumnCount = () => {\r\n return Object.getOwnPropertyNames(this.state.appliedColumns).reduce(\r\n (result, key) => {\r\n if (this.state.appliedColumns[key].visible) {\r\n return result + 1;\r\n }\r\n\r\n return result;\r\n },\r\n 0\r\n );\r\n };\r\n\r\n getGridColumns = () => {\r\n return this.state.appliedColumns;\r\n };\r\n\r\n setColumns = columns => {\r\n this.setState({\r\n columns,\r\n appliedColumns: columns\r\n });\r\n };\r\n\r\n onUpdate = updateFn => {\r\n this.setState({\r\n onUpdate: updateFn\r\n });\r\n };\r\n\r\n onItemCheckedChange = (key, column, columns) => {\r\n columns = {\r\n ...columns,\r\n [key]: {\r\n ...column,\r\n visible: !column.visible\r\n }\r\n };\r\n\r\n this.setState({\r\n columns: columns\r\n });\r\n\r\n this.checkSelectAllChecked(columns);\r\n };\r\n\r\n onAllSelectedCheckedChange = () => {\r\n if (this.state.selectAllChecked) {\r\n this.changeCheckStateAllTo(false);\r\n } else {\r\n this.changeCheckStateAllTo(true);\r\n }\r\n };\r\n\r\n changeCheckStateAllTo = isChecked => {\r\n let columns = { ...this.state.columns };\r\n const columnKeys = Object.getOwnPropertyNames(columns);\r\n columnKeys.forEach(key => {\r\n if (!columns[key].title) {\r\n return;\r\n }\r\n\r\n columns = {\r\n ...columns,\r\n [key]: {\r\n ...columns[key],\r\n visible: isChecked\r\n }\r\n };\r\n });\r\n\r\n this.setState({\r\n selectAllChecked: isChecked,\r\n columns: columns\r\n });\r\n };\r\n\r\n applyColumnChanges() {\r\n const { columns } = this.state;\r\n const { t } = this.props;\r\n\r\n var singleColumnSelected = false;\r\n\r\n Object.getOwnPropertyNames(columns).forEach(key => {\r\n if (columns[key].visible) {\r\n singleColumnSelected = true;\r\n return;\r\n }\r\n });\r\n\r\n if (!singleColumnSelected) {\r\n Toast.warning(t('At least one column should be selected'));\r\n return;\r\n }\r\n\r\n this.setState(\r\n {\r\n appliedColumns: columns,\r\n originalColumns: columns,\r\n dialogOpen: false\r\n },\r\n () => {\r\n this.state.onUpdate();\r\n }\r\n );\r\n }\r\n\r\n getColumns() {\r\n const columns = Object.getOwnPropertyNames(this.state.columns)\r\n .reduce((results, key) => {\r\n if (this.state.columns[key].title) {\r\n results.push({\r\n key,\r\n title: this.state.columns[key].title\r\n });\r\n }\r\n\r\n return results;\r\n }, [])\r\n .sort((a, b) => (a.title > b.title ? 1 : -1))\r\n .map(({ key }) => {\r\n return key;\r\n });\r\n\r\n const perChunk = Math.ceil(columns.length / 3); // items per chunk\r\n\r\n const chunks = columns.reduce((resultArray, item, index) => {\r\n const chunkIndex = Math.floor(index / perChunk);\r\n\r\n if (!resultArray[chunkIndex]) {\r\n resultArray[chunkIndex] = []; // start a new chunk\r\n }\r\n\r\n resultArray[chunkIndex].push(item);\r\n\r\n return resultArray;\r\n }, []);\r\n\r\n return chunks;\r\n }\r\n\r\n render() {\r\n const { t } = this.props;\r\n const { columns } = this.state;\r\n const columnChunks = this.getColumns();\r\n\r\n const title = (\r\n
\r\n {t(`Visible columns (${this.getVisibleColumnCount()})`)}\r\n
\r\n \r\n {t('Select all')}\r\n \r\n
\r\n
\r\n );\r\n\r\n return (\r\n <>\r\n \r\n
\r\n {columnChunks.map(columnKeys => (\r\n \r\n {columnKeys.map(key => {\r\n const column = columns[key];\r\n\r\n if (column.hiddenInSelection) {\r\n return null;\r\n }\r\n return (\r\n
\r\n \r\n this.onItemCheckedChange(key, column, columns)\r\n }\r\n checked={column.visible}\r\n name={key}\r\n >\r\n {column.title}\r\n \r\n
\r\n );\r\n })}\r\n
\r\n ))}\r\n \r\n\r\n
\r\n {\r\n this.applyColumnChanges();\r\n }}\r\n >\r\n {t('Apply')}\r\n \r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n VisibleColumns.propTypes = {\r\n t: PropTypes.func\r\n };\r\n\r\n return VisibleColumns;\r\n}\r\n\r\nexport default WithVisibleColumns;\r\n","import React from 'react';\r\nimport {\r\n GridColumnMenuSort,\r\n GridColumnMenuFilter,\r\n GridColumnMenuItem,\r\n GridColumnMenuFilterUI,\r\n} from '@progress/kendo-react-grid';\r\nimport { Menu, MenuItem } from '@blueprintjs/core';\r\n\r\nimport { withTranslation } from 'react-i18next';\r\nimport Checkbox from '@hobs/components/Checkbox';\r\nimport { GhostButton, RaisedButton } from '@hobs/components/Buttons';\r\nimport PropTypes from 'prop-types';\r\nimport ShortId from 'shortid';\r\nimport { GRID_OPERATORS } from '@hobs/utils/constants';\r\nimport Styles from './ColumnMenu.module.scss';\r\n\r\n/**\r\n * 🚀 PLEASE README BEFORE TRYING TO CHANGE SOMETHING.\r\n * Magic will begin below 🎩\r\n * Custom filter usage:\r\n * It's not possible to set default filter values here, you have to pass it to\r\n * kendo grid via formatted oData filter format.\r\n * 1. columnMenu must be set true work\r\n * 2.\r\n customFilter: {\r\n data: [\r\n {\r\n name: - display name of filter,\r\n value: - value will be set in oData filtering,\r\n default: | Required,\r\n field: | Not required, overrides field of column in oData filtering\r\n }\r\n ]\r\n }\r\n */\r\n\r\nclass ColumnMenu extends React.PureComponent {\r\n state = {\r\n customFilterValues: {},\r\n };\r\n\r\n saveSettings = () => {\r\n this.props.onCloseMenu();\r\n this.props.onSave();\r\n };\r\n\r\n componentDidMount() {\r\n this.setFilterValues();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.filter !== prevProps.filter) {\r\n this.setFilterValues();\r\n }\r\n }\r\n\r\n getCurrentFilters = (results = [], filter, fields) => {\r\n if (!filter) {\r\n return results;\r\n }\r\n\r\n if (Array.isArray(filter)) {\r\n return filter.reduce((res, filtr) => {\r\n return this.getCurrentFilters(res, filtr, fields);\r\n }, results);\r\n }\r\n\r\n if (fields && fields.indexOf(filter.field) > -1) {\r\n results.push(filter);\r\n }\r\n\r\n return this.getCurrentFilters(results, filter.filters, fields);\r\n };\r\n\r\n fixFilterValue(value) {\r\n if (typeof value === 'string' && value.indexOf('') > -1) {\r\n return value.replace('', '').replace('', '');\r\n }\r\n return value;\r\n }\r\n\r\n // Set field filled/prefilled column menu filters on menu open\r\n setFilterValues() {\r\n if (this.props.filter) {\r\n const data = this.props.customFilter ? this.props.customFilter.data : [];\r\n\r\n const fields = data.reduce((results, filter) => {\r\n if (filter.field) {\r\n results.push(filter.field);\r\n }\r\n\r\n return results;\r\n }, []);\r\n\r\n if (!fields.length) {\r\n fields.push(this.props.column.field);\r\n }\r\n\r\n const activeFilters = this.getCurrentFilters(\r\n [],\r\n this.props.filter.filters,\r\n fields\r\n );\r\n\r\n const currentFilters = activeFilters.reduce((results, filter) => {\r\n const filters =\r\n this.props.customFilter &&\r\n this.props.customFilter.data.find((item) => {\r\n return (\r\n item.value === filter.value ||\r\n item.value === `${filter.value}`\r\n );\r\n });\r\n\r\n if (filters) {\r\n const field = filter.field ? filter.field : this.props.column.field;\r\n const value = this.fixFilterValue(filter.value);\r\n\r\n results[`${field}_${value}`] = {\r\n ...filter,\r\n checked: true,\r\n value: filter.value,\r\n };\r\n }\r\n\r\n return results;\r\n }, {});\r\n\r\n this.setState({\r\n customFilterValues: currentFilters,\r\n });\r\n }\r\n }\r\n\r\n resetSettings = () => {\r\n this.props.onCloseMenu();\r\n this.props.onReset();\r\n };\r\n\r\n onFilterCheckboxSelect(item, checked) {\r\n let customFilterValues = null;\r\n\r\n const field = item.field ? item.field : this.props.column.field;\r\n\r\n const notCheckedCount = Object.values(this.state.customFilterValues).filter(\r\n (item) => !item.checked && !item.default\r\n ).length;\r\n\r\n if (item.default) {\r\n customFilterValues = Object.values(this.props.customFilter.data).reduce(\r\n (result, item) => {\r\n const value = this.fixFilterValue(item.value);\r\n\r\n if (!item.default) {\r\n const newField = item.field ? item.field : field;\r\n result[`${newField}_${value}`] = {\r\n ...item,\r\n checked:\r\n notCheckedCount !== 0 ||\r\n this.props.customFilter.data.length !==\r\n Object.keys(this.state.customFilterValues).length + 1,\r\n };\r\n }\r\n return result;\r\n },\r\n {}\r\n );\r\n } else {\r\n const value = this.fixFilterValue(item.value);\r\n\r\n const defaultKey = Object.values(this.state.customFilterValues).findIndex(\r\n (field) => field.default\r\n );\r\n\r\n customFilterValues = {\r\n ...this.state.customFilterValues,\r\n [`${field}_${value}`]: {\r\n ...item,\r\n checked: !checked,\r\n },\r\n };\r\n\r\n if (defaultKey > -1) {\r\n customFilterValues[defaultKey] = {\r\n ...this.state.customFilterValues[defaultKey],\r\n checked: false,\r\n };\r\n }\r\n }\r\n\r\n this.setState({\r\n customFilterValues,\r\n });\r\n }\r\n\r\n createCustomFilter() {\r\n\r\n var cFilter = this.props.customFilter.filter;\r\n const operator = cFilter && cFilter === 'contains' ? 'contains' : 'eq'; \r\n\r\n const currentFilters = Object.keys(this.state.customFilterValues).reduce(\r\n (results, key) => {\r\n const item = this.state.customFilterValues[key];\r\n if (!item.default && item.checked) {\r\n results.push({\r\n field: item.field ? item.field : this.props.column.field,\r\n operator: operator,\r\n value: item.value,\r\n });\r\n }\r\n\r\n return results;\r\n },\r\n []\r\n );\r\n\r\n let filters = [];\r\n\r\n if (currentFilters.length) {\r\n filters.push({\r\n logic: 'or',\r\n filters: currentFilters,\r\n });\r\n }\r\n\r\n if (this.props.filter) {\r\n const fields = this.props.customFilter.data.reduce((results, filter) => {\r\n if (filter.field) {\r\n results.push(filter.field);\r\n }\r\n\r\n return results;\r\n }, []);\r\n\r\n if (!fields.length) {\r\n fields.push(this.props.column.field);\r\n }\r\n\r\n const restFilters = [\r\n ...this.props.filter.filters.filter((filter) => {\r\n if (filter.filters) {\r\n return filter.filters.find(\r\n (filtr) => fields.indexOf(filtr.field) === -1\r\n );\r\n }\r\n\r\n return fields.indexOf(filter.field) === -1;\r\n }),\r\n ];\r\n\r\n if (restFilters.length) {\r\n filters = filters.concat(restFilters);\r\n }\r\n }\r\n\r\n return {\r\n logic: 'and',\r\n filters,\r\n };\r\n }\r\n\r\n onlyUniqueValues(value, index, self) {\r\n return self.indexOf(value) === index;\r\n }\r\n\r\n handleFilter = (event) => {\r\n const { onFilterChange, onCloseMenu } = this.props;\r\n\r\n onCloseMenu();\r\n\r\n onFilterChange(this.createCustomFilter());\r\n event.preventDefault();\r\n event.stopPropagation();\r\n };\r\n\r\n customFilter() {\r\n const { t, customFilter, onFilterChange } = this.props;\r\n\r\n if (customFilter) {\r\n const count = Object.values(this.state.customFilterValues).filter(\r\n (item) => item.checked && !item.default\r\n ).length;\r\n return (\r\n \r\n
\r\n {customFilter.data.map((item) => {\r\n const field = item.field ? item.field : this.props.column.field;\r\n const value = this.fixFilterValue(item.value);\r\n const checked = this.state.customFilterValues[`${field}_${value}`]\r\n ? this.state.customFilterValues[`${field}_${value}`].checked\r\n : false;\r\n const selectAllChecked =\r\n (count === 0 && item.default) ||\r\n (count + 1 ===\r\n customFilter.data\r\n .map((item) => item.value)\r\n .filter(this.onlyUniqueValues).length &&\r\n item.default);\r\n return (\r\n
\r\n {\r\n this.onFilterCheckboxSelect(item, checked);\r\n }}\r\n >\r\n {item.default ? {item.name} : item.name}\r\n \r\n
\r\n );\r\n })}\r\n
\r\n
\r\n {count} {t('items selected')}\r\n
\r\n
\r\n \r\n {t('Filter')}\r\n \r\n {\r\n this.props.onCloseMenu();\r\n this.setState(\r\n {\r\n customFilterValues: {},\r\n },\r\n () => {\r\n onFilterChange(this.createCustomFilter());\r\n }\r\n );\r\n }}\r\n >\r\n {t('Reset')}\r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n return <>;\r\n }\r\n\r\n render() {\r\n const { t, customFilter, onSave, onReset, column, sortable } = this.props;\r\n\r\n const operators = GRID_OPERATORS[column.filter] || GRID_OPERATORS['text'];\r\n\r\n return (\r\n
\r\n {sortable && }\r\n\r\n {this.props.customFilter && (\r\n \r\n {\r\n event.preventDefault();\r\n return null;\r\n }}\r\n className={Styles['custom-filter']}\r\n shouldDismissPopover={false}\r\n icon={}\r\n text={t('Filter')}\r\n popoverProps={{\r\n usePortal: false,\r\n className: Styles['custom-filter--popover'],\r\n }}\r\n >\r\n {this.customFilter()}\r\n \r\n \r\n )}\r\n {!customFilter && (\r\n /* https://github.com/telerik/kendo-react/issues/888 */\r\n
e.stopPropagation()}>\r\n (\r\n \r\n )}\r\n hideSecondFilter={true}\r\n {...this.props}\r\n filterOperators={GRID_OPERATORS}\r\n />\r\n
\r\n )}\r\n
\r\n {onSave && (\r\n \r\n )}\r\n {onReset && (\r\n \r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nColumnMenu.propTypes = {\r\n sortable: PropTypes.bool,\r\n onSave: PropTypes.func,\r\n t: PropTypes.func,\r\n customFilter: PropTypes.object,\r\n filter: PropTypes.object,\r\n column: PropTypes.object,\r\n onReset: PropTypes.func,\r\n onFilterChange: PropTypes.func,\r\n onCloseMenu: PropTypes.func,\r\n};\r\n\r\nColumnMenu.defaultProps = {\r\n sortable: true,\r\n};\r\n\r\nexport default withTranslation()(ColumnMenu);\r\n","import React from 'react';\r\nimport { GridColumn, GridCell } from '@progress/kendo-react-grid';\r\nimport ColumnMenu from '@hobs/components/Grid/ColumnMenu';\r\nimport ShortId from 'shortid';\r\nimport classnames from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport './Columns.scss';\r\n\r\nfunction hasColumnFilter(array, search) {\r\n if (!array) {\r\n return null;\r\n }\r\n return array.find(item => {\r\n if (item.filters) {\r\n return hasColumnFilter(item.filters, search);\r\n }\r\n\r\n return (\r\n item.field === search ||\r\n (item.field.indexOf('.') > -1 && item.field.indexOf(search) > -1)\r\n );\r\n });\r\n}\r\n\r\nconst Columns = ({ columns, onSave, onReset, dataState }) => {\r\n return Object.getOwnPropertyNames(columns).reduce((results, key) => {\r\n const column = columns[key];\r\n let filterFields = [key];\r\n\r\n /**\r\n * Collect fields which have impact for filtering\r\n */\r\n if (column.customFilter) {\r\n filterFields = column.customFilter.data.reduce((results, item) => {\r\n if (item.field && results.indexOf(item.field) === -1) {\r\n results.push(item.field);\r\n }\r\n return results;\r\n }, filterFields);\r\n }\r\n\r\n const isFilterActive = () => {\r\n if (dataState.filter) {\r\n return filterFields.reduce((result, filter) => {\r\n if (!result) {\r\n return hasColumnFilter(dataState.filter.filters, filter);\r\n }\r\n\r\n return result;\r\n }, false);\r\n }\r\n\r\n return false;\r\n };\r\n\r\n if (column.visible) {\r\n const menu = props => (\r\n \r\n );\r\n results.push(\r\n {\r\n if (column.cell) {\r\n return column.cell({\r\n ...props,\r\n render: element => {\r\n return element;\r\n }\r\n });\r\n }\r\n\r\n return (\r\n {\r\n const newElement = {\r\n ...element,\r\n props: {\r\n ...element.props,\r\n className: classnames(\r\n {\r\n 'cell-numeric':\r\n column.filter && column.filter === 'numeric'\r\n },\r\n element.className\r\n ),\r\n onClick: () => {\r\n // TODO - need to set it react way.\r\n event.target.classList.toggle('expanded');\r\n }\r\n }\r\n };\r\n\r\n return newElement;\r\n }}\r\n />\r\n );\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return results;\r\n }, []);\r\n};\r\n\r\nColumns.propTypes = {\r\n onSave: PropTypes.func,\r\n onReset: PropTypes.func,\r\n columns: PropTypes.object,\r\n dataState: PropTypes.object\r\n};\r\n\r\nexport default Columns;\r\n","export function withDataStateLocalOverrides(dataState, LSdataStateName) {\r\n const localOverrides = localStorage.getItem(LSdataStateName);\r\n\r\n if (!localOverrides) {\r\n return dataState;\r\n }\r\n\r\n const overrides = JSON.parse(localOverrides);\r\n\r\n const walkThrueFilters = filters => {\r\n return filters.reduce((results, item) => {\r\n if (item.filters) {\r\n item.filters = walkThrueFilters(item.filters);\r\n }\r\n\r\n // FIX DATE Field value 🦄\r\n // No correct way how to check if string is date so we checking if\r\n // it's string and string is not only digits\r\n // and after that we check if getTiem is not NaN\r\n // I Hope i will be cover all cases 🙃\r\n if (\r\n item.value &&\r\n typeof item.value === 'string' &&\r\n !/^\\d+$/.test(item.value)\r\n ) {\r\n item.value =\r\n !isNaN(new Date(item.value).getTime()) &&\r\n item.value.length > 0 &&\r\n !isNaN(parseInt(item.value[0], 10)) &&\r\n new Date(item.value).getFullYear() > 1900\r\n ? new Date(item.value)\r\n : item.value;\r\n }\r\n\r\n results.push({\r\n ...item\r\n });\r\n\r\n return results;\r\n }, []);\r\n };\r\n\r\n const filter = overrides.filter\r\n ? {\r\n ...overrides.filter,\r\n filters: walkThrueFilters(overrides.filter.filters)\r\n }\r\n : {};\r\n\r\n const addtional = {};\r\n\r\n if (Object.keys(filter).length > 0) {\r\n addtional.filter = filter;\r\n }\r\n\r\n return {\r\n ...dataState,\r\n ...{\r\n ...overrides,\r\n ...addtional\r\n }\r\n };\r\n}\r\n\r\nexport function withGridLocalOverrides(defaultColumns, LSGridPropsName) {\r\n const localOverrides = localStorage.getItem(LSGridPropsName);\r\n\r\n if (!localOverrides) {\r\n return defaultColumns;\r\n }\r\n\r\n // set all invisible\r\n Object.getOwnPropertyNames(defaultColumns).forEach(key => {\r\n defaultColumns[key].visible = false;\r\n });\r\n\r\n // from local overrides set visible fields with configurations\r\n JSON.parse(localOverrides).columns.forEach(item => {\r\n // since data selection is dynamic (in case of location), we should always take it from the server.\r\n if (item && item.customFilter && item.customFilter.data) {\r\n var field = defaultColumns[item.field];\r\n if (field && field.customFilter) {\r\n item.customFilter.data = field.customFilter.data;\r\n }\r\n }\r\n\r\n return (defaultColumns[item.field] = {\r\n ...defaultColumns[item.field],\r\n order: item.order,\r\n ...item\r\n });\r\n });\r\n\r\n const keys = Object.getOwnPropertyNames(defaultColumns);\r\n\r\n const result = keys.reduce((results, key) => {\r\n results[key] = defaultColumns[key];\r\n return results;\r\n }, {});\r\n\r\n return result;\r\n}\r\n\r\nexport const onUserResetSettings = (\r\n LSdataStateName,\r\n LSGridPropsName,\r\n NotificationsQueryFilterName,\r\n callback\r\n) => () => {\r\n localStorage.removeItem(LSdataStateName);\r\n localStorage.removeItem(LSGridPropsName);\r\n localStorage.removeItem(NotificationsQueryFilterName);\r\n\r\n callback();\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cx from 'classnames';\r\nimport { Drawer as BPDrawer } from '@blueprintjs/core';\r\nimport './Drawer.scss';\r\n\r\nexport const Drawer = ({children, ...props}) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\nDrawer.propTypes = {\r\n children: PropTypes.oneOfType([\r\n PropTypes.arrayOf(PropTypes.node),\r\n PropTypes.node\r\n ]).isRequired,\r\n className: PropTypes.string,\r\n};","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport classNames from 'classnames';\r\nimport { WithErrorLabel } from '@hobs/components/FormError';\r\nimport Styles from './Textarea.module.scss';\r\n\r\nconst Textarea = ({\r\n field,\r\n children,\r\n label,\r\n placeholder,\r\n maxLength,\r\n disabled = false,\r\n borderless = false,\r\n indicationMessage,\r\n ...rest\r\n}) => {\r\n return (\r\n \r\n {label && (\r\n {label}\r\n )}\r\n \r\n {children}\r\n \r\n \r\n );\r\n};\r\n\r\nTextarea.propTypes = {\r\n label: PropTypes.string,\r\n field: PropTypes.object,\r\n form: PropTypes.object,\r\n placeholder: PropTypes.string,\r\n maxLength: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n disabled: PropTypes.bool,\r\n borderless: PropTypes.bool,\r\n children: PropTypes.any,\r\n indicationMessage: PropTypes.object\r\n};\r\n\r\nexport default WithErrorLabel(Textarea);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { RaisedButton, GhostButton } from '@hobs/components/Buttons';\r\nimport { Formik, Form, Field } from 'formik';\r\nimport Textarea from '@hobs/components/Textarea';\r\n\r\nclass DiscussionForm extends React.Component {\r\n render() {\r\n const { t } = this.props;\r\n return (\r\n \r\n {({ values, handleSubmit, isSubmitting }) => (\r\n
\r\n \r\n {\r\n event.preventDefault();\r\n handleSubmit();\r\n }}\r\n >\r\n {t('Send')}\r\n \r\n \r\n {t('Mark as unread')}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nDiscussionForm.propTypes = {\r\n t: PropTypes.func,\r\n title: PropTypes.string,\r\n initials: PropTypes.string,\r\n onSubmit: PropTypes.func,\r\n onMarkUnread: PropTypes.func,\r\n markAsUnreadEnabled: PropTypes.bool,\r\n isLoading: PropTypes.bool\r\n};\r\n\r\nconst DiscussionFormConnected = withTranslation()(DiscussionForm);\r\nexport { DiscussionFormConnected as DiscussionForm };\r\n","import React from 'react';\r\nimport cx from 'classnames';\r\nimport { format } from '@hobs/utils/formatWithTimeZone';\r\nimport { DATETIME_FORMAT } from '@hobs/utils/constants';\r\nimport { messageShape } from './propTypes';\r\n\r\nexport const Message = props => {\r\n const className = cx('discussion--message', {\r\n right: props.isMyPartyMessage === true\r\n });\r\n return (\r\n
\r\n
\r\n
{props.messageFrom}
\r\n

{props.message}

\r\n
\r\n \r\n
\r\n );\r\n};\r\nMessage.propTypes = messageShape;\r\n","import { shape, string, bool } from 'prop-types';\r\n\r\nexport const messageShape = shape({\r\n discussionId: string,\r\n userId: string,\r\n userFullName: string,\r\n partyName: string,\r\n message: string,\r\n sendingDate: string,\r\n isMyPartyMessage: bool,\r\n}).isRequired;","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport PropTypes from 'prop-types';\r\nimport { withTranslation } from 'react-i18next';\r\nimport cx from 'classnames';\r\nimport { Classes } from '@blueprintjs/core';\r\nimport Drawer from '@hobs/components/Drawer';\r\nimport { GhostButton } from '@hobs/components/Buttons';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Loader from '@hobs/components/Loader';\r\nimport Toast from '@hobs/components/Toast';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\n\r\nimport { USER_ROLES } from '@hobs/utils/constants';\r\n\r\nimport { DiscussionForm } from './DiscussionForm';\r\nimport { messageShape } from './propTypes';\r\nimport { Message } from './Message';\r\nimport './Discussion.scss';\r\n\r\nconst modalRoot = document.getElementById('root');\r\n\r\nclass Discussion extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.el = document.createElement('div');\r\n }\r\n messageBottom = React.createRef();\r\n\r\n state = {\r\n isOpen: false,\r\n markedUnread: null\r\n };\r\n\r\n openDiscussion = () => {\r\n this.setState(\r\n {\r\n isOpen: true,\r\n markedUnread: false\r\n },\r\n this.props.onDiscussionOpen\r\n );\r\n };\r\n\r\n componentDidUpdate(prevProps) {\r\n if (\r\n this.props.discussion.discussions.length !==\r\n prevProps.discussion.discussions.length\r\n ) {\r\n this.scrollToBottom();\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (modalRoot) {\r\n modalRoot.appendChild(this.el);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (modalRoot) {\r\n modalRoot.removeChild(this.el);\r\n }\r\n }\r\n\r\n handleClose = () => {\r\n this.setState(\r\n {\r\n isOpen: false\r\n },\r\n this.props.onDiscussionClose\r\n );\r\n };\r\n\r\n handleSubmit = (values, { resetForm, setSubmitting }) => {\r\n if (values.message.length <= 0) {\r\n return;\r\n }\r\n\r\n this.props.onMessageCreate(values.message).then(response => {\r\n if (response.success) {\r\n resetForm({ message: '' });\r\n } else {\r\n Toast.warning(this.props.t('Message not sent'));\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n handleMarkUnread = () => {\r\n this.setState({\r\n markedUnread: true\r\n });\r\n this.props.onMarkUnread();\r\n this.handleClose();\r\n };\r\n\r\n scrollToBottom = () => {\r\n this.messageBottom &&\r\n this.messageBottom.current &&\r\n this.messageBottom.current.scrollIntoView(true);\r\n };\r\n\r\n maybeShowEmptyBlock = () => {\r\n if (this.props.discussion.discussions.length > 0) {\r\n return null;\r\n }\r\n if (this.props.isLoading === true) {\r\n return null;\r\n }\r\n return (\r\n
\r\n {this.props.t('There are no messages in the discussion.')}\r\n
\r\n );\r\n };\r\n\r\n hasNoMessages() {\r\n return this.props.status === 3;\r\n }\r\n\r\n hasUnread() {\r\n return this.props.status === 1 || this.state.markedUnread === true;\r\n }\r\n\r\n isMarkAsUnreadEnabled() {\r\n const { discussion, currentUserId } = this.props;\r\n if (\r\n currentUserId &&\r\n discussion.discussions.length > 0 &&\r\n discussion.discussions[discussion.discussions.length - 1].userId ===\r\n currentUserId\r\n ) {\r\n return false;\r\n }\r\n return discussion.markAsUnreadEnabled;\r\n }\r\n\r\n isOnlyPreviewMode() {\r\n const { hasUserPermission, discussion } = this.props;\r\n return (\r\n hasUserPermission(USER_ROLES.READONLY) ||\r\n (hasUserPermission(USER_ROLES.HOST_UNIT) && !discussion.canHostUnitEdit)\r\n );\r\n }\r\n\r\n render() {\r\n const { t, discussion } = this.props;\r\n const number = discussion.serviceRequestNumber\r\n ? discussion.serviceRequestNumber\r\n : '';\r\n const title = `${t('Discussion with ')} ${\r\n discussion.discussionWith ? discussion.discussionWith : ''\r\n } (${number})`;\r\n\r\n return (\r\n <>\r\n \r\n \r\n {this.props.initials && {this.props.initials}}\r\n
\r\n }\r\n type=\"button\"\r\n onClick={this.openDiscussion}\r\n />\r\n {ReactDOM.createPortal(\r\n }\r\n isCloseButtonShown={false}\r\n >\r\n \r\n \r\n \r\n
\r\n
\r\n {this.props.isLoading && (\r\n
\r\n \r\n
\r\n )}\r\n {this.maybeShowEmptyBlock()}\r\n {discussion.discussions.length > 0 && (\r\n
\r\n
\r\n {discussion.discussions.map(message => {\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 {!this.isOnlyPreviewMode() && (\r\n \r\n )}\r\n
\r\n ,\r\n this.el\r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nDiscussion.propTypes = {\r\n t: PropTypes.func,\r\n currentUserId: PropTypes.string,\r\n initials: PropTypes.string,\r\n onDiscussionOpen: PropTypes.func,\r\n onDiscussionClose: PropTypes.func,\r\n onMessageCreate: PropTypes.func,\r\n onMarkUnread: PropTypes.func,\r\n hasUserPermission: PropTypes.func,\r\n discussion: PropTypes.shape({\r\n total: PropTypes.number,\r\n discussionWith: PropTypes.string,\r\n markAsUnreadEnabled: PropTypes.bool,\r\n discussions: PropTypes.arrayOf(messageShape),\r\n serviceRequestNumber: PropTypes.string\r\n }),\r\n isLoading: PropTypes.bool,\r\n iconOnly: PropTypes.bool,\r\n status: PropTypes.oneOf([\r\n 3, // No Messages\r\n 2, // Contains Messages\r\n 1, // New Messages,\r\n 4 // Unknow status - back added and did not informed us\r\n ])\r\n};\r\n\r\nexport default withTranslation()(WithRoles(Discussion));\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport DiscussionWidget from '@hobs/components/Discussion';\r\nimport {\r\n getDiscussion,\r\n sendMessage,\r\n markUnread,\r\n resetDiscussion\r\n} from '@hobs/actions/discussion';\r\n\r\nclass Discussion extends React.PureComponent {\r\n state = {\r\n discussionStatus: 1\r\n };\r\n\r\n componentDidMount() {\r\n this.setState({\r\n discussionStatus: this.props.status\r\n });\r\n }\r\n\r\n openDiscussion = () => {\r\n this.props.getDiscussion(this.props.serviceRequestId);\r\n };\r\n\r\n handleClose = () => {\r\n this.setState(\r\n {\r\n discussionStatus: this.props.discussion.total > 0 ? 2 : 3\r\n },\r\n () => {\r\n this.props.resetDiscussion();\r\n }\r\n );\r\n };\r\n\r\n handleSubmit = message => {\r\n return this.props.sendMessage(this.props.serviceRequestId, message);\r\n };\r\n\r\n handleMarkUnread = () => {\r\n this.props.markUnread(this.props.serviceRequestId);\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nDiscussion.propTypes = {\r\n t: PropTypes.func,\r\n initials: PropTypes.string,\r\n currentUserId: PropTypes.string,\r\n getDiscussion: PropTypes.func,\r\n sendMessage: PropTypes.func,\r\n markUnread: PropTypes.func,\r\n resetDiscussion: PropTypes.func,\r\n serviceRequestId: PropTypes.string,\r\n isLoading: PropTypes.bool,\r\n iconOnly: PropTypes.bool,\r\n discussion: PropTypes.object,\r\n hasUnread: PropTypes.bool,\r\n status: PropTypes.number\r\n};\r\n\r\nconst isLoadingMessages = createLoadingSelector([\r\n 'ServiceRequests/GetDiscussion'\r\n]);\r\nconst mapStateToProps = state => {\r\n return {\r\n currentUserId: state.auth.user.UserId,\r\n isLoading: isLoadingMessages(state),\r\n discussion: state.discussion\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {\r\n getDiscussion,\r\n sendMessage,\r\n markUnread,\r\n resetDiscussion\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(Discussion));\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport { GET, CREATE, MARK_UNREAD } from '@hobs/constants/discussion';\r\n\r\nexport function getDiscussion(serviceRequestId) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(\r\n `ServiceRequests/${serviceRequestId}/Discussion?skip=0&take=1000`\r\n )\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, payload: response.payload };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error));\r\n return { success: false, error: error.toString() };\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: GET.REQUEST };\r\n }\r\n function success(payload) {\r\n return { type: GET.SUCCESS, payload };\r\n }\r\n function failure(error) {\r\n return { type: GET.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function sendMessage(serviceRequestId, message) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`ServiceRequests/${serviceRequestId}/Discussion`, {\r\n body: { message },\r\n method: 'POST'\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error));\r\n return { success: false, error: error.toString() };\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CREATE.REQUEST };\r\n }\r\n function success(payload) {\r\n return { type: CREATE.SUCCESS, payload };\r\n }\r\n function failure(error) {\r\n return { type: CREATE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function markUnread(serviceRequestId) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(\r\n `ServiceRequests/${serviceRequestId}/Discussion/MarkAsUnread`,\r\n { method: 'POST' }\r\n )\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n return { success: true };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error));\r\n return { success: false, error: error.toString() };\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: MARK_UNREAD.REQUEST };\r\n }\r\n function success() {\r\n return { type: MARK_UNREAD.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: MARK_UNREAD.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function resetDiscussion() {\r\n return {\r\n type: GET.RESET\r\n };\r\n}\r\n","import React from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport './Summary.scss';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst Summary = ({ t, info, children }) => {\r\n return (\r\n
\r\n
\r\n {info.sendingNationName ? `${info.sendingNationName} - ` : null}\r\n {info.annexName || t('All')}\r\n
\r\n
\r\n
\r\n
{t('Total req.')}
\r\n
\r\n {info.requestedQuantity}\r\n
\r\n
\r\n
\r\n
{info.organization}
\r\n
\r\n {info.responsiblePerson.email ? (\r\n \r\n {info.responsiblePerson.name}\r\n \r\n ) : (\r\n info.responsiblePerson.name\r\n )}\r\n
\r\n
\r\n
\r\n
{t('Phone')}
\r\n
\r\n {info.responsiblePerson.phone}\r\n
\r\n
\r\n {children &&
{children}
}\r\n
\r\n
\r\n );\r\n};\r\n\r\nSummary.propTypes = {\r\n country: PropTypes.string,\r\n t: PropTypes.func,\r\n info: PropTypes.object,\r\n children: PropTypes.any\r\n};\r\n\r\nexport default withTranslation()(Summary);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport accounting from 'accounting';\r\n\r\nconst formatAmount = amount => {\r\n if (!amount && amount !== 0) {\r\n return `--`;\r\n }\r\n\r\n return accounting.formatNumber(amount, {\r\n symbol: '',\r\n precision: 10,\r\n thousand: ' ',\r\n format: {\r\n pos: '%s%v',\r\n neg: '-%s%v',\r\n zero: '%s%v'\r\n }\r\n });\r\n};\r\n\r\nconst Quantity = ({ amount, component, className }) => {\r\n const Component = component || Quantity.defaultProps.component;\r\n const numberAmount = Number.parseFloat(amount);\r\n\r\n const removeTrailingZeros = (text) => {\r\n return text.replace(/^0+(?!\\.)|(?:\\.|(\\..*?))0+$/gm, '$1');\r\n }\r\n\r\n return (\r\n {removeTrailingZeros(formatAmount(numberAmount))}\r\n );\r\n};\r\n\r\nQuantity.defaultProps = {\r\n component: 'span',\r\n amount: 0\r\n};\r\n\r\nQuantity.propTypes = {\r\n amount: PropTypes.number || PropTypes.string,\r\n component: PropTypes.string\r\n};\r\n\r\nexport default Quantity;\r\n","import React from 'react';\r\nimport deepcopy from 'deepcopy';\r\nimport { Link } from 'react-router-dom';\r\nimport classnames from 'classnames';\r\nimport Status from '@hobs/components/Status';\r\nimport Icon from '@hobs/components/Icon';\r\nimport ObjectPath from 'object-path';\r\nimport { CellDate, CellDateTime } from '@hobs/components/Grid/CellDate';\r\nimport { ServiceRequestNavContext } from '@hobs/components/ServiceRequestNavContext';\r\nimport Indicator from '@hobs/components/Indicator';\r\nimport {\r\n USER_ROLES,\r\n DEFAULT_STATUS_FILTER,\r\n INDICATIONS,\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN,\r\n GRID_CUSTOM_FILTER_FIELDS,\r\n PARTY_TYPE\r\n} from '@hobs/utils/constants';\r\nimport PropTypes from 'prop-types';\r\nimport ShortId from 'shortid';\r\nimport {\r\n withDataStateLocalOverrides,\r\n withGridLocalOverrides,\r\n onUserResetSettings\r\n} from '@hobs/utils/grid/overrides';\r\nimport Money from '@hobs/components/Money';\r\nimport Discussion from '@hobs/containers/Discussion';\r\nimport { parse } from '@hobs/utils/formatWithTimeZone';\r\nimport './ServiceRequests.scss';\r\nimport { expandDataItem } from '@hobs/utils/expandItem';\r\nimport Quantity from '@hobs/components/Quantity';\r\n\r\nconst INDICATION_TRANSPORTATION_FIELD =\r\n 'Indications.TransportationInformationMissing';\r\n\r\nclass ServiceRequests extends React.PureComponent {\r\n NotificationsQueryFilterName = `NotificationsQueryFilter`;\r\n corStatus = [];\r\n\r\n constructor(props) {\r\n super(props);\r\n const { t, hasUserPermission } = this.props;\r\n\r\n this.exportRef = React.createRef();\r\n this.grid = React.createRef();\r\n\r\n this.defaultGridColumns = {\r\n Indications: {\r\n title: t('Indications'),\r\n columnMenu: true,\r\n default: true,\r\n sortable: false,\r\n visible: true,\r\n minResizableWidth: '46px',\r\n headerCell: () => (\r\n
\r\n \r\n
\r\n ),\r\n cell: ({ dataItem }) => {\r\n const indications = this.getIndications(dataItem.Indications);\r\n return (\r\n \r\n {indications.length > 0 && (\r\n (\r\n
\r\n {INDICATIONS[indication]}\r\n
\r\n ))}\r\n key={ShortId.generate()}\r\n />\r\n )}\r\n \r\n );\r\n },\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('All'),\r\n default: true,\r\n value: ''\r\n },\r\n {\r\n name: t('None'),\r\n default: false,\r\n value: false,\r\n field: INDICATION_TRANSPORTATION_FIELD\r\n },\r\n ...this.getIndicationColumnFilter()\r\n ]\r\n }\r\n },\r\n RequestNumber: {\r\n minResizableWidth: '70px',\r\n title: t('Req.'),\r\n columnMenu: true,\r\n cell: ({ dataItem }) => {\r\n const editURI = `/${\r\n dataItem.IsCustom ? 'custom-' : ''\r\n }service-request/${this.props.match.params.partyId}/${\r\n dataItem.ServiceRequestId\r\n }`;\r\n\r\n return (\r\n \r\n {dataItem.RequestNumber && (\r\n \r\n {nav => (\r\n {\r\n nav.setPreviousGridPosition(\r\n this.state.dataState,\r\n window.pageYOffset,\r\n this.state.selectedAnnex,\r\n this.state.quickSearchValue,\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN.RequestedServices\r\n );\r\n }}\r\n >\r\n {dataItem.RequestNumber}\r\n \r\n )}\r\n \r\n )}\r\n\r\n {!dataItem.RequestNumber && <>-}\r\n \r\n );\r\n },\r\n default: true,\r\n visible: true\r\n },\r\n HasAttachments: {\r\n minResizableWidth: '33px',\r\n title: t('Attachment'),\r\n cell: ({ dataItem }) => (\r\n \r\n {dataItem.HasAttachments && (\r\n \r\n )}\r\n \r\n ),\r\n headerCell: () => (\r\n \r\n ),\r\n default: false,\r\n visible: false,\r\n xls: false\r\n },\r\n AdditionalInfo: {\r\n title: t('Add. info.'),\r\n minResizableWidth: '45px',\r\n default: true,\r\n visible: true,\r\n xls: false,\r\n cell: ({ dataItem }) => (\r\n \r\n {dataItem.AdditionalInfo && (\r\n \r\n {nav => (\r\n {\r\n nav.setPreviousGridPosition(\r\n this.state.dataState,\r\n window.pageYOffset,\r\n this.state.selectedAnnex,\r\n this.state.quickSearchValue,\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN.RequestedServices\r\n );\r\n nav.setServiceRequestId(dataItem.ServiceRequestId);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )\r\n },\r\n StatusId: {\r\n title: t('Status'),\r\n width: 103,\r\n columnMenu: true,\r\n cell: ({ dataItem }) => (\r\n \r\n \r\n \r\n ),\r\n default: true,\r\n visible: true\r\n },\r\n Service: {\r\n title: t('Service'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n Description: {\r\n minResizableWidth: '80px',\r\n title: t('Description'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n },\r\n Group: {\r\n title: t('Group'),\r\n cell: ({ dataItem }) => {dataItem.Group},\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n AnnexId: {\r\n title: t('Annex'),\r\n cell: ({ dataItem }) => {dataItem.Annex},\r\n columnMenu: true,\r\n default: false,\r\n visible: false,\r\n xlsField: 'Annex'\r\n },\r\n RequestedQuantity: {\r\n title: t('Qty'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'numeric',\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n IsCalculatedByDays: {\r\n title: t('Calculated by days'),\r\n default: true,\r\n visible: true,\r\n columnMenu: true,\r\n cell: ({ dataItem }) => {\r\n return {dataItem.IsCalculatedByDays ? t('Yes') : t('No')};\r\n },\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n value: ''\r\n },\r\n {\r\n name: t('Yes'),\r\n value: true\r\n },\r\n {\r\n name: t('No'),\r\n value: false\r\n }\r\n ]\r\n }\r\n },\r\n TotalQuantity: {\r\n title: t('Total q-ty'),\r\n filter: 'numeric',\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n DeliveryQuantity: {\r\n minResizableWidth: '80px',\r\n title: t('Delivery Qty'),\r\n filter: 'numeric',\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n IsDeliveryFinalized: {\r\n title: t('Delivery finalized'),\r\n default: false,\r\n visible: false,\r\n columnMenu: true,\r\n cell: ({ dataItem }) => {\r\n return {dataItem.IsDeliveryFinalized ? t('Yes') : t('No')};\r\n },\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n value: ''\r\n },\r\n {\r\n name: t('Yes'),\r\n value: true\r\n },\r\n {\r\n name: t('No'),\r\n value: false\r\n }\r\n ]\r\n }\r\n },\r\n UnitOfMeasureId: {\r\n title: t('UoM'),\r\n cell: ({ dataItem }) => {dataItem.UnitOfMeasure},\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n xlsField: 'UnitOfMeasure'\r\n },\r\n UnallocatedQuantity: {\r\n minResizableWidth: '80px',\r\n title: t('Unall qty'),\r\n filter: 'numeric',\r\n columnMenu: true,\r\n default: false,\r\n visible: false,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n Region: {\r\n title: t('Region'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n },\r\n Location: {\r\n title: t('Location'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n LocationComment: {\r\n title: t('Location comment'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n },\r\n LocationTo: {\r\n title: t('Delivery location'),\r\n columnMenu: true,\r\n default: true,\r\n visible: false\r\n },\r\n LocationCommentTo: {\r\n title: t('Delivery location comment'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n },\r\n Site: {\r\n title: t('Site'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n },\r\n Unit: {\r\n title: t('Unit'),\r\n default: true,\r\n columnMenu: true,\r\n visible: true\r\n },\r\n UnitId: {\r\n default: false,\r\n visible: false\r\n },\r\n DateFrom: {\r\n title: t('From date'),\r\n columnMenu: true,\r\n minResizableWidth: '85px',\r\n filter: 'date',\r\n cell: CellDate,\r\n default: true,\r\n visible: true\r\n },\r\n DateTo: {\r\n title: t('To date'),\r\n columnMenu: true,\r\n minResizableWidth: '85px',\r\n filter: 'date',\r\n cell: CellDate,\r\n default: true,\r\n visible: true\r\n },\r\n Days: {\r\n minResizableWidth: '60px',\r\n title: t('Days'),\r\n filter: 'numeric',\r\n default: true,\r\n sortable: false,\r\n visible: true\r\n },\r\n EstimatedTotalCost: {\r\n minResizableWidth: '100px',\r\n title: t('Est. cost'),\r\n filter: 'numeric',\r\n sortable: false,\r\n default: true,\r\n visible: true,\r\n xls: false,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n {dataItem.EstimatedTotalCostFrom !==\r\n dataItem.EstimatedTotalCostTo ? (\r\n <>\r\n {' '}\r\n - \r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n );\r\n }\r\n },\r\n EstimatedGrossAmount: {\r\n minResizableWidth: '60px',\r\n title: t('Est. gross amount'),\r\n default: true,\r\n visible: true,\r\n filter: 'numeric',\r\n sortable: false,\r\n xls: false,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n {dataItem.EstimatedGrossAmountFrom !==\r\n dataItem.EstimatedGrossAmountTo ? (\r\n <>\r\n {' '}\r\n - \r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n );\r\n }\r\n },\r\n ActualCost: {\r\n minResizableWidth: '60px',\r\n title: t('Actual cost'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'numeric',\r\n xls: false,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n ActualGrossAmount: {\r\n minResizableWidth: '60px',\r\n title: t('Act. gross amount'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'numeric',\r\n xls: false,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n IsPaid: {\r\n title: t('Is Paid'),\r\n default: false,\r\n visible: false,\r\n cell: ({ dataItem }) => {\r\n return {dataItem.IsPaid ? t('Yes') : t('No')};\r\n }\r\n },\r\n ActivityName: {\r\n title: t('Activity'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n }\r\n };\r\n\r\n if (!hasUserPermission(USER_ROLES.READONLY)) {\r\n Object.assign(this.defaultGridColumns, {\r\n DiscussionStatus: {\r\n title: t('Disc.'),\r\n default: true,\r\n columnMenu: true,\r\n visible: true,\r\n xls: false,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n value: ''\r\n },\r\n {\r\n name: t('Unread messages'),\r\n value: 1\r\n },\r\n {\r\n name: t('Read messages'),\r\n value: 2\r\n },\r\n {\r\n name: t('No messages'),\r\n value: 3\r\n }\r\n ]\r\n }\r\n }\r\n });\r\n }\r\n\r\n Object.assign(this.defaultGridColumns, {\r\n CreationDate: {\r\n title: t('Creation date'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false,\r\n filter: 'date',\r\n cell: CellDateTime\r\n },\r\n LastChangeDate: {\r\n title: t('Last change'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false,\r\n filter: 'date',\r\n cell: CellDateTime\r\n },\r\n DeliveryComment: {\r\n title: t('Delivered comment'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n },\r\n Comment: {\r\n title: t('Comment'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n },\r\n ResponseComment: {\r\n title: t('Response comment'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n }\r\n });\r\n\r\n this.defaultDataState = {\r\n take: 20,\r\n skip: 0,\r\n filter: {\r\n logic: 'and',\r\n filters: [DEFAULT_STATUS_FILTER]\r\n },\r\n sort: [{ field: 'RequestNumber', dir: 'desc' }]\r\n };\r\n\r\n this.state = {\r\n XLSoData: [],\r\n filters: {},\r\n selectedUnit: '',\r\n selectedAnnex: null,\r\n dataState: withDataStateLocalOverrides(\r\n deepcopy(this.defaultDataState),\r\n this.LSdataStateName\r\n ),\r\n showConfirmDialog: false,\r\n gridKey: ShortId.generate(),\r\n columns: withGridLocalOverrides(\r\n deepcopy(this.defaultGridColumns),\r\n this.LSGridPropsName\r\n ),\r\n isConfirmIsorDisabled: false,\r\n isCreateSrDisabled: false,\r\n previousWindowScrollOffset: null\r\n };\r\n }\r\n\r\n LSdataStateName = `ServiceRequests${this.props.user.CurrentExerciseId}.dataState`;\r\n LSGridPropsName = `ServiceRequests${this.props.user.CurrentExerciseId}.grid.props`;\r\n\r\n getServiceRequestsUrl() {\r\n return `ServiceRequestQuery(${this.props.match.params.partyId})`;\r\n }\r\n\r\n getIndications(indications) {\r\n return Object.keys(indications).filter(key => {\r\n return indications[key];\r\n });\r\n }\r\n\r\n getIndicationColumnFilter() {\r\n const { gridSelections } = this.props;\r\n if (gridSelections && gridSelections.indicationTypes) {\r\n return gridSelections.indicationTypes.map(filterValue => {\r\n return {\r\n name: filterValue.title,\r\n value: true,\r\n field: `Indications.${filterValue.key}`\r\n };\r\n });\r\n }\r\n\r\n return [];\r\n }\r\n\r\n roundNumber(value) {\r\n return parseFloat(parseFloat(value).toFixed(2));\r\n }\r\n\r\n getDisplayData() {\r\n if (this.props.oData.data.length > 0) {\r\n const displayData = [].concat(this.props.oData.data);\r\n displayData.push({\r\n footer: true,\r\n FooterTotalActualCost: this.roundNumber(\r\n displayData[0].FooterTotalActualCost\r\n ),\r\n FooterTotalEstimatedCostFrom: this.roundNumber(\r\n displayData[0].FooterTotalEstimatedCostFrom\r\n ),\r\n FooterTotalEstimatedCostTo: this.roundNumber(\r\n displayData[0].FooterTotalEstimatedCostTo\r\n ),\r\n FooterTotalEstimatedGrossAmountFrom: this.roundNumber(\r\n displayData[0].FooterTotalEstimatedGrossAmountFrom\r\n ),\r\n FooterTotalEstimatedGrossAmountTo: this.roundNumber(\r\n displayData[0].FooterTotalEstimatedGrossAmountTo\r\n )\r\n });\r\n\r\n return displayData;\r\n }\r\n return [];\r\n }\r\n\r\n getColumnsWithCustomFilter(columns) {\r\n const { t } = this.props;\r\n columns.Indications = {\r\n ...columns.Indications,\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('All'),\r\n default: true,\r\n value: ''\r\n },\r\n {\r\n name: t('None'),\r\n default: false,\r\n value: false,\r\n field: INDICATION_TRANSPORTATION_FIELD\r\n },\r\n ...this.getIndicationColumnFilter()\r\n ]\r\n }\r\n };\r\n columns.StatusId = {\r\n ...columns.StatusId,\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n value: '',\r\n default: true\r\n },\r\n ...this.props.gridSelections.statuses.map(item => ({\r\n value: item.id,\r\n name: item.title\r\n }))\r\n ]\r\n }\r\n };\r\n columns.Group = {\r\n ...columns.Group,\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n value: '',\r\n default: true\r\n },\r\n ...this.props.gridSelections.groups.map(item => ({\r\n value: item.title,\r\n name: item.title\r\n }))\r\n ]\r\n }\r\n };\r\n columns.AnnexId = {\r\n ...columns.AnnexId,\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n value: '',\r\n default: true\r\n },\r\n ...this.props.gridSelections.annexes.map(item => ({\r\n value: `${item.id}`,\r\n name: item.title\r\n }))\r\n ]\r\n }\r\n };\r\n columns.UnitOfMeasureId = {\r\n ...columns.UnitOfMeasureId,\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n value: '',\r\n default: true\r\n },\r\n ...this.props.gridSelections.unitsOfMeasure.map(item => ({\r\n value: `${item.id}`,\r\n name: item.title\r\n }))\r\n ]\r\n }\r\n };\r\n columns.Region = {\r\n ...columns.Region,\r\n customFilter: {\r\n filter: 'contains',\r\n data: [\r\n {\r\n name: t('Select all'),\r\n value: '',\r\n default: true\r\n },\r\n ...this.getColumnFilterValuesAsString(\r\n GRID_CUSTOM_FILTER_FIELDS.regions,\r\n 'RegionIds'\r\n )\r\n ]\r\n }\r\n };\r\n columns.Location = {\r\n ...columns.Location,\r\n customFilter: {\r\n filter: 'contains',\r\n data: [\r\n {\r\n name: t('Select all'),\r\n value: '',\r\n default: true\r\n },\r\n ...this.getColumnFilterValuesAsStringNoId(\r\n GRID_CUSTOM_FILTER_FIELDS.locations,\r\n 'LocationFromNames'\r\n )\r\n ]\r\n }\r\n };\r\n columns.LocationTo = {\r\n ...columns.LocationTo,\r\n customFilter: {\r\n filter: 'contains',\r\n data: [\r\n {\r\n name: t('Select all'),\r\n value: '',\r\n default: true\r\n },\r\n ...this.getColumnFilterValuesAsStringNoId(\r\n GRID_CUSTOM_FILTER_FIELDS.locationsTo,\r\n 'LocationToNames'\r\n )\r\n ]\r\n }\r\n };\r\n\r\n return columns;\r\n }\r\n\r\n getColumnFilterValuesAsStringNoId(gridFilterFieldName, field) {\r\n const { gridSelections } = this.props;\r\n\r\n if (gridSelections && gridSelections[gridFilterFieldName]) {\r\n return gridSelections[gridFilterFieldName].map(filterValue => {\r\n const filter = {\r\n name: filterValue.title,\r\n value: filterValue.title\r\n };\r\n\r\n if (field) {\r\n filter.field = field;\r\n }\r\n return filter;\r\n });\r\n }\r\n\r\n return [];\r\n }\r\n\r\n getColumnFilterValuesAsString(gridFilterFieldName, field) {\r\n const { gridSelections } = this.props;\r\n\r\n if (gridSelections && gridSelections[gridFilterFieldName]) {\r\n return gridSelections[gridFilterFieldName].map(filterValue => {\r\n const filter = {\r\n name: filterValue.title,\r\n value: filterValue.id\r\n };\r\n\r\n if (field) {\r\n filter.field = field;\r\n }\r\n return filter;\r\n });\r\n }\r\n\r\n return [];\r\n }\r\n\r\n applyCustomFilters() {\r\n this.setState(state => ({\r\n columns: this.getColumnsWithCustomFilter(state.columns)\r\n }));\r\n }\r\n\r\n async componentDidMount() {\r\n const { partyId } = this.props.match.params;\r\n await this.queryOData();\r\n await this.props.getAnnexes();\r\n await this.props.getRequestedServicesGrid(partyId);\r\n this.applyCustomFilters();\r\n await this.props.getSorParty(partyId).then(response => {\r\n const { statementOfRequirementId } = response.data;\r\n this.props.getSor(statementOfRequirementId);\r\n });\r\n this.props.withVisibleColumns.setColumns(this.state.columns);\r\n this.props.withVisibleColumns.onUpdate(() => {\r\n this.setState({\r\n gridKey: ShortId.generate()\r\n });\r\n });\r\n window.addEventListener('scroll', this.handleScroll);\r\n window.addEventListener('resize', this.handleScroll);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetOData();\r\n this.props.crealSorParty();\r\n window.removeEventListener('scroll', this.handleScroll);\r\n window.removeEventListener('resize', this.handleScroll);\r\n }\r\n\r\n handleScroll = () => {\r\n document.getElementsByClassName('k-grid').forEach(grid => {\r\n const header = grid.getElementsByClassName('k-grid-header');\r\n if (!header.length) {\r\n return;\r\n }\r\n\r\n if (window.pageYOffset >= grid.offsetTop) {\r\n if (!header[0].classList.contains('fixed-header')) {\r\n header[0].classList.add('fixed-header');\r\n }\r\n header[0].style.maxWidth = `${grid.offsetWidth}px`;\r\n } else {\r\n if (header[0].classList.contains('fixed-header')) {\r\n header[0].classList.remove('fixed-header');\r\n header[0].style.maxWidth = '';\r\n }\r\n }\r\n });\r\n };\r\n\r\n exportServiceRequests = async () => {\r\n await this.getXlsData();\r\n this.exportRef.current.save();\r\n };\r\n\r\n getExportFileName = () => {\r\n return 'Requested services.xlsx';\r\n };\r\n\r\n setCorStatus = (units = [], key) => {\r\n units.forEach((unit, index) => {\r\n if (unit.quantity !== null && unit.units) {\r\n this.setCorStatus(unit.units, `${key}[${index}].units`);\r\n this.corStatus.push(true);\r\n } else {\r\n this.corStatus.push(false);\r\n }\r\n });\r\n };\r\n\r\n canCreateServiceRequest = () => {\r\n const { sorParty } = this.props;\r\n const { isCreateSrDisabled } = this.state;\r\n\r\n if (sorParty) {\r\n return (\r\n (sorParty.canCreateServiceRequest ||\r\n sorParty.canCreateAdditionalServiceRequest) &&\r\n !isCreateSrDisabled\r\n );\r\n }\r\n\r\n return !isCreateSrDisabled;\r\n };\r\n\r\n canManageApprovals() {\r\n const { sorParty } = this.props;\r\n\r\n return !!ObjectPath.get(sorParty, 'canManageApprovals');\r\n }\r\n\r\n dataStateChange = event => {\r\n this.setState({ dataState: event.dataState }, () => {\r\n this.queryOData();\r\n });\r\n };\r\n\r\n onUserSaveSettings = () => {\r\n localStorage.setItem(\r\n this.LSdataStateName,\r\n JSON.stringify(this.state.dataState)\r\n );\r\n localStorage.setItem(\r\n this.LSGridPropsName,\r\n JSON.stringify({\r\n columns: this.grid.current.columns\r\n })\r\n );\r\n };\r\n\r\n onUserResetSettings = onUserResetSettings(\r\n this.LSdataStateName,\r\n this.LSGridPropsName,\r\n this.NotificationsQueryFilterName,\r\n () => {\r\n this.props.withVisibleColumns.setColumns(\r\n Object.assign(\r\n {},\r\n this.getColumnsWithCustomFilter(this.defaultGridColumns)\r\n )\r\n );\r\n\r\n this.setState(\r\n {\r\n gridKey: ShortId.generate(),\r\n columns: this.getColumnsWithCustomFilter(this.defaultGridColumns),\r\n dataState: this.defaultDataState\r\n },\r\n () => {\r\n this.queryOData();\r\n }\r\n );\r\n }\r\n );\r\n\r\n getDataState() {\r\n let filters = [];\r\n\r\n if (Object.keys(this.props.withQuickSearchFilter).length > 0) {\r\n filters.push(this.props.withQuickSearchFilter);\r\n }\r\n\r\n if (this.props.withAnnexFilterSelected) {\r\n filters.push(this.props.withAnnexFilterOdata('AnnexId'));\r\n }\r\n\r\n if (this.state.selectedUnit && this.state.selectedUnit != 'All units') {\r\n filters.push({\r\n field: 'UnitId',\r\n operator: 'eq',\r\n value: `${this.state.selectedUnit}`\r\n });\r\n }\r\n\r\n const dataState = {\r\n ...this.state.dataState\r\n };\r\n\r\n if (\r\n this.state.dataState.filter &&\r\n this.state.dataState.filter.filters.length > 0\r\n ) {\r\n filters = filters.concat(this.state.dataState.filter);\r\n }\r\n\r\n if (filters.length > 0) {\r\n dataState.filter = {\r\n logic: 'and',\r\n filters\r\n };\r\n }\r\n\r\n return dataState;\r\n }\r\n\r\n queryOData = () => {\r\n const dataState = this.getDataState();\r\n \r\n this.props.queryOData(this.getServiceRequestsUrl(), dataState);\r\n\r\n if (this.props.user.PartyTypeId == PARTY_TYPE.SendingNation.Id) {\r\n localStorage.setItem(\r\n this.NotificationsQueryFilterName,\r\n JSON.stringify(this.state.dataState)\r\n );\r\n }\r\n };\r\n\r\n onQuickSearch = quickSearchValue => {\r\n const { preFilledQuickSearch, dataState } = this.state;\r\n this.setState(\r\n {\r\n dataState: {\r\n ...dataState,\r\n skip: preFilledQuickSearch ? dataState.skip : 0\r\n },\r\n quickSearchValue,\r\n preFilledQuickSearch: null\r\n },\r\n () => {\r\n this.queryOData();\r\n }\r\n );\r\n };\r\n\r\n handleUnitFilterChange = event => {\r\n this.setState(\r\n {\r\n selectedUnit: event.target.value,\r\n dataState: {\r\n ...this.state.dataState,\r\n skip: 0\r\n }\r\n },\r\n () => {\r\n this.queryOData();\r\n }\r\n );\r\n };\r\n\r\n closeSorConfirmDialog = () => {\r\n this.setState({\r\n showConfirmDialog: false\r\n });\r\n };\r\n\r\n flattenUnitsTree(array, level = 0) {\r\n if (!Array.isArray(array)) {\r\n return [];\r\n }\r\n\r\n const units = array.reduce((result, item) => {\r\n result.push({\r\n unitName: `${'\\xa0\\xa0\\xa0'.repeat(level)}${item.unitName}`,\r\n value: item.unitName,\r\n unitId: item.unitId\r\n });\r\n\r\n if (Array.isArray(item.units)) {\r\n result = result.concat(this.flattenUnitsTree(item.units, level + 1));\r\n }\r\n\r\n return result;\r\n }, []);\r\n\r\n return units;\r\n }\r\n\r\n getUnitOptions = unitsTree => {\r\n const { t } = this.props;\r\n\r\n const units = this.flattenUnitsTree(unitsTree);\r\n\r\n if (units && units.length) {\r\n return []\r\n .concat(\r\n [\r\n {\r\n unitName: t('All units'),\r\n value: ''\r\n }\r\n ],\r\n units\r\n )\r\n .map(unit => {\r\n return (\r\n \r\n );\r\n });\r\n }\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n getFieldValue(field, fallbackValue = '-') {\r\n if (field === '' || field === null) {\r\n return fallbackValue;\r\n }\r\n\r\n return field;\r\n }\r\n\r\n getSummaryInfo() {\r\n const { selectedAnnex } = this.state;\r\n const { currentExercise, t } = this.props;\r\n\r\n const phone = ObjectPath.get(selectedAnnex, 'responsiblePerson.phone')\r\n ? this.getFieldValue(selectedAnnex.responsiblePerson.phone)\r\n : this.getFieldValue(\r\n ObjectPath.get(\r\n currentExercise,\r\n 'hostInformation.responsiblePersonPhone'\r\n )\r\n );\r\n const name = ObjectPath.get(\r\n selectedAnnex,\r\n 'responsiblePerson.responsibleName'\r\n )\r\n ? this.getFieldValue(selectedAnnex.responsiblePerson.responsibleName)\r\n : this.getFieldValue(\r\n ObjectPath.get(\r\n currentExercise,\r\n 'hostInformation.responsiblePersonName'\r\n )\r\n );\r\n\r\n const email = ObjectPath.get(\r\n selectedAnnex,\r\n 'responsiblePerson.responsibleName'\r\n )\r\n ? this.getFieldValue(selectedAnnex.responsiblePerson.email)\r\n : this.getFieldValue(\r\n ObjectPath.get(\r\n currentExercise,\r\n 'hostInformation.responsiblePersonEmail'\r\n )\r\n );\r\n\r\n const organization = ObjectPath.get(\r\n currentExercise,\r\n 'hostInformation.responsiblePersonOrganization'\r\n )\r\n ? ObjectPath.get(\r\n currentExercise,\r\n 'hostInformation.responsiblePersonOrganization'\r\n ) + t(' responsible')\r\n : this.getFieldValue(\r\n ObjectPath.get(\r\n currentExercise,\r\n 'hostInformation.responsiblePersonOrganization'\r\n ),\r\n t('Responsible person')\r\n );\r\n\r\n return {\r\n responsiblePerson: {\r\n phone,\r\n name,\r\n email\r\n },\r\n requestedQuantity: this.props.oData.total,\r\n annexName:\r\n selectedAnnex && selectedAnnex.name ? selectedAnnex.name : null,\r\n organization,\r\n sendingNationName: this.props.sorParty.partyName\r\n };\r\n }\r\n\r\n async getXlsData() {\r\n const { t } = this.props;\r\n const dataState = this.getDataState();\r\n delete dataState.take;\r\n dataState.skip = 0;\r\n\r\n const XLSoData = await this.props.queryXLSOData(\r\n this.getServiceRequestsUrl(),\r\n dataState\r\n );\r\n\r\n const data = XLSoData.data.map(item => {\r\n return {\r\n ...item,\r\n DateFrom: parse(item.DateFrom),\r\n DateTo: parse(item.DateTo),\r\n StatusIdOriginal: item.StatusId,\r\n StatusId: item.StatusName,\r\n IsPaid: item.IsPaid ? t('Yes') : t('No'),\r\n CreationDate: parse(item.CreationDate),\r\n EstimatedGrossAmountFrom: item.EstimatedGrossAmountFrom\r\n ? this.roundNumber(item.EstimatedGrossAmountFrom)\r\n : item.EstimatedGrossAmountFrom,\r\n EstimatedGrossAmountTo: item.EstimatedGrossAmountTo\r\n ? this.roundNumber(item.EstimatedGrossAmountTo)\r\n : item.EstimatedGrossAmountTo,\r\n EstimatedTotalCostFrom: item.EstimatedTotalCostFrom\r\n ? this.roundNumber(item.EstimatedTotalCostFrom)\r\n : item.EstimatedTotalCostFrom,\r\n EstimatedTotalCostTo: item.EstimatedTotalCostTo\r\n ? this.roundNumber(item.EstimatedTotalCostTo)\r\n : item.EstimatedTotalCostTo\r\n };\r\n });\r\n\r\n this.setState({\r\n XLSoData: data\r\n });\r\n }\r\n\r\n getTotalEstimatedTotalCost = () => {\r\n const { XLSoData } = this.state;\r\n\r\n return {\r\n FooterTotalActualCost: XLSoData[0].FooterTotalActualCost\r\n ? this.roundNumber(XLSoData[0].FooterTotalActualCost)\r\n : XLSoData[0].FooterTotalActualCost,\r\n FooterTotalCost: XLSoData[0].FooterTotalCost\r\n ? this.roundNumber(XLSoData[0].FooterTotalCost)\r\n : XLSoData[0].FooterTotalCost,\r\n FooterTotalGrossAmount: XLSoData[0].FooterTotalGrossAmount\r\n ? this.roundNumber(XLSoData[0].FooterTotalGrossAmount)\r\n : XLSoData[0].FooterTotalGrossAmount,\r\n FooterTotalEstimatedCostFrom: XLSoData[0].FooterTotalEstimatedCostFrom\r\n ? this.roundNumber(XLSoData[0].FooterTotalEstimatedCostFrom)\r\n : XLSoData[0].FooterTotalEstimatedCostFrom,\r\n FooterTotalEstimatedCostTo: XLSoData[0].FooterTotalEstimatedCostTo\r\n ? this.roundNumber(XLSoData[0].FooterTotalEstimatedCostTo)\r\n : XLSoData[0].FooterTotalEstimatedCostTo,\r\n FooterTotalEstimatedGrossAmountFrom: XLSoData[0]\r\n .FooterTotalEstimatedGrossAmountFrom\r\n ? this.roundNumber(XLSoData[0].FooterTotalEstimatedGrossAmountFrom)\r\n : XLSoData[0].FooterTotalEstimatedGrossAmountFrom,\r\n FooterTotalEstimatedGrossAmountTo: XLSoData[0]\r\n .FooterTotalEstimatedGrossAmountTo\r\n ? this.roundNumber(XLSoData[0].FooterTotalEstimatedGrossAmountTo)\r\n : XLSoData[0].FooterTotalEstimatedGrossAmountTo\r\n };\r\n };\r\n\r\n navigateToSavedLocation(nav) {\r\n if (\r\n nav.previousGridPosition.windowScrollOffset &&\r\n nav.previousGridPosition.navigationOrigin ===\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN.RequestedServices &&\r\n this.state.previousWindowScrollOffset !==\r\n nav.previousGridPosition.windowScrollOffset\r\n ) {\r\n this.setState({\r\n previousWindowScrollOffset: nav.previousGridPosition.windowScrollOffset\r\n });\r\n nav.clearPreviousPosition();\r\n }\r\n }\r\n\r\n setSavedDataState(nav) {\r\n const newState = {};\r\n if (\r\n nav.previousGridPosition.dataState &&\r\n nav.previousGridPosition.navigationOrigin !==\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN.RequestedServices\r\n ) {\r\n nav.clearPreviousPosition();\r\n }\r\n\r\n if (\r\n nav.previousGridPosition.dataState &&\r\n nav.previousGridPosition.navigationOrigin ===\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN.RequestedServices &&\r\n JSON.stringify(nav.previousGridPosition.dataState) !==\r\n JSON.stringify(this.state.dataState)\r\n ) {\r\n Object.assign(newState, {\r\n dataState: nav.previousGridPosition.dataState,\r\n previousWindowScrollOffset: nav.previousGridPosition.windowScrollOffset\r\n });\r\n }\r\n\r\n if (\r\n nav.previousGridPosition.selectedAnnex &&\r\n JSON.stringify(nav.previousGridPosition.selectedAnnex) !==\r\n JSON.stringify(this.state.preselectedAnnex)\r\n ) {\r\n Object.assign(newState, {\r\n preselectedAnnex: nav.previousGridPosition.selectedAnnex\r\n });\r\n nav.clearSelectedAnnex();\r\n }\r\n if (\r\n nav.previousGridPosition.savedQuickSearch &&\r\n JSON.stringify(nav.previousGridPosition.savedQuickSearch) !==\r\n JSON.stringify(this.state.preFilledQuickSearch)\r\n ) {\r\n Object.assign(newState, {\r\n preFilledQuickSearch: nav.previousGridPosition.savedQuickSearch\r\n });\r\n nav.clearSavedQuickSearch();\r\n }\r\n if (JSON.stringify(newState) !== JSON.stringify({})) {\r\n this.setState(newState, () => {\r\n this.queryOData();\r\n });\r\n }\r\n\r\n if (nav.previousGridPosition && nav.previousGridPosition.dataState) {\r\n nav.clearSavedDataState();\r\n }\r\n }\r\n\r\n clearSavedOffset() {\r\n if (\r\n this.state.previousWindowScrollOffset &&\r\n window.pageYOffset === this.state.previousWindowScrollOffset\r\n ) {\r\n this.setState({\r\n previousWindowScrollOffset: null\r\n });\r\n }\r\n }\r\n\r\n scrollWindow() {\r\n this.state.previousWindowScrollOffset &&\r\n window.scrollTo(0, this.state.previousWindowScrollOffset);\r\n }\r\n}\r\n\r\nServiceRequests.propTypes = {\r\n isLoading: PropTypes.bool,\r\n queryOData: PropTypes.func,\r\n queryXLSOData: PropTypes.func,\r\n resetOData: PropTypes.func,\r\n withQuickSearchForm: PropTypes.func,\r\n withAnnexFilterForm: PropTypes.func,\r\n getAnnexes: PropTypes.func,\r\n oData: PropTypes.object,\r\n withAnnexFilterSelected: PropTypes.string,\r\n withAnnexFilterOdata: PropTypes.func,\r\n withQuickSearchFilter: PropTypes.object,\r\n withVisibleColumns: PropTypes.object,\r\n serviceRequests: PropTypes.object,\r\n sor: PropTypes.object,\r\n t: PropTypes.func,\r\n match: PropTypes.object,\r\n location: PropTypes.object,\r\n confirmSor: PropTypes.func,\r\n getSorServiceRequest: PropTypes.func,\r\n currentExercise: PropTypes.object,\r\n gridSelections: PropTypes.object,\r\n sorParty: PropTypes.object,\r\n getSorParty: PropTypes.func,\r\n getSor: PropTypes.func,\r\n crealSorParty: PropTypes.func,\r\n hasUserPermission: PropTypes.func,\r\n getRequestedServicesGrid: PropTypes.func,\r\n user: PropTypes.object\r\n};\r\n\r\nexport default ServiceRequests;\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport {\r\n UNITS,\r\n UNIT,\r\n ADD,\r\n UPDATE,\r\n REMOVE,\r\n UNITSTATICDATA,\r\n PHASECHANGE,\r\n FINANCE,\r\n UPDATEFINANCEDATA,\r\n WHOCANCONFIRMSOR,\r\n CLEARFINANCEDATA,\r\n CANCREATESERVICEREQUEST,\r\n SUMMARY,\r\n CONFIRM_ISOR,\r\n GETSORPARTY,\r\n CLEAR_SOR_PARTY,\r\n CONFIRM_FSOR,\r\n VALIDATE_CONFIRM_FSOR\r\n} from '@hobs/constants/sor';\r\nimport { actionCreator } from '@hobs/actions/utils/utils';\r\n\r\nexport function getSorUnits(filter = 'All') {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure(\r\n `StatementOfRequirements/SendingNationUnitInformation/Units/${filter}`\r\n )\r\n .then(response => {\r\n if (response) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: UNITS.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: UNITS.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: UNITS.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getSorFinanceData() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('StatementOfRequirements/SendingNationInfo')\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, data: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: FINANCE.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: FINANCE.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: FINANCE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function clearSorFinanceData() {\r\n return dispatch => {\r\n dispatch({ type: CLEARFINANCEDATA.SUCCESS });\r\n };\r\n}\r\n\r\nexport function getSorFinanceDataForSubmit() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('StatementOfRequirements/SendingNationInfo/ForSubmit')\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, ...response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: WHOCANCONFIRMSOR.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: WHOCANCONFIRMSOR.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: WHOCANCONFIRMSOR.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function updateSorFinanceData(sorFinanceData) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('StatementOfRequirements/SaveSendingNationInfo', {\r\n body: sorFinanceData,\r\n method: 'POST'\r\n })\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success());\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: UPDATEFINANCEDATA.REQUEST };\r\n }\r\n function success() {\r\n return { type: UPDATEFINANCEDATA.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: UPDATEFINANCEDATA.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getSorUnit(unitId) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(\r\n `StatementOfRequirements/SendingNationUnitInformation/${unitId}`\r\n )\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: UNIT.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: UNIT.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: UNIT.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function resetSorUnit() {\r\n return {\r\n type: UNIT.RESET\r\n };\r\n}\r\n\r\nexport function addElementToExercise(unitId) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('StatementOfRequirements/SendingNationUnitInformation', {\r\n body: { unitId },\r\n method: 'POST'\r\n })\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: ADD.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: ADD.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: ADD.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function updateUnit(body) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('StatementOfRequirements/SendingNationUnitInformation', {\r\n body: body,\r\n method: 'PUT'\r\n })\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n function request() {\r\n return { type: UPDATE.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: UPDATE.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: UPDATE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getUnitStaticData(unitId) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(\r\n `StatementOfRequirements/SendingNationUnitInformation/${unitId}/ForSubmit`\r\n )\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n function request() {\r\n return { type: UNITSTATICDATA.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: UNITSTATICDATA.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: UNITSTATICDATA.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function removeUnit(unitId) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('StatementOfRequirements/SendingNationUnitInformation', {\r\n body: { unitId },\r\n method: 'DELETE'\r\n })\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n function request() {\r\n return { type: REMOVE.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: REMOVE.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: REMOVE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function changePhase(phaseName) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`StatementOfRequirements/ChangePhase/${phaseName}`, {\r\n method: 'POST'\r\n })\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: PHASECHANGE.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: PHASECHANGE.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: PHASECHANGE.FAILURE, error };\r\n }\r\n}\r\nexport function getCanCreateServiceRequest() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('StatementOfRequirements/CanCreateServiceRequest')\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, data: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CANCREATESERVICEREQUEST.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: CANCREATESERVICEREQUEST.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: CANCREATESERVICEREQUEST.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getSorSummary() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('StatementOfRequirements/Summary')\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, data: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n function request() {\r\n return { type: SUMMARY.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: SUMMARY.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: SUMMARY.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function confirmSor() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('StatementOfRequirements/ConfirmIsor', {\r\n method: 'POST'\r\n })\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success());\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CONFIRM_ISOR.REQUEST };\r\n }\r\n function success() {\r\n return { type: CONFIRM_ISOR.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: CONFIRM_ISOR.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getSorParty() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('StatementOfRequirements/Summary')\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, data: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: GETSORPARTY.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: GETSORPARTY.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: GETSORPARTY.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function crealSorParty() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR_SOR_PARTY.SUCCESS });\r\n };\r\n}\r\n\r\nexport const confirmFsor = () =>\r\n actionCreator('StatementOfRequirements/ConfirmFsor', CONFIRM_FSOR, {\r\n method: 'POST'\r\n });\r\n\r\nexport const validateConfirmFsor = () =>\r\n actionCreator(\r\n 'StatementOfRequirements/ValidateConfirmFsor',\r\n VALIDATE_CONFIRM_FSOR,\r\n {\r\n method: 'POST'\r\n }\r\n );\r\n","import React from 'react';\r\nimport deepcopy from 'deepcopy';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport { withTranslation } from 'react-i18next';\r\nimport classnames from 'classnames';\r\nimport { GhostButton, RaisedButton } from '@hobs/components/Buttons';\r\nimport Tooltip from '@hobs/components/Tooltip';\r\nimport Status from '@hobs/components/Status';\r\nimport Indicator from '@hobs/components/Indicator';\r\nimport Icon from '@hobs/components/Icon';\r\nimport { H1 } from '@hobs/components/Headings';\r\nimport { ServiceRequestNavContext } from '@hobs/components/ServiceRequestNavContext';\r\nimport WithQuickSearch from '@hobs/hocs/WithQuickSearch';\r\nimport WithAnnexFilter from '@hobs/hocs/WithAnnexFilter';\r\nimport ObjectPath from 'object-path';\r\nimport Money from '@hobs/components/Money';\r\nimport Dropdown from '@hobs/components/Dropdown';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport { CellDate, CellDateTime } from '@hobs/components/Grid/CellDate';\r\nimport {\r\n PAGE_SIZES,\r\n USER_ROLES,\r\n DEFAULT_STATUS_FILTER,\r\n INDICATIONS,\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN\r\n} from '@hobs/utils/constants';\r\nimport {\r\n ExcelExport,\r\n ExcelExportColumn\r\n} from '@progress/kendo-react-excel-export';\r\nimport { Grid } from '@progress/kendo-react-grid';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\nimport WithVisibleColumns from '@hobs/hocs/WithVisibleColumns';\r\nimport PropTypes from 'prop-types';\r\nimport ShortId from 'shortid';\r\nimport Columns from '@hobs/components/Grid/Columns';\r\nimport {\r\n withDataStateLocalOverrides,\r\n withGridLocalOverrides,\r\n onUserResetSettings\r\n} from '@hobs/utils/grid/overrides';\r\nimport { queryOData, queryXLSOData, resetOData } from '@hobs/actions/odata';\r\nimport { getAnnexes } from '@hobs/actions/annex';\r\nimport { getRequestedServicesGrid } from '@hobs/actions/gridSelections';\r\nimport Discussion from '@hobs/containers/Discussion';\r\nimport Summary from '@hobs/components/Summary';\r\nimport Toast from '@hobs/components/Toast';\r\nimport _ServiceRequests from '@hobs/containers/ServiceRequests';\r\nimport Quantity from '@hobs/components/Quantity';\r\nimport { expandDataItem } from '@hobs/utils/expandItem';\r\nimport { getSorSummary, getSorFinanceData } from '../../actions/sor';\r\nconst INDICATION_TRANSPORTATION_FIELD =\r\n 'Indications.TransportationInformationMissing';\r\n\r\nclass RequestedServices extends _ServiceRequests {\r\n constructor(props) {\r\n super(props);\r\n const { t, hasUserPermission } = this.props;\r\n\r\n this.exportRef = React.createRef();\r\n this.grid = React.createRef();\r\n\r\n this.defaultGridColumns = {\r\n Indications: {\r\n title: t('Indications'),\r\n columnMenu: true,\r\n default: true,\r\n sortable: false,\r\n visible: true,\r\n minResizableWidth: '46px',\r\n headerCell: () => (\r\n
\r\n \r\n
\r\n ),\r\n cell: ({ dataItem }) => {\r\n const indications = this.getIndications(dataItem.Indications);\r\n return (\r\n \r\n {indications.length > 0 && (\r\n (\r\n
\r\n {INDICATIONS[indication]}\r\n
\r\n ))}\r\n key={ShortId.generate()}\r\n />\r\n )}\r\n \r\n );\r\n },\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('All'),\r\n default: true,\r\n value: ''\r\n },\r\n {\r\n name: t('None'),\r\n default: false,\r\n value: false,\r\n field: INDICATION_TRANSPORTATION_FIELD\r\n },\r\n ...this.getIndicationColumnFilter()\r\n ]\r\n }\r\n },\r\n RequestNumber: {\r\n minResizableWidth: '70px',\r\n title: t('Req.'),\r\n columnMenu: true,\r\n cell: ({ dataItem }) => {\r\n const editURI = `/${\r\n dataItem.IsCustom ? 'custom-' : ''\r\n }service-request/${dataItem.ServiceRequestId}`;\r\n\r\n return (\r\n \r\n {dataItem.RequestNumber &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT) && (\r\n \r\n {nav => (\r\n {\r\n nav.setPreviousGridPosition(\r\n this.state.dataState,\r\n window.pageYOffset,\r\n this.state.selectedAnnex,\r\n this.state.quickSearchValue,\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN.RequestedServices\r\n );\r\n }}\r\n >\r\n {dataItem.RequestNumber}\r\n \r\n )}\r\n \r\n )}\r\n {dataItem.RequestNumber &&\r\n (hasUserPermission(USER_ROLES.HOST_UNIT)) && (\r\n <>{dataItem.RequestNumber}\r\n )}\r\n\r\n {!dataItem.RequestNumber && <>-}\r\n \r\n );\r\n },\r\n default: true,\r\n visible: true\r\n },\r\n HasAttachments: {\r\n minResizableWidth: '33px',\r\n title: t('Attachment'),\r\n cell: ({ dataItem }) => (\r\n \r\n {dataItem.HasAttachments && (\r\n \r\n )}\r\n \r\n ),\r\n headerCell: () => (\r\n \r\n ),\r\n default: false,\r\n visible: false,\r\n xls: false\r\n },\r\n AdditionalInfo: {\r\n title: t('Add. info.'),\r\n minResizableWidth: '45px',\r\n default: true,\r\n visible: true,\r\n xls: false,\r\n cell: ({ dataItem }) => (\r\n \r\n {dataItem.AdditionalInfo && (\r\n <>\r\n {!hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT) ? (\r\n \r\n {nav => (\r\n {\r\n nav.setPreviousGridPosition(\r\n this.state.dataState,\r\n window.pageYOffset,\r\n this.state.selectedAnnex,\r\n this.state.quickSearchValue,\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN.RequestedServices\r\n );\r\n nav.setServiceRequestId(dataItem.ServiceRequestId);\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 StatusId: {\r\n title: t('Status'),\r\n width: 103,\r\n columnMenu: true,\r\n cell: ({ dataItem }) => (\r\n \r\n \r\n \r\n ),\r\n default: true,\r\n visible: true\r\n },\r\n Service: {\r\n title: t('Service'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n Description: {\r\n minResizableWidth: '80px',\r\n title: t('Description'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n },\r\n Group: {\r\n title: t('Group'),\r\n cell: ({ dataItem }) => {dataItem.Group},\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n AnnexId: {\r\n title: t('Annex'),\r\n cell: ({ dataItem }) => {dataItem.Annex},\r\n columnMenu: true,\r\n default: false,\r\n visible: false,\r\n xlsField: 'Annex'\r\n },\r\n RequestedQuantity: {\r\n title: t('Qty'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'numeric',\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n IsCalculatedByDays: {\r\n title: t('Calculated by days'),\r\n default: true,\r\n visible: true,\r\n columnMenu: true,\r\n cell: ({ dataItem }) => {\r\n return {dataItem.IsCalculatedByDays ? t('Yes') : t('No')};\r\n },\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n value: ''\r\n },\r\n {\r\n name: t('Yes'),\r\n value: true\r\n },\r\n {\r\n name: t('No'),\r\n value: false\r\n }\r\n ]\r\n }\r\n },\r\n TotalQuantity: {\r\n title: t('Total q-ty'),\r\n filter: 'numeric',\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n DeliveryQuantity: {\r\n minResizableWidth: '100px',\r\n title: t('Delivery Qty'),\r\n filter: 'numeric',\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n IsDeliveryFinalized: {\r\n title: t('Delivery finalized'),\r\n default: false,\r\n visible: false,\r\n columnMenu: true,\r\n cell: ({ dataItem }) => {\r\n return {dataItem.IsDeliveryFinalized ? t('Yes') : t('No')};\r\n },\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n value: ''\r\n },\r\n {\r\n name: t('Yes'),\r\n value: true\r\n },\r\n {\r\n name: t('No'),\r\n value: false\r\n }\r\n ]\r\n }\r\n },\r\n UnitOfMeasureId: {\r\n title: t('UoM'),\r\n cell: ({ dataItem }) => {dataItem.UnitOfMeasure},\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n xlsField: 'UnitOfMeasure'\r\n },\r\n UnallocatedQuantity: {\r\n minResizableWidth: '80px',\r\n title: t('Unall qty'),\r\n filter: 'numeric',\r\n columnMenu: true,\r\n default: false,\r\n visible: false,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n Region: {\r\n title: t('Region'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n },\r\n Location: {\r\n title: t('Location'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n LocationComment: {\r\n title: t('Location comment'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n },\r\n LocationTo: {\r\n title: t('Delivery location'),\r\n columnMenu: true,\r\n default: true,\r\n visible: false\r\n },\r\n LocationCommentTo: {\r\n title: t('Delivery location comment'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n },\r\n Site: {\r\n title: t('Site'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n },\r\n Unit: {\r\n title: t('Unit'),\r\n default: true,\r\n columnMenu: true,\r\n visible: true\r\n },\r\n DateFrom: {\r\n title: t('From date'),\r\n columnMenu: true,\r\n minResizableWidth: '85px',\r\n filter: 'date',\r\n cell: CellDate,\r\n default: true,\r\n visible: true\r\n },\r\n DateTo: {\r\n title: t('To date'),\r\n columnMenu: true,\r\n minResizableWidth: '85px',\r\n filter: 'date',\r\n cell: CellDate,\r\n default: true,\r\n visible: true\r\n },\r\n Days: {\r\n minResizableWidth: '60px',\r\n title: t('Days'),\r\n filter: 'numeric',\r\n default: true,\r\n sortable: false,\r\n visible: true\r\n },\r\n EstimatedTotalCost: {\r\n filter: 'numeric',\r\n minResizableWidth: '100px',\r\n title: t('Est. cost'),\r\n default: true,\r\n sortable: false,\r\n visible: true,\r\n xls: false,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n {dataItem.EstimatedTotalCostFrom !==\r\n dataItem.EstimatedTotalCostTo ? (\r\n <>\r\n {' '}\r\n - \r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n );\r\n }\r\n },\r\n EstimatedGrossAmount: {\r\n minResizableWidth: '60px',\r\n title: t('Est. gross amount'),\r\n default: true,\r\n visible: true,\r\n sortable: false,\r\n xls: false,\r\n filter: 'numeric',\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n {dataItem.EstimatedGrossAmountFrom !==\r\n dataItem.EstimatedGrossAmountTo ? (\r\n <>\r\n {' '}\r\n - \r\n \r\n ) : (\r\n ''\r\n )}\r\n \r\n );\r\n }\r\n },\r\n ActualCost: {\r\n minResizableWidth: '60px',\r\n title: t('Actual cost'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'numeric',\r\n xls: false,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n ActualGrossAmount: {\r\n minResizableWidth: '60px',\r\n title: t('Act. gross amount'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'numeric',\r\n xls: false,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n },\r\n IsPaid: {\r\n title: t('Is Paid'),\r\n default: false,\r\n visible: false,\r\n cell: ({ dataItem }) => {\r\n return {dataItem.IsPaid ? t('Yes') : t('No')};\r\n }\r\n },\r\n ActivityName: {\r\n title: t('Activity'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n }\r\n };\r\n\r\n if (\r\n !hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT)\r\n ) {\r\n Object.assign(this.defaultGridColumns, {\r\n DiscussionStatus: {\r\n title: t('Disc.'),\r\n default: true,\r\n columnMenu: true,\r\n visible: true,\r\n xls: false,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n },\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n value: ''\r\n },\r\n {\r\n name: t('Unread messages'),\r\n value: 1\r\n },\r\n {\r\n name: t('Read messages'),\r\n value: 2\r\n },\r\n {\r\n name: t('No messages'),\r\n value: 3\r\n }\r\n ]\r\n }\r\n }\r\n });\r\n }\r\n\r\n Object.assign(this.defaultGridColumns, {\r\n CreationDate: {\r\n title: t('Creation date'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false,\r\n filter: 'date',\r\n cell: CellDateTime\r\n },\r\n LastChangeDate: {\r\n title: t('Last change'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false,\r\n filter: 'date',\r\n cell: CellDateTime\r\n },\r\n DeliveryComment: {\r\n title: t('Delivered comment'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n },\r\n Comment: {\r\n title: t('Comment'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n },\r\n ResponseComment: {\r\n title: t('Response comment'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false\r\n }\r\n });\r\n\r\n this.defaultDataState = {\r\n take: 20,\r\n skip: 0,\r\n filter: {\r\n logic: 'and',\r\n filters: [DEFAULT_STATUS_FILTER]\r\n },\r\n sort: [{ field: 'RequestNumber', dir: 'desc' }]\r\n };\r\n\r\n this.state = {\r\n filters: {},\r\n selectedUnit: '',\r\n selectedAnnex: null,\r\n dataState: withDataStateLocalOverrides(\r\n deepcopy(this.defaultDataState),\r\n this.LSdataStateName\r\n ),\r\n showConfirmDialog: false,\r\n gridKey: ShortId.generate(),\r\n columns: withGridLocalOverrides(\r\n deepcopy(this.defaultGridColumns),\r\n this.LSGridPropsName\r\n ),\r\n isConfirmIsorDisabled: false,\r\n isCreateSrDisabled: false\r\n };\r\n }\r\n\r\n LSdataStateName = `ServiceRequestsSN${this.props.user.CurrentExerciseId}.dataState`;\r\n LSGridPropsName = `ServiceRequestsSN${this.props.user.CurrentExerciseId}.grid.props`;\r\n\r\n getServiceRequestsUrl() {\r\n return 'ServiceRequestQuery';\r\n }\r\n\r\n async componentDidMount() {\r\n await this.queryOData();\r\n await this.props.getAnnexes();\r\n await this.props.getRequestedServicesGrid();\r\n this.applyCustomFilters();\r\n\r\n await this.props.getSorSummary();\r\n await this.props.getSorFinanceData();\r\n await this.props.withVisibleColumns.setColumns(this.state.columns);\r\n this.props.withVisibleColumns.onUpdate(() => {\r\n this.setState({\r\n gridKey: ShortId.generate()\r\n });\r\n });\r\n\r\n window.addEventListener('scroll', this.handleScroll);\r\n window.addEventListener('resize', this.handleScroll);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetOData();\r\n window.removeEventListener('scroll', this.handleScroll);\r\n window.removeEventListener('resize', this.handleScroll);\r\n }\r\n\r\n onUserSaveSettings = () => {\r\n localStorage.setItem(\r\n this.LSdataStateName,\r\n JSON.stringify(this.state.dataState)\r\n );\r\n localStorage.setItem(\r\n this.LSGridPropsName,\r\n JSON.stringify({\r\n columns: this.grid.current.columns\r\n })\r\n );\r\n };\r\n\r\n onUserResetSettings = onUserResetSettings(\r\n this.LSdataStateName,\r\n this.LSGridPropsName,\r\n this.NotificationsQueryFilterName,\r\n () => {\r\n this.props.withVisibleColumns.setColumns(\r\n Object.assign(\r\n {},\r\n this.getColumnsWithCustomFilter(this.defaultGridColumns)\r\n )\r\n );\r\n\r\n this.setState(\r\n {\r\n gridKey: ShortId.generate(),\r\n columns: this.getColumnsWithCustomFilter(this.defaultGridColumns),\r\n dataState: this.defaultDataState\r\n },\r\n () => {\r\n this.queryOData();\r\n }\r\n );\r\n }\r\n );\r\n\r\n canCreateServiceRequest = () => {\r\n const { sor } = this.props;\r\n const { isCreateSrDisabled } = this.state;\r\n return (\r\n (!!ObjectPath.get(sor, 'sorSummary.canCreateServiceRequest') ||\r\n !!ObjectPath.get(sor, 'sorSummary.canCreateAdditionalServiceRequest') ||\r\n !!ObjectPath.get(sor, 'sorSummary.isExerciseIsFrozen')) &&\r\n !isCreateSrDisabled\r\n );\r\n };\r\n\r\n getSummaryInfo() {\r\n const { selectedAnnex } = this.state;\r\n const { currentExercise, t } = this.props;\r\n\r\n const phone = ObjectPath.get(selectedAnnex, 'responsiblePerson.phone')\r\n ? this.getFieldValue(selectedAnnex.responsiblePerson.phone)\r\n : this.getFieldValue(\r\n ObjectPath.get(\r\n currentExercise,\r\n 'hostInformation.responsiblePersonPhone'\r\n )\r\n );\r\n const name = ObjectPath.get(selectedAnnex, 'responsiblePerson.name')\r\n ? this.getFieldValue(selectedAnnex.responsiblePerson.name)\r\n : this.getFieldValue(\r\n ObjectPath.get(\r\n currentExercise,\r\n 'hostInformation.responsiblePersonName'\r\n ),\r\n t('Responsible person')\r\n );\r\n\r\n const email = ObjectPath.get(selectedAnnex, 'responsiblePerson.email')\r\n ? this.getFieldValue(selectedAnnex.responsiblePerson.email)\r\n : this.getFieldValue(\r\n ObjectPath.get(\r\n currentExercise,\r\n 'hostInformation.responsiblePersonEmail'\r\n )\r\n );\r\n\r\n const organization = ObjectPath.get(\r\n currentExercise,\r\n 'hostInformation.responsiblePersonOrganization'\r\n )\r\n ? ObjectPath.get(\r\n currentExercise,\r\n 'hostInformation.responsiblePersonOrganization'\r\n ) + t(' responsible')\r\n : this.getFieldValue(\r\n ObjectPath.get(\r\n currentExercise,\r\n 'hostInformation.responsiblePersonOrganization'\r\n ),\r\n t('Responsible person')\r\n );\r\n\r\n return {\r\n responsiblePerson: {\r\n phone,\r\n name,\r\n email\r\n },\r\n requestedQuantity: this.props.oData.total,\r\n annexName:\r\n selectedAnnex && selectedAnnex.name ? selectedAnnex.name : null,\r\n organization,\r\n sendingNationName: ObjectPath.get(this.props.sor, 'sorSummary.partyName')\r\n };\r\n }\r\n\r\n canManageApprovals() {\r\n return !!ObjectPath.get(this.props.sor, 'sorSummary.canManageApprovals');\r\n }\r\n\r\n render() {\r\n const {\r\n t,\r\n withVisibleColumns: { getVisibleColumnCount, openDialog, getGridColumns },\r\n hasUserPermission,\r\n sor,\r\n isLoading,\r\n currentExercise\r\n } = this.props;\r\n const { selectedUnit } = this.state;\r\n\r\n return (\r\n
\r\n {this.scrollWindow()}\r\n {this.clearSavedOffset()}\r\n \r\n {nav => !isLoading && this.navigateToSavedLocation(nav)}\r\n \r\n \r\n {nav => this.setSavedDataState(nav)}\r\n \r\n \r\n {nav =>\r\n nav.serviceRequestNavigation !==\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN.RequestedServices &&\r\n nav.setServiceRequestNavigation(\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN.RequestedServices\r\n )\r\n }\r\n \r\n

{t('Requested services')}

\r\n
\r\n \r\n {!hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT) &&\r\n this.canManageApprovals() && (\r\n \r\n {t('SOR approvals')}\r\n \r\n )}\r\n \r\n\r\n
\r\n
\r\n {!hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT) && (\r\n }\r\n onClick={event => {\r\n if (\r\n ObjectPath.get(sor, 'sorSummary.isExerciseIsFrozen')\r\n ) {\r\n event.preventDefault();\r\n Toast.warning(\r\n t(\r\n 'New services cannot be added, because FSOR is currently frozen'\r\n )\r\n );\r\n }\r\n }}\r\n >\r\n {ObjectPath.get(\r\n sor,\r\n 'sorSummary.canCreateAdditionalServiceRequest'\r\n )\r\n ? t('Add additional request')\r\n : t('Add service request')}\r\n \r\n )}\r\n
\r\n\r\n
\r\n
\r\n {t('Show:')}\r\n \r\n {this.getUnitOptions(\r\n ObjectPath.get(this.props.sor, 'sorSummary.units')\r\n )}\r\n \r\n
\r\n {this.props.withQuickSearchForm({\r\n onSearch: this.onQuickSearch,\r\n noMargin: true,\r\n preFilledQuickSearch: this.state.preFilledQuickSearch\r\n })}\r\n
\r\n
\r\n {\r\n openDialog();\r\n }}\r\n type=\"button\"\r\n >\r\n {t('Visible columns')} ({getVisibleColumnCount()})\r\n \r\n\r\n }\r\n onClick={this.exportServiceRequests}\r\n >\r\n {t('XLSX')}\r\n \r\n
\r\n
\r\n\r\n
\r\n {this.props.withAnnexFilterForm((id, annex) => {\r\n const { selectedAnnex, preselectedAnnex } = this.state;\r\n\r\n // Additional condition to allow keep page then we are returning\r\n // from annex after it's preview.\r\n const shouldSetSkip =\r\n preselectedAnnex &&\r\n selectedAnnex &&\r\n selectedAnnex.annexId === preselectedAnnex.annexId;\r\n const additionalDataStateOverride = {};\r\n\r\n if (shouldSetSkip) {\r\n additionalDataStateOverride.skip = 0;\r\n }\r\n // End of condition;\r\n\r\n this.setState(\r\n {\r\n selectedAnnex: annex,\r\n preselectedAnnex: null,\r\n dataState: {\r\n ...this.state.dataState,\r\n ...additionalDataStateOverride\r\n }\r\n },\r\n this.queryOData\r\n );\r\n }, this.state.preselectedAnnex)}\r\n
\r\n\r\n {Object.keys(getGridColumns).length > 0 && (\r\n <>\r\n \r\n {Object.keys(getGridColumns).reduce((results, key) => {\r\n const column = getGridColumns[key];\r\n if (\r\n (typeof column.xls === 'undefined' || column.xls) &&\r\n column.visible\r\n ) {\r\n if (column.filter === 'date') {\r\n results.push(\r\n \r\n );\r\n } else {\r\n results.push(\r\n \r\n );\r\n }\r\n }\r\n return results;\r\n }, [])}\r\n {getGridColumns.ActualCost.visible && (\r\n {\r\n return (\r\n t('Sum: ') +\r\n this.getTotalEstimatedTotalCost().FooterTotalActualCost\r\n );\r\n }}\r\n />\r\n )}\r\n {\r\n return (\r\n t('Sum: ') +\r\n this.getTotalEstimatedTotalCost()\r\n .FooterTotalEstimatedCostFrom\r\n );\r\n }}\r\n />\r\n {\r\n return (\r\n t('Sum: ') +\r\n this.getTotalEstimatedTotalCost()\r\n .FooterTotalEstimatedCostTo\r\n );\r\n }}\r\n />\r\n {\r\n return (\r\n t('Sum: ') +\r\n this.getTotalEstimatedTotalCost()\r\n .FooterTotalEstimatedGrossAmountFrom\r\n );\r\n }}\r\n />\r\n {\r\n return (\r\n t('Sum: ') +\r\n this.getTotalEstimatedTotalCost()\r\n .FooterTotalEstimatedGrossAmountTo\r\n );\r\n }}\r\n />\r\n \r\n \r\n {nav => (\r\n {\r\n if (props.dataItem.footer) {\r\n return (\r\n \r\n \r\n
\r\n
\r\n {t('Sum')}\r\n {` [${currentExercise.currency.name}]`}:\r\n
\r\n
\r\n
\r\n {getGridColumns.ActualCost.visible && (\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n <>\r\n \r\n\r\n {props.dataItem\r\n .FooterTotalEstimatedCostFrom !==\r\n props.dataItem\r\n .FooterTotalEstimatedCostTo && (\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 {props.dataItem\r\n .FooterTotalEstimatedGrossAmountFrom !==\r\n props.dataItem\r\n .FooterTotalEstimatedGrossAmountTo && (\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 return {\r\n ...row,\r\n props: {\r\n ...row.props,\r\n className: classnames(row.props.className, {\r\n 'service-requests-view--disabled':\r\n props.dataItem.StatusId === 2,\r\n 'service-requests-view--last-visited':\r\n props.dataItem.ServiceRequestId ===\r\n nav.serviceRequestId\r\n })\r\n }\r\n };\r\n }}\r\n >\r\n {Columns({\r\n columns: getGridColumns,\r\n onSave: this.onUserSaveSettings,\r\n onReset: this.onUserResetSettings,\r\n dataState: this.state.dataState\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\nRequestedServices.propTypes = {\r\n isLoading: PropTypes.bool,\r\n queryOData: PropTypes.func,\r\n queryXLSOData: PropTypes.func,\r\n resetOData: PropTypes.func,\r\n withQuickSearchForm: PropTypes.func,\r\n withAnnexFilterForm: PropTypes.func,\r\n getAnnexes: PropTypes.func,\r\n oData: PropTypes.object,\r\n withAnnexFilterSelected: PropTypes.string,\r\n withAnnexFilterOdata: PropTypes.func,\r\n withQuickSearchFilter: PropTypes.object,\r\n withVisibleColumns: PropTypes.object,\r\n serviceRequests: PropTypes.object,\r\n sor: PropTypes.object,\r\n t: PropTypes.func,\r\n match: PropTypes.object,\r\n location: PropTypes.object,\r\n currentExercise: PropTypes.object,\r\n gridSelections: PropTypes.object,\r\n hasUserPermission: PropTypes.func,\r\n getRequestedServicesGrid: PropTypes.func,\r\n getSorSummary: PropTypes.func,\r\n getSorFinanceData: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n currentExercise: state.exercise.current,\r\n oData: state.odata,\r\n sor: state.sor,\r\n gridSelections: state.gridSelections.requestedServicesGrid\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n queryOData,\r\n queryXLSOData,\r\n resetOData,\r\n getAnnexes,\r\n getSorFinanceData,\r\n getRequestedServicesGrid,\r\n getSorSummary\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(\r\n withTranslation()(\r\n withRouter(\r\n WithQuickSearch(\r\n WithAnnexFilter(WithVisibleColumns(WithRoles(RequestedServices)))\r\n )\r\n )\r\n )\r\n);\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\n\r\nimport {\r\n list,\r\n tree,\r\n GET,\r\n CREATE,\r\n UPDATE,\r\n DELETE,\r\n CLEAR\r\n} from '@hobs/constants/annex';\r\nimport { actionCreator } from './utils/utils';\r\n\r\nexport function getAnnexes() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('Exercises/Annexes')\r\n .then(response => {\r\n if (response) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: list.REQUEST };\r\n }\r\n function success(annexes) {\r\n return { type: list.SUCCESS, annexes };\r\n }\r\n function failure(error) {\r\n return { type: list.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getAnnexesTree() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('AnnexesTree')\r\n .then(response => {\r\n if (response) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: tree.REQUEST };\r\n }\r\n function success(annexes) {\r\n return { type: tree.SUCCESS, annexes };\r\n }\r\n function failure(error) {\r\n return { type: tree.FAILURE, error };\r\n }\r\n}\r\n\r\nexport const getAnnex = annexId =>\r\n actionCreator(`Exercises/Annexes/${annexId}`, GET);\r\n\r\nexport const createAnnex = body =>\r\n actionCreator('Exercises/Annexes', CREATE, {\r\n body: body,\r\n method: 'POST'\r\n });\r\n\r\nexport const updateAnnex = (annexId, body) =>\r\n actionCreator(`Exercises/Annexes/${annexId}`, UPDATE, {\r\n body: body,\r\n method: 'PUT'\r\n });\r\n\r\nexport const deleteAnnex = annexId =>\r\n actionCreator(`Exercises/Annexes/${annexId}`, DELETE, {\r\n method: 'DELETE'\r\n });\r\n\r\nexport function clearAnnex() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR.SUCCESS });\r\n };\r\n}\r\n","import {\r\n GETANNEXOVERVIEW,\r\n GETAUDITLOGGRID,\r\n GETEXERCISEGRID,\r\n GETPARTYGRID,\r\n GETREQUESTEDSERVICES,\r\n GETSORGRID,\r\n GETUSERGRID,\r\n GET_ACTIVITY_GRID,\r\n GET_CATALOG_GRID,\r\n GET_ORDER_GRID,\r\n GET_GROUP_GRID,\r\n GET_TICKET_GRID\r\n} from '@hobs/constants/gridSelections';\r\nimport { actionCreator } from './utils/utils';\r\n\r\nexport const getAnnexOverviewGrid = () =>\r\n actionCreator('GridSelections/AnnexOverview', GETANNEXOVERVIEW);\r\nexport const getAuditLogGrid = () =>\r\n actionCreator('GridSelections/AuditLogGrid', GETAUDITLOGGRID);\r\nexport const getExerciseGrid = () =>\r\n actionCreator('GridSelections/ExerciseGrid', GETEXERCISEGRID);\r\nexport const getPartyGrid = () =>\r\n actionCreator('GridSelections/PartyGrid', GETPARTYGRID);\r\nexport const getRequestedServicesGrid = (partyId) =>\r\n actionCreator(`GridSelections/RequestedServices/${partyId}`, GETREQUESTEDSERVICES);\r\nexport const getSorGrid = () =>\r\n actionCreator('GridSelections/SorGrid', GETSORGRID);\r\nexport const getUserGrid = partyId => {\r\n return actionCreator(\r\n partyId ? `GridSelections/UserGrid/${partyId}` : 'GridSelections/UserGrid',\r\n GETUSERGRID\r\n );\r\n};\r\nexport const getAllUserGrid = () => {\r\n return actionCreator(\r\n 'GridSelections/UserGrid',\r\n GETUSERGRID\r\n );\r\n};\r\nexport const getCatalogGrid = () =>\r\n actionCreator('GridSelections/CatalogGrid', GET_CATALOG_GRID);\r\nexport const getActivityGrid = () =>\r\n actionCreator('GridSelections/ActivityGrid', GET_ACTIVITY_GRID);\r\nexport const getOrderGrid = () =>\r\n actionCreator('GridSelections/OrderManagementGrid', GET_ORDER_GRID);\r\nexport const getGroupGrid = () =>\r\n actionCreator('GridSelections/GroupGrid', GET_GROUP_GRID);\r\nexport const getTicketGrid = () =>\r\n actionCreator('GridSelections/TicketsGrid', GET_TICKET_GRID);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nimport classNames from 'classnames';\r\nimport Arrow from './arrow.svg';\r\nimport Styles from './Panel.module.scss';\r\n\r\nconst Panel = ({\r\n heading,\r\n children,\r\n actions,\r\n footnote,\r\n withArrow,\r\n showFootnote,\r\n className\r\n}) => {\r\n return (\r\n
\r\n {heading && (\r\n
\r\n
\r\n {heading.number && {heading.number}}\r\n {heading.title ? heading.title : heading}\r\n
\r\n
{actions}
\r\n
\r\n )}\r\n
{children}
\r\n {showFootnote &&
{footnote}
}\r\n\r\n {withArrow && \"arrow\"}\r\n
\r\n );\r\n};\r\n\r\nPanel.propTypes = {\r\n heading: PropTypes.oneOfType([\r\n PropTypes.shape({\r\n text: PropTypes.string,\r\n number: PropTypes.number\r\n }),\r\n PropTypes.string\r\n ]),\r\n children: PropTypes.any,\r\n withArrow: PropTypes.bool,\r\n showFootnote: PropTypes.bool,\r\n actions: PropTypes.element,\r\n footnote: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\r\n className: PropTypes.string\r\n};\r\n\r\nPanel.defaultProps = {\r\n footnote: '',\r\n withArrow: false,\r\n showFootnote: true\r\n};\r\n\r\nexport default Panel;\r\n","import React from 'react';\r\nimport CheckboxTreeOriginal from 'react-checkbox-tree';\r\nimport PropTypes from 'prop-types';\r\nimport './CheckboxTree.scss';\r\n\r\nconst DEMO_NODES = [\r\n {\r\n value: 'mars',\r\n label: 'Mars',\r\n children: [\r\n { value: 'phobos', label: 'Phobos' },\r\n { value: 'deimos', label: 'Deimos' }\r\n ]\r\n },\r\n {\r\n value: 'mars2',\r\n label: 'Mars2',\r\n children: [\r\n { value: 'phobos2', label: 'Phobos' },\r\n { value: 'deimos2', label: 'Deimos' }\r\n ]\r\n }\r\n];\r\n\r\nconst CheckboxTree = ({ nodes = DEMO_NODES, ...rest }) => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nCheckboxTree.propTypes = {\r\n nodes: PropTypes.array,\r\n onCheck: PropTypes.func,\r\n onExpand: PropTypes.func\r\n};\r\n\r\nexport default CheckboxTree;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Translation } from 'react-i18next/src';\r\nimport Dialog from '@hobs/components/Dialog';\r\nimport { RaisedButton, GhostButton } from '@hobs/components/Buttons';\r\nimport Styles from './Confirm.module.scss';\r\n\r\nclass ConfirmContainer extends React.Component {\r\n state = {\r\n title: null,\r\n message: null,\r\n resolveCallback: () => {},\r\n rejectCallback: () => {},\r\n yesButtonTitle: null,\r\n noButtonTitle: null,\r\n onCloseCallback: () => {}\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.show = this.show.bind(this);\r\n this.handleYes = this.handleYes.bind(this);\r\n this.handleNo = this.handleNo.bind(this);\r\n this.resetState = this.resetState.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n }\r\n\r\n static create() {\r\n const containerElement = document.createElement('div');\r\n document.body.appendChild(containerElement);\r\n const cc = ReactDOM.render(, containerElement);\r\n if (cc === null) {\r\n throw new Error('ConfirmContainer is null');\r\n }\r\n return cc;\r\n }\r\n\r\n show(\r\n title,\r\n message,\r\n resolveCallback,\r\n rejectCallback,\r\n yesButtonTitle = null,\r\n noButtonTitle = null,\r\n onCloseCallback,\r\n ) {\r\n this.setState({\r\n title,\r\n message,\r\n resolveCallback,\r\n rejectCallback,\r\n yesButtonTitle,\r\n noButtonTitle,\r\n onCloseCallback\r\n });\r\n }\r\n\r\n handleYes() {\r\n if (\r\n this.state.resolveCallback &&\r\n typeof this.state.resolveCallback === 'function'\r\n ) {\r\n this.state.resolveCallback();\r\n }\r\n this.resetState();\r\n }\r\n\r\n handleNo() {\r\n if (\r\n this.state.rejectCallback &&\r\n typeof this.state.rejectCallback === 'function'\r\n ) {\r\n this.state.rejectCallback();\r\n }\r\n this.resetState();\r\n }\r\n\r\n handleClose() {\r\n if (\r\n this.state.onCloseCallback &&\r\n typeof this.state.onCloseCallback === 'function'\r\n ) {\r\n this.state.onCloseCallback();\r\n }\r\n else if (\r\n this.state.rejectCallback &&\r\n typeof this.state.rejectCallback === 'function'\r\n ) {\r\n this.state.rejectCallback();\r\n }\r\n\r\n this.resetState();\r\n }\r\n\r\n resetState() {\r\n this.setState({\r\n title: null,\r\n message: null,\r\n resolveCallback: () => {},\r\n rejectCallback: () => {},\r\n yesButtonTitle: null,\r\n noButtonTitle: null,\r\n onCloseCallback: () => {}\r\n });\r\n }\r\n\r\n render() {\r\n return
{this.renderConfirm()}
;\r\n }\r\n\r\n renderConfirm() {\r\n if (!this.state.title && !this.state.message) {\r\n return null;\r\n }\r\n return (\r\n \r\n
\r\n {{t => t(this.state.message)}}\r\n
\r\n\r\n
\r\n \r\n {this.state.noButtonTitle ? (\r\n this.state.noButtonTitle\r\n ) : (\r\n {t => t('No')}\r\n )}\r\n \r\n \r\n {this.state.yesButtonTitle ? (\r\n this.state.yesButtonTitle\r\n ) : (\r\n {t => t('Yes')}\r\n )}\r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nconst confirm = ConfirmContainer.create();\r\n\r\nexport default confirm.show;\r\n","import React, { useState, useEffect } from 'react';\r\nimport Styles from './InformationToolTip.module.scss';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Tooltip from '@hobs/components/Tooltip';\r\n\r\nconst InformationToolTip = ({\r\n toolTipInformation,\r\n startDisabled,\r\n catalogItemId,\r\n hasMargins,\r\n isOpen,\r\n floatRight\r\n}) => {\r\n const [toolTipOpen, setToolTipOpen] = useState(!startDisabled);\r\n const [toolTipInformationOld, setOldInformation] = useState(\r\n toolTipInformation\r\n );\r\n const [catalogItemIdOld, setOldItemId] = useState(catalogItemId);\r\n\r\n useEffect(() => {\r\n setToolTipOpen(isOpen);\r\n }, [isOpen]);\r\n\r\n if (toolTipInformation != toolTipInformationOld) {\r\n setToolTipOpen(true);\r\n setOldInformation(toolTipInformation);\r\n }\r\n\r\n if (catalogItemId != catalogItemIdOld) {\r\n setToolTipOpen(true);\r\n setOldItemId(catalogItemId);\r\n }\r\n\r\n const onToolTip = () => {\r\n setToolTipOpen(!toolTipOpen);\r\n };\r\n\r\n const tooltip = text => {\r\n return (\r\n
\r\n
\r\n X\r\n
\r\n
{text}
\r\n
\r\n );\r\n };\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\nInformationToolTip.defaultProps = {\r\n hasMargins: true,\r\n isVisible: true,\r\n floatRight: true\r\n};\r\n\r\nexport default InformationToolTip;\r\n","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport Styles from './InfoPanel.module.scss';\r\nimport InformationTooltip from '../InformationToolTip';\r\n\r\nconst InfoPanel = ({\r\n children,\r\n title,\r\n titleIndicationMessage,\r\n detailsIndicationMessage,\r\n toolTipInformation,\r\n tooltipStartDisabled,\r\n catalogItemId,\r\n code\r\n}) => {\r\n const [expanded, setExpanded] = useState(false);\r\n const contentRef = React.createRef();\r\n\r\n const onExpand = event => {\r\n if (event.currentTarget != event.target) {\r\n return;\r\n }\r\n !expanded && setExpanded(true);\r\n };\r\n\r\n useEffect(() => {\r\n setExpanded(isContentFullyVisible());\r\n }, []);\r\n\r\n const isContentFullyVisible = () => {\r\n const titleHeight = 15;\r\n const textLineHeight = 20;\r\n const numberOfLines = 3;\r\n const maxHeightWithoutOverlay = textLineHeight * numberOfLines + titleHeight;\r\n const contentHeight = contentRef.current.scrollHeight;\r\n return contentHeight <= maxHeightWithoutOverlay;\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n {title}\r\n {code && <> [{code}]}\r\n
\r\n \r\n {children}\r\n
\r\n {toolTipInformation && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nInfoPanel.propTypes = {\r\n title: PropTypes.string,\r\n children: PropTypes.any,\r\n titleIndicationMessage: PropTypes.object,\r\n detailsIndicationMessage: PropTypes.object,\r\n code: PropTypes.string\r\n};\r\n\r\nexport default InfoPanel;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withTranslation } from 'react-i18next/src/index';\r\nimport { GetAttachmentData, Download } from '@hobs/utils/download';\r\nimport Toast from '@hobs/components/Toast';\r\nimport Icon from '../Icon';\r\nimport Styles from './File.module.scss';\r\n\r\nconst File = ({\r\n onRemove,\r\n name,\r\n url,\r\n onClick,\r\n attachmentId,\r\n disabled = false\r\n}) => (\r\n
\r\n {\r\n if (attachmentId) {\r\n event.preventDefault();\r\n GetAttachmentData(attachmentId).then(results => {\r\n if (results.status === 400) {\r\n Toast.warning(results.payload.message);\r\n } else {\r\n Download(results, name);\r\n }\r\n });\r\n }\r\n\r\n if (onRemove) {\r\n event.preventDefault();\r\n }\r\n if (onClick) {\r\n event.preventDefault();\r\n onClick();\r\n }\r\n }}\r\n href={url}\r\n title={name}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n >\r\n \r\n {name}\r\n \r\n {onRemove && !disabled && (\r\n \r\n )}\r\n
\r\n);\r\n\r\nFile.propTypes = {\r\n onRemove: PropTypes.func,\r\n onClick: PropTypes.func,\r\n name: PropTypes.string,\r\n attachmentId: PropTypes.string,\r\n url: PropTypes.string,\r\n disabled: PropTypes.bool\r\n};\r\n\r\nexport default withTranslation()(File);\r\n","import React, { PureComponent } from 'react';\r\nimport { withTranslation } from 'react-i18next/src';\r\nimport Dropzone from 'react-dropzone';\r\nimport PropTypes from 'prop-types';\r\nimport ShortId from 'shortid';\r\nimport Toast from '@hobs/components/Toast';\r\nimport { GhostButton } from '@hobs/components/Buttons';\r\nimport File from '@hobs/components/File';\r\nimport { ACCEPTED_FILE_FORMATS, MAX_FILE_SIZE } from '@hobs/utils/constants';\r\nimport Styles from './DropZone.module.scss';\r\nimport Loader from '../Loader';\r\nimport { connect } from 'react-redux';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\n\r\nconst checkIfFileNameExists = (files, acceptedFiles) => {\r\n return files.reduce((result, item) => {\r\n if (result) {\r\n return result;\r\n }\r\n return acceptedFiles.find(aitem => aitem.name === item.name);\r\n }, false);\r\n};\r\n\r\nclass DropZone extends PureComponent {\r\n state = {\r\n files: [],\r\n isUploadingFiles: false\r\n };\r\n\r\n componentDidMount() {\r\n this.setState({\r\n files: this.props.value\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.value !== this.props.value) {\r\n this.setState({\r\n files: this.props.value\r\n });\r\n }\r\n }\r\n\r\n getNames() {\r\n const { disabled, t, onRemove, onChange, showSuccessMessages, isUploadingFiles } = this.props;\r\n const { files } = this.state;\r\n\r\n if (files.length === 0) {\r\n return t('No file attached');\r\n }\r\n\r\n return (\r\n <>\r\n {isUploadingFiles && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n {files.map(file => {\r\n return (\r\n {\r\n const list = files.reduce((result, item) => {\r\n if (\r\n file.attachmentId &&\r\n file.attachmentId !== item.attachmentId\r\n ) {\r\n result.push(item);\r\n } else if (\r\n item.name !== file.name &&\r\n item.path !== file.path\r\n ) {\r\n result.push(item);\r\n }\r\n return result;\r\n }, []);\r\n\r\n this.setState(\r\n {\r\n files: list\r\n },\r\n () => {\r\n onRemove(file, list);\r\n onChange(list);\r\n }\r\n );\r\n\r\n if (showSuccessMessages) {\r\n Toast.success(t('File removed successfully'));\r\n }\r\n }}\r\n key={ShortId.generate()}\r\n disabled={\r\n disabled ||\r\n (file.hasOwnProperty('canRemove') && !file.canRemove)\r\n }\r\n />\r\n );\r\n })}\r\n \r\n );\r\n }\r\n\r\n onDrop = acceptedFiles => {\r\n const { multiple, t, onSelect, onChange, showSuccessMessages } = this.props;\r\n const { files } = this.state;\r\n\r\n if (acceptedFiles.length > 0) {\r\n if (!checkIfFileNameExists(files, acceptedFiles)) {\r\n let files = [];\r\n if (multiple === true) {\r\n files = [].concat(acceptedFiles, files);\r\n } else {\r\n files = [...acceptedFiles];\r\n }\r\n\r\n this.setState(\r\n {\r\n files\r\n },\r\n () => {\r\n onSelect(acceptedFiles);\r\n onChange(acceptedFiles);\r\n }\r\n );\r\n\r\n if (showSuccessMessages) {\r\n Toast.success(t('File uploaded successfully'));\r\n }\r\n } else {\r\n Toast.warning(t('File with the same name is already added'));\r\n }\r\n }\r\n };\r\n\r\n onDropRejected = files => {\r\n const { multiple, t, onError } = this.props;\r\n const inMb = MAX_FILE_SIZE / 1024 / 1024;\r\n const errorCodes = files[0].errors.map(error => error.code) || [];\r\n \r\n errorCodes.forEach(error => {\r\n if (error === 'file-invalid-type') {\r\n Toast.warning(t('Selected file format is not allowed'));\r\n }\r\n else if (error === 'file-too-large') {\r\n Toast.warning(t('Selected file is too large (max ' + inMb + 'mb)'));\r\n }\r\n else {\r\n Toast.warning(t('Bad file'));\r\n }\r\n });\r\n\r\n if (files.length > 1 && multiple === false) {\r\n onError(t('Multiple files not accepted'));\r\n } else {\r\n onError(t('Unaccepted file format!'));\r\n }\r\n };\r\n\r\n render() {\r\n const { accept, multiple, maxSize, disabled, t, isUploadingFiles } = this.props;\r\n\r\n let dropzoneParams = {\r\n onDrop: this.onDrop,\r\n onDropRejected: this.onDropRejected,\r\n multiple,\r\n maxSize\r\n };\r\n if (accept.length > 0) {\r\n dropzoneParams = { ...dropzoneParams, accept };\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
{this.getNames()}
\r\n
\r\n {!disabled && (\r\n \r\n {({ getRootProps, getInputProps, isDragActive }) => (\r\n
\r\n \r\n {isDragActive ? (\r\n

{t('Drop the files here ...')}

\r\n ) : (\r\n

{t('Drag & drop here or')}

\r\n )}\r\n \r\n {multiple ? t('Select files') : t('Select file')}\r\n \r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nDropZone.defaultProps = {\r\n value: [],\r\n onChange: () => {},\r\n onSelect: () => {},\r\n onRemove: () => {},\r\n onError: () => {},\r\n accept: ACCEPTED_FILE_FORMATS,\r\n multiple: true,\r\n maxSize: MAX_FILE_SIZE,\r\n disabled: false,\r\n showSuccessMessages: false,\r\n isUploadingFiles: false\r\n};\r\n\r\nDropZone.propTypes = {\r\n t: PropTypes.func,\r\n value: PropTypes.array,\r\n accept: PropTypes.array,\r\n onRemove: PropTypes.func,\r\n onSelect: PropTypes.func,\r\n onChange: PropTypes.func,\r\n onError: PropTypes.func,\r\n multiple: PropTypes.bool,\r\n maxSize: PropTypes.number,\r\n disabled: PropTypes.bool,\r\n showSuccessMessages: PropTypes.bool,\r\n};\r\n\r\nconst isUploadingFiles = createLoadingSelector([\r\n 'Attachments/Upload'\r\n]);\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n isUploadingFiles: isUploadingFiles(state),\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n null\r\n)(withTranslation()((DropZone)));","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport Styles from './PageActions.module.scss';\r\n\r\nclass PageActions extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.container = React.createRef();\r\n }\r\n componentDidMount() {\r\n this.setContainerPadding();\r\n }\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.container !== this.props.container) {\r\n this.setContainerPadding();\r\n }\r\n }\r\n\r\n setContainerPadding() {\r\n if (this.props.container && !this.props.ignoreBottomPadding) {\r\n this.props.container.style.paddingBottom = `${this.container.current.offsetHeight}px`;\r\n }\r\n }\r\n render() {\r\n const { children, wrapperClass } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nPageActions.propTypes = {\r\n children: PropTypes.any,\r\n container: PropTypes.any,\r\n wrapperClass: PropTypes.string\r\n};\r\n\r\nexport default PageActions;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { H1 } from '@hobs/components/Headings';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Status from '@hobs/components/Status';\r\nimport { Link } from 'react-router-dom';\r\nimport Styles from './PageHeader.module.scss';\r\n\r\nconst Wrapper = ({ children, ...rest }) => {\r\n if (rest.to) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nWrapper.propTypes = {\r\n children: PropTypes.any.isRequired\r\n};\r\n\r\nfunction getFieldValue(value) {\r\n return value && value !== '' ? value : '-';\r\n}\r\n\r\nconst PageHeader = ({\r\n title,\r\n to,\r\n onClick = null,\r\n status = null,\r\n order = null,\r\n unit = null,\r\n t,\r\n parent = null,\r\n accounting = null\r\n}) => {\r\n const props = {\r\n className: Styles.link\r\n };\r\n\r\n if (to) {\r\n props.to = to;\r\n }\r\n\r\n if (onClick) {\r\n props.onClick = onClick;\r\n }\r\n\r\n return (\r\n
\r\n \r\n {(to || onClick) && }\r\n

{title}

\r\n
\r\n {unit && (\r\n
\r\n {unit.code}, {unit.name} ({getFieldValue(unit.number)})\r\n
\r\n )}\r\n\r\n {order &&
{order}
}\r\n\r\n {status && (\r\n \r\n )}\r\n\r\n {parent && (\r\n
\r\n {t('Created from category')} (\r\n {parent.title})\r\n
\r\n )}\r\n {accounting &&\r\n (accounting.purchaseOrderNumber || accounting.positionNumber) && (\r\n
\r\n {accounting.purchaseOrderNumber && (\r\n \r\n {t('PO No')}: {accounting.purchaseOrderNumber}{' '}\r\n \r\n )}\r\n {accounting.positionNumber && (\r\n \r\n {t('Pos No')}: {accounting.positionNumber}\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nPageHeader.propTypes = {\r\n status: PropTypes.shape({\r\n name: PropTypes.string,\r\n id: PropTypes.number,\r\n order: PropTypes.bool\r\n }),\r\n order: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n parent: PropTypes.shape({\r\n title: PropTypes.string,\r\n to: PropTypes.string\r\n }),\r\n unit: PropTypes.shape({\r\n code: PropTypes.string,\r\n number: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\r\n name: PropTypes.string\r\n }),\r\n accounting: PropTypes.shape({\r\n positionNumber: PropTypes.number,\r\n purchaseOrderNumber: PropTypes.number\r\n }),\r\n title: PropTypes.string.isRequired,\r\n to: PropTypes.string,\r\n onClick: PropTypes.func,\r\n t: PropTypes.func\r\n};\r\n\r\nexport default withTranslation()(PageHeader);\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport Loader from '@hobs/components/Loader';\r\n\r\nimport Styles from './GridLoader.module.scss';\r\n\r\nconst GridLoader = () => {\r\n const loadingPanel = (\r\n
\r\n \r\n
\r\n );\r\n\r\n const gridContent = document && document.querySelector('.k-grid-content');\r\n return gridContent\r\n ? ReactDOM.createPortal(loadingPanel, gridContent)\r\n : loadingPanel;\r\n};\r\n\r\nexport default GridLoader;\r\n","class CalculateByDays {\r\n constructor() {\r\n this.values = {};\r\n this.catalog = {};\r\n }\r\n\r\n reset() {\r\n this.values = {};\r\n }\r\n\r\n calculate(values, catalog) {\r\n const { quantity, dateFrom, dateTo, isCalculatedByDays, isAccommodation } = values;\r\n\r\n if (\r\n quantity !== null &&\r\n quantity > 0 &&\r\n dateFrom !== null &&\r\n isCalculatedByDays !== null &&\r\n Object.keys(catalog).length > 0\r\n ) {\r\n const newValues = {\r\n rateFrom: catalog.RateFrom,\r\n rateTo: catalog.RateTo,\r\n quantity,\r\n dateFrom,\r\n dateTo,\r\n isCalculatedByDays,\r\n isAccommodation\r\n };\r\n\r\n if (JSON.stringify(newValues) === JSON.stringify(this.values)) {\r\n return false;\r\n }\r\n\r\n this.values = {\r\n rateFrom: catalog.RateFrom,\r\n rateTo: catalog.RateTo,\r\n quantity,\r\n dateFrom,\r\n dateTo,\r\n isCalculatedByDays,\r\n isAccommodation\r\n };\r\n\r\n return this.values;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\nexport default new CalculateByDays();\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { DateInput as BPDateInput } from '@blueprintjs/datetime';\r\nimport classnames from 'classnames';\r\nimport { addYears } from 'date-fns';\r\nimport { parse, format, parseLocal } from '@hobs/utils/formatWithTimeZone';\r\nimport { WithErrorLabel } from '@hobs/components/FormError';\r\nimport '@blueprintjs/datetime/lib/css/blueprint-datetime.css';\r\nimport objectPath from 'object-path';\r\nimport Icon from '@hobs/components/Icon';\r\nimport { DATE_FORMAT } from '@hobs/utils/constants';\r\nimport InputLabel from '../InputLabel';\r\nimport Styles from './DateInput.module.scss';\r\n\r\nconst WEEKDAYS_SHORT = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];\r\n\r\nconst DateInput = ({\r\n field,\r\n setFieldValue = () => {},\r\n children,\r\n disabled,\r\n noMargin,\r\n indicationMessage,\r\n minDate = new Date(2015, 1, 1),\r\n maxDate = addYears(new Date(), 10),\r\n wrapperClass,\r\n timePrecision = null,\r\n initialMonth = null,\r\n onChange = () => {},\r\n popoverProps\r\n}) => {\r\n const jsDateFormatter = {\r\n formatDate: date => {\r\n return format(date, DATE_FORMAT);\r\n },\r\n parseDate: str => {\r\n return parse(str);\r\n },\r\n placeholder: format(new Date(), DATE_FORMAT)\r\n };\r\n\r\n const handleChange = selectedDate => {\r\n const formattedDate =\r\n (selectedDate === '-' &&\r\n format(parseFn(selectedDate), 'yyyy-MM-dd') === '-') ||\r\n !selectedDate\r\n ? null\r\n : format(parseFn(selectedDate), 'yyyy-MM-dd');\r\n\r\n setFieldValue(name, formattedDate);\r\n\r\n if (onChange) {\r\n onChange(formattedDate);\r\n }\r\n };\r\n\r\n const name = objectPath.get(field, 'name');\r\n const value = objectPath.get(field, 'value');\r\n\r\n let parseFn = date => date;\r\n\r\n if (value && parse(value) !== 'Invalid Date' && parse(value) !== '-') {\r\n parseFn = parse;\r\n } else if (value && parseLocal(value) !== 'Invalid Date') {\r\n parseFn = parseLocal;\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nDateInput.propTypes = {\r\n name: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n noMargin: PropTypes.bool,\r\n form: PropTypes.object,\r\n field: PropTypes.object,\r\n setFieldValue: PropTypes.func,\r\n minDate: PropTypes.any,\r\n maxDate: PropTypes.any,\r\n type: PropTypes.oneOf(['text', 'password', 'date']),\r\n timePrecision: PropTypes.oneOf([null, 'millisecond', 'minute', 'second']),\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object,\r\n PropTypes.string\r\n ]),\r\n indicationMessage: PropTypes.object,\r\n popoverProps: PropTypes.object,\r\n wrapperClass: PropTypes.string,\r\n onChange: PropTypes.func,\r\n initialMonth: PropTypes.any\r\n};\r\n\r\nexport default WithErrorLabel(DateInput);\r\n","import React from 'react';\r\nimport { Switch as BPSwtich } from '@blueprintjs/core';\r\nimport { WithErrorLabel } from '@hobs/components/FormError';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport objectPath from 'object-path';\r\nimport Styles from './Switch.module.scss';\r\n\r\nconst Switch = ({\r\n field,\r\n dark,\r\n setFieldValue = () => {},\r\n wrapperClassName,\r\n label,\r\n indicationMessage,\r\n onChange,\r\n ...props\r\n}) => {\r\n const handleChange = ({ target }) => {\r\n setFieldValue(name, target.checked);\r\n if (onChange){\r\n onChange(target.checked);\r\n }\r\n };\r\n\r\n const name = objectPath.get(field, 'name');\r\n\r\n return (\r\n \r\n \r\n {label}\r\n \r\n ) : null\r\n }\r\n label={indicationMessage ? null : label}\r\n />\r\n \r\n );\r\n};\r\n\r\nSwitch.propTypes = {\r\n field: PropTypes.object,\r\n setFieldValue: PropTypes.func,\r\n label: PropTypes.string,\r\n className: PropTypes.string,\r\n wrapperClassName: PropTypes.string,\r\n dark: PropTypes.bool,\r\n indicationMessage: PropTypes.object,\r\n onChange: PropTypes.func\r\n};\r\n\r\nexport default WithErrorLabel(Switch);\r\n","import React from 'react';\r\nimport { NumericInput as BPNumericInput } from '@blueprintjs/core';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport objectPath from 'object-path';\r\nimport { WithErrorLabel } from '@hobs/components/FormError';\r\nimport InputLabel from '../InputLabel';\r\nimport Styles from './NumericInput.module.scss';\r\n\r\nconst NumericInput = ({\r\n field,\r\n children,\r\n disabled,\r\n noMargin = false,\r\n strike = false,\r\n setFieldValue = () => {},\r\n indicationMessage,\r\n showButtons = true,\r\n valueNullable = false,\r\n onChange = () => {},\r\n max = 2147483647,\r\n ...rest\r\n}) => {\r\n const name = objectPath.get(field, 'name');\r\n\r\n const value = field && field.value !== null ? field.value : '';\r\n\r\n const handleChange = (numberValue, stringValue) => {\r\n onChange(numberValue);\r\n\r\n // In case we want to remove value, so allow to set string to ''\r\n if (stringValue === '') {\r\n setFieldValue(name, '');\r\n return;\r\n }\r\n\r\n if (\r\n valueNullable &&\r\n (!stringValue || stringValue === '' || isNaN(numberValue))\r\n ) {\r\n setFieldValue(name, null);\r\n } else if (!isNaN(stringValue)) {\r\n setFieldValue(name, Math.min(parseInt(stringValue, 10), max));\r\n } else {\r\n setFieldValue(name, Math.min(value, max));\r\n }\r\n };\r\n\r\n return (\r\n \r\n {children && (\r\n \r\n {children}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nNumericInput.propTypes = {\r\n field: PropTypes.object,\r\n disabled: PropTypes.bool,\r\n noMargin: PropTypes.bool,\r\n strike: PropTypes.bool,\r\n setFieldValue: PropTypes.func,\r\n children: PropTypes.oneOfType([\r\n PropTypes.array,\r\n PropTypes.object,\r\n PropTypes.string\r\n ]),\r\n indicationMessage: PropTypes.object,\r\n value: PropTypes.number,\r\n max: PropTypes.number,\r\n onChange: PropTypes.func,\r\n showButtons: PropTypes.bool,\r\n valueNullable: PropTypes.bool\r\n};\r\n\r\nexport default WithErrorLabel(NumericInput);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Styles from './BluePanel.module.scss';\r\n\r\nconst BluePanel = ({ children }) => (\r\n
{children}
\r\n);\r\n\r\nBluePanel.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default BluePanel;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Translation } from 'react-i18next/src';\r\nimport { format } from '@hobs/utils/formatWithTimeZone';\r\nimport { DATE_FORMAT, DATETIME_FORMAT } from '@hobs/utils/constants';\r\n\r\nfunction getLatestEditedFieldName(\r\n defaultField,\r\n editedFields = [],\r\n additionalFields = []\r\n) {\r\n const editedFieldsInfo = additionalFields\r\n .reduce((result, field) => {\r\n const editedField = editedFields.find(\r\n editedField => editedField.editedFieldName === field\r\n );\r\n\r\n if (editedField !== undefined) {\r\n result.push(editedField);\r\n }\r\n\r\n return result;\r\n }, [])\r\n .sort(\r\n (a, b) =>\r\n new Date(b.changedDate).getTime() - new Date(a.changedDate).getTime()\r\n );\r\n\r\n if (editedFieldsInfo.length) {\r\n return editedFieldsInfo[0].editedFieldName;\r\n }\r\n\r\n return defaultField;\r\n}\r\n\r\nconst FieldHistoryMessage = (\r\n fieldName,\r\n editedFields = [],\r\n additionalFields = []\r\n) => {\r\n if (!editedFields.length) {\r\n return null;\r\n }\r\n additionalFields.push(fieldName);\r\n\r\n const editedFieldName = getLatestEditedFieldName(\r\n fieldName,\r\n editedFields,\r\n additionalFields\r\n );\r\n\r\n const editedField = editedFields.find(\r\n field => field.editedFieldName === editedFieldName\r\n );\r\n if (!editedField) {\r\n return null;\r\n }\r\n\r\n const changeDate = format(editedField.changedDate, DATETIME_FORMAT);\r\n\r\n return (\r\n <>\r\n {!editedField.changedBy ? (\r\n
\r\n {t => t('Requested change')}:{' '}\r\n {editedField.newDateValue\r\n ? format(editedField.newDateValue, DATE_FORMAT)\r\n : editedField.newValue\r\n ? String(editedField.newValue)\r\n : '-'}\r\n
\r\n ) : (\r\n <>\r\n
\r\n {t => t('Changed by')}{' '}\r\n {editedField.changedBy} on{' '}\r\n
\r\n
{changeDate}
\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nFieldHistoryMessage.propTypes = {\r\n fieldName: PropTypes.string,\r\n editedFields: PropTypes.array,\r\n additionalFields: PropTypes.array\r\n};\r\n\r\nexport default FieldHistoryMessage;\r\n","export const dateToInitialMonth = (dateFrom, dateTo) => {\r\n if (dateTo){\r\n return new Date(dateTo);\r\n }\r\n else if (dateFrom) {\r\n return new Date(dateFrom);\r\n }\r\n else{\r\n return null;\r\n }\r\n };","import React, { useEffect, useState } from 'react';\r\nimport InformationToolTip from '../InformationToolTip';\r\nimport InputLabel from '../InputLabel';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { Field } from 'formik';\r\nimport Switch from '@hobs/components/Switch';\r\n\r\nimport './CalculateByDays.scss';\r\n\r\nconst CalculateByDays = ({\r\n t,\r\n name,\r\n component,\r\n disabled,\r\n checked,\r\n setFieldValue,\r\n indicationMessage,\r\n differenceInDays,\r\n isInline,\r\n children,\r\n onChange\r\n}) => {\r\n if (checked === undefined) {\r\n return null;\r\n }\r\n const [isTooltipOpen, setIsTooltipOpen] = useState(false);\r\n const inlineStyle = isInline ? 'calculate-by-days--inline' : '';\r\n\r\n const onSwitchClick = () => {\r\n if (!checked) {\r\n setIsTooltipOpen(true);\r\n return;\r\n }\r\n setIsTooltipOpen(false);\r\n };\r\n\r\n if (disabled) {\r\n return (\r\n
\r\n
\r\n \r\n {t('Calculate by days')}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {children}\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {t('Calculate by days') + ':'}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {differenceInDays && checked ? (\r\n \r\n {`${differenceInDays} ${t(' day(s)')}`}\r\n \r\n ) : null}\r\n
\r\n
\r\n );\r\n};\r\n\r\nCalculateByDays.defaultProps = {\r\n disabled: false,\r\n isInline: false,\r\n onChange: () => {}\r\n};\r\n\r\nexport default withTranslation()(CalculateByDays);\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport {\r\n CalculateByDays,\r\n CLEAR_COSTS,\r\n ForSubmit,\r\n GET,\r\n CREATE,\r\n UPDATE,\r\n REMOVE,\r\n AdditionalInformation,\r\n GETCATEGORYSERVICEREQUEST,\r\n GETCATEGORYSUBITEMS,\r\n CREATECATEGORYSPLIT,\r\n RESOLVECATEGORYREQUEST,\r\n REOPENCATEGORYREQUEST,\r\n GET_FOOTER,\r\n CLEAR_FOOTER,\r\n CALCULATE_BY_DAYS_FROM_CATALOG,\r\n CONFIRM,\r\n GET_INTERNAL_PENDING_FLAG,\r\n UPDATE_INTERNAL_PENDING_FLAG,\r\n UPDATE_ACTIVITY,\r\n GET_EXCLUDE_FROM_FSOR_CONFIRMATION,\r\n UPDATE_EXCLUDE_FROM_FSOR_CONFIRMATION\r\n} from '@hobs/constants/serviceRequests';\r\nimport { actionCreator } from './utils/utils';\r\n\r\nexport function getAdditionalInformation(serviceRequestId) {\r\n return (dispatch, getState) => {\r\n const state = getState();\r\n const additionalInformation =\r\n state.serviceRequests.additionalInformation[serviceRequestId];\r\n if (additionalInformation) {\r\n return { success: true, payload: additionalInformation };\r\n }\r\n dispatch(request());\r\n\r\n return fetchSecure(\r\n `ServiceRequests/${serviceRequestId}/AdditionalInformation`\r\n )\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: JSON.parse(response.response)\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: AdditionalInformation.REQUEST };\r\n }\r\n function success(results) {\r\n return { type: AdditionalInformation.SUCCESS, results };\r\n }\r\n function failure(error) {\r\n return { type: AdditionalInformation.FAILURE, error };\r\n }\r\n}\r\n\r\nexport const calculateByDaysForSplit = body =>\r\n actionCreator(\r\n 'ServiceRequests/CalculateByDaysFromCatalog',\r\n CALCULATE_BY_DAYS_FROM_CATALOG,\r\n {\r\n body,\r\n method: 'POST'\r\n }\r\n );\r\n\r\nexport function calculateByDays(body) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('ServiceRequests/CalculateByDays', {\r\n body: body,\r\n method: 'POST'\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: JSON.parse(response.response)\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CalculateByDays.REQUEST };\r\n }\r\n function success(results) {\r\n return { type: CalculateByDays.SUCCESS, results };\r\n }\r\n function failure(error) {\r\n return { type: CalculateByDays.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function clearCalculateByDays() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR_COSTS.SUCCESS });\r\n };\r\n}\r\n\r\nexport function forSubmit(partyId) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure(`ServiceRequests/ForSubmit/${partyId}`)\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: JSON.parse(response.response)\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: ForSubmit.REQUEST };\r\n }\r\n function success(results) {\r\n return { type: ForSubmit.SUCCESS, results };\r\n }\r\n function failure(error) {\r\n return { type: ForSubmit.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getServiceRequest(serviceRequestsId) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure(`ServiceRequests/${serviceRequestsId}`)\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: JSON.parse(response.response)\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: GET.REQUEST };\r\n }\r\n\r\n function success(item) {\r\n return { type: GET.SUCCESS, item };\r\n }\r\n function failure(error) {\r\n return { type: GET.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function create(data) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('ServiceRequests', { body: data, method: 'POST' })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: response.payload\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CREATE.REQUEST };\r\n }\r\n function success(results) {\r\n return { type: CREATE.SUCCESS, results };\r\n }\r\n function failure(error) {\r\n return { type: CREATE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function update(data) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`ServiceRequests/${data.serviceRequestId}`, {\r\n body: data,\r\n method: 'PUT'\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: response.payload\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: UPDATE.REQUEST };\r\n }\r\n\r\n function success() {\r\n return { type: UPDATE.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: UPDATE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function remove(partyId, serviceRequestId) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(\r\n `StatementOfRequirements/${partyId}/ServiceRequests/${serviceRequestId}`,\r\n { method: 'DELETE' }\r\n )\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: response.payload\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: REMOVE.REQUEST };\r\n }\r\n function success() {\r\n return { type: REMOVE.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: REMOVE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getCategoryServiceRequest(serviceRequestsId) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure(\r\n `ServiceRequests/${serviceRequestsId}/CategoryServiceRequestDetails`\r\n )\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: JSON.parse(response.response)\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: GETCATEGORYSERVICEREQUEST.REQUEST };\r\n }\r\n\r\n function success(item) {\r\n return { type: GETCATEGORYSERVICEREQUEST.SUCCESS, item };\r\n }\r\n function failure(error) {\r\n return { type: GETCATEGORYSERVICEREQUEST.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getCategorySubitems(code) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure(`ServiceRequests/CategorySubitems/${code}`)\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: JSON.parse(response.response)\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: GETCATEGORYSUBITEMS.REQUEST };\r\n }\r\n function success(payload) {\r\n return { type: GETCATEGORYSUBITEMS.SUCCESS, payload: payload };\r\n }\r\n function failure(error) {\r\n return { type: GETCATEGORYSUBITEMS.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function createCategorySplit(data) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('ServiceRequests/SplitCategoryServiceRequest', {\r\n body: data,\r\n method: 'POST'\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: response.payload\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CREATECATEGORYSPLIT.REQUEST };\r\n }\r\n function success(results) {\r\n return { type: CREATECATEGORYSPLIT.SUCCESS, results };\r\n }\r\n function failure(error) {\r\n return { type: CREATECATEGORYSPLIT.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function resolveCategoryRequest(sorId, serviceRequestId) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure(\r\n `StatementOfRequirements/${sorId}/ResolveCategoryRequest/${serviceRequestId}`,\r\n { method: 'POST' }\r\n )\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: response.payload\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: RESOLVECATEGORYREQUEST.REQUEST };\r\n }\r\n function success(results) {\r\n return { type: RESOLVECATEGORYREQUEST.SUCCESS, results };\r\n }\r\n function failure(error) {\r\n return { type: RESOLVECATEGORYREQUEST.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function reopenCategoryRequest(sorId, serviceRequestId) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure(\r\n `StatementOfRequirements/${sorId}/ReopenCategoryRequest/${serviceRequestId}`,\r\n { method: 'POST' }\r\n )\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: response.payload\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: REOPENCATEGORYREQUEST.REQUEST };\r\n }\r\n function success(results) {\r\n return { type: REOPENCATEGORYREQUEST.SUCCESS, results };\r\n }\r\n function failure(error) {\r\n return { type: REOPENCATEGORYREQUEST.FAILURE, error };\r\n }\r\n}\r\n\r\nexport const getFooter = serviceRequestId =>\r\n actionCreator(`ServiceRequest/${serviceRequestId}/Footer`, GET_FOOTER);\r\n\r\nexport const confirmServiceRequest = serviceRequestId =>\r\n actionCreator(`ServiceRequest/${serviceRequestId}/Confirm`, CONFIRM, {\r\n method: 'PUT'\r\n });\r\n\r\nexport function clearFooter() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR_FOOTER.SUCCESS });\r\n };\r\n}\r\n\r\nexport const getInternalPendingFlag = serviceRequestId =>\r\n actionCreator(\r\n `ServiceRequest/${serviceRequestId}/InternalPendingFlag`,\r\n GET_INTERNAL_PENDING_FLAG\r\n );\r\n\r\nexport const updateInternalPendingFlag = (serviceRequestId, body) =>\r\n actionCreator(\r\n `ServiceRequest/${serviceRequestId}/UpdateInternalPendingFlag`,\r\n UPDATE_INTERNAL_PENDING_FLAG,\r\n {\r\n body,\r\n method: 'PUT'\r\n }\r\n );\r\n\r\nexport const updateActivity = (sorId, serviceRequestId, body) =>\r\n actionCreator(\r\n `StatementOfRequirements/${sorId}/ServiceRequests/${serviceRequestId}/Activity`,\r\n UPDATE_ACTIVITY,\r\n {\r\n body: body,\r\n method: 'PUT'\r\n }\r\n );\r\n\r\nexport const getExcludeFromFsorConfirmation = serviceRequestId =>\r\n actionCreator(\r\n `ServiceRequests/${serviceRequestId}/ExcludeFromFsorConfirmation`,\r\n GET_EXCLUDE_FROM_FSOR_CONFIRMATION\r\n );\r\n\r\nexport const updateExcludeFromFsorConfirmation = (serviceRequestId, body) =>\r\n actionCreator(\r\n `ServiceRequests/${serviceRequestId}/ExcludeFromFsorConfirmation`,\r\n UPDATE_EXCLUDE_FROM_FSOR_CONFIRMATION,\r\n {\r\n body: body,\r\n method: 'PUT'\r\n }\r\n );\r\n","import React, { useEffect, useState } from 'react';\r\nimport Dropdown from '../Dropdown/Dropdown';\r\nimport { Toast } from '../Toast/Toast';\r\nimport { updateActivity } from '@hobs/actions/serviceRequests';\r\nimport { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next';\r\nimport ShortId from 'shortid';\r\nimport Loader from '../Loader/Loader';\r\nimport { Field } from 'formik';\r\n\r\nimport './activityDropdown.scss';\r\nimport InputLabel from '../InputLabel/InputLabel';\r\n\r\nconst ActivityDropdown = ({\r\n t,\r\n updateActivity,\r\n indicationMessage,\r\n disabled,\r\n sr,\r\n activities,\r\n value,\r\n activityInForm,\r\n setFieldValue\r\n}) => {\r\n const [dropdownValue, setDropdownValue] = useState(value);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [activityList, setActivityList] = useState([]);\r\n\r\n useEffect(() => {\r\n setDropdownValue(value);\r\n }, [value]);\r\n\r\n useEffect(() => {\r\n if (activities === undefined || activities === null) {\r\n setActivityList([]);\r\n return;\r\n }\r\n setActivityList(activities);\r\n }, []);\r\n\r\n const hasActivities = () => {\r\n return activityList.length > 0;\r\n };\r\n\r\n const canEditActivity = () => {\r\n if (sr.canEditActivity == undefined) {\r\n return !disabled;\r\n }\r\n return sr.canEditActivity;\r\n };\r\n\r\n const changeActivity = event => {\r\n if (sr.canEditActivity == undefined) {\r\n return;\r\n }\r\n setIsLoading(true);\r\n\r\n const activityId = event.target.value;\r\n setDropdownValue(activityId);\r\n\r\n updateActivity(sr.statementOfRequirementId, sr.serviceRequestId, {\r\n activityId: activityId\r\n }).then(() => {\r\n setIsLoading(false);\r\n Toast.success(t('Activity updated successfully'));\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {activityInForm ? (\r\n \r\n {!canEditActivity() && !sr.activityId && (\r\n \r\n )}\r\n {!canEditActivity() && sr.activityId && (\r\n \r\n )}\r\n {canEditActivity() &&\r\n []\r\n .concat(\r\n [\r\n {\r\n name: t('No activity selected'),\r\n activityId: ''\r\n }\r\n ],\r\n activities\r\n )\r\n .map(activity => (\r\n \r\n ))}\r\n \r\n ) : (\r\n
\r\n {isLoading && (\r\n
\r\n \r\n
\r\n )}\r\n {t('Activity')}\r\n {hasActivities() ? (\r\n \r\n {!canEditActivity() && !sr.activityId && (\r\n \r\n )}\r\n {!canEditActivity() && sr.activityId && (\r\n \r\n )}\r\n {canEditActivity() &&\r\n []\r\n .concat(\r\n [\r\n {\r\n name: t('No activity selected'),\r\n activityId: ''\r\n }\r\n ],\r\n activities\r\n )\r\n .map(activity => (\r\n \r\n {activity.name}\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\nconst mapDispatchToProps = {\r\n updateActivity\r\n};\r\n\r\nexport default connect(\r\n null,\r\n mapDispatchToProps\r\n)(withTranslation()(ActivityDropdown));\r\n","import React from 'react';\r\nimport ObjectPath from 'object-path';\r\nimport Dropdown from '@hobs/components/Dropdown';\r\nimport DateInput from '@hobs/components/DateInput';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport Switch from '@hobs/components/Switch';\r\nimport NumericInput from '@hobs/components/NumericInput';\r\nimport BluePanel from '@hobs/components/BluePanel';\r\nimport FieldHistoryMessage from '@hobs/components/FieldHistoryMessage';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { Field } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport ShortId from 'shortid';\r\nimport { dateToInitialMonth } from '@hobs/utils/dateToInitialMonth';\r\nimport Quantity from '../Quantity';\r\nimport Money from '../Money';\r\nimport CalculateByDays from '../CalculateByDays';\r\n\r\nimport './DeliveryInformation.scss';\r\nimport ActivityDropdown from '../ActivityDropdown/activityDropdown';\r\n\r\nconst DeliveryInformation = ({\r\n results,\r\n setFieldValue,\r\n units,\r\n activities,\r\n uoms,\r\n t,\r\n disabled,\r\n showPlaceholderOption,\r\n showTotalEstimates,\r\n checked,\r\n editedFields = [],\r\n values = {},\r\n activityInForm,\r\n exerciseCurrency\r\n}) => {\r\n var getUnitOptions = units => {\r\n if (units && units.length) {\r\n return []\r\n .concat(\r\n [\r\n {\r\n title: t('Select Unit'),\r\n value: ''\r\n }\r\n ],\r\n units\r\n )\r\n .map(unit => {\r\n return (\r\n \r\n );\r\n });\r\n }\r\n return (\r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n {getUnitOptions(units)}\r\n \r\n
\r\n \r\n {t('From date')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {t('Req. Quantity')}\r\n \r\n
\r\n
\r\n \r\n {(uoms.length === 0 || showPlaceholderOption) && (\r\n \r\n )}\r\n {uoms.map(uom => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n {t('To date')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {t(\r\n 'Please verify and make sure ordered quantity and period is correct.'\r\n )}\r\n \r\n
\r\n \r\n
\r\n
\r\n {activities && activities.length !== 0 && (\r\n \r\n )}\r\n
\r\n\r\n \r\n
\r\n
\r\n {t('Total quantity')}\r\n \r\n \r\n {results ? : '-'}\r\n \r\n
\r\n\r\n {showTotalEstimates && (\r\n
\r\n {t('Est. total cost')}\r\n ({exerciseCurrency})\r\n \r\n {results ? (\r\n \r\n \r\n {(results.rateFrom && results.rateTo) ||\r\n (!results.rateFrom && !results.rateTo)\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\nDeliveryInformation.propTypes = {\r\n units: PropTypes.array,\r\n disabled: PropTypes.bool,\r\n uoms: PropTypes.array,\r\n activities: PropTypes.array,\r\n results: PropTypes.object,\r\n showPlaceholderOption: PropTypes.bool,\r\n showTotalEstimates: PropTypes.bool,\r\n checked: PropTypes.bool,\r\n setFieldValue: PropTypes.func,\r\n t: PropTypes.func,\r\n editedFields: PropTypes.array,\r\n values: PropTypes.object,\r\n activityInForm: PropTypes.bool,\r\n exerciseCurrency: PropTypes.string\r\n};\r\n\r\nexport default withTranslation()(DeliveryInformation);\r\n","import React from 'react';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport { WithErrorLabel } from '@hobs/components/FormError';\r\nimport { Suggest } from '@blueprintjs/select';\r\nimport ShortId from 'shortid';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport { withTranslation } from 'react-i18next/src/index';\r\nimport Styles from './Autocomplete.module.scss';\r\n\r\nconst DEMO_ITEMS = [\r\n {\r\n title: 'Vilnius',\r\n value: 'ilnius'\r\n },\r\n {\r\n title: 'Kaunas',\r\n value: 'kaunas'\r\n }\r\n];\r\n\r\nclass Autocomplete extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.inputEl = React.createRef();\r\n\r\n const { defaultQuery, value } = this.props;\r\n\r\n this.state = {\r\n selectedItem: {\r\n title: defaultQuery,\r\n value: value ? value : ''\r\n }\r\n };\r\n }\r\n\r\n handleChange = ({ target }) => {\r\n const { minLength, onQueryChange } = this.props;\r\n\r\n if (target.value.length >= minLength) {\r\n onQueryChange(target.value);\r\n }\r\n };\r\n\r\n onSelect = val => {\r\n const { onItemSelect } = this.props;\r\n\r\n this.setState(\r\n {\r\n query: val.title,\r\n selectedItem: {\r\n title: val.title,\r\n value: val.value\r\n }\r\n },\r\n () => {\r\n onItemSelect(val);\r\n }\r\n );\r\n };\r\n\r\n resetValue = () => {\r\n const { onItemSelect } = this.props;\r\n\r\n this.setState(\r\n {\r\n selectedItem: {\r\n title: '',\r\n value: ''\r\n }\r\n },\r\n () => {\r\n onItemSelect(null);\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n const {\r\n label,\r\n placeholder,\r\n items,\r\n noResultsMessage,\r\n disabled,\r\n inputClass,\r\n indicationMessage,\r\n ...rest\r\n } = this.props;\r\n\r\n const { selectedItem } = this.state;\r\n\r\n return (\r\n \r\n {label && (\r\n {label}\r\n )}\r\n
\r\n {\r\n return item.title;\r\n }}\r\n inputProps={{\r\n value: selectedItem.value,\r\n placeholder\r\n }}\r\n selectedItem={selectedItem}\r\n noResults={\r\n
{noResultsMessage}
\r\n }\r\n itemRenderer={(item, { handleClick, modifiers }) => {\r\n return (\r\n \r\n {item.title}\r\n
\r\n );\r\n }}\r\n resetOnClose={false}\r\n resetOnQuery={true}\r\n resetOnSelect={true}\r\n popoverProps={{\r\n usePortal: false,\r\n minimal: true,\r\n portalClassName: classnames(Styles.popover)\r\n }}\r\n filterable={false}\r\n initialContent={null}\r\n items={items}\r\n disabled={disabled}\r\n {...rest}\r\n onItemSelect={this.onSelect}\r\n placeholder={placeholder}\r\n />\r\n {selectedItem.title && !disabled && (\r\n \r\n Clear\r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nAutocomplete.defaultProps = {\r\n items: DEMO_ITEMS,\r\n minLength: 1,\r\n noResultsMessage: 'No results',\r\n onQueryChange: () => {},\r\n defaultQuery: '',\r\n onItemSelect: () => {},\r\n disabled: false\r\n};\r\n\r\nAutocomplete.propTypes = {\r\n items: PropTypes.array,\r\n minLength: PropTypes.number,\r\n label: PropTypes.string,\r\n inputClass: PropTypes.string,\r\n defaultQuery: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n noResultsMessage: PropTypes.string,\r\n onQueryChange: PropTypes.func,\r\n onItemSelect: PropTypes.func,\r\n value: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\r\n t: PropTypes.func,\r\n disabled: PropTypes.bool,\r\n indicationMessage: PropTypes.object\r\n};\r\n\r\nexport default withTranslation()(WithErrorLabel(Autocomplete));\r\n","import React, { useState } from 'react';\r\nimport cx from 'classnames';\r\nimport Autocomplete from '@hobs/components/Autocomplete';\r\nimport Input from '@hobs/components/Input';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport Icon from '@hobs/components/Icon';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { Field } from 'formik';\r\nimport './LocationDetails.scss';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst MAP_ENABLED = true;\r\n\r\nconst LocationDetails = ({\r\n locationItems = [],\r\n onQueryChange = () => {},\r\n setFieldValue = () => {},\r\n t,\r\n initialLocation = {},\r\n defaultQuery = '',\r\n disabled,\r\n schema = {\r\n location: 'location',\r\n locationComment: 'locationComment'\r\n },\r\n isExpandable = false,\r\n editedFieldsHistory = {}\r\n}) => {\r\n const [location, setLocation] = useState(initialLocation);\r\n const openLocationWindow = (lat, lon, desc) => event => {\r\n event.preventDefault();\r\n\r\n window.open(\r\n `${process.env.PUBLIC_URL}/map.html?lat=${lat}&lon=${lon}&desc=${desc}`,\r\n 'newwindow',\r\n 'width=640,height=480'\r\n );\r\n };\r\n\r\n const hasLocationData = () => {\r\n return location && location.original && location.original;\r\n };\r\n\r\n const [isOpen, setOpen] = useState(false);\r\n\r\n return (\r\n \r\n
\r\n \r\n {\r\n const value = item ? item : initialLocation;\r\n setFieldValue(\r\n schema.location,\r\n Object.keys(value).length === 0 ? null : value\r\n );\r\n setLocation(value);\r\n }}\r\n noResultsMessage={t('Location not found')}\r\n onQueryChange={onQueryChange}\r\n component={Autocomplete}\r\n defaultQuery={defaultQuery}\r\n disabled={disabled}\r\n indicationMessage={editedFieldsHistory.location}\r\n />\r\n\r\n \r\n {t('Location comment')}\r\n \r\n\r\n {MAP_ENABLED &&\r\n Object.keys(location).length > 0 &&\r\n hasLocationData() &&\r\n location.original.latitude &&\r\n location.original.longtitude && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n\r\n
\r\n
\r\n \r\n {t('Region')}\r\n \r\n
\r\n {hasLocationData() && location.original.region\r\n ? location.original.region.name\r\n : '-'}\r\n
\r\n
\r\n
\r\n \r\n {t('Site')}\r\n \r\n
{hasLocationData() ? location.original.site : '-'}
\r\n
\r\n
\r\n \r\n {t('Latitude')}\r\n \r\n
{hasLocationData() ? location.original.latitude : '-'}
\r\n
\r\n
\r\n \r\n {t('Longitude')}\r\n \r\n
{hasLocationData() ? location.original.longtitude : '-'}
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nLocationDetails.propTypes = {\r\n defaultQuery: PropTypes.string,\r\n locationItems: PropTypes.array,\r\n initialLocation: PropTypes.object,\r\n onQueryChange: PropTypes.func,\r\n onCommentChange: PropTypes.func,\r\n setFieldValue: PropTypes.func,\r\n t: PropTypes.func,\r\n schema: PropTypes.shape({\r\n location: PropTypes.string,\r\n locationComment: PropTypes.string\r\n }),\r\n isExpandable: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n editedFieldsHistory: PropTypes.object\r\n};\r\n\r\nexport default withTranslation()(LocationDetails);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Panel from '@hobs/components/Panel';\r\nimport CheckboxTree from '@hobs/components/CheckboxTree';\r\nimport Confirm from '@hobs/components/Confirm';\r\nimport InfoPanel from '@hobs/components/InfoPanel';\r\nimport File from '@hobs/components/File';\r\nimport Textarea from '@hobs/components/Textarea';\r\nimport DropZone from '@hobs/components/DropZone';\r\nimport PageActions from '@hobs/components/PageActions';\r\nimport ShortId from 'shortid';\r\nimport objectPath from 'object-path';\r\nimport { GhostButton, RaisedButton } from '@hobs/components/Buttons';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Input from '@hobs/components/Input';\r\nimport PageHeader from '@hobs/components/PageHeader';\r\nimport { H5 } from '@hobs/components/Headings';\r\nimport { Formik, Field } from 'formik';\r\nimport { Grid, GridColumn } from '@progress/kendo-react-grid';\r\nimport GridLoader from '@hobs/components/Grid/GridLoader';\r\nimport Toast from '@hobs/components/Toast';\r\nimport * as Yup from 'yup';\r\nimport { ServiceRequestNavContext } from '@hobs/components/ServiceRequestNavContext';\r\nimport { SERVICE_REQUEST_NAVIGATION_ORIGIN } from '@hobs/utils/constants';\r\n\r\nimport CalculateByDays from '@hobs/utils/calculateByDays';\r\nimport DeliveryInformation from '../../components/DeliveryInformation';\r\nimport LocationDetails from '../../components/LocationDetails';\r\n\r\nimport './ServiceRequest.scss';\r\nimport Money from '@hobs/components/Money';\r\nimport Tooltip from '@hobs/components/Tooltip/Tooltip';\r\n\r\nclass ServiceRequest extends PureComponent {\r\n state = {\r\n chTreeChecked: [],\r\n chTreeExpanded: [],\r\n closeForm: false,\r\n selectedCatalog: {},\r\n oDataAnnexesFilter: {},\r\n oDataSearchFilter: {},\r\n dataState: {\r\n take: 17,\r\n skip: 0,\r\n filter: {},\r\n sort: [{ field: 'Name', dir: 'asc' }]\r\n },\r\n isFirstPanelExpanded: true\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n const { t } = props;\r\n this.handleQuickSearchChangeTimeout = null;\r\n this.locationQueryTimeout = null;\r\n this.form = React.createRef();\r\n this.validationSchema = Yup.object().shape({\r\n unitId: Yup.string().required(t('Unit is required')),\r\n dateFrom: Yup.date()\r\n .required(t('From date is required'))\r\n .typeError(t('Invalid date or date format'))\r\n .nullable(),\r\n quantity: Yup.number()\r\n .min(0, t('Quantity must be greater than 0'))\r\n .required(t('Quantity is required'))\r\n .typeError(t('Invalid quantity format')),\r\n location: Yup.object().when(['isAdditionalRequest'], {\r\n is: true,\r\n then: Yup.object()\r\n .required(t('Location is required'))\r\n .nullable(),\r\n otherwise: Yup.object().nullable()\r\n }),\r\n locationFrom: Yup.object().when(\r\n ['isAdditionalRequest', 'isTransportation'],\r\n {\r\n is: true,\r\n then: Yup.object()\r\n .required(t('Location is required'))\r\n .nullable(),\r\n otherwise: Yup.object().nullable()\r\n }\r\n ),\r\n comment: Yup.string()\r\n .max(1500, t('Comment cannot be longer than 1500 symbols'))\r\n .nullable()\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.loadRequiredData();\r\n this.props.clearAttachments();\r\n }\r\n\r\n loadRequiredData() {\r\n this.props.forSubmit(this.props.match.params.partyId);\r\n this.props.getAnnexesTree();\r\n this.queryOdata();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetOData();\r\n this.props.clearAttachments();\r\n this.props.clearCalculateByDays();\r\n }\r\n\r\n handleFileUpload = value => {\r\n if (value) {\r\n this.props.uploadAttachments({ attachments: value });\r\n }\r\n };\r\n\r\n getServiceRequestsGridUrl(navContext) {\r\n if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.Tickets) {\r\n return '/tickets';\r\n }\r\n return `/service-requests/${this.props.match.params.partyId}`;\r\n }\r\n\r\n getCatalogItemsQueryUrl() {\r\n return `CatalogItemsQueryForServiceRequest(${this.props.match.params.partyId})`;\r\n }\r\n\r\n getCustomServiceRequestUrl() {\r\n return `/custom-service-request/${this.props.match.params.partyId}`;\r\n }\r\n\r\n isAdditionalRequest() {\r\n const { forSubmitData } = this.props;\r\n return forSubmitData.isAdditionalSrCreateForm;\r\n }\r\n\r\n _create(data) {\r\n const { create, createAdditionalServiceRequest } = this.props;\r\n return this.isAdditionalRequest()\r\n ? createAdditionalServiceRequest(data)\r\n : create(data);\r\n }\r\n\r\n getServiceRequestEditUrl(serviceRequestId) {\r\n const { match } = this.props;\r\n\r\n return `/service-request/${match.params.partyId}/${serviceRequestId}`;\r\n }\r\n\r\n onSubmit = (values, { setErrors, setFieldValue, setSubmitting }) => {\r\n const { selectedCatalog, closeForm } = this.state;\r\n const { forSubmitData, t, history } = this.props;\r\n\r\n const submitData = {\r\n catalogItemId: selectedCatalog.CatalogItemId,\r\n unitOfMeasureId:\r\n values.unitOfMeasureId === ''\r\n ? selectedCatalog.UnitsOfMeasure[0].UnitOfMeasureId\r\n : values.unitOfMeasureId,\r\n statementOfRequirementId: forSubmitData.statementOfRequirementId,\r\n unitId: values.unitId,\r\n activityId: values.activityId,\r\n requestedQuantity: values.quantity,\r\n dateFrom: values.dateFrom,\r\n dateTo: values.dateTo,\r\n isCalculatedByDays: values.isCalculatedByDays,\r\n regionId: objectPath.get(\r\n values.location,\r\n 'original.region.regionId',\r\n null\r\n ),\r\n regionName: objectPath.get(values.location, 'original.region.name', null),\r\n locationName: objectPath.get(values.location, 'original.name', null),\r\n locationComment: values.locationComment,\r\n site: objectPath.get(values.location, 'original.site', null),\r\n latitude: objectPath.get(values.location, 'original.latitude', null),\r\n longitude: objectPath.get(values.location, 'original.longtitude', null),\r\n\r\n // from\r\n regionIdFrom: objectPath.get(\r\n values.locationFrom,\r\n 'original.region.regionId',\r\n null\r\n ),\r\n regionNameFrom: objectPath.get(\r\n values.locationFrom,\r\n 'original.region.name',\r\n null\r\n ),\r\n locationNameFrom: objectPath.get(\r\n values.locationFrom,\r\n 'original.name',\r\n null\r\n ),\r\n locationCommentFrom: values.locationCommentFrom,\r\n siteFrom: objectPath.get(values.locationFrom, 'original.site', null),\r\n latitudeFrom: objectPath.get(\r\n values.locationFrom,\r\n 'original.latitude',\r\n null\r\n ),\r\n longitudeFrom: objectPath.get(\r\n values.locationFrom,\r\n 'original.longtitude',\r\n null\r\n ),\r\n comment: values.comment,\r\n attachments: this.props.attachments.map(\r\n attachment => attachment.attachmentId\r\n )\r\n };\r\n\r\n this._create(submitData).then(response => {\r\n if (response.success) {\r\n Toast.success(\r\n this.isAdditionalRequest()\r\n ? t('Additional service request submitted successfully')\r\n : t('Service request was successfully created')\r\n );\r\n\r\n if (closeForm) {\r\n if (this.isAdditionalRequest()) {\r\n history.push(\r\n this.getServiceRequestEditUrl(response.payload.serviceRequestId)\r\n );\r\n } else {\r\n history.push(this.getServiceRequestsGridUrl());\r\n }\r\n } else {\r\n setFieldValue('quantity', '', false);\r\n setFieldValue('unitOfMeasureId', '', false);\r\n setFieldValue('comment', '', false);\r\n this.props.clearAttachments();\r\n this.setState({\r\n attachments: [],\r\n selectedCatalog: {}\r\n });\r\n }\r\n } else {\r\n Toast.warning(t(response.payload.message));\r\n const errors = (response.payload.details || []).reduce(\r\n (results, error) => {\r\n return {\r\n ...results,\r\n [error.target]: error.message[0]\r\n };\r\n },\r\n {}\r\n );\r\n\r\n setErrors(errors);\r\n this.setState({\r\n closeForm: false\r\n });\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n toAnnexesTreeEntity() {\r\n return this.props.annexesTree.map(annex => {\r\n return {\r\n value: annex.annexId,\r\n label: annex.name,\r\n children: annex.groups.map(group => {\r\n return {\r\n value: group.groupId,\r\n label: group.name\r\n };\r\n })\r\n };\r\n });\r\n }\r\n\r\n clearAnnexesTree = event => {\r\n event.preventDefault();\r\n this.setState(\r\n {\r\n chTreeChecked: [],\r\n chTreeExpanded: [],\r\n oDataAnnexesFilter: {}\r\n },\r\n () => {\r\n this.queryOdata();\r\n }\r\n );\r\n };\r\n\r\n onAnnexCheck = checked => {\r\n let filter = {};\r\n\r\n if (checked.length > 0) {\r\n filter = {\r\n logic: 'or',\r\n filters: checked.map(item => {\r\n return {\r\n field: 'GroupId',\r\n operator: 'eq',\r\n value: `${item}`\r\n };\r\n })\r\n };\r\n }\r\n\r\n this.setState(\r\n {\r\n dataState: {\r\n ...this.state.dataState,\r\n skip: 0\r\n },\r\n oDataAnnexesFilter: filter,\r\n chTreeChecked: checked\r\n },\r\n () => {\r\n this.queryOdata();\r\n }\r\n );\r\n };\r\n\r\n queryOdata() {\r\n const { oDataSearchFilter, oDataAnnexesFilter, dataState } = this.state;\r\n\r\n const filters = [];\r\n\r\n const params = {\r\n ...dataState\r\n };\r\n\r\n if (Object.keys(oDataSearchFilter).length > 0) {\r\n filters.push(oDataSearchFilter);\r\n }\r\n if (Object.keys(oDataAnnexesFilter).length > 0) {\r\n filters.push(oDataAnnexesFilter);\r\n }\r\n\r\n if (filters.length > 0) {\r\n params.filter = {\r\n logic: 'and',\r\n filters\r\n };\r\n }\r\n\r\n this.props.queryOData(this.getCatalogItemsQueryUrl(), params);\r\n }\r\n\r\n dataStateChange = e => {\r\n this.setState(\r\n {\r\n dataState: e.dataState\r\n },\r\n () => {\r\n this.queryOdata();\r\n }\r\n );\r\n };\r\n\r\n onLocationQueryChange = query => {\r\n if (this.locationQueryTimeout) {\r\n clearTimeout(this.locationQueryTimeout);\r\n }\r\n\r\n this.locationQueryTimeout = setTimeout(() => {\r\n this.props.queryLocations(query);\r\n }, 300);\r\n };\r\n\r\n toAutocompleteEntity(data) {\r\n return data.map(item => ({\r\n value: item.code,\r\n title: item.name,\r\n original: item\r\n }));\r\n }\r\n\r\n calculateByDays(values) {\r\n const { selectedCatalog } = this.state;\r\n if (selectedCatalog) {\r\n values.isAccommodation = selectedCatalog.IsAccommodation;\r\n }\r\n const data = CalculateByDays.calculate(values, selectedCatalog);\r\n\r\n if (data) {\r\n this.props.calculateByDays(data);\r\n }\r\n }\r\n\r\n toUnitsEntity(units) {\r\n return units.map(unit => {\r\n return {\r\n title: unit.title,\r\n value: unit.unitId\r\n };\r\n });\r\n }\r\n\r\n toActivityEntity(activities) {\r\n return activities.map(activity => {\r\n return {\r\n name: activity.name,\r\n activityId: activity.activityId,\r\n isDefault: activity.isDefault\r\n };\r\n });\r\n }\r\n\r\n toUomsEntity(uoms) {\r\n return uoms.map(uom => {\r\n return {\r\n title: uom.UnitOfMeasureCode,\r\n value: uom.UnitOfMeasureId\r\n };\r\n });\r\n }\r\n\r\n validation = values => {\r\n this.calculateByDays(values);\r\n };\r\n\r\n handleQuickSearchChange = event => {\r\n if (this.handleQuickSearchChangeTimeout) {\r\n clearTimeout(this.handleQuickSearchChangeTimeout);\r\n }\r\n const value = event.target.value;\r\n\r\n this.handleQuickSearchChangeTimeout = setTimeout(() => {\r\n let state = {};\r\n\r\n if (value === '') {\r\n state = {\r\n oDataSearchFilter: {}\r\n };\r\n } else {\r\n state = {\r\n dataState: {\r\n ...this.state.dataState,\r\n skip: 0\r\n },\r\n oDataSearchFilter: {\r\n logic: 'and',\r\n filters: [\r\n {\r\n field: 'QuickSearchField',\r\n operator: 'contains',\r\n value: value\r\n }\r\n ]\r\n }\r\n };\r\n }\r\n\r\n this.setState(state, () => {\r\n this.queryOdata();\r\n });\r\n }, 100);\r\n };\r\n\r\n checkAttachmentFileNames = fileName => {\r\n const { attachments } = this.state;\r\n return (\r\n Object.values(attachments).find(item => {\r\n return item.name === fileName;\r\n }) || false\r\n );\r\n };\r\n\r\n isTransportation = () => {\r\n return (\r\n this.state.selectedCatalog &&\r\n this.state.selectedCatalog.IsTransportation === true\r\n );\r\n };\r\n\r\n isAccommodation = () => {\r\n return (\r\n this.state.selectedCatalog &&\r\n this.state.selectedCatalog.IsAccommodation === true\r\n );\r\n };\r\n\r\n isMeal = () => {\r\n return (\r\n this.state.selectedCatalog && this.state.selectedCatalog.IsMeal === true\r\n );\r\n };\r\n\r\n isAccommodationOrMeal = () => {\r\n return this.isAccommodation() || this.isMeal();\r\n };\r\n\r\n getInitialActivity = () => {\r\n if (this.state.serviceRequest && this.state.serviceRequest.activityId) {\r\n return this.state.serviceRequest.activityId;\r\n }\r\n\r\n if (\r\n this.props.forSubmitData.activities &&\r\n this.props.forSubmitData.activities.length > 0 &&\r\n !this.state.disabled &&\r\n this.toActivityEntity(this.props.forSubmitData.activities).some(\r\n x => x.isDefault\r\n )\r\n ) {\r\n return this.toActivityEntity(this.props.forSubmitData.activities).find(\r\n x => x.isDefault\r\n ).activityId;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n cancelForm(dirty, navContext) {\r\n if (!dirty) {\r\n this.props.history.push(this.getServiceRequestsGridUrl(navContext));\r\n } else {\r\n Confirm(\r\n this.props.t('Cancel service request'),\r\n this.props.t(\r\n 'Are you sure you want to cancel? All entered data will be lost.'\r\n ),\r\n () => {\r\n this.props.history.push(this.getServiceRequestsGridUrl(navContext));\r\n }\r\n );\r\n }\r\n }\r\n\r\n getUnits = units => {\r\n const { serviceRequest } = this.state;\r\n const newUnits = this.flattenUnitsTree(units).map(unit => {\r\n return {\r\n title: unit.unitName,\r\n unitId: unit.unitId\r\n };\r\n });\r\n if (\r\n serviceRequest &&\r\n !newUnits.some(unit => unit.unitId === serviceRequest.unitId)\r\n ) {\r\n newUnits.push({\r\n title: serviceRequest.unitName,\r\n unitId: serviceRequest.unitId\r\n });\r\n }\r\n\r\n return this.toUnitsEntity(newUnits);\r\n };\r\n\r\n flattenUnitsTree(array, level = 0) {\r\n if (!Array.isArray(array)) {\r\n return [];\r\n }\r\n\r\n const units = array.reduce((result, item) => {\r\n result.push({\r\n unitName: `${'\\xa0\\xa0\\xa0'.repeat(level)}${item.unitName}`,\r\n unitId: item.unitId\r\n });\r\n\r\n if (Array.isArray(item.units)) {\r\n result = result.concat(this.flattenUnitsTree(item.units, level + 1));\r\n }\r\n\r\n return result;\r\n }, []);\r\n\r\n return units;\r\n }\r\n\r\n onGridRowClick = (dataItem, setFieldValue, validateForm) => {\r\n this.setState(\r\n {\r\n selectedCatalog: dataItem\r\n },\r\n () => {\r\n const uom =\r\n objectPath\r\n .get(dataItem, 'UnitsOfMeasure', [])\r\n .find(uom => uom.IsDefault) || {};\r\n\r\n setFieldValue('isAdditionalRequest', this.isAdditionalRequest());\r\n setFieldValue('isTransportation', this.isTransportation());\r\n setFieldValue('isAccommodation', this.isAccommodation());\r\n if (uom) {\r\n setFieldValue('unitOfMeasureId', uom.UnitOfMeasureId);\r\n }\r\n setFieldValue('isCalculatedByDays', this.isAccommodationOrMeal());\r\n validateForm();\r\n }\r\n );\r\n };\r\n\r\n toggleFirstPanelExpanded = () => {\r\n this.setState({\r\n isFirstPanelExpanded: !this.state.isFirstPanelExpanded\r\n });\r\n };\r\n\r\n getExerciseCurrency = () => {\r\n if (this.props.forSubmitData.exerciseCurrency) {\r\n return this.props.forSubmitData.exerciseCurrency.name;\r\n }\r\n\r\n return ''\r\n }\r\n\r\n render() {\r\n const { t } = this.props;\r\n const { selectedCatalog, isFirstPanelExpanded } = this.state;\r\n\r\n const defaultUom =\r\n objectPath\r\n .get(selectedCatalog, 'UnitsOfMeasure', [])\r\n .find(uom => uom.IsDefault) || {};\r\n const isDisabled = Object.keys(selectedCatalog).length === 0;\r\n\r\n return (\r\n \r\n {({\r\n setFieldValue,\r\n handleReset,\r\n handleSubmit,\r\n isSubmitting,\r\n validateForm,\r\n values,\r\n dirty\r\n }) => (\r\n
\r\n \r\n {nav => (\r\n <>\r\n \r\n
\r\n
\r\n \r\n this.cancelForm(dirty, nav.serviceRequestNavigation)\r\n }\r\n large\r\n >\r\n {t('Cancel')}\r\n \r\n {\r\n this.setState({\r\n closeForm: true\r\n });\r\n }}\r\n type=\"submit\"\r\n large\r\n >\r\n {t(this.isAdditionalRequest() ? 'Submit' : 'Save')}\r\n \r\n {!this.isAdditionalRequest() && (\r\n \r\n {t('Save and create new')}\r\n \r\n )}\r\n
\r\n \r\n\r\n
\r\n {\r\n event.preventDefault();\r\n this.cancelForm(dirty, nav.serviceRequestNavigation);\r\n }}\r\n title={\r\n this.isAdditionalRequest()\r\n ? t('Create additional service request')\r\n : t('Create service request')\r\n }\r\n />\r\n
\r\n \r\n )}\r\n \r\n
\r\n \r\n {isFirstPanelExpanded && (\r\n \r\n {t('Clear all')}\r\n \r\n )}\r\n {\r\n e.preventDefault();\r\n this.toggleFirstPanelExpanded(!isFirstPanelExpanded);\r\n }}\r\n >\r\n {isFirstPanelExpanded ? t('Collapse') : t('Expand')}\r\n \r\n \r\n }\r\n className={!isFirstPanelExpanded ? 'first-panel-collapsed' : ''}\r\n >\r\n \r\n this.setState({ chTreeExpanded: expanded })\r\n }\r\n />\r\n \r\n \r\n
\r\n }\r\n placeholder={t('Search items')}\r\n onChange={this.handleQuickSearchChange}\r\n />\r\n\r\n ({\r\n ...item,\r\n selected:\r\n item.CatalogItemId === selectedCatalog.CatalogItemId\r\n }))}\r\n onDataStateChange={this.dataStateChange}\r\n selectedField=\"selected\"\r\n onRowClick={({ dataItem }) =>\r\n this.onGridRowClick(dataItem, setFieldValue, validateForm)\r\n }\r\n >\r\n {\r\n return (\r\n \r\n this.onGridRowClick(\r\n dataItem,\r\n setFieldValue,\r\n validateForm\r\n )\r\n }\r\n >\r\n \r\n {dataItem.Name}\r\n \r\n \r\n );\r\n }}\r\n />\r\n {\r\n if (!props.dataItem.UnitsOfMeasure) {\r\n return '';\r\n }\r\n const units = props.dataItem.UnitsOfMeasure.map(\r\n unit => unit.UnitOfMeasureCode\r\n );\r\n return {units.join(', ')};\r\n }}\r\n />\r\n \r\n {this.props.isLoading && }\r\n \r\n\r\n {this.props.oData.data.length === 0 && (\r\n
\r\n
\r\n {t('We cannot find this item in the Catalog')}\r\n
\r\n
\r\n }\r\n to={this.getCustomServiceRequestUrl()}\r\n >\r\n {t('Create custom service request')}\r\n \r\n
\r\n
\r\n )}\r\n
\r\n \r\n \r\n
\r\n
{t('Item information')}
\r\n \r\n {objectPath.get(selectedCatalog, 'Description', '-')}\r\n \r\n\r\n
\r\n
\r\n {t('Item price')}:{' '}\r\n \r\n {' '}\r\n -{' '}\r\n {' '}\r\n {t(objectPath.get(selectedCatalog, 'Currency', ''))}{' '}\r\n {defaultUom.UnitOfMeasureCode}\r\n \r\n
\r\n\r\n {objectPath\r\n .get(selectedCatalog, 'CatalogAttachments', [])\r\n .map(file => (\r\n \r\n ))}\r\n
\r\n\r\n
{t('Delivery information')}
\r\n \r\n {this.isTransportation() === false && (\r\n <>\r\n
{t('Location details')}
\r\n \r\n \r\n )}\r\n\r\n {this.isTransportation() === true && (\r\n <>\r\n
{t('Pickup location')}
\r\n \r\n
{t('Delivery location')}
\r\n \r\n \r\n )}\r\n\r\n
{t('Additional details')}
\r\n \r\n\r\n
\r\n {\r\n this.handleFileUpload(files);\r\n }}\r\n onRemove={file => {\r\n this.props.deleteAttachment(file);\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\nServiceRequest.propTypes = {\r\n getAnnexesTree: PropTypes.func,\r\n isLoading: PropTypes.bool,\r\n oData: PropTypes.object,\r\n query: PropTypes.array,\r\n t: PropTypes.func,\r\n annexesTree: PropTypes.array,\r\n queryOData: PropTypes.func,\r\n queryLocations: PropTypes.func,\r\n resetOData: PropTypes.func,\r\n forSubmit: PropTypes.func,\r\n forSubmitData: PropTypes.object,\r\n calculateByDays: PropTypes.func,\r\n clearCalculateByDays: PropTypes.func,\r\n calculateByDaysResults: PropTypes.object,\r\n match: PropTypes.object,\r\n create: PropTypes.func,\r\n history: PropTypes.object,\r\n uploadAttachments: PropTypes.func,\r\n setAttachments: PropTypes.func,\r\n deleteAttachment: PropTypes.func,\r\n clearAttachments: PropTypes.func,\r\n attachments: PropTypes.array,\r\n createAdditionalServiceRequest: PropTypes.func\r\n};\r\n\r\nexport default ServiceRequest;\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport { UPLOAD, QUERY, GET, EXPORT } from '@hobs/constants/locations';\r\n\r\nexport function uploadLocations(body) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('Location/Upload', {\r\n body: body,\r\n method: 'POST',\r\n multipart: true\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n return { success: true, blob: response };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: response.payload\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: UPLOAD.REQUEST };\r\n }\r\n function success() {\r\n return { type: UPLOAD.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: UPLOAD.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function queryLocations(query) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure(`Exercise/Locations/${query}`, { cancel: true })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: JSON.parse(response.response)\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: QUERY.REQUEST };\r\n }\r\n function success(payload) {\r\n return { type: QUERY.SUCCESS, query: payload };\r\n }\r\n function failure(error) {\r\n return { type: QUERY.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getLocation(locationId) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure(`Location/${locationId}`)\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: JSON.parse(response.response)\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: GET.REQUEST };\r\n }\r\n function success(payload) {\r\n return { type: GET.SUCCESS, location: payload };\r\n }\r\n function failure(error) {\r\n return { type: GET.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function exportLocationsExcel() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('Locations/Excel', { forceBlob: true })\r\n .then(response => {\r\n if (response) {\r\n dispatch(success());\r\n return { success: true, blob: response };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: EXPORT.REQUEST };\r\n }\r\n function success() {\r\n return { type: EXPORT.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: EXPORT.FAILURE, error };\r\n }\r\n}\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport { UPLOAD, SET, DELETE, CLEAR } from '@hobs/constants/attachment';\r\n\r\nexport function uploadAttachments(body) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('attachments', {\r\n body: body,\r\n method: 'POST',\r\n multipart: true\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, ...response };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: UPLOAD.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: UPLOAD.SUCCESS, response };\r\n }\r\n function failure(error) {\r\n return { type: UPLOAD.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function setAttachments(attachments) {\r\n return dispatch => {\r\n dispatch({ type: SET.SUCCESS, attachments });\r\n };\r\n}\r\n\r\nexport function deleteAttachment(file) {\r\n return dispatch => {\r\n dispatch({ type: DELETE.SUCCESS, file });\r\n };\r\n}\r\n\r\nexport function clearAttachments() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR.SUCCESS });\r\n };\r\n}\r\n","export const CREATE = {\r\n REQUEST: 'AdditionalServiceRequest/Create/Request',\r\n SUCCESS: 'AdditionalServiceRequest/Create/Success',\r\n FAILURE: 'AdditionalServiceRequest/Create/Failure'\r\n};\r\n\r\nexport const CREATE_CUSTOM = {\r\n REQUEST: 'AdditionalServiceRequest/CreateCustom/Request',\r\n SUCCESS: 'AdditionalServiceRequest/CreateCustom/Success',\r\n FAILURE: 'AdditionalServiceRequest/CreateCustom/Failure'\r\n};\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport {\r\n CalculateByDays,\r\n CLEAR_COSTS,\r\n ForSubmit,\r\n GET,\r\n CREATE,\r\n UPDATE,\r\n REMOVE\r\n} from '@hobs/constants/serviceRequests';\r\n\r\nexport function calculateByDays(body) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('ServiceRequests/CalculateByDays', {\r\n body: body,\r\n method: 'POST'\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: JSON.parse(response.response)\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CalculateByDays.REQUEST };\r\n }\r\n function success(results) {\r\n return { type: CalculateByDays.SUCCESS, results };\r\n }\r\n function failure(error) {\r\n return { type: CalculateByDays.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function clearCalculateByDays() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR_COSTS.SUCCESS });\r\n };\r\n}\r\n\r\nexport function forSubmit() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('ServiceRequests/ForSubmit')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: JSON.parse(response.response)\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: ForSubmit.REQUEST };\r\n }\r\n function success(results) {\r\n return { type: ForSubmit.SUCCESS, results };\r\n }\r\n function failure(error) {\r\n return { type: ForSubmit.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getServiceRequest(serviceRequestsId) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure(`ServiceRequests/${serviceRequestsId}`)\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: JSON.parse(response.response)\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: GET.REQUEST };\r\n }\r\n\r\n function success(item) {\r\n return { type: GET.SUCCESS, item };\r\n }\r\n function failure(error) {\r\n return { type: GET.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function create(data) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('ServiceRequests', { body: data, method: 'POST' })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: response.payload\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CREATE.REQUEST };\r\n }\r\n function success(results) {\r\n return { type: CREATE.SUCCESS, results };\r\n }\r\n function failure(error) {\r\n return { type: CREATE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function update(data) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`ServiceRequests/${data.serviceRequestId}`, {\r\n body: data,\r\n method: 'PUT'\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: response.payload\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: UPDATE.REQUEST };\r\n }\r\n\r\n function success() {\r\n return { type: UPDATE.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: UPDATE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function remove(serviceRequestId) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure(\r\n `StatementOfRequirements/ServiceRequests/${serviceRequestId}`,\r\n { method: 'DELETE' }\r\n )\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: response.payload\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: REMOVE.REQUEST };\r\n }\r\n function success() {\r\n return { type: REMOVE.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: REMOVE.FAILURE, error };\r\n }\r\n}\r\n","import { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport { withTranslation } from 'react-i18next';\r\nimport _ServiceRequest from '@hobs/containers/ServiceRequest';\r\nimport { getAnnexesTree } from '@hobs/actions/annex';\r\nimport { queryLocations } from '@hobs/actions/locations';\r\nimport { queryOData, resetOData } from '@hobs/actions/odata';\r\nimport {\r\n uploadAttachments,\r\n setAttachments,\r\n deleteAttachment,\r\n clearAttachments\r\n} from '@hobs/actions/attachment';\r\nimport { createAdditionalServiceRequest } from '@hobs/actions/additionalServiceRequest';\r\nimport {\r\n calculateByDays,\r\n clearCalculateByDays,\r\n forSubmit,\r\n create\r\n} from '../../actions/serviceRequests';\r\n\r\nclass ServiceRequest extends _ServiceRequest {\r\n loadRequiredData() {\r\n this.props.forSubmit();\r\n this.props.getAnnexesTree();\r\n this.queryOdata();\r\n }\r\n\r\n getServiceRequestsGridUrl() {\r\n return '/requested-services';\r\n }\r\n\r\n getCatalogItemsQueryUrl() {\r\n return 'CatalogItemsQueryForServiceRequest';\r\n }\r\n\r\n getCustomServiceRequestUrl() {\r\n return '/custom-service-request';\r\n }\r\n\r\n getServiceRequestEditUrl(serviceRequestId) {\r\n return `/service-request/${serviceRequestId}`;\r\n }\r\n}\r\n\r\nconst oDataLoading = createLoadingSelector(['OData']);\r\nconst mapStateToProps = state => ({\r\n isLoading: oDataLoading(state),\r\n annexesTree: state.annex.tree,\r\n oData: state.odata,\r\n query: state.locations.query,\r\n calculateByDaysResults: state.serviceRequests.calculateByDays,\r\n forSubmitData: state.serviceRequests.forSubmit,\r\n attachments: state.attachment.attachments\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n getAnnexesTree,\r\n queryOData,\r\n queryLocations,\r\n resetOData,\r\n calculateByDays,\r\n clearCalculateByDays,\r\n forSubmit,\r\n create,\r\n uploadAttachments,\r\n setAttachments,\r\n deleteAttachment,\r\n clearAttachments,\r\n createAdditionalServiceRequest\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(withRouter(ServiceRequest)));\r\n","import {\r\n CREATE,\r\n CREATE_CUSTOM\r\n} from '@hobs/constants/additionalServiceRequest';\r\nimport { actionCreator } from './utils/utils';\r\n\r\nexport const createAdditionalServiceRequest = body =>\r\n actionCreator('Additional', CREATE, {\r\n body: body,\r\n method: 'POST'\r\n });\r\n\r\nexport const createCustomAdditionalServiceRequest = body =>\r\n actionCreator('Additional/Custom', CREATE_CUSTOM, {\r\n body: body,\r\n method: 'POST'\r\n });\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { USER_ROLES } from '@hobs/utils/constants';\r\nimport { GhostButton } from '@hobs/components/Buttons';\r\nimport { format } from '@hobs/utils/formatWithTimeZone';\r\nimport { Download } from '@hobs/utils/download';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Toast from '@hobs/components/Toast';\r\nimport Confirm from '@hobs/components/Confirm';\r\n\r\nimport './Catalog.scss';\r\n\r\nconst KEY_ENTER = 13;\r\n\r\nclass Catalog extends React.PureComponent {\r\n state = {\r\n dataState: {\r\n take: 20,\r\n skip: 0,\r\n sort: [{ field: 'Code', dir: 'asc' }]\r\n },\r\n upload: {\r\n files: null,\r\n overrideItems: false,\r\n success: false,\r\n error: false\r\n },\r\n remove: {\r\n catalogItemCode: '',\r\n catalogItemId: '',\r\n showDialog: false,\r\n error: false\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n this.props.getCatalogGrid();\r\n this.queryOData();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetOData();\r\n }\r\n\r\n queryOData = () => {\r\n this.props.queryOData('CatalogItemQuery', this.state.dataState);\r\n };\r\n\r\n dataStateChange = event => {\r\n this.setState(\r\n {\r\n dataState: event.dataState\r\n },\r\n () => {\r\n this.queryOData();\r\n }\r\n );\r\n };\r\n\r\n exportCatalog = async () => {\r\n const data = await this.props.exportCatalog();\r\n const date = format(new Date(), 'yyyy-MM-dd');\r\n Download(data.blob, `Catalog-${date}.xlsx`);\r\n };\r\n\r\n getUplodaPathName() {\r\n return `${this.props.location.pathname.replace('/upload', '')}/upload`;\r\n }\r\n\r\n getCreatePathName() {\r\n return `${this.props.location.pathname.replace('/create', '')}/create`;\r\n }\r\n\r\n getEditPathName(catalogItemId) {\r\n return `${this.props.location.pathname.replace(\r\n `/edit/${catalogItemId}`,\r\n ''\r\n )}/edit/${catalogItemId}`;\r\n }\r\n\r\n getCatalogPathName() {\r\n const pathname = this.props.location.pathname;\r\n return pathname.replace('/upload', '');\r\n }\r\n\r\n isUploadOpen() {\r\n return this.props.match.params.action === 'upload';\r\n }\r\n\r\n showDeleteDialog = (catalogItemId, catalogItemCode) => {\r\n const { t } = this.props;\r\n Confirm(\r\n t('Delete catalog item'),\r\n t(`Are you sure you want to delete catalog item ${catalogItemCode}?`),\r\n () => {\r\n this.deleteCatalogItem(catalogItemId);\r\n }\r\n );\r\n };\r\n\r\n closeDeleteDialog = () => {\r\n const remove = {\r\n catalogItemId: '',\r\n catalogItemCode: '',\r\n showDialog: false,\r\n error: false\r\n };\r\n this.setState({ remove });\r\n };\r\n\r\n uploadCatalog = async () => {\r\n const { t } = this.props;\r\n const response = await this.props.uploadCatalog(this.state.upload);\r\n\r\n if (response.success) {\r\n await this.queryOData();\r\n\r\n this.setState({\r\n upload: {\r\n files: null,\r\n overrideItems: false,\r\n success: true,\r\n error: false\r\n }\r\n });\r\n\r\n this.onDialogClose();\r\n Toast.success(t('File uploaded successfully'));\r\n } else {\r\n this.setState({\r\n upload: {\r\n ...this.state.upload,\r\n error: response.payload\r\n }\r\n });\r\n }\r\n };\r\n\r\n deleteCatalogItem = catalogItemId => {\r\n const { t } = this.props;\r\n this.props.deleteCatalogItem(catalogItemId).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Catalog item deleted successfully'));\r\n this.queryOData();\r\n } else {\r\n Toast.warning(response.payload.message);\r\n }\r\n });\r\n };\r\n\r\n handleQuickSearchChange = event => {\r\n if (event.keyCode === KEY_ENTER) {\r\n this.setState(\r\n {\r\n dataState: {\r\n ...this.state.dataState,\r\n skip: 0,\r\n filter: {\r\n logic: 'and',\r\n filters: [\r\n {\r\n field: 'QuickSearchField',\r\n operator: 'contains',\r\n value: event.target.value\r\n }\r\n ]\r\n }\r\n }\r\n },\r\n () => {\r\n this.queryOData();\r\n }\r\n );\r\n }\r\n };\r\n\r\n handleInputChange = (input, value) => {\r\n this.setState({\r\n upload: {\r\n ...this.state.upload,\r\n [input]: value\r\n }\r\n });\r\n };\r\n\r\n getCustomFilter(type, field) {\r\n const { t, catalogGrid } = this.props;\r\n const filters = catalogGrid[type];\r\n\r\n if (!filters) {\r\n return [];\r\n }\r\n\r\n return [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n value: ''\r\n },\r\n ...filters.map(item => ({\r\n value: `${item.id}`,\r\n name: item.title,\r\n default: false,\r\n field: field\r\n }))\r\n ];\r\n }\r\n\r\n onDialogClose = () => {\r\n this.props.history.push(this.getCatalogPathName());\r\n this.setState({\r\n upload: {\r\n files: null,\r\n overrideItems: false,\r\n success: false,\r\n error: false\r\n }\r\n });\r\n };\r\n\r\n _getGridColumns() {\r\n const { t } = this.props;\r\n\r\n return {\r\n Code: {\r\n default: true,\r\n visible: true,\r\n title: t('Code'),\r\n columnMenu: true,\r\n width: '70px'\r\n },\r\n HasAttachments: {\r\n default: true,\r\n visible: true,\r\n cell: props => (\r\n \r\n {props.dataItem.HasAttachments && (\r\n \r\n )}\r\n \r\n ),\r\n headerCell: () => (\r\n \r\n )\r\n },\r\n ServiceName: {\r\n default: true,\r\n visible: true,\r\n title: t('Service Name'),\r\n columnMenu: true\r\n },\r\n ServiceType: {\r\n default: true,\r\n visible: true,\r\n title: t('Service type'),\r\n columnMenu: true,\r\n width: '80px',\r\n field: 'ServiceType',\r\n customFilter: {\r\n data: this.getCustomFilter('serviceTypes', 'ServiceTypeId')\r\n }\r\n },\r\n ServiceParent: {\r\n default: true,\r\n visible: true,\r\n title: t('Service parent'),\r\n columnMenu: true\r\n },\r\n ServiceDescription: {\r\n default: true,\r\n visible: true,\r\n title: t('Service Description'),\r\n columnMenu: true\r\n },\r\n GroupName: {\r\n default: true,\r\n visible: true,\r\n title: t('Group'),\r\n columnMenu: true,\r\n customFilter: {\r\n data: this.getCustomFilter('groups', 'GroupId')\r\n }\r\n },\r\n AnnexName: {\r\n default: true,\r\n visible: true,\r\n title: t('Annex'),\r\n columnMenu: true,\r\n customFilter: {\r\n data: this.getCustomFilter('annexes', 'AnnexId')\r\n }\r\n },\r\n Uoms: {\r\n default: true,\r\n visible: true,\r\n title: t('UoM'),\r\n sortable: false,\r\n cell: props => (\r\n {this.getUomFieldValue(props.dataItem.Uoms)}\r\n )\r\n },\r\n ServiceNatureType: {\r\n default: true,\r\n visible: true,\r\n title: t('Service nature'),\r\n columnMenu: true,\r\n customFilter: {\r\n data: this.getCustomFilter('serviceNatures', 'ServiceNatureTypeId')\r\n }\r\n },\r\n RateFrom: {\r\n default: true,\r\n visible: true,\r\n title: t('Rate from '),\r\n columnMenu: true,\r\n format: '{0:n2}',\r\n filter: 'numeric'\r\n },\r\n RateTo: {\r\n default: true,\r\n visible: true,\r\n title: t('Rate to'),\r\n columnMenu: true,\r\n format: '{0:n2}',\r\n filter: 'numeric'\r\n },\r\n ValueAddedTaxCode: {\r\n default: true,\r\n visible: true,\r\n title: t('VAT code'),\r\n columnMenu: true,\r\n customFilter: {\r\n data: this.getCustomFilter('vatCodes', 'ValueAddedTaxId')\r\n }\r\n }\r\n };\r\n }\r\n\r\n getGridColumns() {\r\n const { t, hasUserPermission } = this.props;\r\n const columns = this._getGridColumns();\r\n\r\n if (\r\n !hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT)\r\n ) {\r\n Object.assign(columns, {\r\n edit: {\r\n default: true,\r\n visible: true,\r\n resizable: false,\r\n width: '110px',\r\n headerCell: () => <>,\r\n cell: props => (\r\n \r\n }\r\n to={this.getEditPathName(props.dataItem.CatalogItemId)}\r\n >\r\n {t('Edit')}\r\n \r\n \r\n )\r\n },\r\n delete: {\r\n default: true,\r\n visible: true,\r\n resizable: false,\r\n width: '116px',\r\n headerCell: () => <>,\r\n cell: props => (\r\n \r\n }\r\n onClick={() =>\r\n this.showDeleteDialog(\r\n props.dataItem.CatalogItemId,\r\n props.dataItem.Code\r\n )\r\n }\r\n >\r\n {t('Delete')}\r\n \r\n \r\n )\r\n }\r\n });\r\n }\r\n return columns;\r\n }\r\n\r\n getUomFieldValue = uomsValues => {\r\n if (!uomsValues || uomsValues.length === 0) {\r\n return '';\r\n }\r\n\r\n if (!Array.isArray(uomsValues)) {\r\n throw new Error('Given value (Uoms) is not an Array. (CatalogItemQuery)');\r\n }\r\n\r\n const defaultUom = uomsValues.find(item => item.IsDefault);\r\n const restUoms = uomsValues.filter(item => !item.IsDefault);\r\n const uomsString = restUoms.map(item => item.UnitOfMeasureCode).join('; ');\r\n\r\n return (\r\n <>\r\n {defaultUom.UnitOfMeasureCode}; \r\n {uomsString}\r\n \r\n );\r\n };\r\n}\r\n\r\nCatalog.propTypes = {\r\n isLoading: PropTypes.bool,\r\n location: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n upload: PropTypes.bool,\r\n oData: PropTypes.object,\r\n queryOData: PropTypes.func,\r\n resetOData: PropTypes.func,\r\n exportCatalog: PropTypes.func,\r\n uploadCatalog: PropTypes.func,\r\n deleteCatalogItem: PropTypes.func,\r\n t: PropTypes.func,\r\n hasUserPermission: PropTypes.func,\r\n getCatalogGrid: PropTypes.func,\r\n catalogGrid: PropTypes.object,\r\n user: PropTypes.object\r\n};\r\n\r\nexport default Catalog;\r\n","export const EXPORT = {\r\n REQUEST: 'Catalog/Export/Request',\r\n SUCCESS: 'Catalog/Export/Success',\r\n FAILURE: 'Catalog/Export/Failure'\r\n};\r\n\r\nexport const UPLOAD = {\r\n REQUEST: 'Catalog/Uploda/Request',\r\n SUCCESS: 'Catalog/Uploda/Success',\r\n FAILURE: 'Catalog/Uploda/Failure'\r\n};\r\n\r\nexport const FORSUBMIT = {\r\n REQUEST: 'Catalog/ForSubmit/Request',\r\n SUCCESS: 'Catalog/ForSubmit/Success',\r\n FAILURE: 'Catalog/ForSubmit/Failure'\r\n};\r\n","export const CREATE = {\r\n REQUEST: 'CatalogItem/Create/Request',\r\n SUCCESS: 'CatalogItem/Create/Success',\r\n FAILURE: 'CatalogItem/Create/Failure'\r\n};\r\n\r\nexport const GET = {\r\n REQUEST: 'CatalogItem/Get/Request',\r\n SUCCESS: 'CatalogItem/Get/Success',\r\n FAILURE: 'CatalogItem/Get/Failure'\r\n};\r\n\r\nexport const CLEAR = {\r\n REQUEST: 'CatalogItem/Clear/Request',\r\n SUCCESS: 'CatalogItem/Clear/Success',\r\n FAILURE: 'CatalogItem/Clear/Failure'\r\n};\r\n\r\nexport const EDIT = {\r\n REQUEST: 'CatalogItem/Edit/Request',\r\n SUCCESS: 'CatalogItem/Edit/Success',\r\n FAILURE: 'CatalogItem/Edit/Failure'\r\n};\r\n\r\nexport const DELETE = {\r\n REQUEST: 'CatalogItem/Delete/Request',\r\n SUCCESS: 'CatalogItem/Delete/Success',\r\n FAILURE: 'CatalogItem/Delete/Failure'\r\n};\r\n\r\nexport const FORSUBMIT = {\r\n REQUEST: 'CatalogItem/ForSubmit/Request',\r\n SUCCESS: 'CatalogItem/ForSubmit/Success',\r\n FAILURE: 'CatalogItem/ForSubmit/Failure'\r\n};\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { Grid } from '@progress/kendo-react-grid';\r\nimport GridLoader from '@hobs/components/Grid/GridLoader';\r\nimport Columns from '@hobs/components/Grid/Columns';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport Icon from '@hobs/components/Icon';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\nimport Input from '@hobs/components/Input';\r\nimport { H1 } from '@hobs/components/Headings';\r\nimport ShortId from 'shortid';\r\nimport deepcopy from 'deepcopy';\r\nimport _Catalog from '@hobs/containers/Catalog';\r\nimport {\r\n withDataStateLocalOverrides,\r\n withGridLocalOverrides,\r\n onUserResetSettings\r\n} from '@hobs/utils/grid/overrides';\r\nimport { getCatalogGrid } from '@hobs/actions/gridSelections';\r\nimport { queryOData, resetOData } from '@hobs/actions/odata';\r\nimport { exportCatalog, uploadCatalog } from '@hobs/actions/catalog';\r\nimport { deleteCatalogItem } from '@hobs/actions/catalogItem';\r\nimport { PAGE_SIZES } from '@hobs/utils/constants';\r\n\r\nclass Catalog extends _Catalog {\r\n LSdataStateName = `Catalog${this.props.user.CurrentExerciseId}.dataState`;\r\n LSGridPropsName = `Catalog${this.props.user.CurrentExerciseId}.grid.props`; \r\n getGridColumns() {\r\n return this._getGridColumns();\r\n }\r\n\r\n onUserSaveSettings = () => {\r\n localStorage.setItem(this.LSdataStateName, JSON.stringify(this.state.dataState));\r\n localStorage.setItem(\r\n this.LSGridPropsName,\r\n JSON.stringify({\r\n columns: this.grid.current.columns\r\n })\r\n );\r\n };\r\n\r\n onUserResetSettings = onUserResetSettings(\r\n this.LSdataStateName,\r\n this.LSGridPropsName,\r\n null,\r\n () => {\r\n const columns = this.getGridColumns();\r\n\r\n this.setState(\r\n {\r\n gridKey: ShortId.generate(),\r\n columns,\r\n dataState: this.defaultDataState\r\n },\r\n () => {\r\n this.queryOData();\r\n }\r\n );\r\n }\r\n );\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.exportRef = React.createRef();\r\n this.grid = React.createRef();\r\n\r\n this.defaultGridColumns = this.getGridColumns()\r\n\r\n this.defaultDataState = {\r\n take: 20,\r\n sort: [{ field: 'Code', dir: 'acs' }],\r\n skip: 0,\r\n };\r\n const defaultState = {\r\n dataState: withDataStateLocalOverrides(\r\n deepcopy(this.defaultDataState),\r\n this.LSdataStateName\r\n ),\r\n remove: this.state.remove,\r\n upload: this.state.upload,\r\n gridKey: ShortId.generate(),\r\n customFilters: {},\r\n columns: withGridLocalOverrides(\r\n deepcopy(this.defaultGridColumns),\r\n this.LSGridPropsName\r\n ),\r\n openDialog: false,\r\n selectedRows: {},\r\n isAllSelected: false,\r\n previousWindowScrollOffset: null\r\n };\r\n\r\n this.state = {\r\n ...defaultState\r\n };\r\n }\r\n\r\n getColumns(){\r\n return withGridLocalOverrides(\r\n deepcopy(this.getGridColumns()),\r\n this.LSGridPropsName\r\n )\r\n }\r\n\r\n render() {\r\n const { t } = this.props;\r\n\r\n return (\r\n
\r\n

{t('Catalog')}

\r\n
\r\n
\r\n
\r\n }\r\n placeholder=\"search\"\r\n onKeyUp={this.handleQuickSearchChange}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n {Columns({\r\n columns: this.getColumns(),\r\n onSave: this.onUserSaveSettings,\r\n onReset: this.onUserResetSettings,\r\n dataState: this.state.dataState\r\n })}\r\n \r\n {this.props.isLoading && }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nCatalog.propTypes = {\r\n isLoading: PropTypes.bool,\r\n oData: PropTypes.object,\r\n queryOData: PropTypes.func,\r\n resetOData: PropTypes.func,\r\n t: PropTypes.func\r\n};\r\n\r\nconst oDataLoading = createLoadingSelector(['OData']);\r\nconst mapStateToProps = state => ({\r\n isLoading: oDataLoading(state),\r\n oData: state.odata,\r\n catalogGrid: state.gridSelections.catalogGrid\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n getCatalogGrid,\r\n queryOData,\r\n resetOData,\r\n exportCatalog,\r\n uploadCatalog,\r\n deleteCatalogItem\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(withRouter(WithRoles(Catalog))));\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport { EXPORT, UPLOAD } from '@hobs/constants/catalog';\r\n\r\nexport function exportCatalog() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('catalogItems/excel', { forceBlob: true })\r\n .then(response => {\r\n if (response) {\r\n dispatch(success());\r\n return { success: true, blob: response };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: EXPORT.REQUEST };\r\n }\r\n function success() {\r\n return { type: EXPORT.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: EXPORT.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function uploadCatalog(body) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('catalogItems/excel', {\r\n body: body,\r\n method: 'POST',\r\n multipart: true\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n return { success: true, ...response };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: UPLOAD.REQUEST };\r\n }\r\n function success() {\r\n return { type: UPLOAD.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: UPLOAD.FAILURE, error };\r\n }\r\n}","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport {\r\n CREATE,\r\n GET,\r\n CLEAR,\r\n EDIT,\r\n DELETE,\r\n FORSUBMIT\r\n} from '@hobs/constants/catalogItem';\r\n\r\nexport function createCatalogItem(catalogItem) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('catalogItems', { body: catalogItem, method: 'POST' })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n return { success: true, ...response };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CREATE.REQUEST };\r\n }\r\n function success() {\r\n return { type: CREATE.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: CREATE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getCatalogItem(catalogItemId) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`catalogItems/${catalogItemId}`)\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, ...response };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: GET.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: GET.SUCCESS, response };\r\n }\r\n function failure(error) {\r\n return { type: GET.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function clearCatalogItem() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR.SUCCESS });\r\n };\r\n}\r\n\r\nexport function editCatalogItem(catalogItem) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('catalogItems', { body: catalogItem, method: 'PUT' })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: EDIT.REQUEST };\r\n }\r\n function success() {\r\n return { type: EDIT.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: EDIT.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function deleteCatalogItem(catalogItemId) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`catalogItems/${catalogItemId}`, { method: 'DELETE' })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n function request() {\r\n return { type: DELETE.REQUEST };\r\n }\r\n function success() {\r\n return { type: DELETE.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: DELETE.FAILURE, error };\r\n }\r\n };\r\n}\r\n\r\nexport function getCatalogItemForSubmit() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('catalogItems/forSubmit')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, ...response };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: FORSUBMIT.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: FORSUBMIT.SUCCESS, response };\r\n }\r\n function failure(error) {\r\n return { type: FORSUBMIT.FAILURE, error };\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport cx from 'classnames';\r\nimport Styles from './Tabs.module.scss';\r\n\r\nexport default class Tab extends React.PureComponent {\r\n render() {\r\n return (\r\n \r\n {this.props.children}\r\n
\r\n );\r\n }\r\n}\r\n\r\nTab.propTypes = {\r\n children: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),\r\n isActive: PropTypes.bool,\r\n onClick: PropTypes.func,\r\n component: PropTypes.element\r\n};\r\n","import React from 'react';\r\nimport cx from 'classnames';\r\nimport PropTypes from 'prop-types';\r\nimport TabItem from './Tab';\r\nimport Styles from './Tabs.module.scss';\r\n\r\nexport class Tabs extends React.PureComponent {\r\n state = {\r\n activeTab: 0\r\n };\r\n static Tab = args => {\r\n const { children, ...props } = args;\r\n return {children};\r\n };\r\n\r\n changeActiveTab = activeTabIndex => {\r\n this.setState({\r\n activeTab: activeTabIndex\r\n });\r\n };\r\n\r\n render() {\r\n const tabItems = React.Children.toArray(this.props.children);\r\n const activeTab = tabItems[this.state.activeTab];\r\n return (\r\n
\r\n
\r\n {React.Children.map(this.props.children, (child, index) => {\r\n return React.cloneElement(child, {\r\n isActive: index === this.state.activeTab,\r\n onClick: this.changeActiveTab.bind(this, index)\r\n });\r\n })}\r\n
\r\n \r\n {activeTab &&\r\n React.isValidElement(activeTab.props.component) &&\r\n activeTab.props.component}\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nTabs.propTypes = {\r\n children: PropTypes.arrayOf(PropTypes.element),\r\n className: PropTypes.string\r\n};\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\n\r\nimport { UNITS, GET, UNITS_CURRENT } from '@hobs/constants/parties';\r\n\r\nexport function getPartyUnits() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('parties/current/units')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, ...response };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: UNITS.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: UNITS.SUCCESS, response };\r\n }\r\n function failure(error) {\r\n return { type: UNITS.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getParty() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('parties/current')\r\n .then(response => {\r\n if (response.payload) {\r\n dispatch(success(response.payload));\r\n return { success: true };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: GET.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: GET.SUCCESS, response };\r\n }\r\n function failure(error) {\r\n return { type: GET.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getAssignedPartyUnits() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('parties/current/units/current')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, ...response };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: UNITS_CURRENT.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: UNITS_CURRENT.SUCCESS, response };\r\n }\r\n function failure(error) {\r\n return { type: UNITS_CURRENT.FAILURE, error };\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Styles from './RadioButton.module.scss';\r\n\r\nconst RadioButton = ({\r\n name,\r\n value,\r\n checked,\r\n disabled,\r\n setFieldValue = () => {},\r\n onChange = () => {}\r\n}) => {\r\n const handleChange = value => {\r\n setFieldValue(name, value);\r\n };\r\n\r\n return (\r\n {\r\n handleChange(event.target.value);\r\n onChange(event);\r\n }}\r\n />\r\n );\r\n};\r\n\r\nRadioButton.propTypes = {\r\n name: PropTypes.string,\r\n value: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n checked: PropTypes.bool,\r\n setFieldValue: PropTypes.func,\r\n onChange: PropTypes.func\r\n};\r\n\r\nexport default RadioButton;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Styles from './Alert.module.scss';\r\n\r\nconst Alert = ({ children, type = 'info' }) => {\r\n const className = classnames(Styles.alert, Styles[type]);\r\n return (\r\n
\r\n
\r\n {type === 'info' && <>i}\r\n {type === 'error' && }\r\n {type === 'success' && }\r\n
\r\n
{children}
\r\n
\r\n );\r\n};\r\n\r\nAlert.propTypes = {\r\n children: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\r\n type: PropTypes.oneOf(['info', 'error', 'success'])\r\n};\r\n\r\nexport default Alert;\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\n\r\nimport {\r\n FORSUBMIT,\r\n GET,\r\n CREATE,\r\n UPDATE,\r\n DELETE,\r\n CLEAR\r\n} from '@hobs/constants/units';\r\n\r\nexport function getUnitsForSubmit() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('parties/units/forSubmit')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, ...response };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: FORSUBMIT.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: FORSUBMIT.SUCCESS, response };\r\n }\r\n function failure(error) {\r\n return { type: FORSUBMIT.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function createUnit(unit) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('parties/current/units', { body: unit, method: 'POST' })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n return { success: true, ...response };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CREATE.REQUEST };\r\n }\r\n function success() {\r\n return { type: CREATE.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: CREATE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getUnit(unitId) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`parties/current/units/${unitId}`)\r\n .then(response => {\r\n if (response.payload) {\r\n dispatch(success(response.payload));\r\n return { success: true };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: GET.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: GET.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: GET.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function updateUnit(unit) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('parties/current/units', { body: unit, method: 'PUT' })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error));\r\n return { success: false, error: error.toString() };\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: UPDATE.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: UPDATE.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: UPDATE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function deleteUnit(unitId) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`parties/current/units/${unitId}`, { method: 'DELETE' })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n return { success: true };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: DELETE.REQUEST };\r\n }\r\n function success() {\r\n return { type: DELETE.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: DELETE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function clearUnit() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR.SUCCESS });\r\n };\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withTranslation } from 'react-i18next/src';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport * as Yup from 'yup';\r\nimport Dialog from '@hobs/components/Dialog';\r\nimport Toast from '@hobs/components/Toast';\r\nimport RadioButton from '@hobs/components/RadioButton';\r\nimport ShortId from 'shortid';\r\nimport { Formik, Form, Field } from 'formik';\r\nimport Input from '@hobs/components/Input';\r\nimport { RaisedButton } from '@hobs/components/Buttons';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport Dropdown from '@hobs/components/Dropdown';\r\nimport Alert from '@hobs/components/Alert';\r\nimport { UNIT_PARENT_TYPES, UNIT_TYPES } from '@hobs/utils/constants';\r\n\r\nimport {\r\n getUnitsForSubmit,\r\n createUnit,\r\n getUnit,\r\n updateUnit,\r\n deleteUnit,\r\n clearUnit\r\n} from '../../../actions/units';\r\n\r\nimport './UnitDialog.scss';\r\n\r\nconst defaultState = {\r\n error: null\r\n};\r\n\r\nclass UnitDialog extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = defaultState;\r\n\r\n const { t } = props;\r\n this.unitCreateSchema = Yup.object().shape({\r\n parentUnitId: Yup.string().when('unitTypeName', {\r\n is: UNIT_TYPES.Unit,\r\n then: Yup.string().nullable(),\r\n otherwise: Yup.string()\r\n .nullable()\r\n .required(t('Place of the unit is not selected'))\r\n }),\r\n title: Yup.string()\r\n .max(256, t('Title cannot be longer than 256 symbols'))\r\n .required(t('Title is required')),\r\n unitTypeName: Yup.string(),\r\n unitOperationTypeId: Yup.string().when('unitTypeName', {\r\n is: UNIT_TYPES.Unit,\r\n then: Yup.string()\r\n .nullable()\r\n .required(t('Type is required')),\r\n otherwise: Yup.string().nullable()\r\n })\r\n });\r\n\r\n this.unitUpdateSchema = Yup.object().shape({\r\n title: Yup.string()\r\n .max(256, t('Title cannot be longer than 256 symbols'))\r\n .required(t('Title is required')),\r\n parentUnitId: Yup.string().when('unitTypeName', {\r\n is: UNIT_TYPES.Unit,\r\n then: Yup.string().nullable(),\r\n otherwise: Yup.string()\r\n .nullable()\r\n .required(t('Place of the unit is not selected'))\r\n }),\r\n unitOperationTypeId: Yup.string().when('unitTypeName', {\r\n is: UNIT_TYPES.Unit,\r\n then: Yup.string()\r\n .nullable()\r\n .required(t('Type is required')),\r\n otherwise: Yup.string().nullable()\r\n })\r\n });\r\n }\r\n\r\n isDialogOpen() {\r\n return this.props.match.params.action === 'unit';\r\n }\r\n\r\n getPartyPathName() {\r\n const deleteIndex = this.props.location.pathname.indexOf('/unit');\r\n return this.props.location.pathname.substring(0, deleteIndex);\r\n }\r\n\r\n getUnitTypesOptions(setFieldValue, selectedValue) {\r\n const { forSubmit } = this.props;\r\n const unitTypes = forSubmit.unitTypes;\r\n return unitTypes.map(unitType => (\r\n
\r\n
\r\n {\r\n setFieldValue('parentUnitId', null);\r\n setFieldValue('unitOperationTypeId', null);\r\n }}\r\n checked={unitType.name === selectedValue}\r\n />\r\n
\r\n {unitType.longName}\r\n
\r\n ));\r\n }\r\n\r\n getUnitOperationTypesOptions() {\r\n const { forSubmit } = this.props;\r\n const unitOperationTypes = forSubmit.unitOperationTypes;\r\n\r\n return unitOperationTypes.map(unitOperationType => (\r\n \r\n ));\r\n }\r\n\r\n getUnitsSelectDefaultMessage(unitTypeName, unitId) {\r\n const { t, units } = this.props;\r\n\r\n const parentUnitType = UNIT_PARENT_TYPES[unitTypeName];\r\n const flatUnits = this.flattenUnitsTree(units, parentUnitType, unitId);\r\n\r\n if (!flatUnits.length && unitTypeName === UNIT_TYPES.SubUnit) {\r\n return t('There are no Units in the party structure');\r\n }\r\n\r\n if (!flatUnits.length && unitTypeName === UNIT_TYPES.Component) {\r\n return t('There are no Sub-units in the party structure')\r\n }\r\n\r\n return t('Select location/parent element');\r\n }\r\n\r\n getUnitsOptions(values) {\r\n const { units } = this.props;\r\n const parentUnitType = UNIT_PARENT_TYPES[values.unitTypeName];\r\n const flatUnits = this.flattenUnitsTree(units, parentUnitType, values.unitId);\r\n\r\n if (flatUnits && flatUnits.length > 0) {\r\n return this.sortUnits(flatUnits).map(unit => {\r\n return (\r\n \r\n );\r\n });\r\n }\r\n }\r\n\r\n flattenUnitsTree(array, parentUnitType, unitId) {\r\n if (!Array.isArray(array)) {\r\n return [];\r\n }\r\n\r\n return array.reduce((result, item) => {\r\n if (item.unitTypeName === parentUnitType && unitId !== item.unitId) {\r\n result.push(item);\r\n }\r\n\r\n if(unitId === item.unitId){\r\n return result;\r\n }\r\n\r\n if (Array.isArray(item.units)) {\r\n result = result.concat(\r\n this.flattenUnitsTree(item.units, parentUnitType, unitId)\r\n );\r\n }\r\n\r\n return result;\r\n }, []);\r\n }\r\n\r\n createUnit = (values, { setErrors, setSubmitting }) => {\r\n const { t, onUnitCreate, units } = this.props;\r\n\r\n this.props.createUnit(values).then(response => {\r\n if (response.success) {\r\n const updatedUnits = this.flattenUnitsTree(\r\n response.payload.units,\r\n values.unitTypeName\r\n );\r\n\r\n const parentUnitType = UNIT_PARENT_TYPES[values.unitTypeName];\r\n const parentUnits = this.flattenUnitsTree(units, parentUnitType);\r\n\r\n const parentUnit = parentUnits.find(unit => {\r\n return unit.unitId === values.parentUnitId;\r\n });\r\n\r\n const createdUnit = updatedUnits.find(unit => {\r\n return unit.title === values.title;\r\n });\r\n\r\n if (createdUnit && onUnitCreate) {\r\n onUnitCreate({\r\n ...createdUnit,\r\n parentUnit\r\n });\r\n }\r\n\r\n this.onDialogClose();\r\n\r\n Toast.success(t('Unit created successfully'));\r\n } else if (response.payload && response.payload.details) {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [this.toLowercaseFirst(error.target)]: error.message[0]\r\n };\r\n }, {});\r\n\r\n setErrors(errors);\r\n } else if (response.payload) {\r\n this.setUnitError(response.payload.message);\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n updateUnit = (values, { setErrors, setSubmitting }) => {\r\n const { t } = this.props;\r\n\r\n this.props.updateUnit(values).then(response => {\r\n if (response.success) {\r\n this.onDialogClose();\r\n Toast.success(t('Unit information updated successfully'));\r\n } else if (response.payload && response.payload.details) {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [this.toLowercaseFirst(error.target)]: error.message[0]\r\n };\r\n }, {});\r\n\r\n setErrors(errors);\r\n } else if (response.payload) {\r\n this.setUnitError(response.payload.message);\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n toLowercaseFirst(value) {\r\n if (typeof value !== 'string' || value.length === 0) {\r\n return value;\r\n }\r\n\r\n return value.charAt(0).toLowerCase() + value.slice(1);\r\n }\r\n\r\n onDialogClose = () => {\r\n const { reloadUnits, history } = this.props;\r\n\r\n history.push(this.getPartyPathName());\r\n if (reloadUnits) {\r\n reloadUnits();\r\n }\r\n };\r\n\r\n onDialogClosed = () => {\r\n const { clearUnit } = this.props;\r\n\r\n clearUnit();\r\n this.resetState();\r\n };\r\n\r\n onDialogOpening = async () => {\r\n this.props.getUnitsForSubmit();\r\n const unitId = this.props.match.params.guid;\r\n if (unitId) {\r\n this.props.getUnit(unitId);\r\n }\r\n };\r\n\r\n setUnitError(message) {\r\n this.setState({ error: message });\r\n }\r\n\r\n resetState() {\r\n this.setState(defaultState);\r\n }\r\n\r\n isEdit() {\r\n const { match, unit } = this.props;\r\n return match.params.guid || unit;\r\n }\r\n\r\n sortUnits(units) {\r\n if (!Array.isArray(units)) {\r\n return [];\r\n }\r\n\r\n const sortedUnits = units.sort((a, b) =>\r\n a.title.toLowerCase() > b.title.toLowerCase()\r\n ? 1\r\n : a.title.toLowerCase() < b.title.toLowerCase()\r\n ? -1\r\n : 0\r\n );\r\n\r\n return sortedUnits.map(unit => {\r\n return {\r\n ...unit,\r\n units: this.sortUnits(unit.units)\r\n };\r\n });\r\n }\r\n\r\n render() {\r\n const { t, unit, partyId } = this.props;\r\n const { error } = this.state;\r\n return (\r\n \r\n \r\n {({ setFieldValue, values, isSubmitting }) => (\r\n
\r\n {error && {error}}\r\n
\r\n \r\n {(!this.isEdit() && t('Add new:')) || (this.isEdit() && t('Unit type:'))}\r\n
\r\n
\r\n {this.getUnitTypesOptions(\r\n setFieldValue,\r\n values.unitTypeName\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n {values.unitTypeName !== UNIT_TYPES.Unit && !values.unitOperationTypeId && (\r\n \r\n \r\n {this.getUnitsOptions(values)}\r\n \r\n )}\r\n {values.unitTypeName === UNIT_TYPES.Unit && (\r\n \r\n \r\n {this.getUnitOperationTypesOptions()}\r\n \r\n )}\r\n
\r\n
\r\n \r\n {t('Item title')}\r\n \r\n
\r\n
\r\n \r\n {t('Save')}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nUnitDialog.propTypes = {\r\n t: PropTypes.func,\r\n location: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n reloadUnits: PropTypes.func,\r\n forSubmit: PropTypes.object,\r\n partyId: PropTypes.string,\r\n units: PropTypes.array,\r\n getUnitsForSubmit: PropTypes.func,\r\n createUnit: PropTypes.func,\r\n getUnit: PropTypes.func,\r\n updateUnit: PropTypes.func,\r\n deleteUnit: PropTypes.func,\r\n clearUnit: PropTypes.func,\r\n unit: PropTypes.object,\r\n onUnitCreate: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n forSubmit: state.units.unitsForSubmit,\r\n unit: state.units.unit\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n getUnitsForSubmit,\r\n createUnit,\r\n getUnit,\r\n updateUnit,\r\n deleteUnit,\r\n clearUnit\r\n};\r\n\r\nexport default withRouter(\r\n connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n )(withTranslation()(UnitDialog))\r\n);\r\n","import React from 'react';\r\nimport { Tag, Intent } from '@blueprintjs/core';\r\nimport Icon from '@hobs/components/Icon';\r\n\r\n// Helper function to paint tree from response object\r\nexport const buildTree = (fn, [head, ...rest]) => {\r\n if (head === undefined && !rest.length) {\r\n return [];\r\n }\r\n if (head && head.units && head.units.length) {\r\n return [\r\n { ...fn(head), childNodes: buildTree(fn, head.units) },\r\n ...buildTree(fn, rest)\r\n ];\r\n }\r\n return [fn(head), ...buildTree(fn, rest)];\r\n};\r\n\r\nexport const getUnitObject = selectedUnitId => unit => {\r\n const isSelected = unit.unitId === selectedUnitId;\r\n return {\r\n ...unit,\r\n isExpanded: true,\r\n hasCaret: false,\r\n isSelected,\r\n secondaryLabel: [\r\n getTags(unit.statuses),\r\n (isSelected && (\r\n \r\n \r\n \r\n )) ||\r\n null\r\n ],\r\n id: unit.unitId,\r\n key: unit.unitId,\r\n label: unit.unitName\r\n };\r\n};\r\n\r\n// 0 - None, 1- Empty, 2- PartiallyFilled, 3 - Completed, 4 - Inactive\r\nconst getTags = statuses => {\r\n if (!statuses) {\r\n return null;\r\n }\r\n\r\n return statuses.map((status, index) => {\r\n let intent = Intent.NONE;\r\n let icon = null;\r\n\r\n if (status.type <= 0) {\r\n return null;\r\n }\r\n\r\n switch (status.type) {\r\n case 1:\r\n icon = 'small-cross';\r\n intent = Intent.DANGER;\r\n break;\r\n case 2:\r\n icon = 'info-sign';\r\n intent = Intent.WARNING;\r\n break;\r\n case 3:\r\n icon = 'small-tick';\r\n intent = Intent.SUCCESS;\r\n break;\r\n }\r\n return (\r\n \r\n {status.text}\r\n \r\n );\r\n });\r\n};\r\n","import React from 'react';\r\nimport * as Yup from 'yup';\r\nimport { RaisedButton, GhostButton } from '@hobs/components/Buttons';\r\nimport { Formik, Field, Form } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport { withTranslation } from 'react-i18next/src/index';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Input from '@hobs/components/Input';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport DateInput from '@hobs/components/DateInput';\r\nimport Switch from '@hobs/components/Switch';\r\nimport DropDown from '@hobs/components/Dropdown';\r\nimport { format } from '@hobs/utils/formatWithTimeZone';\r\nimport { dateToInitialMonth } from '@hobs/utils/dateToInitialMonth'\r\nimport { DATE_FORMAT } from '@hobs/utils/constants';\r\nimport Styles from './SorForm.module.scss';\r\n\r\nconst SorForm = props => {\r\n const { t, disabled } = props;\r\n\r\n function removeNull(data) {\r\n for (const key in data) {\r\n if (data.hasOwnProperty(key)) {\r\n if (null === data[key]) data[key] = '';\r\n }\r\n }\r\n return data;\r\n }\r\n\r\n const sorUnitSchema = Yup.object().shape({\r\n email: Yup.string().email(t('Invalid email format'))\r\n });\r\n\r\n const initialValues = Object.assign(\r\n {},\r\n {\r\n creationDate: '',\r\n isActive: false,\r\n userId: '',\r\n email: '',\r\n phone: '',\r\n likelyFrom: '',\r\n likelyTo: ''\r\n },\r\n props.unit\r\n );\r\n\r\n return (\r\n \r\n {({ setFieldValue, values, isSubmitting }) => (\r\n
\r\n
\r\n \r\n {t('Status:')}\r\n \r\n \r\n {values.isActive ? t('Active') : t('Inactive')}\r\n \r\n
\r\n
\r\n
\r\n {t('Responsible person')}\r\n {\r\n setFieldValue('userId', e.target.value);\r\n const person = props.responsiblePerson.find(\r\n p => p.userId === e.target.value\r\n );\r\n if (person && person.email) {\r\n setFieldValue('email', person.email);\r\n }\r\n }}\r\n disabled={disabled}\r\n >\r\n \r\n {props.responsiblePerson.map(person => (\r\n \r\n ))}\r\n \r\n\r\n \r\n {t('Email')}\r\n \r\n \r\n {t('Tel.')}\r\n \r\n
\r\n
\r\n {t('Initiation details')}\r\n
\r\n {t('Date of creation')}\r\n \r\n {values.creationDate &&\r\n format(values.creationDate, DATE_FORMAT)}\r\n  \r\n \r\n
\r\n \r\n {t('Likely from')}\r\n \r\n \r\n {t('Likely to')}\r\n \r\n
\r\n
\r\n
\r\n {!disabled && (\r\n <>\r\n \r\n {t('Save')}\r\n \r\n {values.unitId && (\r\n }\r\n onClick={props.removeUnit}\r\n >\r\n {t('Remove from exercise')}\r\n \r\n )}\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n \r\n );\r\n};\r\nSorForm.propTypes = {\r\n t: PropTypes.func,\r\n unit: PropTypes.object,\r\n updateUnit: PropTypes.func,\r\n removeUnit: PropTypes.func,\r\n responsiblePerson: PropTypes.arrayOf(PropTypes.object),\r\n disabled: PropTypes.bool\r\n};\r\n\r\nexport default withTranslation()(SorForm);\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport PropTypes from 'prop-types';\r\nimport { Tree, Overlay } from '@blueprintjs/core';\r\nimport { withTranslation } from 'react-i18next/src/index';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { H2 } from '@hobs/components/Headings';\r\nimport Toast from '@hobs/components/Toast';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Confirm from '@hobs/components/Confirm';\r\nimport {\r\n RaisedButton,\r\n SquareButton,\r\n SquareGhostButton\r\n} from '@hobs/components/Buttons';\r\nimport {\r\n getSorUnits,\r\n getSorUnit,\r\n addElementToExercise,\r\n updateUnit,\r\n resetSorUnit,\r\n getUnitStaticData,\r\n removeUnit\r\n} from '../../../actions/sor';\r\n\r\nimport UnitDialog from '../../Units/UnitDialog';\r\nimport { buildTree, getUnitObject } from '../utils/tree';\r\n\r\nimport SorForm from './SorForm';\r\nimport Styles from './SorUnits.module.scss';\r\n\r\nconst DEFAULT_FILTER = 'Exercise';\r\n\r\nclass SorUnits extends React.PureComponent {\r\n state = {\r\n selected: null,\r\n filter: DEFAULT_FILTER,\r\n addElementToExercise: null,\r\n hasUnits: true,\r\n isLoading: true,\r\n addElementDisabled: false\r\n };\r\n\r\n componentDidMount() {\r\n const { getSorUnits } = this.props;\r\n\r\n getSorUnits('All').then(() => {\r\n const { units } = this.props;\r\n\r\n this.setState({\r\n hasUnits: units.length > 0\r\n });\r\n\r\n this.fetchUnits(this.state.filter);\r\n });\r\n }\r\n\r\n fetchUnits = filter => {\r\n const newState = {\r\n filter: filter\r\n };\r\n if (filter !== this.state.filter && !this.props.unit) {\r\n Object.assign(newState, {\r\n selected: null,\r\n addElementToExercise: null\r\n });\r\n }\r\n this.props.getSorUnits(filter).then(() => {\r\n const { units } = this.props;\r\n\r\n if (!units.length) {\r\n Object.assign(newState, {\r\n selected: null,\r\n addElementToExercise: null\r\n });\r\n }\r\n\r\n this.setState(newState);\r\n\r\n if (\r\n units.length &&\r\n !units.find(unit => unit.unitId === this.state.selected)\r\n ) {\r\n this.selectUnit(units[0]);\r\n }\r\n });\r\n };\r\n\r\n addElementToExercise = () => {\r\n const { addElementToExercise, t, getSorUnit, getUnitStaticData } = this.props;\r\n\r\n this.setState({\r\n addElementDisabled: true\r\n });\r\n\r\n addElementToExercise(this.state.addElementToExercise).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Unit information updated successfully'));\r\n this.fetchUnits(this.state.filter);\r\n getSorUnit(this.state.addElementToExercise);\r\n getUnitStaticData(this.state.addElementToExercise).then(() => {\r\n this.setState({\r\n addElementToExercise: null,\r\n addElementDisabled: false\r\n });\r\n });\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n this.setState({\r\n addElementDisabled: false\r\n });\r\n } else {\r\n Toast.warning(t('Cannot update Unit information'));\r\n this.setState({\r\n addElementDisabled: false\r\n });\r\n }\r\n });\r\n };\r\n\r\n selectUnit = unit => {\r\n const newState = {\r\n selected: unit.unitId,\r\n addElementToExercise: null,\r\n isLoading: false\r\n };\r\n\r\n if (unit.isCreated) {\r\n this.props.getSorUnit(unit.unitId);\r\n this.props.getUnitStaticData(unit.unitId);\r\n } else {\r\n this.props.resetSorUnit();\r\n Object.assign(newState, {\r\n addElementToExercise: unit.unitId\r\n });\r\n }\r\n\r\n this.setState(newState);\r\n };\r\n\r\n handleNodeClick = unit => {\r\n this.selectUnit(unit);\r\n };\r\n\r\n updateUnit = (values, { setSubmitting }) => {\r\n const { updateUnit, t } = this.props;\r\n\r\n const data = {\r\n ...values,\r\n likelyFrom: values.likelyFrom,\r\n likelyTo: values.likelyTo\r\n };\r\n\r\n updateUnit(data).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Unit information updated successfully'));\r\n this.fetchUnits(this.state.filter);\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot update Unit information'));\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n removeUnit = () => {\r\n const { removeUnit, t } = this.props;\r\n Confirm(\r\n this.props.t('Remove from exercise'),\r\n this.props.t(\r\n 'Are you sure you want to remove this unit from the Exercise?'\r\n ),\r\n () => {\r\n removeUnit(this.state.selected).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Unit information updated successfully'));\r\n this.setState({\r\n addElementToExercise: this.state.selected\r\n });\r\n this.fetchUnits(this.state.filter);\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot update Unit information'));\r\n }\r\n });\r\n }\r\n );\r\n };\r\n\r\n getFilterButtons = () => {\r\n const ButtonAllUnits =\r\n this.state.filter === DEFAULT_FILTER ? SquareGhostButton : SquareButton;\r\n const ButtonUATOE =\r\n this.state.filter === DEFAULT_FILTER ? SquareButton : SquareGhostButton;\r\n\r\n return (\r\n <>\r\n this.fetchUnits('All')}>\r\n {this.props.t('All units')}\r\n \r\n this.fetchUnits('Exercise')}>\r\n {this.props.t('Units added to exercise')}\r\n \r\n \r\n );\r\n };\r\n\r\n getUnitCreatePathName() {\r\n return `${this.props.location.pathname.replace('/unit', '')}/unit`;\r\n }\r\n\r\n getUnitsForUnitDialog = units => {\r\n if (!Array.isArray(units)) {\r\n return [];\r\n }\r\n\r\n return units.map(unit => {\r\n return {\r\n title: unit.unitName,\r\n ...unit,\r\n units: this.getUnitsForUnitDialog(unit.units)\r\n };\r\n });\r\n };\r\n\r\n canAddUnitToExercise = unit => {\r\n if (!unit.parentUnit) {\r\n return true;\r\n }\r\n\r\n if (unit.parentUnit.statuses) {\r\n const status = unit.parentUnit.statuses[0].type;\r\n return status !== 0;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n onUnitCreate = unit => {\r\n this.setState({\r\n hasUnits: true\r\n });\r\n\r\n if (this.canAddUnitToExercise(unit)) {\r\n this.props.addElementToExercise(unit.unitId).then(response => {\r\n if (response.success) {\r\n this.fetchUnits(this.state.filter);\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n }\r\n });\r\n } else {\r\n this.fetchUnits(this.state.filter);\r\n }\r\n };\r\n\r\n sortUnits(units) {\r\n if (!Array.isArray(units)) {\r\n return [];\r\n }\r\n\r\n const sortedUnits = units.sort((a, b) =>\r\n a.unitName.toLowerCase() > b.unitName.toLowerCase()\r\n ? 1\r\n : a.unitName.toLowerCase() < b.unitName.toLowerCase()\r\n ? -1\r\n : 0\r\n );\r\n\r\n return sortedUnits.map(unit => {\r\n return {\r\n ...unit,\r\n units: this.sortUnits(unit.units)\r\n };\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n t,\r\n user,\r\n unit,\r\n units,\r\n responsiblePerson,\r\n disabled,\r\n canCreateUnit\r\n } = this.props;\r\n const unitsTree = buildTree(\r\n getUnitObject(this.state.selected),\r\n this.sortUnits(units)\r\n );\r\n const { hasUnits, isLoading, addElementDisabled } = this.state;\r\n\r\n return (\r\n
\r\n {user && canCreateUnit && (\r\n \r\n )}\r\n {units.length === 0 && canCreateUnit && !hasUnits && (\r\n
\r\n
\r\n {t('There are no elements in the list.')}\r\n
\r\n }\r\n to={this.getUnitCreatePathName()}\r\n >\r\n {t('Add new element')}\r\n \r\n
\r\n )}\r\n {(units.length !== 0 || !canCreateUnit || hasUnits) && (\r\n <>\r\n
\r\n
\r\n {this.getFilterButtons()}\r\n {canCreateUnit && (\r\n }\r\n to={this.getUnitCreatePathName()}\r\n >\r\n {t('Add new')}\r\n \r\n )}\r\n
\r\n
\r\n {unitsTree.length > 0 && !isLoading && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n

{t('Sending Nation unit information')}

\r\n {(unit || this.state.addElementToExercise) && !isLoading && (\r\n
\r\n \r\n {!disabled && (\r\n \r\n }\r\n onClick={this.addElementToExercise}\r\n disabled={addElementDisabled}\r\n >\r\n {t('Add element to exercise')}\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\nSorUnits.propTypes = {\r\n t: PropTypes.func,\r\n location: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n units: PropTypes.arrayOf(PropTypes.object),\r\n unit: PropTypes.object,\r\n responsiblePerson: PropTypes.arrayOf(PropTypes.object),\r\n getSorUnits: PropTypes.func,\r\n getSorUnit: PropTypes.func,\r\n addElementToExercise: PropTypes.func,\r\n updateUnit: PropTypes.func,\r\n resetSorUnit: PropTypes.func,\r\n getUnitStaticData: PropTypes.func,\r\n removeUnit: PropTypes.func,\r\n user: PropTypes.object,\r\n disabled: PropTypes.bool,\r\n canCreateUnit: PropTypes.bool\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n units: state.sor.units,\r\n unit: state.sor.unit,\r\n responsiblePerson: state.sor.responsiblePerson,\r\n user: state.auth.user\r\n };\r\n};\r\nconst mapDispatchToProps = {\r\n getSorUnits,\r\n getSorUnit,\r\n addElementToExercise,\r\n updateUnit,\r\n resetSorUnit,\r\n getUnitStaticData,\r\n removeUnit\r\n};\r\n\r\nexport default withRouter(\r\n connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n )(withTranslation()(SorUnits))\r\n);\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\n\r\nimport {\r\n list,\r\n CREATE,\r\n} from '@hobs/constants/activity';\r\nimport { actionCreator } from '@hobs/actions/utils/utils';\r\n\r\nexport function getActivities() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('StatementOfRequirements/Activities')\r\n .then(response => {\r\n if (response) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: list.REQUEST };\r\n }\r\n function success(annexes) {\r\n return { type: list.SUCCESS, annexes };\r\n }\r\n function failure(error) {\r\n return { type: list.FAILURE, error };\r\n }\r\n}\r\n\r\nexport const createActivity = body =>\r\n actionCreator('StatementOfRequirements/Activities', CREATE, {\r\n body: body,\r\n method: 'POST'\r\n });\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withTranslation } from 'react-i18next/src';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport * as Yup from 'yup';\r\nimport Switch from '@hobs/components/Switch';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport Dialog from '@hobs/components/Dialog';\r\nimport Toast from '@hobs/components/Toast';\r\nimport { Formik, Form, Field } from 'formik';\r\nimport Input from '@hobs/components/Input';\r\nimport { RaisedButton } from '@hobs/components/Buttons';\r\nimport Alert from '@hobs/components/Alert';\r\n\r\nimport {\r\n updateActivity,\r\n clearActivity,\r\n getActivity\r\n} from '@hobs/actions/activities';\r\nimport {\r\n createActivity,\r\n} from '../../../actions/activities';\r\n\r\nimport './ActivityDialog.scss';\r\n\r\nconst defaultState = {\r\n error: null\r\n};\r\n\r\nclass ActivityDialog extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = defaultState;\r\n\r\n const { t } = props;\r\n this.activitySchema = Yup.object().shape({\r\n name: Yup.string()\r\n .max(50, t('Name cannot be longer than 50 symbols'))\r\n .trim('Incorrect input').required(t('Name is required')),\r\n description: Yup.string()\r\n .max(256, t('Description cannot be longer than 256 symbols'))\r\n .nullable()\r\n });\r\n }\r\n\r\n isDialogOpen() {\r\n return this.props.match.params.action === 'activity';\r\n }\r\n\r\n getSorPathName() {\r\n const deleteIndex = this.props.location.pathname.indexOf('/activity');\r\n return this.props.location.pathname.substring(0, deleteIndex);\r\n }\r\n\r\n createActivity = (values, { setErrors, setSubmitting }) => {\r\n const { t } = this.props;\r\n\r\n const body = {\r\n ...values,\r\n };\r\n\r\n this.props.createActivity(body).then(response => {\r\n if (response.success) {\r\n this.onDialogClose();\r\n\r\n Toast.success(t('Activity created successfully'));\r\n } else if (response.payload && response.payload.details) {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [error.target]: error.message[0]\r\n };\r\n }, {});\r\n\r\n setErrors(errors);\r\n } else if (response.payload) {\r\n this.setError(response.payload.message);\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n updateActivity = (values, { setErrors, setSubmitting }) => {\r\n const { t } = this.props;\r\n\r\n const body = {\r\n ...values\r\n };\r\n\r\n this.props.updateActivity(values.activityId, body).then(response => {\r\n if (response.success) {\r\n this.onDialogClose();\r\n Toast.success(t('Activity updated successfully'));\r\n if(response.payload.isAssigned){\r\n Toast.info(t('Please note that this activity has already been selected for a service request. The new activity name will not apply to already existing service requests'));\r\n }\r\n } else if (response.payload && response.payload.details) {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [error.target]: error.message[0]\r\n };\r\n }, {});\r\n\r\n setErrors(errors);\r\n } else if (response.payload) {\r\n this.setError(response.payload.message);\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n onDialogClose = () => {\r\n const { reloadActivities, history } = this.props;\r\n\r\n history.push(this.getSorPathName());\r\n if (reloadActivities) {\r\n reloadActivities();\r\n }\r\n };\r\n\r\n onDialogClosed = () => {\r\n const { clearActivity } = this.props;\r\n\r\n clearActivity();\r\n this.resetState();\r\n };\r\n\r\n onDialogOpening = async () => {\r\n const activityId = this.props.match.params.guid;\r\n if (activityId) {\r\n this.props.getActivity(activityId);\r\n }\r\n };\r\n\r\n setError(message) {\r\n this.setState({ error: message });\r\n }\r\n\r\n resetState() {\r\n this.setState(defaultState);\r\n }\r\n\r\n isEdit() {\r\n const { match, activity } = this.props;\r\n return match.params.guid || activity;\r\n }\r\n\r\n getInitialActivityValues() {\r\n const { activity, isFirstActivity } = this.props;\r\n if (activity) {\r\n return {\r\n activityId: activity.activityId,\r\n name: activity.name,\r\n description: activity.description,\r\n isDefault: activity.isDefault\r\n };\r\n } else {\r\n if(isFirstActivity){\r\n return {\r\n name: '',\r\n description: '',\r\n isDefault: true\r\n };\r\n }\r\n return {\r\n name: '',\r\n description: '',\r\n isDefault: false\r\n };\r\n }\r\n }\r\n\r\n render() {\r\n const { t, activity } = this.props;\r\n const { error } = this.state;\r\n return (\r\n \r\n \r\n {({ setFieldValue, isSubmitting, values }) => (\r\n
\r\n {error && {error}}\r\n
\r\n \r\n {t('Name')}\r\n \r\n \r\n {t('Description')}\r\n \r\n
\r\n {t('Default Activity')}:\r\n \r\n
\r\n
\r\n \r\n {t('Save')}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nActivityDialog.propTypes = {\r\n t: PropTypes.func,\r\n location: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n reloadActivities: PropTypes.func,\r\n createActivity: PropTypes.func,\r\n getActivity: PropTypes.func,\r\n updateActivity: PropTypes.func,\r\n deleteActivitynex: PropTypes.func,\r\n clearActivity: PropTypes.func,\r\n activity: PropTypes.object,\r\n isFirstActivity: PropTypes.bool,\r\n};\r\n\r\nconst mapStateToProps = state => \r\n ({\r\n activity: state.activity.activity\r\n });\r\n\r\nconst mapDispatchToProps = {\r\n createActivity,\r\n getActivity,\r\n updateActivity,\r\n clearActivity\r\n};\r\n\r\nexport default withRouter(\r\n connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n )(withTranslation()(ActivityDialog))\r\n);\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\n\r\nimport {\r\n list,\r\n GET,\r\n CREATE,\r\n UPDATE,\r\n DELETE,\r\n CLEAR\r\n} from '@hobs/constants/activity';\r\nimport { actionCreator } from './utils/utils';\r\n\r\nexport function getActivities(sorId) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure(`StatementOfRequirements/${sorId}/Activities`)\r\n .then(response => {\r\n if (response) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: list.REQUEST };\r\n }\r\n function success(annexes) {\r\n return { type: list.SUCCESS, annexes };\r\n }\r\n function failure(error) {\r\n return { type: list.FAILURE, error };\r\n }\r\n}\r\n\r\nexport const getActivity = activityId =>\r\n actionCreator(`StatementOfRequirements/Activities/${activityId}`, GET);\r\n\r\nexport const createActivity = (body, sorId) =>\r\n actionCreator(`StatementOfRequirements/${sorId}/Activities`, CREATE, {\r\n body: body,\r\n method: 'POST'\r\n });\r\n\r\nexport const updateActivity = (activityId, body) =>\r\n actionCreator(`StatementOfRequirements/Activities/${activityId}`, UPDATE, {\r\n body: body,\r\n method: 'PUT'\r\n });\r\n\r\nexport const deleteActivity = activityId =>\r\n actionCreator(`StatementOfRequirements/Activities/${activityId}`, DELETE, {\r\n method: 'DELETE'\r\n });\r\n\r\nexport function clearActivity() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR.SUCCESS });\r\n };\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport ShortId from 'shortid';\r\nimport deepcopy from 'deepcopy';\r\nimport GridLoader from '@hobs/components/Grid/GridLoader';\r\nimport Columns from '@hobs/components/Grid/Columns';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { RaisedButton, GhostButton } from '@hobs/components/Buttons';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Confirm from '@hobs/components/Confirm';\r\nimport Toast from '@hobs/components/Toast';\r\nimport Switch from '@hobs/components/Switch';\r\nimport { H1 } from '@hobs/components/Headings';\r\nimport { Grid } from '@progress/kendo-react-grid';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport {\r\n withDataStateLocalOverrides,\r\n withGridLocalOverrides,\r\n onUserResetSettings\r\n} from '@hobs/utils/grid/overrides';\r\nimport { queryOData, resetOData } from '@hobs/actions/odata';\r\nimport { PAGE_SIZES } from '@hobs/utils/constants';\r\nimport { deleteActivity } from '@hobs/actions/activities';\r\nimport ActivityDialog from './ActivityDialog';\r\n\r\nimport './Activities.scss';\r\n\r\nclass Activities extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.grid = React.createRef();\r\n\r\n this.defaultGridColumns = this.getDefaultColumns();\r\n\r\n this.defaultDataState = {\r\n take: 5,\r\n skip: 0,\r\n sort: [{ field: 'Name', dir: 'asc' }]\r\n };\r\n\r\n const defaultState = {\r\n dataState: withDataStateLocalOverrides(\r\n deepcopy(this.defaultDataState),\r\n this.LSdataStateName\r\n ),\r\n gridKey: ShortId.generate(),\r\n customFilters: {},\r\n columns: withGridLocalOverrides(\r\n deepcopy(this.defaultGridColumns),\r\n this.LSGridPropsName\r\n ),\r\n openDialog: false,\r\n selectedRows: {},\r\n isAllSelected: false,\r\n previousWindowScrollOffset: null\r\n };\r\n\r\n this.state = {\r\n ...defaultState\r\n };\r\n }\r\n\r\n\r\n LSdataStateName = 'ActivitiesSN.dataState-20210217';\r\n LSGridPropsName = 'ActivitiesSN.grid.props-20210217'; \r\n\r\n onUserSaveSettings = () => {\r\n localStorage.setItem(this.LSdataStateName, JSON.stringify(this.state.dataState));\r\n localStorage.setItem(\r\n this.LSGridPropsName,\r\n JSON.stringify({\r\n columns: this.grid.current.columns\r\n })\r\n );\r\n };\r\n\r\n onUserResetSettings = onUserResetSettings(\r\n this.LSdataStateName,\r\n this.LSGridPropsName,\r\n null,\r\n () => {\r\n const columns = this.getDefaultColumns();\r\n\r\n this.setState(\r\n {\r\n gridKey: ShortId.generate(),\r\n columns,\r\n dataState: this.defaultDataState\r\n },\r\n () => {\r\n this.loadODataQuery();\r\n }\r\n );\r\n }\r\n );\r\n\r\n componentDidMount() {\r\n this.loadODataQuery();\r\n }\r\n\r\n onRemove(activityId) {\r\n const { t, deleteActivity } = this.props;\r\n Confirm(\r\n t('Delete activity'),\r\n t('Are you sure you want to delete this activity?'),\r\n () => {\r\n deleteActivity(activityId).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Activity was successfully deleted'));\r\n this.loadODataQuery();\r\n } else {\r\n Toast.warning(response.payload.message);\r\n }\r\n });\r\n }\r\n );\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetOData();\r\n }\r\n\r\n dataStateChange = e => {\r\n this.setState(\r\n {\r\n dataState: e.dataState\r\n },\r\n () => {\r\n this.loadODataQuery();\r\n }\r\n );\r\n };\r\n\r\n loadODataQuery = () => {\r\n this.props.queryOData(\r\n 'ActivityQuery',\r\n this.state.dataState\r\n );\r\n };\r\n\r\n getCreatePathName() {\r\n return `${this.props.location.pathname.replace('/create', '')}/create`;\r\n }\r\n\r\n getBoolSwitch = value => {\r\n const { t } = this.props;\r\n return (\r\n \r\n
\r\n \r\n {value ? t('Yes') : t('No')}\r\n
\r\n \r\n );\r\n };\r\n\r\n getDefaultColumns() {\r\n const { t, disabled } = this.props;\r\n\r\n return {\r\n Name: {\r\n title: t('Name'),\r\n default: true,\r\n columnMenu: true,\r\n visible: true\r\n },\r\n Description: {\r\n title: t('Description'),\r\n default: true,\r\n columnMenu: true,\r\n visible: true\r\n },\r\n IsDefault: {\r\n title: t('Default activity'),\r\n width: '150px',\r\n default: false,\r\n visible: true,\r\n cell: ({ dataItem }) => this.getBoolSwitch(dataItem.IsDefault)\r\n },\r\n controls: {\r\n title: ' ',\r\n cell: this.controls,\r\n headerCell: () => <>,\r\n default: true,\r\n visible: !disabled,\r\n resizable: false,\r\n width: '200px',\r\n sortable: false\r\n }\r\n };\r\n }\r\n\r\n controls = props => {\r\n const { t, disabled } = this.props;\r\n if (!disabled){\r\n return (\r\n \r\n
\r\n }\r\n to={this.getActivityPathName(props.dataItem.ActivityId)}\r\n >\r\n {t('Edit')}\r\n \r\n }\r\n onClick={() => {\r\n this.onRemove(props.dataItem.ActivityId);\r\n }}\r\n >\r\n {t('Delete')}\r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n getActivityPathName(activityId) {\r\n if (activityId) {\r\n return `${this.props.location.pathname.replace(\r\n '/activity',\r\n ''\r\n )}/activity/${activityId}`;\r\n }\r\n\r\n return `${this.props.location.pathname.replace('/activity', '')}/activity`;\r\n }\r\n\r\n render() {\r\n const { t, isLoading, match, disabled } = this.props;\r\n const { dataState } = this.state;\r\n\r\n return (\r\n
\r\n \r\n

{t('Activity list')}

\r\n
\r\n
\r\n
\r\n }\r\n to={this.getActivityPathName()}\r\n disabled={disabled}\r\n >\r\n {t('Add new Activity')}\r\n \r\n
\r\n
\r\n {\r\n this.setState(\r\n {\r\n dataState: {\r\n ...dataState,\r\n sort: event.sort\r\n }\r\n },\r\n () => {\r\n this.loadODataQuery();\r\n }\r\n );\r\n }}\r\n >\r\n {Columns({ \r\n columns: this.state.columns,\r\n dataState,\r\n onSave: this.onUserSaveSettings,\r\n onReset: this.onUserResetSettings, })}\r\n \r\n {isLoading && }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nActivities.propTypes = {\r\n isLoading: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n oData: PropTypes.object,\r\n queryOData: PropTypes.func,\r\n resetOData: PropTypes.func,\r\n loadODataQuery: PropTypes.func,\r\n deleteActivity: PropTypes.func,\r\n match: PropTypes.object,\r\n location: PropTypes.object,\r\n activityGrid: PropTypes.object,\r\n t: PropTypes.func\r\n};\r\n\r\nconst oDataLoading = createLoadingSelector(['OData']);\r\nconst mapStateToProps = state => ({\r\n isLoading: oDataLoading(state),\r\n oData: state.odata\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n queryOData,\r\n resetOData,\r\n deleteActivity\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(Activities));\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport PropTypes from 'prop-types';\r\nimport { H2 } from '@hobs/components/Headings';\r\nimport ObjectPath from 'object-path';\r\nimport ShortId from 'shortid';\r\nimport { Formik, Form, Field } from 'formik';\r\nimport { phoneRegex } from '@hobs/validations';\r\nimport { withTranslation } from 'react-i18next/src/index';\r\nimport * as Yup from 'yup';\r\nimport Input from '@hobs/components/Input';\r\nimport Dropdown from '@hobs/components/Dropdown';\r\nimport DropZone from '@hobs/components/DropZone';\r\nimport Toast from '@hobs/components/Toast';\r\nimport { RaisedButton } from '@hobs/components/Buttons';\r\nimport {\r\n uploadAttachments,\r\n setAttachments,\r\n deleteAttachment,\r\n clearAttachments\r\n} from '@hobs/actions/attachment';\r\nimport {\r\n getSorFinanceData,\r\n updateSorFinanceData,\r\n getSorFinanceDataForSubmit,\r\n clearSorFinanceData\r\n} from '../../../actions/sor';\r\nimport Activities from '../../Activities/Activities'\r\nimport Styles from './SorFinance.module.scss';\r\n\r\nclass SorFinance extends React.PureComponent {\r\n state = {\r\n sorFinance: null,\r\n isUploadingAttachment: false\r\n };\r\n\r\n async componentDidMount() {\r\n const { disabled } = this.props;\r\n if (!disabled) {\r\n await this.props.getSorFinanceDataForSubmit();\r\n }\r\n await this.props.getSorFinanceData(this.props.sorId).then(response => {\r\n this.props.setAttachments(\r\n response.data.attachments\r\n );\r\n });\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.clearSorFinanceData();\r\n }\r\n\r\n constructor(props) {\r\n super(props);\r\n const { t } = this.props;\r\n\r\n this.financeItemSchema = Yup.object().shape({\r\n paymentMadeByName: Yup.string()\r\n .required(t('Name is required'))\r\n .max(100, t('Name must be at most 100 characters')),\r\n paymentMadeByAddress1: Yup.string()\r\n .required(t('Address 1 is required'))\r\n .max(100, t('Address 1 must be at most 100 characters')),\r\n paymentMadeByAddress2: Yup.string()\r\n .required(t('Address 2 is required'))\r\n .max(100, t('Address 2 must be at most 100 characters')),\r\n paymentMadeByAddress3: Yup.string().max(\r\n 100,\r\n t('Address 3 must be at most 100 characters')\r\n ),\r\n paymentMadeByCountry: Yup.string()\r\n .required(t('Country is required'))\r\n .max(100, t('Country must be at most 100 characters')),\r\n financePocName: Yup.string()\r\n .required(t('Name is required'))\r\n .max(100, t('Name must be at most 100 characters')),\r\n financePocEmail: Yup.string()\r\n .email(t('invalid email format'))\r\n .max(100, t('Email must be at most 100 characters')),\r\n financePocPhone: Yup.string()\r\n .matches(phoneRegex, {\r\n message: t('Please enter a valid phone number'),\r\n excludeEmptyString: true\r\n })\r\n .required(t('Phone is required'))\r\n .max(100, t('Phone must be at most 100 characters'))\r\n });\r\n }\r\n\r\n handleSubmit = (values, { setSubmitting, setErrors }) => {\r\n const { t, updateSorFinanceData } = this.props;\r\n const body = {\r\n ...values,\r\n attachments: [...this.props.attachments]\r\n };\r\n updateSorFinanceData(body).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Sending Nation information updated successfully'));\r\n } else if (response.payload && response.payload.details) {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [error.target]: error.message[0]\r\n };\r\n }, {});\r\n\r\n setErrors(errors);\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot update Sending Nation information'));\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n handleFileUpload = value => {\r\n const { t } = this.props;\r\n this.setState({isUploadingAttachment: true});\r\n\r\n if (value) {\r\n this.props.uploadAttachments({ attachments: value }).then(response => {\r\n if (response.success === true) {\r\n Toast.success(t('File successfully added. Please click save to commit this change'));\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot add file'));\r\n }\r\n this.setState({isUploadingAttachment: false})\r\n });\r\n }\r\n };\r\n\r\n handleFileRemove = value => {\r\n const { t } = this.props;\r\n this.props.deleteAttachment(value);\r\n Toast.success(t('File removed successfully. Please click save to commit this change'));\r\n };\r\n\r\n getUsersWhoCanConfirmSorList = () => {\r\n const { t } = this.props;\r\n const sorUserList = this.props.whoCanConfirmFsor.usersWhoCanConfirmFsor;\r\n if (sorUserList && sorUserList.length > 0) {\r\n const placeholder = (\r\n \r\n );\r\n\r\n const options = sorUserList.map(user => {\r\n return (\r\n \r\n );\r\n });\r\n\r\n return [placeholder, options];\r\n }\r\n return (\r\n \r\n );\r\n };\r\n\r\n getUserWhoCanConfirmSor = () => {\r\n const sorUser = ObjectPath.get(this.props.finance, 'user');\r\n if (sorUser) {\r\n return sorUser.userId;\r\n }\r\n };\r\n\r\n canRenderForm = () => {\r\n return Object.keys(this.props.finance).length > 0;\r\n };\r\n\r\n render() {\r\n const { finance, t, disabled, location, match, history } = this.props;\r\n const initialFormValues = {\r\n paymentMadeByName: finance.paymentToBeMadeByName\r\n ? finance.paymentToBeMadeByName\r\n : '',\r\n paymentMadeByAddress1: finance.address1 ? finance.address1 : '',\r\n paymentMadeByAddress2: finance.address2 ? finance.address2 : '',\r\n paymentMadeByAddress3: finance.address3 ? finance.address3 : '',\r\n paymentMadeByCountry: finance.country ? finance.country : '',\r\n financePocName: finance.pocName ? finance.pocName : '',\r\n financePocEmail: finance.email ? finance.email : '',\r\n financePocPhone: finance.phone ? finance.phone : '',\r\n whoCanConfirmFsorId: this.getUserWhoCanConfirmSor(),\r\n whoCanConfirmFsorUser: finance.user ? finance.user.username : ''\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

{t('Sending Nation information')}

\r\n
\r\n
\r\n
\r\n {!this.props.isLoading && (\r\n \r\n {({ isSubmitting }) => (\r\n
\r\n
\r\n
\r\n \r\n {t('Payment made by:')}\r\n \r\n \r\n {t('Name')}\r\n \r\n \r\n {t('Address 1')}\r\n \r\n \r\n {t('Address 2')}\r\n \r\n \r\n {t('Address 3')}\r\n \r\n \r\n {t('Country')}\r\n \r\n
\r\n
\r\n \r\n {t('Finance POC:')}\r\n \r\n \r\n {t('Name')}\r\n \r\n \r\n {t('Email')}\r\n \r\n \r\n {t('Phone')}\r\n \r\n
\r\n
\r\n \r\n {t('Responsible person:')}\r\n \r\n {!disabled && (\r\n \r\n {this.getUsersWhoCanConfirmSorList()}\r\n \r\n )}\r\n {disabled && (\r\n \r\n {t('Selected User')}\r\n \r\n )}\r\n
\r\n \r\n {t('Attachments:')}\r\n \r\n {\r\n this.handleFileUpload(files);\r\n }}\r\n onRemove={file => {\r\n this.handleFileRemove(file);\r\n }}\r\n disabled={disabled}\r\n />\r\n
\r\n
\r\n
\r\n {!disabled && (\r\n
\r\n \r\n {t('Save')}\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\nSorFinance.propTypes = {\r\n sorId: PropTypes.string,\r\n location: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n sorFinance: PropTypes.object,\r\n getSorFinanceData: PropTypes.func,\r\n finance: PropTypes.object,\r\n attachments: PropTypes.array,\r\n whoCanConfirmFsor: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\r\n updateSorFinanceData: PropTypes.func,\r\n getSorFinanceDataForSubmit: PropTypes.func,\r\n t: PropTypes.func,\r\n clearSorFinanceData: PropTypes.func,\r\n isLoading: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n uploadAttachments: PropTypes.func,\r\n setAttachments: PropTypes.func,\r\n deleteAttachment: PropTypes.func\r\n};\r\n\r\nconst financeDataLoading = createLoadingSelector([\r\n 'StatementOfRequirements/GetFinanceData'\r\n]);\r\n\r\nconst mapStateToProps = state => ({\r\n finance: state.sor.finance,\r\n whoCanConfirmFsor: state.sor.whoCanConfirmFsor,\r\n isLoading: financeDataLoading(state),\r\n attachments: state.attachment.attachments\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n getSorFinanceData,\r\n updateSorFinanceData,\r\n getSorFinanceDataForSubmit,\r\n clearSorFinanceData,\r\n uploadAttachments,\r\n setAttachments,\r\n deleteAttachment,\r\n clearAttachments\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(SorFinance));\r\n","import React from 'react';\r\nimport { H2 } from '@hobs/components/Headings';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next/src/index';\r\nimport { Formik, Form, Field, FieldArray } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport Input from '@hobs/components/Input';\r\nimport Checkbox from '@hobs/components/Checkbox';\r\nimport ObjectPath from 'object-path';\r\nimport Tooltip from '@hobs/components/Tooltip';\r\nimport Toast from '@hobs/components/Toast';\r\nimport * as Yup from 'yup';\r\nimport { DATE_FORMAT, MAX_INT32 } from '@hobs/utils/constants';\r\nimport { format } from '@hobs/utils/formatWithTimeZone';\r\nimport classnames from 'classnames';\r\nimport { RaisedButton } from '@hobs/components/Buttons';\r\nimport Quantity from '@hobs/components/Quantity';\r\nimport {\r\n getCorInformation,\r\n clearCorData,\r\n updateCorInformation\r\n} from '../../../actions/cor';\r\nimport Styles from './SorCor.module.scss';\r\n\r\nclass SorCor extends React.PureComponent {\r\n corDataCopy = {};\r\n\r\n state = {\r\n corData: {},\r\n total: null\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.locationQueryTimeout = null;\r\n const { t } = this.props;\r\n\r\n const VALIDATION = {\r\n quantity: Yup.number()\r\n .min(1, t('Number of PAX must be greater than 0'))\r\n .max(MAX_INT32, t('Number of PAX is too large'))\r\n .typeError(t('Invalid number'))\r\n .transform((value, originalValue) => {\r\n return originalValue === 0 || originalValue === '' ? null : value;\r\n })\r\n .nullable()\r\n .default(null),\r\n comments: Yup.string()\r\n .nullable()\r\n .max(256, t('Comment cannot be longer than 256 symbols')),\r\n number: Yup.number()\r\n .typeError(t('Invalid number'))\r\n .min(1, t('Must be greater than 0'))\r\n .max(MAX_INT32, t('Number is too large'))\r\n .transform((value, originalValue) => {\r\n return originalValue === 0 || originalValue === '' ? null : value;\r\n })\r\n .nullable()\r\n .default(null)\r\n };\r\n this.corItemSchema = Yup.object().shape({\r\n pax: Yup.array().of(\r\n Yup.object().shape({\r\n quantity: VALIDATION.quantity,\r\n comment: VALIDATION.comments,\r\n units: Yup.array().of(\r\n Yup.object().shape({\r\n quantity: VALIDATION.quantity,\r\n comment: VALIDATION.comments,\r\n units: Yup.array().of(\r\n Yup.object().shape({\r\n quantity: VALIDATION.quantity,\r\n comment: VALIDATION.comments\r\n })\r\n )\r\n })\r\n )\r\n })\r\n ),\r\n equipment: Yup.array().of(\r\n Yup.object().shape({\r\n vehicles: VALIDATION.number,\r\n tracks: VALIDATION.number,\r\n containers: VALIDATION.number,\r\n ships: VALIDATION.number,\r\n aircraft: VALIDATION.number,\r\n comments: VALIDATION.comments\r\n })\r\n )\r\n });\r\n }\r\n\r\n async componentDidMount() {\r\n await this.props.getCorInformation().then(response => {\r\n if (response && response.status === 200) {\r\n this.corDataCopy = {\r\n ...this.corDataCopy,\r\n ...response.payload\r\n };\r\n }\r\n });\r\n\r\n await this.setState({\r\n corData: {\r\n ...this.corDataCopy\r\n }\r\n });\r\n\r\n await this.setCorData();\r\n }\r\n\r\n setCorData = async () => {\r\n const { corData } = this.state;\r\n await this.setSubUnitLevelQuantity(corData.pax, 'pax');\r\n await this.setUnitLevelQuantity(corData.pax, 'pax');\r\n await this.getPaxTotalQuantity(corData.pax, 'pax');\r\n await this.getEquipmentQuantity(corData.equipment);\r\n };\r\n\r\n componentWillUnmount() {\r\n this.props.clearCorData();\r\n }\r\n\r\n canRenderForm = () => {\r\n return Object.keys(this.state.corData).length > 0;\r\n };\r\n\r\n handleSubmit = (values, { setSubmitting, setErrors }) => {\r\n const { t } = this.props;\r\n const body = this.state.corData;\r\n this.props.updateCorInformation(body).then(response => {\r\n if (response.success) {\r\n Toast.success(t('COR information updated successfully'));\r\n } else if (response.payload && response.payload.details) {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [error.target]: error.message[0]\r\n };\r\n }, {});\r\n\r\n setErrors(errors);\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot update COR information'));\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n getPaxTotalQuantity = (units = [], key) => {\r\n let total = 0;\r\n units.forEach((unit, index) => {\r\n total += Number(unit.quantity);\r\n unit.units &&\r\n this.getPaxTotalQuantity(unit.units, `${key}.${index}.quantity`);\r\n });\r\n\r\n this.setState({\r\n total: total\r\n });\r\n };\r\n\r\n getEquipmentQuantity = (units = []) => {\r\n let equipment = {\r\n vehicles: null,\r\n tracks: null,\r\n containers: null,\r\n ships: null,\r\n aircraft: null\r\n };\r\n\r\n const value = units.reduce((total, unit) => {\r\n return (equipment = {\r\n ...equipment,\r\n vehicles: Number(equipment.vehicles) + Number(unit.vehicles),\r\n tracks: Number(equipment.tracks) + Number(unit.tracks),\r\n containers: Number(equipment.containers) + Number(unit.containers),\r\n ships: Number(equipment.ships) + Number(unit.ships),\r\n aircraft: Number(equipment.aircraft) + Number(unit.aircraft)\r\n });\r\n }, {});\r\n\r\n this.setState({\r\n ...this.state,\r\n ...value\r\n });\r\n };\r\n\r\n calculateEquipment = ({ target }) => {\r\n ObjectPath.set(this.corDataCopy, target.name, target.value);\r\n this.setState({\r\n corData: {\r\n ...this.corDataCopy\r\n }\r\n });\r\n this.getEquipmentQuantity(this.state.corData.equipment);\r\n };\r\n\r\n renderEquipmentFields = (units = [], key) => {\r\n const { t, disabled } = this.props;\r\n return units.map((unit, index) => {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n {unit.unitName}\r\n \r\n {unit.likelyFrom && format(unit.likelyFrom, DATE_FORMAT)}\r\n {' - '}\r\n {unit.likelyTo && format(unit.likelyTo, DATE_FORMAT)}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n this.calculateEquipment(event);\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n this.calculateEquipment(event);\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n this.calculateEquipment(event);\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n this.calculateEquipment(event);\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n this.calculateEquipment(event);\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 calculatePaxFieldValue = (component = [], key, parentId) => {\r\n const value = component.reduce((total, unit) => {\r\n if (unit.parentUnitId === parentId) {\r\n return Number(total) + Number(unit.quantity);\r\n }\r\n }, null);\r\n\r\n if (value !== null) {\r\n ObjectPath.set(this.corDataCopy, key, value > 0 ? Number(value) : '');\r\n this.setState({\r\n corData: {\r\n ...this.corDataCopy\r\n }\r\n });\r\n }\r\n };\r\n\r\n setSubUnitLevelQuantity = (units = [], key) => {\r\n units.reduce((total, unit, index) => {\r\n if (unit.unitTypeId === 2 && unit.units.length > 0) {\r\n this.calculatePaxFieldValue(\r\n unit.units,\r\n `${key}.${index}.quantity`,\r\n unit.unitId\r\n );\r\n }\r\n unit.units.length > 0 &&\r\n this.setSubUnitLevelQuantity(unit.units, `${key}.${index}.units`);\r\n }, []);\r\n };\r\n\r\n setUnitLevelQuantity = (units = [], key) => {\r\n let total = null;\r\n let fieldName = null;\r\n units.forEach((unit, index) => {\r\n if (unit.unitTypeId === 2 && unit.unitTypeId !== 3) {\r\n total += Number(unit.quantity);\r\n fieldName = key;\r\n }\r\n unit.units &&\r\n this.setUnitLevelQuantity(unit.units, `${key}.${index}.quantity`);\r\n });\r\n\r\n if (total !== null && fieldName !== null && fieldName !== 'pax') {\r\n ObjectPath.set(\r\n this.corDataCopy,\r\n fieldName,\r\n total > 0 ? Number(total) : ''\r\n );\r\n\r\n this.setState({\r\n corData: {\r\n ...this.corDataCopy\r\n }\r\n });\r\n }\r\n };\r\n\r\n handleQuantityChange = ({ target }) => {\r\n ObjectPath.set(\r\n this.corDataCopy,\r\n target.name,\r\n parseFloat(target.value) ? parseFloat(target.value) : null\r\n );\r\n\r\n this.setState({\r\n corData: {\r\n ...this.corDataCopy\r\n }\r\n });\r\n\r\n this.setSubUnitLevelQuantity(this.state.corData.pax, 'pax');\r\n this.setUnitLevelQuantity(this.state.corData.pax, 'pax');\r\n this.getPaxTotalQuantity(this.state.corData.pax, 'pax');\r\n };\r\n\r\n handleCheckboxChange = ({ target }) => {\r\n ObjectPath.set(this.corDataCopy, target.name, target.checked);\r\n this.setState({\r\n corData: {\r\n ...this.corDataCopy\r\n }\r\n });\r\n };\r\n\r\n handleChange = ({ target }) => {\r\n ObjectPath.set(this.corDataCopy, target.name, target.value);\r\n this.setState({\r\n corData: {\r\n ...this.corDataCopy\r\n }\r\n });\r\n };\r\n\r\n paxFieldsComponent = (unit, key, index, errors, setFieldValue) => {\r\n const { t, disabled } = this.props;\r\n const isFormFieldsAvailable =\r\n !(unit.units && unit.units.length > 0) && !disabled;\r\n return (\r\n
\r\n
\r\n \r\n {unit.unitName}\r\n
\r\n \r\n {unit.likelyFrom && format(unit.likelyFrom, DATE_FORMAT)}\r\n {' - '}\r\n {unit.likelyTo && format(unit.likelyTo, DATE_FORMAT)}\r\n \r\n
\r\n
\r\n (\r\n
\r\n {\r\n this.handleQuantityChange(event);\r\n setFieldValue(event.target.name, event.target.value);\r\n }}\r\n error={\r\n Number(field.value) < 1 &&\r\n field.value !== null &&\r\n field.value !== '' &&\r\n isFormFieldsAvailable\r\n ? t('Number of PAX must be greater than 0')\r\n : field.value > MAX_INT32\r\n ? t('Number of PAX is too large')\r\n : null\r\n }\r\n value={ObjectPath.get(\r\n this.state.corData,\r\n `${key}.${index}.quantity`\r\n )}\r\n type=\"number\"\r\n disabled={!isFormFieldsAvailable}\r\n />\r\n
\r\n )}\r\n />\r\n\r\n {isFormFieldsAvailable && (\r\n \r\n )}\r\n {isFormFieldsAvailable && (\r\n \r\n )}\r\n {isFormFieldsAvailable && (\r\n (\r\n
\r\n 256\r\n ? t('Comment cannot be longer than 256 symbols')\r\n : null\r\n : null\r\n }\r\n onChange={this.handleChange}\r\n value={ObjectPath.get(\r\n this.state.corData,\r\n `${key}.${index}.comment`\r\n )}\r\n />\r\n
\r\n )}\r\n />\r\n )}\r\n
\r\n \r\n );\r\n };\r\n\r\n renderPaxFields = (units = [], key, errors, setFieldValue) => {\r\n return units.map((unit, index) => {\r\n if (key === 'pax') {\r\n return (\r\n
\r\n {this.paxFieldsComponent(unit, key, index, errors, setFieldValue)}\r\n {unit.units &&\r\n this.renderPaxFields(\r\n unit.units,\r\n `${key}.${index}.units`,\r\n errors,\r\n setFieldValue\r\n )}\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n {this.paxFieldsComponent(unit, key, index, errors, setFieldValue)}\r\n {unit.units &&\r\n this.renderPaxFields(\r\n unit.units,\r\n `${key}.${index}.units`,\r\n errors,\r\n setFieldValue\r\n )}\r\n \r\n );\r\n }\r\n });\r\n };\r\n\r\n sortUnits(units) {\r\n if (!Array.isArray(units)) {\r\n return [];\r\n }\r\n\r\n const sortedUnits = units.sort((a, b) =>\r\n a.unitName.toLowerCase() > b.unitName.toLowerCase()\r\n ? 1\r\n : a.unitName.toLowerCase() < b.unitName.toLowerCase()\r\n ? -1\r\n : 0\r\n );\r\n\r\n return sortedUnits.map(unit => {\r\n return {\r\n ...unit,\r\n units: this.sortUnits(unit.units)\r\n };\r\n });\r\n }\r\n\r\n render() {\r\n const { t, disabled } = this.props;\r\n const { corData } = this.state;\r\n return (\r\n <>\r\n {!this.props.isLoading && Object.keys(corData).length > 0 && (\r\n {\r\n return (\r\n
\r\n
\r\n
\r\n

{t('PAX')}

\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n {t('Element')}\r\n
\r\n
\r\n
\r\n
\r\n {t('Number of PAX')}\r\n
\r\n
\r\n {t('Accommodation')}{' '}\r\n \r\n
\r\n
\r\n {t('Meals')}{' '}\r\n \r\n
\r\n
\r\n {t('Comment')}{' '}\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n this.renderPaxFields(\r\n this.sortUnits(corData.pax),\r\n 'pax',\r\n errors,\r\n setFieldValue\r\n )\r\n }\r\n />\r\n\r\n \r\n
\r\n
\r\n
\r\n {t('Total')}\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

{t('Equipment')}

\r\n
\r\n\r\n {!this.props.isLoading && corData.equipment ? (\r\n \r\n \r\n
\r\n \r\n
\r\n {t('Element')}\r\n
\r\n
\r\n
\r\n
\r\n {t('Vehicles')}\r\n
\r\n
\r\n {t('Tracks')}\r\n
\r\n
\r\n {t('Containers')}\r\n
\r\n
\r\n {t('Ships')}\r\n
\r\n
\r\n {t('Aircraft')}\r\n
\r\n
\r\n {t('Comment')}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n this.renderEquipmentFields(\r\n this.sortUnits(corData.equipment),\r\n 'equipment',\r\n errors\r\n )\r\n }\r\n />\r\n\r\n \r\n
\r\n \r\n
\r\n {t('Total')}\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 ) : null}\r\n \r\n {!disabled && (\r\n
\r\n
\r\n \r\n {t('Save')}\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\nSorCor.propTypes = {\r\n sorId: PropTypes.string,\r\n getCorInformation: PropTypes.func,\r\n updateCorInformation: PropTypes.func,\r\n corData: PropTypes.object,\r\n clearCorData: PropTypes.func,\r\n t: PropTypes.func,\r\n query: PropTypes.array,\r\n data: PropTypes.array,\r\n isLoading: PropTypes.bool,\r\n disabled: PropTypes.bool\r\n};\r\n\r\nconst corDataLoading = createLoadingSelector([\r\n 'StatementOfRequirements/GetCor'\r\n]);\r\n\r\nconst mapStateToProps = state => ({\r\n corData: state.cor.cor,\r\n isLoading: corDataLoading(state)\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n getCorInformation,\r\n clearCorData,\r\n updateCorInformation\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(SorCor));\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport { CORDATA, CLEAR, UPDATE, EXPORTCOR } from '@hobs/constants/cor';\r\n\r\nexport function getCorInformation() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure(\r\n 'StatementOfRequirements/SendingNationCorUnitInformation'\r\n )\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, ...response };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CORDATA.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: CORDATA.SUCCESS, payload: response };\r\n }\r\n function failure(error) {\r\n return { type: CORDATA.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function updateCorInformation(values) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure(\r\n 'StatementOfRequirements/SendingNationCorUnitInformation',\r\n { body: values, method: 'PUT' }\r\n )\r\n .then(response => {\r\n if (response && response.status === 200) {\r\n dispatch(success());\r\n return { success: true, ...response };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: UPDATE.REQUEST };\r\n }\r\n function success() {\r\n return { type: UPDATE.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: UPDATE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function clearCorData() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR.SUCCESS });\r\n };\r\n}\r\n\r\nexport function exportCor() {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('ConceptOfRequirements/Export')\r\n .then(response => {\r\n if (response) {\r\n dispatch(success());\r\n return { success: true, blob: response };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: EXPORTCOR.REQUEST };\r\n }\r\n function success() {\r\n return { type: EXPORTCOR.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: EXPORTCOR.FAILURE, error };\r\n }\r\n}\r\n","import React from 'react';\r\nimport { H1 } from '@hobs/components/Headings';\r\nimport { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next/src/index';\r\nimport { withRouter } from 'react-router-dom';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\nimport { USER_ROLES } from '@hobs/utils/constants';\r\nimport PropTypes from 'prop-types';\r\nimport Tabs from '@hobs/components/Tabs';\r\nimport { getAssignedPartyUnits } from '../../actions/parties';\r\nimport SorUnits from './Units/SorUnits';\r\nimport SorFinance from './Units/SorFinance';\r\nimport SorCor from './Units/SorCor';\r\nimport './StatementOfRequirements.scss';\r\n\r\nclass StatementOfRequirements extends React.PureComponent {\r\n componentDidMount() {\r\n this.fetchAdminAssignedPartyUnits();\r\n }\r\n\r\n fetchAdminAssignedPartyUnits() {\r\n const { hasUserPermission } = this.props;\r\n\r\n if (hasUserPermission(USER_ROLES.ADMIN)) {\r\n this.props.getAssignedPartyUnits();\r\n }\r\n }\r\n\r\n hasUnitAssigned() {\r\n const { assignedPartyUnits } = this.props;\r\n return Array.isArray(assignedPartyUnits) && assignedPartyUnits.length > 0;\r\n }\r\n\r\n render() {\r\n const {\r\n t,\r\n sorId,\r\n hasUserPermission,\r\n location,\r\n match,\r\n history\r\n } = this.props;\r\n return (\r\n <>\r\n

{t('SOR requisites')}

\r\n \r\n \r\n }\r\n >\r\n {t('Units')}\r\n \r\n \r\n }\r\n >\r\n {t('COR')}\r\n \r\n \r\n }\r\n >\r\n {t('Finance')}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nStatementOfRequirements.propTypes = {\r\n sorId: PropTypes.string, // GUID\r\n t: PropTypes.func,\r\n hasUserPermission: PropTypes.func,\r\n location: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n assignedPartyUnits: PropTypes.array,\r\n getAssignedPartyUnits: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = (state, { match }) => {\r\n const sorId = match.params.sorId;\r\n return {\r\n sorId,\r\n assignedPartyUnits: state.parties.assignedPartyUnits\r\n };\r\n};\r\nconst mapDispatchToProps = {\r\n getAssignedPartyUnits\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(withRouter(WithRoles(StatementOfRequirements))));\r\n","import React, { PureComponent } from 'react';\r\nimport ShortId from 'shortid';\r\n\r\nconst ESC_ENTER = 27;\r\n\r\nfunction WithEscNavigation(Component) {\r\n return class EscNavigation extends PureComponent {\r\n state = {\r\n key: ShortId.generate(),\r\n inputValue: null,\r\n withQuickSearchFilter: {}\r\n };\r\n\r\n withEscNavigationCallback = (callback) => {\r\n this.setState({\r\n callback\r\n });\r\n };\r\n\r\n async componentDidMount() {\r\n window.addEventListener('keydown', this.escListener);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('keydown', this.escListener);\r\n }\r\n\r\n escListener = event => {\r\n const { callback } = this.state;\r\n\r\n var isEscape = false;\r\n if ('key' in event) {\r\n isEscape = event.key === 'Escape' || event.key === 'Esc';\r\n } else {\r\n isEscape = event.keyCode === ESC_ENTER;\r\n }\r\n if (isEscape) {\r\n callback();\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n };\r\n}\r\n\r\nexport default WithEscNavigation;\r\n","import {\r\n GET,\r\n FORSUBMIT,\r\n UPDATE,\r\n CLEAR,\r\n CREATE_CHANGE_REQUEST,\r\n CONFIRM_CHANGE,\r\n REJECT_CHANGE,\r\n ACCEPT_CHANGE_RESPONSE,\r\n REJECT_CHANGE_RESPONSE,\r\n CONFIRM,\r\n CONFIRM_REJECT,\r\n ACCEPT_RESPONSE,\r\n REJECT_RESPONSE,\r\n CALCULATE_BY_DAYS,\r\n CLEAR_COSTS,\r\n CREATE_CANCELLATION_REQUEST,\r\n CONFIRM_CANCELLATION,\r\n REJECT_CANCELLATION,\r\n CONFIRM_CANCELLATION_COSTS\r\n} from '@hobs/constants/tickets';\r\nimport { actionCreator } from './utils/utils';\r\n\r\nexport const getForSubmit = () => actionCreator('Ticket/ForSubmit', FORSUBMIT);\r\n\r\nexport const getTickets = serviceRequestId =>\r\n actionCreator(`Ticket/${serviceRequestId}`, GET);\r\n\r\nexport const assign = (ticketId, userId) =>\r\n actionCreator(`Ticket/Assign/${ticketId}/${userId}`, UPDATE, {\r\n method: 'POST'\r\n });\r\n\r\nexport const clearTickets = () => {\r\n return dispatch => {\r\n dispatch({ type: CLEAR.SUCCESS });\r\n };\r\n};\r\n\r\nexport const createConfirm = (serviceRequestId, body) =>\r\n actionCreator(`Ticket/NewAdditional/Confirm/${serviceRequestId}`, CONFIRM, {\r\n body: body,\r\n method: 'POST'\r\n });\r\n\r\nexport const createConfirmReject = (serviceRequestId, body) =>\r\n actionCreator(\r\n `Ticket/NewAdditional/Reject/${serviceRequestId}`,\r\n CONFIRM_REJECT,\r\n {\r\n body: body,\r\n method: 'POST'\r\n }\r\n );\r\n\r\nexport const createAcceptResponse = serviceRequestId =>\r\n actionCreator(\r\n `Ticket/NewAdditional/AcceptConfirmed/${serviceRequestId}`,\r\n ACCEPT_RESPONSE,\r\n {\r\n method: 'POST'\r\n }\r\n );\r\n\r\nexport const createRejectResponse = serviceRequestId =>\r\n actionCreator(\r\n `Ticket/NewAdditional/RejectConfirmed/${serviceRequestId}`,\r\n REJECT_RESPONSE,\r\n {\r\n method: 'POST'\r\n }\r\n );\r\n\r\nexport const createChangeRequest = (serviceRequestId, body) =>\r\n actionCreator(\r\n `Ticket/ChangeRequest/${serviceRequestId}`,\r\n CREATE_CHANGE_REQUEST,\r\n {\r\n body: body,\r\n method: 'POST'\r\n }\r\n );\r\n\r\nexport const changeRequestConfirm = (serviceRequestId, body) =>\r\n actionCreator(\r\n `Ticket/ChangeRequest/Confirm/${serviceRequestId}`,\r\n CONFIRM_CHANGE,\r\n {\r\n body: body,\r\n method: 'POST'\r\n }\r\n );\r\n\r\nexport const changeRequestConfirmReject = (serviceRequestId, body) =>\r\n actionCreator(\r\n `Ticket/ChangeRequest/Reject/${serviceRequestId}`,\r\n REJECT_CHANGE,\r\n {\r\n body: body,\r\n method: 'POST'\r\n }\r\n );\r\n\r\nexport const changeRequestAcceptResponse = serviceRequestId =>\r\n actionCreator(\r\n `Ticket/ChangeRequest/AcceptConfirmed/${serviceRequestId}`,\r\n ACCEPT_CHANGE_RESPONSE,\r\n {\r\n method: 'POST'\r\n }\r\n );\r\n\r\nexport const changeRequestRejectResponse = serviceRequestId =>\r\n actionCreator(\r\n `Ticket/ChangeRequest/RejectConfirmed/${serviceRequestId}`,\r\n REJECT_CHANGE_RESPONSE,\r\n {\r\n method: 'POST'\r\n }\r\n );\r\n\r\nexport const calculateByDays = body =>\r\n actionCreator('ServiceRequests/CalculateByDays', CALCULATE_BY_DAYS, {\r\n body: body,\r\n method: 'POST'\r\n });\r\n\r\nexport function clearCalculateByDays() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR_COSTS.SUCCESS });\r\n };\r\n}\r\n\r\nexport const createCancellationRequest = (serviceRequestId, body) =>\r\n actionCreator(\r\n `Ticket/Cancellation/${serviceRequestId}`,\r\n CREATE_CANCELLATION_REQUEST,\r\n {\r\n body: body,\r\n method: 'POST'\r\n }\r\n );\r\n\r\nexport const cancellationRequestConfirm = (serviceRequestId, body) =>\r\n actionCreator(\r\n `Ticket/Cancellation/Confirm/${serviceRequestId}`,\r\n CONFIRM_CANCELLATION,\r\n {\r\n body: body,\r\n method: 'POST'\r\n }\r\n );\r\n\r\nexport const cancellationRequestConfirmReject = (serviceRequestId, body) =>\r\n actionCreator(\r\n `Ticket/Cancellation/Reject/${serviceRequestId}`,\r\n REJECT_CANCELLATION,\r\n {\r\n body: body,\r\n method: 'POST'\r\n }\r\n );\r\n\r\nexport const cancellationCostsConfirm = (body) =>\r\n actionCreator(\r\n `AssignmentServiceRequest/Cancellation`,\r\n CONFIRM_CANCELLATION_COSTS,\r\n {\r\n body: body,\r\n method: 'PUT'\r\n }\r\n);\r\n\r\nexport const cancellationCostsFinalize = (serviceRequestId) =>\r\n actionCreator(\r\n `AssignmentServiceRequest/Cancellation/FinalizeCancellation/${serviceRequestId}`,\r\n CONFIRM_CANCELLATION_COSTS,\r\n {\r\n method: 'PUT'\r\n }\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Link } from 'react-router-dom';\r\nimport { withTranslation } from 'react-i18next';\r\nimport InfoPanel from '@hobs/components/InfoPanel';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport File from '@hobs/components/File';\r\nimport FieldHistoryMessage from '@hobs/components/FieldHistoryMessage';\r\nimport ShortId from 'shortid';\r\n\r\nimport './CatalogItemInfo.scss';\r\nimport Money from '../Money';\r\n\r\nconst CatalogItemInfo = ({\r\n title,\r\n description,\r\n rateFrom,\r\n rateTo,\r\n attachments,\r\n groupName,\r\n annexName,\r\n currency,\r\n uom,\r\n t,\r\n categoryServiceRequests,\r\n partyId,\r\n editedFields = [],\r\n annexinformation,\r\n tooltipStartDisabled,\r\n catalogItemId\r\n}) => {\r\n return (\r\n
\r\n \r\n {description}\r\n \r\n
\r\n
\r\n \r\n {t('Item price')}:\r\n \r\n \r\n - {' '}\r\n {t(`${currency} per ${uom}`)}\r\n \r\n
\r\n
\r\n {t('Files')}:\r\n {attachments && attachments.length > 0 ? (\r\n attachments.map(file => (\r\n \r\n ))\r\n ) : (\r\n -\r\n )}\r\n
\r\n
\r\n \r\n {t('Group')}:\r\n \r\n {groupName}\r\n
\r\n
\r\n \r\n {t('Annex')}\r\n \r\n {annexName}\r\n
\r\n
\r\n {categoryServiceRequests && categoryServiceRequests.length > 0 && (\r\n
\r\n
\r\n {t('Split to')}:\r\n \r\n {categoryServiceRequests.map(item => {\r\n return (\r\n
\r\n \r\n {item.name}\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\nCatalogItemInfo.propTypes = {\r\n title: PropTypes.string,\r\n description: PropTypes.string,\r\n rateFrom: PropTypes.number,\r\n rateTo: PropTypes.number,\r\n attachments: PropTypes.array,\r\n categoryServiceRequests: PropTypes.array,\r\n groupName: PropTypes.string,\r\n annexName: PropTypes.string,\r\n currency: PropTypes.string,\r\n uom: PropTypes.string,\r\n partyId: PropTypes.string,\r\n t: PropTypes.func,\r\n editedFields: PropTypes.array,\r\n annexinformation: PropTypes.string,\r\n tooltipStartDisabled: PropTypes.bool,\r\n catalogItemId: PropTypes.string\r\n};\r\n\r\nexport default withTranslation()(CatalogItemInfo);\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport PropTypes from 'prop-types';\r\nimport {\r\n Formik,\r\n Form,\r\n Field,\r\n yupToFormErrors,\r\n setNestedObjectValues\r\n} from 'formik';\r\nimport Input from '@hobs/components/Input';\r\nimport Money from '@hobs/components/Money';\r\nimport cx from 'classnames';\r\nimport { GhostButton, RaisedButton } from '@hobs/components/Buttons';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Dropdown from '@hobs/components/Dropdown';\r\nimport Dialog from '@hobs/components/Dialog';\r\nimport DropZone from '@hobs/components/DropZone';\r\nimport Switch from '@hobs/components/Switch';\r\nimport Confirm from '@hobs/components/Confirm';\r\nimport * as Yup from 'yup';\r\nimport { withRouter } from 'react-router-dom';\r\nimport ShortId from 'shortid';\r\nimport './AssignmentResponse.scss';\r\nimport Quantity from '../Quantity';\r\n\r\nconst AssignmentResponse = ({\r\n assignmentResponse,\r\n assignmentDelivery,\r\n delivery = {},\r\n t,\r\n readOnly,\r\n onSubmit,\r\n onDeliverySubmit,\r\n vatOptions,\r\n getSelectedVat,\r\n disabled,\r\n isFileDialogOpen,\r\n onFileDialogOpen,\r\n onFileDialogClose,\r\n onFileSelect,\r\n isDeliveryFileDialogOpen,\r\n onDeliveryFileDialogOpen,\r\n onDeliveryFileDialogClose,\r\n onSharedCostChange,\r\n onEarlyConfirmationRequiredChange,\r\n onDeliveryFinalizedChange,\r\n onDeliveryRollback,\r\n exerciseCurrency,\r\n showCurrency\r\n}) => {\r\n const [key, setKey] = useState(ShortId.generate());\r\n const [\r\n deliveryQuantityApprovalRequired,\r\n setDeliveryQuantityApprovalRequired\r\n ] = useState(false);\r\n\r\n // https://reactjs.org/docs/hooks-faq.html#how-to-get-the-previous-props-or-state\r\n function usePrevious(value) {\r\n const ref = useRef();\r\n useEffect(() => {\r\n ref.current = value;\r\n });\r\n return ref.current;\r\n }\r\n\r\n const prevDelivery = usePrevious(delivery);\r\n\r\n useEffect(() => {\r\n if (JSON.stringify(delivery) !== JSON.stringify(prevDelivery)) {\r\n onRollBackUpdate();\r\n }\r\n });\r\n\r\n const onRollBackUpdate = () => {\r\n setKey(ShortId.generate());\r\n };\r\n\r\n const onFormSubmit = (values, actions) => {\r\n if (values.SUBMIT_TYPE === 'RESPONSE') {\r\n values.unitCostDisplay =\r\n values.unitCostDisplay && values.unitCostDisplay.length\r\n ? values.unitCostDisplay\r\n : null;\r\n values.totalCostDisplay =\r\n values.totalCostDisplay && values.totalCostDisplay.length\r\n ? values.totalCostDisplay\r\n : null;\r\n\r\n Yup.object()\r\n .shape({\r\n canDeliveryQuantity: Yup.number()\r\n .required(t('Quantity is required'))\r\n .typeError('Invalid number')\r\n .min(0, t('Quantity must be greater than 0'))\r\n .nullable(),\r\n comment: Yup.string()\r\n .max(1500, t('Comment cannot be longer than 1500 symbols'))\r\n .nullable(),\r\n unitCostDisplay: Yup.number()\r\n .min(0, t('Price must be greater than 0'))\r\n .nullable(),\r\n totalCostDisplay: Yup.number()\r\n .min(0, t('Total must be greater than 0'))\r\n .nullable()\r\n })\r\n .validate(values, { abortEarly: false })\r\n .catch(errors => {\r\n actions.setErrors(yupToFormErrors(errors));\r\n actions.setTouched(setNestedObjectValues(values, true));\r\n actions.setSubmitting(false);\r\n })\r\n .then(response => {\r\n if (response) {\r\n onSubmit(values, actions);\r\n }\r\n });\r\n }\r\n\r\n if (values.SUBMIT_TYPE === 'DELIVERY') {\r\n Yup.object()\r\n .shape({\r\n delivery: Yup.object().shape({\r\n deliveryQuantity: Yup.number()\r\n .nullable()\r\n .required(t('Quantity is required'))\r\n .typeError('Quantity is required')\r\n .positive(t('Quantity must be greater than 0')),\r\n unitCostDisplay: Yup.number()\r\n .required(t('Price is required'))\r\n .typeError('Price is required')\r\n .min(0, t('Price must be equal to or greater than 0'))\r\n .nullable(),\r\n totalCostDisplay: Yup.number()\r\n .required(t('Total cost is required'))\r\n .typeError('Total cost is required')\r\n .min(0, t('Total cost must be equal to or greater than 0'))\r\n .nullable(),\r\n valueAddedTaxId: Yup.string()\r\n .required(t('VAT is required'))\r\n .nullable(),\r\n comment: Yup.string()\r\n .max(1500, t('Comment cannot be longer than 500 symbols'))\r\n .nullable()\r\n })\r\n })\r\n .validate(values, { abortEarly: false })\r\n .catch(errors => {\r\n actions.setErrors(yupToFormErrors(errors));\r\n actions.setTouched(setNestedObjectValues(values, true));\r\n actions.setSubmitting(false);\r\n })\r\n .then(response => {\r\n if (response) {\r\n if (!isQuantityApprovalRequired(values)) {\r\n onDeliverySubmit(values.delivery, actions);\r\n } else {\r\n setDeliveryQuantityApprovalRequired(true);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n function isQuantityApprovalRequired(values) {\r\n return values.canDeliveryQuantity < values.delivery.deliveryQuantity;\r\n }\r\n\r\n function getDefaultVat() {\r\n return getSelectedVat ? getSelectedVat().valueAddedTaxId : null;\r\n }\r\n\r\n function getResponseValues(assignmentResponse) {\r\n var attachments = [];\r\n\r\n if (\r\n assignmentDelivery &&\r\n assignmentDelivery.attachments &&\r\n assignmentDelivery.attachments.length > 0\r\n ) {\r\n attachments = assignmentDelivery.attachments;\r\n }\r\n\r\n if (delivery && delivery.attachments && delivery.attachments.length > 0) {\r\n attachments = delivery.attachments;\r\n }\r\n\r\n return {\r\n ...assignmentResponse,\r\n delivery: delivery\r\n ? {\r\n ...delivery,\r\n attachments: attachments,\r\n unitCostDisplay: delivery.unitCost\r\n ? delivery.unitCost.toFixed(2)\r\n : delivery.unitCost,\r\n totalCostDisplay: delivery.totalCost\r\n ? delivery.totalCost.toFixed(2)\r\n : delivery.totalCost\r\n }\r\n : {},\r\n totalCostDisplay: assignmentResponse.totalCost,\r\n unitCostDisplay: assignmentResponse.unitCost,\r\n valueAddedTaxId: assignmentResponse.valueAddedTaxId\r\n ? assignmentResponse.valueAddedTaxId\r\n : getDefaultVat()\r\n };\r\n }\r\n\r\n function calcUnitCost(canDeliveryQuantity, totalCost, setFieldValue) {\r\n if (!canDeliveryQuantity || !totalCost) {\r\n setFieldValue('totalCost', null);\r\n setFieldValue('unitCost', null);\r\n return;\r\n }\r\n\r\n setFieldValue(\r\n 'unitCostDisplay',\r\n (totalCost / canDeliveryQuantity).toFixed(2)\r\n );\r\n setFieldValue('totalCost', totalCost);\r\n setFieldValue('unitCost', totalCost / canDeliveryQuantity);\r\n }\r\n\r\n function calcTotalCost(canDeliveryQuantity, unitCost, setFieldValue) {\r\n if ((!canDeliveryQuantity && canDeliveryQuantity !== 0) || !unitCost) {\r\n setFieldValue('totalCost', null);\r\n setFieldValue('unitCost', null);\r\n return;\r\n }\r\n\r\n setFieldValue(\r\n 'totalCostDisplay',\r\n (unitCost * canDeliveryQuantity).toFixed(2)\r\n );\r\n setFieldValue('totalCost', unitCost * canDeliveryQuantity);\r\n setFieldValue('unitCost', unitCost);\r\n }\r\n\r\n function calcDeliveryUnitCost(canDeliveryQuantity, totalCost, setFieldValue) {\r\n setFieldValue('delivery.totalCost', totalCost);\r\n\r\n if (!canDeliveryQuantity) {\r\n return;\r\n }\r\n if (!totalCost && totalCost !== 0) {\r\n totalCost = 0;\r\n }\r\n\r\n setFieldValue(\r\n 'delivery.unitCostDisplay',\r\n (totalCost / canDeliveryQuantity).toFixed(2)\r\n );\r\n setFieldValue('delivery.unitCost', totalCost / canDeliveryQuantity);\r\n }\r\n\r\n function calcDeliveryTotalCost(canDeliveryQuantity, unitCost, setFieldValue) {\r\n setFieldValue('delivery.unitCost', unitCost);\r\n\r\n if (!unitCost && unitCost !== 0) {\r\n unitCost = 0;\r\n }\r\n if (!canDeliveryQuantity && canDeliveryQuantity !== 0) {\r\n canDeliveryQuantity = 0;\r\n }\r\n\r\n setFieldValue(\r\n 'delivery.totalCostDisplay',\r\n (unitCost * canDeliveryQuantity).toFixed(2)\r\n );\r\n setFieldValue('delivery.totalCost', unitCost * canDeliveryQuantity);\r\n }\r\n\r\n function getInitialValues() {\r\n return assignmentResponse\r\n ? getResponseValues(assignmentResponse)\r\n : {\r\n canDeliveryQuantity: '',\r\n unitCostDisplay: '',\r\n unitCost: '',\r\n totalCost: '',\r\n totalCostDisplay: '',\r\n grossAmount: '',\r\n comment: '',\r\n isDraft: true,\r\n valueAddedTaxId: getDefaultVat(),\r\n attachments: [],\r\n delivery: {\r\n ...delivery,\r\n attachments: delivery.attachments ? delivery.attachments : [],\r\n unitCostDisplay: delivery.unitCost\r\n ? delivery.unitCost.toFixed(2)\r\n : delivery.unitCost,\r\n totalCostDisplay: delivery.totalCost\r\n ? delivery.totalCost.toFixed(2)\r\n : delivery.totalCost\r\n }\r\n };\r\n }\r\n\r\n return (\r\n
\r\n \r\n {({\r\n handleSubmit,\r\n setFieldValue,\r\n values,\r\n isSubmitting,\r\n setSubmitting\r\n }) => {\r\n return (\r\n
\r\n \r\n {\r\n onFileSelect(files).then(response => {\r\n setFieldValue(\r\n 'attachments',\r\n values.attachments.concat(response.payload)\r\n );\r\n });\r\n }}\r\n onRemove={(file, list) => {\r\n setFieldValue('attachments', list);\r\n }}\r\n value={values.attachments ? values.attachments : []}\r\n key={ShortId.generate()}\r\n disabled={\r\n disabled ||\r\n (assignmentResponse && !assignmentResponse.canBeEdited)\r\n }\r\n showSuccessMessages={true}\r\n />\r\n \r\n \r\n {\r\n onFileSelect(files).then(response => {\r\n setFieldValue(\r\n 'delivery.attachments',\r\n values.delivery.attachments.concat(response.payload)\r\n );\r\n });\r\n }}\r\n onRemove={(file, list) => {\r\n setFieldValue('delivery.attachments', list);\r\n }}\r\n value={\r\n values.delivery.attachments\r\n ? values.delivery.attachments\r\n : []\r\n }\r\n key={ShortId.generate()}\r\n disabled={!values.delivery.isEditable || readOnly}\r\n showSuccessMessages={true}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {showCurrency && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!disabled && \r\n \r\n \r\n {assignmentResponse && (\r\n \r\n \r\n {showCurrency && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!disabled && values.sharedCost ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {!disabled && values.earlyConfirmation ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {!disabled && (\r\n \r\n )}\r\n \r\n )}\r\n {values.delivery.isVisible && (\r\n \r\n \r\n {showCurrency && readOnly && (\r\n \r\n )}\r\n {showCurrency && !readOnly && (\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 {assignmentDelivery && (\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
{t('Delivery')}{t('Currency')}{t('Price')}{t('Total')}{t('VAT')}{t('Gross amount')}{t('Comment')}{t('Files')}}\r\n {!disabled && }\r\n
\r\n {(disabled || !assignmentResponse.canBeEdited) && (\r\n \r\n )}\r\n {!disabled && assignmentResponse.canBeEdited && (\r\n {\r\n calcTotalCost(\r\n event.target.value,\r\n values.unitCost,\r\n setFieldValue\r\n );\r\n }}\r\n />\r\n )}\r\n \r\n {(disabled || !assignmentResponse.canBeEdited) && (\r\n {exerciseCurrency}\r\n )}\r\n {!disabled && assignmentResponse.canBeEdited && (\r\n \r\n )}\r\n \r\n {(disabled || !assignmentResponse.canBeEdited) && (\r\n \r\n )}\r\n {!disabled && assignmentResponse.canBeEdited && (\r\n <>\r\n {\r\n calcTotalCost(\r\n values.canDeliveryQuantity,\r\n event.target.value,\r\n setFieldValue\r\n );\r\n }}\r\n />\r\n \r\n \r\n )}\r\n \r\n {(disabled || !assignmentResponse.canBeEdited) && (\r\n \r\n )}\r\n {!disabled && assignmentResponse.canBeEdited && (\r\n <>\r\n {\r\n calcUnitCost(\r\n values.canDeliveryQuantity,\r\n event.target.value,\r\n setFieldValue\r\n );\r\n }}\r\n />\r\n \r\n \r\n )}\r\n \r\n {(disabled || !assignmentResponse.canBeEdited) && (\r\n {assignmentResponse.vatValue}%\r\n )}\r\n {!disabled && assignmentResponse.canBeEdited && (\r\n \r\n {vatOptions}\r\n \r\n )}\r\n \r\n {(disabled || !assignmentResponse.canBeEdited) && (\r\n \r\n )}\r\n {!disabled && assignmentResponse.canBeEdited && (\r\n \r\n )}\r\n \r\n {(disabled || !assignmentResponse.canBeEdited) && (\r\n {values.comment}\r\n )}\r\n {!disabled && assignmentResponse.canBeEdited && (\r\n \r\n )}\r\n \r\n \r\n \r\n {values.attachments.length\r\n ? `(${values.attachments.length})`\r\n : ''}\r\n \r\n \r\n {\r\n Confirm(\r\n t('Update shared cost'),\r\n t(\r\n 'Are you sure you want to update shared cost?'\r\n ),\r\n () => {\r\n onSharedCostChange(sharedCost);\r\n setFieldValue(\r\n 'sharedCost.isSharedCost',\r\n sharedCost\r\n );\r\n setFieldValue('isSharedCost', sharedCost);\r\n }\r\n );\r\n }}\r\n label={t('Shared cost')}\r\n />\r\n \r\n {\r\n Confirm(\r\n t('Update early confirmation required'),\r\n t(\r\n 'Are you sure you want to update early confirmation required?'\r\n ),\r\n () => {\r\n onEarlyConfirmationRequiredChange();\r\n setFieldValue(\r\n 'earlyConfirmation.isEarlyConfirmationRequired',\r\n isEarlyConfirmationRequired\r\n );\r\n }\r\n );\r\n }}\r\n label={t('Early confirmation required')}\r\n />\r\n \r\n <>\r\n {(assignmentResponse.isDraft === null ||\r\n assignmentResponse.isDraft === true) && (\r\n {\r\n await setFieldValue(\r\n 'SUBMIT_TYPE',\r\n 'RESPONSE'\r\n );\r\n await setFieldValue('isDraft', true);\r\n handleSubmit();\r\n }}\r\n type=\"button\"\r\n disabled={isSubmitting}\r\n >\r\n {t('Save draft')}\r\n \r\n )}\r\n {\r\n await setFieldValue('SUBMIT_TYPE', 'RESPONSE');\r\n await setFieldValue('isDraft', false);\r\n handleSubmit();\r\n }}\r\n type=\"button\"\r\n disabled={\r\n isSubmitting || !assignmentResponse.canBeEdited\r\n }\r\n >\r\n {t('Send response')}\r\n \r\n \r\n
\r\n {readOnly && (\r\n \r\n )}\r\n {!readOnly && (\r\n {\r\n calcDeliveryTotalCost(\r\n event.target.value,\r\n values.delivery.unitCost,\r\n setFieldValue\r\n );\r\n }}\r\n />\r\n )}\r\n \r\n {exerciseCurrency}\r\n \r\n \r\n \r\n {readOnly && (\r\n \r\n )}\r\n {!readOnly && (\r\n {\r\n calcDeliveryTotalCost(\r\n values.delivery.deliveryQuantity,\r\n event.target.value,\r\n setFieldValue\r\n );\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {readOnly && (\r\n \r\n )}\r\n {!readOnly && (\r\n {\r\n calcDeliveryUnitCost(\r\n values.delivery.deliveryQuantity,\r\n event.target.value,\r\n setFieldValue\r\n );\r\n }}\r\n />\r\n )}\r\n \r\n \r\n {readOnly && (\r\n \r\n )}\r\n {!readOnly && (\r\n \r\n \r\n {vatOptions}\r\n \r\n )}\r\n \r\n \r\n \r\n {readOnly && (\r\n \r\n )}\r\n {!readOnly && (\r\n \r\n )}\r\n \r\n \r\n \r\n {values.delivery.attachments.length\r\n ? `(${values.delivery.attachments.length})`\r\n : ''}\r\n \r\n \r\n {\r\n Confirm(\r\n t('Change delivery finalized status'),\r\n deliveryFinalized\r\n ? t(\r\n 'Are you sure you want confirm delivery as finalized?'\r\n )\r\n : t(\r\n 'Are you sure you want reset delivery as not finalized?'\r\n ),\r\n () => {\r\n onDeliveryFinalizedChange(\r\n deliveryFinalized,\r\n () => {\r\n setFieldValue(\r\n 'delivery.isDeliveryFinalized',\r\n deliveryFinalized\r\n );\r\n }\r\n );\r\n }\r\n );\r\n }}\r\n label={t('Delivery finalized')}\r\n />\r\n \r\n {\r\n await setFieldValue('SUBMIT_TYPE', 'DELIVERY');\r\n handleSubmit();\r\n }}\r\n type=\"button\"\r\n >\r\n {t('Confirm delivery')}\r\n \r\n {deliveryQuantityApprovalRequired &&\r\n Confirm(\r\n t('Delivery Quantity'),\r\n t(\r\n 'Delivery quantity is greater than was responded. Are you sure, you want to confirm?'\r\n ),\r\n async () => {\r\n setDeliveryQuantityApprovalRequired(false);\r\n onDeliverySubmit(values.delivery, {\r\n setSubmitting\r\n });\r\n },\r\n () => {\r\n setDeliveryQuantityApprovalRequired(false);\r\n setSubmitting(false);\r\n }\r\n )}\r\n {values.delivery.canRollBack && (\r\n {\r\n Confirm(\r\n t('Rollback'),\r\n t(\r\n 'Are you sure you want to change service request status back to \"Confirmed\"?'\r\n ),\r\n async () => {\r\n await onDeliveryRollback();\r\n }\r\n );\r\n }}\r\n type=\"button\"\r\n >\r\n {t('Rollback')}\r\n \r\n )}\r\n
\r\n \r\n \r\n {exerciseCurrency}\r\n \r\n \r\n \r\n \r\n \r\n {assignmentDelivery.percentage}%\r\n \r\n \r\n {assignmentDelivery.comment}\r\n \r\n \r\n {assignmentDelivery.attachments.length\r\n ? `(${assignmentDelivery.attachments.length})`\r\n : ''}\r\n \r\n
\r\n {values.sharedCost && values.sharedCost.isSharedCost && disabled && (\r\n \r\n !\r\n \r\n {t('This service is grouped as shared cost')}\r\n \r\n \r\n )}\r\n \r\n );\r\n }}\r\n \r\n
\r\n );\r\n};\r\n\r\nAssignmentResponse.propTypes = {\r\n delivery: PropTypes.object,\r\n assignmentDelivery: PropTypes.object,\r\n assignmentResponse: PropTypes.object,\r\n t: PropTypes.func,\r\n onSubmit: PropTypes.func,\r\n onDeliverySubmit: PropTypes.func,\r\n vatOptions: PropTypes.array,\r\n getSelectedVat: PropTypes.func,\r\n disabled: PropTypes.bool,\r\n isFileDialogOpen: PropTypes.bool,\r\n readOnly: PropTypes.bool,\r\n onFileDialogClose: PropTypes.func,\r\n onFileSelect: PropTypes.func,\r\n isDeliveryFileDialogOpen: PropTypes.bool,\r\n onDeliveryFileDialogOpen: PropTypes.func,\r\n onDeliveryFileDialogClose: PropTypes.func,\r\n onSharedCostChange: PropTypes.func,\r\n onEarlyConfirmationRequiredChange: PropTypes.func,\r\n onDeliveryFinalizedChange: PropTypes.func,\r\n onFileDialogOpen: PropTypes.func,\r\n onDeliveryRollback: PropTypes.func\r\n};\r\n\r\nexport default withRouter(withTranslation()(AssignmentResponse));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Icon from '@hobs/components/Icon';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\nimport { withRouter } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport Confirm from '@hobs/components/Confirm';\r\nimport { withTranslation } from 'react-i18next';\r\nimport Discussion from '@hobs/containers/Discussion';\r\n\r\nimport './HeadingActions.scss';\r\n\r\nclass HeadingActions extends React.PureComponent {\r\n isActive(path) {\r\n return path === this.props.location.pathname;\r\n }\r\n\r\n navigateTo(path) {\r\n if (this.props.isDirty) {\r\n Confirm(\r\n this.props.t('Cancel service request'),\r\n this.props.t(\r\n 'Are you sure you want to cancel? All entered data will be lost.'\r\n ),\r\n () => {\r\n this.props.history.push(path);\r\n }\r\n );\r\n } else {\r\n this.props.history.push(path);\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n isTransportation,\r\n showPath,\r\n editPath,\r\n historyPath,\r\n discussion,\r\n transportationPath,\r\n changeHistoryPath\r\n } = this.props;\r\n return (\r\n
\r\n {showPath && (\r\n {\r\n e.preventDefault();\r\n this.navigateTo(showPath);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n {editPath && (\r\n {\r\n e.preventDefault();\r\n this.navigateTo(editPath);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n {historyPath && (\r\n {\r\n e.preventDefault();\r\n this.navigateTo(historyPath);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n {isTransportation && (\r\n {\r\n e.preventDefault();\r\n this.navigateTo(transportationPath);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n\r\n {discussion && (\r\n \r\n \r\n \r\n )}\r\n\r\n {changeHistoryPath && (\r\n {\r\n e.preventDefault();\r\n this.navigateTo(changeHistoryPath);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nHeadingActions.propTypes = {\r\n onNavigate: PropTypes.func,\r\n showPath: PropTypes.string,\r\n editPath: PropTypes.string,\r\n transportationPath: PropTypes.string,\r\n isDirty: PropTypes.bool,\r\n isTransportation: PropTypes.bool,\r\n historyPath: PropTypes.string,\r\n changeHistoryPath: PropTypes.string,\r\n history: PropTypes.object,\r\n t: PropTypes.func,\r\n discussion: PropTypes.shape({\r\n serviceRequestId: PropTypes.string,\r\n status: PropTypes.number,\r\n initials: PropTypes.string,\r\n iconOnly: PropTypes.bool\r\n }),\r\n location: PropTypes.shape({\r\n pathname: PropTypes.string\r\n }),\r\n hasUserPermission: PropTypes.func\r\n};\r\n\r\nexport default withTranslation()(withRouter(WithRoles(HeadingActions)));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ShortId from 'shortid';\r\nimport HeadingActions from '../../components/HeadingActions';\r\n\r\nconst PageLinks = props => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nPageLinks.propTypes = {\r\n partyId: PropTypes.string,\r\n serviceRequestId: PropTypes.string,\r\n discussion: PropTypes.object,\r\n isDirty: PropTypes.bool,\r\n isTransportation: PropTypes.bool,\r\n transportationPath: PropTypes.string,\r\n showPath: PropTypes.string,\r\n editPath: PropTypes.string,\r\n historyPath: PropTypes.string,\r\n changeHistoryPath: PropTypes.string\r\n};\r\n\r\nexport default PageLinks;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Styles from './ServiceRequestFooter.module.scss';\r\n\r\nconst ServiceRequestFooter = ({ message, children }) => {\r\n return (\r\n
\r\n {message ? (\r\n
\r\n \r\n
{message}
\r\n
\r\n ) : (\r\n
\r\n )}\r\n
{children}
\r\n
\r\n );\r\n};\r\n\r\nServiceRequestFooter.propTypes = {\r\n children: PropTypes.any,\r\n message: PropTypes.string\r\n};\r\n\r\nexport default ServiceRequestFooter;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withTranslation } from 'react-i18next/src';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from 'react-redux';\r\nimport * as Yup from 'yup';\r\nimport ShortId from 'shortid';\r\nimport Dialog from '@hobs/components/Dialog';\r\nimport Dropdown from '@hobs/components/Dropdown';\r\nimport NumericInput from '@hobs/components/NumericInput';\r\nimport DateInput from '@hobs/components/DateInput';\r\nimport BluePanel from '@hobs/components/BluePanel';\r\nimport ObjectPath from 'object-path';\r\nimport Autocomplete from '@hobs/components/Autocomplete';\r\n\r\nimport Toast from '@hobs/components/Toast';\r\nimport Switch from '@hobs/components/Switch';\r\nimport Textarea from '@hobs/components/Textarea';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport { Formik, Form, Field } from 'formik';\r\nimport Input from '@hobs/components/Input';\r\nimport { RaisedButton, GhostButton } from '@hobs/components/Buttons';\r\nimport Alert from '@hobs/components/Alert';\r\nimport { queryLocations } from '@hobs/actions/locations';\r\nimport {\r\n createChangeRequest,\r\n calculateByDays,\r\n clearCalculateByDays\r\n} from '@hobs/actions/tickets';\r\nimport { dateToInitialMonth } from '@hobs/utils/dateToInitialMonth';\r\nimport Quantity from '@hobs/components/Quantity';\r\nimport Money from '@hobs/components/Money';\r\nimport CalculateByDays from '@hobs/components/CalculateByDays';\r\n\r\nimport './ChangeRequestCreateDialog.scss';\r\n\r\nconst defaultState = {\r\n error: null,\r\n calculatedCostValues: {}\r\n};\r\n\r\nclass ChangeRequestCreateDialog extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = defaultState;\r\n\r\n const { t } = props;\r\n this.validationSchema = Yup.object().shape({\r\n unitId: Yup.string().required(t('Unit is required')),\r\n unitOfMeasureId: Yup.string().required(t('UoM is required')),\r\n dateFrom: Yup.date()\r\n .required(t('From date is required'))\r\n .typeError(t('From date is required'))\r\n .nullable(),\r\n requestedQuantity: Yup.number()\r\n .min(0, t('Quantity must be greater than 0'))\r\n .required(t('Quantity is required'))\r\n .typeError(t('Invalid number')),\r\n comment: Yup.string()\r\n .max(1500, t('Comment cannot be longer than 1500 symbols'))\r\n .nullable(),\r\n locationName: Yup.string()\r\n .required(t('Location is required'))\r\n .nullable(),\r\n locationNameFrom: Yup.string().when('isTransportation', {\r\n is: true,\r\n then: Yup.string()\r\n .required(t('Location is required'))\r\n .nullable(),\r\n otherwise: Yup.string().nullable()\r\n })\r\n });\r\n }\r\n\r\n onDialogOpening = () => {\r\n const { serviceRequest } = this.props;\r\n\r\n this.calculateCosts(serviceRequest);\r\n };\r\n\r\n onDialogClose = () => {\r\n const { closeDialog } = this.props;\r\n\r\n closeDialog();\r\n };\r\n\r\n onDialogClosed = () => {\r\n this.resetState();\r\n };\r\n\r\n setError(message) {\r\n this.setState({ error: message });\r\n }\r\n\r\n resetState() {\r\n this.setState(defaultState);\r\n }\r\n\r\n onLocationQueryChange = query => {\r\n this.props.queryLocations(query);\r\n };\r\n\r\n calculateCosts(values) {\r\n if (!values.dateFrom || !values.requestedQuantity) {\r\n return;\r\n }\r\n\r\n const currentState = this.state.calculatedCostValues;\r\n if (\r\n currentState.dateFrom !== values.dateFrom ||\r\n currentState.dateTo !== values.dateTo ||\r\n currentState.quantity !== values.requestedQuantity ||\r\n currentState.isCalculatedByDays !== values.isCalculatedByDays\r\n ) {\r\n const data = {\r\n rateFrom: values.reateFrom,\r\n rateTo: values.reateTo,\r\n quantity: values.requestedQuantity,\r\n dateFrom: values.dateFrom,\r\n dateTo: values.dateTo,\r\n isCalculatedByDays: values.isCalculatedByDays\r\n };\r\n\r\n this.props.calculateByDays(data);\r\n this.setState({ calculatedCostValues: data });\r\n }\r\n }\r\n\r\n toAutocompleteEntity(data, valueIndex = 'code', titleIndex = 'name') {\r\n return data\r\n ? data.map(item => ({\r\n value: item[valueIndex],\r\n title: item[titleIndex],\r\n original: item\r\n }))\r\n : [];\r\n }\r\n\r\n submitConfirm = (values, { setSubmitting, setErrors }) => {\r\n const { createChangeRequest, serviceRequestId, t, reload } = this.props;\r\n\r\n createChangeRequest(serviceRequestId, values).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Change request submitted successfully'));\r\n reload();\r\n this.onDialogClose();\r\n } else if (response.payload && response.payload.details) {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [error.target]: error.message[0]\r\n };\r\n }, {});\r\n if (errors) {\r\n setErrors(errors);\r\n }\r\n } else if (response.payload) {\r\n this.setError(response.payload.message);\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n getInitialActivityId = () => {\r\n if (this.props.serviceRequest && this.props.serviceRequest.activityId) {\r\n return this.props.serviceRequest.activityId;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n getInitialActivityName = () => {\r\n if (this.props.serviceRequest && this.props.serviceRequest.activityId) {\r\n return this.props.serviceRequest.activityName;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n toActivityEntity(activities) {\r\n return activities.map(activity => {\r\n return {\r\n name: activity.name,\r\n activityId: activity.activityId,\r\n isDefault: activity.isDefault\r\n };\r\n });\r\n }\r\n\r\n render() {\r\n const {\r\n t,\r\n isDialogOpen,\r\n calculateByDaysData,\r\n query,\r\n unitsOptions,\r\n activities,\r\n serviceRequest,\r\n uomsOptions,\r\n currentExercise\r\n } = this.props;\r\n const { error } = this.state;\r\n\r\n // If we don't have values - DO not render Dialog\r\n if (Object.keys(serviceRequest).length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n {({ setFieldValue, values, isSubmitting }) => (\r\n
\r\n {error && {error}}\r\n {this.calculateCosts(values)}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {unitsOptions}\r\n \r\n
\r\n
\r\n
\r\n \r\n {t('Req. Quantity')}\r\n \r\n
\r\n
\r\n \r\n {uomsOptions}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {t('From date')}\r\n \r\n
\r\n
\r\n \r\n {t('To date')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {t('Total quantity')}\r\n \r\n {calculateByDaysData ? (\r\n \r\n ) : (\r\n '-'\r\n )}\r\n \r\n
\r\n\r\n
\r\n {t('Est. total cost')}\r\n ({currentExercise.currency.name})\r\n {calculateByDaysData ? (\r\n \r\n \r\n {(calculateByDaysData.rateFrom &&\r\n calculateByDaysData.rateTo) ||\r\n (!calculateByDaysData.rateFrom &&\r\n !calculateByDaysData.rateTo)\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 {activities && activities.length !== 0 && (\r\n {\r\n setFieldValue(\r\n 'activityName',\r\n activities.find(x => x.activityId == event.target.value)\r\n .name\r\n );\r\n }}\r\n >\r\n {!values.activityId && (\r\n \r\n )}\r\n {values.activityId && (\r\n \r\n )}\r\n \r\n )}\r\n {!values.isTransportation && (\r\n
\r\n
\r\n {\r\n setFieldValue(\r\n 'locationName',\r\n ObjectPath.get(item, 'original.name', null)\r\n );\r\n setFieldValue(\r\n 'regionId',\r\n ObjectPath.get(\r\n item,\r\n 'original.region.regionId',\r\n null\r\n )\r\n );\r\n setFieldValue(\r\n 'regionName',\r\n ObjectPath.get(item, 'original.region.name', null)\r\n );\r\n setFieldValue(\r\n 'site',\r\n ObjectPath.get(item, 'original.site', null)\r\n );\r\n setFieldValue(\r\n 'latitude',\r\n ObjectPath.get(item, 'original.latitude', null)\r\n );\r\n setFieldValue(\r\n 'longitude',\r\n ObjectPath.get(item, 'original.longtitude', null)\r\n );\r\n }}\r\n noResultsMessage={t('Location not found')}\r\n onQueryChange={this.onLocationQueryChange}\r\n component={Autocomplete}\r\n defaultQuery={values.locationName}\r\n />\r\n
\r\n
\r\n \r\n {t('Location comment')}\r\n \r\n
\r\n
\r\n )}\r\n {values.isTransportation && (\r\n <>\r\n
\r\n
\r\n {\r\n setFieldValue(\r\n 'locationNameFrom',\r\n ObjectPath.get(item, 'original.name', null)\r\n );\r\n setFieldValue(\r\n 'regionIdFrom',\r\n ObjectPath.get(\r\n item,\r\n 'original.region.regionId',\r\n null\r\n )\r\n );\r\n setFieldValue(\r\n 'regionNameFrom',\r\n ObjectPath.get(item, 'original.region.name', null)\r\n );\r\n setFieldValue(\r\n 'siteFrom',\r\n ObjectPath.get(item, 'original.site', null)\r\n );\r\n setFieldValue(\r\n 'latitudeFrom',\r\n ObjectPath.get(item, 'original.latitude', null)\r\n );\r\n setFieldValue(\r\n 'longitudeFrom',\r\n ObjectPath.get(item, 'original.longtitude', null)\r\n );\r\n }}\r\n noResultsMessage={t('Location not found')}\r\n onQueryChange={this.onLocationQueryChange}\r\n component={Autocomplete}\r\n defaultQuery={values.locationNameFrom}\r\n />\r\n
\r\n
\r\n \r\n {t('Pickup location comment')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {\r\n setFieldValue(\r\n 'locationName',\r\n ObjectPath.get(item, 'original.name', null)\r\n );\r\n setFieldValue(\r\n 'regionId',\r\n ObjectPath.get(\r\n item,\r\n 'original.region.regionId',\r\n null\r\n )\r\n );\r\n setFieldValue(\r\n 'regionName',\r\n ObjectPath.get(item, 'original.region.name', null)\r\n );\r\n setFieldValue(\r\n 'site',\r\n ObjectPath.get(item, 'original.site', null)\r\n );\r\n setFieldValue(\r\n 'latitude',\r\n ObjectPath.get(item, 'original.latitude', null)\r\n );\r\n setFieldValue(\r\n 'longitude',\r\n ObjectPath.get(item, 'original.longtitude', null)\r\n );\r\n }}\r\n noResultsMessage={t('Location not found')}\r\n onQueryChange={this.onLocationQueryChange}\r\n component={Autocomplete}\r\n defaultQuery={values.locationName}\r\n />\r\n
\r\n
\r\n \r\n {t('Delivery location comment')}\r\n \r\n
\r\n
\r\n \r\n )}\r\n
\r\n \r\n
\r\n
\r\n {\r\n this.onDialogClose();\r\n }}\r\n >\r\n {t('Cancel')}\r\n \r\n \r\n {t('Submit')}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nChangeRequestCreateDialog.propTypes = {\r\n t: PropTypes.func,\r\n location: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n isDialogOpen: PropTypes.bool,\r\n closeDialog: PropTypes.func,\r\n calculateByDaysData: PropTypes.object,\r\n calculateByDays: PropTypes.func,\r\n queryLocations: PropTypes.func,\r\n onQueryChange: PropTypes.func,\r\n serviceRequest: PropTypes.object,\r\n unitsOptions: PropTypes.array,\r\n query: PropTypes.array,\r\n clearCalculateByDays: PropTypes.func,\r\n createChangeRequest: PropTypes.func,\r\n serviceRequestId: PropTypes.string,\r\n uomsOptions: PropTypes.array,\r\n activities: PropTypes.array,\r\n reload: PropTypes.func,\r\n currentExercise: PropTypes.object\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n calculateByDaysData: state.tickets.calculateByDays,\r\n query: state.locations.query,\r\n currentExercise: state.exercise.current\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n calculateByDays,\r\n queryLocations,\r\n clearCalculateByDays,\r\n createChangeRequest\r\n};\r\n\r\nexport default withRouter(\r\n connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n )(withTranslation()(ChangeRequestCreateDialog))\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withTranslation } from 'react-i18next/src';\r\nimport { withRouter } from 'react-router-dom';\r\nimport * as Yup from 'yup';\r\nimport { DraggableDialog } from '@hobs/components/Dialog';\r\nimport Textarea from '@hobs/components/Textarea';\r\nimport { Formik, Form, Field } from 'formik';\r\nimport { RaisedButton, GhostButton } from '@hobs/components/Buttons';\r\nimport Alert from '@hobs/components/Alert';\r\n\r\nimport './ActionWithCommentDialog.scss';\r\n\r\nconst defaultState = {\r\n error: null\r\n};\r\n\r\nclass ActionWithCommentDialog extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = defaultState;\r\n\r\n const { t, isCommentRequired } = props;\r\n\r\n if (isCommentRequired) {\r\n this.schema = Yup.object().shape({\r\n comment: Yup.string()\r\n .max(1500, t('Comment cannot be longer than 1500 symbols'))\r\n .required(t('Comment is required'))\r\n .nullable()\r\n });\r\n } else {\r\n this.schema = Yup.object().shape({\r\n comment: Yup.string()\r\n .max(1500, t('Comment cannot be longer than 1500 symbols'))\r\n .nullable()\r\n });\r\n }\r\n }\r\n\r\n onDialogClose = () => {\r\n const { reload, closeDialog } = this.props;\r\n\r\n if (reload) {\r\n reload();\r\n }\r\n\r\n closeDialog();\r\n };\r\n\r\n onDialogClosed = () => {\r\n this.resetState();\r\n };\r\n\r\n submitConfirmReject = (values, { setSubmitting, setErrors }) => {\r\n const { onSubmit } = this.props;\r\n\r\n onSubmit(\r\n values,\r\n { setSubmitting, setErrors },\r\n this.setError,\r\n this.onDialogClose\r\n );\r\n };\r\n\r\n setError = message => {\r\n this.setState({ error: message });\r\n };\r\n\r\n resetState() {\r\n this.setState(defaultState);\r\n }\r\n\r\n render() {\r\n const {\r\n t,\r\n isDialogOpen,\r\n cancelText,\r\n confirmText,\r\n commentLabel,\r\n title\r\n } = this.props;\r\n const { error } = this.state;\r\n return (\r\n \r\n \r\n {({ setFieldValue, isSubmitting }) => (\r\n
\r\n {error && {error}}\r\n
\r\n \r\n
\r\n {\r\n this.onDialogClose();\r\n }}\r\n >\r\n {cancelText ? cancelText : t('Cancel')}\r\n \r\n \r\n {confirmText ? confirmText : t('Reject')}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nActionWithCommentDialog.propTypes = {\r\n t: PropTypes.func,\r\n location: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n reload: PropTypes.func,\r\n isDialogOpen: PropTypes.bool,\r\n closeDialog: PropTypes.func,\r\n onSubmit: PropTypes.func,\r\n cancelText: PropTypes.string,\r\n confirmText: PropTypes.string,\r\n commentLabel: PropTypes.string,\r\n title: PropTypes.string,\r\n isCommentRequired: PropTypes.bool\r\n};\r\n\r\nActionWithCommentDialog.defaultProps = {\r\n isCommentRequired: true\r\n};\r\n\r\nexport default withRouter(withTranslation()(ActionWithCommentDialog));\r\n","import React from 'react';\r\nimport { withTranslation } from 'react-i18next';\r\nimport PropTypes from 'prop-types';\r\nimport Money from '../Money';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { H2 } from '@hobs/components/Headings';\r\nimport { Formik, Form, Field } from 'formik';\r\nimport Textarea from '@hobs/components/Textarea';\r\nimport Input from '@hobs/components/Input';\r\nimport { GhostButton } from '@hobs/components/Buttons';\r\nimport Switch from '@hobs/components/Switch';\r\nimport Dropdown from '@hobs/components/Dropdown';\r\nimport { MAX_INT32 } from '@hobs/utils/constants';\r\nimport * as Yup from 'yup';\r\nimport Confirm from '../Confirm';\r\n\r\nimport './CancellationCosts.scss';\r\n\r\nconst CancellationCosts = ({\r\n t,\r\n cancellation,\r\n isEditable,\r\n valueAddedTaxes,\r\n valueAddedTaxId,\r\n getSelectedVat,\r\n onSubmit,\r\n isPreviewMode,\r\n finalizeCancellationCosts,\r\n exerciseCurrency\r\n }) => {\r\n const schema = Yup.object().shape({\r\n cancellationCostInvolved : Yup.boolean().required(),\r\n isCancellationFinalized : Yup.boolean().required(),\r\n quantity: Yup.number()\r\n .required()\r\n .min(0, \"Quantity must be 0\")\r\n .max(0,\"Quantity must be 0\"),\r\n price: Yup.number()\r\n .required()\r\n .min(0, \"Unit price must be 0\")\r\n .max(0,\"Unit price must be 0\"),\r\n totalCost : Yup.number()\r\n .required(\"Total cost is required\")\r\n .min(0, \"Total cost must be greater than or equal to 0\")\r\n .when(\"cancellationCostInvolved\", {\r\n is: true,\r\n then: Yup.number()\r\n .positive(\"Total cost must be greater than 0\")\r\n }),\r\n totalCostDisplay : Yup.number()\r\n .required(\"Total cost is required\")\r\n .min(0, \"Total cost must be greater than or equal to 0\")\r\n .when(\"cancellationCostInvolved\", {\r\n is: true,\r\n then: Yup.number()\r\n .positive(\"Total cost must be greater than 0\")\r\n .max(MAX_INT32, \"Number is too large\")\r\n }),\r\n valueAddedTaxId: Yup.string()\r\n .when(\"cancellationCostInvolved\", {\r\n is: true,\r\n then: Yup.string().required(\"VAT is required\"),\r\n }),\r\n comment: Yup.string()\r\n .max(500, t('Comment cannot be longer than 500 symbols'))\r\n .required(t('Comment is required'))\r\n });\r\n\r\n function submitForm (values, { setSubmitting, setErrors }) {\r\n onSubmit(values, { setSubmitting, setErrors });\r\n }\r\n\r\n function updateIsCostFinalized(isCancellationFinalized, setFieldValue) {\r\n finalizeCancellationCosts(\r\n () => {setFinalCostValue(isCancellationFinalized, setFieldValue)\r\n });\r\n }\r\n\r\n function setFinalCostValue(isCancellationFinalized, setFieldValue) {\r\n setFieldValue('isCancellationFinalized', isCancellationFinalized);\r\n }\r\n\r\n function setCancellationCostState(cancellationCostInvolved, setFieldValue) {\r\n setFieldValue('cancellationCostInvolved', cancellationCostInvolved);\r\n if(!cancellationCostInvolved)\r\n {\r\n setFieldValue('totalCost', 0);\r\n setFieldValue('totalCostDisplay', parseFloat(0).toFixed(2));\r\n setFieldValue('grossAmount', 0);\r\n setFieldValue('valueAddedTaxId', valueAddedTaxId);\r\n }\r\n }\r\n\r\n function calculateCosts(totalCost, valueAddedTaxId, setFieldValue) {\r\n setFieldValue('totalCost', totalCost);\r\n setFieldValue('totalCostDisplay', parseFloat(totalCost).toFixed(2));\r\n setFieldValue('grossAmount', calculateGrossAmount(totalCost,valueAddedTaxId).toFixed(2));\r\n }\r\n\r\n function calculateGrossAmount(totalCost, valueAddedTaxId) {\r\n return totalCost * (getSelectedVat(valueAddedTaxId).percentage / 100 + 1)\r\n }\r\n\r\n function resetCancellationCostErrors (errors) {\r\n Object.keys(errors).forEach( key => key.toLowerCase() !== \"comment\" ? delete errors[key] : errors[key]);\r\n }\r\n\r\n if(!isEditable) {\r\n return (\r\n
\r\n

{t('Cancellation Costs')}

\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
{t('Q-ty')}{t('Currency')}{t('Price')}{t('Total')}{t('VAT')}{t('Gross amount')}{t('Comment')}
{cancellation.quantity}{exerciseCurrency}{cancellation.vatValue}%{cancellation.comment}
\r\n
\r\n )\r\n }\r\n return (\r\n
\r\n

{t('Cancellation Costs')}

\r\n 0,\r\n isCancellationFinalized: cancellation.isFinalized,\r\n quantity: cancellation.quantity,\r\n comment: cancellation.comment, \r\n price: cancellation.unitCost,\r\n priceDisplay: cancellation.unitCost.toFixed(2),\r\n totalCostDisplay: cancellation.totalCost.toFixed(2),\r\n totalCost: cancellation.totalCost,\r\n grossAmount: cancellation.grossAmount,\r\n valueAddedTaxId: valueAddedTaxId\r\n }}\r\n onSubmit={submitForm}\r\n >\r\n {({ setFieldValue, values, errors, isSubmitting }) => (\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
{t('Q-ty')}{t('Currency')}{t('Price')}{t('Total')}{t('VAT')}{t('Gross amount')}{t('Comment')}
\r\n \r\n \r\n { errors.Quantity && (
{errors.Quantity}
) }\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n { errors.Price && (
{errors.Price}
) }\r\n
\r\n {\r\n if(event.target.value > MAX_INT32) {\r\n event.target.value = MAX_INT32;\r\n }\r\n calculateCosts(event.target.value, values.valueAddedTaxId, setFieldValue);\r\n }}\r\n disabled={!values.cancellationCostInvolved || isPreviewMode}\r\n >\r\n \r\n \r\n { errors.TotalCost && (
{errors.TotalCost }
) }\r\n
\r\n
\r\n {\r\n calculateCosts(values.totalCost, event.target.value, setFieldValue);\r\n }}\r\n >\r\n {valueAddedTaxes.map(vat => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n \r\n { errors.ValueAddedTaxId && (
{errors.ValueAddedTaxId}
) }\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n { errors.Comment && (
{errors.Comment}
) }\r\n
\r\n {\r\n let confirmMessage = values.cancellationCostInvolved ? \r\n \"Are you sure you want remove cancellation costs?\" :\r\n \"Are you sure you want add cancellation costs?\";\r\n Confirm(\r\n t('Cancellation costs involved'),\r\n t(confirmMessage),\r\n () => {\r\n setCancellationCostState(cancellationCostInvolved, setFieldValue);\r\n if(!cancellationCostInvolved) {\r\n resetCancellationCostErrors(errors);\r\n }\r\n },\r\n );\r\n }}\r\n label={t('Cancellation cost involved')}\r\n />\r\n \r\n { errors.CancellationCostInvolved && (
{errors.CancellationCostInvolved}
) }\r\n
\r\n {\r\n let confirmMessage = values.isCancellationFinalized ? \r\n \"Are you sure you want cancellation costs as not final?\" :\r\n \"Are you sure you want confirm cancellation costs as final?\";\r\n Confirm(\r\n t('Update final cancellation costs'),\r\n t(confirmMessage),\r\n () => {\r\n updateIsCostFinalized(isCancellationFinalized, setFieldValue);\r\n },\r\n );\r\n }}\r\n label={t('Final cancellation costs')}\r\n />\r\n \r\n { errors.isCancellationFinalized && (
{errors.isCancellationFinalized}
) }\r\n
\r\n \r\n {t('Confirm Costs')}\r\n \r\n
\r\n
\r\n )}\r\n \r\n
\r\n )\r\n}\r\n\r\nCancellationCosts.propTypes = {\r\n cancellation: PropTypes.object,\r\n t: PropTypes.func,\r\n isEditable : PropTypes.bool,\r\n valueAddedTaxes : PropTypes.array,\r\n valueAddedTaxId : PropTypes.string,\r\n getSelectedVat : PropTypes.func,\r\n onSubmit : PropTypes.func,\r\n isPreviewMode: PropTypes.bool,\r\n finalizeCancellationCosts: PropTypes.func,\r\n exerciseCurrency: PropTypes.string\r\n };\r\n \r\nexport default withRouter(withTranslation()(CancellationCosts));","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Confirm from '@hobs/components/Confirm';\r\nimport Panel from '@hobs/components/Panel';\r\nimport Input from '@hobs/components/Input';\r\nimport Textarea from '@hobs/components/Textarea';\r\nimport PageActions from '@hobs/components/PageActions';\r\nimport Autocomplete from '@hobs/components/Autocomplete';\r\nimport objectPath from 'object-path';\r\nimport Dropdown from '@hobs/components/Dropdown';\r\nimport DropZone from '@hobs/components/DropZone';\r\nimport Status from '@hobs/components/Status';\r\nimport { format } from '@hobs/utils/formatWithTimeZone';\r\nimport {\r\n USER_ROLES,\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN,\r\n SERVICE_REQUEST_FOOTER_STATUSES,\r\n DATE_FORMAT\r\n} from '@hobs/utils/constants';\r\nimport { GhostButton, RaisedButton } from '@hobs/components/Buttons';\r\nimport { H1, H2, H5 } from '@hobs/components/Headings';\r\nimport Toast from '@hobs/components/Toast';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport FieldHistoryMessage from '@hobs/components/FieldHistoryMessage';\r\nimport ShortId from 'shortid';\r\nimport { Formik, Form, Field } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { ServiceRequestNavContext } from '@hobs/components/ServiceRequestNavContext';\r\nimport DeliveryInformation from '@hobs/components/DeliveryInformation';\r\nimport LocationDetails from '@hobs/components/LocationDetails';\r\nimport CatalogItemInfo from '@hobs/components/CatalogItemInfo';\r\nimport AssignmentResponse from '@hobs/components/AssignmentResponse';\r\nimport PageLinks from '@hobs/components/PageLinks';\r\nimport ServiceRequestFooter from '@hobs/components/ServiceRequestFooter';\r\nimport ChangeRequestCreateDialog from '@hobs/containers/ChangeRequestCreateDialog';\r\nimport ActionWithCommentDialog from '@hobs/containers/ActionWithCommentDialog';\r\nimport './ServiceRequestCustom.scss';\r\nimport InformationTooltip from '@hobs/components/InformationToolTip';\r\nimport CancellationCosts from '@hobs/components/CancellationCosts';\r\n\r\nclass ServiceRequestCustom extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n const { t } = props;\r\n this.container = React.createRef();\r\n\r\n this.state = {\r\n itemChanged: false,\r\n attachments: [],\r\n calculatedCostValues: {},\r\n showChangeItem: false,\r\n isEarlyConfirmationSubmitting: false,\r\n serviceRequest: {\r\n isTransportation: false\r\n },\r\n oDataSearchFilter: {},\r\n dataState: { take: 10, skip: 0, sort: [{ field: 'Code', dir: 'asc' }] },\r\n disabled: true,\r\n location: {},\r\n responseFileDialogOpen: false,\r\n changeRequestResponseFileDialogOpen: false,\r\n ...this.props.location.state,\r\n navigation: {}\r\n };\r\n\r\n this.validationSchema = Yup.object().shape({\r\n annexId: Yup.string().when('hasDefaultAnnex', {\r\n is: false,\r\n then: Yup.string()\r\n .required(t('Annex is required'))\r\n .nullable(),\r\n otherwise: Yup.string().nullable()\r\n }),\r\n serviceName: Yup.string()\r\n .required()\r\n .max(128, t('Service name cannot be longer than 128 symbols'))\r\n .required(t('Service name is required')),\r\n serviceDescription: Yup.string()\r\n .max(500, t('Service description cannot be longer than 500 symbols'))\r\n .required(t('Service description is required')),\r\n unitId: Yup.string().required(t('Unit is required')),\r\n unitOfMeasureId: Yup.string().required(t('UoM is required')),\r\n dateFrom: Yup.date()\r\n .required(t('From date is required'))\r\n .typeError(t('From date is required')),\r\n quantity: Yup.number()\r\n .typeError('Invalid number')\r\n .positive(t('Quantity must be greater than 0'))\r\n .required(t('Quantity is required')),\r\n comment: Yup.string()\r\n .nullable()\r\n .max(1500, t('Comment cannot be longer than 1500 symbols')),\r\n location: Yup.object().when('isAdditionalRequest', {\r\n is: true,\r\n then: Yup.object()\r\n .required(t('Location is required'))\r\n .nullable(),\r\n otherwise: Yup.object().nullable()\r\n })\r\n });\r\n }\r\n\r\n calculateCosts(values) {\r\n const { calculateByDays } = this.props;\r\n\r\n if (!values.dateFrom || !values.quantity) {\r\n return;\r\n }\r\n\r\n const currentValues = {\r\n dateFrom: values.dateFrom,\r\n dateTo: values.dateTo,\r\n quantity: values.quantity,\r\n isAccommodation: values.isAccommodation,\r\n isCalculatedByDays: values.isCalculatedByDays,\r\n rateFrom: values.rateFrom,\r\n rateTo: values.rateTo\r\n };\r\n\r\n var currentState = this.state.calculatedCostValues;\r\n\r\n if (JSON.stringify(currentState) !== JSON.stringify(currentValues)) {\r\n calculateByDays(currentValues);\r\n this.setState({ calculatedCostValues: currentValues });\r\n }\r\n }\r\n\r\n cancelForm(dirty, navContext) {\r\n const { history, t } = this.props;\r\n if (!dirty) {\r\n history.push(this.getBackNavigationUrl(navContext));\r\n } else {\r\n Confirm(\r\n t('Cancel service request'),\r\n t('Are you sure you want to cancel? All entered data will be lost.'),\r\n () => {\r\n history.push(this.getBackNavigationUrl(navContext));\r\n }\r\n );\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.loadRequiredData();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const { match } = this.props;\r\n if (\r\n match.params.serviceRequestId !== prevProps.match.params.serviceRequestId\r\n ) {\r\n this.loadRequiredData();\r\n }\r\n }\r\n\r\n navigateBack = navContext => () => {\r\n const { history } = this.props;\r\n history.push(this.getBackNavigationUrl(navContext));\r\n };\r\n\r\n loadRequiredData = () => {\r\n const {\r\n forSubmit,\r\n match,\r\n getServiceRequest,\r\n getFooter,\r\n setAttachments\r\n } = this.props;\r\n\r\n forSubmit(match.params.partyId);\r\n\r\n if (this.isEdit()) {\r\n getServiceRequest(match.params.serviceRequestId).then(({ payload }) => {\r\n this.setState({\r\n serviceRequest: payload,\r\n location: {\r\n original: {\r\n name: payload.locationName,\r\n latitude: payload.latitude,\r\n longtitude: payload.longitude,\r\n site: payload.site,\r\n region: {\r\n name: payload.regionName,\r\n regionId: payload.regionId\r\n }\r\n }\r\n },\r\n disabled:\r\n !payload.canBeEdited ||\r\n this.isOnlyPreviewMode() ||\r\n this.isEarlyConfirmationRequiredAndNotEditable(payload)\r\n });\r\n setAttachments(payload.attachments);\r\n getFooter(match.params.serviceRequestId);\r\n });\r\n this.queryOdata();\r\n } else {\r\n this.setState({\r\n disabled: false\r\n });\r\n }\r\n };\r\n\r\n componentWillUnmount() {\r\n const {\r\n resetOData,\r\n clearAttachments,\r\n clearCalculateByDays,\r\n clearFooter\r\n } = this.props;\r\n\r\n resetOData();\r\n clearAttachments();\r\n clearCalculateByDays();\r\n clearFooter();\r\n }\r\n\r\n isEarlyConfirmationRequiredAndNotEditable(payload) {\r\n return (\r\n payload.response &&\r\n payload.response.earlyConfirmation.isEarlyConfirmationRequired &&\r\n !payload.response.earlyConfirmation.isEditable\r\n );\r\n }\r\n\r\n getServiceRequestsGridUrl() {\r\n return `/service-requests/${this.props.match.params.partyId}`;\r\n }\r\n\r\n getCatalogItemsQueryUrl() {\r\n return `CatalogItemsQueryForServiceRequest(${this.props.match.params.partyId})`;\r\n }\r\n\r\n getHistoryPath() {\r\n const { match } = this.props;\r\n return `/custom-service-request-history/${match.params.partyId}/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getEditPath() {\r\n const { match } = this.props;\r\n return `/custom-service-request/${match.params.partyId}/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getShowPath() {\r\n const { match } = this.props;\r\n return `/request-information/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getChangeHistoryPath() {\r\n const { match } = this.props;\r\n return `/service-request/${match.params.partyId}/${match.params.serviceRequestId}/change-history`;\r\n }\r\n\r\n getDiscussionInitials() {\r\n const { t } = this.props;\r\n return t('SN');\r\n }\r\n\r\n isEdit() {\r\n return !!objectPath.get(this.props.match.params, 'serviceRequestId');\r\n }\r\n\r\n hasDefaultAnnex() {\r\n const { forSubmitData } = this.props;\r\n\r\n return (\r\n forSubmitData && forSubmitData.annexes.some(annex => annex.isDefault)\r\n );\r\n }\r\n\r\n isAdditionalRequest() {\r\n const { forSubmitData } = this.props;\r\n const { serviceRequest } = this.state;\r\n\r\n if (this.isEdit()) {\r\n return serviceRequest.isAdditionalRequest;\r\n }\r\n\r\n return forSubmitData.isAdditionalSrCreateForm;\r\n }\r\n\r\n getAnnexOptions = () => {\r\n const { t, forSubmitData } = this.props;\r\n const annexes = [...forSubmitData.annexes];\r\n const { serviceRequest } = this.state;\r\n\r\n if (\r\n this.isEdit() &&\r\n serviceRequest &&\r\n !annexes.some(annex => annex.annexId === serviceRequest.annexId)\r\n ) {\r\n annexes.push({\r\n annexName: serviceRequest.annexName,\r\n annexId: serviceRequest.annexId\r\n });\r\n }\r\n\r\n if (annexes.length) {\r\n return []\r\n .concat(\r\n [\r\n {\r\n annexName: t('Select annex'),\r\n annexId: ''\r\n }\r\n ],\r\n annexes\r\n )\r\n .map(annex => {\r\n return (\r\n \r\n );\r\n });\r\n }\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n getUnits = units => {\r\n const { serviceRequest } = this.state;\r\n const newUnits = this.flattenUnitsTree(units).map(unit => {\r\n return {\r\n title: unit.unitName,\r\n unitId: unit.unitId\r\n };\r\n });\r\n\r\n if (\r\n this.isEdit() &&\r\n serviceRequest &&\r\n !newUnits.some(unit => unit.unitId === serviceRequest.unitId)\r\n ) {\r\n newUnits.push({\r\n title: serviceRequest.unitName,\r\n unitId: serviceRequest.unitId\r\n });\r\n }\r\n\r\n return this.toUnitsEntity(newUnits);\r\n };\r\n\r\n flattenUnitsTree(array, level = 0) {\r\n if (!Array.isArray(array)) {\r\n return [];\r\n }\r\n\r\n return array.reduce((result, item) => {\r\n result.push({\r\n unitName: `${'\\xa0\\xa0\\xa0'.repeat(level)}${item.unitName}`,\r\n unitId: item.unitId\r\n });\r\n\r\n if (Array.isArray(item.units)) {\r\n result = result.concat(this.flattenUnitsTree(item.units, level + 1));\r\n }\r\n\r\n return result;\r\n }, []);\r\n }\r\n\r\n getGroupOptions = annexId => {\r\n const { t, forSubmitData } = this.props;\r\n const groups = [...forSubmitData.groups];\r\n const { serviceRequest } = this.state;\r\n\r\n if (\r\n this.isEdit() &&\r\n serviceRequest &&\r\n !groups.some(group => group.groupName === serviceRequest.groupName)\r\n ) {\r\n groups.push({\r\n groupName: serviceRequest.groupName,\r\n groupId: serviceRequest.groupId,\r\n annexId: serviceRequest.annexId\r\n });\r\n }\r\n\r\n if (groups.length) {\r\n const filteredGroups = annexId\r\n ? groups.filter(group => group.annexId === annexId)\r\n : groups;\r\n\r\n const placeholder = (\r\n \r\n );\r\n\r\n const options = filteredGroups.map(group => {\r\n return (\r\n \r\n );\r\n });\r\n return [placeholder, options];\r\n }\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n setAnnexValue = (event, setFieldValue) => {\r\n const { groups } = this.props.forSubmitData;\r\n if (groups) {\r\n const currentGroup = groups.filter(\r\n group => group.groupName === event.target.value\r\n )[0];\r\n\r\n if (currentGroup && currentGroup.annexId) {\r\n setFieldValue('annexId', currentGroup.annexId);\r\n }\r\n }\r\n };\r\n\r\n toUnitsEntity(units) {\r\n return units\r\n ? units.map(unit => {\r\n return {\r\n title: unit.title,\r\n value: unit.unitId\r\n };\r\n })\r\n : [];\r\n }\r\n\r\n toUomsEntity(uoms) {\r\n return uoms\r\n ? uoms.map(uom => {\r\n return {\r\n title: uom.value || uom.UnitOfMeasureCode,\r\n value: uom.key || uom.UnitOfMeasureId\r\n };\r\n })\r\n : [];\r\n }\r\n\r\n toActivityEntity(activities) {\r\n return activities\r\n ? activities.map(activity => {\r\n return {\r\n name: activity.value || activity.name,\r\n activityId: activity.key || activity.activityId,\r\n isDefault: activity.isDefault\r\n };\r\n })\r\n : [];\r\n }\r\n\r\n onLocationQueryChange = query => {\r\n this.props.queryLocations(query);\r\n };\r\n\r\n handleFileUpload = value => {\r\n if (value) {\r\n this.props.uploadAttachments({ attachments: value });\r\n }\r\n };\r\n\r\n _customCreate(data) {\r\n const { create, createCustomAdditionalServiceRequest } = this.props;\r\n return this.isAdditionalRequest()\r\n ? createCustomAdditionalServiceRequest(data)\r\n : create(data);\r\n }\r\n\r\n getCustomServiceRequestEditUrl(serviceRequestId) {\r\n const { match } = this.props;\r\n\r\n return `/custom-service-request/${match.params.partyId}/${serviceRequestId}`;\r\n }\r\n\r\n onSubmit = (values, { setErrors, setSubmitting }) => {\r\n const { t, updateCustom, match, update, history } = this.props;\r\n if (\r\n values.dateTo &&\r\n new Date(format(Date.parse(values.dateFrom), DATE_FORMAT)) >\r\n new Date(format(Date.parse(values.dateTo), DATE_FORMAT))\r\n ) {\r\n Toast.warning(t('From date must be before To date'));\r\n setSubmitting(false);\r\n return;\r\n }\r\n\r\n const submitData = this.getSubmitData(values);\r\n\r\n if (this.isEdit()) {\r\n let updateFn = updateCustom;\r\n const data = {\r\n serviceRequestId: match.params.serviceRequestId,\r\n ...submitData\r\n };\r\n\r\n if (this.state.serviceRequest.catalogItemId) {\r\n data.catalogItemId = this.state.serviceRequest.catalogItemId;\r\n updateFn = update;\r\n }\r\n\r\n updateFn(data).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Service request was successfully updated'));\r\n history.push(this.getBackNavigationUrl(this.state.navigation));\r\n } else {\r\n if (!response.payload.details) {\r\n Toast.warning(t(response.payload.message));\r\n } else {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [error.target]: error.message[0]\r\n };\r\n }, {});\r\n\r\n setErrors(errors);\r\n }\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n } else {\r\n this._customCreate(submitData).then(response => {\r\n if (response.success) {\r\n Toast.success(\r\n this.isAdditionalRequest()\r\n ? t('Additional service request submitted successfully')\r\n : t('Service request was successfully created')\r\n );\r\n\r\n if (this.isAdditionalRequest()) {\r\n history.push(\r\n this.getCustomServiceRequestEditUrl(\r\n response.payload.serviceRequestId\r\n )\r\n );\r\n } else {\r\n history.push(this.getBackNavigationUrl(this.state.navigation));\r\n }\r\n } else {\r\n if (!response.payload.details) {\r\n Toast.warning(t(response.payload.message));\r\n } else {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [error.target]: error.message[0]\r\n };\r\n }, {});\r\n\r\n setErrors(errors);\r\n }\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n }\r\n };\r\n\r\n getSubmitData(values) {\r\n const { forSubmitData, attachments } = this.props;\r\n\r\n return {\r\n groupName: values.groupName ? values.groupName : null,\r\n annexId: values.annexId,\r\n serviceName: values.serviceName,\r\n serviceDescription: values.serviceDescription,\r\n unitOfMeasureId: values.unitOfMeasureId,\r\n statementOfRequirementId: forSubmitData.statementOfRequirementId,\r\n unitId: values.unitId,\r\n requestedQuantity: values.quantity,\r\n dateFrom: values.dateFrom,\r\n dateTo: values.dateTo,\r\n isCalculatedByDays: values.isCalculatedByDays,\r\n regionId: objectPath.get(\r\n values.location,\r\n 'original.region.regionId',\r\n null\r\n ),\r\n regionName: objectPath.get(values.location, 'original.region.name', null),\r\n locationName: objectPath.get(values.location, 'original.name', null),\r\n locationComment: values.locationComment,\r\n site: objectPath.get(values.location, 'original.site', null),\r\n latitude: objectPath.get(values.location, 'original.latitude', null),\r\n longitude: objectPath.get(values.location, 'original.longtitude', null),\r\n regionIdFrom: objectPath.get(\r\n values.locationFrom,\r\n 'original.region.regionId',\r\n null\r\n ),\r\n regionNameFrom: objectPath.get(\r\n values.locationFrom,\r\n 'original.region.name',\r\n null\r\n ),\r\n locationNameFrom: objectPath.get(\r\n values.locationFrom,\r\n 'original.name',\r\n null\r\n ),\r\n locationCommentFrom: values.locationCommentFrom,\r\n siteFrom: objectPath.get(values.locationFrom, 'original.site', null),\r\n latitudeFrom: objectPath.get(\r\n values.locationFrom,\r\n 'original.latitude',\r\n null\r\n ),\r\n longitudeFrom: objectPath.get(\r\n values.locationFrom,\r\n 'original.longtitude',\r\n null\r\n ),\r\n comment: values.comment,\r\n activityId: values.activityId,\r\n attachments: attachments\r\n ? attachments.map(attachment => attachment.attachmentId)\r\n : []\r\n };\r\n }\r\n\r\n _remove() {\r\n const { match, remove } = this.props;\r\n\r\n return remove(match.params.partyId, match.params.serviceRequestId);\r\n }\r\n\r\n onRemove = () => {\r\n const { t } = this.props;\r\n Confirm(\r\n t('Delete service request'),\r\n t(\r\n 'Are you sure you want to delete this Service request? It will be removed from your SOR.'\r\n ),\r\n () => {\r\n const { history } = this.props;\r\n\r\n this._remove().then(response => {\r\n if (response.success) {\r\n Toast.success(t('Service request was successfully deleted'));\r\n history.push(this.getBackNavigationUrl(this.state.navigation));\r\n } else {\r\n Toast.warning(response.payload.message);\r\n }\r\n });\r\n }\r\n );\r\n };\r\n\r\n onResponseFileDialogOpen = () => {\r\n this.setState({\r\n responseFileDialogOpen: true\r\n });\r\n };\r\n\r\n onResponseFileDialogClose = () => {\r\n this.setState({\r\n responseFileDialogOpen: false\r\n });\r\n };\r\n\r\n onDeliveryFileDialogOpen = () => {\r\n this.setState({\r\n deliveryFileDialogOpen: true\r\n });\r\n };\r\n\r\n onDeliveryFileDialogClose = () => {\r\n this.setState({\r\n deliveryFileDialogOpen: false\r\n });\r\n };\r\n\r\n onChangeRequestResponseFileDialogOpen = () => {\r\n this.setState({\r\n changeRequestResponseFileDialogOpen: true\r\n });\r\n };\r\n\r\n onChangeRequestResponseFileDialogClose = () => {\r\n this.setState({\r\n changeRequestResponseFileDialogOpen: false\r\n });\r\n };\r\n\r\n formInitialValues() {\r\n const { serviceRequest, forSubmitData } = this.props;\r\n\r\n if (this.isEdit()) {\r\n const group = forSubmitData.groups.find(\r\n group => group.groupName === serviceRequest.groupName\r\n );\r\n\r\n const data = {\r\n ...serviceRequest,\r\n quantity: serviceRequest.requestedQuantity,\r\n serviceDescription: serviceRequest.description,\r\n serviceName: serviceRequest.name,\r\n location: this.state.location,\r\n activityId: this.getInitialActivity()\r\n };\r\n\r\n if (group) {\r\n data.groupId = group.groupId; // HACK!\r\n }\r\n\r\n return data;\r\n }\r\n\r\n return {\r\n // information\r\n annexId: '',\r\n groupId: '',\r\n serviceName: '',\r\n serviceDescription: '',\r\n quantity: '', // requestedQuantity\r\n dateFrom: '',\r\n dateTo: '',\r\n isCalculatedByDays: false,\r\n unitOfMeasureId: '',\r\n statementOfRequirementId: '',\r\n unitId: '',\r\n // locations\r\n location: null,\r\n regionId: '',\r\n regionName: '',\r\n locationName: '',\r\n locationComment: '',\r\n isTransportation: false,\r\n isAccommodation: false,\r\n isMeal: false,\r\n isAdditionalRequest: this.isAdditionalRequest(),\r\n hasDefaultAnnex: this.hasDefaultAnnex(),\r\n site: '',\r\n latitude: '',\r\n longitude: '',\r\n // additional details\r\n activityId: this.getInitialActivity(),\r\n comment: '',\r\n attachments: []\r\n };\r\n }\r\n\r\n getInitialActivity = () => {\r\n const activities = this.props.forSubmitData.activities;\r\n const serviceRequest = this.state.serviceRequest;\r\n\r\n if (!activities || activities.length <= 0) {\r\n return null;\r\n }\r\n\r\n if (serviceRequest.serviceRequestId === undefined) {\r\n const activity = this.toActivityEntity(activities).find(x => x.isDefault);\r\n if (activity) {\r\n return activity.activityId;\r\n }\r\n }\r\n\r\n return serviceRequest.activityId;\r\n };\r\n\r\n toggleChangeItem = () => {\r\n this.setState(prevState => ({\r\n showChangeItem: !prevState.showChangeItem\r\n }));\r\n };\r\n\r\n changeItem = ({ original }, setFieldValue) => {\r\n if (original) {\r\n const isAccommodationOrMeal = original.IsMeal || original.IsAccommodation;\r\n\r\n this.setState(\r\n {\r\n itemChanged: true,\r\n showChangeItem: false,\r\n serviceRequest: {\r\n ...this.state.serviceRequest,\r\n annexId: original.AnnexId,\r\n annexName: original.AnnexName,\r\n attachments: original.CatalogAttachments,\r\n catalogItemId: original.CatalogItemId,\r\n code: original.Code,\r\n description: original.Description,\r\n groupName: original.GroupName,\r\n name: original.Name,\r\n reateFrom: original.RateFrom,\r\n reateTo: original.RateTo,\r\n unitOfMeasureCode: objectPath.get(\r\n original.UnitsOfMeasure.find(item => item.IsDefault),\r\n 'UnitOfMeasureCode',\r\n '-'\r\n ),\r\n unitsOfMeasure: original.UnitsOfMeasure,\r\n isTransportation: original.IsTransportation,\r\n isCalculatedByDays: isAccommodationOrMeal,\r\n catalogItemAttachments: original.CatalogAttachments.map(item => ({\r\n attachmentId: item.AttachmentId,\r\n name: item.Name\r\n }))\r\n }\r\n },\r\n () => {\r\n const uomDefault = original.UnitsOfMeasure.find(\r\n item => item.IsDefault\r\n );\r\n setFieldValue('rateFrom', original.RateFrom);\r\n setFieldValue('rateTo', original.RateTo);\r\n setFieldValue('unitOfMeasureId', uomDefault.UnitOfMeasureId);\r\n setFieldValue('annexId', original.AnnexId);\r\n setFieldValue('locationFrom', this.state.location);\r\n setFieldValue('itemChanged', 'true');\r\n setFieldValue('isAccommodation', original.IsAccommodation);\r\n setFieldValue('isCalculatedByDays', isAccommodationOrMeal);\r\n }\r\n );\r\n }\r\n };\r\n\r\n queryOdata() {\r\n const { oDataSearchFilter, dataState } = this.state;\r\n const filters = [];\r\n\r\n const params = {\r\n ...dataState,\r\n sort: [{ field: 'QuickSearchField', dir: 'asc' }]\r\n };\r\n\r\n if (Object.keys(oDataSearchFilter).length > 0) {\r\n filters.push(oDataSearchFilter);\r\n }\r\n\r\n if (filters.length > 0) {\r\n params.filter = {\r\n logic: 'and',\r\n filters\r\n };\r\n }\r\n\r\n this.props.queryOData(this.getCatalogItemsQueryUrl(), params);\r\n }\r\n\r\n toAutocompleteEntity(\r\n data,\r\n valueIndex = 'code',\r\n titleIndex = 'name',\r\n addServiceCode = false\r\n ) {\r\n return data\r\n ? data.map(item => ({\r\n value: item[valueIndex],\r\n title: addServiceCode\r\n ? `${item[valueIndex]} ${item[titleIndex]}`\r\n : item[titleIndex],\r\n original: item\r\n }))\r\n : [];\r\n }\r\n\r\n onItemQueryChange = query => {\r\n let state = {};\r\n\r\n if (query) {\r\n state = {\r\n oDataSearchFilter: {\r\n logic: 'and',\r\n filters: [\r\n {\r\n field: 'QuickSearchField',\r\n operator: 'contains',\r\n value: query\r\n }\r\n ]\r\n }\r\n };\r\n } else {\r\n state = {\r\n oDataSearchFilter: {}\r\n };\r\n }\r\n\r\n this.setState(state, () => {\r\n this.queryOdata();\r\n });\r\n };\r\n\r\n getBackNavigationUrl = navContext => {\r\n if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.AnnexOverview) {\r\n const { navigationHistory } = this.state;\r\n\r\n const withSearch =\r\n navigationHistory &&\r\n navigationHistory.location &&\r\n navigationHistory.location.search\r\n ? navigationHistory.location.search\r\n : '';\r\n return `/annex-overview${withSearch}`;\r\n } else if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.Orders) {\r\n return '/orders';\r\n } else if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.Tickets) {\r\n return '/tickets';\r\n } else if (\r\n navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.RequestedServices\r\n ) {\r\n return this.getServiceRequestsGridUrl();\r\n } else {\r\n return this.getServiceRequestsGridUrl();\r\n }\r\n };\r\n\r\n getServiceRequestCreateHeaderTitle() {\r\n const { t } = this.props;\r\n if (this.isAdditionalRequest()) {\r\n return t('Custom additional service request');\r\n } else {\r\n return t('Custom service request');\r\n }\r\n }\r\n\r\n getServiceRequestEditHeaderTitle() {\r\n const { t } = this.props;\r\n if (this.isAdditionalRequest()) {\r\n return t('Edit custom additional service request');\r\n } else {\r\n return t('Edit custom service request');\r\n }\r\n }\r\n\r\n getAdditionalCreateWaitingForHnFooter() {\r\n const { t } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n\r\n getAdditionalEditableCreateWaitingForHnFooter(dirty, isSubmitting) {\r\n const { t } = this.props;\r\n return (\r\n \r\n
\r\n \r\n {nav => (\r\n \r\n this.cancelForm(dirty, nav.serviceRequestNavigation)\r\n }\r\n large\r\n >\r\n {t('Cancel')}\r\n \r\n )}\r\n \r\n \r\n {nav => (\r\n {\r\n this.setState({\r\n navigation: nav.serviceRequestNavigation,\r\n navigationHistory: nav.previousPageHistory\r\n });\r\n }}\r\n large\r\n >\r\n {t('Save')}\r\n \r\n )}\r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n getAdditionalCreateWaitingForSnFooter() {\r\n const { t } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n\r\n getAdditionalChangeWaitingForSnFooter() {\r\n const { t } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n\r\n rejectChangeRequestResponse = () => {\r\n const { t, match, changeRequestRejectResponse } = this.props;\r\n Confirm(\r\n t('Reject response'),\r\n t(\"Are you sure, you want to reject HN's response?\"),\r\n () => {\r\n changeRequestRejectResponse(match.params.serviceRequestId).then(\r\n response => {\r\n if (response.success) {\r\n Toast.success(t('Change request successfully rejected'));\r\n this.loadRequiredData();\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot reject response'));\r\n }\r\n }\r\n );\r\n },\r\n () => {},\r\n t('Reject'),\r\n t('Close')\r\n );\r\n };\r\n\r\n acceptChangeRequestResponse = () => {\r\n const { t, match, changeRequestAcceptResponse } = this.props;\r\n Confirm(\r\n t('Accept response'),\r\n t(\"Are you sure, you want to accept HN's response? \"),\r\n () => {\r\n changeRequestAcceptResponse(match.params.serviceRequestId).then(\r\n response => {\r\n if (response.success) {\r\n Toast.success(t('Change request successfully confirmed'));\r\n this.loadRequiredData();\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot accept response'));\r\n }\r\n }\r\n );\r\n },\r\n () => {},\r\n t('Accept'),\r\n t('Close')\r\n );\r\n };\r\n\r\n rejectAdditionalRequestResponse = () => {\r\n const { t, match, createRejectResponse } = this.props;\r\n Confirm(\r\n t('Reject response'),\r\n t(\r\n \"Are you sure, you want to reject HN's response? Service request will be removed from the SOR\"\r\n ),\r\n () => {\r\n createRejectResponse(match.params.serviceRequestId).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Service request successfully removed'));\r\n this.loadRequiredData();\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot reject response'));\r\n }\r\n });\r\n },\r\n () => {},\r\n t('Reject'),\r\n t('Close')\r\n );\r\n };\r\n\r\n acceptAdditionalRequestResponse = () => {\r\n const { t, match, createAcceptResponse } = this.props;\r\n Confirm(\r\n t('Accept response'),\r\n t(\"Are you sure, you want to accept HN's response? \"),\r\n () => {\r\n createAcceptResponse(match.params.serviceRequestId).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Service request successfully confirmed'));\r\n this.loadRequiredData();\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot accept response'));\r\n }\r\n });\r\n },\r\n () => {},\r\n t('Accept'),\r\n t('Close')\r\n );\r\n };\r\n\r\n isOnlyPreviewMode() {\r\n const { hasUserPermission, serviceRequest } = this.props;\r\n return (\r\n hasUserPermission(USER_ROLES.READONLY) ||\r\n (hasUserPermission(USER_ROLES.HOST_UNIT) &&\r\n !serviceRequest.canHostUnitEdit)\r\n );\r\n }\r\n\r\n canUserAcceptResponse() {\r\n const { hasUserPermission } = this.props;\r\n return (\r\n hasUserPermission(USER_ROLES.ADMIN) ||\r\n hasUserPermission(USER_ROLES.SystemAdmin)\r\n );\r\n }\r\n\r\n canUserCreateTicket() {\r\n return !this.isOnlyPreviewMode();\r\n }\r\n\r\n formHasValueChanges(dirty) {\r\n return dirty || (this.state.itemChanged && !this.isActivityEmptyOnLoad());\r\n }\r\n\r\n getNoTicketsFooter() {\r\n const { t, footer } = this.props;\r\n return (\r\n \r\n {this.canUserCreateTicket() && (\r\n <>\r\n }\r\n disabled={footer.isChangeDisabled}\r\n onClick={() => {\r\n this.setState({\r\n showCreateChangeRequestDialog: true\r\n });\r\n }}\r\n >\r\n {t('Add change request')}\r\n \r\n {\r\n this.setState({\r\n showRequestCancellationDialog: true\r\n });\r\n }}\r\n danger\r\n large\r\n iconLeft={}\r\n >\r\n {t('Request for cancellation')}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n getAdditionalCreateAcceptFooter() {\r\n const { t } = this.props;\r\n return (\r\n \r\n {this.canUserAcceptResponse() && (\r\n <>\r\n \r\n {t('Reject')}\r\n \r\n \r\n {t('Accept')}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n getAdditionalEditableCreateAcceptFooter(dirty, isSubmitting) {\r\n const { t } = this.props;\r\n return (\r\n \r\n {!this.formHasValueChanges(dirty) && this.canUserAcceptResponse() && (\r\n <>\r\n \r\n {t('Reject')}\r\n \r\n \r\n {t('Accept')}\r\n \r\n \r\n )}\r\n {this.formHasValueChanges(dirty) && (\r\n <>\r\n \r\n {nav => (\r\n \r\n this.cancelForm(dirty, nav.serviceRequestNavigation)\r\n }\r\n large\r\n >\r\n {t('Cancel')}\r\n \r\n )}\r\n \r\n \r\n {nav => (\r\n {\r\n this.setState({\r\n navigation: nav.serviceRequestNavigation,\r\n navigationHistory: nav.previousPageHistory\r\n });\r\n }}\r\n large\r\n >\r\n {t('Save')}\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n getChangeAcceptFooter() {\r\n const { t } = this.props;\r\n return (\r\n \r\n {this.canUserAcceptResponse() && (\r\n <>\r\n \r\n {t('Reject')}\r\n \r\n \r\n {t('Accept')}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n getCancellationWaitingForHnFooter() {\r\n const { t } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n\r\n getAdditionalChangeWaitingForHnFooter() {\r\n const { t } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n\r\n createRequestCancellation = (\r\n values,\r\n { setSubmitting, setErrors },\r\n setDialogError,\r\n onDialogClose\r\n ) => {\r\n const { t, createCancellationRequest, match } = this.props;\r\n const data = {\r\n ...values,\r\n serviceRequestId: match.params.serviceRequestId\r\n };\r\n\r\n createCancellationRequest(data.serviceRequestId, data).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Request for cancellation submitted successfully'));\r\n onDialogClose();\r\n this.loadRequiredData();\r\n } else if (response.payload && response.payload.details) {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [error.target]: error.message[0]\r\n };\r\n }, {});\r\n if (errors) {\r\n setErrors(errors);\r\n }\r\n } else if (response.payload) {\r\n setDialogError(response.payload.message);\r\n } else {\r\n setDialogError(t('Cannot request for cancellation'));\r\n }\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n renderHeaderCenterActions = () => {\r\n return null;\r\n };\r\n\r\n renderRequestCancellationDialog() {\r\n const { t } = this.props;\r\n const { showRequestCancellationDialog } = this.state;\r\n return (\r\n {\r\n this.setState({\r\n showRequestCancellationDialog: false\r\n });\r\n }}\r\n />\r\n );\r\n }\r\n\r\n render() {\r\n const { isLoading, match, forSubmitData } = this.props;\r\n const { disabled, serviceRequest } = this.state;\r\n\r\n if (isLoading || (!serviceRequest.serviceRequestId && this.isEdit())) {\r\n return null;\r\n }\r\n\r\n if (\r\n (serviceRequest.activityId === null &&\r\n forSubmitData.activities &&\r\n forSubmitData.activities.length !== 0) ||\r\n this.isActivityNameDifferent()\r\n ) {\r\n this.setState({ itemChanged: true });\r\n }\r\n\r\n const editedFields = objectPath.get(serviceRequest, 'editedFields', []);\r\n return (\r\n
\r\n \r\n {nav =>\r\n nav.serviceRequestId !== match.params.serviceRequestId &&\r\n nav.setServiceRequestId(match.params.serviceRequestId)\r\n }\r\n \r\n \r\n {nav =>\r\n this.props.withEscNavigationCallback(\r\n this.navigateBack(nav.serviceRequestNavigation)\r\n )\r\n }\r\n \r\n {this.renderChangeRequestCreateDialog()}\r\n {this.renderRequestCancellationDialog()}\r\n \r\n {({ setFieldValue, values, dirty, isSubmitting }) => (\r\n \r\n {nav => (\r\n <>\r\n {this.renderHeader(dirty, nav, disabled, match)}\r\n
\r\n {this.setState({\r\n navigation: nav.serviceRequestNavigation,\r\n navigationHistory: nav.previousPageHistory\r\n })}\r\n {this.renderPageActions(disabled, dirty, nav, isSubmitting)}\r\n
\r\n
\r\n
\r\n {this.renderItemInformation(\r\n disabled,\r\n setFieldValue,\r\n editedFields,\r\n values\r\n )}\r\n {this.renderAdditionalDetails(\r\n disabled,\r\n editedFields,\r\n setFieldValue\r\n )}\r\n
\r\n {this.renderDeliveryInformation(\r\n setFieldValue,\r\n values,\r\n disabled,\r\n editedFields\r\n )}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n )}\r\n \r\n {this.renderAssignmentResponse()}\r\n
\r\n );\r\n }\r\n\r\n renderAssignmentResponse() {\r\n const { t } = this.props;\r\n const { serviceRequest } = this.state;\r\n\r\n if (!serviceRequest && !this.isEdit()) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n {serviceRequest.response &&\r\n serviceRequest.response.canDeliveryQuantity && (\r\n
\r\n

{t('Response from HN')}

\r\n \r\n {serviceRequest.cancellation && (\r\n \r\n )}\r\n
\r\n )}\r\n {serviceRequest.changeRequestResponse && (\r\n
\r\n

\r\n \r\n {t('Response to change request')}\r\n \r\n

\r\n \r\n
\r\n )}\r\n \r\n );\r\n }\r\n\r\n isActivityNameDifferent() {\r\n return this.props.forSubmitData.activities &&\r\n this.props.forSubmitData.activities.find(\r\n x =>\r\n x.activityId === this.state.serviceRequest.activityId &&\r\n x.name !== this.state.serviceRequest.activityName\r\n )\r\n ? true\r\n : false;\r\n }\r\n\r\n isActivityEmptyOnLoad() {\r\n return this.state.serviceRequest.activityId === null;\r\n }\r\n\r\n renderDeliveryInformation(setFieldValue, values, disabled, editedFields) {\r\n const { forSubmitData, t, calculateByDaysData } = this.props;\r\n const { serviceRequest } = this.state;\r\n\r\n return (\r\n \r\n
\r\n

{t('Delivery information')}

\r\n \r\n\r\n {this.calculateCosts(values)}\r\n\r\n {serviceRequest.isTransportation === false && (\r\n <>\r\n
{t('Location details')}
\r\n \r\n \r\n )}\r\n\r\n {serviceRequest.isTransportation === true &&\r\n this.renderTransportationLocations(\r\n t,\r\n serviceRequest,\r\n setFieldValue,\r\n disabled,\r\n editedFields\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n\r\n renderTransportationLocations(\r\n t,\r\n serviceRequest,\r\n setFieldValue,\r\n disabled,\r\n editedFields\r\n ) {\r\n return (\r\n <>\r\n
{t('Pickup location')}
\r\n \r\n
{t('Delivery location')}
\r\n \r\n \r\n );\r\n }\r\n\r\n renderAdditionalDetails(disabled, editedFields, setFieldValue) {\r\n const { t } = this.props;\r\n\r\n return (\r\n \r\n
\r\n

{t('Additional details')}

\r\n
\r\n \r\n
\r\n
\r\n {\r\n this.handleFileUpload(files);\r\n }}\r\n onChange={files => {\r\n setFieldValue('attachments', files);\r\n }}\r\n onRemove={file => {\r\n this.props.deleteAttachment(file);\r\n }}\r\n disabled={disabled}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n getAnnexWithInformation(disabled) {\r\n return this.props.forSubmitData.annexes &&\r\n this.props.forSubmitData.annexes.find(\r\n x => x.annexId == this.state.serviceRequest.annexId\r\n ) &&\r\n !disabled\r\n ? this.props.forSubmitData.annexes.find(\r\n x => x.annexId == this.state.serviceRequest.annexId\r\n )\r\n : null;\r\n }\r\n\r\n renderItemInformation(disabled, setFieldValue, editedFields, values) {\r\n const { t } = this.props;\r\n const { serviceRequest } = this.state;\r\n\r\n return (\r\n \r\n
\r\n
\r\n

{t('Item information')}

\r\n {!disabled && this.isEdit() && (\r\n
\r\n {this.state.showChangeItem && (\r\n {\r\n this.changeItem(selectedValues, setFieldValue);\r\n }}\r\n onQueryChange={this.onItemQueryChange}\r\n inputClass=\"service-request-custom--change-item-input\"\r\n component={Autocomplete}\r\n noResultsMessage={t('No items found in the Catalog')}\r\n />\r\n )}\r\n {serviceRequest.catalogItemCanBeChanged && (\r\n \r\n {this.state.showChangeItem ? t('Cancel') : t('Change item')}\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n {serviceRequest.catalogItemId ? (\r\n \r\n ) : (\r\n this.renderCustomServiceRequestItemInfo(\r\n setFieldValue,\r\n t,\r\n disabled,\r\n editedFields,\r\n values\r\n )\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n\r\n renderCustomServiceRequestItemInfo(\r\n setFieldValue,\r\n t,\r\n disabled,\r\n editedFields,\r\n values\r\n ) {\r\n return (\r\n
\r\n
\r\n {\r\n setFieldValue('groupName', null);\r\n this.setState({ itemChanged: true });\r\n }}\r\n indicationMessage={FieldHistoryMessage('AnnexName', editedFields)}\r\n >\r\n {this.getAnnexOptions()}\r\n \r\n {\r\n setFieldValue('groupName', event.target.value);\r\n if (!values.annexId) {\r\n this.setAnnexValue(event, setFieldValue);\r\n }\r\n }}\r\n disabled={disabled}\r\n indicationMessage={FieldHistoryMessage('GroupName', editedFields)}\r\n >\r\n {this.getGroupOptions(values.annexId)}\r\n \r\n {[...this.props.forSubmitData.annexes].find(\r\n x => values.annexId == x.annexId && x.annexInformation\r\n ) && (\r\n
\r\n values.annexId == x.annexId\r\n ).annexInformation\r\n }\r\n startDisabled={this.isEdit() && !this.state.itemChanged}\r\n >\r\n
\r\n )}\r\n
\r\n
\r\n \r\n {t('Service name')}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n renderHeader(dirty, nav, disabled, match) {\r\n const { t } = this.props;\r\n const { serviceRequest } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n {\r\n event.preventDefault();\r\n this.cancelForm(dirty, nav.serviceRequestNavigation);\r\n }}\r\n >\r\n \r\n

\r\n {disabled\r\n ? t('Preview service request')\r\n : this.isEdit()\r\n ? this.getServiceRequestEditHeaderTitle()\r\n : this.getServiceRequestCreateHeaderTitle()}\r\n {this.isEdit() && <> - }\r\n

\r\n \r\n\r\n {this.isEdit() && (\r\n <>\r\n
\r\n {serviceRequest.partyCode}, {serviceRequest.unitName} (\r\n {serviceRequest.requestNumber\r\n ? serviceRequest.requestNumber\r\n : '-'}\r\n )\r\n
\r\n \r\n \r\n )}\r\n
\r\n {this.renderHeaderCenterActions()}\r\n {this.isEdit() && (\r\n \r\n )}\r\n
\r\n );\r\n }\r\n\r\n getDefaultFooter(dirty, isSubmitting, nav) {\r\n const { t } = this.props;\r\n return (\r\n <>\r\n {this.isEdit() && (\r\n \r\n {t('Remove this service request')}\r\n \r\n )}\r\n
\r\n this.cancelForm(dirty, nav.serviceRequestNavigation)}\r\n large\r\n >\r\n {t('Cancel')}\r\n \r\n \r\n {this.isAdditionalRequest() ? t('Submit') : t('Save')}\r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n onConfirmServiceRequest(serviceRequestId) {\r\n this.setState({ isEarlyConfirmationSubmitting: true });\r\n const { history } = this.props;\r\n this.props.confirmServiceRequest(serviceRequestId).then(response => {\r\n if (response.success) {\r\n Toast.success('Service request confirmed');\r\n history.push(this.getBackNavigationUrl(this.state.navigation));\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning('Failed to confirm service request');\r\n }\r\n this.setState({ isEarlyConfirmationSubmitting: false });\r\n });\r\n }\r\n\r\n getEarlyConfirmFooter(serviceRequestId, dirty, isSubmitting) {\r\n const { t } = this.props;\r\n return (\r\n \r\n \r\n {t('Remove this service request')}\r\n \r\n
\r\n \r\n {nav => (\r\n \r\n this.cancelForm(dirty, nav.serviceRequestNavigation)\r\n }\r\n large\r\n >\r\n {t('Cancel')}\r\n \r\n )}\r\n \r\n \r\n {nav =>\r\n !this.formHasValueChanges(dirty) ? (\r\n this.onConfirmServiceRequest(serviceRequestId)}\r\n disabled={this.state.isEarlyConfirmationSubmitting}\r\n large\r\n >\r\n {t('Confirm')}\r\n \r\n ) : (\r\n {\r\n this.setState({\r\n navigation: nav.serviceRequestNavigation,\r\n navigationHistory: nav.previousPageHistory\r\n });\r\n }}\r\n large\r\n >\r\n {t('Save')}\r\n \r\n )\r\n }\r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n getEarlyConfirmFooterForDisabled(serviceRequestId) {\r\n const { t } = this.props;\r\n return (\r\n \r\n this.onConfirmServiceRequest(serviceRequestId)}\r\n disabled={this.state.isEarlyConfirmationSubmitting}\r\n large\r\n >\r\n {t('Confirm')}\r\n \r\n \r\n );\r\n }\r\n\r\n getEarlyConfirmNoPermissionFooterForDisabled() {\r\n const { t } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n\r\n renderPageActions(disabled, dirty, nav, isSubmitting) {\r\n const { footer } = this.props;\r\n const { serviceRequest } = this.state;\r\n\r\n const hasEarlyConfirmation =\r\n serviceRequest &&\r\n serviceRequest.response &&\r\n serviceRequest.response.earlyConfirmation;\r\n const earlyConfirmation = hasEarlyConfirmation\r\n ? serviceRequest.response.earlyConfirmation\r\n : null;\r\n\r\n const isEarlyConfirmationRequired = hasEarlyConfirmation\r\n ? earlyConfirmation.isEarlyConfirmationRequired\r\n : false;\r\n const earlyConfirmationIsEditable = hasEarlyConfirmation\r\n ? earlyConfirmation.isEditable\r\n : false;\r\n\r\n return (\r\n \r\n {!disabled &&\r\n (hasEarlyConfirmation &&\r\n isEarlyConfirmationRequired &&\r\n earlyConfirmationIsEditable ? (\r\n this.getEarlyConfirmFooter(\r\n serviceRequest.serviceRequestId,\r\n dirty,\r\n isSubmitting\r\n )\r\n ) : hasEarlyConfirmation &&\r\n isEarlyConfirmationRequired &&\r\n !earlyConfirmationIsEditable ? (\r\n this.getEarlyConfirmNoPermissionFooterForDisabled(\r\n dirty,\r\n isSubmitting,\r\n nav\r\n )\r\n ) : this.isAdditionalRequest &&\r\n footer &&\r\n (footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateWaitingForHn ||\r\n footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateConfirm ||\r\n footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateAccept) ? (\r\n <>\r\n {(footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateWaitingForHn ||\r\n footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateConfirm) &&\r\n this.getAdditionalEditableCreateWaitingForHnFooter(\r\n dirty,\r\n isSubmitting\r\n )}\r\n {footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateAccept &&\r\n this.getAdditionalEditableCreateAcceptFooter(\r\n dirty,\r\n isSubmitting\r\n )}\r\n \r\n ) : (\r\n this.getDefaultFooter(dirty, isSubmitting, nav)\r\n ))}\r\n\r\n {disabled && footer && (\r\n <>\r\n {footer.footerType === SERVICE_REQUEST_FOOTER_STATUSES.None &&\r\n hasEarlyConfirmation &&\r\n isEarlyConfirmationRequired &&\r\n earlyConfirmationIsEditable &&\r\n this.getEarlyConfirmFooterForDisabled(\r\n serviceRequest.serviceRequestId\r\n )}\r\n {footer.footerType === SERVICE_REQUEST_FOOTER_STATUSES.None &&\r\n hasEarlyConfirmation &&\r\n isEarlyConfirmationRequired &&\r\n !earlyConfirmationIsEditable &&\r\n this.getEarlyConfirmNoPermissionFooterForDisabled()}\r\n {(footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateWaitingForHn ||\r\n footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateConfirm) &&\r\n this.getAdditionalCreateWaitingForHnFooter()}\r\n {footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateAccept &&\r\n this.getAdditionalCreateAcceptFooter()}\r\n {footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.RequestForCancellation &&\r\n this.getNoTicketsFooter()}\r\n {(footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalChangeWaitingForHn ||\r\n footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalChangeConfirm) &&\r\n this.getAdditionalChangeWaitingForHnFooter()}\r\n {footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalChangeAccept &&\r\n this.getChangeAcceptFooter()}\r\n {(footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCancellationWaitingForHn ||\r\n footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCancellationConfirm) &&\r\n this.getCancellationWaitingForHnFooter()}\r\n {footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalChangeWaitingForSn &&\r\n this.getAdditionalChangeWaitingForSnFooter()}\r\n {footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateWaitingForSn &&\r\n this.getAdditionalCreateWaitingForSnFooter()}\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n renderChangeRequestCreateDialog() {\r\n const { forSubmitData } = this.props;\r\n const { serviceRequest } = this.state;\r\n\r\n return (\r\n {\r\n this.setState({\r\n showCreateChangeRequestDialog: false\r\n });\r\n }}\r\n unitsOptions={\r\n forSubmitData && forSubmitData.units\r\n ? this.getUnits(forSubmitData.units).map(unit => {\r\n return (\r\n \r\n );\r\n })\r\n : []\r\n }\r\n uomsOptions={\r\n forSubmitData && forSubmitData.unitsOfMeasure\r\n ? this.toUomsEntity(forSubmitData.unitsOfMeasure).map(uom => {\r\n return (\r\n \r\n );\r\n })\r\n : []\r\n }\r\n activities={forSubmitData.activities}\r\n serviceRequest={serviceRequest}\r\n serviceRequestId={serviceRequest.serviceRequestId}\r\n />\r\n );\r\n }\r\n}\r\n\r\nServiceRequestCustom.propTypes = {\r\n oData: PropTypes.object,\r\n forSubmit: PropTypes.func,\r\n isLoading: PropTypes.bool,\r\n forSubmitData: PropTypes.object,\r\n queryLocations: PropTypes.func,\r\n t: PropTypes.func,\r\n match: PropTypes.object,\r\n calculateByDays: PropTypes.func,\r\n clearCalculateByDays: PropTypes.func,\r\n calculateByDaysData: PropTypes.object,\r\n queryOData: PropTypes.func,\r\n resetOData: PropTypes.func,\r\n create: PropTypes.func,\r\n update: PropTypes.func,\r\n updateCustom: PropTypes.func,\r\n confirmServiceRequest: PropTypes.func,\r\n locations: PropTypes.array,\r\n history: PropTypes.object,\r\n getServiceRequest: PropTypes.func,\r\n remove: PropTypes.func,\r\n serviceRequest: PropTypes.object,\r\n uploadAttachments: PropTypes.func,\r\n setAttachments: PropTypes.func,\r\n deleteAttachment: PropTypes.func,\r\n clearAttachments: PropTypes.func,\r\n attachments: PropTypes.array,\r\n location: PropTypes.object,\r\n hasUserPermission: PropTypes.func,\r\n createCustomAdditionalServiceRequest: PropTypes.func,\r\n footer: PropTypes.object,\r\n getFooter: PropTypes.func,\r\n createRejectResponse: PropTypes.func,\r\n createAcceptResponse: PropTypes.func,\r\n changeRequestAcceptResponse: PropTypes.func,\r\n changeRequestRejectResponse: PropTypes.func,\r\n createCancellationRequest: PropTypes.func,\r\n clearFooter: PropTypes.func,\r\n withEscNavigationCallback: PropTypes.func\r\n};\r\n\r\nexport default ServiceRequestCustom;\r\n","import { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { withTranslation } from 'react-i18next';\r\nimport WithEscNavigation from '@hobs/hocs/WithEscNavigation';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport { USER_ROLES } from '@hobs/utils/constants';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\n\r\nimport {\r\n getServiceRequest,\r\n update,\r\n calculateByDays,\r\n clearCalculateByDays,\r\n getFooter,\r\n confirmServiceRequest,\r\n clearFooter\r\n} from '@hobs/actions/serviceRequests';\r\nimport { createCustomAdditionalServiceRequest } from '@hobs/actions/additionalServiceRequest';\r\nimport {\r\n createAcceptResponse,\r\n createRejectResponse,\r\n changeRequestAcceptResponse,\r\n changeRequestRejectResponse,\r\n createCancellationRequest\r\n} from '@hobs/actions/tickets';\r\nimport {\r\n uploadAttachments,\r\n setAttachments,\r\n deleteAttachment,\r\n clearAttachments\r\n} from '@hobs/actions/attachment';\r\nimport { queryLocations } from '@hobs/actions/locations';\r\nimport { queryOData, resetOData } from '@hobs/actions/odata';\r\n\r\nimport _ServiceRequestCustom from '@hobs/containers/ServiceRequestCustom';\r\n\r\nimport {\r\n forSubmit,\r\n create,\r\n update as updateCustom,\r\n remove\r\n} from '../../actions/customServiceRequests';\r\n\r\nclass ServiceRequestCustom extends _ServiceRequestCustom {\r\n getServiceRequestsGridUrl() {\r\n return '/requested-services';\r\n }\r\n\r\n getCatalogItemsQueryUrl() {\r\n return 'CatalogItemsQueryForServiceRequest';\r\n }\r\n\r\n getHistoryPath() {\r\n const { match } = this.props;\r\n return `/custom-service-request-history/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getEditPath() {\r\n const { match } = this.props;\r\n return `/custom-service-request/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getShowPath() {\r\n return null;\r\n }\r\n\r\n getDiscussionInitials() {\r\n const { t } = this.props;\r\n return t('HN');\r\n }\r\n\r\n _remove() {\r\n const { match, remove } = this.props;\r\n\r\n return remove(match.params.serviceRequestId);\r\n }\r\n\r\n canUserAcceptResponse() {\r\n const { hasUserPermission } = this.props;\r\n\r\n return (\r\n !hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT)\r\n );\r\n }\r\n\r\n getCustomServiceRequestEditUrl(serviceRequestId) {\r\n return `/custom-service-request/${serviceRequestId}`;\r\n }\r\n\r\n getChangeHistoryPath() {\r\n const { match } = this.props;\r\n return `/service-request/${match.params.serviceRequestId}/change-history`;\r\n }\r\n}\r\n\r\nconst serviceRequestsLoading = createLoadingSelector([\r\n 'ServiceRequests/Get',\r\n 'CustomServiceRequests/ForSubmit'\r\n]);\r\n\r\nconst mapStateToProps = state => ({\r\n isLoading: serviceRequestsLoading(state),\r\n forSubmitData: state.customServiceRequests.forSubmit,\r\n calculateByDaysData: state.serviceRequests.calculateByDays,\r\n locations: state.locations.query,\r\n oData: state.odata,\r\n serviceRequest: state.serviceRequests.item,\r\n attachments: state.attachment.attachments,\r\n footer: state.serviceRequests.footer\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n queryLocations,\r\n forSubmit,\r\n calculateByDays,\r\n queryOData,\r\n resetOData,\r\n clearCalculateByDays,\r\n create,\r\n update,\r\n updateCustom,\r\n getServiceRequest,\r\n remove,\r\n uploadAttachments,\r\n setAttachments,\r\n deleteAttachment,\r\n clearAttachments,\r\n confirmServiceRequest,\r\n createCustomAdditionalServiceRequest,\r\n getFooter,\r\n createAcceptResponse,\r\n createRejectResponse,\r\n changeRequestAcceptResponse,\r\n changeRequestRejectResponse,\r\n createCancellationRequest,\r\n clearFooter\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(\r\n withTranslation()(\r\n withRouter(WithRoles(WithEscNavigation(ServiceRequestCustom)))\r\n )\r\n);\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport {\r\n FORSUBMIT,\r\n CREATE,\r\n UPDATE,\r\n REMOVE\r\n} from '@hobs/constants/customServiceRequests';\r\n\r\nexport function update(data) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`CustomServiceRequests/${data.serviceRequestId}`, {\r\n body: data,\r\n method: 'PUT'\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: response.payload\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: UPDATE.REQUEST };\r\n }\r\n\r\n function success() {\r\n return { type: UPDATE.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: UPDATE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function forSubmit() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('CustomServiceRequests/ForSubmit')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: JSON.parse(response.response)\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: FORSUBMIT.REQUEST };\r\n }\r\n function success(results) {\r\n return { type: FORSUBMIT.SUCCESS, results };\r\n }\r\n function failure(error) {\r\n return { type: FORSUBMIT.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function create(data) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('CustomServiceRequests', { body: data, method: 'POST' })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: response.payload\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CREATE.REQUEST };\r\n }\r\n function success() {\r\n return { type: CREATE.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: CREATE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function remove(serviceRequestId) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(\r\n `StatementOfRequirements/ServiceRequests/${serviceRequestId}`,\r\n { method: 'DELETE' }\r\n )\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n\r\n return { success: true, payload: response.payload };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n const data = {\r\n status: response.status,\r\n payload: response.payload\r\n };\r\n return { success: false, ...data };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: REMOVE.REQUEST };\r\n }\r\n function success() {\r\n return { type: REMOVE.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: REMOVE.FAILURE, error };\r\n }\r\n}\r\n","import { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport { USER_ROLES } from '@hobs/utils/constants';\r\nimport WithEscNavigation from '@hobs/hocs/WithEscNavigation';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\nimport { queryLocations } from '@hobs/actions/locations';\r\nimport { queryOData, resetOData } from '@hobs/actions/odata';\r\nimport {\r\n uploadAttachments,\r\n setAttachments,\r\n deleteAttachment,\r\n clearAttachments\r\n} from '@hobs/actions/attachment';\r\nimport {\r\n getFooter,\r\n clearFooter,\r\n confirmServiceRequest\r\n} from '@hobs/actions/serviceRequests';\r\nimport _ServiceRequestEdit from '@hobs/containers/ServiceRequestEdit';\r\nimport {\r\n createAcceptResponse,\r\n createRejectResponse,\r\n changeRequestAcceptResponse,\r\n changeRequestRejectResponse,\r\n createCancellationRequest\r\n} from '@hobs/actions/tickets';\r\nimport {\r\n getServiceRequest,\r\n update,\r\n remove,\r\n forSubmit,\r\n calculateByDays,\r\n clearCalculateByDays\r\n} from '../../actions/serviceRequests';\r\n\r\nclass ServiceRequestEdit extends _ServiceRequestEdit {\r\n async loadComponentData() {\r\n const {\r\n match,\r\n getServiceRequest,\r\n forSubmit,\r\n hasUserPermission,\r\n getFooter,\r\n setAttachments\r\n } = this.props;\r\n\r\n await forSubmit();\r\n await getServiceRequest(match.params.serviceRequestId).then(\r\n ({ payload }) => {\r\n setAttachments(payload.attachments);\r\n getFooter(match.params.serviceRequestId);\r\n this.setState({\r\n serviceRequest: {\r\n ...payload,\r\n originalIsTransportation: payload.isTransportation\r\n },\r\n disabled:\r\n !payload.canBeEdited ||\r\n hasUserPermission(USER_ROLES.READONLY) ||\r\n hasUserPermission(USER_ROLES.HOST_UNIT) ||\r\n payload.isAdditionalRequest\r\n });\r\n }\r\n );\r\n this.queryOdata();\r\n }\r\n\r\n getServiceRequestsGridUrl() {\r\n return '/requested-services';\r\n }\r\n\r\n getCatalogItemsQueryUrl() {\r\n return 'CatalogItemsQueryForServiceRequest';\r\n }\r\n\r\n getHistoryPath() {\r\n const { match } = this.props;\r\n return `/service-request-history/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getEditPath() {\r\n const { match } = this.props;\r\n return `/service-request/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getShowPath() {\r\n return null;\r\n }\r\n\r\n getTransportationPath() {\r\n const { match } = this.props;\r\n return `/service-request/${match.params.serviceRequestId}/transportation`;\r\n }\r\n\r\n getChangeHistoryPath() {\r\n const { match } = this.props;\r\n return `/service-request/${match.params.serviceRequestId}/change-history`;\r\n }\r\n\r\n getDiscussionInitials() {\r\n const { t } = this.props;\r\n return t('HN');\r\n }\r\n\r\n _remove() {\r\n const { match, remove } = this.props;\r\n\r\n return remove(match.params.serviceRequestId);\r\n }\r\n\r\n canUserAcceptResponse() {\r\n const { hasUserPermission } = this.props;\r\n\r\n return (\r\n !hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT)\r\n );\r\n }\r\n\r\n getServiceRequestParent() {\r\n const { serviceRequest } = this.state;\r\n\r\n return serviceRequest.parentCategory\r\n ? {\r\n to: `/service-request/${serviceRequest.parentCategory.serviceRequestId}`,\r\n title: serviceRequest.parentCategory.name\r\n }\r\n : null;\r\n }\r\n}\r\n\r\nconst serviceRequestsLoading = createLoadingSelector([\r\n 'ServiceRequests/Get',\r\n 'ServiceRequests/ForSubmit'\r\n]);\r\n\r\nconst mapStateToProps = state => ({\r\n isLoading: serviceRequestsLoading(state),\r\n query: state.locations.query,\r\n oData: state.odata,\r\n serviceRequest: state.serviceRequests.item,\r\n forSubmitData: state.serviceRequests.forSubmit,\r\n attachments: state.attachment.attachments,\r\n calculateByDaysData: state.serviceRequests.calculateByDays,\r\n footer: state.serviceRequests.footer\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n update,\r\n queryLocations,\r\n queryOData,\r\n resetOData,\r\n remove,\r\n getServiceRequest,\r\n confirmServiceRequest,\r\n forSubmit,\r\n uploadAttachments,\r\n setAttachments,\r\n deleteAttachment,\r\n clearAttachments,\r\n calculateByDays,\r\n clearCalculateByDays,\r\n getFooter,\r\n createAcceptResponse,\r\n createRejectResponse,\r\n changeRequestAcceptResponse,\r\n changeRequestRejectResponse,\r\n createCancellationRequest,\r\n clearFooter\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(\r\n withTranslation()(\r\n withRouter(WithRoles(WithEscNavigation(ServiceRequestEdit)))\r\n )\r\n);\r\n","import React, { PureComponent } from 'react';\r\nimport { H2, H5 } from '@hobs/components/Headings';\r\nimport Panel from '@hobs/components/Panel';\r\nimport { Formik, Field } from 'formik';\r\nimport PropTypes from 'prop-types';\r\nimport Toast from '@hobs/components/Toast';\r\nimport objectPath from 'object-path';\r\nimport ShortId from 'shortid';\r\nimport Autocomplete from '@hobs/components/Autocomplete';\r\nimport Textarea from '@hobs/components/Textarea';\r\nimport DropZone from '@hobs/components/DropZone';\r\nimport Confirm from '@hobs/components/Confirm';\r\nimport Icon from '@hobs/components/Icon';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport { format } from '@hobs/utils/formatWithTimeZone';\r\nimport {\r\n USER_ROLES,\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN,\r\n SERVICE_REQUEST_FOOTER_STATUSES,\r\n DATE_FORMAT\r\n} from '@hobs/utils/constants';\r\nimport { GhostButton, RaisedButton } from '@hobs/components/Buttons';\r\nimport PageActions from '@hobs/components/PageActions';\r\nimport * as Yup from 'yup';\r\nimport { ServiceRequestNavContext } from '@hobs/components/ServiceRequestNavContext';\r\nimport CalculateByDays from '@hobs/utils/calculateByDays';\r\nimport FieldHistoryMessage from '@hobs/components/FieldHistoryMessage';\r\nimport PageHeader from '@hobs/components/PageHeader';\r\nimport AssignmentResponse from '@hobs/components/AssignmentResponse';\r\nimport CatalogItemInfo from '@hobs/components/CatalogItemInfo';\r\nimport DeliveryInformation from '@hobs/components/DeliveryInformation';\r\nimport LocationDetails from '@hobs/components/LocationDetails';\r\nimport PageLinks from '@hobs/components/PageLinks';\r\nimport ServiceRequestFooter from '@hobs/components/ServiceRequestFooter';\r\nimport ChangeRequestCreateDialog from '@hobs/containers/ChangeRequestCreateDialog';\r\nimport ActionWithCommentDialog from '@hobs/containers/ActionWithCommentDialog';\r\nimport CancellationCosts from '@hobs/components/CancellationCosts';\r\n\r\nimport './ServiceRequestEdit.scss';\r\n\r\nclass ServiceRequestEdit extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { t } = this.props;\r\n\r\n this.state = {\r\n attachments: [],\r\n showChangeItem: false,\r\n isEarlyConfirmationSubmitting: false,\r\n serviceRequest: {},\r\n navigation: {},\r\n oDataSearchFilter: {},\r\n dataState: { take: 10, skip: 0, sort: [{ field: 'Code', dir: 'asc' }] },\r\n disabled: true,\r\n responseFileDialogOpen: false,\r\n deliveryFileDialogOpen: false,\r\n itemChanged: false,\r\n showCreateChangeRequestDialog: false,\r\n showRequestCancellationDialog: false,\r\n ...this.props.location.state,\r\n exerciseCurrency: ''\r\n };\r\n\r\n this.container = React.createRef();\r\n this.validationSchema = Yup.object().shape({\r\n unitId: Yup.string().required(t('Unit is required')),\r\n unitOfMeasureId: Yup.string().required(t('UoM is required')),\r\n dateFrom: Yup.date()\r\n .required(t('From date is required'))\r\n .typeError(t('From date is required'))\r\n .nullable(),\r\n quantity: Yup.number()\r\n .min(0, t('Quantity must be greater than 0'))\r\n .required(t('Quantity is required'))\r\n .typeError(t('Invalid number')),\r\n comment: Yup.string()\r\n .max(1500, t('Comment cannot be longer than 1500 symbols'))\r\n .nullable()\r\n });\r\n }\r\n\r\n async componentDidMount() {\r\n await this.loadComponentData();\r\n }\r\n\r\n async componentDidUpdate(prevProps) {\r\n const { match } = this.props;\r\n if (\r\n match.params.serviceRequestId !== prevProps.match.params.serviceRequestId\r\n ) {\r\n await this.loadComponentData();\r\n }\r\n }\r\n\r\n navigateBack = navContext => () => {\r\n const { history } = this.props;\r\n history.push(this.getBackNavigationUrl(navContext));\r\n };\r\n\r\n isOnlyPreviewMode() {\r\n const { hasUserPermission, serviceRequest } = this.props;\r\n return (\r\n hasUserPermission(USER_ROLES.READONLY) ||\r\n (hasUserPermission(USER_ROLES.HOST_UNIT) &&\r\n !serviceRequest.canHostUnitEdit)\r\n );\r\n }\r\n\r\n loadComponentData = async () => {\r\n const {\r\n match,\r\n getServiceRequest,\r\n forSubmit,\r\n getFooter,\r\n setAttachments\r\n } = this.props;\r\n\r\n await forSubmit(match.params.partyId);\r\n await getServiceRequest(match.params.serviceRequestId).then(\r\n ({ payload }) => {\r\n setAttachments(payload.attachments);\r\n getFooter(match.params.serviceRequestId);\r\n this.setState({\r\n serviceRequest: {\r\n ...payload,\r\n originalIsTransportation: payload.isTransportation\r\n },\r\n disabled:\r\n !payload.canBeEdited ||\r\n this.isOnlyPreviewMode() ||\r\n this.isEarlyConfirmationRequiredAndNotEditable(payload)\r\n });\r\n }\r\n );\r\n this.queryOdata();\r\n };\r\n\r\n isEarlyConfirmationRequiredAndNotEditable(payload) {\r\n return (\r\n payload.response &&\r\n payload.response.earlyConfirmation.isEarlyConfirmationRequired &&\r\n !payload.response.earlyConfirmation.isEditable\r\n );\r\n }\r\n\r\n getServiceRequestsGridUrl() {\r\n return `/service-requests/${this.props.match.params.partyId}`;\r\n }\r\n\r\n getCatalogItemsQueryUrl() {\r\n return `CatalogItemsQueryForServiceRequest(${this.props.match.params.partyId})`;\r\n }\r\n\r\n getHistoryPath() {\r\n const { match } = this.props;\r\n return `/service-request-history/${match.params.partyId}/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getEditPath() {\r\n const { match } = this.props;\r\n return `/service-request/${match.params.partyId}/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getShowPath() {\r\n const { match } = this.props;\r\n return `/request-information/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getTransportationPath() {\r\n const { match } = this.props;\r\n return `/service-request/${match.params.partyId}/${match.params.serviceRequestId}/transportation`;\r\n }\r\n\r\n getChangeHistoryPath() {\r\n const { match } = this.props;\r\n return `/service-request/${match.params.partyId}/${match.params.serviceRequestId}/change-history`;\r\n }\r\n\r\n getDiscussionInitials() {\r\n const { t } = this.props;\r\n return t('SN');\r\n }\r\n\r\n getServiceRequestParent() {\r\n const { match } = this.props;\r\n const { serviceRequest } = this.state;\r\n\r\n return serviceRequest.parentCategory\r\n ? {\r\n to: `/service-request/${match.params.partyId}/${serviceRequest.parentCategory.serviceRequestId}`,\r\n title: serviceRequest.parentCategory.name\r\n }\r\n : null;\r\n }\r\n\r\n isAdditionalRequest() {\r\n const { serviceRequest } = this.state;\r\n\r\n return serviceRequest.isAdditionalRequest;\r\n }\r\n\r\n componentWillUnmount() {\r\n const { resetOData, clearAttachments, clearFooter } = this.props;\r\n resetOData();\r\n clearAttachments();\r\n clearFooter();\r\n\r\n CalculateByDays.reset();\r\n }\r\n\r\n handleFileUpload = value => {\r\n if (value) {\r\n this.props.uploadAttachments({ attachments: value });\r\n }\r\n };\r\n\r\n onSubmit = (values, { setErrors, setSubmitting }) => {\r\n const { t, match, attachments, history } = this.props;\r\n const {\r\n catalogItemId,\r\n unitOfMeasureId,\r\n statementOfRequirementId,\r\n unitId,\r\n activityId,\r\n quantity,\r\n dateFrom,\r\n dateTo,\r\n isCalculatedByDays,\r\n isAccommodation,\r\n isMeal,\r\n comment,\r\n locationComment,\r\n location = {\r\n original: {\r\n name: values.locationName,\r\n latitude: values.latitude,\r\n longtitude: values.longitude,\r\n site: values.site,\r\n region: {\r\n name: values.regionName,\r\n regionId: values.regionId\r\n }\r\n }\r\n },\r\n locationCommentFrom,\r\n locationFrom = {\r\n original: {\r\n name: values.locationNameFrom,\r\n latitude: values.latitudeFrom,\r\n longtitude: values.longitudeFrom,\r\n site: values.siteFrom,\r\n region: {\r\n name: values.regionNameFrom,\r\n regionId: values.regionIdFrom\r\n }\r\n }\r\n }\r\n } = values;\r\n\r\n if (\r\n values.dateTo &&\r\n new Date(format(Date.parse(values.dateFrom), DATE_FORMAT)) >\r\n new Date(format(Date.parse(values.dateTo), DATE_FORMAT))\r\n ) {\r\n Toast.warning(t('From date must be before To date'));\r\n setSubmitting(false);\r\n return;\r\n }\r\n this.props\r\n .update({\r\n serviceRequestId: match.params.serviceRequestId,\r\n catalogItemId,\r\n unitOfMeasureId,\r\n statementOfRequirementId,\r\n unitId,\r\n requestedQuantity: quantity,\r\n dateFrom,\r\n dateTo,\r\n isCalculatedByDays,\r\n isAccommodation,\r\n isMeal,\r\n regionId: objectPath.get(\r\n location,\r\n 'original.region.regionId',\r\n null\r\n ),\r\n activityId,\r\n regionName: objectPath.get(location, 'original.region.name', null),\r\n locationName: objectPath.get(location, 'original.name', null),\r\n locationComment,\r\n site: objectPath.get(location, 'original.site', null),\r\n latitude: objectPath.get(location, 'original.latitude', null),\r\n longitude: objectPath.get(location, 'original.longtitude', null),\r\n // from\r\n regionIdFrom: objectPath.get(\r\n locationFrom,\r\n 'original.region.regionId',\r\n null\r\n ),\r\n regionNameFrom: objectPath.get(\r\n locationFrom,\r\n 'original.region.name',\r\n null\r\n ),\r\n locationNameFrom: objectPath.get(locationFrom, 'original.name', null),\r\n locationCommentFrom,\r\n siteFrom: objectPath.get(locationFrom, 'original.site', null),\r\n latitudeFrom: objectPath.get(locationFrom, 'original.latitude', null),\r\n longitudeFrom: objectPath.get(\r\n locationFrom,\r\n 'original.longtitude',\r\n null\r\n ),\r\n comment,\r\n attachments: attachments\r\n ? attachments.map(attachment => attachment.attachmentId)\r\n : []\r\n })\r\n .then(response => {\r\n if (response.success) {\r\n Toast.success(t('Service request updated successfully'));\r\n history.push(this.getBackNavigationUrl(this.state.navigation));\r\n } else {\r\n if (!response.payload.details) {\r\n Toast.warning(t(response.payload.message));\r\n } else {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [error.target]: error.message[0]\r\n };\r\n }, {});\r\n if (errors) {\r\n setErrors(errors);\r\n }\r\n }\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n _remove() {\r\n const { match, remove } = this.props;\r\n\r\n return remove(match.params.partyId, match.params.serviceRequestId);\r\n }\r\n\r\n onRemove = () => {\r\n const { t } = this.props;\r\n Confirm(\r\n t('Delete service request'),\r\n t(\r\n 'Are you sure you want to delete this Service request? It will be removed from your SOR.'\r\n ),\r\n () => {\r\n const { history } = this.props;\r\n\r\n this._remove().then(response => {\r\n if (response.success) {\r\n Toast.success(t('Service request was successfully deleted'));\r\n history.push(this.getServiceRequestsGridUrl());\r\n } else {\r\n Toast.warning(response.payload.message);\r\n }\r\n });\r\n }\r\n );\r\n };\r\n\r\n toggleChangeItem = () => {\r\n const { t } = this.props;\r\n const { serviceRequest } = this.state;\r\n\r\n if (serviceRequest.catalogItemCanBeChanged) {\r\n this.setState(prevState => ({\r\n showChangeItem: !prevState.showChangeItem\r\n }));\r\n } else if (serviceRequest.catalogItemChangeErrorMessage) {\r\n Toast.warning(serviceRequest.catalogItemChangeErrorMessage);\r\n } else {\r\n Toast.warning(\r\n t(\r\n 'This service request is already split to other service requests and cannot be changed anymore'\r\n )\r\n );\r\n }\r\n };\r\n\r\n changeItem = ({ original }, setFieldValue) => {\r\n const uomDefault = original.UnitsOfMeasure.find(item => item.IsDefault);\r\n const isAccommodationOrMeal = original.IsMeal || original.IsAccommodation;\r\n this.setState(\r\n {\r\n itemChanged: true,\r\n showChangeItem: false,\r\n serviceRequest: {\r\n ...this.state.serviceRequest,\r\n annexId: original.AnnexId,\r\n annexName: original.AnnexName,\r\n attachments: original.catalogItemAttachments,\r\n catalogItemId: original.CatalogItemId,\r\n code: original.Code,\r\n description: original.Description,\r\n groupName: original.GroupName,\r\n name: original.Name,\r\n reateFrom: original.RateFrom,\r\n reateTo: original.RateTo,\r\n unitOfMeasureCode: objectPath.get(\r\n uomDefault,\r\n 'UnitOfMeasureCode',\r\n '-'\r\n ),\r\n unitOfMeasureId: uomDefault ? uomDefault.UnitOfMeasureId : null,\r\n unitsOfMeasure: original.UnitsOfMeasure,\r\n isTransportation: original.IsTransportation,\r\n isAccommodation: original.IsAccommodation,\r\n isMeal: original.IsMeal,\r\n isCalculatedByDays: isAccommodationOrMeal,\r\n catalogItemAttachments: original.CatalogAttachments.map(item => ({\r\n attachmentId: item.AttachmentId,\r\n name: item.Name\r\n }))\r\n }\r\n },\r\n () => {\r\n setFieldValue('unitOfMeasureId', uomDefault.UnitOfMeasureId);\r\n setFieldValue('annexId', original.AnnexId);\r\n setFieldValue('itemChanged', 'true');\r\n }\r\n );\r\n };\r\n\r\n queryOdata() {\r\n const { oDataSearchFilter, dataState } = this.state;\r\n const filters = [];\r\n\r\n const params = {\r\n ...dataState\r\n };\r\n\r\n if (Object.keys(oDataSearchFilter).length > 0) {\r\n filters.push(oDataSearchFilter);\r\n }\r\n\r\n if (filters.length > 0) {\r\n params.filter = {\r\n logic: 'and',\r\n filters\r\n };\r\n }\r\n\r\n this.props.queryOData(this.getCatalogItemsQueryUrl(), params);\r\n }\r\n\r\n toAutocompleteEntity(\r\n data,\r\n valueIndex = 'code',\r\n titleIndex = 'name',\r\n addServiceCode = false\r\n ) {\r\n return data\r\n ? data.map(item => ({\r\n value: item[valueIndex],\r\n title: addServiceCode\r\n ? `${item[valueIndex]} ${item[titleIndex]}`\r\n : item[titleIndex],\r\n original: item\r\n }))\r\n : [];\r\n }\r\n\r\n getUnits = units => {\r\n const { serviceRequest } = this.state;\r\n const newUnits = this.flattenUnitsTree(units).map(unit => {\r\n return {\r\n title: unit.unitName,\r\n unitId: unit.unitId\r\n };\r\n });\r\n if (\r\n serviceRequest &&\r\n !newUnits.some(unit => unit.unitId === serviceRequest.unitId)\r\n ) {\r\n newUnits.push({\r\n title: serviceRequest.unitName,\r\n unitId: serviceRequest.unitId\r\n });\r\n }\r\n\r\n return this.toUnitsEntity(newUnits);\r\n };\r\n\r\n flattenUnitsTree(array, level = 0) {\r\n if (!Array.isArray(array)) {\r\n return [];\r\n }\r\n\r\n return array.reduce((result, item) => {\r\n result.push({\r\n unitName: `${'\\xa0\\xa0\\xa0'.repeat(level)}${item.unitName}`,\r\n unitId: item.unitId\r\n });\r\n\r\n if (Array.isArray(item.units)) {\r\n result = result.concat(this.flattenUnitsTree(item.units, level + 1));\r\n }\r\n\r\n return result;\r\n }, []);\r\n }\r\n\r\n toUnitsEntity(units) {\r\n return units\r\n ? units.map(unit => {\r\n return {\r\n title: unit.title,\r\n value: unit.unitId\r\n };\r\n })\r\n : [];\r\n }\r\n\r\n toActivityEntity(activities) {\r\n return activities.map(activity => {\r\n return {\r\n name: activity.name,\r\n activityId: activity.activityId,\r\n isDefault: activity.isDefault\r\n };\r\n });\r\n }\r\n\r\n toUomsEntity(uoms) {\r\n return uoms\r\n ? uoms.map(uom => {\r\n return {\r\n title: uom.unitOfMeasureCode || uom.UnitOfMeasureCode,\r\n value: uom.unitOfMeasureId || uom.UnitOfMeasureId\r\n };\r\n })\r\n : [];\r\n }\r\n\r\n onItemQueryChange = query => {\r\n let state = {};\r\n\r\n if (query) {\r\n state = {\r\n oDataSearchFilter: {\r\n logic: 'and',\r\n filters: [\r\n {\r\n field: 'QuickSearchField',\r\n operator: 'contains',\r\n value: query\r\n }\r\n ]\r\n }\r\n };\r\n } else {\r\n state = {\r\n oDataSearchFilter: {}\r\n };\r\n }\r\n\r\n this.setState(state, () => {\r\n this.queryOdata();\r\n });\r\n };\r\n\r\n onLocationQueryChange = query => {\r\n if (this.locationQueryTimeout) {\r\n clearTimeout(this.locationQueryTimeout);\r\n }\r\n\r\n this.locationQueryTimeout = setTimeout(() => {\r\n this.props.queryLocations(query);\r\n }, 300);\r\n };\r\n\r\n onResponseFileDialogOpen = () => {\r\n this.setState({\r\n responseFileDialogOpen: true\r\n });\r\n };\r\n\r\n onResponseFileDialogClose = () => {\r\n this.setState({\r\n responseFileDialogOpen: false\r\n });\r\n };\r\n\r\n onChangeRequestResponseFileDialogOpen = () => {\r\n this.setState({\r\n changeRequestResponseFileDialogOpen: true\r\n });\r\n };\r\n\r\n onChangeRequestResponseFileDialogClose = () => {\r\n this.setState({\r\n changeRequestResponseFileDialogOpen: false\r\n });\r\n };\r\n\r\n calculateCosts(values) {\r\n if (!values.dateFrom || !values.quantity) {\r\n return;\r\n }\r\n const data = CalculateByDays.calculate(values, {\r\n RateFrom: values.reateFrom,\r\n RateTo: values.reateTo\r\n });\r\n\r\n if (data) {\r\n this.props.calculateByDays(data);\r\n }\r\n }\r\n\r\n cancelForm(dirty, navContext) {\r\n const { t, history } = this.props;\r\n if (!dirty) {\r\n history.push(this.getBackNavigationUrl(navContext));\r\n } else {\r\n Confirm(\r\n t('Cancel service request'),\r\n t('Are you sure you want to cancel? All entered data will be lost.'),\r\n () => {\r\n history.push(this.getBackNavigationUrl(navContext));\r\n }\r\n );\r\n }\r\n }\r\n\r\n getBackNavigationUrl = navContext => {\r\n if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.AnnexOverview) {\r\n const { navigationHistory } = this.state;\r\n\r\n const withSearch =\r\n navigationHistory &&\r\n navigationHistory.location &&\r\n navigationHistory.location.search\r\n ? navigationHistory.location.search\r\n : '';\r\n\r\n return `/annex-overview${withSearch}`;\r\n } else if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.Orders) {\r\n return '/orders';\r\n } else if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.Tickets) {\r\n return '/tickets';\r\n } else if (\r\n navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.RequestedServices\r\n ) {\r\n return this.getServiceRequestsGridUrl();\r\n }\r\n\r\n return this.getServiceRequestsGridUrl();\r\n };\r\n\r\n getAdditionalCreateWaitingForHnFooter() {\r\n const { t } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n\r\n getAdditionalEditableCreateWaitingForHnFooter(dirty, isSubmitting) {\r\n const { t } = this.props;\r\n return (\r\n \r\n
\r\n \r\n {nav => (\r\n \r\n this.cancelForm(dirty, nav.serviceRequestNavigation)\r\n }\r\n large\r\n >\r\n {t('Cancel')}\r\n \r\n )}\r\n \r\n \r\n {nav => (\r\n {\r\n this.setState({\r\n navigation: nav.serviceRequestNavigation,\r\n navigationHistory: nav.previousPageHistory\r\n });\r\n }}\r\n large\r\n >\r\n {t('Save')}\r\n \r\n )}\r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n rejectAdditionalRequestResponse = () => {\r\n const { t, match, createRejectResponse } = this.props;\r\n Confirm(\r\n t('Reject response'),\r\n t(\r\n \"Are you sure, you want to reject HN's response? Service request will be removed from the SOR\"\r\n ),\r\n () => {\r\n createRejectResponse(match.params.serviceRequestId).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Service request successfully removed'));\r\n this.loadComponentData();\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot reject response'));\r\n }\r\n });\r\n },\r\n () => {},\r\n t('Reject'),\r\n t('Close')\r\n );\r\n };\r\n\r\n acceptAdditionalRequestResponse = () => {\r\n const { t, match, createAcceptResponse } = this.props;\r\n Confirm(\r\n t('Accept response'),\r\n t(\"Are you sure, you want to accept HN's response? \"),\r\n () => {\r\n createAcceptResponse(match.params.serviceRequestId).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Service request successfully confirmed'));\r\n this.loadComponentData();\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot accept response'));\r\n }\r\n });\r\n },\r\n () => {},\r\n t('Accept'),\r\n t('Close')\r\n );\r\n };\r\n\r\n canUserAcceptResponse() {\r\n const { hasUserPermission } = this.props;\r\n\r\n return (\r\n hasUserPermission(USER_ROLES.ADMIN) ||\r\n hasUserPermission(USER_ROLES.SystemAdmin)\r\n );\r\n }\r\n\r\n formHasValueChanges(dirty) {\r\n return dirty || this.state.itemChanged;\r\n }\r\n\r\n getAdditionalCreateAcceptFooter() {\r\n const { t } = this.props;\r\n return (\r\n \r\n {this.canUserAcceptResponse() && (\r\n <>\r\n \r\n {t('Reject')}\r\n \r\n \r\n {t('Accept')}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n getAdditionalEditableCreateAcceptFooter(dirty, isSubmitting) {\r\n const { t } = this.props;\r\n\r\n return (\r\n \r\n {!this.formHasValueChanges(dirty) && this.canUserAcceptResponse() && (\r\n <>\r\n \r\n {t('Reject')}\r\n \r\n \r\n {t('Accept')}\r\n \r\n \r\n )}\r\n {this.formHasValueChanges(dirty) && (\r\n <>\r\n \r\n {nav => (\r\n \r\n this.cancelForm(dirty, nav.serviceRequestNavigation)\r\n }\r\n large\r\n >\r\n {t('Cancel')}\r\n \r\n )}\r\n \r\n \r\n {nav => (\r\n {\r\n this.setState({\r\n navigation: nav.serviceRequestNavigation,\r\n navigationHistory: nav.previousPageHistory\r\n });\r\n }}\r\n large\r\n >\r\n {t('Save')}\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n getEarlyConfirmFooter(serviceRequestId, dirty, isSubmitting) {\r\n const { t } = this.props;\r\n\r\n return (\r\n \r\n \r\n {t('Remove this service request')}\r\n \r\n
\r\n \r\n {nav => (\r\n \r\n this.cancelForm(dirty, nav.serviceRequestNavigation)\r\n }\r\n large\r\n >\r\n {t('Cancel')}\r\n \r\n )}\r\n \r\n \r\n {nav =>\r\n !this.formHasValueChanges(dirty) ? (\r\n this.onConfirmServiceRequest(serviceRequestId)}\r\n disabled={this.state.isEarlyConfirmationSubmitting}\r\n large\r\n >\r\n {t('Confirm')}\r\n \r\n ) : (\r\n {\r\n this.setState({\r\n navigation: nav.serviceRequestNavigation,\r\n navigationHistory: nav.previousPageHistory\r\n });\r\n }}\r\n large\r\n >\r\n {t('Save')}\r\n \r\n )\r\n }\r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n getEarlyConfirmFooterForDisabled(serviceRequestId) {\r\n const { t } = this.props;\r\n return (\r\n \r\n this.onConfirmServiceRequest(serviceRequestId)}\r\n disabled={this.state.isEarlyConfirmationSubmitting}\r\n large\r\n >\r\n {t('Confirm')}\r\n \r\n \r\n );\r\n }\r\n\r\n getEarlyConfirmNoPermissionFooterForDisabled() {\r\n const { t } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n\r\n getDefaultFooter(dirty, isSubmitting) {\r\n const { t } = this.props;\r\n return (\r\n <>\r\n \r\n {t('Remove this service request')}\r\n \r\n
\r\n \r\n {nav => (\r\n \r\n this.cancelForm(dirty, nav.serviceRequestNavigation)\r\n }\r\n large\r\n >\r\n {t('Cancel')}\r\n \r\n )}\r\n \r\n \r\n {nav => (\r\n {\r\n this.setState({\r\n navigation: nav.serviceRequestNavigation,\r\n navigationHistory: nav.previousPageHistory\r\n });\r\n }}\r\n large\r\n >\r\n {t('Save')}\r\n \r\n )}\r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n canUserCreateTicket() {\r\n return !this.isOnlyPreviewMode();\r\n }\r\n\r\n getNoTicketsFooter() {\r\n const { t, footer } = this.props;\r\n return (\r\n \r\n {this.canUserCreateTicket() && (\r\n <>\r\n }\r\n disabled={footer.isChangeDisabled}\r\n onClick={() => {\r\n this.setState({\r\n showCreateChangeRequestDialog: true\r\n });\r\n }}\r\n >\r\n {t('Add change request')}\r\n \r\n {\r\n this.setState({\r\n showRequestCancellationDialog: true\r\n });\r\n }}\r\n iconLeft={}\r\n >\r\n {t('Request for cancellation')}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n rejectChangeRequestResponse = () => {\r\n const { t, match, changeRequestRejectResponse } = this.props;\r\n Confirm(\r\n t('Reject response'),\r\n t(\"Are you sure, you want to reject HN's response?\"),\r\n () => {\r\n changeRequestRejectResponse(match.params.serviceRequestId).then(\r\n response => {\r\n if (response.success) {\r\n Toast.success(t('Change request successfully rejected'));\r\n this.loadComponentData();\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot reject response'));\r\n }\r\n }\r\n );\r\n },\r\n () => {},\r\n t('Reject'),\r\n t('Close')\r\n );\r\n };\r\n\r\n acceptChangeRequestResponse = () => {\r\n const { t, match, changeRequestAcceptResponse } = this.props;\r\n Confirm(\r\n t('Accept response'),\r\n t(\"Are you sure, you want to accept HN's response? \"),\r\n () => {\r\n changeRequestAcceptResponse(match.params.serviceRequestId).then(\r\n response => {\r\n if (response.success) {\r\n Toast.success(t('Change request successfully confirmed'));\r\n this.loadComponentData();\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot accept response'));\r\n }\r\n }\r\n );\r\n },\r\n () => {},\r\n t('Accept'),\r\n t('Close')\r\n );\r\n };\r\n\r\n getChangeAcceptFooter() {\r\n const { t } = this.props;\r\n return (\r\n \r\n {this.canUserAcceptResponse() && (\r\n <>\r\n \r\n {t('Reject')}\r\n \r\n \r\n {t('Accept')}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n getAdditionalChangeWaitingForHnFooter() {\r\n const { t } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n\r\n getCancellationWaitingForHnFooter() {\r\n const { t } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n\r\n getAdditionalCreateWaitingForSnFooter() {\r\n const { t } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n\r\n getAdditionalChangeWaitingForSnFooter() {\r\n const { t } = this.props;\r\n return (\r\n \r\n );\r\n }\r\n\r\n onConfirmServiceRequest(serviceRequestId) {\r\n this.setState({ isEarlyConfirmationSubmitting: true });\r\n const { history } = this.props;\r\n\r\n this.props.confirmServiceRequest(serviceRequestId).then(response => {\r\n if (response.success) {\r\n Toast.success('Service request confirmed');\r\n history.push(this.getBackNavigationUrl(this.state.navigation));\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning('Failed to confirm service request');\r\n }\r\n this.setState({ isEarlyConfirmationSubmitting: false });\r\n });\r\n }\r\n\r\n onDeliveryFileDialogOpen = () => {\r\n this.setState({\r\n deliveryFileDialogOpen: true\r\n });\r\n };\r\n\r\n onDeliveryFileDialogClose = () => {\r\n this.setState({\r\n deliveryFileDialogOpen: false\r\n });\r\n };\r\n\r\n createRequestCancellation = (\r\n values,\r\n { setSubmitting, setErrors },\r\n setDialogError,\r\n onDialogClose\r\n ) => {\r\n const { t, createCancellationRequest, match } = this.props;\r\n const data = {\r\n ...values,\r\n serviceRequestId: match.params.serviceRequestId\r\n };\r\n\r\n createCancellationRequest(data.serviceRequestId, data).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Request for cancellation submitted successfully'));\r\n onDialogClose();\r\n this.loadComponentData();\r\n } else if (response.payload && response.payload.details) {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [error.target]: error.message[0]\r\n };\r\n }, {});\r\n if (errors) {\r\n setErrors(errors);\r\n }\r\n } else if (response.payload) {\r\n setDialogError(response.payload.message);\r\n } else {\r\n setDialogError(t('Cannot create request for cancellation'));\r\n }\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n renderRequestCancellationDialog() {\r\n const { t } = this.props;\r\n const { showRequestCancellationDialog } = this.state;\r\n return (\r\n {\r\n this.setState({\r\n showRequestCancellationDialog: false\r\n });\r\n }}\r\n />\r\n );\r\n }\r\n\r\n getInitialActivity = () => {\r\n if (this.state.serviceRequest && this.state.serviceRequest.activityId) {\r\n return this.state.serviceRequest.activityId;\r\n }\r\n return null;\r\n };\r\n\r\n isActivityNameDifferent() {\r\n return this.props.forSubmitData.activities &&\r\n this.props.forSubmitData.activities.find(\r\n x =>\r\n x.activityId === this.state.serviceRequest.activityId &&\r\n x.name !== this.state.serviceRequest.activityName\r\n )\r\n ? true\r\n : false;\r\n }\r\n\r\n renderHeaderCenterActions = () => {\r\n return null;\r\n };\r\n\r\n render() {\r\n const { t, match, footer, forSubmitData } = this.props;\r\n const { disabled, serviceRequest } = this.state;\r\n if (this.props.isLoading) {\r\n return null;\r\n }\r\n\r\n const defaultUom =\r\n objectPath\r\n .get(serviceRequest, 'unitsOfMeasure', [])\r\n .find(item => item.isDefault) || {};\r\n\r\n if (\r\n (!serviceRequest.activityId === null &&\r\n forSubmitData.activities &&\r\n forSubmitData.activities.length !== 0) ||\r\n this.isActivityNameDifferent()\r\n ) {\r\n this.setState({\r\n itemChanged: true\r\n });\r\n }\r\n\r\n const editedFields = objectPath.get(serviceRequest, 'editedFields', []);\r\n\r\n return (\r\n
\r\n {\r\n this.setState({\r\n showCreateChangeRequestDialog: false\r\n });\r\n }}\r\n unitsOptions={\r\n serviceRequest\r\n ? this.getUnits(serviceRequest.units).map(unit => {\r\n return (\r\n \r\n );\r\n })\r\n : []\r\n }\r\n uomsOptions={\r\n serviceRequest && serviceRequest.unitsOfMeasure\r\n ? this.toUomsEntity(serviceRequest.unitsOfMeasure).map(uom => {\r\n return (\r\n \r\n );\r\n })\r\n : []\r\n }\r\n activities={forSubmitData.activities}\r\n serviceRequest={serviceRequest}\r\n serviceRequestId={serviceRequest.serviceRequestId}\r\n />\r\n {this.renderRequestCancellationDialog()}\r\n \r\n {({\r\n handleReset,\r\n handleSubmit,\r\n setFieldValue,\r\n values,\r\n dirty,\r\n isSubmitting\r\n }) => (\r\n <>\r\n
\r\n \r\n {nav => (\r\n <>\r\n {this.setState({\r\n navigation: nav.serviceRequestNavigation,\r\n navigationHistory: nav.previousPageHistory\r\n })}\r\n {\r\n event.preventDefault();\r\n this.cancelForm(dirty, nav.serviceRequestNavigation);\r\n }}\r\n title={\r\n t(\r\n disabled\r\n ? 'Preview service request'\r\n : 'Edit service request'\r\n ) + ' - '\r\n }\r\n unit={{\r\n code: serviceRequest.partyCode,\r\n name: serviceRequest.unitName,\r\n number: serviceRequest.requestNumber\r\n }}\r\n status={{\r\n name: serviceRequest.statusGridName,\r\n id: serviceRequest.statusId\r\n }}\r\n parent={this.getServiceRequestParent()}\r\n />\r\n \r\n )}\r\n \r\n {this.renderHeaderCenterActions()}\r\n \r\n
\r\n
\r\n \r\n {nav =>\r\n nav.serviceRequestId !== match.params.serviceRequestId &&\r\n nav.setServiceRequestId(match.params.serviceRequestId)\r\n }\r\n \r\n \r\n {nav =>\r\n this.props.withEscNavigationCallback(\r\n this.navigateBack(nav.serviceRequestNavigation)\r\n )\r\n }\r\n \r\n \r\n {!disabled &&\r\n (serviceRequest.response &&\r\n serviceRequest.response.earlyConfirmation\r\n .isEarlyConfirmationRequired &&\r\n serviceRequest.response.earlyConfirmation.isEditable ? (\r\n this.getEarlyConfirmFooter(\r\n serviceRequest.serviceRequestId,\r\n dirty,\r\n isSubmitting\r\n )\r\n ) : this.isAdditionalRequest &&\r\n footer &&\r\n (footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateWaitingForHn ||\r\n footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateConfirm ||\r\n footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateAccept) ? (\r\n <>\r\n {(footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateWaitingForHn ||\r\n footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateConfirm) &&\r\n this.getAdditionalEditableCreateWaitingForHnFooter(\r\n dirty,\r\n isSubmitting\r\n )}\r\n {footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateAccept &&\r\n this.getAdditionalEditableCreateAcceptFooter(\r\n dirty,\r\n isSubmitting\r\n )}\r\n \r\n ) : (\r\n this.getDefaultFooter(dirty, isSubmitting)\r\n ))}\r\n {disabled && footer && (\r\n <>\r\n {footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.None &&\r\n serviceRequest.response &&\r\n serviceRequest.response.earlyConfirmation\r\n .isEarlyConfirmationRequired &&\r\n serviceRequest.response.earlyConfirmation.isEditable &&\r\n this.getEarlyConfirmFooterForDisabled(\r\n serviceRequest.serviceRequestId\r\n )}\r\n {footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.None &&\r\n serviceRequest.response &&\r\n serviceRequest.response.earlyConfirmation\r\n .isEarlyConfirmationRequired &&\r\n !serviceRequest.response.earlyConfirmation.isEditable &&\r\n this.getEarlyConfirmNoPermissionFooterForDisabled()}\r\n {(footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateWaitingForHn ||\r\n footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateConfirm) &&\r\n this.getAdditionalCreateWaitingForHnFooter()}\r\n {footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateAccept &&\r\n this.getAdditionalCreateAcceptFooter()}\r\n {footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.RequestForCancellation &&\r\n this.getNoTicketsFooter()}\r\n {(footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalChangeWaitingForHn ||\r\n footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalChangeConfirm) &&\r\n this.getAdditionalChangeWaitingForHnFooter()}\r\n {footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalChangeAccept &&\r\n this.getChangeAcceptFooter()}\r\n {(footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCancellationWaitingForHn ||\r\n footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCancellationConfirm) &&\r\n this.getCancellationWaitingForHnFooter()}\r\n {footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalChangeWaitingForSn &&\r\n this.getAdditionalChangeWaitingForSnFooter()}\r\n {footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.AdditionalCreateWaitingForSn &&\r\n this.getAdditionalCreateWaitingForSnFooter()}\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

{t('Item information')}

\r\n {!disabled && (\r\n
\r\n {this.state.showChangeItem && (\r\n {\r\n this.changeItem(\r\n selectedValues,\r\n setFieldValue\r\n );\r\n }}\r\n onQueryChange={this.onItemQueryChange}\r\n inputClass=\"service-request-edit--change-item-input\"\r\n component={Autocomplete}\r\n noResultsMessage={t(\r\n 'No items found in the Catalog'\r\n )}\r\n />\r\n )}\r\n {serviceRequest.catalogItemCanBeChanged && (\r\n \r\n {this.state.showChangeItem\r\n ? t('Cancel')\r\n : t('Change item')}\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n \r\n x.annexId == this.state.serviceRequest.annexId\r\n ) &&\r\n !disabled\r\n ? this.props.forSubmitData.annexes.find(\r\n x =>\r\n x.annexId ==\r\n this.state.serviceRequest.annexId\r\n ).information\r\n : null\r\n }\r\n catalogItemId={serviceRequest.catalogItemId}\r\n tooltipStartDisabled={!this.state.itemChanged}\r\n editedFields={editedFields}\r\n />\r\n \r\n
\r\n
\r\n \r\n
\r\n

{t('Additional information')}

\r\n \r\n\r\n
\r\n {\r\n setFieldValue('attachments', files);\r\n }}\r\n onSelect={files => {\r\n this.handleFileUpload(files);\r\n }}\r\n onRemove={file => {\r\n this.props.deleteAttachment(file);\r\n }}\r\n disabled={disabled}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{t('Delivery information')}

\r\n \r\n\r\n {this.calculateCosts(values)}\r\n\r\n {serviceRequest.isTransportation === false && (\r\n <>\r\n
{t('Location details')}
\r\n \r\n \r\n )}\r\n\r\n {serviceRequest.isTransportation === true && (\r\n <>\r\n
{t('Pickup location')}
\r\n \r\n
{t('Delivery location')}
\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n )}\r\n \r\n {serviceRequest &&\r\n !serviceRequest.isCategory &&\r\n serviceRequest.response &&\r\n serviceRequest.response.canDeliveryQuantity && (\r\n
\r\n

{t('Response from HN')}

\r\n\r\n \r\n {serviceRequest.cancellation && (\r\n \r\n )}\r\n
\r\n )}\r\n {serviceRequest && serviceRequest.changeRequestResponse && (\r\n
\r\n

\r\n \r\n {t('Response to change request')}\r\n \r\n

\r\n \r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\nServiceRequestEdit.propTypes = {\r\n oData: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n serviceRequest: PropTypes.object,\r\n forSubmitData: PropTypes.object,\r\n query: PropTypes.array,\r\n isLoading: PropTypes.bool,\r\n t: PropTypes.func,\r\n forSubmit: PropTypes.func,\r\n queryLocations: PropTypes.func,\r\n queryOData: PropTypes.func,\r\n resetOData: PropTypes.func,\r\n update: PropTypes.func,\r\n remove: PropTypes.func,\r\n getServiceRequest: PropTypes.func,\r\n confirmServiceRequest: PropTypes.func,\r\n uploadAttachments: PropTypes.func,\r\n setAttachments: PropTypes.func,\r\n deleteAttachment: PropTypes.func,\r\n clearAttachments: PropTypes.func,\r\n attachments: PropTypes.array,\r\n location: PropTypes.object,\r\n hasUserPermission: PropTypes.func,\r\n calculateByDaysData: PropTypes.object,\r\n calculateByDays: PropTypes.func,\r\n getFooter: PropTypes.func,\r\n footer: PropTypes.object,\r\n createRejectResponse: PropTypes.func,\r\n createAcceptResponse: PropTypes.func,\r\n changeRequestRejectResponse: PropTypes.func,\r\n changeRequestAcceptResponse: PropTypes.func,\r\n createCancellationRequest: PropTypes.func,\r\n clearFooter: PropTypes.func,\r\n withEscNavigationCallback: PropTypes.func\r\n};\r\n\r\nexport default ServiceRequestEdit;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { GhostButton } from '@hobs/components/Buttons';\r\nimport Switch from '@hobs/components/Switch';\r\nimport RadioButton from '@hobs/components/RadioButton';\r\nimport Confirm from '@hobs/components/Confirm';\r\nimport { CellDate, CellDateTime } from '@hobs/components/Grid/CellDate';\r\nimport Icon from '@hobs/components/Icon';\r\nimport { USER_ROLES } from '@hobs/utils/constants';\r\n\r\nimport './Users.scss';\r\n\r\nconst KEY_ENTER = 13;\r\n\r\nclass Users extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n dataState: {\r\n take: 5,\r\n skip: 0,\r\n sort: [{ field: 'FirstName', dir: 'asc' }]\r\n }\r\n };\r\n }\r\n\r\n getCustomFilter(type, field) {\r\n const { t, userGrid } = this.props;\r\n const filters = userGrid[type];\r\n\r\n if (!filters) {\r\n return [];\r\n }\r\n\r\n return [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n value: ''\r\n },\r\n ...filters.map(item => ({\r\n value: `${item.id}`,\r\n name: item.title,\r\n default: false,\r\n field: field\r\n }))\r\n ];\r\n }\r\n\r\n onIsActiveChange = (dataItem) => {\r\n const { t } = this.props;\r\n Confirm(\r\n t('Change user party '),\r\n t(`Are you sure you want to reassign '${dataItem.FirstName} ${dataItem.LastName}' back to this party? \r\n (User will be deactivated from his current party)`),\r\n () => {\r\n this.props.onIsActiveChange(dataItem).then(() =>{\r\n this.props.getUserGrid(this.props.partyId);\r\n this.loadODataQuery();\r\n });\r\n }\r\n );\r\n }\r\n\r\n _getDefaultColumns() {\r\n const { t } = this.props;\r\n\r\n return {\r\n FirstName: {\r\n title: t('First name'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n LastName: {\r\n title: t('Last name'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n Email: {\r\n title: t('Email'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n UnitName: {\r\n title: t('Assigned to'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n RoleName: {\r\n title: t('Role'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n customFilter: {\r\n data: this.getCustomFilter('roles', 'RoleId')\r\n }\r\n },\r\n LoginExpiration: {\r\n title: t('Login expiration'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'date',\r\n cell: CellDate\r\n },\r\n LastLogin: {\r\n title: t('Last login'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'date',\r\n cell: CellDateTime\r\n },\r\n IsActive: {\r\n title: t('Is Active'),\r\n default: false,\r\n visible: true,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n
\r\n this.onIsActiveChange(dataItem)}\r\n />\r\n
\r\n \r\n );\r\n }\r\n },\r\n Locked: {\r\n title: t('Acc. Locked'),\r\n default: true,\r\n visible: true,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n
\r\n \r\n {dataItem.Locked ? t('Locked') : t('Unlocked')}\r\n
\r\n \r\n );\r\n }\r\n },\r\n controls: {\r\n title: '',\r\n headerCell: () => <>,\r\n cell: this.controls,\r\n default: true,\r\n visible: true,\r\n width: 100\r\n }\r\n };\r\n }\r\n\r\n getDefaultColumns() {\r\n return this._getDefaultColumns();\r\n }\r\n\r\n componentDidMount() {\r\n this.props.getUserGrid(this.props.partyId);\r\n this.loadODataQuery();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetOData();\r\n }\r\n\r\n dataStateChange = e => {\r\n this.setState(\r\n {\r\n dataState: e.dataState\r\n },\r\n () => {\r\n this.loadODataQuery();\r\n }\r\n );\r\n };\r\n\r\n loadODataQuery = () => {\r\n this.props.queryOData(\r\n `UsersQuery(${this.props.partyId})`,\r\n this.state.dataState\r\n );\r\n };\r\n\r\n getUserPathName(userId) {\r\n if (userId) {\r\n return `${this.props.location.pathname.replace(\r\n '/user',\r\n ''\r\n )}/user/${userId}`;\r\n }\r\n\r\n return `${this.props.location.pathname.replace('/user', '')}/user`;\r\n }\r\n\r\n controls = props => {\r\n const { hasUserPermission } = this.props;\r\n if(!hasUserPermission(USER_ROLES.SystemAdmin) && props.dataItem.IsSystemAdmin){\r\n return null;\r\n }\r\n if (props.dataItem.IsUserActiveInParty === undefined || props.dataItem.IsUserActiveInParty){\r\n return (\r\n \r\n }\r\n to={this.getUserPathName(props.dataItem.UserId)}\r\n >\r\n {this.props.t('Edit')}\r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n };\r\n\r\n handleQuickSearchChange = event => {\r\n if (event.keyCode === KEY_ENTER) {\r\n this.setState(\r\n {\r\n dataState: {\r\n ...this.state.dataState,\r\n quickSearch: event.target.value\r\n }\r\n },\r\n () => {\r\n this.loadODataQuery();\r\n }\r\n );\r\n }\r\n };\r\n}\r\n\r\nUsers.propTypes = {\r\n queryOData: PropTypes.func,\r\n resetOData: PropTypes.func,\r\n getUserGrid: PropTypes.func,\r\n onIsActiveChange: PropTypes.func,\r\n location: PropTypes.object,\r\n userGrid: PropTypes.object,\r\n t: PropTypes.func,\r\n partyId: PropTypes.string,\r\n hasUserPermission: PropTypes.func,\r\n};\r\n\r\nexport default Users;\r\n","import { useTranslation } from 'react-i18next';\r\nimport { actionCreator } from './utils/utils';\r\nimport {\r\n FORSUBMIT,\r\n GET,\r\n CREATE,\r\n PATCHPARTY,\r\n UPDATE,\r\n CLEAR,\r\n CHANGEPASSWORD,\r\n RESENDRESETPASSWORD,\r\n CHANGELOCKSTATUS,\r\n SOFTDELETEUSER\r\n} from '@hobs/constants/users';\r\n\r\nconst PARTY_USER_TYPES = {\r\n 1: 'HnUsers',\r\n 2: 'SnUsers',\r\n 3: 'SpUsers'\r\n};\r\n\r\nfunction getActionUrl(partyType, url = '') {\r\n if (!PARTY_USER_TYPES[partyType]) {\r\n throw new Error(useTranslation().t('PartyType not provided'));\r\n }\r\n\r\n return `${PARTY_USER_TYPES[partyType]}/${url}`;\r\n}\r\n\r\nexport const getUserForSubmit = (partyType) =>\r\n actionCreator(\r\n getActionUrl(partyType, 'forSubmit'),\r\n FORSUBMIT\r\n );\r\n\r\nexport const createUser = (partyType, user) => \r\n actionCreator(\r\n getActionUrl(partyType),\r\n CREATE,\r\n { body: user, method: 'Post' }\r\n );\r\n\r\nexport const changeUserParty = (partyType, userId, partyId) =>\r\n actionCreator(\r\n getActionUrl(partyType, `${userId}/Parties/${partyId}`),\r\n PATCHPARTY,\r\n { method: 'PATCH' }\r\n );\r\n\r\nexport const getUser = (partyType, userId) =>\r\n actionCreator(\r\n getActionUrl(partyType, userId),\r\n GET\r\n );\r\n\r\nexport const updateUser = (partyType, user) =>\r\n actionCreator(\r\n getActionUrl(partyType),\r\n UPDATE,\r\n { body: user, method: 'PUT' }\r\n );\r\n\r\nexport const changePassword = (partyType, userId, password) =>\r\n actionCreator(\r\n getActionUrl(partyType, `${userId}/ChangePassword`),\r\n CHANGEPASSWORD,\r\n { body: password, method: 'POST' }\r\n );\r\n\r\nexport const resendResetPassword = (partyType, userId) =>\r\n actionCreator(\r\n getActionUrl(partyType, `${userId}/ResendResetEmail`),\r\n RESENDRESETPASSWORD,\r\n { method: 'POST' }\r\n );\r\n\r\nexport const changeLockStatus = (partyType, userId, lockStatus) =>\r\n actionCreator(\r\n getActionUrl(partyType, `${userId}/changeLockStatus`),\r\n CHANGELOCKSTATUS,\r\n { body: lockStatus, method: 'POST'}\r\n );\r\n\r\nexport const softDeleteUser = (userId, partyType) => {\r\n const uri = partyType ? getActionUrl(partyType, `${userId}/soft-delete`) : `Users/${userId}/soft-delete`;\r\n\r\n return actionCreator(\r\n uri,\r\n SOFTDELETEUSER,\r\n { method: 'DELETE'}\r\n );\r\n}\r\n\r\nexport function clearUser() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR.SUCCESS });\r\n };\r\n}\r\n","import React from 'react';\r\nimport { withTranslation, useTranslation } from 'react-i18next';\r\nimport Dropdown from '@hobs/components/Dropdown';\r\nimport DateInput from '@hobs/components/DateInput';\r\nimport { Formik, Form, Field } from 'formik';\r\nimport Input from '@hobs/components/Input';\r\nimport { RaisedButton } from '@hobs/components/Buttons';\r\nimport PropTypes from 'prop-types';\r\nimport './UserForm.scss';\r\n\r\nimport { DEFAULT_DAYS_UNTIL_USER_EXPIRE } from '@hobs/utils/constants';\r\n\r\nconst UserForm = ({\r\n enableReinitialize,\r\n userSchema,\r\n partyId,\r\n unitOptions,\r\n roleOptions,\r\n user,\r\n onSubmit\r\n}) => {\r\n const { t } = useTranslation();\r\n const defaultLoginExpirationDate = new Date();\r\n defaultLoginExpirationDate.setDate(\r\n defaultLoginExpirationDate.getDate() + DEFAULT_DAYS_UNTIL_USER_EXPIRE\r\n );\r\n return (\r\n \r\n {({ setFieldValue, isSubmitting, values }) => (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {unitOptions}\r\n \r\n
\r\n
\r\n \r\n {t('First name')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {roleOptions}\r\n \r\n
\r\n
\r\n \r\n {t('Last name')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {t('Login expiration date')}\r\n \r\n
\r\n
\r\n \r\n {t('Email')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {t('Save')}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n \r\n );\r\n};\r\n\r\nUserForm.propTypes = {\r\n setFieldValue: PropTypes.func,\r\n t: PropTypes.func,\r\n unitOptions: PropTypes.array,\r\n roleOptions: PropTypes.array,\r\n user: PropTypes.object,\r\n partyId: PropTypes.string,\r\n userSchema: PropTypes.object,\r\n enableReinitialize: PropTypes.bool,\r\n onSubmit: PropTypes.func\r\n};\r\n\r\nexport default withTranslation()(UserForm);\r\n","import React, { useState } from 'react';\r\nimport { withTranslation, useTranslation } from 'react-i18next';\r\nimport { Formik, Form, Field } from 'formik';\r\nimport Input from '@hobs/components/Input';\r\nimport { GhostButton, RaisedButton } from '@hobs/components/Buttons';\r\nimport PropTypes from 'prop-types';\r\nimport { H5 } from '@hobs/components/Headings';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport Switch from '@hobs/components/Switch';\r\n\r\nimport './UserPasswordManager.scss';\r\nimport Confirm from '@hobs/components/Confirm';\r\nimport { connect } from 'react-redux';\r\n\r\nconst UserPasswordManager = ({\r\n resetPasswordSchema,\r\n user,\r\n onResetPasswordSubmit,\r\n onResendPasswordSubmit,\r\n onPasswordLockChange,\r\n onUserDeleted,\r\n resendDisabled,\r\n currentUserId\r\n}) => {\r\n const [isChangeSubmitting, setIsChangeSubmitting] = useState(false);\r\n const { t } = useTranslation();\r\n\r\n if (!user) {\r\n return (
);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n {({ isSubmitting }) => (\r\n
\r\n
{t('Change password')}
\r\n \r\n {t('Password')}\r\n \r\n \r\n {t('Confirm password')}\r\n \r\n \r\n {t('Change')}\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n
{t('Resend password')}
\r\n {t('Email')}\r\n
{user.email}
\r\n \r\n {t('Resend')}\r\n \r\n
\r\n
{t('Account')}
\r\n
\r\n {\r\n onPasswordLockChange(isLocked);\r\n }}\r\n disabled={user.isDeleted}\r\n label={t(user.isPasswordLocked ? 'Locked' : 'Unlocked')}\r\n />\r\n {currentUserId !== user.userId && (\r\n {\r\n Confirm(\r\n t('Delete user'),\r\n t(\r\n 'Are you sure, you want to delete this user? This action cannot be undone'\r\n ),\r\n () => {\r\n onUserDeleted((isSubmitting) => setIsChangeSubmitting(isSubmitting))\r\n }\r\n )}}\r\n >\r\n {user.isDeleted ? 'Deleted' : 'Delete'}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nUserPasswordManager.propTypes = {\r\n t: PropTypes.func,\r\n user: PropTypes.object,\r\n resetPasswordSchema: PropTypes.object,\r\n onResetPasswordSubmit: PropTypes.func,\r\n onResendPasswordSubmit: PropTypes.func,\r\n onPasswordLockChange: PropTypes.func,\r\n onUserDeleted: PropTypes.func,\r\n resendDisabled: PropTypes.bool,\r\n currentUserId: PropTypes.string\r\n};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n currentUserId: state.auth.user.UserId,\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n null\r\n)(withTranslation()(UserPasswordManager));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withTranslation } from 'react-i18next/src';\r\nimport { connect } from 'react-redux';\r\nimport * as Yup from 'yup';\r\nimport Dialog from '@hobs/components/Dialog';\r\nimport Toast from '@hobs/components/Toast';\r\nimport ShortId from 'shortid';\r\nimport Tabs from '@hobs/components/Tabs';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Alert from '@hobs/components/Alert';\r\nimport { email as emailValidator } from '@hobs/validations';\r\n\r\nimport { softDeleteUser } from '@hobs/actions/users';\r\nimport {\r\n clearUser,\r\n getUserForSubmit,\r\n createUser,\r\n getUser,\r\n updateUser,\r\n changePassword,\r\n resendResetPassword,\r\n changeLockStatus\r\n} from '../../../actions/users';\r\n\r\nimport './UserDialog.scss';\r\nimport UserForm from './UserForm';\r\nimport UserPasswordManager from './UserPasswordManager';\r\n\r\nconst defaultState = {\r\n userState: {\r\n error: null,\r\n success: null\r\n },\r\n userPasswordState: {\r\n error: null,\r\n success: null\r\n },\r\n resendDisabled: false\r\n};\r\n\r\nclass UserDialog extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = defaultState;\r\n const { t } = props;\r\n\r\n this.resetPasswordSchema = Yup.object().shape({\r\n password: Yup.string().required(t('Password is required')),\r\n confirmPassword: Yup.string().required(t('Confirm password is required'))\r\n });\r\n }\r\n\r\n getUserSchema() {\r\n const { t, forSubmit } = this.props;\r\n return Yup.object().shape({\r\n firstName: Yup.string()\r\n .max(256, t('First name cannot be longer than 256 symbols'))\r\n .required(t('First name is required')),\r\n lastName: Yup.string()\r\n .max(256, t('Last name cannot be longer than 256 symbols'))\r\n .required(t('Last name is required')),\r\n email: Yup.string()\r\n .max(256, t('Email cannot be longer than 256 symbols'))\r\n .required(t('Email is required'))\r\n .test('emailFormat', 'Invalid email format', function(value = '') {\r\n return !emailValidator()(value);\r\n }),\r\n loginExpirationDate: Yup.date()\r\n .nullable()\r\n .typeError(t('Invalid date or date format'))\r\n .required(t('Login expiration date is required')),\r\n roleId: Yup.number()\r\n .nullable()\r\n .required(t('Role is required')),\r\n unitId: forSubmit.isUnitRequired\r\n ? Yup.string().required('\"Assigned to\" is required')\r\n : Yup.string()\r\n });\r\n }\r\n\r\n isDialogOpen() {\r\n return this.props.match.params.action === 'user';\r\n }\r\n\r\n getUserPathName() {\r\n const deleteIndex = this.props.location.pathname.indexOf('/user');\r\n return this.props.location.pathname.substring(0, deleteIndex);\r\n }\r\n\r\n getRoleOptions() {\r\n const { forSubmit } = this.props;\r\n\r\n if (forSubmit.roles && forSubmit.roles.length > 0) {\r\n return forSubmit.roles.map(role => {\r\n return (\r\n \r\n );\r\n });\r\n }\r\n }\r\n\r\n getUnitsOptions() {\r\n const { units, assignedUnits } = this.props;\r\n\r\n let partyUnits = [];\r\n\r\n if (Array.isArray(assignedUnits) && assignedUnits.length > 0) {\r\n partyUnits = assignedUnits;\r\n } else {\r\n partyUnits = units;\r\n }\r\n\r\n const flatUnits = this.flattenUnitsTree(partyUnits);\r\n if (flatUnits && flatUnits.length > 0) {\r\n return flatUnits.map(unit => {\r\n return (\r\n \r\n );\r\n });\r\n }\r\n }\r\n\r\n flattenUnitsTree(array) {\r\n if (!Array.isArray(array)) {\r\n return [];\r\n }\r\n\r\n return array.reduce((result, item) => {\r\n result.push(item);\r\n\r\n if (Array.isArray(item.units)) {\r\n result = result.concat(this.flattenUnitsTree(item.units));\r\n }\r\n\r\n return result;\r\n }, []);\r\n }\r\n\r\n createUser = (values, { setErrors, setSubmitting }) => {\r\n const { t } = this.props;\r\n const body = { ...values };\r\n\r\n this.props.createUser(body).then(response => {\r\n if (response.success) {\r\n this.onDialogClose();\r\n Toast.success(t('User was successfully created'));\r\n } else if (response.payload && response.payload.details) {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [this.toLowercaseFirst(error.target)]: error.message[0]\r\n };\r\n }, {});\r\n\r\n setErrors(errors);\r\n } else if (response.payload) {\r\n this.setUserError(response.payload.message);\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n updateUser = (values, { setErrors, setSubmitting }) => {\r\n const { t, onUserUpdated } = this.props;\r\n\r\n this.props.updateUser(values).then(response => {\r\n if (response.success) {\r\n this.props.getUser(values.userId).then(response => {\r\n if (response.success) {\r\n this.setUserSuccess(t('User was successfully updated'));\r\n }\r\n });\r\n } else if (response.payload && response.payload.details) {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [this.toLowercaseFirst(error.target)]: error.message[0]\r\n };\r\n }, {});\r\n\r\n setErrors(errors);\r\n } else if (response.payload) {\r\n this.setUserError(response.payload.message);\r\n }\r\n\r\n setSubmitting(false);\r\n onUserUpdated();\r\n });\r\n };\r\n\r\n changeUserPassword = (values, { setErrors, setSubmitting }) => {\r\n const { t, user } = this.props;\r\n\r\n this.props.changePassword(user.userId, values).then(response => {\r\n if (response.success) {\r\n this.setUserPasswordSuccess(\r\n t('User password was successfully changed')\r\n );\r\n } else if (response.payload && response.payload.details) {\r\n const errors = response.payload.details.reduce((results, error) => {\r\n return {\r\n ...results,\r\n [this.toLowercaseFirst(error.target)]: error.message[0]\r\n };\r\n }, {});\r\n\r\n setErrors(errors);\r\n } else if (response.payload) {\r\n this.setUserPasswordError(response.payload.message);\r\n }\r\n\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n resendResetUserPasswordEmail = () => {\r\n const { t, user } = this.props;\r\n\r\n this.setState({\r\n resendDisabled: true\r\n });\r\n\r\n this.props.resendResetPassword(user.userId).then(response => {\r\n if (response.success) {\r\n this.setUserPasswordSuccess(t('Password reset email has been sent.'));\r\n } else if (response.payload) {\r\n this.setUserPasswordError(response.payload.message);\r\n }\r\n });\r\n };\r\n\r\n onPasswordLockChange = value => {\r\n const { t, user } = this.props;\r\n\r\n const passwordLocked = {\r\n isPasswordLocked: value\r\n };\r\n this.props.changeLockStatus(user.userId, passwordLocked).then(response => {\r\n if (response.success) {\r\n this.props.getUser(user.userId).then(() => {\r\n this.setUserPasswordSuccess(\r\n t(\r\n value\r\n ? 'Account successfully locked'\r\n : 'Account successfully unlocked'\r\n )\r\n );\r\n });\r\n } else if (response.payload) {\r\n this.setUserPasswordError(response.payload.message);\r\n }\r\n });\r\n };\r\n\r\n onUserDeleted = setSubmitting => {\r\n const { t, user } = this.props;\r\n\r\n setSubmitting(true);\r\n this.props.softDeleteUser(user.userId).then(response => {\r\n if (response.success) {\r\n this.onDialogClose();\r\n Toast.success(t('User deleted successfully.'));\r\n } else if (response.payload) {\r\n Toast.error(response.payload.message);\r\n }\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n toLowercaseFirst(value) {\r\n if (typeof value !== 'string' || value.length === 0) {\r\n return value;\r\n }\r\n\r\n return value.charAt(0).toLowerCase() + value.slice(1);\r\n }\r\n\r\n onDialogClose = () => {\r\n this.resetState();\r\n this.props.clearUser();\r\n this.props.reloadGrid();\r\n this.props.history.push(this.getUserPathName());\r\n };\r\n\r\n onDialogOpening = () => {\r\n this.fetchRequiredData();\r\n };\r\n\r\n fetchRequiredData() {\r\n this.props.getUserForSubmit();\r\n if (!this.props.user) {\r\n const userId = this.props.match.params.guid;\r\n if (userId) {\r\n this.props.getUser(userId);\r\n }\r\n }\r\n }\r\n\r\n setUserError(message) {\r\n this.setState({\r\n userState: {\r\n error: message,\r\n success: null\r\n }\r\n });\r\n }\r\n\r\n setUserPasswordError(message) {\r\n this.setState({\r\n userPasswordState: {\r\n error: message,\r\n success: null\r\n }\r\n });\r\n }\r\n\r\n setUserSuccess(message) {\r\n this.setState({\r\n userState: {\r\n error: null,\r\n success: message\r\n }\r\n });\r\n }\r\n\r\n setUserPasswordSuccess(message) {\r\n this.setState({\r\n userPasswordState: {\r\n error: null,\r\n success: message\r\n }\r\n });\r\n }\r\n\r\n resetState() {\r\n this.setState(defaultState);\r\n }\r\n\r\n isEdit() {\r\n const { match, user } = this.props;\r\n return match.params.guid || user;\r\n }\r\n\r\n render() {\r\n const { t, user, partyId } = this.props;\r\n const { userState, userPasswordState, resendDisabled } = this.state;\r\n\r\n return (\r\n \r\n {!this.isEdit() && (\r\n <>\r\n {userState.error && {userState.error}}\r\n \r\n \r\n )}\r\n {this.isEdit() && (\r\n \r\n \r\n {userState.error && (\r\n {userState.error}\r\n )}\r\n {userState.success && (\r\n {userState.success}\r\n )}\r\n \r\n \r\n }\r\n >\r\n {}\r\n \r\n \r\n {userPasswordState.error && (\r\n {userPasswordState.error}\r\n )}\r\n {userPasswordState.success && (\r\n {userPasswordState.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\n}\r\n\r\nUserDialog.propTypes = {\r\n t: PropTypes.func,\r\n location: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n reloadGrid: PropTypes.func,\r\n forSubmit: PropTypes.object,\r\n createUser: PropTypes.func,\r\n getUserForSubmit: PropTypes.func,\r\n getUser: PropTypes.func,\r\n updateUser: PropTypes.func,\r\n partyId: PropTypes.string,\r\n units: PropTypes.array,\r\n user: PropTypes.object,\r\n clearUser: PropTypes.func,\r\n resendResetPassword: PropTypes.func,\r\n changePassword: PropTypes.func,\r\n softDeleteUser: PropTypes.func,\r\n changeLockStatus: PropTypes.func,\r\n assignedUnits: PropTypes.array,\r\n onUserUpdated: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n forSubmit: state.users.userForSubmit,\r\n user: state.users.user\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n createUser,\r\n getUserForSubmit,\r\n getUser,\r\n updateUser,\r\n clearUser,\r\n resendResetPassword,\r\n changePassword,\r\n softDeleteUser,\r\n changeLockStatus\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(UserDialog));\r\n","import { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\n\r\nimport {\r\n FORSUBMIT,\r\n GET,\r\n CREATE,\r\n UPDATE,\r\n CLEAR,\r\n CHANGEPASSWORD,\r\n RESENDRESETPASSWORD,\r\n CHANGELOCKSTATUS\r\n} from '@hobs/constants/users';\r\n\r\nexport function getUserForSubmit() {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n return fetchSecure('users/forSubmit')\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success(response.payload));\r\n return { success: true, ...response };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: FORSUBMIT.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: FORSUBMIT.SUCCESS, response };\r\n }\r\n function failure(error) {\r\n return { type: FORSUBMIT.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function createUser(user) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('users', { body: user, method: 'POST' })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n return { success: true, ...response };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CREATE.REQUEST };\r\n }\r\n function success() {\r\n return { type: CREATE.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: CREATE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function getUser(userId) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`users/${userId}`)\r\n .then(response => {\r\n if (response.payload) {\r\n dispatch(success(response.payload));\r\n return { success: true };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: GET.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: GET.SUCCESS, response };\r\n }\r\n function failure(error) {\r\n return { type: GET.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function updateUser(user) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('users', { body: user, method: 'PUT' })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n return { success: true };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error));\r\n return { success: false, error: error.toString() };\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: UPDATE.REQUEST };\r\n }\r\n function success() {\r\n return { type: UPDATE.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: UPDATE.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function changePassword(userId, password) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`users/${userId}/ChangePassword`, {\r\n body: password,\r\n method: 'POST'\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n return { success: true };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error));\r\n return { success: false, error: error.toString() };\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CHANGEPASSWORD.REQUEST };\r\n }\r\n function success() {\r\n return { type: CHANGEPASSWORD.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: CHANGEPASSWORD.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function resendResetPassword(userId) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`users/${userId}/ResendResetEmail`, { method: 'POST' })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n return { success: true };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error));\r\n return { success: false, error: error.toString() };\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: RESENDRESETPASSWORD.REQUEST };\r\n }\r\n function success() {\r\n return { type: RESENDRESETPASSWORD.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: RESENDRESETPASSWORD.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function changeLockStatus(userId, lockStatus) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`users/${userId}/changeLockStatus`, {\r\n body: lockStatus,\r\n method: 'POST'\r\n })\r\n .then(response => {\r\n if (response.status === 200) {\r\n dispatch(success());\r\n return { success: true };\r\n }\r\n\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error));\r\n return { success: false, error: error.toString() };\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: CHANGELOCKSTATUS.REQUEST };\r\n }\r\n function success() {\r\n return { type: CHANGELOCKSTATUS.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: CHANGELOCKSTATUS.FAILURE, error };\r\n }\r\n}\r\n\r\nexport function clearUser() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR.SUCCESS });\r\n };\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ShortId from 'shortid';\r\nimport { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next';\r\nimport GridLoader from '@hobs/components/Grid/GridLoader';\r\nimport Columns from '@hobs/components/Grid/Columns';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\nimport { GhostButton, RaisedButton } from '@hobs/components/Buttons';\r\nimport Icon from '@hobs/components/Icon';\r\nimport { H2 } from '@hobs/components/Headings';\r\nimport WithQuickSearch from '@hobs/hocs/WithQuickSearch';\r\nimport {\r\n ExcelExport,\r\n ExcelExportColumn\r\n} from '@progress/kendo-react-excel-export';\r\nimport { CellDate, CellDateTime } from '@hobs/components/Grid/CellDate';\r\nimport Switch from '@hobs/components/Switch';\r\nimport { PAGE_SIZES, USERS_EXPORT_FILE_NAME } from '@hobs/utils/constants';\r\nimport { Grid } from '@progress/kendo-react-grid';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport { queryOData, resetOData, queryXLSOData } from '@hobs/actions/odata';\r\nimport { getUserGrid } from '@hobs/actions/gridSelections';\r\nimport _Users from '@hobs/containers/Users';\r\nimport { parse } from '@hobs/utils/formatWithTimeZone';\r\nimport UserDialog from './UserDialog';\r\n\r\nclass Users extends _Users {\r\n requestUrl = 'UsersQuery';\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n dataState: {\r\n take: 5,\r\n skip: 0,\r\n sort: [{ field: 'FirstName', dir: 'asc' }]\r\n }\r\n };\r\n\r\n this.exportRef = React.createRef();\r\n }\r\n\r\n _getDefaultColumns() {\r\n const { t } = this.props;\r\n\r\n return {\r\n FirstName: {\r\n title: t('First name'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n LastName: {\r\n title: t('Last name'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n Email: {\r\n title: t('Email'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n UnitName: {\r\n title: t('Assigned to'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n RoleName: {\r\n title: t('Role'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n customFilter: {\r\n data: this.getCustomFilter('roles', 'RoleId')\r\n }\r\n },\r\n LoginExpiration: {\r\n title: t('Login expiration'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'date',\r\n cell: CellDate\r\n },\r\n LastLogin: {\r\n title: t('Last login'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'date',\r\n cell: CellDateTime\r\n },\r\n Locked: {\r\n title: t('Acc. Locked'),\r\n default: true,\r\n visible: true,\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n
\r\n \r\n {dataItem.Locked ? t('Yes') : t('No')}\r\n
\r\n \r\n );\r\n }\r\n },\r\n controls: {\r\n title: '',\r\n headerCell: () => <>,\r\n cell: this.controls,\r\n default: true,\r\n visible: true,\r\n width: 90,\r\n xls: false\r\n }\r\n };\r\n }\r\n\r\n getCustomBooleanFilter(field, trueTitle, falseTitle) {\r\n const { t } = this.props;\r\n\r\n return [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n value: ''\r\n },\r\n {\r\n name: trueTitle,\r\n value: `${true}`,\r\n field: field,\r\n default: false\r\n },\r\n {\r\n name: falseTitle,\r\n value: `${false}`,\r\n field: field,\r\n default: false\r\n }\r\n ];\r\n }\r\n\r\n getDefaultColumns() {\r\n return this._getDefaultColumns();\r\n }\r\n\r\n getDisplayData() {\r\n if (this.props.oData.data.length > 0) {\r\n const displayData = [].concat(this.props.oData.data);\r\n return displayData;\r\n }\r\n return [];\r\n }\r\n\r\n exportUsers = async () => {\r\n await this.getXlsData();\r\n this.exportRef.current.save();\r\n };\r\n\r\n async getXlsData() {\r\n const { t } = this.props;\r\n\r\n const dataState = this.getDataState();\r\n delete dataState.take;\r\n dataState.skip = 0;\r\n const XLSoData = await this.props.queryXLSOData(this.requestUrl, dataState);\r\n const data = XLSoData.data.map(item => {\r\n item.LoginExpiration = parse(item.LoginExpiration);\r\n item.LastLogin = item.LastLogin ? parse(item.LastLogin) : null;\r\n item.Locked = item.Locked ? t('Yes') : t('No');\r\n return item;\r\n });\r\n\r\n this.setState({\r\n XLSoData: data\r\n });\r\n }\r\n\r\n getDataState() {\r\n const { withQuickSearchFilter } = this.props;\r\n const { dataState } = this.state;\r\n let filters = [];\r\n\r\n if (Object.keys(withQuickSearchFilter).length > 0) {\r\n filters.push(withQuickSearchFilter);\r\n }\r\n\r\n const resultDataState = {\r\n ...dataState\r\n };\r\n\r\n if (dataState.filter && dataState.filter.filters.length > 0) {\r\n filters = filters.concat(dataState.filter);\r\n }\r\n\r\n if (filters.length > 0) {\r\n resultDataState.filter = {\r\n logic: 'and',\r\n filters\r\n };\r\n }\r\n\r\n return resultDataState;\r\n }\r\n\r\n componentDidMount() {\r\n this.props.getUserGrid();\r\n this.loadODataQuery();\r\n }\r\n\r\n getDefaultSnColumns() {\r\n var defaultColumns = this.getDefaultColumns();\r\n\r\n if (defaultColumns.IsActive) {\r\n delete defaultColumns.IsActive;\r\n }\r\n\r\n return defaultColumns;\r\n }\r\n\r\n getUserPathName(userId = '') {\r\n return `${this.props.location.pathname.replace(\r\n '/user',\r\n ''\r\n )}/user/${userId}`;\r\n }\r\n\r\n dataStateChange = e => this.loadUserOdataQuery(e.dataState);\r\n\r\n onQuickSearch = () => this.loadUserOdataQuery(this.state.dataState);\r\n\r\n loadODataQuery = () =>\r\n this.props.queryOData(this.requestUrl, this.getDataState());\r\n\r\n loadUserOdataQuery(state) {\r\n this.setState({ dataState: state }, () => {\r\n this.loadODataQuery();\r\n });\r\n }\r\n\r\n render() {\r\n const columns = this.getDefaultColumns();\r\n\r\n const {\r\n t,\r\n location,\r\n match,\r\n history,\r\n partyId,\r\n units,\r\n assignedUnits,\r\n onUserUpdated\r\n } = this.props;\r\n return (\r\n
\r\n \r\n

{t('Manage users')}

\r\n
\r\n \r\n
\r\n
\r\n }\r\n to={this.getUserPathName()}\r\n >\r\n {t('Add new user')}\r\n \r\n
\r\n
\r\n {this.props.withQuickSearchForm({\r\n onSearch: this.onQuickSearch,\r\n noMargin: true,\r\n placeholder: 'Search user details'\r\n })}\r\n
\r\n
\r\n
\r\n }\r\n onClick={() => {\r\n this.exportUsers();\r\n }}\r\n >\r\n {t('XLSX')}\r\n \r\n
\r\n
\r\n \r\n {Object.keys(columns).reduce((results, key) => {\r\n const column = columns[key];\r\n if (\r\n (typeof column.xls === 'undefined' || column.xls) &&\r\n column.visible\r\n ) {\r\n if (column.filter === 'date') {\r\n results.push(\r\n \r\n );\r\n } else {\r\n results.push(\r\n \r\n );\r\n }\r\n }\r\n return results;\r\n }, [])}\r\n \r\n \r\n {Columns({\r\n columns: this.getDefaultSnColumns(),\r\n dataState: this.state.dataState\r\n })}\r\n \r\n {this.props.isLoading && }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nUsers.propTypes = {\r\n withQuickSearchForm: PropTypes.func,\r\n withQuickSearchFilter: PropTypes.object,\r\n queryXLSOData: PropTypes.func,\r\n\r\n isLoading: PropTypes.bool,\r\n oData: PropTypes.object,\r\n queryOData: PropTypes.func,\r\n resetOData: PropTypes.func,\r\n loadODataQuery: PropTypes.func,\r\n getUserGrid: PropTypes.func,\r\n location: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n t: PropTypes.func,\r\n partyId: PropTypes.string,\r\n units: PropTypes.array,\r\n assignedUnits: PropTypes.array,\r\n partyType: PropTypes.number,\r\n hasUserPermission: PropTypes.func\r\n};\r\n\r\nconst oDataLoading = createLoadingSelector(['OData']);\r\nconst mapStateToProps = state => ({\r\n isLoading: oDataLoading(state),\r\n oData: state.odata,\r\n userGrid: state.gridSelections.userGrid\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n queryOData,\r\n resetOData,\r\n getUserGrid,\r\n queryXLSOData\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(WithQuickSearch(withTranslation()(WithRoles(Users))));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { RaisedButton, GhostButton } from '@hobs/components/Buttons';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Confirm from '@hobs/components/Confirm';\r\nimport Toast from '@hobs/components/Toast';\r\nimport { H2 } from '@hobs/components/Headings';\r\nimport { Tree } from '@blueprintjs/core';\r\n\r\nimport { getPartyUnits } from '../../actions/parties';\r\n\r\nimport { deleteUnit } from '../../actions/units';\r\nimport UnitDialog from './UnitDialog';\r\nimport './Units.scss';\r\n\r\nclass Units extends React.PureComponent {\r\n getUnitPathName(unitId = '') {\r\n return `${this.props.location.pathname.replace(\r\n '/unit',\r\n ''\r\n )}/unit/${unitId}`;\r\n }\r\n\r\n onRemove(unitId) {\r\n Confirm(\r\n this.props.t('Delete unit'),\r\n this.props.t('Are you sure you want to delete this unit?'),\r\n () => {\r\n const { t } = this.props;\r\n this.props.deleteUnit(unitId).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Unit deleted successfully'));\r\n this.reloadUnits();\r\n } else {\r\n Toast.warning(response.payload.message);\r\n }\r\n });\r\n }\r\n );\r\n }\r\n\r\n getUnitDeletePathName(unitId) {\r\n return `${this.props.location.pathname.replace(\r\n '/deleteunit',\r\n ''\r\n )}/deleteunit/${unitId}`;\r\n }\r\n\r\n controls(unit) {\r\n return (\r\n this.props.canEdit && (\r\n \r\n }\r\n to={this.getUnitPathName(unit.unitId)}\r\n >\r\n {this.props.t('Edit')}\r\n \r\n }\r\n onClick={() => {\r\n this.onRemove(unit.unitId);\r\n }}\r\n >\r\n {this.props.t('Delete')}\r\n \r\n \r\n )\r\n );\r\n }\r\n\r\n buildTree = (fn, [head, ...rest]) => {\r\n if (head === undefined) {\r\n return [];\r\n }\r\n if (head.units.length) {\r\n return [\r\n { ...fn(head), childNodes: this.buildTree(fn, head.units) },\r\n ...this.buildTree(fn, rest)\r\n ];\r\n }\r\n return [fn(head), ...this.buildTree(fn, rest)];\r\n };\r\n\r\n getUnitObject = unit => {\r\n return {\r\n ...unit,\r\n isExpanded: true,\r\n hasCaret: false,\r\n secondaryLabel: this.controls(unit),\r\n id: unit.unitId,\r\n key: unit.unitId,\r\n label: unit.title\r\n };\r\n };\r\n\r\n reloadUnits = () => {\r\n this.props.getPartyUnits(this.props.partyId);\r\n };\r\n\r\n sortUnits(units) {\r\n if (!Array.isArray(units)) {\r\n return [];\r\n }\r\n\r\n const sortedUnits = units.sort((a, b) =>\r\n a.title.toLowerCase() > b.title.toLowerCase()\r\n ? 1\r\n : a.title.toLowerCase() < b.title.toLowerCase()\r\n ? -1\r\n : 0\r\n );\r\n\r\n return sortedUnits.map(unit => {\r\n return {\r\n ...unit,\r\n units: this.sortUnits(unit.units)\r\n };\r\n });\r\n }\r\n\r\n render() {\r\n const { t, partyId, partyUnits } = this.props;\r\n const sortedUnits = this.sortUnits(partyUnits);\r\n const unitsTree = this.buildTree(\r\n this.getUnitObject,\r\n this.props.partyUnits ? sortedUnits : []\r\n );\r\n return (\r\n
\r\n

{t('Manage structure')}

\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n {this.props.canEdit && (\r\n }\r\n to={this.getUnitPathName()}\r\n >\r\n {t('Add new element')}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n {unitsTree.length > 0 && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nUnits.propTypes = {\r\n location: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n t: PropTypes.func,\r\n partyUnits: PropTypes.array,\r\n partyId: PropTypes.string,\r\n getPartyUnits: PropTypes.func,\r\n deleteUnit: PropTypes.func,\r\n canEdit: PropTypes.bool\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n partyUnits: state.parties.partyUnits,\r\n deleteUnit: PropTypes.func\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n getPartyUnits,\r\n deleteUnit\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(Units));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { Formik, Field, Form } from 'formik';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { withTranslation } from 'react-i18next';\r\nimport Input from '@hobs/components/Input';\r\nimport { H1, H2 } from '@hobs/components/Headings';\r\nimport Users from '../Users';\r\nimport Units from '../Units';\r\nimport {\r\n getParty,\r\n getPartyUnits,\r\n getAssignedPartyUnits\r\n} from '../../actions/parties';\r\nimport './Party.scss';\r\n\r\nclass Party extends React.PureComponent {\r\n initialValues = {\r\n partyCode: '',\r\n title: '',\r\n requisitionNumber: ''\r\n };\r\n\r\n componentDidMount() {\r\n this.props.getParty();\r\n this.props.getPartyUnits();\r\n this.fetchAssignedUnits();\r\n }\r\n\r\n fetchAssignedUnits = () => {\r\n this.props.getAssignedPartyUnits();\r\n };\r\n\r\n render() {\r\n const { t, location, match, history } = this.props;\r\n return (\r\n \r\n
\r\n

{t('Manage Party')}

\r\n
\r\n \r\n {({ setFieldValue }) => (\r\n
\r\n
\r\n

{t('Main details')}

\r\n
\r\n
\r\n \r\n {t('Code')}\r\n \r\n
\r\n
\r\n \r\n {t('Title')}\r\n \r\n
\r\n
\r\n \r\n {t('Type')}\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\nParty.propTypes = {\r\n t: PropTypes.func,\r\n location: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n party: PropTypes.object,\r\n partyUnits: PropTypes.array,\r\n getParty: PropTypes.func,\r\n updateParty: PropTypes.func,\r\n getPartyUnits: PropTypes.func,\r\n getAssignedPartyUnits: PropTypes.func,\r\n assignedPartyUnits: PropTypes.array\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n party: state.parties.party,\r\n partyUnits: state.parties.partyUnits,\r\n auth: state.auth,\r\n assignedPartyUnits: state.parties.assignedPartyUnits\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n getParty,\r\n getPartyUnits,\r\n getAssignedPartyUnits\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(withRouter(Party)));\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter, Redirect } from 'react-router-dom';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { H1 } from '@hobs/components/Headings';\r\nimport Panel from '@hobs/components/Panel';\r\nimport { GhostButton, RaisedButton } from '@hobs/components/Buttons';\r\nimport PageActions from '@hobs/components/PageActions';\r\nimport { getTokenData } from '@hobs/auth/utils';\r\nimport './TermsAndConditions.scss';\r\n\r\nimport { getExerciseTerms, acceptExerciseTerms } from '../../actions/exercises';\r\n\r\nclass TermsAndConditions extends PureComponent {\r\n constructor() {\r\n super();\r\n this.terms = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.props.getExerciseTerms();\r\n }\r\n\r\n async accept() {\r\n const results = await this.props.acceptExerciseTerms();\r\n\r\n if (results.success) {\r\n return this.props.history.push('/');\r\n }\r\n\r\n return results;\r\n }\r\n\r\n render() {\r\n const { t } = this.props;\r\n\r\n const token = localStorage.getItem('token');\r\n\r\n return getTokenData(token).AgreedToExercise === 'True' ? (\r\n \r\n ) : (\r\n
\r\n
\r\n

{t('Terms and Conditions')}

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {t('Please accept the Terms and Conditions to proceed.')}\r\n
\r\n
\r\n \r\n {t('Decline')}\r\n \r\n \r\n {t('Accept')}\r\n \r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nTermsAndConditions.propTypes = {\r\n page: PropTypes.string,\r\n history: PropTypes.object,\r\n getExerciseTerms: PropTypes.func,\r\n acceptExerciseTerms: PropTypes.func,\r\n t: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n page: state.exercises.currentTermPage\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n getExerciseTerms,\r\n acceptExerciseTerms\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(withRouter(TermsAndConditions)));\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { H1 } from '@hobs/components/Headings';\r\nimport Panel from '@hobs/components/Panel';\r\nimport './TermsAndConditionsView.scss';\r\n\r\nimport { getExerciseTerms } from '../../actions/exercises';\r\n\r\nclass TermsAndConditionsView extends PureComponent {\r\n constructor() {\r\n super();\r\n this.terms = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n this.props.getExerciseTerms();\r\n }\r\n\r\n render() {\r\n const { t } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n

{t('Terms and Conditions')}

\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nTermsAndConditionsView.propTypes = {\r\n page: PropTypes.string,\r\n history: PropTypes.object,\r\n getExerciseTerms: PropTypes.func,\r\n t: PropTypes.func\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n page: state.exercises.currentTermPage\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n getExerciseTerms\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(withRouter(TermsAndConditionsView)));\r\n","export const countDecimals = value => {\r\n if (!value) {\r\n return 0;\r\n }\r\n if (Math.floor(value.valueOf()) === value.valueOf()) {\r\n return 0;\r\n }\r\n\r\n return value.toString().split('.')[1].length || 0;\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ShortId from 'shortid';\r\n\r\nimport HeadingActions from '../../components/HeadingActions';\r\n\r\nexport const PageLinks = props => {\r\n const getEditPath = () => {\r\n if (props.isCustom) {\r\n return `/custom-service-request/${props.partyId}/${props.serviceRequestId}`;\r\n } else {\r\n return `/service-request/${props.partyId}/${props.serviceRequestId}`;\r\n }\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nPageLinks.propTypes = {\r\n isCustom: PropTypes.bool,\r\n isDirty: PropTypes.bool,\r\n partyId: PropTypes.string,\r\n serviceRequestId: PropTypes.string,\r\n discussion: PropTypes.object,\r\n isTransportation: PropTypes.bool\r\n};\r\n","import React, { PureComponent } from 'react';\r\nimport { Formik, Field, FieldArray } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { GhostButton, RaisedButton } from '@hobs/components/Buttons';\r\nimport { Download } from '@hobs/utils/download';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport Input from '@hobs/components/Input';\r\nimport DateInput from '@hobs/components/DateInput';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Dropdown from '@hobs/components/Dropdown';\r\nimport Textarea from '@hobs/components/Textarea';\r\nimport PageHeader from '@hobs/components/PageHeader';\r\nimport NumericInput from '@hobs/components/NumericInput';\r\nimport Toast from '@hobs/components/Toast';\r\nimport Confirm from '@hobs/components/Confirm';\r\nimport { ServiceRequestNavContext } from '@hobs/components/ServiceRequestNavContext';\r\nimport {\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN,\r\n DATE_FORMAT,\r\n USER_ROLES\r\n} from '@hobs/utils/constants';\r\nimport { format } from '@hobs/utils/formatWithTimeZone';\r\nimport { countDecimals } from '@hobs/utils/countDecimals';\r\nimport PropTypes from 'prop-types';\r\nimport ShortId from 'shortid';\r\nimport Panel from '@hobs/components/Panel';\r\nimport { H2 } from '@hobs/components/Headings';\r\nimport PageActions from '@hobs/components/PageActions';\r\nimport { PageLinks } from './PageLinks';\r\nimport './Transportation.scss';\r\n\r\nclass Transportation extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n const { t } = this.props;\r\n\r\n this.form = React.createRef();\r\n\r\n this.state = {\r\n detailedInformationFields: []\r\n };\r\n\r\n const getValue = (value, eq) => {\r\n return Boolean(value && value.toString() && value.toString() === eq);\r\n };\r\n\r\n this.validationSchema = Yup.object().shape({\r\n generalInformation: Yup.object().shape({\r\n serialNumber: Yup.string()\r\n .nullable()\r\n .max(15, t('Serial number cannot be longer than 15 symbols'))\r\n }),\r\n pickupDetails: Yup.object().shape({\r\n namePoc: Yup.string()\r\n .nullable()\r\n .max(256, t('Name POC cannot be longer than 256 symbols')),\r\n location: Yup.object().shape({\r\n name: Yup.string()\r\n .nullable()\r\n .max(256, t('Place of loading cannot be longer than 256 symbols'))\r\n .required(t('Place of loading is required')),\r\n zipCode: Yup.string()\r\n .nullable()\r\n .max(5, t('Zip code cannot be longer than 5 symbols'))\r\n .required(t('Zip code is required')),\r\n postAddress: Yup.string()\r\n .nullable()\r\n .max(50, t('Post. add. cannot be longer than 50 symbols'))\r\n .required(t('Postal address is required')),\r\n comment: Yup.string()\r\n .nullable()\r\n .max(256, t('Location comment cannot be longer than 256 symbols'))\r\n }),\r\n mobilePhone: Yup.string()\r\n .nullable()\r\n .required(t('Mobile phone is required')),\r\n email: Yup.string()\r\n .nullable()\r\n .email(t('Invalid email format'))\r\n .required(t('Email is required')),\r\n mission: Yup.string()\r\n .nullable()\r\n .max(256, t('Mission cannot be longer than 256 symbols'))\r\n }),\r\n deliveryDetails: Yup.object().shape({\r\n namePoc: Yup.string()\r\n .nullable()\r\n .max(256, t('Name POC cannot be longer than 256 symbols')),\r\n location: Yup.object().shape({\r\n name: Yup.string()\r\n .nullable()\r\n .max(256, t('Place of delivery cannot be longer than 256 symbols'))\r\n .required(t('Place of delivery is required')),\r\n zipCode: Yup.string()\r\n .nullable()\r\n .max(5, t('Zip code cannot be longer than 5 symbols'))\r\n .required(t('Zip code is required')),\r\n postAddress: Yup.string()\r\n .nullable()\r\n .max(50, t('Post. add. cannot be longer than 50 symbols'))\r\n .required(t('Postal address is required')),\r\n comment: Yup.string()\r\n .nullable()\r\n .max(256, t('Location comment cannot be longer than 256 symbols'))\r\n }),\r\n mobilePhone: Yup.string()\r\n .nullable()\r\n .required(t('Mobile phone is required')),\r\n email: Yup.string()\r\n .nullable()\r\n .email(t('Invalid email format')),\r\n remarks: Yup.string()\r\n .nullable()\r\n .max(256, t('Remarks cannot be longer than 256 symbols'))\r\n }),\r\n lines: Yup.array().of(\r\n Yup.object().shape({\r\n typeId: Yup.string()\r\n .nullable()\r\n .required(t('Item type is required'))\r\n .typeError(t('Item type is required')),\r\n description: Yup.string()\r\n .nullable()\r\n .max(30, t('Description cannot be longer than 30 symbols'))\r\n .required(t('Description is required')),\r\n quantity: Yup.number()\r\n .nullable()\r\n .min(1, t('Quantity must be greater than 0'))\r\n .required(t('Quantity is required'))\r\n .typeError(t('Quantity is required')),\r\n length: Yup.string().when('typeId', value =>\r\n getValue(value, '2')\r\n ? Yup.number(t('Invalid length format'))\r\n .nullable()\r\n .min(0.01, t('Length must be greater than 0'))\r\n .test('format', t('Invalid length format'), val => {\r\n return countDecimals(val) < 3;\r\n })\r\n : Yup.number(t('Invalid length format'))\r\n .test('format', t('Invalid length format'), val => {\r\n return countDecimals(val) < 3;\r\n })\r\n .nullable()\r\n .min(0.01, t('Length must be greater than 0'))\r\n .required(t('Length is required'))\r\n .typeError(t('Invalid length format'))\r\n ),\r\n width: Yup.string().when('typeId', value =>\r\n getValue(value, '2')\r\n ? Yup.number(t('Invalid width format'))\r\n .test('format', t('Invalid width format'), val => {\r\n return countDecimals(val) < 3;\r\n })\r\n .nullable()\r\n .min(0.01, t('Width must be greater than 0'))\r\n : Yup.number(t('Invalid width format'))\r\n .test('format', t('Invalid width format'), val => {\r\n return countDecimals(val) < 3;\r\n })\r\n .nullable()\r\n .min(0.01, t('Width must be greater than 0'))\r\n .required(t('Width is required'))\r\n .typeError(t('Invalid width format'))\r\n ),\r\n height: Yup.string().when('typeId', value =>\r\n getValue(value, '2')\r\n ? Yup.number(t('Invalid height format'))\r\n .test('format', t('Invalid height format'), val => {\r\n return countDecimals(val) < 3;\r\n })\r\n .nullable()\r\n .min(0.01, t('Height must be greater than 0'))\r\n : Yup.number(t('Invalid height format'))\r\n .nullable()\r\n .test('format', t('Invalid height format'), val => {\r\n return countDecimals(val) < 3;\r\n })\r\n .min(0.01, t('Height must be greater than 0'))\r\n .required(t('Height is required'))\r\n .typeError(t('Invalid height format'))\r\n ),\r\n weight: Yup.string().when('typeId', value =>\r\n getValue(value, '2')\r\n ? Yup.number(t('Invalid weight format'))\r\n .test('format', t('Invalid weight format'), val => {\r\n return countDecimals(val) < 3;\r\n })\r\n .nullable()\r\n .min(0.01, t('Weight must be greater than 0'))\r\n : Yup.number(t('Invalid weight format'))\r\n .test('format', t('Invalid weight format'), val => {\r\n return countDecimals(val) < 3;\r\n })\r\n .nullable()\r\n .min(0.01, t('Weight must be greater than 0'))\r\n .required(t('Weight is required'))\r\n .typeError(t('Invalid weight format'))\r\n ),\r\n dgrName: Yup.string().when('typeId', value =>\r\n getValue(value, '2') || getValue(value, '3')\r\n ? Yup.string()\r\n .nullable()\r\n .max(30, t('DGR name cannot be longer than 30 symbols'))\r\n : Yup.string()\r\n .nullable()\r\n .max(30, t('DGR name cannot be longer than 30 symbols'))\r\n .required(t('DGR name is required'))\r\n ),\r\n unNr: Yup.string().when('typeId', value =>\r\n getValue(value, '2') || getValue(value, '3')\r\n ? Yup.string().nullable()\r\n : Yup.string()\r\n .nullable()\r\n .test(\r\n 'format',\r\n t('Invalid UN-NR format'),\r\n val => val && val.toString().length === 4\r\n )\r\n .required(t('UN-NR is required'))\r\n ),\r\n dgrClass: Yup.number().when('typeId', value =>\r\n getValue(value, '2') || getValue(value, '3')\r\n ? Yup.number().nullable()\r\n : Yup.number()\r\n .typeError(t('DGR class is required'))\r\n .nullable()\r\n .test('format', t('Invalid DGR class format'), val => {\r\n return val > 1 && val < 10 && countDecimals(val) < 3;\r\n })\r\n .required(t('DGR class is required'))\r\n ),\r\n neq: Yup.string().when('typeId', value =>\r\n !getValue(value, '2') && !getValue(value, '3')\r\n ? Yup.number(t('Invalid NEQ format'))\r\n .nullable()\r\n .test('format', t('Invalid NEQ format'), val => {\r\n return val >= 0 && countDecimals(val) < 3;\r\n })\r\n .min(0, t('NEQ cannot be less than 0'))\r\n .required(t('NEQ is required'))\r\n .typeError(t('Invalid NEQ format'))\r\n : Yup.number().nullable()\r\n ),\r\n remarks: Yup.string()\r\n .nullable()\r\n .max(50, t('Remarks cannot be longer than 50 symbols'))\r\n })\r\n )\r\n });\r\n }\r\n\r\n async componentDidMount() {\r\n const {\r\n match: {\r\n params: { serviceRequestId }\r\n },\r\n get,\r\n forSubmit\r\n } = this.props;\r\n\r\n await get(serviceRequestId);\r\n await forSubmit();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.reset();\r\n }\r\n\r\n // packages/@hobs/utils/constants/constants.js STATUSES[2] - removed\r\n isDisabled() {\r\n return this.props.transportation.isDisabled;\r\n }\r\n\r\n getBackNavigationUrl = (navContext, history) => {\r\n const { match } = this.props;\r\n if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.AnnexOverview) {\r\n const withSearch =\r\n history && history.location && history.location.search\r\n ? history.location.search\r\n : '';\r\n return `/annex-overview${withSearch}`;\r\n } else if (\r\n navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.RequestedServices\r\n ) {\r\n return `/service-requests/${match.params.partyId}`;\r\n } else if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.Tickets) {\r\n return '/tickets';\r\n }\r\n\r\n return `/service-requests/${match.params.partyId}`;\r\n };\r\n\r\n navigateBack = (navContext, previousPageHistory) => () => {\r\n const { history } = this.props;\r\n history.push(this.getBackNavigationUrl(navContext, previousPageHistory));\r\n };\r\n\r\n isOnlyPreviewMode() {\r\n const { hasUserPermission, transportation } = this.props;\r\n return (\r\n hasUserPermission(USER_ROLES.READONLY) ||\r\n (hasUserPermission(USER_ROLES.HOST_UNIT) &&\r\n !transportation.canHostUnitEdit)\r\n );\r\n }\r\n\r\n renderTransportationInfo(values) {\r\n const { t, forSubmitData } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {forSubmitData.vehicleTypes.map(item => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
\r\n
\r\n \r\n \r\n {forSubmitData.transportTypes.map(item => {\r\n return (\r\n \r\n {item.transportationType}\r\n \r\n );\r\n })}\r\n \r\n
\r\n
\r\n \r\n {forSubmitData.suppliers.length === 0 && (\r\n \r\n )}\r\n\r\n {values.transportInformation.supplierName !== '' &&\r\n !forSubmitData.suppliers.find(\r\n item =>\r\n item.supplierName === values.transportInformation.supplierName\r\n ) && (\r\n \r\n )}\r\n \r\n {forSubmitData.suppliers.map(item => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n onSubmit = (values, { setSubmitting }) => {\r\n const {\r\n match: {\r\n params: { serviceRequestId }\r\n },\r\n t,\r\n get\r\n } = this.props;\r\n\r\n const { pickupDetails, deliveryDetails } = values;\r\n\r\n const data = {\r\n ...values,\r\n pickupDetails: {\r\n ...pickupDetails,\r\n transportationTime: pickupDetails.transportationTime\r\n ? {\r\n hour: pickupDetails.transportationTime.hour,\r\n minute: pickupDetails.transportationTime.minute,\r\n date:\r\n pickupDetails.transportationTime.date !== '-'\r\n ? pickupDetails.transportationTime.date\r\n : null\r\n }\r\n : null\r\n },\r\n deliveryDetails: {\r\n ...deliveryDetails,\r\n transportationTime: deliveryDetails.transportationTime\r\n ? {\r\n hour: deliveryDetails.transportationTime.hour,\r\n minute: deliveryDetails.transportationTime.minute,\r\n date:\r\n deliveryDetails.transportationTime.date !== '-'\r\n ? deliveryDetails.transportationTime.date\r\n : null\r\n }\r\n : null\r\n }\r\n };\r\n\r\n this.props\r\n .update(this.props.match.params.serviceRequestId, data)\r\n .then(response => {\r\n if (response.success) {\r\n Toast.success(t('Transportation details updated successfully'));\r\n\r\n get(serviceRequestId);\r\n setSubmitting(false);\r\n } else {\r\n Toast.warning(response.payload.message);\r\n setSubmitting(false);\r\n }\r\n });\r\n };\r\n\r\n convertObjectNullsToString(object) {\r\n return Object.keys(object).reduce((result, item) => {\r\n if (result[item] === null) {\r\n result[item] = '';\r\n }\r\n\r\n return result;\r\n }, object);\r\n }\r\n\r\n getPaddedTime(time) {\r\n if (time != null && time < 10 && (!time.length || time.length <= 1)) {\r\n return `0${time}`;\r\n }\r\n return time;\r\n }\r\n\r\n setTransportationTime(transportationTime) {\r\n if (transportationTime) {\r\n transportationTime.hour = this.getPaddedTime(transportationTime.hour);\r\n transportationTime.minute = this.getPaddedTime(transportationTime.minute);\r\n }\r\n return transportationTime;\r\n }\r\n\r\n getInitialValues() {\r\n const {\r\n transportation,\r\n transportation: { deliveryDetails, pickupDetails, transportInformation }\r\n } = this.props;\r\n\r\n pickupDetails.transportationTime = this.setTransportationTime(\r\n pickupDetails.transportationTime\r\n );\r\n deliveryDetails.transportationTime = this.setTransportationTime(\r\n deliveryDetails.transportationTime\r\n );\r\n\r\n return {\r\n ...this.convertObjectNullsToString(transportation),\r\n generalInformation: this.convertObjectNullsToString(\r\n transportation.generalInformation\r\n ),\r\n pickupDetails: {\r\n ...this.convertObjectNullsToString(pickupDetails),\r\n transportationTime: pickupDetails.transportationTime\r\n ? {\r\n ...pickupDetails.transportationTime\r\n }\r\n : {\r\n date: '',\r\n hour: '',\r\n minute: ''\r\n }\r\n },\r\n deliveryDetails: {\r\n ...this.convertObjectNullsToString(deliveryDetails),\r\n transportationTime: deliveryDetails.transportationTime\r\n ? {\r\n ...this.convertObjectNullsToString(\r\n deliveryDetails.transportationTime\r\n )\r\n }\r\n : {\r\n date: '',\r\n hour: '',\r\n minute: ''\r\n },\r\n remarks: deliveryDetails.remarks ? deliveryDetails.remarks : ''\r\n },\r\n transportInformation: transportInformation\r\n ? this.convertObjectNullsToString(transportInformation)\r\n : {\r\n vehicleType: '',\r\n vehicleTypeId: '',\r\n transportType: '',\r\n transportTypeId: '',\r\n supplierName: '',\r\n supplierId: ''\r\n }\r\n };\r\n }\r\n\r\n resetForm = resetForm => {\r\n const { t } = this.props;\r\n\r\n Confirm(\r\n t('Cancel'),\r\n t('Are you sure you want to cancel? All entered data will be lost'),\r\n () => {\r\n // WARNING: HACK DETECTED 😿 🙉\r\n // Strange that formik is not resseting field\r\n // displayed values to initialValues\r\n // So we have to do this strange hack (native js reset using react refs)\r\n if (this.form.current) {\r\n this.form.current.reset();\r\n resetForm(this.getInitialValues());\r\n }\r\n }\r\n );\r\n };\r\n\r\n onBackClick = (event, dirty, nav) => {\r\n event.preventDefault();\r\n const { history } = this.props;\r\n\r\n if (!dirty) {\r\n history.push(\r\n this.getBackNavigationUrl(\r\n nav.serviceRequestNavigation,\r\n nav.previousPageHistory\r\n )\r\n );\r\n } else {\r\n Confirm(\r\n this.props.t('Cancel service request'),\r\n this.props.t(\r\n 'Are you sure you want to cancel? All entered data will be lost.'\r\n ),\r\n () => {\r\n history.push(\r\n this.getBackNavigationUrl(\r\n nav.serviceRequestNavigation,\r\n nav.previousPageHistory\r\n )\r\n );\r\n }\r\n );\r\n }\r\n };\r\n\r\n renderTransportationHeading(dirty) {\r\n const { t, transportation } = this.props;\r\n\r\n return (\r\n \r\n {nav => (\r\n <>\r\n {this.props.withEscNavigationCallback(\r\n this.navigateBack(\r\n nav.serviceRequestNavigation,\r\n nav.previousPageHistory\r\n )\r\n )}\r\n this.onBackClick(e, dirty, nav)}\r\n title={t('Transportation details')}\r\n unit={{\r\n code: transportation.partyCode,\r\n name: transportation.unitName,\r\n number: transportation.requestNumber\r\n }}\r\n status={{\r\n id: transportation.statusId,\r\n name: transportation.statusName\r\n }}\r\n />\r\n \r\n )}\r\n \r\n );\r\n }\r\n renderPageLinks(dirty) {\r\n const { t, match } = this.props;\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n exportTransporation = () => {\r\n const {\r\n exportExcel,\r\n match: {\r\n params: { serviceRequestId }\r\n }\r\n } = this.props;\r\n\r\n exportExcel(serviceRequestId).then(response => {\r\n if (!response.status) {\r\n Download(response, 'Transportation.xlsx');\r\n } else {\r\n Toast.warning(response.payload.message);\r\n }\r\n });\r\n };\r\n\r\n renderExportButton() {\r\n const { t, transportation } = this.props;\r\n\r\n return (\r\n }\r\n onClick={this.exportTransporation}\r\n >\r\n {t('XLSX')}\r\n \r\n );\r\n }\r\n\r\n timeCheck = (minutes = false) => event => {\r\n const {\r\n target: { value, selectionStart },\r\n charCode\r\n } = event;\r\n\r\n const allowedFirstNumber = minutes\r\n ? selectionStart === 0 &&\r\n [48, 49, 50, 51, 52, 53].indexOf(charCode) === -1\r\n : [48, 49, 50].indexOf(charCode) === -1 && selectionStart === 0;\r\n\r\n const allowedSecondNumber = minutes\r\n ? false\r\n : selectionStart === 1 &&\r\n (parseInt(value, 10) === 2 &&\r\n [48, 49, 50, 51].indexOf(charCode) === -1);\r\n\r\n if (\r\n [48, 49, 50, 51, 52, 53, 54, 55, 56, 57].indexOf(charCode) === -1 ||\r\n value > 59 ||\r\n allowedFirstNumber ||\r\n allowedSecondNumber ||\r\n value.length === 2\r\n ) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n renderGeneralInformation() {\r\n const { t } = this.props;\r\n\r\n return (\r\n \r\n
\r\n

{t('General information')}

\r\n\r\n
\r\n
\r\n \r\n {t('Serial number')}\r\n \r\n
\r\n
\r\n \r\n {t('PO number')}\r\n \r\n
\r\n
\r\n {t('Last update')}\r\n
\r\n {format(\r\n this.props.transportation.generalInformation.modifiedDate,\r\n DATE_FORMAT\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n renderHeaderCenterActions = () => {\r\n return null;\r\n };\r\n\r\n render() {\r\n const { t, forSubmitData } = this.props;\r\n\r\n return (\r\n \r\n {({\r\n handleSubmit,\r\n resetForm,\r\n isSubmitting,\r\n dirty,\r\n values,\r\n setFieldValue\r\n }) => {\r\n return (\r\n <>\r\n
\r\n {this.renderTransportationHeading(dirty)}\r\n {this.renderHeaderCenterActions()}\r\n
\r\n {this.renderExportButton()}\r\n {this.renderPageLinks(dirty)}\r\n
\r\n
\r\n \r\n
\r\n {!this.isDisabled() && (\r\n \r\n
\r\n
\r\n {\r\n this.resetForm(resetForm);\r\n }}\r\n disabled={\r\n isSubmitting || !dirty || this.isOnlyPreviewMode()\r\n }\r\n >\r\n {t('Cancel')}\r\n \r\n \r\n {t('Save')}\r\n \r\n
\r\n \r\n )}\r\n
\r\n
\r\n {this.renderGeneralInformation()}\r\n \r\n
\r\n

{t('Pickup details')}

\r\n
\r\n
\r\n \r\n {t('Place of loading')}\r\n \r\n\r\n
\r\n \r\n {t('Latitude')}\r\n \r\n \r\n {t('Longitude')}\r\n \r\n
\r\n
\r\n \r\n {t('Zip code')}\r\n \r\n \r\n {t('Post. add.')}\r\n \r\n
\r\n \r\n {t('Location comment')}\r\n \r\n
\r\n\r\n
\r\n \r\n {t('Name POC')}\r\n \r\n \r\n {t('Mobile phone')}\r\n \r\n \r\n {t('Phone')}\r\n \r\n \r\n {t('E-mail')}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n {t('Earliest date')}\r\n \r\n
\r\n {\r\n event.preventDefault();\r\n }}\r\n disabled={this.isOnlyPreviewMode()}\r\n name=\"pickupDetails.transportationTime.hour\"\r\n >\r\n {t('Time')}\r\n \r\n {\r\n event.preventDefault();\r\n }}\r\n disabled={this.isOnlyPreviewMode()}\r\n name=\"pickupDetails.transportationTime.minute\"\r\n >\r\n  \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n {t('Mission')}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n

{t('Delivery details')}

\r\n\r\n
\r\n
\r\n \r\n {t('Place of delivery')}\r\n \r\n\r\n
\r\n \r\n {t('Latitude')}\r\n \r\n \r\n {t('Longitude')}\r\n \r\n
\r\n\r\n
\r\n \r\n {t('Zip code')}\r\n \r\n \r\n {t('Post. add.')}\r\n \r\n
\r\n \r\n {t('Location comment')}\r\n \r\n
\r\n\r\n
\r\n \r\n {t('Name POC')}\r\n \r\n \r\n {t('Mobile phone')}\r\n \r\n \r\n {t('Phone')}\r\n \r\n \r\n {t('E-mail')}\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n {t('Latest date')}\r\n \r\n
\r\n {\r\n event.preventDefault();\r\n }}\r\n placeholder={t('HH')}\r\n name=\"deliveryDetails.transportationTime.hour\"\r\n disabled={this.isOnlyPreviewMode()}\r\n >\r\n {t('Time')}\r\n \r\n {\r\n event.preventDefault();\r\n }}\r\n placeholder={t('mm')}\r\n name=\"deliveryDetails.transportationTime.minute\"\r\n disabled={this.isOnlyPreviewMode()}\r\n >\r\n  \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n {this.renderTransportationInfo(values)}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n

{t('Detailed information')}

\r\n
\r\n {\r\n return (\r\n <>\r\n \r\n \r\n {values.lines.length > 0 && (\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 {!this.isDisabled() && }\r\n \r\n )}\r\n \r\n \r\n {values.lines.map((item, index) => {\r\n const typeId = item.typeId\r\n ? item.typeId.toString()\r\n : '';\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 {!this.isDisabled() &&\r\n !this.isOnlyPreviewMode() && (\r\n \r\n )}\r\n \r\n );\r\n })}\r\n \r\n
{t('No.')}{t('Type')}\r\n {t('Description of goods/passenger')}\r\n {t('Q-ty')}{t('Length cm')}{t('Width cm')}{t('Height cm')}{t('Weight kg')}{t('DGR name')}{t('UN-NR')}{t('DGR class')}{t('NEQ kg')}{t('Remarks')}
{index + 1}\r\n \r\n \r\n {forSubmitData.transportationDetailsTypes.map(\r\n item => {\r\n return (\r\n \r\n {item.longName}\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 Confirm(\r\n t('Delete'),\r\n t(\r\n '\tAre you sure you want to delete this item?'\r\n ),\r\n () => {\r\n arrayHelpers.remove(\r\n index\r\n );\r\n }\r\n );\r\n }}\r\n >\r\n \r\n \r\n
\r\n }\r\n type=\"button\"\r\n disabled={\r\n this.isDisabled() || this.isOnlyPreviewMode()\r\n }\r\n onClick={() =>\r\n arrayHelpers.push({\r\n typeId: undefined,\r\n description: undefined,\r\n quantity: undefined,\r\n length: undefined,\r\n width: undefined,\r\n height: undefined,\r\n weight: undefined,\r\n unNr: undefined,\r\n dgrName: undefined,\r\n dgrClass: undefined,\r\n neq: undefined,\r\n remarks: undefined\r\n })\r\n }\r\n >\r\n {t('Add new item')}\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\nTransportation.propTypes = {\r\n match: PropTypes.object,\r\n transportation: PropTypes.object,\r\n t: PropTypes.func,\r\n forSubmit: PropTypes.func,\r\n forSubmitData: PropTypes.object,\r\n history: PropTypes.object,\r\n get: PropTypes.func,\r\n update: PropTypes.func,\r\n exportExcel: PropTypes.func,\r\n hasUserPermission: PropTypes.func,\r\n reset: PropTypes.func,\r\n withEscNavigationCallback: PropTypes.func\r\n};\r\n\r\nexport default Transportation;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Icon from '@hobs/components/Icon';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\nimport { withRouter } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport Confirm from '@hobs/components/Confirm';\r\nimport { withTranslation } from 'react-i18next';\r\nimport Discussion from '@hobs/containers/Discussion';\r\n\r\nimport './HeadingActions.scss';\r\n\r\nclass HeadingActions extends React.PureComponent {\r\n isActive(path) {\r\n return path === this.props.location.pathname;\r\n }\r\n\r\n navigateTo(path) {\r\n if (this.props.isDirty) {\r\n Confirm(\r\n this.props.t('Cancel service request'),\r\n this.props.t(\r\n 'Are you sure you want to cancel? All entered data will be lost.'\r\n ),\r\n () => {\r\n this.props.history.push(path);\r\n }\r\n );\r\n } else {\r\n this.props.history.push(path);\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n isTransportation,\r\n transportationPath,\r\n showPath,\r\n editPath,\r\n historyPath,\r\n discussion,\r\n changeHistoryPath\r\n } = this.props;\r\n return (\r\n
\r\n {showPath && (\r\n {\r\n e.preventDefault();\r\n this.navigateTo(showPath);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n {editPath && (\r\n {\r\n e.preventDefault();\r\n this.navigateTo(editPath);\r\n }}\r\n to={editPath}\r\n >\r\n \r\n \r\n )}\r\n {historyPath && (\r\n {\r\n e.preventDefault();\r\n this.navigateTo(historyPath);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n {isTransportation && (\r\n {\r\n e.preventDefault();\r\n this.navigateTo(transportationPath);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n {discussion && (\r\n \r\n \r\n \r\n )}\r\n {changeHistoryPath && (\r\n {\r\n e.preventDefault();\r\n this.navigateTo(changeHistoryPath);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nHeadingActions.propTypes = {\r\n onNavigate: PropTypes.func,\r\n showPath: PropTypes.string,\r\n editPath: PropTypes.string,\r\n transportationPath: PropTypes.string,\r\n changeHistoryPath: PropTypes.string,\r\n isDirty: PropTypes.bool,\r\n isTransportation: PropTypes.bool,\r\n historyPath: PropTypes.string,\r\n history: PropTypes.object,\r\n t: PropTypes.func,\r\n discussion: PropTypes.shape({\r\n serviceRequestId: PropTypes.string,\r\n status: PropTypes.number,\r\n initials: PropTypes.string,\r\n iconOnly: PropTypes.bool\r\n }),\r\n location: PropTypes.shape({\r\n pathname: PropTypes.string\r\n }),\r\n hasUserPermission: PropTypes.func\r\n};\r\n\r\nexport default withTranslation()(withRouter(WithRoles(HeadingActions)));\r\n","import React from 'react';\r\nimport ShortId from 'shortid';\r\nimport PropTypes from 'prop-types';\r\nimport HeadingActions from '../../components/HeadingActions';\r\n\r\nexport const PageLinks = props => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nPageLinks.propTypes = {\r\n serviceRequestId: PropTypes.string,\r\n changeHistoryPath: PropTypes.string,\r\n isDirty: PropTypes.bool,\r\n discussion: PropTypes.object,\r\n isTransportation: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { withRouter } from 'react-router-dom';\r\nimport WithEscNavigation from '@hobs/hocs/WithEscNavigation';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport { forSubmit, update, get, reset } from '@hobs/actions/transportation';\r\nimport _Transportation from '@hobs/containers/Transportation';\r\nimport {\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN,\r\n DATE_FORMAT\r\n} from '@hobs/utils/constants';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\nimport Panel from '@hobs/components/Panel';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport { H2 } from '@hobs/components/Headings';\r\nimport { format } from '@hobs/utils/formatWithTimeZone';\r\nimport { PageLinks } from '../ServiceRequestEdit/PageLinks';\r\n\r\nclass Transportation extends _Transportation {\r\n getBackNavigationUrl = navContext => {\r\n if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.AnnexOverview) {\r\n return '/annex-overview';\r\n }\r\n else if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.Tickets) {\r\n return '/tickets';\r\n }\r\n return '/requested-services';\r\n };\r\n\r\n renderTransportationInfo() {\r\n return null;\r\n }\r\n\r\n renderExportButton() {\r\n return null;\r\n }\r\n\r\n getInitialValues() {\r\n const {\r\n transportation,\r\n transportation: { deliveryDetails, pickupDetails }\r\n } = this.props;\r\n\r\n pickupDetails.transportationTime = this.setTransportationTime(\r\n pickupDetails.transportationTime\r\n );\r\n deliveryDetails.transportationTime = this.setTransportationTime(\r\n deliveryDetails.transportationTime\r\n );\r\n\r\n return {\r\n ...this.convertObjectNullsToString(transportation),\r\n generalInformation: this.convertObjectNullsToString(\r\n transportation.generalInformation\r\n ),\r\n pickupDetails: {\r\n ...this.convertObjectNullsToString(pickupDetails),\r\n transportationTime: pickupDetails.transportationTime\r\n ? {\r\n ...pickupDetails.transportationTime,\r\n time: pickupDetails.transportationTime.hour\r\n ? format(\r\n new Date(\r\n `1970-01-01 ${pickupDetails.transportationTime.hour}:${pickupDetails.transportationTime.minute}:00`\r\n ),\r\n 'HH:mm'\r\n )\r\n : ''\r\n }\r\n : {\r\n date: '',\r\n time: ''\r\n }\r\n },\r\n deliveryDetails: {\r\n ...this.convertObjectNullsToString(deliveryDetails),\r\n transportationTime: deliveryDetails.transportationTime\r\n ? {\r\n ...this.convertObjectNullsToString(\r\n deliveryDetails.transportationTime\r\n ),\r\n time: format(\r\n new Date(\r\n `1970-01-01 ${deliveryDetails.transportationTime.hour}:${deliveryDetails.transportationTime.minute}:00`\r\n ),\r\n 'HH:mm'\r\n )\r\n }\r\n : {\r\n date: '',\r\n time: ''\r\n },\r\n remarks: deliveryDetails.remarks ? deliveryDetails.remarks : ''\r\n }\r\n };\r\n }\r\n\r\n renderGeneralInformation() {\r\n const { t } = this.props;\r\n\r\n return (\r\n \r\n
\r\n

{t('General information')}

\r\n\r\n
\r\n
\r\n {t('Last update')}\r\n
\r\n {format(\r\n this.props.transportation.generalInformation.modifiedDate,\r\n DATE_FORMAT\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n renderPageLinks(dirty) {\r\n const { t, match } = this.props;\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nconst oDataLoading = createLoadingSelector([\r\n 'Exercises/Current',\r\n 'Transportation/Get',\r\n 'Transportation/ForSubmit'\r\n]);\r\n\r\nconst mapStateToProps = state => ({\r\n transportation: state.transportation.item,\r\n forSubmitData: state.transportation.forSubmit,\r\n isLoading: oDataLoading(state)\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n forSubmit,\r\n reset,\r\n update,\r\n get\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(withRouter(WithEscNavigation(WithRoles(Transportation)))));\r\n","import {\r\n GET,\r\n FOR_SUBMIT,\r\n UPDATE,\r\n RESET,\r\n EXPORT_EXCEL\r\n} from '@hobs/constants/transportation';\r\nimport { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport { actionCreator } from './utils/utils';\r\n\r\nexport const forSubmit = () =>\r\n actionCreator('Transportation/ForSubmit', FOR_SUBMIT, {\r\n method: 'GET'\r\n });\r\n\r\nexport const get = serviceRequestId =>\r\n actionCreator(`Transportation/${serviceRequestId}`, GET, {\r\n method: 'GET'\r\n });\r\n\r\nexport const reset = () => {\r\n return dispatch => {\r\n dispatch({ type: RESET.SUCCESS });\r\n };\r\n};\r\n\r\nexport const update = (serviceRequestId, body) =>\r\n actionCreator(`Transportation/${serviceRequestId}`, UPDATE, {\r\n method: 'PUT',\r\n body\r\n });\r\n\r\nexport const exportExcel = serviceRequestId => {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure(`Transportation/${serviceRequestId}/Excel`, {\r\n method: 'GET',\r\n forceBlob: true\r\n })\r\n .then(response => {\r\n dispatch(success());\r\n return response;\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: EXPORT_EXCEL.REQUEST };\r\n }\r\n function success(response) {\r\n return { type: EXPORT_EXCEL.SUCCESS, response };\r\n }\r\n function failure(error) {\r\n return { type: EXPORT_EXCEL.FAILURE, error };\r\n }\r\n};\r\n","export const GETAUDITLOGITEMS = {\r\n REQUEST: 'ServiceRequestAuditLog/GetAuditLogItems/Request',\r\n SUCCESS: 'ServiceRequestAuditLog/GetAuditLogItems/Success',\r\n FAILURE: 'ServiceRequestAuditLog/GetAuditLogItems/Failure'\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { withRouter } from 'react-router-dom';\r\nimport GridLoader from '@hobs/components/Grid/GridLoader';\r\nimport ColumnMenu from '@hobs/components/Grid/ColumnMenu';\r\nimport { H2 } from '@hobs/components/Headings';\r\nimport { Grid, GridColumn } from '@progress/kendo-react-grid';\r\nimport Panel from '@hobs/components/Panel';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport { format, formatLocal } from '@hobs/utils/formatWithTimeZone';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport Icon from '@hobs/components/Icon';\r\nimport { GhostButton } from '@hobs/components/Buttons';\r\nimport {\r\n DATE_FORMAT,\r\n DATETIME_FORMAT,\r\n PAGE_SIZES\r\n} from '@hobs/utils/constants';\r\nimport { getAuditLogItems } from '@hobs/actions/serviceRequestAuditLog';\r\n\r\nimport './ServiceRequestAuditLogItems.scss';\r\nimport Money from '@hobs/components/Money';\r\nimport Quantity from '@hobs/components/Quantity';\r\n\r\nclass ServiceRequestAuditLogItems extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n auditLog: props.auditLog,\r\n auditLogItems: [],\r\n auditLogItemDataState: {\r\n take: 10,\r\n skip: 0,\r\n sort: [{ field: 'FieldName', dir: 'asc' }]\r\n }\r\n };\r\n }\r\n\r\n getDisplayDate = date => {\r\n return formatLocal(date, DATETIME_FORMAT);\r\n };\r\n\r\n dataStateChange = e => {\r\n this.setState(\r\n {\r\n auditLogItemDataState: e.dataState\r\n },\r\n () => {\r\n this.loadODataQuery();\r\n }\r\n );\r\n };\r\n\r\n loadODataQuery = requestedServicesAuditLogId => {\r\n const { auditLog } = this.state;\r\n this.props\r\n .getAuditLogItems(\r\n `RequestedServicesAuditLogItemsQuery(${\r\n requestedServicesAuditLogId\r\n ? requestedServicesAuditLogId\r\n : auditLog.RequestedServicesAuditLogId\r\n })`,\r\n this.state.auditLogItemDataState\r\n )\r\n .then(response => {\r\n if (response.success) {\r\n this.setState({\r\n auditLogItems: response\r\n });\r\n } else {\r\n this.setState({\r\n auditLogItems: []\r\n });\r\n }\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this.loadODataQuery();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.setState({\r\n auditLogItems: []\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (\r\n prevProps.auditLog.RequestedServicesAuditLogId !=\r\n this.props.auditLog.RequestedServicesAuditLogId\r\n ) {\r\n this.setState(\r\n {\r\n auditLog: this.props.auditLog,\r\n auditLogItemDataState: {\r\n ...this.state.auditLogItemDataState,\r\n skip: 0\r\n }\r\n },\r\n () => {\r\n this.loadODataQuery(this.props.auditLog.RequestedServicesAuditLogId);\r\n }\r\n );\r\n }\r\n }\r\n\r\n closeDetails = () => {\r\n this.setState({\r\n auditLog: null,\r\n auditLogItemDataState: {\r\n ...this.state.auditLogItemDataState,\r\n skip: 0\r\n },\r\n auditLogItems: []\r\n });\r\n this.props.onClose();\r\n };\r\n\r\n expand() {\r\n event.target.classList.toggle('expanded');\r\n }\r\n\r\n getFieldValue = (value, dateValue, fieldName) => {\r\n const namesOfMoneyFields = ['price', 'cost', 'gross'];\r\n const fieldsToExclude = ['requestnumber', 'servicecode'];\r\n const isNumber = dateValue\r\n ? false\r\n : !isNaN(Number.parseFloat(value)) &&\r\n !fieldsToExclude.some(x => fieldName.toLowerCase().includes(x));\r\n const isMoney =\r\n isNumber &&\r\n namesOfMoneyFields.some(x => fieldName.toLowerCase().includes(x));\r\n\r\n return (\r\n \r\n {dateValue ? (\r\n format(dateValue, DATE_FORMAT)\r\n ) : isMoney ? (\r\n \r\n ) : isNumber ? (\r\n \r\n ) : (\r\n value\r\n )}\r\n \r\n );\r\n };\r\n\r\n render() {\r\n const { t, getActionTypeValue, getPhaseTypeValue } = this.props;\r\n const { auditLogItems, auditLog } = this.state;\r\n return (\r\n <>\r\n {auditLog && (\r\n
\r\n <>\r\n \r\n }\r\n onClick={this.closeDetails}\r\n />\r\n
\r\n

{t('Details')}

\r\n
\r\n
\r\n {t('Date')}\r\n {this.getDisplayDate(auditLog.CreatedDate)}\r\n
\r\n
\r\n {t('User')}\r\n {auditLog.UserFullName}\r\n
\r\n
\r\n
\r\n
\r\n {t('Phase')}\r\n {getPhaseTypeValue(auditLog.PhaseTypeId)}\r\n
\r\n
\r\n {t('Party')}\r\n {auditLog.Party.Name}\r\n
\r\n
\r\n
\r\n
\r\n {t('Action')}\r\n {getActionTypeValue(auditLog.ActionTypeId)}\r\n
\r\n {auditLog.Currency && \r\n
\r\n {t('Currency')}\r\n {auditLog.Currency}\r\n
}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n this.getFieldValue(\r\n dataItem.OldValue,\r\n dataItem.OldDateTimeValue,\r\n dataItem.FieldName\r\n )\r\n }\r\n />\r\n \r\n this.getFieldValue(\r\n dataItem.NewValue,\r\n dataItem.NewDateTimeValue,\r\n dataItem.FieldName\r\n )\r\n }\r\n />\r\n \r\n {this.props.isLoading && }\r\n \r\n
\r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nServiceRequestAuditLogItems.propTypes = {\r\n isLoading: PropTypes.bool,\r\n match: PropTypes.object,\r\n t: PropTypes.func,\r\n auditLog: PropTypes.object,\r\n getAuditLogItems: PropTypes.func,\r\n onClose: PropTypes.func,\r\n gridFilterValues: PropTypes.func,\r\n getActionTypeValue: PropTypes.func,\r\n getPhaseTypeValue: PropTypes.func\r\n};\r\n\r\nconst oDataLoading = createLoadingSelector(['OData']);\r\nconst mapStateToProps = state => ({\r\n isLoading: oDataLoading(state)\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n getAuditLogItems\r\n};\r\n\r\nexport default withRouter(\r\n connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n )(withTranslation()(ServiceRequestAuditLogItems))\r\n);\r\n","import { _fetch as fetch } from '@hobs/utils/fetch';\r\nimport { toODataString } from '@progress/kendo-data-query';\r\nimport { GETAUDITLOGITEMS } from '@hobs/constants/serviceRequestAuditLog';\r\n\r\nexport function getAuditLogItems(path, params = { take: 10, skip: 0 }) {\r\n return dispatch => {\r\n dispatch(request());\r\n\r\n const oDataParams = toODataString(params);\r\n\r\n return fetch(`${path}?$count=true&${oDataParams}`)\r\n .then(response => {\r\n const result = {\r\n data: response.payload.value,\r\n total: response.payload['@odata.count']\r\n };\r\n dispatch(success(result));\r\n return { success: true, ...result };\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n return { success: false };\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: GETAUDITLOGITEMS.REQUEST };\r\n }\r\n function success(payload) {\r\n return { type: GETAUDITLOGITEMS.SUCCESS, payload };\r\n }\r\n function failure(error) {\r\n return { type: GETAUDITLOGITEMS.FAILURE, error };\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { withRouter } from 'react-router-dom';\r\nimport GridLoader from '@hobs/components/Grid/GridLoader';\r\nimport { H2 } from '@hobs/components/Headings';\r\nimport { Grid } from '@progress/kendo-react-grid';\r\nimport { CellDateTime } from '@hobs/components/Grid/CellDate';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport Panel from '@hobs/components/Panel';\r\nimport Columns from '@hobs/components/Grid/Columns';\r\nimport { queryOData, resetOData } from '@hobs/actions/odata';\r\nimport { getAuditLogGrid } from '@hobs/actions/gridSelections';\r\nimport { PAGE_SIZES } from '@hobs/utils/constants';\r\n\r\nimport ServiceRequestAuditLogItem from './ServiceRequestAuditLogItems';\r\n\r\nimport './ServiceRequestAuditLogs.scss';\r\n\r\nclass ServiceRequestAuditLogs extends React.PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n auditLog: null,\r\n dataState: {\r\n take: 20,\r\n skip: 0,\r\n sort: [{ field: 'CreatedDate', dir: 'desc' }]\r\n },\r\n customFilters: {}\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.props.getAuditLogGrid();\r\n this.loadODataQuery();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetOData();\r\n }\r\n\r\n getDefaultColumns() {\r\n const { t } = this.props;\r\n return {\r\n CreatedDate: {\r\n title: t('Date'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'date',\r\n cell: CellDateTime\r\n },\r\n PhaseTypeId: {\r\n title: t('Phase'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n value: ''\r\n },\r\n ...this.getPhaseTypeFilterValues()\r\n ]\r\n },\r\n cell: ({ dataItem }) => {\r\n return {this.getPhaseTypeValue(dataItem.PhaseTypeId)};\r\n }\r\n },\r\n ActionTypeId: {\r\n title: t('Action'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n value: ''\r\n },\r\n ...this.getActionTypeFilterValues()\r\n ]\r\n },\r\n cell: ({ dataItem }) => {\r\n return {this.getActionTypeValue(dataItem.ActionTypeId)};\r\n }\r\n },\r\n UserFullName: {\r\n title: t('User'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n Fields: {\r\n title: t('Fields'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n }\r\n };\r\n }\r\n\r\n getActionTypeValue = actionTypeId => {\r\n const { t, auditLogGrid } = this.props;\r\n\r\n if (auditLogGrid && auditLogGrid.actions) {\r\n const actionType = auditLogGrid.actions.find(action => {\r\n return action.id === actionTypeId;\r\n });\r\n\r\n if (actionType) {\r\n return t(actionType.title);\r\n }\r\n }\r\n\r\n return <>;\r\n };\r\n\r\n getPhaseTypeValue = phaseTypeId => {\r\n const { t, auditLogGrid } = this.props;\r\n\r\n if (auditLogGrid && auditLogGrid.phases) {\r\n const phaseType = auditLogGrid.phases.find(phase => {\r\n return phase.id === phaseTypeId;\r\n });\r\n\r\n if (phaseType) {\r\n return t(phaseType.title);\r\n }\r\n }\r\n\r\n return <>;\r\n };\r\n\r\n getActionTypeFilterValues() {\r\n const { t, auditLogGrid } = this.props;\r\n\r\n if (auditLogGrid && auditLogGrid.actions) {\r\n return auditLogGrid.actions.map(filterValue => {\r\n return {\r\n name: t(filterValue.title),\r\n value: filterValue.id\r\n };\r\n });\r\n }\r\n\r\n return [];\r\n }\r\n\r\n getPhaseTypeFilterValues() {\r\n const { t, auditLogGrid } = this.props;\r\n\r\n if (auditLogGrid && auditLogGrid.phases) {\r\n return auditLogGrid.phases.map(filterValue => {\r\n return {\r\n name: t(filterValue.title),\r\n value: filterValue.id\r\n };\r\n });\r\n }\r\n\r\n return [];\r\n }\r\n\r\n dataStateChange = e => {\r\n this.setState(\r\n {\r\n dataState: e.dataState\r\n },\r\n () => {\r\n this.loadODataQuery();\r\n }\r\n );\r\n };\r\n\r\n getDataState() {\r\n let filters = [];\r\n\r\n if (Object.keys(this.state.customFilters).length > 0) {\r\n Object.values(this.state.customFilters).map(filter => {\r\n if (filter) {\r\n filters.push(filter);\r\n }\r\n });\r\n }\r\n\r\n const dataState = {\r\n ...this.state.dataState\r\n };\r\n\r\n if (\r\n this.state.dataState.filter &&\r\n this.state.dataState.filter.filters &&\r\n this.state.dataState.filter.filters.length > 0\r\n ) {\r\n filters = filters.concat(this.state.dataState.filter.filters);\r\n }\r\n\r\n if (filters.length > 0) {\r\n dataState.filter = {\r\n logic: 'and',\r\n filters\r\n };\r\n }\r\n\r\n return dataState;\r\n }\r\n\r\n loadODataQuery = () => {\r\n this.props.queryOData(\r\n `RequestedServicesAuditLogQuery(${this.props.match.params.serviceRequestId})`,\r\n this.getDataState()\r\n );\r\n };\r\n\r\n onDetailsClose = () => {\r\n this.setState({\r\n auditLog: null\r\n });\r\n };\r\n\r\n render() {\r\n const { t } = this.props;\r\n const { auditLog } = this.state;\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n

{t('Service request history')}

\r\n {\r\n this.setState({\r\n auditLog: dataItem\r\n });\r\n }}\r\n selectedField=\"selected\"\r\n data={this.props.oData.data.map(item => ({\r\n ...item,\r\n selected:\r\n auditLog &&\r\n item.RequestedServicesAuditLogId ===\r\n auditLog.RequestedServicesAuditLogId\r\n }))}\r\n >\r\n {Columns({\r\n columns: this.getDefaultColumns(),\r\n dataState: this.state.dataState\r\n })}\r\n \r\n {this.props.isLoading && }\r\n
\r\n {auditLog && (\r\n \r\n )}\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nServiceRequestAuditLogs.propTypes = {\r\n isLoading: PropTypes.bool,\r\n match: PropTypes.object,\r\n oData: PropTypes.object,\r\n queryOData: PropTypes.func,\r\n resetOData: PropTypes.func,\r\n loadODataQuery: PropTypes.func,\r\n t: PropTypes.func,\r\n getAuditLogGrid: PropTypes.func,\r\n auditLogGrid: PropTypes.object\r\n};\r\n\r\nconst oDataLoading = createLoadingSelector(['OData']);\r\nconst mapStateToProps = state => ({\r\n isLoading: oDataLoading(state),\r\n oData: state.odata,\r\n auditLogGrid: state.gridSelections.auditLogGrid\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n queryOData,\r\n resetOData,\r\n getAuditLogGrid\r\n};\r\n\r\nexport default withRouter(\r\n connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n )(withTranslation()(ServiceRequestAuditLogs))\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport WithEscNavigation from '@hobs/hocs/WithEscNavigation';\r\nimport { H1 } from '@hobs/components/Headings';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport Status from '@hobs/components/Status';\r\nimport Icon from '@hobs/components/Icon';\r\nimport ShortId from 'shortid';\r\nimport { queryOData, resetOData } from '@hobs/actions/odata';\r\nimport { SERVICE_REQUEST_NAVIGATION_ORIGIN } from '@hobs/utils/constants';\r\nimport { ServiceRequestNavContext } from '@hobs/components/ServiceRequestNavContext';\r\nimport { PageLinks } from '../ServiceRequestEdit/PageLinks';\r\nimport { getServiceRequest } from '../../actions/serviceRequests';\r\nimport ServiceRequestAuditLogs from './ServiceRequestAuditLogs';\r\nimport './ServiceRequestEditAuditLogs.scss';\r\n\r\nclass ServiceRequestEditAuditLogs extends React.PureComponent {\r\n componentDidMount() {\r\n const { match, getServiceRequest } = this.props;\r\n getServiceRequest(match.params.serviceRequestId);\r\n }\r\n\r\n getChangeHistoryPath() {\r\n const { match } = this.props;\r\n return `/service-request/${match.params.serviceRequestId}/change-history`;\r\n }\r\n\r\n getBackNavigationUrl = (navContext) => {\r\n if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.Tickets) {\r\n return '/tickets';\r\n }\r\n return '/requested-services';\r\n };\r\n\r\n navigateBack = (navContext) => {\r\n const { history } = this.props;\r\n\r\n history.push(this.getBackNavigationUrl(navContext));\r\n }\r\n\r\n render() {\r\n const { t, match, serviceRequest } = this.props;\r\n return (\r\n <>\r\n
\r\n \r\n {nav => (\r\n <>\r\n {this.props.withEscNavigationCallback(\r\n () => this.navigateBack(nav.serviceRequestNavigation)\r\n )}\r\n
\r\n \r\n \r\n

{t('Request history')} -

\r\n \r\n \r\n
\r\n {serviceRequest.partyCode}, {serviceRequest.unitName} (\r\n {serviceRequest.requestNumber\r\n ? serviceRequest.requestNumber\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\nServiceRequestEditAuditLogs.propTypes = {\r\n match: PropTypes.object,\r\n t: PropTypes.func,\r\n getServiceRequest: PropTypes.func,\r\n serviceRequest: PropTypes.object,\r\n history: PropTypes.func,\r\n withEscNavigationCallback: PropTypes.func\r\n};\r\n\r\nconst oDataLoading = createLoadingSelector(['OData']);\r\nconst mapStateToProps = state => ({\r\n isLoading: oDataLoading(state),\r\n oData: state.odata,\r\n serviceRequest: state.serviceRequests.item\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n queryOData,\r\n resetOData,\r\n getServiceRequest\r\n};\r\n\r\nexport default withRouter(\r\n connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n )(withTranslation()(WithEscNavigation(ServiceRequestEditAuditLogs)))\r\n);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ShortId from 'shortid';\r\nimport HeadingActions from '../../components/HeadingActions';\r\n\r\nexport const PageLinks = props => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nPageLinks.propTypes = {\r\n partyId: PropTypes.string,\r\n changeHistoryPath: PropTypes.string,\r\n serviceRequestId: PropTypes.string,\r\n discussion: PropTypes.object,\r\n isEdit: PropTypes.bool,\r\n isDirty: PropTypes.bool\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { withRouter, Link } from 'react-router-dom';\r\nimport WithEscNavigation from '@hobs/hocs/WithEscNavigation';\r\nimport { H1 } from '@hobs/components/Headings';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport Status from '@hobs/components/Status';\r\nimport Icon from '@hobs/components/Icon';\r\nimport ShortId from 'shortid';\r\nimport { queryOData, resetOData } from '@hobs/actions/odata';\r\nimport { SERVICE_REQUEST_NAVIGATION_ORIGIN } from '@hobs/utils/constants';\r\nimport { ServiceRequestNavContext } from '@hobs/components/ServiceRequestNavContext';\r\nimport { PageLinks } from '../ServiceRequestCustom/PageLinks';\r\nimport { getServiceRequest } from '../../actions/serviceRequests';\r\n\r\nimport ServiceRequestAuditLogs from './ServiceRequestAuditLogs';\r\n\r\nimport './ServiceRequestCustomAuditLogs.scss';\r\n\r\nclass ServiceRequestCustomAuditLogs extends React.PureComponent {\r\n componentDidMount() {\r\n const { match, getServiceRequest } = this.props;\r\n getServiceRequest(match.params.serviceRequestId);\r\n }z\r\n\r\n getChangeHistoryPath() {\r\n const { match } = this.props;\r\n return `/service-request/${match.params.serviceRequestId}/change-history`;\r\n }\r\n\r\n getBackNavigationUrl = (navContext) => {\r\n if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.Tickets) {\r\n return '/tickets';\r\n }\r\n return '/requested-services';\r\n };\r\n\r\n navigateBack = (navContext) => {\r\n const { history } = this.props;\r\n history.push(this.getBackNavigationUrl(navContext));\r\n }\r\n\r\n render() {\r\n const { t, match, serviceRequest } = this.props;\r\n return (\r\n <>\r\n
\r\n \r\n {nav => (\r\n <>\r\n {this.props.withEscNavigationCallback(\r\n () => this.navigateBack(nav.serviceRequestNavigation)\r\n )}\r\n
\r\n \r\n \r\n

{t('Request history')} -

\r\n \r\n\r\n
\r\n {serviceRequest.partyCode}, {serviceRequest.unitName} (\r\n {serviceRequest.requestNumber\r\n ? serviceRequest.requestNumber\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\nServiceRequestCustomAuditLogs.propTypes = {\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n t: PropTypes.func,\r\n getServiceRequest: PropTypes.func,\r\n serviceRequest: PropTypes.object,\r\n withEscNavigationCallback: PropTypes.func\r\n};\r\n\r\nconst oDataLoading = createLoadingSelector(['OData']);\r\nconst mapStateToProps = state => ({\r\n isLoading: oDataLoading(state),\r\n oData: state.odata,\r\n serviceRequest: state.serviceRequests.item\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n queryOData,\r\n resetOData,\r\n getServiceRequest\r\n};\r\n\r\nexport default withRouter(\r\n connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n )(withTranslation()(WithEscNavigation(ServiceRequestCustomAuditLogs)))\r\n);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ObjectPath from 'object-path';\r\nimport { Link } from 'react-router-dom';\r\nimport cx from 'classnames';\r\nimport { H1 } from '@hobs/components/Headings';\r\nimport Toast from '@hobs/components/Toast';\r\nimport { GhostButton, RaisedButton } from '@hobs/components/Buttons';\r\nimport Status from '@hobs/components/Status';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Confirm from '@hobs/components/Confirm';\r\nimport { format } from '@hobs/utils/formatWithTimeZone';\r\nimport {\r\n USER_ROLES,\r\n APPROVAL_STATUSES,\r\n DATE_FORMAT\r\n} from '@hobs/utils/constants';\r\nimport './ApprovalSummary.scss';\r\nimport Money from '@hobs/components/Money';\r\n\r\nclass ApprovalSummary extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isConfirmIsorDisabled: false,\r\n isConfirmFsorDisabled: false\r\n };\r\n }\r\n\r\n async componentDidMount() {\r\n await this.loadRequiredData();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.unloadData();\r\n }\r\n\r\n unloadData() {\r\n this.props.crealSorParty();\r\n this.props.clearApprovalSummary();\r\n }\r\n\r\n async loadRequiredData() {\r\n const { partyId } = this.props.match.params;\r\n await this.props.getSorParty(partyId);\r\n this.loadApprovalSummary();\r\n }\r\n\r\n loadApprovalSummary() {\r\n const { getApprovalSummary, match } = this.props;\r\n const { partyId } = match.params;\r\n\r\n getApprovalSummary(partyId);\r\n }\r\n\r\n getPartyName() {\r\n return ObjectPath.get(this.props.sorParty, 'partyName', '');\r\n }\r\n\r\n isConfirmIsorEnabled = () => {\r\n const { sorParty } = this.props;\r\n const { isConfirmIsorDisabled } = this.state;\r\n return (\r\n !ObjectPath.get(sorParty, 'isConfirmIsorEnabled') || isConfirmIsorDisabled\r\n );\r\n };\r\n\r\n canUserConfirmIsor() {\r\n const { hasUserPermission } = this.props;\r\n return hasUserPermission(USER_ROLES.ADMIN) || hasUserPermission(USER_ROLES.SystemAdmin);\r\n }\r\n\r\n handleConfirmIsorClick = () => {\r\n const { t } = this.props;\r\n\r\n if (!this.canUserConfirmIsor()) {\r\n Toast.warning(\r\n t(\r\n `You do not have permissions to confirm ISOR for ${this.getPartyName()}`\r\n )\r\n );\r\n } else {\r\n this.showConfirmIsorDialog();\r\n }\r\n };\r\n\r\n showConfirmIsorDialog() {\r\n Confirm(\r\n this.props.t('Confirm ISOR'),\r\n this.props.t(`This will confirm the complete INITIAL SOR for ALL units.\r\n Are you sure you want to deliver ISOR for ${this.getPartyName()} ?`),\r\n () => {\r\n this.handleIsorConfirmSubmit();\r\n }\r\n );\r\n }\r\n\r\n getBackUrl() {\r\n const { partyId } = this.props.match.params;\r\n\r\n return `/service-requests/${partyId}`;\r\n }\r\n\r\n _confirmIsor() {\r\n const { confirmSor, sorParty } = this.props;\r\n return confirmSor(sorParty.statementOfRequirementId);\r\n }\r\n\r\n handleIsorConfirmSubmit = () => {\r\n const { t } = this.props;\r\n this._confirmIsor().then(response => {\r\n if (response.success === true) {\r\n Toast.success(t('ISOR confirmed successfully'));\r\n this.setState({\r\n isConfirmIsorDisabled: true\r\n });\r\n this.loadApprovalSummary();\r\n } else {\r\n Toast.warning(response.payload.message);\r\n }\r\n });\r\n };\r\n\r\n closeSorConfirmDialog = () => {\r\n this.setState({\r\n showConfirmDialog: false\r\n });\r\n };\r\n\r\n isConfirmFsorEnabled = () => {\r\n const { sorParty } = this.props;\r\n const { isConfirmFsorDisabled } = this.state;\r\n\r\n return (\r\n !ObjectPath.get(sorParty, 'isConfirmFsorEnabled') || isConfirmFsorDisabled\r\n );\r\n };\r\n\r\n canUserConfirmFsor() {\r\n const { hasUserPermission } = this.props;\r\n return hasUserPermission(USER_ROLES.ADMIN) || hasUserPermission(USER_ROLES.SystemAdmin);\r\n }\r\n\r\n _validateConfirmFsor() {\r\n const { validateConfirmFsor, sorParty } = this.props;\r\n return validateConfirmFsor(sorParty.statementOfRequirementId);\r\n }\r\n\r\n handleConfirmFsorClick = () => {\r\n const { t } = this.props;\r\n\r\n if (!this.canUserConfirmFsor()) {\r\n Toast.warning(\r\n t(\r\n `You do not have permissions to confirm FSOR for ${this.getPartyName()}`\r\n )\r\n );\r\n } else {\r\n this._validateConfirmFsor().then(response => {\r\n if (response.success) {\r\n this.showConfirmFsorDialog();\r\n } else if (response.payload.message) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot confirm fsor'));\r\n }\r\n });\r\n }\r\n };\r\n\r\n showConfirmFsorDialog() {\r\n Confirm(\r\n this.props.t('Confirm FSOR'),\r\n this.props.t(`This will confirm the complete FINAL SOR for ALL units.\r\n Are you sure you want to deliver FSOR for ${this.getPartyName()} ?`),\r\n () => {\r\n this.handleFsorConfirmSubmit();\r\n }\r\n );\r\n }\r\n\r\n _confirmFsor() {\r\n const { confirmFsor, sorParty } = this.props;\r\n return confirmFsor(sorParty.statementOfRequirementId);\r\n }\r\n\r\n handleFsorConfirmSubmit = () => {\r\n const { t } = this.props;\r\n\r\n this._confirmFsor().then(response => {\r\n if (response.success === true) {\r\n Toast.success(t('FSOR confirmed successfully'));\r\n this.setState({\r\n isConfirmFsorDisabled: true\r\n });\r\n this.loadApprovalSummary();\r\n } else {\r\n Toast.warning(response.payload.message);\r\n }\r\n });\r\n };\r\n\r\n canUserApproveUnit() {\r\n const { hasUserPermission } = this.props;\r\n return hasUserPermission(USER_ROLES.ADMIN) || hasUserPermission(USER_ROLES.SystemAdmin);\r\n }\r\n\r\n _approveUnit(unitId) {\r\n const { approve, match } = this.props;\r\n const { partyId } = match.params;\r\n\r\n return approve(partyId, {\r\n unitId: unitId\r\n });\r\n }\r\n\r\n approveUnit(unit) {\r\n const { t } = this.props;\r\n if (this.canUserApproveUnit()) {\r\n Confirm(\r\n t('Approve service requests'),\r\n t(\r\n `Are you sure, you want to approve service requests for ${unit.unitName}?\r\n No further changes will be possible after approval.`\r\n ),\r\n () => {\r\n this._approveUnit(unit.unitId).then(response => {\r\n if (response.success === true) {\r\n Toast.success(t('Services approved successfully'));\r\n } else if (response.payload && response.payload.message) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot approve services'));\r\n }\r\n this.loadApprovalSummary();\r\n });\r\n }\r\n );\r\n } else {\r\n Toast.warning(t('You do not have permissions to approve services'));\r\n }\r\n }\r\n\r\n canUserCancelUnitApproval() {\r\n const { hasUserPermission } = this.props;\r\n return hasUserPermission(USER_ROLES.ADMIN) || hasUserPermission(USER_ROLES.SystemAdmin);\r\n }\r\n\r\n _cancelApproval(unitId) {\r\n const { cancelApproval, match } = this.props;\r\n const { partyId } = match.params;\r\n\r\n return cancelApproval(partyId, {\r\n unitId: unitId\r\n });\r\n }\r\n\r\n cancelUnitApproval(unit) {\r\n const { t } = this.props;\r\n\r\n if (this.canUserCancelUnitApproval()) {\r\n Confirm(\r\n t('Approve service requests'),\r\n t(`Are you sure, you want to cancel approval for ${unit.unitName}?`),\r\n () => {\r\n this._cancelApproval(unit.unitId).then(response => {\r\n if (response.success === true) {\r\n Toast.success(t('Approval removed successfully'));\r\n } else if (response.payload && response.payload.message) {\r\n Toast.warning(response.payload.message);\r\n } else {\r\n Toast.warning(t('Cannot remove approval'));\r\n }\r\n this.loadApprovalSummary();\r\n });\r\n }\r\n );\r\n } else {\r\n Toast.warning(t('You do not have permissions to approve services'));\r\n }\r\n }\r\n\r\n renderUnits() {\r\n const { t, units, currentExercise } = this.props;\r\n return units.map(unit => {\r\n return (\r\n \r\n {units.indexOf(unit) === 0 && (\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 {this.renderUnit(unit)}\r\n
{t('Element')}{t('Status')}{t('Approved by')}{t('Service requests')}{t('Est. cost')}{` (${currentExercise.currency.name})`}{t('Accumulated cost')}{` (${currentExercise.currency.name})`}
\r\n );\r\n });\r\n }\r\n\r\n renderUnit(unit) {\r\n const { t } = this.props;\r\n return (\r\n <>\r\n \r\n \r\n {unit.unitName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {ObjectPath.get(unit, 'responsiblePerson.firstName')}{' '}\r\n {ObjectPath.get(unit, 'responsiblePerson.lastName')}{' '}\r\n {unit.approvalDate && (\r\n \r\n {format(unit.approvalDate, DATE_FORMAT)}\r\n \r\n )}\r\n \r\n \r\n {unit.serviceRequestCount}\r\n \r\n \r\n \r\n {unit.status.id === 1 && (\r\n {\r\n this.cancelUnitApproval(unit);\r\n }}\r\n >\r\n {t('Cancel approval')}\r\n \r\n )}\r\n {unit.status.id === 0 && (\r\n {\r\n this.approveUnit(unit);\r\n }}\r\n >\r\n {t('Approve')}\r\n \r\n )}\r\n \r\n \r\n {unit.units &&\r\n unit.units.length > 0 &&\r\n this.renderChildUnits(unit.units)}\r\n \r\n );\r\n }\r\n\r\n renderChildUnits(units) {\r\n return units.map(unit => {\r\n return this.renderUnit(unit);\r\n });\r\n }\r\n\r\n render() {\r\n const { t, units } = this.props;\r\n return (\r\n
\r\n
\r\n \r\n \r\n

{t('Approval summary')}

\r\n \r\n
\r\n \r\n {t('Confirm ISOR')}\r\n \r\n \r\n {t('Confirm FSOR')}\r\n \r\n
\r\n
\r\n {units && units.length > 0 && (\r\n
{this.renderUnits()}
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nApprovalSummary.propTypes = {\r\n t: PropTypes.func,\r\n hasUserPermission: PropTypes.func,\r\n match: PropTypes.object,\r\n sorParty: PropTypes.object,\r\n getSorParty: PropTypes.func,\r\n confirmSor: PropTypes.func,\r\n confirmFsor: PropTypes.func,\r\n getApprovalSummary: PropTypes.func,\r\n units: PropTypes.array,\r\n approve: PropTypes.func,\r\n cancelApproval: PropTypes.func,\r\n validateConfirmFsor: PropTypes.func,\r\n clearApprovalSummary: PropTypes.func,\r\n crealSorParty: PropTypes.func,\r\n currentExercise: PropTypes.object\r\n};\r\n\r\nexport default ApprovalSummary;\r\n","import { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { withRouter } from 'react-router-dom';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\nimport ObjectPath from 'object-path';\r\nimport { USER_ROLES } from '@hobs/utils/constants';\r\nimport _ApprovalSummary from '@hobs/containers/ApprovalSummary';\r\n\r\nimport {\r\n getSorSummary,\r\n confirmSor,\r\n confirmFsor,\r\n validateConfirmFsor,\r\n crealSorParty\r\n} from '../../actions/sor';\r\nimport {\r\n getApprovalSummary,\r\n approve,\r\n cancelApproval,\r\n clearApprovalSummary\r\n} from '../../actions/approvalSummary';\r\n\r\nclass ApprovalSummary extends _ApprovalSummary {\r\n async loadRequiredData() {\r\n await this.props.getSorSummary();\r\n this.loadApprovalSummary();\r\n }\r\n\r\n loadApprovalSummary() {\r\n const { getApprovalSummary } = this.props;\r\n getApprovalSummary();\r\n }\r\n\r\n getPartyName() {\r\n return ObjectPath.get(this.props.sor, 'sorSummary.partyName');\r\n }\r\n\r\n canUserConfirmIsor() {\r\n const { hasUserPermission } = this.props;\r\n return (\r\n !hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT)\r\n );\r\n }\r\n\r\n canUserConfirmFsor() {\r\n const { hasUserPermission } = this.props;\r\n return (\r\n !hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT)\r\n );\r\n }\r\n\r\n canUserApproveUnit() {\r\n const { hasUserPermission } = this.props;\r\n return (\r\n !hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT)\r\n );\r\n }\r\n\r\n canUserCancelUnitApproval() {\r\n const { hasUserPermission } = this.props;\r\n return (\r\n !hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT)\r\n );\r\n }\r\n\r\n isConfirmIsorEnabled = () => {\r\n const { sor } = this.props;\r\n const { isConfirmIsorDisabled } = this.state;\r\n return (\r\n !ObjectPath.get(sor, 'sorSummary.isConfirmIsorEnabled') ||\r\n isConfirmIsorDisabled\r\n );\r\n };\r\n\r\n isConfirmFsorEnabled = () => {\r\n const { sor } = this.props;\r\n const { isConfirmFsorDisabled } = this.state;\r\n return (\r\n !ObjectPath.get(sor, 'sorSummary.isConfirmFsorEnabled') ||\r\n isConfirmFsorDisabled\r\n );\r\n };\r\n\r\n _cancelApproval(unitId) {\r\n return this.props.cancelApproval({\r\n unitId: unitId\r\n });\r\n }\r\n\r\n _approveUnit(unitId) {\r\n return this.props.approve({\r\n unitId: unitId\r\n });\r\n }\r\n\r\n _validateConfirmFsor() {\r\n return this.props.validateConfirmFsor();\r\n }\r\n\r\n _confirmIsor() {\r\n return this.props.confirmSor();\r\n }\r\n\r\n _confirmFsor() {\r\n return this.props.confirmFsor();\r\n }\r\n\r\n getBackUrl() {\r\n return '/requested-services';\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n sor: state.sor,\r\n units: state.approvalSummary.units,\r\n currentExercise: state.exercise.current\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n getSorSummary,\r\n confirmSor,\r\n confirmFsor,\r\n getApprovalSummary,\r\n approve,\r\n cancelApproval,\r\n validateConfirmFsor,\r\n crealSorParty,\r\n clearApprovalSummary\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(withRouter(WithRoles(ApprovalSummary))));\r\n","import {\r\n GET,\r\n APPROVE,\r\n CANCEL_APPROVAL,\r\n CLEAR_APPROVAL_SUMMARY\r\n} from '@hobs/constants/approvalSummary';\r\nimport { actionCreator } from '@hobs/actions/utils/utils';\r\n\r\nexport const getApprovalSummary = () =>\r\n actionCreator('StatementOfRequirements/ApprovalSummary', GET);\r\n\r\nexport const approve = body =>\r\n actionCreator('StatementOfRequirements/ApprovalSummary/Approve', APPROVE, {\r\n body: body,\r\n method: 'PUT'\r\n });\r\n\r\nexport const cancelApproval = body =>\r\n actionCreator(\r\n 'StatementOfRequirements/ApprovalSummary/CancelApproval',\r\n CANCEL_APPROVAL,\r\n { body: body, method: 'PUT' }\r\n );\r\n\r\nexport function clearApprovalSummary() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR_APPROVAL_SUMMARY.SUCCESS });\r\n };\r\n}\r\n","import {\r\n GET,\r\n FOR_SUBMIT,\r\n CLEAR,\r\n UPDATE,\r\n UPDATE_KITCHEN,\r\n UPDATE_KITCHEN_FOR_SUBMIT,\r\n EXPORT_MEAL_PLANS,\r\n QUERY_MEAL_PLANNER_LOCATIONS\r\n} from '@hobs/constants/mealPlanner';\r\nimport { _fetch as fetchSecure } from '@hobs/utils/fetch';\r\nimport { actionCreator } from './utils/utils';\r\n\r\nexport const getServiceRequests = (\r\n dateFrom,\r\n dateTo,\r\n locationName = '',\r\n kitchenId = '',\r\n statementOfRequirementId = '',\r\n unitId = ''\r\n) =>\r\n actionCreator(\r\n `MealPlanner/Preview?dateFrom=${dateFrom}&dateTo=${dateTo}&locationName=${locationName}&kitchenId=${kitchenId}&partyId=${statementOfRequirementId}&unitId=${unitId}`,\r\n GET\r\n );\r\n\r\nexport const getMealPlannerForSubmit = () =>\r\n actionCreator('MealPlanner/ForSubmit', FOR_SUBMIT);\r\n\r\nexport function clearMealPlanner() {\r\n return dispatch => {\r\n dispatch({ type: CLEAR.SUCCESS });\r\n };\r\n}\r\n\r\nexport const updateServiceRequests = body =>\r\n actionCreator('MealPlanner', UPDATE, { body: body, method: 'POST' });\r\n\r\nexport const getServiceRequestKitchenForSubmit = locationName =>\r\n actionCreator(\r\n `MealPlanner/Kitchens?locationName=${encodeURIComponent(locationName)}`,\r\n UPDATE_KITCHEN_FOR_SUBMIT\r\n );\r\n\r\nexport const updateServiceRequestKitchen = (serviceRequestId, kitchenId) =>\r\n actionCreator(\r\n `MealPlanner/ServiceRequest/${serviceRequestId}/Kitchen/${kitchenId}`,\r\n UPDATE_KITCHEN,\r\n { method: 'PUT' }\r\n );\r\n\r\nexport function exportMealPlans(body) {\r\n return dispatch => {\r\n dispatch(request());\r\n return fetchSecure('MealPlanner/ExportToExcel', {\r\n body,\r\n method: 'POST',\r\n forceBlob: true\r\n })\r\n .then(response => {\r\n if (response) {\r\n dispatch(success());\r\n return { success: true, blob: response };\r\n } else {\r\n dispatch(failure(response.toString()));\r\n return { success: false, ...response };\r\n }\r\n })\r\n .catch(error => {\r\n dispatch(failure(error.toString()));\r\n });\r\n };\r\n\r\n function request() {\r\n return { type: EXPORT_MEAL_PLANS.REQUEST };\r\n }\r\n function success() {\r\n return { type: EXPORT_MEAL_PLANS.SUCCESS };\r\n }\r\n function failure(error) {\r\n return { type: EXPORT_MEAL_PLANS.FAILURE, error };\r\n }\r\n}\r\n\r\nexport const queryLocationsForMealPlanner = query =>\r\n actionCreator(\r\n `MealPlanner/Locations?locationName=${query}`,\r\n QUERY_MEAL_PLANNER_LOCATIONS\r\n );\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ObjectPath from 'object-path';\r\nimport cx from 'classnames';\r\nimport { H1 } from '@hobs/components/Headings';\r\nimport Toast from '@hobs/components/Toast';\r\nimport {\r\n Formik,\r\n Field,\r\n Form,\r\n FieldArray,\r\n yupToFormErrors,\r\n setNestedObjectValues\r\n} from 'formik';\r\nimport { differenceInCalendarDays, differenceInCalendarMonths } from 'date-fns';\r\nimport { GhostButton, RaisedButton } from '@hobs/components/Buttons';\r\nimport Icon from '@hobs/components/Icon';\r\nimport Confirm from '@hobs/components/Confirm';\r\nimport Dialog from '@hobs/components/Dialog';\r\nimport Alert from '@hobs/components/Alert';\r\nimport Tooltip from '@hobs/components/Tooltip';\r\nimport NumericInput from '@hobs/components/NumericInput';\r\nimport Autocomplete from '@hobs/components/Autocomplete';\r\nimport { Download } from '@hobs/utils/download';\r\nimport Dropdown from '@hobs/components/Dropdown';\r\nimport DateInput from '@hobs/components/DateInput';\r\nimport PageActions from '@hobs/components/PageActions';\r\nimport {\r\n BACKEND_DATE_FORMAT,\r\n MEAL_PLANS_EXPORT_FILE_NAME,\r\n USER_ROLES,\r\n MONTH_NAMES\r\n} from '@hobs/utils/constants';\r\nimport { format } from '@hobs/utils/formatWithTimeZone';\r\nimport { dateToInitialMonth } from '@hobs/utils/dateToInitialMonth';\r\nimport * as Yup from 'yup';\r\n\r\nimport './MealPlanner.scss';\r\n\r\nconst MealPlanItemFields = ({\r\n mealPlanItems,\r\n todayDate,\r\n setFieldValue,\r\n serviceRequestIndex,\r\n groupIndex,\r\n canEditMealPlanner\r\n}) => {\r\n if (!mealPlanItems.items) {\r\n return null;\r\n }\r\n\r\n return mealPlanItems.items.map((mealPlan, index, array) => {\r\n const keyName = `serviceRequests.${serviceRequestIndex}.mealPlanItems.${groupIndex}.items.${index}.quantity`;\r\n\r\n const month = new Date(mealPlan.date).getMonth();\r\n const lastMealPlanMonth =\r\n index !== 0 ? new Date(array[index - 1].date).getMonth() : null;\r\n const nextMealPlanMonth =\r\n array.length !== index + 1\r\n ? new Date(array[index + 1].date).getMonth()\r\n : null;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {nextMealPlanMonth !== null && month !== nextMealPlanMonth && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n });\r\n};\r\n\r\nconst MemoizedMealPlanItemFields = React.memo(MealPlanItemFields);\r\n\r\nclass MealPlanner extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n const { t } = props;\r\n\r\n this.serviceRequestInfoVerticalScroll = React.createRef();\r\n this.serviceRequestDataVerticalScroll = React.createRef();\r\n\r\n const filterDateFrom = new Date();\r\n const filterDateTo = new Date();\r\n filterDateTo.setDate(filterDateFrom.getDate() + 13);\r\n\r\n this.state = {\r\n todayDate: new Date(),\r\n filter: {\r\n dateFrom: filterDateFrom,\r\n dateTo: filterDateTo,\r\n locationId: null,\r\n nationId: null,\r\n kitchenId: null,\r\n unitId: null\r\n },\r\n kitchenDialog: {\r\n isOpen: false\r\n },\r\n hoveredTable: null\r\n };\r\n\r\n this.container = React.createRef();\r\n this.formik = React.createRef();\r\n\r\n const mpValidation = Yup.object().shape({\r\n quantity: Yup.number().when('isEnabled', {\r\n is: true,\r\n then: Yup.number()\r\n .nullable()\r\n .typeError('Invalid number')\r\n .min(0, 'Invalid number')\r\n .required(t('Enter q-ty')),\r\n otherwise: Yup.number().nullable()\r\n })\r\n });\r\n\r\n this.validationSchema = Yup.object().shape({\r\n serviceRequests: Yup.array().of(\r\n Yup.object().shape({\r\n mealPlans: Yup.array().when('mealPlanItems', {\r\n is: mpi => mpi.length === 0,\r\n then: Yup.array().of(mpValidation),\r\n otherwise: Yup.array()\r\n }),\r\n mealPlanItems: Yup.array().of(\r\n Yup.object().shape({\r\n items: Yup.array().of(\r\n Yup.object().shape({\r\n quantity: Yup.number().when('isEnabled', {\r\n is: true,\r\n then: Yup.number()\r\n .nullable()\r\n .typeError('Invalid number')\r\n .min(0, 'Invalid number')\r\n .required(t('Enter q-ty')),\r\n otherwise: Yup.number().nullable()\r\n })\r\n })\r\n ),\r\n mealPlanSubServiceId: Yup.string()\r\n .typeError(t('Service name is required'))\r\n .required(t('Service name is required'))\r\n })\r\n )\r\n })\r\n )\r\n });\r\n\r\n this.filterSchema = Yup.object().shape({\r\n dateFrom: Yup.date()\r\n .typeError(t('Incorrect date or date format'))\r\n .required(t('Date from is required'))\r\n .nullable(),\r\n dateTo: Yup.date()\r\n .typeError(t('Incorrect date or date format'))\r\n .required(t('Date to is required'))\r\n .min(Yup.ref('dateFrom'), 'Date to cannot be earlier than Date from')\r\n .nullable()\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.loadRequiredData();\r\n }\r\n\r\n loadRequiredData() {\r\n const { filter } = this.state;\r\n this.props\r\n .getServiceRequests(\r\n format(filter.dateFrom, BACKEND_DATE_FORMAT),\r\n format(filter.dateTo, BACKEND_DATE_FORMAT)\r\n )\r\n .then(() => {\r\n if (this.formik && this.formik.current) {\r\n const bag = this.formik.current.getFormikBag();\r\n bag.setSubmitting(false);\r\n this.validateData(bag.values, bag.setErrors, bag.setTouched);\r\n }\r\n });\r\n this.props.getMealPlannerForSubmit();\r\n }\r\n\r\n getInitialValues = () => {\r\n const { serviceRequests } = this.props;\r\n\r\n const initialValues = {\r\n serviceRequests: serviceRequests.map(item => {\r\n const emptyArray = [...item.mealPlans].map(mp => {\r\n return {\r\n date: mp.date,\r\n isEnabled: mp.isEnabled,\r\n mealPlanId: null,\r\n quantity: null,\r\n orderNumber: null\r\n };\r\n });\r\n\r\n const mealPlanItems = item.mealPlans.reduce((acc, mp) => {\r\n const groups = mp.mealPlanItems.reduce((mpItemsAcc, mpItem) => {\r\n if (!mpItemsAcc[mpItem.orderNumber]) {\r\n mpItemsAcc[mpItem.orderNumber] = {\r\n items: [],\r\n mealPlanSubServiceId: mpItem.mealPlanSubServiceId,\r\n mealPlanSubServiceName: mpItem.mealPlanSubServiceName\r\n };\r\n }\r\n\r\n if (\r\n !mpItemsAcc[mpItem.orderNumber].mealPlanSubServiceId &&\r\n mpItem.mealPlanSubServiceId\r\n ) {\r\n mpItemsAcc[mpItem.orderNumber].mealPlanSubServiceId =\r\n mpItem.mealPlanSubServiceId;\r\n mpItemsAcc[mpItem.orderNumber].mealPlanSubServiceName =\r\n mpItem.mealPlanSubServiceName;\r\n }\r\n\r\n mpItemsAcc[mpItem.orderNumber].items.push({\r\n ...mpItem,\r\n date: mp.date\r\n });\r\n\r\n return mpItemsAcc;\r\n }, acc);\r\n return groups;\r\n }, []);\r\n\r\n const correctMealPlanItems = mealPlanItems\r\n .map(group => {\r\n const items = [...emptyArray].map(i => {\r\n const gi = group.items.find(gi => gi.date === i.date);\r\n\r\n if (gi) {\r\n return gi;\r\n }\r\n\r\n return i;\r\n });\r\n\r\n return {\r\n ...group,\r\n items\r\n };\r\n })\r\n .filter(x => Object.keys(x).length > 0);\r\n return {\r\n ...item,\r\n mealPlanItems: correctMealPlanItems\r\n };\r\n })\r\n };\r\n\r\n return initialValues;\r\n };\r\n\r\n reloadServiceRequests(callback) {\r\n const { filter } = this.state;\r\n\r\n this.filterServiceRequests(filter, callback);\r\n }\r\n\r\n filterServiceRequests = (values, callback) => {\r\n const filter = {\r\n dateFrom: format(values.dateFrom, BACKEND_DATE_FORMAT),\r\n dateTo: format(values.dateTo, BACKEND_DATE_FORMAT),\r\n locationName: values.locationName ? values.locationName : '',\r\n kitchenId: values.kitchenId ? values.kitchenId : '',\r\n nationId: values.nationId ? values.nationId : '',\r\n unitId: values.unitId ? values.unitId : ''\r\n };\r\n\r\n this.props\r\n .getServiceRequests(\r\n filter.dateFrom,\r\n filter.dateTo,\r\n filter.locationName,\r\n filter.kitchenId,\r\n filter.nationId,\r\n filter.unitId\r\n )\r\n .then(() => {\r\n if (this.formik && this.formik.current) {\r\n const bag = this.formik.current.getFormikBag();\r\n this.validateData(bag.values, bag.setErrors, bag.setTouched);\r\n }\r\n\r\n if (callback && typeof callback === 'function') {\r\n callback();\r\n }\r\n });\r\n\r\n this.setState({\r\n filter: {\r\n ...filter,\r\n dateFrom: values.dateFrom,\r\n dateTo: values.dateTo\r\n }\r\n });\r\n };\r\n\r\n validateData(values, setErrors, setTouched) {\r\n this.validationSchema\r\n .validate(values, { abortEarly: false })\r\n .catch(errors => {\r\n setErrors(yupToFormErrors(errors));\r\n setTouched(setNestedObjectValues(values, true));\r\n });\r\n }\r\n\r\n onLocationQueryChange = query => {\r\n this.props.queryLocationsForMealPlanner(query);\r\n };\r\n\r\n toAutocompleteEntity(data) {\r\n return data\r\n ? data.map(item => ({\r\n value: item,\r\n title: item\r\n }))\r\n : [];\r\n }\r\n\r\n exportMealPlans = async () => {\r\n const { filter } = this.state;\r\n\r\n const { serviceRequests, exportMealPlans } = this.props;\r\n const body = {\r\n serviceRequests,\r\n dateFrom: format(filter.dateFrom, BACKEND_DATE_FORMAT),\r\n dateTo: format(filter.dateTo, BACKEND_DATE_FORMAT)\r\n };\r\n const data = await exportMealPlans(body);\r\n Download(\r\n data.blob,\r\n `${MEAL_PLANS_EXPORT_FILE_NAME}_${format(\r\n new Date(),\r\n 'yyyyMMdd_HHmm'\r\n )}.xlsx`\r\n );\r\n };\r\n\r\n renderHeader() {\r\n const { t, serviceRequests } = this.props;\r\n return (\r\n
\r\n

{t('Meal planner')}

\r\n }\r\n onClick={this.exportMealPlans}\r\n disabled={!serviceRequests.length}\r\n >\r\n {t('XLSX')}\r\n \r\n
\r\n );\r\n }\r\n\r\n renderNationFilter(setFieldValue) {\r\n const { forSubmit, t } = this.props;\r\n\r\n return (\r\n
\r\n {\r\n const nationId = event.target.value;\r\n\r\n if (nationId !== null && nationId !== '') {\r\n setFieldValue('unitId', null);\r\n }\r\n }}\r\n >\r\n {forSubmit.sendingNations.length ? (\r\n <>\r\n \r\n {forSubmit.sendingNations.map(nation => {\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 renderFilters() {\r\n const { t, forSubmit } = this.props;\r\n const { filter } = this.state;\r\n return (\r\n {\r\n return true;\r\n }}\r\n validationSchema={this.filterSchema}\r\n onSubmit={this.filterServiceRequests}\r\n >\r\n {({ setFieldValue, values }) => (\r\n
\r\n
\r\n {\r\n setFieldValue(\r\n 'locationName',\r\n ObjectPath.get(item, 'value', null)\r\n );\r\n }}\r\n noResultsMessage={t('Location not found')}\r\n onQueryChange={this.onLocationQueryChange}\r\n component={Autocomplete}\r\n defaultQuery={values.locationName}\r\n >\r\n {t('Location')}\r\n \r\n
\r\n
\r\n \r\n {forSubmit.kitchens.length ? (\r\n <>\r\n \r\n {forSubmit.kitchens.reduce((result, kitchen) => {\r\n if (\r\n values.locationId === null ||\r\n values.locationId === '' ||\r\n values.locationId === undefined ||\r\n kitchen.locationId === values.locationId\r\n ) {\r\n result.push(\r\n \r\n {kitchen.kitchenName}\r\n \r\n );\r\n }\r\n\r\n return result;\r\n }, [])}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n {this.renderNationFilter(setFieldValue)}\r\n
\r\n \r\n {forSubmit.units.length ? (\r\n <>\r\n \r\n {forSubmit.units.reduce((result, unit) => {\r\n if (\r\n values.nationId === null ||\r\n values.nationId === '' ||\r\n values.nationId === unit.partyId\r\n ) {\r\n result.push(\r\n \r\n );\r\n }\r\n\r\n return result;\r\n }, [])}\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n {t('From')}:\r\n \r\n
\r\n
\r\n \r\n {t('To')}:\r\n \r\n
\r\n
\r\n \r\n {t('Filter')}\r\n \r\n
\r\n
\r\n )}\r\n \r\n );\r\n }\r\n\r\n getMonthColumnHeaders() {\r\n const { serviceRequests } = this.props;\r\n\r\n if (serviceRequests.length) {\r\n const firstServiceRequest = serviceRequests[0];\r\n\r\n if (firstServiceRequest.mealPlans) {\r\n const months = firstServiceRequest.mealPlans.reduce(\r\n (result, mealPlan, _, array) => {\r\n const month = new Date(mealPlan.date).getMonth();\r\n\r\n if (!result.find(item => item.month === month)) {\r\n const date = format(mealPlan.date, 'yyyy');\r\n\r\n const timeRepeat = array.filter(\r\n item => new Date(item.date).getMonth() === month\r\n );\r\n\r\n result.push({\r\n month: month,\r\n date: `${MONTH_NAMES[month]}, ${date}`,\r\n timeRepeat: timeRepeat.length\r\n });\r\n }\r\n\r\n return result;\r\n },\r\n []\r\n );\r\n\r\n return months.map((mealPlan, index, array) => {\r\n return (\r\n \r\n \r\n {mealPlan.date}\r\n \r\n {array.length !== 1 && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n });\r\n }\r\n }\r\n }\r\n\r\n getDateColumnHeaders() {\r\n const { serviceRequests } = this.props;\r\n const { todayDate } = this.state;\r\n\r\n if (serviceRequests.length) {\r\n const firstServiceRequest = serviceRequests[0];\r\n\r\n if (firstServiceRequest.mealPlans) {\r\n return firstServiceRequest.mealPlans.map((mealPlan, index, array) => {\r\n const month = new Date(mealPlan.date).getMonth();\r\n const lastMealPlanMonth =\r\n index !== 0 ? new Date(array[index - 1].date).getMonth() : null;\r\n const nextMealPlanMonth =\r\n array.length !== index + 1\r\n ? new Date(array[index + 1].date).getMonth()\r\n : null;\r\n return (\r\n \r\n \r\n {format(mealPlan.date, 'dd')}\r\n \r\n {nextMealPlanMonth !== null && month !== nextMealPlanMonth && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n });\r\n }\r\n }\r\n }\r\n\r\n getKitchenName(serviceRequest) {\r\n const { t } = this.props;\r\n\r\n return serviceRequest.kitchenName ? (\r\n \r\n {serviceRequest.kitchenName}\r\n \r\n ) : (\r\n {t('Unspecified')}\r\n );\r\n }\r\n\r\n handleSplit = (serviceRequest, arrayHelpers) => () => {\r\n const items = new Array(\r\n serviceRequest.mealPlanItems.length === 0 ? 3 : 1\r\n ).fill({\r\n mealPlanSubServiceId: null,\r\n items: serviceRequest.mealPlans.map(item => {\r\n return {\r\n date: item.date,\r\n isEnabled: item.isEnabled,\r\n mealPlanId: null,\r\n quantity: item.isEnabled && item.quantity ? item.quantity : null,\r\n serviceRequestId: null,\r\n orderNumber: 0\r\n };\r\n })\r\n });\r\n\r\n items.forEach(item => {\r\n arrayHelpers.push(item);\r\n });\r\n };\r\n\r\n renderKitchenName(serviceRequest, serviceRequestIndex) {\r\n const { t } = this.props;\r\n return (\r\n <>\r\n {this.canEditMealPlanner() ? (\r\n {\r\n event.preventDefault();\r\n if (serviceRequest.locationName) {\r\n this.setState({\r\n kitchenDialog: {\r\n ...this.state.kitchenDialog,\r\n selectedKitchenId: serviceRequest.kitchenId,\r\n serviceRequestIndex: serviceRequestIndex,\r\n serviceRequestId: serviceRequest.serviceRequestId,\r\n locationName: serviceRequest.locationName,\r\n isOpen: true\r\n }\r\n });\r\n } else {\r\n Toast.warning(\r\n t('Location is not selected. Please select it first')\r\n );\r\n }\r\n }}\r\n >\r\n {this.getKitchenName(serviceRequest)}\r\n \r\n ) : (\r\n this.getKitchenName(serviceRequest)\r\n )}\r\n \r\n );\r\n }\r\n\r\n renderServiceRequestMealPlanItems = (\r\n serviceRequest,\r\n serviceRequestIndex,\r\n setFieldValue\r\n ) => {\r\n const { filter, todayDate } = this.state;\r\n\r\n const to = new Date(filter.dateTo);\r\n const from = new Date(filter.dateFrom);\r\n\r\n const count = differenceInCalendarDays(to, from);\r\n\r\n const months = differenceInCalendarMonths(to, from);\r\n\r\n const lines = serviceRequest.mealPlanItems.map(\r\n (mealPlanItems, groupIndex) => {\r\n return (\r\n \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 return (\r\n <>\r\n {lines}\r\n {serviceRequest.mealPlanItems.length > 0 &&\r\n this.canEditMealPlanner() &&\r\n this.canSplitMealPlanner() && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n renderServiceRequestMealPlanItemsSelects = (serviceRequest, index) => {\r\n const { t, forSubmit } = this.props;\r\n\r\n if (\r\n serviceRequest.mealPlanItems &&\r\n serviceRequest.mealPlanItems.length === 0\r\n ) {\r\n return null;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n {\r\n return serviceRequest.mealPlanItems.map(\r\n (mpItem, groupIndex) => {\r\n const isDisabled =\r\n !this.canSplitMealPlanner() ||\r\n (serviceRequest.hasSplittedMealItems &&\r\n !serviceRequest.hasEnabledMealPlans) ||\r\n (serviceRequest.hasSplittedMealItems &&\r\n mpItem.mealPlanSubServiceName);\r\n\r\n return (\r\n \r\n \r\n {!forSubmit.mealPlanSubServices && (\r\n \r\n )}\r\n {forSubmit.mealPlanSubServices && (\r\n \r\n )}\r\n\r\n {forSubmit.mealPlanSubServices &&\r\n forSubmit.mealPlanSubServices.map(item => {\r\n return (\r\n \r\n {item.subServiceName}\r\n \r\n );\r\n })}\r\n\r\n {(!forSubmit.mealPlanSubServices ||\r\n !forSubmit.mealPlanSubServices.length === 0) && (\r\n \r\n )}\r\n \r\n\r\n {this.canSplitMealPlanner() &&\r\n this.canEditMealPlanner() && (\r\n {\r\n arrayHelpers.remove(groupIndex);\r\n }}\r\n className=\"meal-planner--split-remove\"\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 {this.canEditMealPlanner() && this.canSplitMealPlanner() && (\r\n \r\n \r\n {\r\n return (\r\n }\r\n size=\"small\"\r\n type=\"button\"\r\n disabled={!serviceRequest.hasEnabledMealPlans}\r\n onClick={this.handleSplit(serviceRequest, arrayHelpers)}\r\n >\r\n \r\n {t('Add more meals')}\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 renderServiceRequestInfo(serviceRequest, serviceRequestIndex) {\r\n return (\r\n \r\n \r\n \r\n {serviceRequest.requestNumber && (\r\n \r\n {serviceRequest.requestNumber}\r\n \r\n )}\r\n \r\n \r\n {serviceRequest.serviceName && (\r\n \r\n {serviceRequest.serviceName}\r\n \r\n )}\r\n \r\n \r\n {serviceRequest.locationName && (\r\n \r\n {serviceRequest.locationName}\r\n \r\n )}\r\n \r\n \r\n {this.renderKitchenName(serviceRequest, serviceRequestIndex)}\r\n \r\n {this.canRenderNation() && (\r\n \r\n {serviceRequest.sendingNationName && (\r\n \r\n {serviceRequest.sendingNationName}\r\n \r\n )}\r\n \r\n )}\r\n \r\n {serviceRequest.unitName && (\r\n \r\n {serviceRequest.unitName}\r\n \r\n )}\r\n \r\n {this.canSplitMealPlanner() && (\r\n \r\n {this.canEditMealPlanner() &&\r\n serviceRequest.mealPlanItems.length === 0 && (\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 {this.renderServiceRequestMealPlanItemsSelects(\r\n serviceRequest,\r\n serviceRequestIndex\r\n )}\r\n \r\n );\r\n }\r\n\r\n renderServiceRequest(serviceRequest, serviceRequestIndex, setFieldValue) {\r\n const { todayDate } = this.state;\r\n return (\r\n \r\n \r\n {\r\n return serviceRequest.mealPlans.map((mealPlan, index, array) => {\r\n const month = new Date(mealPlan.date).getMonth();\r\n const lastMealPlanMonth =\r\n index !== 0\r\n ? new Date(array[index - 1].date).getMonth()\r\n : null;\r\n const nextMealPlanMonth =\r\n array.length !== index + 1\r\n ? new Date(array[index + 1].date).getMonth()\r\n : null;\r\n\r\n return (\r\n \r\n \r\n 0 &&\r\n mealPlan.isEnabled) ||\r\n (mealPlan.mealPlanItems.length > 0 &&\r\n !mealPlan.isEnabled)\r\n }\r\n disabled={\r\n !mealPlan.isEnabled ||\r\n !this.canEditMealPlanner() ||\r\n serviceRequest.mealPlanItems.length > 0\r\n }\r\n showButtons={false}\r\n min={0}\r\n valueNullable={true}\r\n noMargin\r\n component={NumericInput}\r\n />\r\n \r\n {nextMealPlanMonth !== null && month !== nextMealPlanMonth && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n });\r\n }}\r\n />\r\n \r\n\r\n {this.renderServiceRequestMealPlanItems(\r\n serviceRequest,\r\n serviceRequestIndex,\r\n setFieldValue\r\n )}\r\n \r\n );\r\n }\r\n\r\n submit = (values, { setSubmitting, resetForm }) => {\r\n setSubmitting(true);\r\n const { t, forSubmit } = this.props;\r\n const { filter } = this.state;\r\n\r\n const mealPlanItemsData = values.serviceRequests.map(serviceRequest => {\r\n const mealPlanItems = [...serviceRequest.mealPlanItems];\r\n\r\n const data = serviceRequest.mealPlans.map(item => {\r\n let highestOrderNumber = item.mealPlanItems.reduce(\r\n (accumulated, current) => {\r\n return Math.max(accumulated, current.orderNumber);\r\n },\r\n 0\r\n );\r\n // Return only non empty mealPlanItems\r\n const mpItemsData = mealPlanItems.reduce((acc, group, groupIndex) => {\r\n const validItems = group.items.reduce((acc, groupItem) => {\r\n if (groupItem.quantity !== null && groupItem.date === item.date) {\r\n if (!groupItem.orderNumber) {\r\n const groupOrderNumber = group.items.find(\r\n x => x.orderNumber !== null\r\n );\r\n\r\n if (groupOrderNumber && groupOrderNumber.orderNumber) {\r\n groupIndex = groupOrderNumber.orderNumber;\r\n } else if (groupIndex <= highestOrderNumber) {\r\n highestOrderNumber++;\r\n groupIndex = highestOrderNumber;\r\n }\r\n }\r\n const mealPlanItem = {\r\n mealPlanSubServiceId: group.mealPlanSubServiceId,\r\n mealPlanSubServiceName: group.mealPlanSubServiceName,\r\n quantity: parseInt(groupItem.quantity, 10),\r\n orderNumber: groupItem.orderNumber\r\n ? groupItem.orderNumber\r\n : groupIndex\r\n };\r\n\r\n if (groupItem.mealPlanItemId) {\r\n mealPlanItem.mealPlanItemId = groupItem.mealPlanItemId;\r\n }\r\n\r\n // Only for HN, set Subservice name\r\n if (\r\n !group.mealPlanSubServiceName &&\r\n forSubmit.mealPlanSubServices\r\n ) {\r\n const mpSubServiceItem = forSubmit.mealPlanSubServices.find(\r\n i => i.subServiceId === group.mealPlanSubServiceId\r\n );\r\n\r\n if (mpSubServiceItem) {\r\n mealPlanItem.mealPlanSubServiceName =\r\n mpSubServiceItem.subServiceName;\r\n }\r\n }\r\n\r\n acc.push(mealPlanItem);\r\n }\r\n\r\n return acc;\r\n }, []);\r\n\r\n if (validItems.length > 0) {\r\n acc.push(...validItems);\r\n }\r\n\r\n return acc;\r\n }, []);\r\n return {\r\n ...item,\r\n quantity: item.quantity ? parseInt(item.quantity, 10) : null,\r\n mealPlanItems: mpItemsData\r\n };\r\n });\r\n\r\n const originalData = { ...serviceRequest };\r\n\r\n delete originalData.mealPlanItems;\r\n\r\n return {\r\n ...originalData,\r\n mealPlans: data\r\n };\r\n });\r\n\r\n const body = {\r\n dateFrom: format(filter.dateFrom, BACKEND_DATE_FORMAT),\r\n dateTo: format(filter.dateTo, BACKEND_DATE_FORMAT),\r\n serviceRequests: mealPlanItemsData\r\n };\r\n\r\n this.props.updateServiceRequests(body).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Meal plan updated successfully'));\r\n this.reloadServiceRequests(() => {\r\n resetForm();\r\n });\r\n } else if (response.payload) {\r\n let errors = '';\r\n if (response.playload.details) {\r\n response.payload.details.forEach(error => {\r\n errors = errors + ' ' + error.message[0];\r\n });\r\n }\r\n\r\n Toast.warning(response.payload.message + `${errors}`);\r\n\r\n resetForm();\r\n }\r\n setSubmitting(false);\r\n });\r\n };\r\n\r\n cancelChanges(resetForm) {\r\n const { t } = this.props;\r\n Confirm(t('Cancel'), t('Are you sure you want to cancel?'), () => {\r\n resetForm();\r\n });\r\n }\r\n\r\n onDialogOpening = () => {\r\n const { kitchenDialog } = this.state;\r\n const { getServiceRequestKitchenForSubmit } = this.props;\r\n\r\n getServiceRequestKitchenForSubmit(kitchenDialog.locationName);\r\n };\r\n\r\n updateKitchen() {\r\n const { updateServiceRequestKitchen, t } = this.props;\r\n const { kitchenDialog } = this.state;\r\n\r\n updateServiceRequestKitchen(\r\n kitchenDialog.serviceRequestId,\r\n kitchenDialog.selectedKitchenId\r\n ).then(response => {\r\n if (response.success) {\r\n Toast.success(t('Kitchen updated successfully'));\r\n\r\n this.reloadServiceRequests();\r\n } else if (response.payload) {\r\n Toast.warning(response.payload.message);\r\n }\r\n });\r\n\r\n this.setState({ kitchenDialog: {} });\r\n }\r\n\r\n renderKitchenDialog() {\r\n const { t, forSubmit, kitchenForSubmit } = this.props;\r\n const { kitchenDialog } = this.state;\r\n return (\r\n {\r\n this.setState({ kitchenDialog: {} });\r\n }}\r\n className=\"kitchen-dialog\"\r\n >\r\n {kitchenDialog.error && (\r\n {kitchenDialog.error}\r\n )}\r\n {\r\n const kitchenId = event.target.value;\r\n const kitchen = forSubmit.kitchens.find(\r\n kitchen => kitchen.kitchenId === kitchenId\r\n );\r\n this.setState({\r\n kitchenDialog: {\r\n ...this.state.kitchenDialog,\r\n selectedKitchenId: kitchenId,\r\n kitchenName: kitchen ? kitchen.kitchenName : null\r\n }\r\n });\r\n }}\r\n >\r\n {kitchenForSubmit.length ? (\r\n <>\r\n \r\n {kitchenForSubmit &&\r\n kitchenForSubmit.map(kitchen => {\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 const { kitchenDialog } = this.state;\r\n if (kitchenDialog.selectedKitchenId) {\r\n this.updateKitchen();\r\n } else {\r\n this.setState({\r\n kitchenDialog: {\r\n ...kitchenDialog,\r\n error: t('Kitchen is required')\r\n }\r\n });\r\n }\r\n }}\r\n >\r\n {t('Save')}\r\n \r\n
\r\n \r\n );\r\n }\r\n\r\n canRenderNation() {\r\n return true;\r\n }\r\n\r\n canSplitMealPlanner() {\r\n return true;\r\n }\r\n\r\n canEditMealPlanner() {\r\n const { hasUserPermission } = this.props;\r\n return (\r\n !hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT)\r\n );\r\n }\r\n\r\n synchronizeScroll = e => {\r\n if (this.state.hoveredTable === 'service-request-info') {\r\n this.serviceRequestDataVerticalScroll.current.scrollTop =\r\n e.target.scrollTop;\r\n return;\r\n }\r\n this.serviceRequestInfoVerticalScroll.current.scrollTop =\r\n e.target.scrollTop;\r\n };\r\n\r\n onTableMouseEnter = e => {\r\n this.setState({ hoveredTable: e.currentTarget.id });\r\n };\r\n\r\n renderServiceRequests() {\r\n const { t, serviceRequests } = this.props;\r\n\r\n return (\r\n \r\n {({ setFieldValue, values, isSubmitting, resetForm, dirty }) => (\r\n
\r\n {this.canEditMealPlanner() && (\r\n \r\n
\r\n {\r\n this.cancelChanges(resetForm);\r\n }}\r\n >\r\n {t('Cancel')}\r\n \r\n \r\n {t('Save')}\r\n \r\n
\r\n \r\n )}\r\n {this.renderKitchenDialog()}\r\n <>\r\n {serviceRequests.length ? (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.canRenderNation() && (\r\n \r\n )}\r\n \r\n {this.canSplitMealPlanner() && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.canRenderNation() && (\r\n \r\n )}\r\n \r\n {this.canSplitMealPlanner() && (\r\n \r\n )}\r\n \r\n \r\n \r\n {values.serviceRequests.map((serviceRequest, index) => {\r\n return this.renderServiceRequestInfo(\r\n serviceRequest,\r\n index\r\n );\r\n })}\r\n \r\n
{t('Request')}{t('Service name')}{t('Location')}{t('Kitchen')}{t('Nation')}{t('Unit')}{t('Split')}
\r\n
\r\n \r\n \r\n \r\n {this.getMonthColumnHeaders()}\r\n {this.getDateColumnHeaders()}\r\n \r\n \r\n {values.serviceRequests.map((serviceRequest, index) => {\r\n return this.renderServiceRequest(\r\n serviceRequest,\r\n index,\r\n setFieldValue\r\n );\r\n })}\r\n \r\n
\r\n \r\n \r\n ) : (\r\n
\r\n {t('There are no meal services')}\r\n
\r\n )}\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n {this.renderHeader()}\r\n {this.renderFilters()}\r\n {this.renderServiceRequests()}\r\n
\r\n );\r\n }\r\n}\r\n\r\nMealPlanner.propTypes = {\r\n t: PropTypes.func,\r\n hasUserPermission: PropTypes.func,\r\n match: PropTypes.object,\r\n clearMealPlanner: PropTypes.func,\r\n getServiceRequests: PropTypes.func,\r\n serviceRequests: PropTypes.array,\r\n mealPlannerLocations: PropTypes.array,\r\n queryLocationsForMealPlanner: PropTypes.func,\r\n getMealPlannerForSubmit: PropTypes.func,\r\n forSubmit: PropTypes.object,\r\n updateServiceRequests: PropTypes.func,\r\n getServiceRequestKitchenForSubmit: PropTypes.func,\r\n updateServiceRequestKitchen: PropTypes.func,\r\n kitchenForSubmit: PropTypes.array,\r\n exportMealPlans: PropTypes.func\r\n};\r\n\r\nexport default MealPlanner;\r\n","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { withRouter } from 'react-router-dom';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\nimport Tooltip from '@hobs/components/Tooltip';\r\nimport { H1 } from '@hobs/components/Headings';\r\nimport {\r\n getServiceRequests,\r\n clearMealPlanner,\r\n getMealPlannerForSubmit,\r\n updateServiceRequests,\r\n queryLocationsForMealPlanner\r\n} from '@hobs/actions/mealPlanner';\r\n\r\nimport _MealPlanner from '@hobs/containers/MealPlanner';\r\nimport './MealPlanner.scss';\r\n\r\nclass MealPlanner extends _MealPlanner {\r\n renderNationFilter() {\r\n return null;\r\n }\r\n\r\n renderHeader() {\r\n const { t } = this.props;\r\n return (\r\n
\r\n

{t('Meal planner')}

\r\n
\r\n );\r\n }\r\n\r\n canRenderNation() {\r\n return false;\r\n }\r\n\r\n canSplitMealPlanner() {\r\n return false;\r\n }\r\n\r\n onDialogOpening = () => {};\r\n\r\n renderKitchenDialog() {}\r\n\r\n renderKitchenName(serviceRequest) {\r\n const { t } = this.props;\r\n\r\n return serviceRequest.kitchenName ? (\r\n \r\n {serviceRequest.kitchenName}\r\n \r\n ) : (\r\n {t('Unspecified')}\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n serviceRequests: state.mealPlanner.serviceRequests,\r\n forSubmit: state.mealPlanner.forSubmit,\r\n mealPlannerLocations: state.mealPlanner.mealPlannerLocations\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n getServiceRequests,\r\n clearMealPlanner,\r\n queryLocationsForMealPlanner,\r\n getMealPlannerForSubmit,\r\n updateServiceRequests\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(withRouter(WithRoles(MealPlanner))));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport ShortId from 'shortid';\r\nimport { connect } from 'react-redux';\r\nimport { Link, withRouter } from 'react-router-dom';\r\nimport { withTranslation } from 'react-i18next';\r\nimport WithQuickSearch from '@hobs/hocs/WithQuickSearch';\r\nimport GridLoader from '@hobs/components/Grid/GridLoader';\r\nimport Columns from '@hobs/components/Grid/Columns';\r\nimport { CellDate } from '@hobs/components/Grid/CellDate';\r\nimport { RaisedButton, GhostButton } from '@hobs/components/Buttons';\r\nimport WithVisibleColumns from '@hobs/hocs/WithVisibleColumns';\r\nimport Icon from '@hobs/components/Icon';\r\nimport ObjectPath from 'object-path';\r\nimport Discussion from '@hobs/containers/Discussion';\r\nimport Status from '@hobs/components/Status';\r\nimport Toast from '@hobs/components/Toast';\r\nimport deepcopy from 'deepcopy';\r\nimport { H1 } from '@hobs/components/Headings';\r\nimport Dropdown from '@hobs/components/Dropdown';\r\nimport {\r\n ExcelExport,\r\n ExcelExportColumn\r\n} from '@progress/kendo-react-excel-export';\r\nimport {\r\n withDataStateLocalOverrides,\r\n withGridLocalOverrides,\r\n onUserResetSettings\r\n} from '@hobs/utils/grid/overrides';\r\nimport { Grid } from '@progress/kendo-react-grid';\r\nimport { parse } from '@hobs/utils/formatWithTimeZone';\r\nimport {\r\n PAGE_SIZES,\r\n USER_ROLES,\r\n TICKETS_EXPORT_FILE_NAME,\r\n TICKETS_STATUSES,\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN,\r\n GRID_CUSTOM_FILTER_FIELDS\r\n} from '@hobs/utils/constants';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport { queryOData, resetOData, queryXLSOData } from '@hobs/actions/odata';\r\nimport WithRoles from '@hobs/hocs/WithRoles';\r\nimport { getTicketGrid } from '@hobs/actions/gridSelections';\r\nimport { ServiceRequestNavContext } from '@hobs/components/ServiceRequestNavContext';\r\nimport { getSorSummary } from '../../actions/sor';\r\nimport './Tickets.scss';\r\n\r\nclass Tickets extends React.PureComponent {\r\n LSdataStateName = `TicketsList${this.props.user.CurrentExerciseId}.dataState`;\r\n LSGridPropsName = `TicketsList${this.props.user.CurrentExerciseId}.grid.props`;\r\n constructor(props) {\r\n super(props);\r\n\r\n this.defaultGridColumns = this.getDefaultColumns();\r\n\r\n this.defaultDataState = {\r\n take: 20,\r\n skip: 0,\r\n sort: [{ field: 'TicketNumber', dir: 'desc' }]\r\n };\r\n\r\n this.state = {\r\n selectedUnit: '',\r\n dataState: withDataStateLocalOverrides(\r\n deepcopy(this.defaultDataState),\r\n this.LSdataStateName\r\n ),\r\n columns: withGridLocalOverrides(\r\n deepcopy(this.defaultGridColumns),\r\n this.LSGridPropsName\r\n )\r\n };\r\n\r\n this.exportRef = React.createRef();\r\n this.grid = React.createRef();\r\n }\r\n\r\n async componentDidMount() {\r\n const { getTicketGrid } = this.props;\r\n\r\n await this.props.getSorSummary();\r\n\r\n getTicketGrid().then(() => {\r\n const columns = this.getDefaultColumns();\r\n\r\n const columnsWithLocalOverrides = withGridLocalOverrides(\r\n deepcopy(columns),\r\n this.LSGridPropsName\r\n );\r\n\r\n this.setState({\r\n columns: {\r\n ...columnsWithLocalOverrides\r\n }\r\n });\r\n\r\n this.props.withVisibleColumns.setColumns(this.state.columns);\r\n this.props.withVisibleColumns.onUpdate(() => {\r\n this.setState({\r\n gridKey: ShortId.generate()\r\n });\r\n });\r\n });\r\n\r\n this.loadODataQuery();\r\n\r\n window.addEventListener('scroll', this.handleScroll);\r\n window.addEventListener('resize', this.handleScroll);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.resetOData();\r\n window.removeEventListener('scroll', this.handleScroll);\r\n window.removeEventListener('resize', this.handleScroll);\r\n }\r\n\r\n onUserSaveSettings = () => {\r\n localStorage.setItem(\r\n this.LSdataStateName,\r\n JSON.stringify(this.state.dataState)\r\n );\r\n localStorage.setItem(\r\n this.LSGridPropsName,\r\n JSON.stringify({\r\n columns: this.grid.current.columns\r\n })\r\n );\r\n };\r\n\r\n onUserResetSettings = onUserResetSettings(\r\n this.LSdataStateName,\r\n this.LSGridPropsName,\r\n null,\r\n () => {\r\n const columns = this.getDefaultColumns();\r\n\r\n this.props.withVisibleColumns.setColumns(columns);\r\n\r\n this.setState(\r\n {\r\n gridKey: ShortId.generate(),\r\n columns,\r\n dataState: this.defaultDataState\r\n },\r\n () => {\r\n this.loadODataQuery();\r\n }\r\n );\r\n }\r\n );\r\n\r\n handleScroll = () => {\r\n document.getElementsByClassName('k-grid').forEach(grid => {\r\n const header = grid.getElementsByClassName('k-grid-header');\r\n if (!header.length) {\r\n return;\r\n }\r\n\r\n if (window.pageYOffset >= grid.offsetTop) {\r\n if (!header[0].classList.contains('fixed-header')) {\r\n header[0].classList.add('fixed-header');\r\n }\r\n header[0].style.maxWidth = `${grid.offsetWidth}px`;\r\n } else {\r\n if (header[0].classList.contains('fixed-header')) {\r\n header[0].classList.remove('fixed-header');\r\n header[0].style.maxWidth = '';\r\n }\r\n }\r\n });\r\n };\r\n\r\n dataStateChange = e => {\r\n this.setState(\r\n {\r\n dataState: e.dataState\r\n },\r\n () => {\r\n this.loadODataQuery();\r\n }\r\n );\r\n };\r\n\r\n loadODataQuery = () => {\r\n this.props.queryOData('TicketsQuery', this.getDataState());\r\n };\r\n\r\n getDataState() {\r\n let filters = [];\r\n\r\n if (Object.keys(this.props.withQuickSearchFilter).length > 0) {\r\n filters.push(this.props.withQuickSearchFilter);\r\n }\r\n\r\n if (this.state.selectedUnit && this.state.selectedUnit != 'All units') {\r\n filters.push({\r\n field: 'UnitId',\r\n operator: 'eq',\r\n value: `${this.state.selectedUnit}`\r\n });\r\n }\r\n\r\n const dataState = {\r\n ...this.state.dataState\r\n };\r\n\r\n if (\r\n this.state.dataState.filter &&\r\n this.state.dataState.filter.filters.length > 0\r\n ) {\r\n filters = filters.concat(this.state.dataState.filter);\r\n }\r\n\r\n if (filters.length > 0) {\r\n dataState.filter = {\r\n logic: 'and',\r\n filters\r\n };\r\n }\r\n\r\n return dataState;\r\n }\r\n\r\n onQuickSearch = () => {\r\n this.setState(\r\n {\r\n dataState: {\r\n ...this.state.dataState,\r\n skip: 0\r\n }\r\n },\r\n () => {\r\n const dataState = this.getDataState();\r\n\r\n this.props.queryOData('TicketsQuery', dataState);\r\n }\r\n );\r\n };\r\n\r\n getDefaultColumns() {\r\n const { t, hasUserPermission, ticketGrid } = this.props;\r\n const columns = {\r\n TicketNumber: {\r\n title: t('Ticket No.'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'numeric',\r\n cell: ({ dataItem }) => (\r\n \r\n {!hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT) && (\r\n \r\n {dataItem.TicketNumber}\r\n \r\n )}\r\n {(hasUserPermission(USER_ROLES.READONLY) ||\r\n hasUserPermission(USER_ROLES.HOST_UNIT)) && (\r\n <>{dataItem.TicketNumber}\r\n )}\r\n \r\n )\r\n },\r\n AdditionalRequestStatusName: {\r\n title: t('Status'),\r\n default: true,\r\n visible: true,\r\n width: 103,\r\n cell: ({ dataItem }) => (\r\n \r\n \r\n \r\n ),\r\n columnMenu: true,\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n field: 'AdditionalRequestStatusId',\r\n value: ''\r\n },\r\n ...ticketGrid.additionalRequestsStatuses.map(item => ({\r\n value: `${item.id}`,\r\n name: item.title,\r\n field: 'AdditionalRequestStatusId',\r\n default: false\r\n }))\r\n ]\r\n }\r\n },\r\n CreationDate: {\r\n title: t('Creation date'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'date',\r\n cell: CellDate\r\n },\r\n RequestType: {\r\n title: t('Req. type'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n field: 'RequestTypeId',\r\n value: ''\r\n },\r\n ...ticketGrid.additionalRequestTypes.map(item => ({\r\n value: `${item.id}`,\r\n name: item.title,\r\n field: 'RequestTypeId',\r\n default: false\r\n }))\r\n ]\r\n }\r\n },\r\n RequestNumber: {\r\n title: t('Req. No.'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n cell: ({ dataItem }) => (\r\n \r\n {!hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT) &&\r\n (dataItem.IsCustomServiceRequest ? (\r\n \r\n {dataItem.RequestNumber}\r\n \r\n ) : (\r\n \r\n {dataItem.RequestNumber}\r\n \r\n ))}\r\n {(hasUserPermission(USER_ROLES.READONLY) ||\r\n hasUserPermission(USER_ROLES.HOST_UNIT)) && (\r\n <>{dataItem.RequestNumber}\r\n )}\r\n \r\n )\r\n },\r\n AnnexInformation: {\r\n title: t('Annex information'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n ServiceName: {\r\n title: t('Service'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n Unit: {\r\n title: t('Unit'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true\r\n },\r\n LocationName: {\r\n title: t('Location'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n field: 'LocationName',\r\n value: ''\r\n },\r\n ...this.getColumnFilterByNameValues('locations')\r\n ]\r\n }\r\n },\r\n RegionId: {\r\n title: t('Region'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false,\r\n customFilter: {\r\n filter: 'contains',\r\n data: [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n value: ''\r\n },\r\n ...this.getColumnFilterValuesAsString(\r\n GRID_CUSTOM_FILTER_FIELDS.regions,\r\n 'RegionIds'\r\n )\r\n ]\r\n },\r\n cell: ({ dataItem }) => {\r\n return {dataItem.RegionName};\r\n }\r\n },\r\n DeliveryFromDate: {\r\n title: t('From date'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'date',\r\n cell: CellDate\r\n },\r\n DeliveryToDate: {\r\n title: t('To date'),\r\n columnMenu: true,\r\n default: true,\r\n visible: true,\r\n filter: 'date',\r\n cell: CellDate\r\n },\r\n LastUpdate: {\r\n title: t('Last update'),\r\n columnMenu: true,\r\n default: false,\r\n visible: false,\r\n filter: 'date',\r\n cell: CellDate\r\n },\r\n HasAttachments: {\r\n width: '33px',\r\n title: t('Attachment'),\r\n cell: ({ dataItem }) => (\r\n \r\n {dataItem.HasAttachments && (\r\n \r\n )}\r\n \r\n ),\r\n headerCell: () => (\r\n \r\n ),\r\n default: true,\r\n visible: true,\r\n xls: false\r\n }\r\n };\r\n\r\n if (\r\n !hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT)\r\n ) {\r\n Object.assign(columns, {\r\n DiscussionStatus: {\r\n title: t('Disc.'),\r\n default: true,\r\n columnMenu: true,\r\n visible: true,\r\n xls: false,\r\n width: '50px',\r\n cell: ({ dataItem }) => {\r\n return (\r\n \r\n {}}\r\n initials={t('HN')}\r\n />\r\n \r\n );\r\n },\r\n customFilter: {\r\n data: [\r\n {\r\n name: t('Select all'),\r\n default: true,\r\n value: ''\r\n },\r\n {\r\n name: t('Unread messages'),\r\n value: 1\r\n },\r\n {\r\n name: t('Read messages'),\r\n value: 2\r\n },\r\n {\r\n name: t('No messages'),\r\n value: 3\r\n }\r\n ]\r\n }\r\n }\r\n });\r\n }\r\n\r\n return columns;\r\n }\r\n\r\n async getXlsData() {\r\n const dataState = this.getDataState();\r\n delete dataState.take;\r\n dataState.skip = 0;\r\n const XLSoData = await this.props.queryXLSOData('TicketsQuery', dataState);\r\n\r\n const data = XLSoData.data.map(item => {\r\n item.StatusId = item.StatusGridName;\r\n item.DeliveryFromDate = parse(item.DeliveryFromDate);\r\n item.DeliveryToDate = parse(item.DeliveryToDate);\r\n item.CreationDate = parse(item.CreationDate);\r\n item.LastUpdate = parse(item.LastUpdate);\r\n return item;\r\n });\r\n\r\n this.setState({\r\n XLSoData: data\r\n });\r\n }\r\n\r\n exportTickets = async () => {\r\n await this.getXlsData();\r\n this.exportRef.current.save();\r\n };\r\n\r\n getColumns() {\r\n const {\r\n withVisibleColumns: { getGridColumns }\r\n } = this.props;\r\n return Columns({\r\n columns: getGridColumns,\r\n onSave: this.onUserSaveSettings,\r\n onReset: this.onUserResetSettings,\r\n dataState: this.state.dataState\r\n });\r\n }\r\n canCreateServiceRequest = () => {\r\n const { sor } = this.props;\r\n const { isCreateSrDisabled } = this.state;\r\n return (\r\n (!!ObjectPath.get(sor, 'sorSummary.canCreateAdditionalServiceRequest') ||\r\n !!ObjectPath.get(sor, 'sorSummary.isExerciseIsFrozen')) &&\r\n !isCreateSrDisabled\r\n );\r\n };\r\n\r\n getColumnFilterValuesAsString(gridFilterFieldName, field) {\r\n const { ticketGrid } = this.props;\r\n\r\n if (ticketGrid && ticketGrid[gridFilterFieldName]) {\r\n return ticketGrid[gridFilterFieldName].map(filterValue => {\r\n const filter = {\r\n name: filterValue.title,\r\n value: filterValue.id\r\n };\r\n\r\n if (field) {\r\n filter.field = field;\r\n }\r\n return filter;\r\n });\r\n }\r\n\r\n return [];\r\n }\r\n\r\n getColumnFilterByNameValues(gridFilterFieldName) {\r\n const { ticketGrid } = this.props;\r\n\r\n if (ticketGrid && ticketGrid[gridFilterFieldName]) {\r\n return ticketGrid[gridFilterFieldName].map(filterValue => {\r\n const value = filterValue.title ? filterValue.title : filterValue;\r\n\r\n return {\r\n name: value,\r\n value: value\r\n };\r\n });\r\n }\r\n\r\n return [];\r\n }\r\n\r\n flattenUnitsTree(array, level = 0) {\r\n if (!Array.isArray(array)) {\r\n return [];\r\n }\r\n\r\n const units = array.reduce((result, item) => {\r\n result.push({\r\n unitName: `${'\\xa0\\xa0\\xa0'.repeat(level)}${item.unitName}`,\r\n value: item.unitName,\r\n unitId: item.unitId\r\n });\r\n\r\n if (Array.isArray(item.units)) {\r\n result = result.concat(this.flattenUnitsTree(item.units, level + 1));\r\n }\r\n\r\n return result;\r\n }, []);\r\n\r\n return units;\r\n }\r\n\r\n getUnitOptions = unitsTree => {\r\n const { t } = this.props;\r\n\r\n const units = this.flattenUnitsTree(unitsTree);\r\n\r\n if (units && units.length) {\r\n return []\r\n .concat(\r\n [\r\n {\r\n unitName: t('All units'),\r\n value: ''\r\n }\r\n ],\r\n units\r\n )\r\n .map(unit => {\r\n return (\r\n \r\n );\r\n });\r\n }\r\n\r\n return (\r\n \r\n );\r\n };\r\n\r\n handleUnitFilterChange = event => {\r\n this.setState(\r\n {\r\n selectedUnit: event.target.value,\r\n dataState: {\r\n ...this.state.dataState,\r\n skip: 0\r\n }\r\n },\r\n () => {\r\n this.loadODataQuery();\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n const {\r\n t,\r\n hasUserPermission,\r\n sor,\r\n withVisibleColumns: { getVisibleColumnCount, openDialog, getGridColumns }\r\n } = this.props;\r\n const { selectedUnit } = this.state;\r\n\r\n return (\r\n
\r\n \r\n {nav =>\r\n nav.serviceRequestNavigation !==\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN.Tickets &&\r\n nav.setServiceRequestNavigation(\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN.Tickets\r\n )\r\n }\r\n \r\n

{t('Additional requests')}

\r\n
\r\n
\r\n
\r\n {!hasUserPermission(USER_ROLES.READONLY) &&\r\n !hasUserPermission(USER_ROLES.HOST_UNIT) && (\r\n }\r\n onClick={event => {\r\n if (\r\n ObjectPath.get(sor, 'sorSummary.isExerciseIsFrozen')\r\n ) {\r\n event.preventDefault();\r\n Toast.warning(\r\n t(\r\n 'New services cannot be added, because FSOR is currently frozen'\r\n )\r\n );\r\n }\r\n }}\r\n >\r\n {t('Add additional request')}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n {this.getUnitOptions(\r\n ObjectPath.get(this.props.sor, 'sorSummary.units')\r\n )}\r\n \r\n
\r\n
\r\n {this.props.withQuickSearchForm({\r\n onSearch: this.onQuickSearch,\r\n noMargin: true\r\n })}\r\n
\r\n {\r\n openDialog();\r\n }}\r\n type=\"button\"\r\n >\r\n {t('Visible columns')} ({getVisibleColumnCount()})\r\n \r\n }\r\n onClick={() => {\r\n this.exportTickets();\r\n }}\r\n >\r\n {t('XLSX')}\r\n \r\n
\r\n
\r\n {Object.keys(getGridColumns).length > 0 && (\r\n <>\r\n \r\n {Object.keys(getGridColumns).reduce((results, key) => {\r\n const column = getGridColumns[key];\r\n if (\r\n (typeof column.xls === 'undefined' || column.xls) &&\r\n column.visible\r\n ) {\r\n if (column.filter === 'date') {\r\n results.push(\r\n \r\n );\r\n } else if (column.title === 'Region') {\r\n results.push(\r\n \r\n );\r\n } else {\r\n results.push(\r\n \r\n );\r\n }\r\n }\r\n return results;\r\n }, [])}\r\n \r\n \r\n {this.getColumns()}\r\n \r\n \r\n )}\r\n {this.props.isLoading && }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nTickets.propTypes = {\r\n isLoading: PropTypes.bool,\r\n oData: PropTypes.object,\r\n queryOData: PropTypes.func,\r\n resetOData: PropTypes.func,\r\n loadODataQuery: PropTypes.func,\r\n location: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n t: PropTypes.func,\r\n withQuickSearchForm: PropTypes.func,\r\n withQuickSearchFilter: PropTypes.object,\r\n getGroupGrid: PropTypes.func,\r\n hasUserPermission: PropTypes.func,\r\n queryXLSOData: PropTypes.func,\r\n sor: PropTypes.object,\r\n forSubmit: PropTypes.object,\r\n getTicketGrid: PropTypes.func,\r\n getSorSummary: PropTypes.func,\r\n ticketGrid: PropTypes.object,\r\n withVisibleColumns: PropTypes.object,\r\n user: PropTypes.object\r\n};\r\n\r\nconst oDataLoading = createLoadingSelector(['OData']);\r\nconst mapStateToProps = state => ({\r\n isLoading: oDataLoading(state),\r\n oData: state.odata,\r\n sor: state.sor,\r\n forSubmit: state.tickets.forSubmit,\r\n ticketGrid: state.gridSelections.ticketGrid\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n queryOData,\r\n resetOData,\r\n queryXLSOData,\r\n getSorSummary,\r\n getTicketGrid\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(\r\n withTranslation()(\r\n withRouter(WithVisibleColumns(WithQuickSearch(WithRoles(Tickets))))\r\n )\r\n);\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PageHeader from '@hobs/components/PageHeader';\r\nimport { ServiceRequestNavContext } from '@hobs/components/ServiceRequestNavContext';\r\nimport { GhostButton, RaisedButton } from '@hobs/components/Buttons';\r\nimport Icon from '@hobs/components/Icon';\r\nimport InputLabel from '@hobs/components/InputLabel';\r\nimport Status from '@hobs/components/Status';\r\nimport Money from '@hobs/components/Money';\r\nimport Loader from '@hobs/components/Loader';\r\nimport BluePanel from '@hobs/components/BluePanel';\r\nimport PageActions from '@hobs/components/PageActions';\r\nimport { H2 } from '@hobs/components/Headings';\r\nimport { format } from '@hobs/utils/formatWithTimeZone';\r\nimport PageLinks from '@hobs/components/PageLinks';\r\nimport CalculateByDays from '@hobs/components/CalculateByDays';\r\n\r\nimport {\r\n SERVICE_REQUEST_NAVIGATION_ORIGIN,\r\n DATE_FORMAT,\r\n TICKETS_STATUSES,\r\n SERVICE_REQUEST_FOOTER_STATUSES\r\n} from '@hobs/utils/constants';\r\nimport './ChangeHistory.scss';\r\nimport Quantity from '@hobs/components/Quantity';\r\n\r\nconst SHORT_NAMES = {\r\n 'Host Nation': 'HN',\r\n 'Sending Nation': 'SN'\r\n};\r\n\r\nclass ChangeHistory extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.container = React.createRef();\r\n }\r\n\r\n componentDidMount() {\r\n const {\r\n match: {\r\n params: { serviceRequestId }\r\n },\r\n getTickets,\r\n getFooter\r\n } = this.props;\r\n\r\n getFooter(serviceRequestId);\r\n getTickets(serviceRequestId);\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.clearFooter();\r\n this.props.clearTickets();\r\n }\r\n\r\n navigateBack = (navContext, previousPageHistory) => () => {\r\n const { history } = this.props;\r\n history.push(this.getBackNavigationUrl(navContext, previousPageHistory));\r\n };\r\n\r\n isActionsEnabled() {\r\n return (\r\n this.props.footer &&\r\n this.props.footer.footerType ===\r\n SERVICE_REQUEST_FOOTER_STATUSES.RequestForCancellation\r\n );\r\n }\r\n\r\n isCustom() {\r\n return this.props.tickets.isCustom;\r\n }\r\n\r\n getHistoryPath() {\r\n const { match } = this.props;\r\n return `/${\r\n this.isCustom()\r\n ? 'custom-service-request-history'\r\n : 'service-request-history'\r\n }/${match.params.partyId}/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getEditPath() {\r\n const { match } = this.props;\r\n return `/${\r\n this.isCustom() ? 'custom-service-request' : 'service-request'\r\n }/${match.params.partyId}/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getShowPath() {\r\n const { match } = this.props;\r\n return `/request-information/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getTransportationPath() {\r\n const { match } = this.props;\r\n return `/service-request/${match.params.partyId}/${match.params.serviceRequestId}/transportation`;\r\n }\r\n\r\n getChangeHistoryPath() {\r\n const { match } = this.props;\r\n return `/service-request/${match.params.partyId}/${match.params.serviceRequestId}/change-history`;\r\n }\r\n\r\n getDiscussionInitials() {\r\n const { t } = this.props;\r\n return t('SN');\r\n }\r\n\r\n renderNoResults() {\r\n const { t, footer } = this.props;\r\n return (\r\n
\r\n
\r\n {t('There are no change requests for this service.')}\r\n\r\n {this.isActionsEnabled() && (\r\n
\r\n }\r\n >\r\n {t('Add change request')}\r\n \r\n\r\n }\r\n >\r\n {t('Request for cancellation')}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n\r\n renderHeaderCenterActions = () => {\r\n return null;\r\n };\r\n\r\n onAddChangeRequest = () => {\r\n const {\r\n history,\r\n match: {\r\n params: { serviceRequestId, partyId }\r\n }\r\n } = this.props;\r\n\r\n history.push({\r\n pathname: `/${\r\n this.isCustom() ? 'custom-service-request' : 'service-request'\r\n }/${partyId}/${serviceRequestId}`,\r\n state: {\r\n showCreateChangeRequestDialog: true\r\n }\r\n });\r\n };\r\n\r\n onRequestForCancellation = () => {\r\n const {\r\n history,\r\n match: {\r\n params: { serviceRequestId, partyId }\r\n }\r\n } = this.props;\r\n\r\n history.push({\r\n pathname: `/${\r\n this.isCustom() ? 'custom-service-request' : 'service-request'\r\n }/${partyId}/${serviceRequestId}`,\r\n state: {\r\n showRequestCancellationDialog: true\r\n }\r\n });\r\n };\r\n\r\n getBackNavigationUrl = (navContext, history) => {\r\n const { match } = this.props;\r\n if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.Tickets) {\r\n return '/tickets';\r\n } else if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.AnnexOverview) {\r\n const withSearch =\r\n history && history.location && history.location.search\r\n ? history.location.search\r\n : '';\r\n return `/annex-overview${withSearch}`;\r\n } else if (\r\n navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.RequestedServices\r\n ) {\r\n return `/service-requests/${match.params.partyId}`;\r\n }\r\n\r\n return `/service-requests/${match.params.partyId}`;\r\n };\r\n\r\n getValues(values) {\r\n if (typeof values !== 'object') {\r\n return values;\r\n }\r\n\r\n return Object.keys(values).reduce((results, key) => {\r\n results[key] =\r\n results[key] || typeof results[key] === 'boolean' ? results[key] : '-';\r\n return results;\r\n }, values);\r\n }\r\n\r\n getDisplayValue(value, placeholder = '-') {\r\n return value && value !== '' ? value : placeholder;\r\n }\r\n\r\n renderTicketClosed(values, { additionalRequestTypeId }) {\r\n const { t } = this.props;\r\n\r\n if (!values) {\r\n return null;\r\n }\r\n\r\n if (values.accepted) {\r\n const isAcceptedAutomatically = !values.accepted.fullName;\r\n const message =\r\n additionalRequestTypeId === 0\r\n ? t(\r\n `Additional service request was ${\r\n !isAcceptedAutomatically\r\n ? 'accepted by the '\r\n : 'automatically confirmed'\r\n }`\r\n )\r\n : t(\r\n `Change request was ${\r\n !isAcceptedAutomatically\r\n ? 'accepted by the '\r\n : 'automatically confirmed'\r\n }`\r\n );\r\n return (\r\n <>\r\n
\r\n
\r\n

{t('Request confirmation')}

\r\n
\r\n
\r\n {message}{' '}\r\n {isAcceptedAutomatically\r\n ? ''\r\n : values.accepted.partyType === 'Host Nation'\r\n ? 'HN '\r\n : 'SN '}\r\n \r\n (\r\n {isAcceptedAutomatically\r\n ? ''\r\n : values.accepted.fullName + ', '}\r\n \r\n )\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n if (values.rejected) {\r\n const message =\r\n additionalRequestTypeId === 0\r\n ? t('Additional service request was rejected by the ')\r\n : t('Change request was rejected by the ');\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n

{t('Request rejection')}

\r\n
\r\n
\r\n {message}\r\n {values.rejected.partyType === 'Host Nation' ? 'HN ' : 'SN '}(\r\n \r\n {values.rejected.fullName},{' '}\r\n \r\n )\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n }\r\n\r\n renderChangeRequests() {\r\n const {\r\n tickets: { tickets },\r\n tickets: ticketInfo\r\n } = this.props;\r\n\r\n return tickets.map((ticket, index) => {\r\n const additionalInfo = {\r\n partyName: ticketInfo.partyName,\r\n createdByFullName: ticket.createdByFullName,\r\n creationDate: ticket.creationDate,\r\n additionalRequestTypeId: ticket.additionalRequestTypeId,\r\n creationComment: ticket.creationComment,\r\n ticketStatus: ticket.ticketStatus,\r\n createdByPartyType: ticket.createdByPartyType\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n {ticket.additionalRequestType} ({ticket.ticketNumber})\r\n {' '}\r\n \r\n \r\n
\r\n
\r\n {this.cancellationRequest(\r\n ticket.cancellationRequest,\r\n additionalInfo\r\n )}\r\n {this.renderChangeServiceRequestChanges(\r\n ticket.changeRequest,\r\n additionalInfo\r\n )}\r\n {this.renderNewServiceRequestChanges(\r\n ticket.newServiceRequest,\r\n additionalInfo\r\n )}\r\n {!ticket.cancellationRequest &&\r\n this.renderTicketClosed(ticket.ticketClosed, additionalInfo)}\r\n
\r\n
\r\n );\r\n });\r\n }\r\n\r\n cancellationRequest(values, info) {\r\n if (!values) {\r\n return null;\r\n }\r\n\r\n const { responseFromHn } = values;\r\n const { t } = this.props;\r\n\r\n const responseFromHnData = responseFromHn\r\n ? this.getValues(responseFromHn)\r\n : {};\r\n const message =\r\n info.ticketStatus === 'Rejected'\r\n ? t('Request for cancellation was rejected by the HN ')\r\n : t('Request for cancellation was confirmed by the HN ');\r\n\r\n return (\r\n
\r\n

{t('Cancellation request')}

\r\n
\r\n
\r\n {'Request for cancellation was created for the service by the '}\r\n {SHORT_NAMES[info.createdByPartyType]}{' '}\r\n \r\n ({info.createdByFullName},{' '}\r\n )\r\n \r\n
\r\n
\r\n\r\n
\r\n {t('Comment')}\r\n
{info.creationComment}
\r\n
\r\n {responseFromHn && (\r\n <>\r\n
\r\n

{t('Response from HN')}

\r\n
\r\n
\r\n {message}\r\n \r\n ({responseFromHnData.fullName},{' '}\r\n \r\n )\r\n \r\n
\r\n
\r\n {this.renderCancellationResponseFromHn(responseFromHnData)}\r\n \r\n )}\r\n
\r\n );\r\n }\r\n\r\n renderServiceRequestChanges(changes, action) {\r\n const { t, currentExercise } = this.props;\r\n\r\n const getRenderValue = (key, type = 'String') => {\r\n let renderValue = null;\r\n\r\n const value =\r\n changes.oldValues &&\r\n changes.oldValues[key] &&\r\n changes[key] !== changes.oldValues[key]\r\n ? changes.oldValues[key]\r\n : false;\r\n\r\n renderValue = !value && hasOldValue(key) ? '-' : value;\r\n\r\n if (type === 'Date' && value) {\r\n renderValue = format(value, DATE_FORMAT);\r\n }\r\n\r\n return renderValue;\r\n };\r\n\r\n const getOldValue = (key, type = 'String') => {\r\n const renderValue = getRenderValue(key, type);\r\n\r\n return renderValue ? (\r\n (was {renderValue})\r\n ) : null;\r\n };\r\n\r\n const getOldMoneyValue = key => {\r\n const renderValue = getRenderValue(key);\r\n\r\n return renderValue ? (\r\n \r\n (was {})\r\n \r\n ) : null;\r\n };\r\n\r\n const getOldAmountValue = key => {\r\n const renderValue = getRenderValue(key);\r\n\r\n return renderValue ? (\r\n \r\n (was {})\r\n \r\n ) : null;\r\n };\r\n\r\n const hasOldValue = key => {\r\n return changes.oldValues && changes[key] !== changes.oldValues[key];\r\n };\r\n\r\n const isResponsiblePersonSet = changes.createdByFullName !== '';\r\n const message =\r\n action === 'NEW'\r\n ? t(\r\n `New additional service request was created ${\r\n isResponsiblePersonSet ? 'by the ' : 'automatically'\r\n } `\r\n )\r\n : t('Change request was created for the service by the ');\r\n\r\n return (\r\n
\r\n

\r\n {action === 'NEW'\r\n ? t('Service request information')\r\n : t('Change request information')}\r\n

\r\n\r\n
\r\n
\r\n {message}\r\n {isResponsiblePersonSet &&\r\n SHORT_NAMES[changes.createdByPartyType]}{' '}\r\n \r\n ({isResponsiblePersonSet && changes.createdByFullName + ' '}\r\n )\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n {t('To Unit')}\r\n \r\n
\r\n {changes.toUnit} {getOldValue('toUnit')}\r\n
\r\n
\r\n
\r\n \r\n {t('Req. q-ty')}\r\n \r\n
\r\n {' '}\r\n {getOldAmountValue('requestedQuantity')}\r\n
\r\n
\r\n
\r\n \r\n {t('UoM')}\r\n \r\n
\r\n {changes.unitOfMeasure} {getOldValue('unitOfMeasure')}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {t('From date')}\r\n \r\n
\r\n {format(changes.fromDate, DATE_FORMAT)}{' '}\r\n {getOldValue('fromDate', 'Date')}\r\n
\r\n
\r\n
\r\n \r\n {t('To date')}\r\n \r\n
\r\n {format(changes.toDate, DATE_FORMAT)}{' '}\r\n {getOldValue('toDate', 'Date')}\r\n
\r\n
\r\n
\r\n \r\n  \r\n {getOldValue('totalDays')}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {t(this.isTransportation() ? 'Location from' : 'Location')}\r\n \r\n
\r\n {this.getDisplayValue(changes.locationFromName)}{' '}\r\n {getOldValue('locationFromName')}\r\n
\r\n
\r\n
\r\n \r\n {t(\r\n this.isTransportation()\r\n ? 'Location from comment'\r\n : 'Location comment'\r\n )}\r\n \r\n
\r\n {this.getDisplayValue(changes.locationFromComment)}{' '}\r\n {getOldValue('locationFromComment')}\r\n
\r\n
\r\n
\r\n\r\n {this.isTransportation() && (\r\n
\r\n
\r\n \r\n {t('Location to')}\r\n \r\n
\r\n {this.getDisplayValue(changes.locationToName)}{' '}\r\n {getOldValue('locationToName')}\r\n
\r\n
\r\n
\r\n \r\n {t('Location to comment')}\r\n \r\n
\r\n {this.getDisplayValue(changes.locationToComment)}{' '}\r\n {getOldValue('locationToComment')}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n {t('Comment ')}{' '}\r\n {action !== 'NEW' ? t('(why change is needed)') : ''}\r\n \r\n
{this.getDisplayValue(changes.creationComment)}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
{t('Total quantity')}
\r\n \r\n \r\n {' '}\r\n {getOldAmountValue('totalQuantity')}\r\n \r\n \r\n
\r\n
\r\n
{t('Est. total cost')}{` (${currentExercise.currency.name})`}
\r\n \r\n \r\n {' '}\r\n {getOldMoneyValue('estimatedTotalCost')}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n isTransportation() {\r\n return this.props.tickets.isTransportation;\r\n }\r\n\r\n renderNewServiceRequestChanges(values, info) {\r\n if (!values) {\r\n return null;\r\n }\r\n\r\n const { newValues, responseFromHn } = values;\r\n\r\n const {\r\n createdByFullName,\r\n creationComment,\r\n creationDate,\r\n partyName,\r\n createdByPartyType\r\n } = info;\r\n\r\n const newValuesData = this.getValues(newValues);\r\n\r\n return (\r\n <>\r\n {this.renderServiceRequestChanges(\r\n {\r\n ...newValuesData,\r\n createdByFullName,\r\n creationDate,\r\n partyName,\r\n creationComment,\r\n createdByPartyType\r\n },\r\n 'NEW'\r\n )}\r\n {this.renderResponseFromHn(responseFromHn, 'NEW')}\r\n \r\n );\r\n }\r\n\r\n renderCancellationResponseFromHn(values) {\r\n const { t, currentExercise } = this.props;\r\n\r\n if (!values.total || !values.grossAmount) {\r\n return (\r\n
\r\n {t('Comment')}\r\n
{values.comment}
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n

{t('Cancellation Costs')}

\r\n
\r\n
\r\n {t('Q-ty')}\r\n
\r\n {!isNaN(values.quantity) ? (\r\n \r\n ) : (\r\n 0\r\n )}\r\n
\r\n
\r\n
\r\n {t('Currency')}\r\n
\r\n {currentExercise.currency.name}\r\n
\r\n
\r\n
\r\n {t('Price')}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {t('Total')}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {t('Gross amount')}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {t('Comment')}\r\n
{values.comment}
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n renderResponseFromHn({ confirmed, rejected }, action) {\r\n const { t, currentExercise } = this.props;\r\n\r\n if (!confirmed && !rejected) {\r\n return null;\r\n }\r\n\r\n const values = confirmed\r\n ? this.getValues(confirmed)\r\n : this.getValues(rejected);\r\n\r\n if (rejected) {\r\n const message =\r\n action === 'NEW'\r\n ? t('Additional service request was rejected by the HN ')\r\n : t('Change request was rejected by the HN ');\r\n return (\r\n <>\r\n
\r\n
\r\n

{t('Response from HN')}

\r\n
\r\n {message}\r\n \r\n ({values.fullName},\r\n )\r\n \r\n
\r\n
\r\n {t('Comment')}\r\n
{values.comment}
\r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n

{t('Response from HN')}

\r\n
\r\n
\r\n {t('Q-ty')}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {t('Currency')}\r\n
\r\n {currentExercise.currency.name}\r\n
\r\n
\r\n
\r\n {t('Price')}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {t('Total')}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {t('Gross amount')}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {t('Comment')}\r\n
{values.comment}
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n renderLastConfirmedValues(values) {\r\n const { t, currentExercise } = this.props;\r\n\r\n if (!values) {\r\n return null;\r\n }\r\n\r\n const data = this.getValues(values);\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n

{t('Last confirmed values')}

\r\n
\r\n
\r\n {t('Q-ty')}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {t('Currency')}\r\n
\r\n {currentExercise.currency.name}\r\n
\r\n
\r\n
\r\n {t('Price')}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {t('Total')}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {t('Gross amount')}\r\n
\r\n \r\n
\r\n
\r\n
\r\n {t('Comment')}\r\n
{data.comment}
\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n renderChangeServiceRequestChanges(values, info) {\r\n if (!values) {\r\n return null;\r\n }\r\n\r\n const {\r\n newValues,\r\n responseFromHn,\r\n lastConfirmedValues,\r\n oldValues\r\n } = values;\r\n\r\n const {\r\n createdByFullName,\r\n creationDate,\r\n creationComment,\r\n partyName,\r\n createdByPartyType\r\n } = info;\r\n\r\n return (\r\n <>\r\n {this.renderServiceRequestChanges(\r\n {\r\n ...newValues,\r\n createdByFullName,\r\n creationDate,\r\n partyName,\r\n oldValues,\r\n creationComment,\r\n createdByPartyType\r\n },\r\n 'CHANGE'\r\n )}\r\n {this.renderLastConfirmedValues(lastConfirmedValues)}\r\n {this.renderResponseFromHn(responseFromHn, 'CHANGE')}\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const {\r\n t,\r\n tickets: { tickets },\r\n tickets: info,\r\n isLoading,\r\n match: { params },\r\n footer\r\n } = this.props;\r\n return (\r\n
\r\n {isLoading && }\r\n {!isLoading && (\r\n
\r\n \r\n {nav => (\r\n <>\r\n {this.props.withEscNavigationCallback(\r\n this.navigateBack(\r\n nav.serviceRequestNavigation,\r\n nav.previousPageHistory\r\n )\r\n )}\r\n \r\n \r\n )}\r\n \r\n {this.renderHeaderCenterActions()}\r\n \r\n
\r\n )}\r\n\r\n {!isLoading && tickets.length === 0 && this.renderNoResults()}\r\n {!isLoading && tickets.length > 0 && this.renderChangeRequests()}\r\n\r\n {!isLoading && this.isActionsEnabled() && (\r\n \r\n
\r\n
\r\n }\r\n disabled={footer && footer.isChangeDisabled}\r\n onClick={this.onAddChangeRequest}\r\n >\r\n {t('Add change request')}\r\n \r\n }\r\n >\r\n {t('Request for cancellation')}\r\n \r\n
\r\n \r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nChangeHistory.propTypes = {\r\n isLoading: PropTypes.bool,\r\n t: PropTypes.func,\r\n tickets: PropTypes.object,\r\n match: PropTypes.object,\r\n history: PropTypes.object,\r\n getTickets: PropTypes.func,\r\n clearTickets: PropTypes.func,\r\n getFooter: PropTypes.func,\r\n clearFooter: PropTypes.func,\r\n footer: PropTypes.object,\r\n withEscNavigationCallback: PropTypes.func,\r\n currentExercise: PropTypes.object\r\n};\r\n\r\nexport default ChangeHistory;\r\n","import { connect } from 'react-redux';\r\nimport { withTranslation } from 'react-i18next';\r\nimport { withRouter } from 'react-router-dom';\r\nimport WithEscNavigation from '@hobs/hocs/WithEscNavigation';\r\nimport { createLoadingSelector } from '@hobs/utils/loading';\r\nimport _ChangeHistory from '@hobs/containers/ChangeHistory';\r\nimport { getTickets, clearTickets } from '@hobs/actions/tickets';\r\nimport { SERVICE_REQUEST_NAVIGATION_ORIGIN } from '@hobs/utils/constants';\r\n\r\nimport { getFooter, clearFooter } from '@hobs/actions/serviceRequests';\r\n\r\nclass ChangeHistory extends _ChangeHistory {\r\n getBackNavigationUrl = navContext => {\r\n if (navContext === SERVICE_REQUEST_NAVIGATION_ORIGIN.Tickets) {\r\n return '/tickets';\r\n } else {\r\n return '/requested-services';\r\n }\r\n };\r\n\r\n getHistoryPath() {\r\n const { match } = this.props;\r\n return `/${\r\n this.isCustom()\r\n ? 'custom-service-request-history'\r\n : 'service-request-history'\r\n }/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getEditPath() {\r\n const { match } = this.props;\r\n return `/${\r\n this.isCustom() ? 'custom-service-request' : 'service-request'\r\n }/${match.params.serviceRequestId}`;\r\n }\r\n\r\n getChangeHistoryPath() {\r\n const { match } = this.props;\r\n return `/service-request/${match.params.serviceRequestId}/change-history`;\r\n }\r\n\r\n getShowPath() {\r\n return null;\r\n }\r\n\r\n getTransportationPath() {\r\n const { match } = this.props;\r\n return `/service-request/${match.params.serviceRequestId}/transportation`;\r\n }\r\n\r\n getDiscussionInitials() {\r\n const { t } = this.props;\r\n return t('HN');\r\n }\r\n\r\n onAddChangeRequest = () => {\r\n const {\r\n history,\r\n match: {\r\n params: { serviceRequestId }\r\n }\r\n } = this.props;\r\n\r\n history.push({\r\n pathname: `/${\r\n this.isCustom() ? 'custom-service-request' : 'service-request'\r\n }/${serviceRequestId}`,\r\n state: {\r\n showCreateChangeRequestDialog: true\r\n }\r\n });\r\n };\r\n\r\n onRequestForCancellation = () => {\r\n const {\r\n history,\r\n match: {\r\n params: { serviceRequestId }\r\n }\r\n } = this.props;\r\n\r\n history.push({\r\n pathname: `/${\r\n this.isCustom() ? 'custom-service-request' : 'service-request'\r\n }/${serviceRequestId}`,\r\n state: {\r\n showRequestCancellationDialog: true\r\n }\r\n });\r\n };\r\n}\r\n\r\nconst oDataLoading = createLoadingSelector(['Tickets/Get']);\r\n\r\nconst mapStateToProps = state => ({\r\n isLoading: oDataLoading(state),\r\n tickets: state.tickets.tickets,\r\n footer: state.serviceRequests.footer,\r\n currentExercise: state.exercise.current\r\n});\r\n\r\nconst mapDispatchToProps = {\r\n getTickets,\r\n clearTickets,\r\n getFooter,\r\n clearFooter\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(withTranslation()(withRouter(WithEscNavigation(ChangeHistory))));\r\n","import React from 'react';\r\nimport { Route, BrowserRouter, Switch } from 'react-router-dom';\r\nimport PrivateRoute from '@hobs/auth/components/PrivateRoute';\r\n\r\nimport NotFound from '@hobs/containers/NotFound';\r\nimport PrivateLayout from '../components/PrivateLayout';\r\nimport Home from '../containers/Home';\r\nimport Login from '../containers/Login';\r\nimport Logout from '../containers/Logout';\r\nimport Reset from '../containers/Reset';\r\nimport RequestedServices from '../containers/RequestedServices';\r\nimport ServiceRequest from '../containers/ServiceRequest';\r\nimport Catalog from '../containers/Catalog';\r\nimport StatementOfRequirements from '../containers/StatementOfRequirements/StatementOfRequirements';\r\nimport ServiceRequestCustom from '../containers/ServiceRequestCustom';\r\nimport ServiceRequestEdit from '../containers/ServiceRequestEdit';\r\nimport Party from '../containers/Party';\r\nimport TermsAndConditions from '../containers/TermsAndConditions';\r\nimport TermsAndConditionsView from '../containers/TermsAndConditionsView';\r\nimport Transportation from '../containers/Transportation';\r\nimport {\r\n ServiceRequestEditAuditLogs,\r\n ServiceRequestCustomAuditLogs\r\n} from '../containers/ServiceRequestAuditLog';\r\nimport ApprovalSummary from '../containers/ApprovalSummary';\r\nimport MealPlanner from '../containers/MealPlanner';\r\nimport Tickets from '../containers/Tickets';\r\nimport ChangeHistory from '../containers/ChangeHistory';\r\n\r\nconst Routes = () => {\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\nexport default Routes;\r\n","export { default } from './Routes';\r\n","export const getConfig = async () => {\r\n return await fetch('/config.json')\r\n .then(response => response.json())\r\n .catch(() => {\r\n return {};\r\n });\r\n};\r\n","export * from './config';\r\n","import React, { PureComponent } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { H1 } from '@hobs/components/Headings';\r\nimport { RaisedButton } from '@hobs/components/Buttons';\r\nimport './ErrorBoundaries.scss';\r\n\r\nclass ErrorBoundaries extends PureComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = { hasError: false, error: null, info: null };\r\n }\r\n\r\n componentDidCatch(error, info) {\r\n this.setState({ hasError: true, error, info });\r\n }\r\n\r\n goToBeginning = () => {\r\n window.location.href = '/';\r\n };\r\n\r\n render() {\r\n const { hasError, error } = this.state;\r\n\r\n if (hasError) {\r\n return (\r\n
\r\n
\r\n

Oh no, something went wrong! 😢

\r\n \r\n \r\n Back to Home\r\n \r\n
\r\n
\r\n );\r\n } else {\r\n return this.props.children;\r\n }\r\n }\r\n}\r\n\r\nErrorBoundaries.propTypes = {\r\n children: PropTypes.any\r\n};\r\n\r\nexport default ErrorBoundaries;\r\n","export { default } from './ErrorBoundaries';\r\n","export const list = {\r\n REQUEST: 'Exercises/List/Request',\r\n SUCCESS: 'Exercises/List/Success',\r\n FAILURE: 'Exercises/List/Failure'\r\n};\r\n\r\nexport const homePage = {\r\n REQUEST: 'Exercises/HomePage/Request',\r\n SUCCESS: 'Exercises/HomePage/Success',\r\n FAILURE: 'Exercises/HomePage/Failure'\r\n};\r\n\r\nexport const terms = {\r\n REQUEST: 'Exercises/Terms/Request',\r\n SUCCESS: 'Exercises/Terms/Success',\r\n FAILURE: 'Exercises/Terms/Failure'\r\n};\r\n\r\nexport const termsAccept = {\r\n REQUEST: 'Exercises/TermsAccept/Request',\r\n SUCCESS: 'Exercises/TermsAccept/Success',\r\n FAILURE: 'Exercises/TermsAccept/Failure'\r\n};\r\n\r\nexport const changeCurrentExerciseId = {\r\n REQUEST: 'Exercises/changeCurrentExerciseId/Request',\r\n SUCCESS: 'Exercises/changeCurrentExerciseId/Success',\r\n FAILURE: 'Exercises/changeCurrentExerciseId/Failure'\r\n};\r\n\r\nexport const exerciseStaticData = {\r\n REQUEST: 'Exercises/ForSubmit/Request',\r\n SUCCESS: 'Exercises/ForSubmit/Success',\r\n FAILURE: 'Exercises/ForSubmit/Failure'\r\n};\r\n\r\nexport const exercisePost = {\r\n REQUEST: 'Exercises/Create/Request',\r\n SUCCESS: 'Exercises/Create/Success',\r\n FAILURE: 'Exercises/Create/Failure'\r\n};\r\n\r\nexport const exercisePut = {\r\n REQUEST: 'Exercises/Update/Request',\r\n SUCCESS: 'Exercises/Update/Success',\r\n FAILURE: 'Exercises/Update/Failure'\r\n};\r\n\r\nexport const exerciseGet = {\r\n REQUEST: 'Exercises/Get/Request',\r\n SUCCESS: 'Exercises/Get/Success',\r\n FAILURE: 'Exercises/Get/Failure',\r\n RESET: 'Exercises/Get/Reset'\r\n};\r\n\r\nexport const CURRENT = {\r\n REQUEST: 'Exercises/Current/Request',\r\n SUCCESS: 'Exercises/Current/Success',\r\n FAILURE: 'Exercises/Current/Failure'\r\n};\r\n\r\nexport const remainingDays = {\r\n REQUEST: 'RemainingDays/Get/Request',\r\n SUCCESS: 'RemainingDays/Get/Success',\r\n FAILURE: 'RemainingDays/Get/Failure'\r\n};\r\n","export const FORSUBMIT = {\r\n REQUEST: 'Tickets/ForSubmit/Request',\r\n SUCCESS: 'Tickets/ForSubmit/Success',\r\n FAILURE: 'Tickets/ForSubmit/Failure'\r\n};\r\n\r\nexport const GET = {\r\n REQUEST: 'Tickets/Get/Request',\r\n SUCCESS: 'Tickets/Get/Success',\r\n FAILURE: 'Tickets/Get/Failure'\r\n};\r\n\r\nexport const UPDATE = {\r\n REQUEST: 'Tickets/Update/Request',\r\n SUCCESS: 'Tickets/Update/Success',\r\n FAILURE: 'Tickets/Update/Failure'\r\n};\r\n\r\nexport const CLEAR = {\r\n SUCCESS: 'Tickets/Clear/Success'\r\n};\r\n\r\nexport const CONFIRM = {\r\n REQUEST: 'Tickets/Confirm/Request',\r\n SUCCESS: 'Tickets/Confirm/Success',\r\n FAILURE: 'Tickets/Confirm/Failure'\r\n};\r\n\r\nexport const CONFIRM_REJECT = {\r\n REQUEST: 'Tickets/ConfirmReject/Request',\r\n SUCCESS: 'Tickets/ConfirmReject/Success',\r\n FAILURE: 'Tickets/ConfirmReject/Failure'\r\n};\r\n\r\nexport const ACCEPT_RESPONSE = {\r\n REQUEST: 'Tickets/AcceptResponse/Request',\r\n SUCCESS: 'Tickets/AcceptResponse/Success',\r\n FAILURE: 'Tickets/AcceptResponse/Failure'\r\n};\r\n\r\nexport const REJECT_RESPONSE = {\r\n REQUEST: 'Tickets/RejectResponse/Request',\r\n SUCCESS: 'Tickets/RejectResponse/Success',\r\n FAILURE: 'Tickets/RejectResponse/Failure'\r\n};\r\n\r\nexport const CREATE_CHANGE_REQUEST = {\r\n REQUEST: 'Tickets/CreateChangeRequest/Request',\r\n SUCCESS: 'Tickets/CreateChangeRequest/Success',\r\n FAILURE: 'Tickets/CreateChangeRequest/Failure'\r\n};\r\n\r\nexport const CONFIRM_CHANGE = {\r\n REQUEST: 'Tickets/ConfirmChangeRequest/Request',\r\n SUCCESS: 'Tickets/ConfirmChangeRequest/Success',\r\n FAILURE: 'Tickets/ConfirmChangeRequest/Failure'\r\n};\r\n\r\nexport const REJECT_CHANGE = {\r\n REQUEST: 'Tickets/RejectChangeRequest/Request',\r\n SUCCESS: 'Tickets/RejectChangeRequest/Success',\r\n FAILURE: 'Tickets/RejectChangeRequest/Failure'\r\n};\r\n\r\nexport const ACCEPT_CHANGE_RESPONSE = {\r\n REQUEST: 'Tickets/AcceptChangeResponse/Request',\r\n SUCCESS: 'Tickets/AcceptChangeResponse/Success',\r\n FAILURE: 'Tickets/AcceptChangeResponse/Failure'\r\n};\r\n\r\nexport const REJECT_CHANGE_RESPONSE = {\r\n REQUEST: 'Tickets/RejectChangeResponse/Request',\r\n SUCCESS: 'Tickets/RejectChangeResponse/Success',\r\n FAILURE: 'Tickets/RejectChangeResponse/Failure'\r\n};\r\n\r\nexport const CALCULATE_BY_DAYS = {\r\n REQUEST: 'Tickets/CalculateByDays/Request',\r\n SUCCESS: 'Tickets/CalculateByDays/Success',\r\n FAILURE: 'Tickets/CalculateByDays/Failure'\r\n};\r\n\r\nexport const CLEAR_COSTS = {\r\n REQUEST: 'Tickets/ClearCosts/Request',\r\n SUCCESS: 'Tickets/ClearCosts/Success',\r\n FAILURE: 'Tickets/ClearCosts/Failure'\r\n};\r\n\r\nexport const CREATE_CANCELLATION_REQUEST = {\r\n REQUEST: 'Tickets/CreateCancellationRequest/Request',\r\n SUCCESS: 'Tickets/CreateCancellationRequest/Success',\r\n FAILURE: 'Tickets/CreateCancellationRequest/Failure'\r\n};\r\n\r\nexport const CONFIRM_CANCELLATION = {\r\n REQUEST: 'Tickets/ConfirmCancellation/Request',\r\n SUCCESS: 'Tickets/ConfirmCancellation/Success',\r\n FAILURE: 'Tickets/ConfirmCancellation/Failure'\r\n};\r\n\r\nexport const REJECT_CANCELLATION = {\r\n REQUEST: 'Tickets/RejectCancellation/Request',\r\n SUCCESS: 'Tickets/RejectCancellation/Success',\r\n FAILURE: 'Tickets/RejectCancellation/Failure'\r\n};\r\n\r\nexport const CONFIRM_CANCELLATION_COSTS = {\r\n REQUEST: '',\r\n SUCCESS: '',\r\n FAILURE: ''\r\n};\r\n","export const GETANNEXOVERVIEW = {\r\n REQUEST: 'GridSelections/GetAnnexOverview/Request',\r\n SUCCESS: 'GridSelections/GetAnnexOverview/Success',\r\n FAILURE: 'GridSelections/GetAnnexOverview/Failure'\r\n};\r\nexport const GETREQUESTEDSERVICES = {\r\n REQUEST: 'GridSelections/GetRequestedServices/Request',\r\n SUCCESS: 'GridSelections/GetRequestedServices/Success',\r\n FAILURE: 'GridSelections/GetRequestedServices/Failure'\r\n};\r\nexport const GETPARTYGRID = {\r\n REQUEST: 'GridSelections/GetPartyGrid/Request',\r\n SUCCESS: 'GridSelections/GetPartyGrid/Success',\r\n FAILURE: 'GridSelections/GetPartyGrid/Failure'\r\n};\r\nexport const GETUSERGRID = {\r\n REQUEST: 'GridSelections/GetUserGrid/Request',\r\n SUCCESS: 'GridSelections/GetUserGrid/Success',\r\n FAILURE: 'GridSelections/GetUserGrid/Failure'\r\n};\r\nexport const GETEXERCISEGRID = {\r\n REQUEST: 'GridSelections/GetExerciseGrid/Request',\r\n SUCCESS: 'GridSelections/GetExerciseGrid/Success',\r\n FAILURE: 'GridSelections/GetExerciseGrid/Failure'\r\n};\r\nexport const GETSORGRID = {\r\n REQUEST: 'GridSelections/GetSorGrid/Request',\r\n SUCCESS: 'GridSelections/GetSorGrid/Success',\r\n FAILURE: 'GridSelections/GetSorGrid/Failure'\r\n};\r\nexport const GETAUDITLOGGRID = {\r\n REQUEST: 'GridSelections/GetAuditLogGrid/Request',\r\n SUCCESS: 'GridSelections/GetAuditLogGrid/Success',\r\n FAILURE: 'GridSelections/GetAuditLogGrid/Failure'\r\n};\r\nexport const GET_CATALOG_GRID = {\r\n REQUEST: 'GridSelections/GetCatalogGrid/Request',\r\n SUCCESS: 'GridSelections/GetCatalogGrid/Success',\r\n FAILURE: 'GridSelections/GetCatalogGrid/Failure'\r\n};\r\nexport const GET_ORDER_GRID = {\r\n REQUEST: 'GridSelections/GetOrderGrid/Request',\r\n SUCCESS: 'GridSelections/GetOrderGrid/Success',\r\n FAILURE: 'GridSelections/GetOrderGrid/Failure'\r\n};\r\nexport const GET_GROUP_GRID = {\r\n REQUEST: 'GridSelections/GetGroupGrid/Request',\r\n SUCCESS: 'GridSelections/GetGroupGrid/Success',\r\n FAILURE: 'GridSelections/GetGroupGrid/Failure'\r\n};\r\nexport const GET_TICKET_GRID = {\r\n REQUEST: 'GridSelections/GetTicketGrid/Request',\r\n SUCCESS: 'GridSelections/GetTicketGrid/Success',\r\n FAILURE: 'GridSelections/GetTicketGrid/Failure'\r\n};\r\nexport const GET_ACTIVITY_GRID = {\r\n REQUEST: 'GridSelections/GetActivityGrid/Request',\r\n SUCCESS: 'GridSelections/GetActivityGrid/Success',\r\n FAILURE: 'GridSelections/GetActivityGrid/Failure'\r\n};\r\n\r\n\r\n","export const FORSUBMIT = {\r\n REQUEST: 'Units/ForSubmit/Request',\r\n SUCCESS: 'Units/ForSubmit/Success',\r\n FAILURE: 'Units/ForSubmit/Failure'\r\n};\r\n\r\nexport const GET = {\r\n REQUEST: 'Units/Get/Request',\r\n SUCCESS: 'Units/Get/Success',\r\n FAILURE: 'Units/Get/Failure'\r\n};\r\n\r\nexport const CREATE = {\r\n REQUEST: 'Units/Create/Request',\r\n SUCCESS: 'Units/Create/Success',\r\n FAILURE: 'Units/Create/Failure'\r\n};\r\n\r\nexport const UPDATE = {\r\n REQUEST: 'Units/Update/Request',\r\n SUCCESS: 'Units/Update/Success',\r\n FAILURE: 'Units/Update/Failure'\r\n};\r\n\r\nexport const CLEAR = {\r\n REQUEST: 'Units/Clear/Request',\r\n SUCCESS: 'Units/Clear/Success',\r\n FAILURE: 'Units/Clear/Failure'\r\n};\r\n\r\nexport const DELETE = {\r\n REQUEST: 'Units/Delete/Request',\r\n SUCCESS: 'Units/Delete/Success',\r\n FAILURE: 'Units/Delete/Failure'\r\n};\r\n","export const list = {\r\n REQUEST: 'Activity/List/Request',\r\n SUCCESS: 'Activity/List/Success',\r\n FAILURE: 'Activity/List/Failure'\r\n};\r\n\r\nexport const GET = {\r\n REQUEST: 'Activity/GET/Request',\r\n SUCCESS: 'Activity/GET/Success',\r\n FAILURE: 'Activity/GET/Failure'\r\n};\r\n\r\nexport const CREATE = {\r\n REQUEST: 'Activity/CREATE/Request',\r\n SUCCESS: 'Activity/CREATE/Success',\r\n FAILURE: 'Activity/CREATE/Failure'\r\n};\r\n\r\nexport const UPDATE = {\r\n REQUEST: 'Activity/UPDATE/Request',\r\n SUCCESS: 'Activity/UPDATE/Success',\r\n FAILURE: 'Activity/UPDATE/Failure'\r\n};\r\n\r\nexport const DELETE = {\r\n REQUEST: 'Activity/DELETE/Request',\r\n SUCCESS: 'Activity/DELETE/Success',\r\n FAILURE: 'Activity/DELETE/Failure'\r\n};\r\n\r\nexport const CLEAR = {\r\n SUCCESS: 'Activity/CLEAR/Success'\r\n};\r\n","if (!Element.prototype.matches) {\r\n Element.prototype.matches =\r\n Element.prototype.msMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector;\r\n}\r\n\r\nif (!Element.prototype.closest) {\r\n Element.prototype.closest = function(s) {\r\n var el = this;\r\n\r\n do {\r\n if (el.matches(s)) return el;\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null && el.nodeType === 1);\r\n return null;\r\n };\r\n}\r\n","// from:https://github.com/jserz/js_piece/blob/master/DOM/ChildNode/remove()/remove().md\r\n(function(arr) {\r\n arr.forEach(function(item) {\r\n if (item.hasOwnProperty('remove')) {\r\n return;\r\n }\r\n Object.defineProperty(item, 'remove', {\r\n configurable: true,\r\n enumerable: true,\r\n writable: true,\r\n value: function remove() {\r\n this.parentNode.removeChild(this);\r\n }\r\n });\r\n });\r\n})([Element.prototype, CharacterData.prototype, DocumentType.prototype]);\r\n","export const constants = {\r\n LOGIN_REQUEST: 'USERS_LOGIN_REQUEST',\r\n LOGIN_UPDATE: 'USERS_LOGIN_UPDATE',\r\n LOGIN_SUCCESS: 'USERS_LOGIN_SUCCESS',\r\n LOGIN_FAILURE: 'USERS_LOGIN_FAILURE',\r\n LOGOUT: 'USERS_LOGOUT',\r\n RESET_REQUEST: 'USER_RESET_REQUEST',\r\n RESET_SUCCESS: 'USER_RESET_SUCCESS',\r\n RESET_FAILUTER: 'USER_RESET_FAILURE'\r\n};\r\n","export const list = {\r\n REQUEST: 'Annex/List/Request',\r\n SUCCESS: 'Annex/List/Success',\r\n FAILURE: 'Annex/List/Failure'\r\n};\r\n\r\nexport const tree = {\r\n REQUEST: 'Annex/Tree/Request',\r\n SUCCESS: 'Annex/Tree/Success',\r\n FAILURE: 'Annex/Tree/Failure'\r\n};\r\n\r\nexport const GET = {\r\n REQUEST: 'Annex/GET/Request',\r\n SUCCESS: 'Annex/GET/Success',\r\n FAILURE: 'Annex/GET/Failure'\r\n};\r\n\r\nexport const CREATE = {\r\n REQUEST: 'Annex/CREATE/Request',\r\n SUCCESS: 'Annex/CREATE/Success',\r\n FAILURE: 'Annex/CREATE/Failure'\r\n};\r\n\r\nexport const UPDATE = {\r\n REQUEST: 'Annex/UPDATE/Request',\r\n SUCCESS: 'Annex/UPDATE/Success',\r\n FAILURE: 'Annex/UPDATE/Failure'\r\n};\r\n\r\nexport const DELETE = {\r\n REQUEST: 'Annex/DELETE/Request',\r\n SUCCESS: 'Annex/DELETE/Success',\r\n FAILURE: 'Annex/DELETE/Failure'\r\n};\r\n\r\nexport const CLEAR = {\r\n SUCCESS: 'Annex/CLEAR/Success'\r\n};\r\n","export const GET = {\r\n REQUEST: 'MealPlanner/GET/Request',\r\n SUCCESS: 'MealPlanner/GET/Success',\r\n FAILURE: 'MealPlanner/GET/Failure'\r\n};\r\nexport const FOR_SUBMIT = {\r\n REQUEST: 'MealPlanner/FOR_SUBMIT/Request',\r\n SUCCESS: 'MealPlanner/FOR_SUBMIT/Success',\r\n FAILURE: 'MealPlanner/FOR_SUBMIT/Failure'\r\n};\r\nexport const CLEAR = {\r\n SUCCESS: 'MealPlanner/CLEAR/Success'\r\n};\r\nexport const UPDATE = {\r\n REQUEST: 'MealPlanner/UPDATE/Request',\r\n SUCCESS: 'MealPlanner/UPDATE/Success',\r\n FAILURE: 'MealPlanner/UPDATE/Failure'\r\n};\r\nexport const UPDATE_KITCHEN_FOR_SUBMIT = {\r\n REQUEST: 'MealPlanner/UPDATE_KITCHEN_FOR_SUBMIT/Request',\r\n SUCCESS: 'MealPlanner/UPDATE_KITCHEN_FOR_SUBMIT/Success',\r\n FAILURE: 'MealPlanner/UPDATE_KITCHEN_FOR_SUBMIT/Failure'\r\n};\r\nexport const UPDATE_KITCHEN = {\r\n REQUEST: 'MealPlanner/UPDATE_KITCHEN/Request',\r\n SUCCESS: 'MealPlanner/UPDATE_KITCHEN/Success',\r\n FAILURE: 'MealPlanner/UPDATE_KITCHEN/Failure'\r\n};\r\nexport const EXPORT_MEAL_PLANS = {\r\n REQUEST: 'MealPlanner/ExportMealPlans/Request',\r\n SUCCESS: 'MealPlanner/ExportMealPlans/Success',\r\n FAILURE: 'MealPlanner/ExportMealPlans/Failure'\r\n};\r\nexport const QUERY_MEAL_PLANNER_LOCATIONS = {\r\n REQUEST: 'Locations/QueryMealPlannerLocations/Request',\r\n SUCCESS: 'Locations/QueryMealPlannerLocations/Success',\r\n FAILURE: 'Locations/QueryMealPlannerLocations/Failure'\r\n};\r\n","export const GET = {\r\n REQUEST: 'Parties/Get/Request',\r\n SUCCESS: 'Parties/Get/Success',\r\n FAILURE: 'Parties/Get/Failure'\r\n};\r\n\r\nexport const FORSUBMIT = {\r\n REQUEST: 'Parties/ForSubmit/Request',\r\n SUCCESS: 'Parties/ForSubmit/Success',\r\n FAILURE: 'Parties/ForSubmit/Failure'\r\n};\r\n\r\nexport const UNITS = {\r\n REQUEST: 'Parties/Units/Request',\r\n SUCCESS: 'Parties/Units/Success',\r\n FAILURE: 'Parties/Units/Failure'\r\n};\r\n\r\nexport const UNITS_CURRENT = {\r\n REQUEST: 'Parties/Units/Current/Request',\r\n SUCCESS: 'Parties/Units/Current/Success',\r\n FAILURE: 'Parties/Units/Current/Failure'\r\n};\r\n\r\nexport const CREATE = {\r\n REQUEST: 'Parties/Create/Request',\r\n SUCCESS: 'Parties/Create/Success',\r\n FAILURE: 'Parties/Create/Failure'\r\n};\r\n\r\nexport const UPDATE = {\r\n REQUEST: 'Parties/Update/Request',\r\n SUCCESS: 'Parties/Update/Success',\r\n FAILURE: 'Parties/Update/Failure'\r\n};\r\n\r\nexport const DELETE = {\r\n REQUEST: 'Parties/Delete/Request',\r\n SUCCESS: 'Parties/Delete/Success',\r\n FAILURE: 'Parties/Delete/Failure'\r\n};\r\n\r\nexport const CURRENT = {\r\n REQUEST: 'Parties/Current/Request',\r\n SUCCESS: 'Parties/Current/Success',\r\n FAILURE: 'Parties/Current/Failure'\r\n};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"SorFinance_wrapper__2G87k\",\"top-wrapper\":\"SorFinance_top-wrapper__1vf3a\",\"right\":\"SorFinance_right__3ufrC\",\"middle-wrapper\":\"SorFinance_middle-wrapper__3Ze6g\",\"input-group-wrapper\":\"SorFinance_input-group-wrapper__3uiER\",\"input-group\":\"SorFinance_input-group__2IJQK\",\"uploads-group\":\"SorFinance_uploads-group__30jP8\",\"input-group-title\":\"SorFinance_input-group-title__KTVjh\",\"bottom-wrapper\":\"SorFinance_bottom-wrapper__3bXcU\",\"divider\":\"SorFinance_divider__29heV\"};","export const UPLOAD = {\r\n REQUEST: 'Locations/Upload/Request',\r\n SUCCESS: 'Locations/Upload/Success',\r\n FAILURE: 'Locations/Upload/Failure'\r\n};\r\n\r\nexport const list = {\r\n REQUEST: 'Locations/List/Request',\r\n SUCCESS: 'Locations/List/Success',\r\n FAILURE: 'Locations/List/Failure'\r\n};\r\n\r\nexport const QUERY = {\r\n REQUEST: 'Locations/Query/Request',\r\n SUCCESS: 'Locations/Query/Success',\r\n FAILURE: 'Locations/Query/Failure'\r\n};\r\n\r\nexport const GET = {\r\n REQUEST: 'Locations/Get/Request',\r\n SUCCESS: 'Locations/Get/Success',\r\n FAILURE: 'Locations/Get/Failure'\r\n}\r\n\r\nexport const EXPORT = {\r\n REQUEST: 'Locations/ExportExcel/Request',\r\n SUCCESS: 'Locations/ExportExcel/Success',\r\n FAILURE: 'Locations/ExportExcel/Failure'\r\n};;\r\n","export const GET = {\r\n REQUEST: 'ServiceRequests/GetDiscussion/Request',\r\n SUCCESS: 'ServiceRequests/GetDiscussion/Success',\r\n FAILURE: 'ServiceRequests/GetDiscussion/Failure',\r\n RESET: 'ServiceRequests/GetDiscussion/Clear'\r\n};\r\nexport const MARK_UNREAD = {\r\n REQUEST: 'ServiceRequests/MarkDiscussionUnread/Request',\r\n SUCCESS: 'ServiceRequests/MarkDiscussionUnread/Success',\r\n FAILURE: 'ServiceRequests/MarkDiscussionUnread/Failure'\r\n};\r\nexport const CREATE = {\r\n REQUEST: 'ServiceRequests/SendDiscussionMessage/Request',\r\n SUCCESS: 'ServiceRequests/SendDiscussionMessage/Success',\r\n FAILURE: 'ServiceRequests/SendDiscussionMessage/Failure'\r\n};\r\n","export const CLEAR_COSTS = {\r\n REQUEST: 'CustomServiceRequests/ClearCosts/Request',\r\n SUCCESS: 'CustomServiceRequests/ClearCosts/Success',\r\n FAILURE: 'CustomServiceRequests/ClearCosts/Failure'\r\n};\r\n\r\nexport const FORSUBMIT = {\r\n REQUEST: 'CustomServiceRequests/ForSubmit/Request',\r\n SUCCESS: 'CustomServiceRequests/ForSubmit/Success',\r\n FAILURE: 'CustomServiceRequests/ForSubmit/Failure'\r\n};\r\n\r\nexport const CREATE = {\r\n REQUEST: 'CustomServiceRequests/Create/Request',\r\n SUCCESS: 'CustomServiceRequests/Create/Success',\r\n FAILURE: 'CustomServiceRequests/Create/Failure'\r\n};\r\n\r\nexport const UPDATE = {\r\n REQUEST: 'CustomServiceRequests/Update/Request',\r\n SUCCESS: 'CustomServiceRequests/Update/Success',\r\n FAILURE: 'CustomServiceRequests/Update/Failure'\r\n};\r\n\r\nexport const REMOVE = {\r\n REQUEST: 'CustomServiceRequests/Remove/Request',\r\n SUCCESS: 'CustomServiceRequests/Remove/Success',\r\n FAILURE: 'CustomServiceRequests/Remove/Failure'\r\n};\r\n"],"sourceRoot":""}