{"version":3,"sources":["constants/status.save.js","libs/locale.js","translations/Translations.js","redux/actions.js","libs/RouterPath.js","constants/DemandValidation.js","redux/reducers/initValues/stepper.values.js","redux/reducers/StepperReducer.js","redux/store.js","redux/reducers/ResourcesReducer.js","redux/reducers/PrivilegeReducer.js","redux/reducers/StoreReducer.js","redux/reducers/FormReducer.js","redux/reducers/AuthorizeReducer.js","redux/reducers/InnerMenuReducer.js","redux/reducers/FormValuesReducer.js","redux/reducers/SignatureReducer.js","pages/NotFound/NotFound.js","components/complex/navigation/ListItem.js","components/complex/navigation/OpenElement.js","images/logo-long-contrast.png","components/complex/navigation/Logo.js","images/logo-long.png","images/logo-icon-contrast.png","images/logo-icon.png","components/Button.js","components/complex/navigation/newProcedureMenu/ListElement.js","components/complex/navigation/newProcedureMenu/NewProcedureMenu.js","constants/ProcedureType.js","components/complex/navigation/newProcedureMenu/ListElements.values.js","components/complex/navigation/ListAddButton.js","libs/isDevMode.js","constants/Endpoints.js","constants/HttpCodes.js","libs/downloadFile.js","libs/RestRequest.js","services/OAuthService.js","components/complex/navigation/LogoutButton.js","components/complex/navigation/Navigation.js","components/complex/appbar/InvertColorsButton.js","components/complex/appbar/TextSizeButton.js","components/complex/appbar/Profile.js","images/Poland.js","images/GreatBritain.js","components/GridBlock.js","components/popup/help/dialog.buttons.js","components/popup/components/CancelButton.js","components/popup/help/HelpDialog.js","components/popup/help/Help.js","components/complex/appbar/ChangeLanguageButtonButtons.js","libs/redirectUsingPOST.js","components/complex/appbar/AppBar.js","components/button/IconButton.js","components/button/IconCloseButton.js","components/Loading.js","components/Dialog.js","components/popup/IEinfo/IEInfo.js","libs/Browser.js","libs/objectExtension.js","services/DemandSectionsService.js","services/PrivilegeService.js","services/DemandService.js","constants/InputLimits.js","libs/moment.js","constants/ValidationShema.js","components/Form.js","components/Title.js","components/Divider.js","libs/getObjectValue.js","constants/INPUT_TYPE.js","libs/toNumberType.js","components/TextInput.js","components/RadioGroupElement.js","components/RadioGroup.js","components/Typography.js","components/Select.js","constants/PrimaryTenderVariant.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/fieldsOptions/primaryTenderVariant.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/fieldsOptions/pzpExclusion.values.js","constants/orderType.values.js","constants/concessionOrderType.values.js","constants/BooleanItems.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/fieldsOptions/jedz.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/fieldsOptions/contractType.values.js","components/Checkbox.js","components/RawHTML.js","components/button/WorkableIconButton.js","components/button/WorkableIconExpandButton.js","components/popup/selectCpv/ListElement.js","components/popup/selectCpv/libs/filterItems.js","components/popup/selectCpv/RadioListInfiniteScroller.js","components/popup/selectCpv/libs/countItems.js","components/popup/selectCpv/RadioList.js","components/button/WorkableButton.js","components/popup/components/DoubleButton.js","hooks/useId.js","libs/createId.js","services/CpvService.js","components/popup/selectCpv/SelectForm.js","components/popup/selectCpv/SelectCPV.js","components/Chip.js","libs/removeFormikListElement.js","components/CPVInput.js","components/HelpTooltip.js","components/HelpComponent.js","constants/ProcedureStatus.js","constants/PZPType.js","libs/getDemandStatus.js","libs/filterItems.js","components/popup/selectOrganization/SelectOrganizationForm.js","components/popup/selectOrganization/SelectOrganization.js","components/OrganizationInput.js","components/GreyBox.js","components/Dropzone.js","services/UploadService.js","components/ProgressBar.js","components/popup/components/SingleButton.js","services/DemandOffersService.js","libs/isResponseValid.js","constants/ContractorPasswordState.js","components/popup/uploadFile/UploadFilePopup.js","components/TitledComponent.js","components/FilesList.js","services/SharepointService.js","components/popup/components/MultiButton.js","components/icon/SharepointIcon.js","components/complex/sharepointExplorer/SharepointExplorer.js","components/complex/sharepointExplorer/SharepointDownloadPopup.js","services/EzdrpService.js","components/complex/ezdrpExplorer/EzdrpList.js","components/complex/ezdrpExplorer/EzdrpExplorer.js","components/complex/ezdrpExplorer/EzdrpDownloadPopup.js","services/EzdpuwService.js","components/complex/ezdpuwExplorer/EzdpuwDownloadPopup.js","components/button/WorkableIconFolderButton.js","components/complex/ezdpuwExplorer/EzdpuwList.js","components/complex/ezdpuwExplorer/EzdpuwExplorer.js","components/UploadFile.js","constants/PriceTypes.js","constants/DemandCategoryType.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/fieldsOptions/caseClassificationSymbol.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/RequiredFields.js","constants/DateFormats.js","components/DatePicker.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/OptionalFields.js","components/CheckboxButton.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/ContactFields.js","hooks/useDebouncedEffect.js","components/SaveFormikValues.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/constants/validationSchema.js","components/ShowErrorOnFailedSubmit.js","libs/supportedNoApiScreens.js","services/HeaderService.js","services/ModificationService.js","hooks/useStepperStateCloseValidator.js","components/AutoSaveFormValues.js","libs/saveFormDraft.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/MainForm.js","constants/VatType.js","constants/VATItems.js","libs/toFloat.js","libs/netGrosCalculations.js","hooks/useDidUpdateEffect.js","components/NetGrossField.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/ExPostFields.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/constants/validationSchemaExPost.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/MainFormExPost.js","components/popup/confirm/Confirm.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/MainFormWrapper.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/index.js","components/popup/changeHistory/ListElement.js","components/popup/changeHistory/ChangeHistory.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/StartScreen.js","services/DealingsService.js","constants/OfferSourceTypes.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/constants/itemTypes.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/constants/initialValues.js","components/button/AddButton.js","components/complex/loadingScreen/LoadingScreen.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/ImporterForm.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/lib/downloadImportTemplate.js","components/complex/simpleTable/STableContainer.js","components/complex/simpleTable/STableRow.js","components/complex/simpleTable/SimpleTable.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/UploadImportFile.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/AdditionalButtons.js","components/complex/sortable/SortableItem.js","components/complex/sortable/SortableList.js","components/complex/sortable/SortableContainer.js","components/popup/newCondition/constants/condition.values.js","components/popup/newCriteria/constants/criterium.type.js","components/popup/newCriteria/constants/criteria.variants.js","constants/DirectionsItems.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/constants/validationSchema.js","components/button/WorkableIconDeleteButton.js","components/button/WorkableIconEditButton.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/lib/mergeDealing.js","components/button/WorkableIconConfirmButton.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/ElementTitle.js","services/MeasureUnitService.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/positions/Units.js","components/button/WorkableIconPreviewButton.js","components/button/WorkableIconAddButton.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/positions/SingleVariant.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/positions/MultiVariant.js","components/VatField.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/positions/ItemPopup.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/PositionsSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/ConditionElement.js","components/PartsTable.js","components/popup/newCondition/constants/validation.form.js","components/popup/newCondition/ConditionForm.js","components/popup/newCondition/NewCondition.js","libs/setObjectValue.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/constants/stage.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/lib/manipulateElementsOnParts.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/ConfirmDeleteCriterion.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/ConditionsSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/CriteriaElement.js","components/popup/newCriteria/constants/tabs.values.js","components/popup/newCriteria/constants/criteriaElement.variants.js","components/popup/newCriteria/constants/validation.form.js","components/Tabs.js","components/popup/newCriteria/components/FormTabs.js","components/popup/newCriteria/components/OtherCriteriaFields.js","components/popup/newCriteria/constants/measurePeriodUnits.values.js","components/popup/newCriteria/myCriteriaList/mock.elements.js","components/popup/newCriteria/myCriteriaList/ListElement.js","components/popup/newCriteria/myCriteriaList/MyCriteriaList.js","components/ErrorText.js","components/popup/newCriteria/listVariant/CriteriaElement.js","components/popup/newCriteria/components/CriteriaListBase.js","components/popup/newCriteria/listVariant/CriteriaList.js","components/popup/newCriteria/components/RadioButton.js","components/popup/newCriteria/intervalVariant/elementVariants/BaseVariant.js","components/popup/newCriteria/intervalVariant/elementVariants/RangeVariant.js","components/popup/newCriteria/intervalVariant/elementVariants/SmallerVariant.js","components/popup/newCriteria/intervalVariant/elementVariants/BiggerVariant.js","components/popup/newCriteria/intervalVariant/CriteriaElement.js","libs/arrayExtension.js","components/popup/newCriteria/intervalVariant/CriteriaList.js","components/popup/newCriteria/CriteriaFormBody.js","components/popup/newCriteria/CriteriaForm.js","components/popup/newCriteria/NewCriteria.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/CriteriaSection.js","components/popup/addAdditionalPosition/constants/additionalPositionType.values.js","components/popup/addAdditionalPosition/constants/validation.form.js","components/popup/addAdditionalPosition/AddAdditionalPositionForm.js","components/popup/addAdditionalPosition/AddAdditionalPosition.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/AdditionalPositionsSection.js","components/popup/addItemParameter/constants/itemParameterType.values.js","components/popup/addItemParameter/constants/validation.form.js","components/popup/addItemParameter/AddItemParameterForm.js","components/popup/addItemParameter/AddItemParameter.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/PositionsParametersSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/PartForm.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/Element.js","components/ExecuteFunction.js","components/DemandValidationMessages.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/PositionAndPartsForm.js","libs/setFormikValuesTouched.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/ImportScreen.js","services/PapersGeneratorService.js","components/button/WorkableIcon.js","components/button/WorkableIconShareButton.js","components/complex/papersGenerator/PaperLink.js","components/BoldTypography.js","hooks/useSnackbar.js","components/complex/papersGenerator/customPopups/PapersGeneratorSelectPopup.js","components/complex/papersGenerator/customPopups/PapersGeneratorRfxInvitedSupplierWithOfferPopup.js","components/complex/papersGenerator/customPopups/PapersGeneratorRfxRequestPosition.js","components/complex/papersGenerator/customPopups/PapersGeneratorRfxInvitedSupplierPosition.js","libs/previewFile.js","libs/downloadFileWithPreloadUrl.js","components/complex/documentsTables/swz/constants/SiwzSourceType.js","libs/getOnlyValidMomentObjectOrDefault.js","constants/RepoFolderTypes.js","services/RepoService.js","services/SiwzService.js","components/complex/papersGenerator/customPopups/swzGenerator/SwzGeneratorQuestionSelect.js","components/complex/papersGenerator/customPopups/swzGenerator/SwzGeneratorQuestionCheckbox.js","components/complex/papersGenerator/customPopups/swzGenerator/SwzGeneratorQuestion.js","components/complex/papersGenerator/customPopups/swzGenerator/SwzGeneratorSection.js","components/complex/papersGenerator/customPopups/swzGenerator/ChooseSwzGeneratorOptions.js","components/complex/papersGenerator/customPopups/PapersGeneratorSelectFilesPopup.js","components/complex/papersGenerator/customPopups/PapersGeneratOfferFilesVerification.js","components/complex/papersGenerator/customPopups/PapersGeneratorMessageFilesVerification.js","libs/applySearchParams.js","libs/applySortParams.js","services/PurchasingGroupSectionService.js","constants/DemandValidationSectionStatus.js","libs/scrollTo.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/basicData/history/propertyTransformer.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/basicData/PurchasingGroupStage1BasicDataForm.js","components/button/HistoryButton.js","components/popup/historyListPopup/HistoryList.js","libs/userNameGetter.js","components/popup/historyListPopup/HistoryElementComparator.js","components/popup/historyListPopup/HistoryListPopup.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/basicData/PurchasingGroupStage1BasicData.js","components/complex/transferList/TransferList.js","components/complex/transferList/Column.js","components/complex/transferList/headers/Header.js","components/complex/transferList/headers/SearchHeader.js","components/complex/transferList/List.js","constants/PositionItems.js","constants/PurchasingGroupPositionItems.js","components/button/IconAddButton.js","constants/CommissionUserType.js","components/button/WorkableIconHighlightOffButton.js","components/complex/commissionForm/transferList/listItems/FullNameItem.js","components/TypographyWithIcon.js","components/popup/addCandidate/PopupForm.js","services/CommissionService.js","components/popup/addCandidate/AddCandidate.js","components/complex/transferList/options/EmptyOptions.js","components/complex/commissionForm/transferList/CandidateColumn.js","components/complex/commissionForm/transferList/listItems/FullNamePositionItem.js","components/complex/commissionForm/transferList/CommissionColumn.js","components/complex/commissionForm/transferList/TransferList.js","components/complex/commissionForm/CommissionForm.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/commission/PurchasingGroupStage1Commission.js","components/DateTimePicker.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/schedule/PurchasingGroupStage1ScheduleForm.js","pages/purchaser/PurchasingGroup/stages/utils/scheduleReloadTimeout.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/schedule/PurchasingGroupStage1Schedule.js","components/BasicSearch.js","libs/iconWorksReducer.js","libs/ConfirmNotification.js","components/button/WorkableIconMailButton.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/MembersElementTitle.js","components/popup/EditDescriptionPopup.js","components/button/WorkableIconSearchButton.js","components/button/WorkableIconDownloadButton.js","components/button/WorkableIconPublishButton.js","components/button/WorkableIconUnpublishButton.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/MembersDocumentsListTableRow.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/constants/PurchasingGroupDocumentStatus.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/SelectMembersDocumentType.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/MembersDocumentsList.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/AddMemberUserPopup.js","services/UserService.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/MembersElementContent.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/MembersElement.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/AddPurchasingGroupMemberPopup.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/MembersList.js","pages/purchaser/PurchasingGroup/stages/constants/PurchasingGroupRole.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/PurchasingGroupStage1Members.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/papersGenerator/PurchasingGroupStage1PapersGenerator.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/opinion/components/AddNewOpinionMemberPopup.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/opinion/components/OpinionMessage.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/opinion/components/NewOpinionMessage.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/opinion/components/OpinionElementContent.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/opinion/components/OpinionElementTitle.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/opinion/components/OpinionElement.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/opinion/PurchasingGroupStage1Opinion.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/finishPreparing/PurchasingGroupStage1FinishPreparing.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/collectingSchedule/PurchasingGroupStage2ScheduleForm.js","services/PurchasingGroupStage2Service.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/collectingSchedule/PurchasingGroupStage2Schedule.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/components/TemplateMembersElementTitle.js","pages/purchaser/PurchasingGroup/templates/constants/PurchasingGroupTemplateFieldType.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/components/TemplateMemberFormField.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/constants/PurchasingGroupTemplateFormState.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/history/propertyTransformer.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/components/TemplateMemberForm.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/components/TemplateMembersElementContent.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/components/TemplateMembersElement.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/components/TemplateMembersList.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/PurchasingGroupStage2Template.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/dealing/PurchasingGroupStage2Dealing.js","components/popup/components/SplitButton.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/finish/PurchasingGroupStage2Finish.js","pages/purchaser/PurchasingGroup/stages/constants/PurchasingGroupStageSections.js","services/PurchasingGroupStage1Service.js","components/complex/papersGenerator/customPopups/gzm/PapersGeneratorGzmManagementResolution.js","components/complex/papersGenerator/customPopups/gzm/PapersGeneratorGzmLeadingDocument.js","components/complex/papersGenerator/customPopups/gzm/PapersGeneratorGzmDraftGroupAgreement.js","components/complex/papersGenerator/customPopups/gzm/PapersGeneratorGzmDocumentToSign.js","hooks/useEzamowieniaOauth.js","components/icon/EZamowieniaIcon.js","services/EzamowieniaService.js","components/complex/papersGenerator/customPopups/xmpUzpPresidentPaper/PapersGeneratorXmpUzpPresidentPaperContent.js","components/complex/papersGenerator/customPopups/xmpUzpPresidentPaper/PapersGeneratorXmpUzpPresidentPaperPopup.js","libs/shareSystems.js","components/popup/ShareSelectPopup.js","components/complex/papersGenerator/PapersGeneratorList.js","pages/purchaser/MyProcedure/scenes/part3/panels/papersGenerator/PapersGenerator.js","pages/purchaser/MyProcedure/scenes/part3/panels/papersGenerator/index.js","hooks/useSearch.js","components/button/MoreButton.js","services/RfxOfferService.js","constants/OfferStatus.js","constants/OfferEncryptionStatus.js","components/icon/TooltipIcon.js","components/complex/offer/components/OfferAdditionalOffersTable.js","services/DemandOffersGeneralInfoService.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoExpansionPanelTitle.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoEntry.js","components/ExpansionPanel.js","libs/formatAmountNumber.js","context/OfferStageTranslationsContext.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoBasicData.js","components/button/WorkableIconForwardButton.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoDocumentsFileTableRow.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoDocumentsFileTable.js","context/PurchaserOfferContext.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoDocuments.js","services/CorrespondenceService.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoPublicAnswersMessage.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoPublicAnswers.js","services/StatisticsService.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoRealizationAmount.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/GeneralInfoPanel.js","libs/isResponseValidWithStoredPasswordCheck.js","components/ExpansionPanelTitleAvatar.js","pages/contractor/demand/scenes/offer/components/common/constants/OfferMode.js","pages/contractor/demand/scenes/offer/components/common/constants/OfferPositionStatusType.js","constants/SignatureType.js","pages/contractor/demand/scenes/offer/components/common/constants/OfferStatusType.js","services/DemandOffersOfferService.js","constants/ContractorDocumentType.js","constants/RoundType.js","constants/TrueFalseItems.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/files/SelectOfferFilesType.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/files/EditFilePopup.js","services/DemandAdditionalOffersOfferService.js","services/DemandOffersAuctionService.js","context/OfferSectionContext.js","components/icon/SignatureIcon.js","pages/contractor/demand/scenes/offer/components/common/constants/OfferFileSignStatus.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/files/OfferFilesTableSignStatus.js","context/SupportModeContext.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/files/OfferFilesTableRow.js","hooks/useSignature.js","hooks/useLoadingScreen.js","libs/AlertNotification.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/files/OfferFilesTable.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/files/OfferFiles.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/constants/OfferEspdType.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspdTypeSwitch.js","components/SimpleSelect.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspdInternal.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspdExternalUploadFileTypes.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspdExternalUploadFile.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspdExternal.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspdTableRow.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspdTable.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspd.js","constants/ContractorOfferEspdType.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/positions/constants/validation.form.js","pages/contractor/demand/scenes/offer/components/common/positions/inputs/OfferYesNoInput.js","pages/contractor/demand/scenes/offer/components/common/positions/inputs/OfferTextInput.js","pages/contractor/demand/scenes/offer/components/common/positions/inputs/OfferNumberInput.js","pages/contractor/demand/scenes/offer/components/common/positions/inputs/OfferPriceInput.js","pages/contractor/demand/scenes/offer/components/common/positions/inputs/OfferListInput.js","pages/contractor/demand/scenes/offer/components/common/positions/inputs/OfferUnits.js","pages/contractor/demand/scenes/offer/components/common/positions/inputs/OfferInput.js","pages/contractor/demand/scenes/offer/components/common/positions/OfferPositionConditions.js","pages/contractor/demand/scenes/offer/components/common/positions/OfferPositionCriteriums.js","pages/contractor/demand/scenes/offer/components/common/positions/OfferPositionItems.js","pages/contractor/demand/scenes/offer/components/common/positions/OfferPositionParameters.js","constants/ContractorConsorciumTypes.js","constants/ContractorCompanySize.js","services/ContractorService.js","components/popup/inviteContactor/components/NipRow.js","components/MaskedTextInput.js","components/popup/inviteContactor/components/PostCodeRow.js","components/popup/inviteContactor/InviteContactorForm.js","components/popup/inviteContactor/InviteContactor.js","pages/contractor/demand/scenes/offer/components/common/commonData/ConsorciumTable.js","components/YesNo.js","pages/contractor/demand/scenes/offer/components/common/positions/OfferPositionConsorciants.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/positions/constants/APIOfferPlacingType.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/SnapshotListPopup.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/VerificationsPopup.js","hooks/useSalesNotification.js","components/popup/salesNotification/constants/salesNotification.keys.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/positions/components/OfferPositionForm.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/positions/OfferMultiPositions.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/positions/OfferSinglePosition.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/positions/OfferPositions.js","components/complex/floatingMenu/ButtonsBar.js","components/complex/floatingMenu/NavigationBar.js","components/complex/floatingMenu/createButton.js","components/PartsRadioTable.js","pages/contractor/demand/scenes/offer/components/common/OfferPositionsSelectPopup.js","pages/contractor/demand/scenes/offer/components/common/commonData/OfferCommonDataForm.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/commonData/OfferCommonData.js","pages/contractor/demand/scenes/offer/components/common/contractorData/OfferContractorData.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/VerificationBeforePlaceOfferPopup.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/ImportOfferFormPopup.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/OfferEditPanel.js","pages/contractor/demand/scenes/offer/components/common/OfferExpansionSectionTitle.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/OfferEditSectionTitle.js","pages/contractor/demand/scenes/offer/components/panels/offerPlaced/OfferPlacedPanel.js","pages/contractor/demand/scenes/offer/components/panels/offerPlaced/components/OfferPlacedSectionTitle.js","pages/contractor/demand/scenes/offer/components/panels/additionalOfferEdit/components/commonData/AdditionalOfferCommonData.js","pages/contractor/demand/scenes/offer/components/panels/additionalOfferEdit/components/EnvelopeOfferDatePopup.js","pages/contractor/demand/scenes/offer/components/panels/additionalOfferEdit/AdditionalOfferEditPanel.js","pages/contractor/demand/scenes/offer/components/panels/additionalOfferPlaced/AdditionalOfferPlacedPanel.js","constants/AuctionRule.js","constants/AuctionStatus.js","constants/AuctionType.js","libs/openInNewTab.js","pages/contractor/demand/scenes/offer/components/panels/auctionOfferEdit/components/AuctionRow.js","pages/contractor/demand/scenes/offer/components/panels/auctionOfferEdit/components/AuctionsTable.js","pages/contractor/demand/scenes/offer/components/panels/auctionOfferEdit/AuctionOfferEditPanel.js","pages/contractor/demand/scenes/offer/components/panels/auctionOfferPlaced/AuctionOfferPlacedPanel.js","pages/contractor/demand/scenes/offer/components/panels/additionalOfferPlaced/components/AdditionalOfferPlacedSectionTitle.js","pages/contractor/demand/scenes/offer/components/panels/additionalOfferEdit/components/AdditionalOfferEditSectionTitle.js","pages/contractor/demand/scenes/offer/components/panels/additionalOfferEditAlt/AdditionalOfferEditAltPanel.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/DeneralInfoSectionTitle.js","pages/contractor/demand/scenes/offer/components/panels/auctionOfferPlaced/components/AuctionOfferPlacedSectionTitle.js","pages/contractor/demand/scenes/offer/constants/StageSections.js","components/complex/offer/components/OfferTableRow.js","components/complex/offer/components/OfferTable.js","libs/contractorImport.js","components/popup/addContactor/AddContactor.js","components/complex/offer/components/envelope/RegisterEnvelopeForm.js","components/complex/offer/components/envelope/RegisterEnvelopePopup.js","components/complex/offer/Offers.js","pages/purchaser/MyProcedure/scenes/part3/panels/offers/OffersPanel.js","pages/purchaser/MyProcedure/scenes/part3/panels/offers/index.js","libs/isBzpAttachmentNoticeType.js","components/complex/documentsTables/swz/AddBzpNoticePopup.js","components/complex/documentsTables/swz/SelectSiwzDocumentType.js","components/popup/DownloadHistoryPopup.js","components/button/WorkableIconDownloadCountButton.js","components/button/WarningRoundedButton.js","context/DemandValidationContext.js","components/complex/documentsTables/swz/SiwzVersionsTableRow.js","components/complex/documentsTables/swz/SiwzVersionsTable.js","components/complex/documentsTables/swz/SiwzFileTableRow.js","components/complex/documentsTables/swz/SiwzFileTable.js","components/complex/documentsTables/swz/SelectSiwzDocument.js","components/complex/documentsTables/swz/SiwzDocuments.js","components/complex/documentsTables/repo/CreateFolderPopup.js","components/complex/documentsTables/repo/SelectFolderPopup.js","components/complex/documentsTables/repo/ChangeRepoVisibilityPopup.js","components/button/WorkableIconEjectButton.js","components/complex/documentsTables/repo/RepoFileTableRow.js","components/complex/documentsTables/repo/RepoFileTable.js","components/complex/documentsTables/repo/RepoFolder.js","components/complex/documentsTables/repo/SelectRepoDocument.js","components/complex/documentsTables/repo/RepoDocuments.js","components/complex/documentsTables/DocumentsTables.js","pages/purchaser/MyProcedure/scenes/part3/panels/documents/DocumentsPanel.js","pages/purchaser/MyProcedure/scenes/part3/panels/documents/index.js","constants/ContractorVerificationProcedureType.js","pages/purchaser/MyProcedure/scenes/part3/panels/contractorVerification/components/VerificationProcedureType.js","constants/ContractorVerificationOfferStatus.js","services/ContractorVerificationService.js","pages/purchaser/MyProcedure/scenes/part3/panels/contractorVerification/components/ContractorVerificationRow.js","pages/purchaser/MyProcedure/scenes/part3/panels/contractorVerification/components/ContractorVerificationTable.js","pages/purchaser/MyProcedure/scenes/part3/panels/contractorVerification/ContractorVerification.js","pages/purchaser/MyProcedure/scenes/part3/panels/contractorVerification/index.js","services/OfferEvaluationService.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/constants/OfferEvaluationViewMode.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/constants/OfferEvaluationPositionStatus.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/components/OffersEvaluationScoreColumn.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/components/OffersEvaluationRow.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/components/OffersEvaluationTable.js","components/DottedPagination.js","components/PaginationButton.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/constants/OfferEvaluationRoundType.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/components/OfferEvaluationSearch.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/OffersEvaluation.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/index.js","services/OfferChoiceService.js","components/Pagination.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/OfferChoiceContractorRowPart.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/AuctionTypeList.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/AuctionHistoryPopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/OfferChoiceSummaryCell.js","constants/AdditionalRoundStatus.js","libs/durations.js","services/AdditionalRoundService.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/additionalRound/OfferChoiceEditAdditionalRoundsDatesPopup.js","constants/ProgressStatus.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/additionalRound/OfferChoiceSummaryCellAdditionalRound.js","services/AuctionService.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/constants/AuctionItemBidType.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/OfferChoiceCreateAuctionTable.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/OfferChoiceCreateAuctionPopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/AuctionTypePart.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/EditDatesAuctionPopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/ConfirmAuction.js","components/popup/save/SaveDialogBase.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/AuctionSaveError.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/OfferChoiceSummaryCellAuction.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/constants/OfferChoiceState.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/OfferChoiceRow.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/OfferChoiceTable.js","components/popup/alert/Alert.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/OfferChoiceCancelWhereNoOffersPopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/OfferChoiceSearch.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/constants/OfferChoiceDecision.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/additionalRound/CreateAdditionalRoundTable.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/additionalRound/OfferChoiceCreateAdditionalRoundPopup.js","components/complex/realizationAmount/RealizationAmountForm.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/FinalRealizationValuePopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/OfferChoice.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/index.js","services/OffersChoiceResultService.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/constants/OfferChoiceResultFileState.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/components/OfferChoiceResultFilesTableRow.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/components/OfferChoiceResultFilesTable.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/components/OfferChoiceResultFiles.js","components/button/WorkableIconPrintButton.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/components/OfferChoiceResultFilePublishPopup.js","components/button/WorkableIconCalendarButton.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/components/OfferChoiceResultRow.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/constants/OfferChoiceResultState.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/components/OfferChoiceResultTable.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/OffersChoiceResult.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/index.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/constants/AgreementListType.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/components/AgreementsListType.js","services/AgreementsService.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/components/AgreementCreatePopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/components/AgreementsAvailablePanel.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/components/AgreementsCreatedPanel.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/constants/AgreementType.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/constants/AgreementState.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/AgreementsPanel.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/index.js","services/EvaluationFinishService.js","services/RfxRoundService.js","components/popup/invalidate/InvalidateDemandPopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/evaluationFinish/EvaluationFinish.js","pages/purchaser/MyProcedure/scenes/part3/panels/evaluationFinish/index.js","services/AdditionalRoundPassiveService.js","pages/purchaser/MyProcedure/scenes/part3/panels/additionalRoundPassive/components/AdditionalRoundPassiveStatusCell.js","pages/purchaser/MyProcedure/scenes/part3/panels/additionalRoundPassive/components/AdditionalRoundPassiveRow.js","pages/purchaser/MyProcedure/scenes/part3/panels/additionalRoundPassive/components/AdditionalRoundPassiveTable.js","pages/purchaser/MyProcedure/scenes/part3/panels/additionalRoundPassive/components/AdditionalRoundPassiveCreatePopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/additionalRoundPassive/AdditionalRoundPassive.js","pages/purchaser/MyProcedure/scenes/part3/panels/additionalRoundPassive/index.js","pages/purchaser/MyProcedure/scenes/part3/panels/stageFinish/StageFinish.js","pages/purchaser/MyProcedure/scenes/part3/panels/stageFinish/index.js","pages/purchaser/MyProcedure/scenes/part3/panels/primaryTenderChoice/PrimaryTenderChoice.js","pages/purchaser/MyProcedure/scenes/part3/panels/primaryTenderChoice/index.js","services/DemandAdditionalInfoService.js","context/FormTranslationContext.js","components/complex/nationalNotice/components/inputs/NoticeYesNoInput.js","components/complex/nationalNotice/components/inputs/NoticeIntegerInput.js","components/SelectTreeView.js","components/complex/nationalNotice/components/inputs/NoticeGlossaryInput.js","components/complex/nationalNotice/components/inputs/NoticeNumericInput.js","pages/purchaser/MyProcedure/scenes/part1/panels/additionalInfo/PreparingAdditionalInfo.js","pages/purchaser/MyProcedure/scenes/part3/panels/additionalInfo/index.js","pages/purchaser/MyProcedure/scenes/part3/part3.panels.components.js","services/ResultNoticeService.js","pages/purchaser/MyProcedure/scenes/part4/panels/resultNotice/components/AttachmentResultNoticeRow.js","pages/purchaser/MyProcedure/scenes/part4/panels/resultNotice/components/AttachmentResultNotice.js","constants/PublicationConst.js","pages/purchaser/MyProcedure/scenes/part4/panels/resultNotice/constants/ResultNoticeType.js","pages/purchaser/MyProcedure/scenes/part4/panels/resultNotice/components/OjsResultNotice.js","components/complex/documentsTables/swz/AddBzpResultNoticePopup.js","pages/purchaser/MyProcedure/scenes/part4/panels/resultNotice/ResultNoticePanel.js","pages/purchaser/MyProcedure/scenes/part4/panels/resultNotice/index.js","services/ArchivingService.js","pages/purchaser/MyProcedure/scenes/part4/panels/archiving/constants/ArchivingStatus.js","pages/purchaser/MyProcedure/scenes/part4/panels/archiving/ArchivingPanel.js","pages/purchaser/MyProcedure/scenes/part4/panels/archiving/index.js","services/FinishDemandService.js","pages/purchaser/MyProcedure/scenes/part4/panels/finish/components/UnpublishNoticePopup.js","pages/purchaser/MyProcedure/scenes/part4/panels/finish/FinishDemandPanel.js","pages/purchaser/MyProcedure/scenes/part4/panels/finish/index.js","pages/purchaser/MyProcedure/scenes/part4/panels/documents/FinishDocumentsPanel.js","pages/purchaser/MyProcedure/scenes/part4/panels/documents/index.js","services/DemandPlanRealizationService.js","components/icon/CalcIcon.js","components/button/WorkableIconCalcButton.js","components/complex/netGrossCalc/NetGrossCalcPopup.js","components/complex/netGrossCalc/NetGrossCalc.js","pages/purchaser/MyProcedure/scenes/part4/panels/plan/components/DemandPlanRealizationRow.js","pages/purchaser/MyProcedure/scenes/part4/panels/plan/components/DemandPlanRealizationTable.js","pages/purchaser/MyProcedure/scenes/part4/panels/plan/DemandPlanRealizationPanel.js","pages/purchaser/MyProcedure/scenes/part4/panels/additionalInfo/index.js","pages/purchaser/MyProcedure/scenes/part4/part4.panels.components.js","pages/purchaser/MyProcedure/scenes/part4/panels/plan/index.js","services/helpers/validateSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/schedule/deadlinesEdit/FormElement.js","pages/purchaser/MyProcedure/scenes/part1/panels/schedule/constants/period.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/schedule/deadlinesEdit/DateBind.js","services/ScheduleService.js","pages/purchaser/MyProcedure/scenes/part1/panels/schedule/deadlinesEdit/DeadlinesEdit.js","pages/purchaser/MyProcedure/scenes/part1/panels/schedule/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/commission/DemandCommissionForm.js","pages/purchaser/MyProcedure/scenes/part1/panels/commission/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/constants/exclusion.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/constants/selection.values.js","services/EspdService.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/constants/procedureType.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/constants/buyerType.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/ProcedureSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/components/Section.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/components/Element.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/components/AllElements.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/components/AllSections.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/ExclusionSection.js","constants/EspdBooleanItems.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/SelectionSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/components/ExportJedzButtons.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/components/DealingJedzSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/JEDZFormContent.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/JEDZ.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/siwz/documents/Documents.js","pages/purchaser/MyProcedure/scenes/part1/panels/siwz/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/guarantee/components/WadiumField.js","pages/purchaser/MyProcedure/scenes/part1/panels/guarantee/components/WadiumTable.js","services/GuaranteeService.js","pages/purchaser/MyProcedure/scenes/part1/panels/guarantee/constants/validation.js","pages/purchaser/MyProcedure/scenes/part1/panels/guarantee/Wadium.js","pages/purchaser/MyProcedure/scenes/part1/panels/guarantee/index.js","components/button/IconExternalSignButton.js","components/complex/contractor/ContractorTable.js","pages/purchaser/MyProcedure/scenes/part1/panels/contractor/ContactorPage.js","pages/purchaser/MyProcedure/scenes/part1/panels/contractor/index.js","services/NoticeService.js","pages/purchaser/MyProcedure/scenes/part1/panels/notice/NoticePage.js","pages/purchaser/MyProcedure/scenes/part1/panels/notice/index.js","services/NationalNoticeService.js","pages/purchaser/MyProcedure/scenes/part1/panels/nationalNotice/NationalNoticeSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/nationalNotice/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/papersGenerator/PreparingPapersGenerator.js","pages/purchaser/MyProcedure/scenes/part1/panels/papersGenerator/index.js","services/PublishService.js","pages/purchaser/MyProcedure/scenes/part1/panels/publication/ConfirmPublish.js","pages/purchaser/MyProcedure/scenes/part1/panels/publication/PublishSection.js","libs/getUncompletedSections.js","components/complex/nationalNotice/constants/NationalNoticeStatus.js","libs/isPublishButtonActive.js","pages/purchaser/MyProcedure/scenes/part1/panels/publication/NoticeButtons.js","pages/purchaser/MyProcedure/scenes/part1/panels/publication/InformationSection.js","libs/isCancelModificationButtonActive.js","libs/isPreviewNoticeButtonActive.js","constants/EzamowieniaRequiredGroups.js","pages/purchaser/MyProcedure/scenes/part1/panels/publication/BzpNoticeButtons.js","pages/purchaser/MyProcedure/scenes/part1/panels/publication/Publication.js","libs/isPreviewButtonActive.js","pages/purchaser/MyProcedure/scenes/part1/panels/exPostGoToFinish/ExPostGoToFinish.js","pages/purchaser/MyProcedure/scenes/part1/panels/questionnaire/Questionnaire.js","pages/purchaser/MyProcedure/scenes/part1/part1.panels.components.js","pages/purchaser/MyProcedure/scenes/part1/panels/exPostGoToFinish/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/additionalInfo/index.js","pages/purchaser/MyProcedure/scenes/components/AccordionPart.js","components/popup/relatedObjects/DemandRelatedObjectsPopup.js","pages/purchaser/MyProcedure/scenes/part1/Part1.js","components/Workspace.js","hooks/useNodeTopPosition.js","pages/purchaser/MyProcedure/scenes/part2/components/Section.js","services/RfxSupplierService.js","pages/purchaser/MyProcedure/scenes/part2/sections/ContractorSection.js","pages/purchaser/MyProcedure/scenes/part2/sections/OfferSection.js","components/complex/countdown/ProgressRing.js","components/complex/countdown/RingCountdown.js","pages/purchaser/MyProcedure/scenes/part2/sections/StatisticSection.js","pages/purchaser/MyProcedure/scenes/part2/components/ExpansionProgressPanel.js","pages/purchaser/MyProcedure/scenes/part2/components/OfferDecryptionProgress.js","pages/purchaser/MyProcedure/scenes/part2/constants/OnlinePlatforms.js","pages/purchaser/MyProcedure/scenes/part2/components/EditSessionOnlinePopup.js","pages/purchaser/MyProcedure/scenes/part2/components/PublicSessionOnlineProgress.js","pages/purchaser/MyProcedure/scenes/part2/components/RealizationAmountProgress.js","pages/purchaser/MyProcedure/scenes/part2/sections/OfferDecryptionSection.js","pages/purchaser/MyProcedure/scenes/part2/sections/DocumentsSection.js","pages/purchaser/MyProcedure/scenes/part2/components/ResendOfferInvitationPopup.js","components/Tile.js","pages/purchaser/MyProcedure/scenes/part2/components/TilesRow.js","services/PollService.js","components/popup/poll/PollNpsSwitch.js","components/popup/poll/Poll.js","pages/purchaser/MyProcedure/scenes/part2/Part2.js","pages/purchaser/MyProcedure/scenes/part3/panels/components/RealizationValuePopup.js","pages/purchaser/MyProcedure/scenes/part3/Part3.js","pages/purchaser/MyProcedure/scenes/part4/Part4.js","components/OrganizationsSelect.js","libs/contractorNameBuilder.js","components/complex/correspondence/CorrespondenceEmailList.js","components/complex/correspondence/AddThreadPopup.js","components/complex/correspondence/AddThreadAsSupplierForm.js","components/complex/correspondence/AddThreadAsSupplierPopup.js","components/complex/correspondence/MessageEmailDeliveryPopup.js","components/complex/correspondence/Message.js","components/complex/correspondence/NewMessageForm.js","components/complex/correspondence/PublishMessageConfirmationPopup.js","components/complex/correspondence/NewMessage.js","components/complex/correspondence/MessagesList.js","components/complex/correspondence/Thread.js","components/complex/correspondence/AddBulkMessagePopup.js","components/complex/correspondence/ThreadsPanel.js","components/complex/correspondence/CorrespondenceSearch.js","components/complex/correspondence/Correspondence.js","pages/purchaser/MyProcedure/scenes/correspondence/sections/CorrespondenceSection.js","pages/purchaser/MyProcedure/scenes/correspondence/CorrespondencePanel.js","services/EmailListService.js","pages/purchaser/MyProcedure/scenes/emailList/components/EmailListSearch.js","pages/purchaser/MyProcedure/scenes/emailList/components/EmailDeliveriesTable.js","pages/purchaser/MyProcedure/scenes/emailList/components/EmailDetailsPopup.js","pages/purchaser/MyProcedure/scenes/emailList/components/EmailListSection.js","pages/purchaser/MyProcedure/scenes/emailList/EmailListPanel.js","components/complex/nationalNotice/components/inputs/NoticeTextInput.js","components/complex/nationalNotice/contractNotice/components/BasicData.js","components/complex/nationalNotice/components/inputs/NoticeTypography.js","components/complex/nationalNotice/contractNotice/components/PurchaserDataTogetherList.js","components/complex/nationalNotice/contractNotice/components/PurchaserDataTogether.js","components/complex/nationalNotice/contractNotice/components/PurchaserDataEntrusted.js","components/complex/nationalNotice/contractNotice/components/PurchaserData.js","components/complex/nationalNotice/components/FormNavigator.js","components/complex/nationalNotice/contractNotice/contractNoticeSteps.js","components/complex/nationalNotice/contractNotice/contractNoticeValidation.js","components/complex/nationalNotice/contractNotice/components/RealizationTypeData.js","components/complex/nationalNotice/contractNotice/components/DocumentsAccessData.js","components/CPVSingleInput.js","components/complex/nationalNotice/components/inputs/NoticeCpvInput.js","components/complex/nationalNotice/components/inputs/NoticeDateInput.js","components/complex/nationalNotice/contractNotice/components/OrderObjectNotDivided.js","components/complex/nationalNotice/components/DealingsNavigator.js","components/complex/nationalNotice/contractNotice/components/OrderObjectDividedList.js","components/complex/nationalNotice/contractNotice/components/OrderObjectDivided.js","components/complex/nationalNotice/contractNotice/components/OrderObjectData.js","components/complex/nationalNotice/contractNotice/components/QualificationData.js","components/complex/nationalNotice/contractNotice/components/ObjectiveEvidenceData.js","components/complex/nationalNotice/contractNotice/components/OrderTermsData.js","components/complex/nationalNotice/contractNotice/components/ContractDraftData.js","components/complex/nationalNotice/contractNotice/components/OrderDetailsFrameworkAgreement.js","components/complex/nationalNotice/contractNotice/components/OrderDetailsLotCriterion.js","components/complex/nationalNotice/contractNotice/components/OrderDetailsPrimaryLot.js","components/complex/nationalNotice/components/inputs/NoticeDateTimeInput.js","components/complex/nationalNotice/contractNotice/components/OrderDetailsPrimary.js","components/complex/nationalNotice/contractNotice/components/OrderDetailsPartnership.js","components/complex/nationalNotice/contractNotice/components/OrderDetailsPartnershipLot.js","components/complex/nationalNotice/contractNotice/components/OrderDetailsData.js","components/complex/nationalNotice/contractNotice/components/AdditionalInfoData.js","components/complex/nationalNotice/contractNotice/ContractNoticeForm.js","components/complex/nationalNotice/xmlUzpPresidentPaper/XmlUzpPresidentPaper.js","components/complex/nationalNotice/NationalNoticePage.js","pages/purchaser/MyProcedure/scenes/nationalNotice/NationalNoticePanel.js","pages/purchaser/MyProcedure/scenes/PartsRouter.js","components/Page.js","components/complex/infobar/InfoDataElement.js","components/complex/infobar/InfoData.js","components/complex/infobar/OpenBarText.js","components/complex/infobar/InfoBarTitleButton.js","components/complex/infobar/InfoBarTitle.js","libs/extendFindSectionEditable.js","components/complex/infobar/InfoBar.js","components/complex/stagebar/components/StageElement.js","components/complex/stagebar/StageBar.js","pages/purchaser/MyProcedure/scenes/StepperPages.js","components/SearchInput.js","pages/purchaser/MyProcedure/scenes/home/started/components/SearchBar.js","services/DemandsService.js","hooks/usePathParams.js","components/button/WorkableIconDuplicateButton.js","pages/purchaser/MyProcedure/scenes/home/started/Started.js","pages/purchaser/MyProcedure/scenes/home/HomeRoute.js","pages/purchaser/MyProcedure/scenes/home/MyProcedureHome.js","pages/purchaser/MyProcedure/MyProcedure.js","pages/purchaser/PurchasingGroup/stages/components/PurchasingGroupStageSection.js","pages/purchaser/PurchasingGroup/stages/components/PurchasingGroupStage.js","pages/purchaser/PurchasingGroup/stages/stage2/PurchasingGroupStage2.js","pages/purchaser/PurchasingGroup/stages/stage1/PurchasingGroupStage1.js","pages/purchaser/PurchasingGroup/stages/PurchasingGroupStageNr.js","pages/purchaser/PurchasingGroup/stages/PurchasingGroupStagesRouter.js","pages/purchaser/PurchasingGroup/stages/components/PurchaserGroupInfoBar.js","components/complex/stagebar/StageBarCommon.js","pages/purchaser/PurchasingGroup/constants/PurchasingGroupStatus.js","pages/purchaser/PurchasingGroup/stages/components/PurchaserGroupStageBar.js","pages/purchaser/PurchasingGroup/stages/PurchasingGroupStages.js","pages/purchaser/PurchasingGroup/list/PurchasingGroupSearch.js","pages/purchaser/PurchasingGroup/list/PurchasingGroupList.js","pages/purchaser/PurchasingGroup/list/PurchasingGroupMemberList.js","services/PurchasingGroupTemplateService.js","components/button/WorkableIconDeactivateButton.js","components/button/WorkableIconActivateButton.js","pages/purchaser/PurchasingGroup/templates/PurchasingGroupTemplatesList.js","components/button/IconDragButton.js","components/complex/sortable/SortableHandle.js","components/RadioGroupYesNo.js","pages/purchaser/PurchasingGroup/templates/components/PurchasingGroupTemplateField.js","pages/purchaser/PurchasingGroup/templates/components/PurchasingGroupTemplateAggregatedFieldsPopup.js","pages/purchaser/PurchasingGroup/templates/components/PurchasingGroupTemplateForm.js","pages/purchaser/PurchasingGroup/templates/PurchasingGroupTemplate.js","pages/purchaser/PurchasingGroup/PurchasingGroup.js","services/RegistrationService.js","pages/purchaser/Admin/registrations/constants/RegistrationStatus.js","pages/purchaser/Admin/registrations/list/RegistrationsSearch.js","pages/purchaser/Admin/registrations/list/RegistrationsList.js","pages/purchaser/Admin/registrations/registration/InfoEntry.js","pages/purchaser/Admin/registrations/registration/UserRegistrationRejectPopup.js","pages/purchaser/Admin/registrations/registration/UserRegistrationAddOrganizationUnit.js","pages/purchaser/Admin/registrations/registration/UserRegistration.js","pages/purchaser/Admin/Admin.js","pages/contractor/demand/scenes/offer/components/common/OfferExpansionSections.js","pages/contractor/demand/scenes/offer/components/common/DefineOfferPasswordPopup.js","pages/contractor/demand/scenes/offer/components/OfferSections.js","pages/purchaser/demand/scenes/offer/PurchaserOfferPanel.js","pages/purchaser/demand/scenes/PurchaserScenesRouter.js","components/complex/stagebar/ContractorStageBar.js","pages/purchaser/demand/scenes/PurchaserStepperPages.js","pages/purchaser/demand/scenes/preview/PurchaserPreviewPanel.js","pages/purchaser/demand/PurchaserDemand.js","pages/purchaser/annualReport/report/constants/AnnualReportStatus.js","services/AnnualReportsService.js","pages/purchaser/annualReport/list/components/AddAnnualReportPopup.js","pages/purchaser/annualReport/list/components/AnnualReportListTableRow.js","pages/purchaser/annualReport/list/AnnualReportsList.js","pages/purchaser/annualReport/report/constants/annualReportSteps.js","pages/purchaser/annualReport/report/constants/annulaReportClasses.js","pages/purchaser/annualReport/report/components/common/AnnualReportNavigator.js","pages/purchaser/annualReport/report/constants/AnnualReportNoticeSource.js","pages/purchaser/annualReport/report/constants/annualReportValidation.js","pages/purchaser/annualReport/report/components/purchaser/AnnualReportPurchaserForm.js","pages/purchaser/annualReport/report/components/common/AnnualReportTableCell.js","pages/purchaser/annualReport/report/components/common/AnnualReportEditPopup.js","libs/scrollToContainer.js","pages/purchaser/annualReport/report/components/aboveEu/AnnualReportAboveEuEditForm.js","libs/formatBoolean.js","libs/formatInteger.js","pages/purchaser/annualReport/report/components/common/AnnualReportSearchBar.js","pages/purchaser/annualReport/report/components/common/AnnualReportTableHeadCell.js","pages/purchaser/annualReport/report/components/common/MoveAnnualReportEntry.js","components/button/WorkableIconErrorButton.js","pages/purchaser/annualReport/report/components/common/AnnualReportTablePart.js","pages/purchaser/annualReport/report/components/aboveEu/AnnualReportAboveEuForm.js","pages/purchaser/annualReport/report/components/belowEu/AnnualReportBelowEuEditForm.js","pages/purchaser/annualReport/report/components/belowEu/AnnualReportBelowEuTablePart.js","pages/purchaser/annualReport/report/components/belowEu/AnnualReportBelowEuForm.js","pages/purchaser/annualReport/report/components/conflict/AnnualReportConflictEditForm.js","pages/purchaser/annualReport/report/constants/annualReportTenderMode.js","pages/purchaser/annualReport/report/components/conflict/AnnualReportConflictForm.js","pages/purchaser/annualReport/report/components/community/AnnualReportCommunityEditForm.js","pages/purchaser/annualReport/report/components/community/AnnualReportCommunityForm.js","pages/purchaser/annualReport/report/components/social/AnnualReportSocialEditForm.js","pages/purchaser/annualReport/report/components/social/AnnualReportSocialForm.js","pages/purchaser/annualReport/report/components/innovative/AnnualReportInnovativeEditForm.js","pages/purchaser/annualReport/report/components/innovative/AnnualReportInnovativeForm.js","pages/purchaser/annualReport/report/components/exception/AnnualReportExceptionEditForm.js","pages/purchaser/annualReport/report/components/exception/AnnualReportExceptionTablePart.js","pages/purchaser/annualReport/report/components/exception/AnnualReportExceptionForm.js","pages/purchaser/annualReport/report/components/notIncluded/AnnualReportNotIncludedEditForm.js","pages/purchaser/annualReport/report/components/notIncluded/AnnualReportNotIncludedTablePart.js","pages/purchaser/annualReport/report/components/notIncluded/AnnualReportNotIncludedForm.js","pages/purchaser/annualReport/report/constants/dictToTranslationMap.js","components/Link.js","pages/purchaser/annualReport/report/components/common/AnnualReportError.js","pages/purchaser/annualReport/report/components/common/ReloadAnnualReportTableFromPrevVersionButton.js","pages/purchaser/annualReport/report/components/common/ReloadAnnualReportTableButton.js","pages/purchaser/annualReport/report/AnnualReportPage.js","pages/purchaser/annualReport/AnnualReport.js","pages/purchaser/PurchaserRouter.js","services/SalesService.js","components/popup/salesNotification/SalesNotificationPopup.js","components/popup/confirm/ConfirmThreeButtons.js","components/popup/confirmCloseStepper/ConfirmCloseStepper.js","components/complex/feedback/FeedbackContentOpen.js","components/complex/feedback/FeedbackContentClosed.js","components/complex/feedback/Feedback.js","components/complex/ezamowienia/EzamowieniaOauth.js","pages/purchaser/PurchaserRoot.js","pages/contractor/demand/scenes/correspondence/sections/CtrCorrespondenceSection.js","pages/contractor/demand/scenes/correspondence/CtrCorrespondencePanel.js","pages/contractor/demand/scenes/offer/components/ContractorClock.js","pages/contractor/demand/scenes/offer/components/OfferTilesRow.js","pages/contractor/demand/scenes/offer/CtrOfferPanel.js","pages/contractor/demand/scenes/CtrScenesRouter.js","components/complex/signature/ChooseSignatureTypePopup.js","libs/loadExternalLibrary.js","components/complex/signature/Szafir.js","components/complex/signature/ExternalSignature.js","components/complex/signature/Signature.js","pages/contractor/demand/scenes/CtrStepperPages.js","pages/contractor/demand/CtrDemand.js","pages/contractor/ContractorRouter.js","pages/contractor/ContractorRoot.js","pages/Router.js","components/complex/tutorial/WelcomeTutorial.js","components/complex/tutorial/TourTooltip.js","components/complex/tutorial/tutorial.steps.js","components/complex/tutorial/Tutorial.js","components/popup/save/SaveDialog.js","components/popup/save/SaveDialogError.js","components/popup/save/SaveDialogInfo.js","components/popup/save/Save.js","hooks/useInterval.js","components/popup/session/Session.js","components/popup/registerPopup/RegisterPopup.js","services/UserNavigationService.js","services/ClientService.js","hooks/useInitialize.js","components/popup/confirm/HookConfirmPopup.js","components/popup/alert/HookAlertPopup.js","components/complex/loadingScreen/HookLoadingScreen.js","pages/Root.js","theme/ThemeProvider.js","App.js","serviceWorker.js","index.js"],"names":["getLocale","cname","name","ca","document","cookie","split","i","length","c","charAt","substring","indexOf","getCookie","Tr","key","obj","translateObj","tr","en","pl","undefined","k","find","replace","RegExp","action","type","payload","setResource","id","value","clearResource","addObjectResource","setPrivileges","setSignature","clearSignature","__setStoreValue","__setStoreMultiValue","setContrastColors","setMenuOpen","setSalesNotification","salesNotification","setEzamowieniaOauth","ezamowieniaOauth","clearEzamowieniaOauth","setConfirmCloseStepper","handleConfirm","sectionName","handleSecondConfirm","setConfirmNotifications","confirmNotification","setAlertNotifications","alertNotification","__setSaveStatus","setSaveStatusLoading","saveStatusValues","setSaveStatusClosed","setSaveStatusDialog","setSaveStatusInfo","message","saveStatus","saveStatusMessage","setSaveStatusError","errorMessage","setOpenTutorial","setInnerMenuOpen","setOpenRegisterPopup","setOpenForm","setOpenImporter","setFormDraftLoaded","draftLoaded","setStepperState","state","setStepperStateCloseValidator","closeValidationFunction","clearStepperStateCloseValidator","setStepperStateDeleteFormDraftFunction","deleteFormDraftFunc","clearStepperStateDeleteFormDraftFunction","setStepperStateSaveFormDraftFunction","clearStepperStateSaveFormDraftFunction","createPath","route","params","compile","purchaserBaseRoute","purchaserBaseRoute2","contractorBaseRoute","root","BASE","buyerPaths","BUYER_INIT","MY_PROCEDURE","FAQ","PURCHASER_INIT","PURCHASING_GROUP","ANNUAL_REPORT","ADMIN","DEMAND","ctrPaths","CTR_INIT","CTR_DEMAND","ctrDemand","old","CTR_DEMAND_CORRESPONDENCE_ID","steps","CTR_DEMAND_ID","CTR_DEMAND_ID_CORRESPONDENCE","CTR_DEMAND_ID_OFFER","CTR_DEMAND_ID_OFFER_STAGE","CTR_DEMAND_ID_OFFER_STAGE_ID","CTR_DEMAND_ID_OFFER_STAGE_ID_SECTION","myProcedureSteps","MP_1","MP_2","MP_3","MP_4","MP_CORRESPONDENCE","MP_EMAIL_LIST","MP_NATIONAL_NOTICE","myProcedureStepsTabsEdit","MP_1_ID","MP_2_ID","MP_3_ID","MP_4_ID","MP_CORRESPONDENCE_ID","MP_EMAIL_LIST_ID","MP_NATIONAL_NOTICE_FORM_TYPE_ID","myProcedure","annualReport","MP_ANNUAL_REPORT","MP_ANNUAL_REPORT_YEAR_LIST","MP_ANNUAL_REPORT_REPORT","MP_ANNUAL_REPORT_REPORT_ID","MP_ANNUAL_REPORT_REPORT_ID_TABLE","purchasingGroup","MP_PURCHASING_GROUP","MP_PURCHASING_GROUP_LIST","MP_PURCHASING_GROUP_MEMBER_LIST","MP_PURCHASING_GROUP_TEMPLATES","MP_PURCHASING_GROUP_TEMPLATES_LIST","MP_PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID","MP_PURCHASING_GROUP_GROUP","MP_PURCHASING_GROUP_GROUP_ID","MP_PURCHASING_GROUP_GROUP_ID_EMAIL_LIST","MP_PURCHASING_GROUP_GROUP_ID_STAGE","MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR","MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR_SECTION","purchaserDemand","PURCHASER_DEMAND_ID","PURCHASER_DEMAND_ID_OFFER","PURCHASER_DEMAND_ID_PREVIEW","PURCHASER_DEMAND_ID_PREVIEW_ID_STAGE_ID_SECTION","PURCHASER_DEMAND_ID_OFFER_CONTRACTOR","PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID","PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE","PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID","PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID_SECTION","admin","ADMIN_REGISTRATIONS","ADMIN_REGISTRATIONS_LIST","ADMIN_REGISTRATION_ID","matchOpenDrawerMenu","matchOpenDrawerMenuNotExact","setMenuOpenOnPath","path","window","location","pathname","store","reduxStore","getState","open","includes","item","startsWith","isMenuOpen","dispatch","redirect","setSearchObj","searchObj","search","querystring","stringify","redirectWithoutHistory","redirectReplace","redirectWithSearch","baseRoute","DemandValidation","DemandValidationKeys","COMMISSION","QUESTIONNAIRE","DEALINGS","SCHEDULE","SIWZ","PUBLICATION","EX_POST_GO_TO_FINISH","ESPD","NOTICE","NATIONAL_NOTICE","CONTRACTOR","GUARANTEE","PREPARING_PAPERS_GENERATOR","PREPARING_ADDITIONAL_INFO","OFFERS","DOCUMENTS","CONTRACTOR_VERIFICATION","OFFERS_EVALUATION","OFFER_CHOICE","PRIMARY_TENDER_CHOICE","ADDITIONAL_ROUND_PASSIVE","OFFERS_CHOICE_RESULT","EVALUATION_FINISH","STAGE_FINISH","PAPERS_GENERATOR","AGREEMENTS","EVALUATION_ADDITIONAL_INFO","RESULT_NOTICE","FINISH_DOCUMENTS","DEMAND_PLAN_REALIZATION","FINISH_DEMAND","ARCHIVING","FINISH_ADDITIONAL_INFO","DemandValidationTr","Object","keys","reduce","prev","createItem","trKey","href","hrefExpand","title","createStep","apiId","confirmClosing","label","rp","RouterPath","initialState","stateCloseValidator","stateCloseFunction","createStore","combineReducers","resources","idObject","keyValuePairObject","forEach","privileges","contrast","largeText","clientColors","openTutorial","form","authorize","counter","innerMenu","stepper","saveFormDraftFunc","formValues","dirty","signature","composeWithDevTools","NotFound","Typography","variant","align","ListItem","Icon","onClick","className","classes","classesObj","iconPosition","openInner","url","innerKey","singleLink","tooltip","renderItem","component","shouldRender","isSelected","iconBase","ListItemIcon","clsx","iconOpen","contrastColor","iconContrast","icon","Tooltip","itemClass","onHover","elementColor","mainPadding","button","x","onArrowClick","Box","epmptySpace","iconInnerOpen","innerArrow","leftMargin","ListItemText","textBox","primary","primaryTypographyProps","noWrap","text","rightIcon","defaultProps","withRouter","withStyles","theme","marginLeft","spacing","minWidth","transform","color","palette","contrastText","components","navigation","paddingLeft","whiteSpace","fill","main","background","light","secondary","width","maxWidth","memo","prevProps","nextProps","JSON","paddingTop","paddingBottom","setOpen","ArrowIcon","Logo","purchaser","isContrast","logoLongMem","useMemo","logoLongContrast","logoIconMem","to","image","imageOpen","imageClose","src","alt","connect","height","objectFit","Button","hideTooltip","placement","children","others","disabled","transparentBorder","Boolean","marginRight","border","ListElement","onMouseEnter","onMouseLeave","NewProcedureMenu","anchorEl","onClose","items","useState","anchorItem","setAnchorItem","useEffect","handleClickElement","e","handleMouseEnter","currentTarget","Popper","relatedTarget","attributes","role","Paper","List","map","zIndex","isNonpublicProcedure","procedureType","ProcedureType","NATIONAL_NONPUBLIC_TYPE","NATIONAL_LOWCOST_TYPE","isNationalProcedure","NATIONAL_PUBLIC","NATIONAL_SOCIAL_SERVICES","isEuropeProcedure","EUROPE_PUBLIC","EUROPE_SOCIAL_SERVICES","COMPETITION","DYNAMICPURCHASINGSYSTEM","FRAMEWORKDEMAND","LOWCOST","PUBLIC","RESEARCH","RESEARCHTECHNICAL","SOCIALSERVICES","STANDARDPURCHASEREQUEST","NONPUBLICEXECUTIVE","NATIONAL_LOWCOST","NATIONAL_RESEARCH_TYPE","CONCESSION","ProcedureTypeTr","ProcedureType_PZP_2021","values","newDeamandFunction","passive","procedures","proc","system","push","ListAddButton","setAnchorEl","buttonLabel","fullWidth","size","buttonTooltipWraper","menuItems","padding","marginBottom","display","devMode","process","redirect_uri","origin","SERVER_URL","EXT_JS_LIBRARIES","jquery","encodeURIComponent","pjson","version","szafir","BASE_MP","oauth","AUTHORIZE","TOKEN","LOGOUT","base","DEMANDS","RFX","CPV_LIST","MEASURE_UNITS","ITEMS","USER","SALES","POLL","UPLOAD","csrf","encryptRoundId","CHANG_LANGUAGE","language","country","backUrl","sales","SALES_NOTIFICATION_SEND","functionalityName","poll","POLL_SAVE_RATING","POLL_GET","pollType","DEMAND_BASE","RFX_BASE","__DEMAND_AUTOSAVE","__DEMAND_EXPOST_AUTOSAVE","demand","DEMAND_SAVE","DEMAND_SAVE_EX_POST","DEMAND_GET_NEW","DEMAND_GET_BY_ID","DEMAND_COMMISION_USER_HISTORY","DEMAND_AUTOSAVE","DEMAND_AUTOSAVE_CHECK","DEMAND_EXPOST_AUTOSAVE","DEMAND_EXPOST_AUTOSAVE_CHECK","DEMAND_PREVIEW","DEMAND_ACTIONS","DEMAND_DELETE","DEMAND_CLONE","DEMAND_REALTED_OBJECTS","DEMAND_PRIVILEGES","DEMAND_RFX_PRIVILEGES","DEMAND_UPDATE_NUMBER","DEALINGS_AUTOSAVE_DEALING","dealingId","dealings","DEALINGS_SINGLE","demandId","DEALINGS_LIST","DEALINGS_SAVE","DEALINGS_VALIDATE","DEALINGS_DELETE","DEALINGS_AUTOSAVE","DEALINGS_AUTOSAVE_CHECK","DEALINGS_AUTOSAVE_BATCH","DEALINGS_IMPORT","DEALINGS_EXPORT","DEALINGS_WITH_CRITERION","critId","DEALINGS_MATCHING_CRITERION","stageId","criteriumType","DEALING","dealing","DEALING_REALIZATION_VALUE","DEALING_FINAL_REALIZATION_VALUE","DEALING_REALIZATION_VALUE_STATUS","DEALING_REALIZATION_VALUE_PUBLISH","DEALING_REALIZATION_VALUE_UNPUBLISH","papersGenerator","RFX_REQUEST_POSITION","SWZ_PARAMS","RFX_INVITED_SUPPLIER_WITH_OFFER","RFX_INVITED_SUPPLIER_POSITION","supplierId","SIWZ_GET_GENERATOR_PARAMS","XMM_UZP_PRESIDENT_PAPER","GET_SUPPLIER_ATTACHMENTS_VERIFICATION","PAPERS_GENERATOR_PRINT","identity","paper","PAPERS_GENERATOR_PRINT_SHARE","shareSystem","PAPERS_GENERATOR_DEMAND_REPORT","report","PAPERS_GENERATOR_DEMAND_ATTACHMENT_VERIFICATION_REPORT","PAPERS_GENERATOR_CORRESPONDENCE_ATTACHMENT_VERIFICATION_REPORT","PAPERS_GENERATOR_DEMAND_PROCESS_HISTORY","EMAIL_LIST","emailList","EMAIL_LIST_ACTIONS","EMAIL_DETAILS","emailId","EMAIL_PRINT","schedule","SCHEDULE_AUTOSAVE","SCHEDULE_AUTOSAVE_CHECK","SCHEDULE_SAVE","SCHEDULE_VALIDATE","commission","COMMISSION_AUTOSAVE","COMMISSION_AUTOSAVE_CHECK","COMMISSION_VALIDATE","COMMISSION_AVAILABLE","COMMISSION_HISTORY","COMMISSION_DELETE_COMMISION_MEMBER","COMMISSION_MARK_HISTORICAL_MEMBER","COMMISSION_EXTERNAL","GUARANTEE_AUTOSAVE","guarantee","GUARANTEE_VALIDATE","GUARANTEE_AUTOSAVE_CHECK","ESPD_AUTOSAVE","espd","ESPD_SAVE","ESPD_VALIDATE","ESPD_AUTOSAVE_CHECK","ESPD_EXPORT_FOR_DEMAND","ESPD_EXPORT_FOR_DEALING","ESPD_PRINT_FOR_DEMAND","ESPD_PRINT_FOR_DEALING","CONTRACTOR_INVITE","contractor","CONTRACTOR_ADD","CONTRACTOR_GET_LIST","CONTRACTOR_GET_DETAILS","contractorDepartmentId","CONTRACTOR_REMOVE","CONTRACTOR_ONEPLACE","CONTRACTOR_VALIDATE","CONTRACTOR_CHECK","CONTRACTOR_GET_NIP_LIST","contractorVerification","CONTRACTOR_VERIFICATION_LIST","CONTRACTOR_VERIFICATION_STATUS","CONTRACTOR_VERIFICATION_PROCEDURE","CONTRACTOR_VERIFICATION_VALIDATE","user","USER_DATA","USER_PROFILE","USER_LOGGED_MENU_LIST","USER_SESSION_TIME","USER_SERVER_TIME","header","HEADER","client","CLIENT_LOGO","CLIENT_COLORS","publish","PUBLISH_DEMAND","IS_PUBLISH_DEMAND","PUBLISH_OJS_NOTICE","ROLLBACK_OJS_NOTICE","CHECK_OJS_NOTICE","CHECK_PUBLICATION_LIMIT","PUBLISH_DEMAND_EX_POST","notice","NOTICE_PREVIEW","NOTICE_VALIDATE","SIWZ_ID","source","siwz","SIWZ_MOVE_FROM_REPO","SIWZ_VALIDATE","SIWZ_VALIDATE_DOCUMENTS","SIWZ_ID_DOWNLOAD_HISTORY","SIWZ_ID_UPDATE_DESCRIPTION","SIWZ_ID_UPDATE_SHARE","SIWZ_ID_UPDATE_STATUS","SIWZ_ID_PUBLISH","SIWZ_ID_VERSIONS","SIWZ_ID_UNPUBLISH","SIWZ_ID_GET_DOWNLOAD_URL","openInBrowser","SIWZ_EDITABLE","SIWZ_TYPES","SIWZ_DOWNLOAD_ALL","SIWZ_ADD_BZP_NOTICE","SIWZ_POST_PRINT_SWZ","SIWZ_POST_SHARE_SWZ","statistic","STATISTIC_CURRENT_ROUND","STATISTIC","roundId","SUPPLIERS","supplier","SUPPLIERS_ADD","SUPPLIERS_INVITE","SUPPLIERS_LIST","SUPPLIERS_CHANGE_EXTERNAL_SIGN","rfxRound","RFX_ROUND_CANCEL","RFX_ROUND_PRIVILEGES","RFX_OFFERS_BASE","RFX_DECRYPTION_BASE","offers","RFX_OFFERS_LIST","RFX_OFFERS_SEND_INVITE","RFX_OFFERS_ATTACHMENTS","RFX_OFFERS_ENVELOPE","RFX_OFFERS_ENVELOPE_ID","offerEnvelopeId","RFX_OFFERS_ADDITIONAL_ROUND_OFFERS","RFX_OFFERS_ACTIONS","RFX_OFFERS_SUMMARY","RFX_OFFERS_PUBLIC_SESSION_START","RFX_OFFERS_PUBLIC_SESSION_STATUS","RFX_OFFERS_PUBLIC_SESSION_PROGRESS","RFX_OFFERS_DECRYPTION_START","RFX_OFFERS_DECRYPTION_STATUS","RFX_OFFERS_DECRYPTION_STATUS_LIGHT","RFX_OFFERS_DECRYPTION_PROGRESS","RFX_OFFERS_PUBLIC_SESSION_ONLINE_SAVE","RFX_OFFERS_PUBLIC_SESSION_ONLINE_STATUS","REPO","REPO_FOLDER","folderId","REPO_FILE","fileId","repo","REPO_EDITABLE","REPO_PUBLISH_OPENING_OFFER_FOLDER","REPO_VISIBILITY_TYPES","REPO_FILES_VISIBILITY","REPO_FOLDER_SHARE","REPO_DOWNLOAD_ALL","REPO_DELETE_ALL_FOLDER_FILES","REPO_FILE_VISIBILITY","REPO_FILE_SHARE","REPO_FILE_DOWNLOAD_HISTORY","REPO_FILE_UPDATE_DESCRIPTION","REPO_FILE_GET_DOWNLOAD_URL","DEMAND_MODIFICATION","modification","DEMAND_MODIFICATION_PUBLISH","DEMAND_MODIFICATION_CANCEL","DEMAND_MODIFICATION_PUBLISH_OJS","DEMAND_MODIFICATION_ROLLBACK_OJS","DEMAND_MODIFICATION_OJS_STATUS","DEMAND_MODIFICATION_CHANGED","DEMAND_SECTIONS","sections","DEMAND_PREPARING_SECTIONS","DEMAND_EVALUATION_SECTIONS","DEMAND_FINISHING_SECTIONS","OFFER_EVALUATION","offerEvaluation","OFFER_EVALUATION_LIST","viewMode","roundType","OFFER_EVALUATION_LIST_UPDATE_STATUS","OFFER_EVALUATION_LIST_UPDATE_SCORE","OFFER_EVALUATION_VALIDATE","offerChoice","OFFER_CHOICE_CANCEL_WHERE_NO_OFFERS","OFFER_CHOICE_POSITIONS_WITH_NO_OFFER","OFFER_CHOICE_PREPARE_ADDITIONAL_ROUND","toLowerCase","OFFER_CHOICE_PREPARE_AUCTION_INFO","positionId","OFFER_CHOICE_REVOKE","OFFER_CHOICE_CREATE_ADDITIONAL_ROUND","OFFER_CHOICE_GET_POSITION","OFFER_CHOICE_VALIDATE","OFFER_CHOICE_JUSTIFICATIONS","OFFER_CHOICE_PRIMARY_CHECK","OFFER_CHOICE_PRIMARY_DO_NEGOTIATIONS","OFFER_CHOICE_PRIMARY_DO_OFFER_CHOICE","additionalRound","ADDITIONAL_ROUND_CHANGE_DATES","ADDITIONAL_ROUND","DEMAND_ADDITIONAL_INFO","demandAdditionalInfo","DEMAND_ADDITIONAL_INFO_VALIDATE","DEMAND_ADDITIONAL_INFO_AUTOSAVE","DEMAND_ADDITIONAL_INFO_AUTOSAVE_CHECK","AUCTION_RFX","AUCTION","auction","AUCTION_PREPARE","AUCTION_CREATE","AUCTION_EDIT_DATES","AUCTION_PUBLISH","AUCTION_UNPUBLISH","AUCTION_PAUSE","AUCTION_RESUME","AUCTION_CANCEL","AUCTION_DELETE","AUCTION_DOWNLOAD_INVITATION","AUCTION_ACCEPT","auctionId","AUCTION_DETAILS","OFFER_CHOICE_RESULT","OFFER_CHOICE_RESULT_ID","roundResultId","OFFER_CHOICE_RESULT_FILE","OFFER_CHOICE_RESULT_FILE_ID","resultFileId","offerChoiceResult","OFFER_CHOICE_RESULT_GET","OFFER_CHOICE_RESULT_PRINT","OFFER_CHOICE_RESULT_SHARE","OFFER_CHOICE_RESULT_PUBLISH_UNTIL_DATE","OFFER_CHOICE_RESULT_FILE_PUBLISH","OFFER_CHOICE_RESULT_FILE_UNPUBLISH","OFFER_CHOICE_RESULT_FILE_DELETE","OFFER_CHOICE_RESULT_FILE_DOWNLOAD_HISTORY","OFFER_CHOICE_RESULT_FILE_SHARE","OFFER_CHOICE_RESULT_FILE_DOWNLOAD_URL","OFFER_CHOICE_RESULT_VALIDATE","agreements","AGREEMENTS_AVAILABLE","AGREEMENTS_CREATED","AGREEMENTS_CREATE_NO_AGREEMENT","AGREEMENTS_CREATE_AGREEMENT","AGREEMENTS_AVAILABLE_ORGANIZATIONS","AGREEMENTS_DELETE","objId","AGREEMENTS_DELETE_AGR","AGREEMENTS_VALIDATE","RESULT_NOTICE_ID","resultNoticeId","RESULT_NOTICE_ATTACHMENT_ID","resultNoticeAttachmentId","resultNotice","RESULT_NOTICE_BZP","RESULT_NOTICE_PUBLISH_OJS_NOTICE","RESULT_NOTICE_CHECK_OJS_NOTICE","RESULT_NOTICE_ROLLBACK_OJS_NOTICE","RESULT_NOTICE_VALIDATE","RESULT_NOTICE_DELETE","RESULT_NOTICE_PUBLISH","RESULT_NOTICE_UNPUBLISH","RESULT_NOTICE_ATTACHMENT_PUBLISH","RESULT_NOTICE_ATTACHMENT_UNPUBLISH","RESULT_NOTICE_DESCRIPTION","RESULT_NOTICE_DOWNLOAD_FILE_URL","RESULT_NOTICE_DOWNLOAD_FILE_HISTORY","evaluationFinish","demandPlanRealization","DEMAND_PLAN_REALIZATION_VALIDATE","finishDemand","FINISH_DEMAND_BACK_TO_OFFER_EVALUATION","FINISH_DEMAND_BACK_TO_RESULT_NOTICE","FINISH_DEMAND_WITHDRAWAL_NOTICE_DATE","FINISH_DEMAND_CANCEL","FINISH_DEMAND_FINISH","FINISH_DEMAND_VALIDATE","archiving","ARCHIVING_SCHEDULE","ARCHIVING_VALIDATE","ADDITIONAL_ROUNDS_PASSIVE","additionalRoundsPassive","ADDITIONAL_ROUNDS_PASSIVE_ROUND","ADDITIONAL_ROUNDS_PASSIVE_AVAILABLE_CONTRACTORS","ADDITIONAL_ROUNDS_PASSIVE_VALIDATE","CORRESPONDENCE_BASE","CORRESPONDENCE_BUYER_BASE","correspondenceBuyer","CORRESPONDENCE_BUYER_CTR_IN_ROUND","CORRESPONDENCE_BUYER_THREAD_LIST","CORRESPONDENCE_BUYER_NEW_MESSAGES","CORRESPONDENCE_BUYER_SEARCH","CORRESPONDENCE_BUYER_THREAD_ADD","CORRESPONDENCE_BUYER_THREAD_AS_CRT_SEND","CORRESPONDENCE_BUYER_BULK_MESSAGES_SEND","CORRESPONDENCE_BUYER_BULK_MESSAGES_PUBLISH","CORRESPONDENCE_BUYER_PRIVILEGES","CORRESPONDENCE_BUYER_PRINT","before","CORRESPONDENCE_BUYER_SHARE","CORRESPONDENCE_BUYER_MESSAGE_LIST","threadId","CORRESPONDENCE_BUYER_MESSAGE_CREATE","CORRESPONDENCE_BUYER_MESSAGE_MARK_AS_READ","CORRESPONDENCE_BUYER_FLAG","CORRESPONDENCE_BUYER_UNFLAG","CORRESPONDENCE_BUYER_THREAD_EMAIL_LIST","CORRESPONDENCE_BUYER_MESSAGE_SEND","messageId","CORRESPONDENCE_BUYER_MESSAGE_PUBLISH","CORRESPONDENCE_BUYER_MESSAGE_UPDATE","CORRESPONDENCE_BUYER_MESSAGE_DELETE","CORRESPONDENCE_BUYER_ATTACHMENT_URL","attachmentId","CORRESPONDENCE_BUYER_MESSAGE_EMAIL_DELIVERY","CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_ZIP","CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_CHECK_LIMIT","CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_VERIFY","CORRESPONDENCE_BUYER_CONTRACTOR_EMAIL_LIST","departmentId","CORRESPONDENCE_CONTRACTOR_BASE","correspondenceContractor","CORRESPONDENCE_CONTRACTOR_THREAD_LIST","CORRESPONDENCE_CONTRACTOR_NEW_MESSAGES","CORRESPONDENCE_CONTRACTOR_SEARCH","CORRESPONDENCE_CONTRACTOR_THREAD_ADD","CORRESPONDENCE_CONTRACTOR_PRIVILEGES","CORRESPONDENCE_CONTRACTOR_PRINT","CORRESPONDENCE_CONTRACTOR_MESSAGE_LIST","CORRESPONDENCE_CONTRACTOR_MESSAGE_CREATE","CORRESPONDENCE_CONTRACTOR_MESSAGE_MARK_AS_READ","CORRESPONDENCE_CONTRACTOR_FLAG","CORRESPONDENCE_CONTRACTOR_UNFLAG","CORRESPONDENCE_CONTRACTOR_MESSAGE_UPDATE","CORRESPONDENCE_CONTRACTOR_MESSAGE_SEND","CORRESPONDENCE_CONTRACTOR_MESSAGE_DELETE","CORRESPONDENCE_CONTRACTOR_ATTACHMENT_URL","CORRESPONDENCE_CONTRACTOR_MESSAGE_ATTACHMENTS_ZIP","DEMAND_OFFERS_BASE","DEMAND_OFFERS_STAGE_BASE","demandOffers","DEMAND_OFFERS_CONTRACTOR_STAGES_LIST","DEMAND_OFFERS_CONTRACTOR_STAGE_SECTIONS_LIST","DEMAND_OFFERS_CONTRACTOR_STAGE_TRANSLATIONS","DEMAND_OFFERS_CONTRACTOR_STAGE_SECTION","section","DEMAND_OFFERS_STAGE_CURRENT_ROUND","DEMAND_OFFERS_CONTRACTOR_STAGE_PASSWORD","DEMAND_OFFERS_VALIDATE","DEMAND_OFFERS_STAGE_CONTRACTOR_GENERAL_INFO_BASE","demandOffersGeneralInfo","DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_BASIC_DATA","DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS","DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS_DOWNLOAD_URL","documentId","DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS_DOWNLOAD_ZIP","DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_PUBLIC_ANSWERS","DEMAND_OFFERS_STAGE_OFFER_BASE","demandOffersOffer","DEMAND_OFFERS_STAGE_CONTRACTOR_OFFER","DEMAND_OFFERS_OFFER_MODE","stage","mode","DEMAND_OFFERS_OFFER_MODE_POSITIONS","DEMAND_OFFERS_OFFER_MODE_FILES","DEMAND_OFFERS_OFFER_MODE_TEMPLATE","DEMAND_OFFERS_OFFER_MODE_FILE_DOWNLOAD_URL","DEMAND_OFFERS_OFFER_MODE_FILE_DOWNLOAD_ZIP","DEMAND_OFFERS_OFFER_FILE","DEMAND_OFFERS_OFFER_FILES","DEMAND_OFFERS_OFFER_FILE_ID","DEMAND_OFFERS_OFFER_FILE_ID_SIGN_FILE","DEMAND_OFFERS_OFFER_ESPD","DEMAND_OFFERS_OFFER_ESPDS","DEMAND_OFFERS_OFFER_ESPD_ID","espdId","DEMAND_OFFERS_OFFER_ESPD_ID_SIGN_FILE","DEMAND_OFFERS_OFFER_ESPD_MP_APP_URL","DEMAND_OFFERS_OFFER_ESPD_EXPORT_FILE_URL","DEMAND_OFFERS_OFFER_MODE_ESPD_DOWNLOAD_URL","DEMAND_OFFERS_OFFER_PLACE_OFFER","DEMAND_OFFERS_OFFER_WITHDRAW_OFFER","DEMAND_OFFERS_OFFER_SIGN_OFFER","DEMAND_OFFERS_OFFER_SIGN_WITHDRAW","DEMAND_OFFERS_OFFER_DOC_TO_SIGN","DEMAND_OFFERS_OFFER_WITHDRAW_DOC_TO_SIGN","DEMAND_OFFERS_OFFER_STOP_SIGNING_OPERATION","DEMAND_OFFERS_OFFER_REQUIRE_WITHDRAW_ENCRYPTION","DEMAND_OFFERS_OFFER_DELETE_OFFER","DEMAND_OFFERS_OFFER_POSITION","DEMAND_OFFERS_OFFER_MODE_POSITION_ID","DEMAND_OFFERS_OFFER_SNAPSHOTS","DEMAND_OFFERS_OFFER_SNAPSHOT_ID","snapshotId","DEMAND_OFFERS_OFFER_VERIFICATIONS","DEMAND_OFFERS_OFFER_VERIFICATION_BEFORE_PLACE","DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE","demandAdditionalOffersOffer","DEMAND_ADDITIONAL_OFFERS_OFFER_MODE","DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_POSITIONS","DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILES","DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILE_DOWNLOAD_URL","DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILE_DOWNLOAD_ZIP","DEMAND_ADDITIONAL_OFFERS_OFFER_FILE","DEMAND_ADDITIONAL_OFFERS_OFFER_FILES","DEMAND_ADDITIONAL_OFFERS_OFFER_FILE_ID","DEMAND_ADDITIONAL_OFFERS_OFFER_FILE_ID_SIGN_FILE","DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_ESPD_DOWNLOAD_URL","DEMAND_ADDITIONAL_OFFERS_OFFER_PLACE_OFFER","DEMAND_ADDITIONAL_OFFERS_OFFER_WITHDRAW_OFFER","DEMAND_ADDITIONAL_OFFERS_OFFER_SIGN_OFFER","DEMAND_ADDITIONAL_OFFERS_OFFER_SIGN_WITHDRAW","DEMAND_ADDITIONAL_OFFERS_OFFER_DOC_TO_SIGN","DEMAND_ADDITIONAL_OFFERS_OFFER_WITHDRAW_DOC_TO_SIGN","DEMAND_ADDITIONAL_OFFERS_OFFER_STOP_SIGNING_OPERATION","DEMAND_ADDITIONAL_OFFERS_OFFER_REQUIRE_WITHDRAW_ENCRYPTION","DEMAND_ADDITIONAL_OFFERS_OFFER_DELETE_OFFER","DEMAND_ADDITIONAL_OFFERS_OFFER_POSITION","DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_POSITION_ID","DEMAND_ADDITIONAL_OFFERS_OFFER_SNAPSHOTS","DEMAND_ADDITIONAL_OFFERS_OFFER_SNAPSHOT_ID","DEMAND_ADDITIONAL_OFFERS_OFFER_VERIFICATIONS","DEMAND_ADDITIONAL_OFFERS_OFFER_VERIFICATION_BEFORE_PLACE","DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE","demandAdditionalAuction","DEMAND_ADDITIONAL_AUCTIONS_OFFER_AUCTIONS","DEMAND_ADDITIONAL_AUCTIONS_OFFER_AUCTIONS_ASSIGN","DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE","DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_ESPD_DOWNLOAD_URL","DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_FILE_DOWNLOAD_URL","DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_FILES","DEMAND_ADDITIONAL_AUCTIONS_OFFER_POSITION","DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_POSITION_ID","DEMAND_ADDITIONAL_AUCTIONS_OFFER_SNAPSHOTS","DEMAND_ADDITIONAL_AUCTIONS_OFFER_SNAPSHOT_ID","DEMAND_PREVIEW_STAGE_OFFER_BASE","demandPublicationPreview","DEMAND_PREVIEW_OFFER_MODE","DEMAND_PREVIEW_OFFER_MODE_SECTION","DEMAND_PREVIEW_OFFER_MODE_POSITION_ID","DEMAND_PREVIEW_OFFER_MODE_POSITION_ID_PRINT","integrations","SHAREPOINT","EZDRP","EZDPUW","EZDPUW_DOCUMENTS","caseId","EZAMOWIENIA_BASE","ezamowienia","EZAMOWIENIA_AUTHORIZATION_STATUS","EZAMOWIENIA_REVOKE_TOKEN","ANNUAL_REPORT_BASE","ANNUAL_REPORT_REPORT_YEAR","year","ANNUAL_REPORT_REPORT_YEAR_AVAILABLE_ORGS","ANNUAL_REPORT_REPORT_ID","reportId","ANNUAL_REPORT_REPORT_ID_ACTION","ANNUAL_REPORT_REPORT_ID_FORM_NAME","formName","ANNUAL_REPORT_REPORT_ID_INITIALIZE_FORM_NAME","ANNUAL_REPORT_REPORT_ID_INITIALIZE_FROM_PREV_FORM_NAME","ANNUAL_REPORT_REPORT_ID_INITIALIZE_FORM_NAME_TABLE_ID","tableIdentity","ANNUAL_REPORT_DICTIONARIES","ANNUAL_REPORT_TRANSLATIONS","CONTRACT_NOTICE","nationalNotice","NATIONAL_NOTICE_VALIDATE","NATIONAL_NOTICE_CONTRACT_NOTICE","NATIONAL_NOTICE_CONTRACT_NOTICE_CREATE_NEW_VERSION","NATIONAL_NOTICE_CONTRACT_NOTICE_DRAFT","NATIONAL_NOTICE_CONTRACT_NOTICE_TRANSLATIONS","NATIONAL_NOTICE_CONTRACT_NOTICE_DICTIONARIES","NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH","NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_UPDATE","NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_ROLLBACK","NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_UPDATE_ROLLBACK","NATIONAL_NOTICE_CONTRACT_NOTICE_STATUS","NATIONAL_NOTICE_CONTRACT_MODIFICATION_NOTICE_STATUS","NATIONAL_NOTICE_CONTRACT_NOTICE_DYNAMIC_DICTIONARIES","PURCHASING_GROUP_ID","groupId","PURCHASING_GROUP_LIST","PURCHASING_GROUP_LIST_ACTIONS","PURCHASING_GROUP_MEMBER_LIST","PURCHASING_GROUP_HEADER","PURCHASING_GROUP_RELATED_OBJECTS","PURCHASING_GROUP_BASIC_DATA","PURCHASING_GROUP_ARCHIVE_LIST","archiveType","PURCHASING_GROUP_ARCHIVE_ID","archiveId","PURCHASING_GROUP_COMMISSION","PURCHASING_GROUP_COMMISSION_HISTORY","PURCHASING_GROUP_SCHEDULE","PURCHASING_GROUP_MEMBERS","PURCHASING_GROUP_MEMBERS_AVAILABLE_CONCERNS","PURCHASING_GROUP_MEMBERS_MEMBER","PURCHASING_GROUP_MEMBERS_MEMBER_ID","memberId","PURCHASING_GROUP_MEMBERS_MEMBER_ID_REJECT","PURCHASING_GROUP_MEMBERS_MEMBER_ID_RESTORE","PURCHASING_GROUP_MEMBERS_MEMBER_ID_CONFIRM_PARTICIPATION","PURCHASING_GROUP_MEMBERS_MEMBER_ID_WITHDRAW_PARTICIPATION","PURCHASING_GROUP_MEMBERS_MEMBER_ID_RESEND_INVITE_NOTIFICATION","PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT","PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT_ID","PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT_ID_URL","PURCHASING_GROUP_MEMBERS_MEMBER_ID_USER","PURCHASING_GROUP_MEMBERS_MEMBER_ID_USER_ID","userId","PURCHASING_GROUP_MEMBERS_DOCUMENTS","apiPath","PURCHASING_GROUP_MEMBERS_DOCUMENTS_GENERATE_GROUP_AGREEMENT","PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID","PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_PUBLISH","PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_UNPUBLISH","PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_URL","PURCHASING_GROUP_SWZ_DOCUMENTS","PURCHASING_GROUP_SWZ_DOCUMENTS_ID","PURCHASING_GROUP_SWZ_DOCUMENTS_ID_PUBLISH","PURCHASING_GROUP_SWZ_DOCUMENTS_ID_UNPUBLISH","PURCHASING_GROUP_SWZ_DOCUMENTS_ID_URL","PURCHASING_GROUP_OPINION","PURCHASING_GROUP_OPINION_ID","opinionId","PURCHASING_GROUP_OPINION_ID_MARK_AS_READ","PURCHASING_GROUP_OPINION_AVAILABLE_MEMBERS","PURCHASING_GROUP_OPINION_MEMBER_ID","PURCHASING_GROUP_OPINION_ID_MESSAGE_NEW","PURCHASING_GROUP_OPINION_ID_MESSAGE_ID","PURCHASING_GROUP_FINISH_PREPARING","PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_TEMPLATE_FORM_EXPORT","PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_LEADING_DOCUMENT","PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_MANAGEMENT_RESOLUTION","PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DRAFT_GROUP_AGREEMENT","PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DOCUMENT_TO_SIGN","PURCHASING_GROUP_COLLECTING_SCHEDULE","PURCHASING_GROUP_COLLECTING_TEMPLATE","PURCHASING_GROUP_COLLECTING_TEMPLATE_AVAILABLE","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_ID","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID","formId","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_DRAFT","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_CLEAR_DRAFT","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ACCEPT","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_REJECT","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ASK_FOR_EDIT","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ALLOW_EDIT","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_REJECT_EDIT","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ARCHIVE_LIST","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ARCHIVE_ID","PURCHASING_GROUP_FINISH","PURCHASING_GROUP_FINISH_DEALINGS_CHANGED","PURCHASING_GROUP_SECTIONS","purchasingGroupSections","PURCHASING_GROUP_SECTIONS_PREPARING","PURCHASING_GROUP_SECTIONS_COLLECTING_DATA","PURCHASING_GROUP_SECTIONS_SECTION","PURCHASING_GROUP_TEMPLATES","purchasingGroupTemplate","PURCHASING_GROUP_TEMPLATES_LIST","PURCHASING_GROUP_TEMPLATES_LIST_HAS_EDIT","PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID","templateId","PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_ACTIVATE","PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_DEACTIVATE","PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_CLONE","ADMIN_USER_REGISTRATION","adminUserRegistrations","ADMIN_USER_REGISTRATION_LIST","ADMIN_USER_REGISTRATION_AVAILABLE_ORGS","ADMIN_USER_REGISTRATION_ID","regId","ADMIN_USER_REGISTRATION_ID_REJECT","ADMIN_USER_REGISTRATION_ID_ACCEPT","ADMIN_USER_REGISTRATION_ID_ORGANIZATION","extensions","hotJarSettings","hjid","hjsv","a","createElement","target","setAttribute","click","_sem","semaphore","_paramsSerializer","_executeRequest","async","headers","auth","parse","localStorage","getItem","request","Axios","access_token","paramsSerializer","sessionTime","endTime","moment","add","time","_refreshSessionTime","_logout","removeItem","substr","btoa","redUrl","_refresToken","console","info","res","method","Endpoints","client_id","grant_type","refresh_token","setItem","data","error","_restRequest","acquire","args","response","status","HttpCodes","release","RestRequest","RestRequestGET","other","RestRequestDELETE","RestRequestPOST","RestRequestPUT","RestRequestBLOB","responseType","ob","success","contentDisposition","decodeURIComponent","fileUrl","URL","createObjectURL","Blob","downloadFile","revokeObjectURL","RestRequestBLOBBase64Encoded","blob","Promise","resolve","_","reader","FileReader","onloadend","result","readAsDataURL","resp","SoftLogout","code","LogoutButton","LogoutIcon","OAuthService","navElements","userLoggedMenuList","justifyContent","borderRightColor","onlyContrast","drawerOpen","transition","transitions","default","overflowX","drawerClose","close","innerListItem","icons","my_demands","StarIcon","purchasingGroups","GroupWorkIcon","all_demands","ShoppingCartIcon","deputy","PeopleIcon","public_area","PublicIcon","edocument","DescriptionIcon","GavelIcon","intranet","LocalLibraryIcon","InsertDriveFileIcon","administration","HowToRegIcon","contractor_area","MonetizationOnIcon","AssessmentIcon","Drawer","OpenElement","newDemandProcedures","elements","Fragment","menuElementList","pop","innerItem","j","InvertColorsOffIcon","InvertColorsIcon","IconButton","setLargeText","userData","userProfile","linkText","textDecoration","login","Grid","container","direction","alignItems","fontWeight","link","props","xmlns","viewBox","d","useStyle","makeStyles","column","flexGrow","GridBlock","itemClassName","justify","wrap","gridClasses","React","Children","child","CancelButton","HelpDialog","Dialog","PaperProps","DialogTitle","DialogContent","content","dialogButtons","handleClickButton","DialogActions","textAlign","popup","smallContainer","marginTop","common","white","Help","flag","ChangeLanguageButtonButtons","locale","setLocale","csrfInput","append","body","appendChild","submit","margin","left","appBar","borderBottom","backgroundColor","greyBackground","rootBorder","menuMargin","toolbar","rightGrid","beta","buttonLight","logo","maxHeight","demandHeader","goSoStatus","oldPlatformRoundStatusUrl","changeLocale","redirectUsingPOST","AppBar","elevation","position","Toolbar","PolandSvg","GreatBritainSvg","AcUnitIcon","IconCloseButton","CloseIcon","minHeight","top","ref","CircularProgress","centered","closeButtonBox","right","closeButton","loading","contentClassName","titleCentered","transitionDuration","paperClassName","dialogActions","htmlId","buttonContainer","isOpera","opr","addons","opera","navigator","userAgent","isFirefox","InstallTrigger","isSafari","test","HTMLElement","pushNotification","toString","isIE","documentMode","isEdge","StyleMedia","isChrome","chrome","webstore","runtime","isBlink","CSS","object","checkCondition","changes","isEqual","isObject","changesObj","DEMAND_VALIDATION_RESOURCE_ID","getPreparingSections","clear","getSections","getEvaluationSections","getFinishingSections","urlFn","clearDemandValidationResources","getPrivileges","cleanupPrivileges","clearPrivileges","CORRESPONDENCE_PRIVILEGE_STORE_KEY","RFX_PRIVILEGE_STORE_KEY","DEMAND_PRIVILEGE_STORE_KEY","DEMAND_RESOURCE_ID","DEMAND_AVAILABLE_FORM_TYPES_RESOURCE_ID","DEMAND_AVAILABLE_REALIZATIONS_RESOURCE_ID","DEMAND_AVAILABLE_ORGANIZATIONS_RESOURCE_ID","DEMAND_NUMBER_AUTOMATED","DEMAND_CASE_CLASSIFICATION_SYMBOL_REQUIRED","createParams","exPost","queryParams","_save","enableOptional","termOption","termDate","termDescription","orderValueDecisionDate","auctionMade","digitalSign","euFunded","formatDate","format","agreementRealizationDate","date","_formatFormValues","objectExtension","getValidate","DemandSectionsService","required","_handleSaveResponse","msg","prop","errors","prototype","hasOwnProperty","call","Array","isArray","demandAvailableRealizationTypes","demandAvailableOrganizations","demandAvailableFormTypes","numberingAutomated","caseClassificationSymbolRequired","resource","PrivilegeService","basicInformation","NUMBER","NAME","DESCRIPTION","CONTACT_PERSON","CONTACT_PERSON_PHONE","PURCHASER_PHONE","PURCHASER_FAX","PURCHASER_EMAIL","PURCHASER_ADDITIONAL_INFO","EOD","SINGLE_DEALING_JUSTIFICATION","ESTIMATION_BASE","FINANCIAL_SOURCE","TERM_DESCRIPTION","FULL_NAME","EU_PROJECT_NUMBER","POSTCODE_PL","POSTCODE","EMAIL","NIP_MIN","NIP_MAX","PESEL_PL","NIP_PL","CITY","ADDRESS","organization","PLANNED_CONTRACTOR_NUMBER","condition","OTHER_NAME","criteriaSection","parameters","itemParameters","documents","correspondence","SUBJECT","fn","toJSON","this","emailRegexp","contractorlimits","InputLimits","Yup","usedMessage","trim","maxStringFunc","max","minStringFunc","min","number","Math","abs","amountMin","inclusive","val","fVal","parseFloat","isNaN","amountMaxDecimal100","noZero","pValue","positive","matches","stringExactlyBase","nullable","vatinPL","optional","weight","sum","controlNumber","parseInt","weightCount","dateOrDateTimeValid","isMoment","isValid","String","dateMax","dateToCompare","endOf","isBefore","dateMin","startOf","dateTimeMin","dateTimeMax","stringNoRq","string","defTrKey","noOnlyWhitespaces","stringExactly","stringNotOneOf","notOneOf","stringNotOneOfBase","stringExactlyMax","stringMax","stringMin","stringMinAndMax","stringMaxNoRq","typeError","numberMax","numberMin","numberMin0","numberMaxNoZero","numberPositiveOptional","numberPositiveNoZero","numberMaxMin","keyMin","keyMax","fieldName","decimalNumber","bigDecimal","bigDecimalOptional","integerMin","integer","integerMax","integerMinMax","email","emailMax","emailMaxNoRq","amount","amountBasicRequired","amountOptional","amountBasicOptional","amountMax100NoZero","amountMax100","amountMax100Optional","arrayOfShape","shape","arrayOf","shema","of","fields","lazy","arrayRequired","formValue","any","anyRequired","immediatelyError","dateMaxNoRq","dateMinNoRq","dateTimeNoReq","dateTimeValid","dateTimeMinNoRq","dateTimeMaxNoRq","vatinPLOptional","vatinOrPeselPL","vatinValid","peselValid","peselPL","requiredBoolean","mixed","requiredObject","urlOptional","urlMax","urlMaxOptional","phoneOptional","InnerForm","htmlFormId","setForm","formikProps","submitLabel","afterSubmitFunc","submitForm","then","resetForm","style","autoComplete","onSubmit","handleSubmit","Form","onReset","initialValues","initialTouched","validationSchema","ValidationShema","onChange","validateOnMount","validateOnChange","validateOnBlur","enableReinitialize","actions","setSubmitting","Title","Divider","titleClassName","divider","defaultValue","idArray","innerReg","reg","_value","TextInput","placeholder","noError","noErrorSpace","multiline","endAdornment","limit","step","onBlur","showErrorImmediately","skipCheckTouched","errorValue","getObjectValue","touched","editable","isError","lettersLeft","_label","_placeholder","setFieldTouched","inputType","INPUT_TYPE","TextField","withMin","toNumberType","valueSplit","slice","join","valueSplitAmount","valueSplit1","filter","handleChange","setFieldValue","handleBlur","v","formatValue","helperText","InputProps","maxRows","inputProps","bottom","labelClassName","FormControlLabel","control","Radio","RadioGroup","FormControl","FormLabel","event","isStr","FormHelperText","createSelectItem","subLabel","Select","alwaysEditable","showErrorWithoutTouched","findIndex","select","SelectProps","MenuProps","MenuItem","selected","contrastSelectValue","fontStyle","PrimaryTenderVariant","VARIANT_1","VARIANT_2","VARIANT_3","PrimaryTenderVariantTr","entries","jedzTranslations","itemsHidedExecutive","itemsWithExecutive","hideExecutiveDemandVariant","Checkbox","checkboxClassName","checked","checkbox","dangerouslySetInnerHTML","__html","useStyles","fabProgress","WorkableIconButton","working","rotate","WorkableIconExpandButton","expanded","_tooltip","radioGroup","filteredItemRoot","itemValue","searchKeys","multiple","handleSave","publicCode","shouldOpen","otherItemValues","boldLabel","setBoldLabel","checkboxId","openRow","RawHTML","Collapse","in","fastEnd","filteredChildrens","element","findEl","fullName","every","match","curr","el","overflow","paddingRight","scrollSize","maxSize","page","loadMore","containerRef","useRef","hasMore","setHasMore","setTimeout","initialLoad","pageStart","loader","useWindow","threshold","getScrollParent","current","getSize","list","count","typingStopTimeout","countItems","setPage","elementLength","setElementLength","filtered","setFiltered","setSearchKeys","searchChanged","setSearchChanged","itemsCount","setItemsCount","clearTimeout","filterItems","newItems","newSearchKeys","countItemsFunc","random","p","index","progress","contained","WorkableButton","stopPropagation","DoubleButton","labelFirst","labelSecond","onClickFirst","onClickSecond","buttonTypeFirst","buttonTypeSecond","disabledFirst","disabledSecond","workingFirst","workingSecond","after","buttons","get","formSubmit","onCancel","initCPVValues","useId","cpvList","setCpvList","countCpvList","CpvService","onConfirm","initValues","hierarchicalId","Chip","onDelete","getLabelBody","deleteIcon","cloneDeep","splice","newTouched","chipLabel","textOverflow","buttonSelect","openSelectCPV","setOpenSelectCPV","handleClosePoup","errorLabel","removeFormikListElement","prevValue","currValue","iconColor","active","tooltipWidth","dangerouslySetTextHTML","VALUES","ALL","PREPARING","MODIFICATION","OFFER_COLLECTION","OFFER_DECRYPTION","FINISHING","CANCELLED","ANNULLED","FINISHED","LABELS","PZPType","PZP_OLD","PZP_2021","wasEverPublished","demandStatus","isDemandPreparing","isDemandModification","isDemandOfferCollection","isDemandOfferDecryption","isDemandOfferEvaluation","isDemandFinishing","isDemandFinished","getDemandPZPType","isNonpubProc","isNatProc","isEuProc","buttonsWrapper","availableOrganizations","initOrganization","setItems","allItems","setAllItems","addEventListener","escFunction","all","removeEventListener","orgId","changeSearch","debounce","useCallback","keyEvent","charCode","keyCode","preventDefault","org","SelectOrganization","openSelectOrganization","setOpenSelectOrganization","GreyBox","borderRadius","flexDirection","cursor","defaultChildrenGrid","Dropzone","submitOnChange","acceptExtensionList","onDrop","acceptedFiles","files","getRootProps","getInputProps","useDropzone","accept","setTouched","rootProps","VALID_EXTENSIONS_LIST_RESOURCE_ID","file","onUploadChange","formData","FormData","onUploadProgress","ProgressBar","labelItem","progressItem","progressGrid","LinearProgress","flexShrink","SingleButton","buttonType","DEMAND_STAGES_LIST","DEMAND_STAGE_SECTIONS_LIST","DEMAND_CONTRACTOR_PASSWORD_POPUP","successCallback","errorCallback","password","newList","isResponseValid","setError","errorSet","ContractorPasswordState","alignSelf","UploadFilePopup","downloadFiles","onUpload","errorTranslate","setRefresh","filesStatus","uploadedFiles","useParams","dialogClosed","setDialogClosed","DemandOffersService","onError","doUpload","catch","config","loaded","total","uploadStatus","UploadService","handleUploadProgressChange","uploadSuccess","originalIndex","st","fileData","TitledComponent","additionalElement","componentRef","typography","fontWeightBold","FilesList","customAction","onDownload","inaccessible","showError","getFilesAdnFolders","folderPath","downloadFileFromSharepoint","MultiButton","afterAfter","createButton","SharepointIcon","SvgIcon","breadcrumbText","selDocuments","dialogContent","titleIcon","SharepointExplorer","filesAndFolders","setFilesAndFolders","selectedFileMap","setSelectedFilesMap","Map","setWorking","SharepointService","finally","handleBreadcrumbClick","serverRelativeUrl","getAttribute","handleClick","folders","from","getButtons","Breadcrumbs","separator","fontSize","maxItems","elem","arr","Link","dense","uniqueId","disableRipple","newMap","has","delete","set","toggleSelectFile","edge","tabIndex","wait","uploading","done","SharepointDownloadPopup","setFiles","next","getSecondaryText","Error","downloadFileFromEzdrp","attachmentIcon","attachmentsCount","line","dark","italic","FileTypes","EzdrpList","toggleExpandFile","expandedFileMap","level","toggleCheckbox","attachments","hasExpand","timeout","unmountOnExit","EzdrpExplorer","setExpandedFilesMap","EzdrpService","EzdrpDownloadPopup","EzdpuwDownloadPopup","EzdpuwService","WorkableIconFolderButton","FolderIcon","CASE","FILE","EzdpuwList","toggleExpandCase","workingCase","EMPTY","EzdpuwExplorer","setWorkingCase","dropzone","dropzoneParent","integrationButton","SupportedTypes","defaultValidExtensionList","demandPrivileges","onUploadPopupClosed","onOpenConfigureFiles","configuredFiles","currentProcess","browserDownloadFiles","setBrowserDownloadFiles","sharepointExplorerOpen","setSharepointExplorerOpen","sharepointDownloadFiles","setSharepointDownloadFiles","ezdrpExplorerOpen","setEzdrpExplorerOpen","ezdDownloadFiles","setEzdDownloadFiles","ezdpuwExplorerOpen","setEzdpuwExplorerOpen","ezdpuwDownloadFiles","setEzdpuwDownloadFiles","handleDownloadedFiles","formikFiles","fileElements","selectedFiles","INTEGRATIONS_DOWNLOAD","sharepoint","applicationClientSettings","sharepointIntegration","ezdrp","ezdrpIntegration","ezdpuw","ezdpuwIntegration","connected","getIntegrationButtons","PriceType","PriceTypeLabel","priceType","PriceTypeItems","UseNetOverGrossForAuctionPopup","PriceTypeItemsForAuction","NET_FIELD_VISIBLE","GROSS_FIELD_VISIBLE","VAT_FIELD_VISIBLE","PriceTypeNetFieldVisible","PriceTypeGrossFieldVisible","PriceTypeVatFieldVisible","NET_SUM_PRICE_TYPES","NetSumPriceVisible","TOTAL_NET_FIELD_VISIBLE","TOTAL_GROSS_FIELD_VISIBLE","TotalPriceTypeNetFieldVisible","TotalPriceTypeGrossFieldVisible","DemandCategoryType","CLASSIC","SECTOR","DEFENSE_AND_SECURITY","DemandCategoryTypeLabel","DemandCategoryTypesForProcedure","procedure","limits","RequiredFields","demandRealizationTypes","numberAutomated","passiveOfferForm","creatingDemand","realizationType","withNotice","europeProcedure","nationalProcedure","nonpublicProcedure","demandRealizationTypesTranslated","prefix","demandCategoryType","caseClassificationSymbols","primaryTenderVariantValues","onDemandRealizationTypeChanged","pzpExclusionValues","concessionOrderTypeValues","orderTypeValues","contractTypeValues","booleanValues","jedzValues","uploadFile","minDate","maxDate","minDateMessage","maxDateMessage","momentVal","validateField","DateFormats","clone","err","setFieldError","cancelLabel","invalidDateMessage","OptionalFields","Date","CheckboxButton","DEFAULT_CONFIG","ignoreInitialCall","useDebouncedEffect","callback","deps","currentConfig","firstTime","clearFunc","handler","SaveFormikValues","setFormValues","clearFormValues","save","debounceTimeout","propTypes","PropTypes","inputLimits","VS","demandRealizationType","baseObj","when","is","otherwise","description","formType","primaryTenderVariant","demandOrderType","categoryItemCpv","contactPerson","contactPersonPhone","contactPersonEmail","purchaserPhone","purchaserFax","purchaserEmail","purchaserAdditionalInfo","euProjectNumber","caseClassificationSymbol","requiredJEDZ","pzpExclusion","demandVariant","externalPurchaseRequestNumber","singleDealingJustification","estimationBase","financialSource","fullNameOrderValueDecisionPerson","managerEntrustedPerson","isErrors","ShowErrorOnFailedSubmit","setCheckError","checkError","log","_get","forceRedirectOldPlatform","supportedNoApiScreens","updateHeader","HeaderService","modify","cancel","publishOjsNotice","rollbackOjsNotice","noticeOjsStatus","isDemandChanged","clearDemandChanged","useStepperStateCloseValidator","customCloseValidatorFunction","defaultCloseValidatorFunction","AutoSaveFormValues","saveFunc","throttleTimeout","customDirtyRef","timeoutSetTime","throttleHandler","debounceHandler","now","saveFormDraft","MainForm","stepperState","demandValidation","FORM_ID","autoSaveFormDraftActive","autoSaveFormDraft","DemandService","getField","getTimeField","_editable","authorUser","plannedContractorNumberForAgreement","fundingInstitutionLogo","purchaserName","demandJustification","planPropositionText","ezdrpId","ezdpuwId","ModificationService","demandNumberAutomated","createItemText","SELECT_VALUE","DEFAULT","NOT_APPLICABLE","VatType","CANCEL","REVERSED","DIFFRENT_VAT","OTHER","calcGrossValue","netValue","vatOptionValue","optionOtherValue","newGrossValue","round","calcNetValue","grossValue","vatMultipler","newNetValue","useDidUpdateEffect","effect","didMountRef","grid","iconButton","otherTextInput","regularTitle","fontWeightRegular","pathPrefix","net","gross","option","optionOther","toFloat","optionValue","curGross","toFixed","doCalcGrossValue","InputAdornment","VATItems","doCalcNetValue","ExPostFields","estimatedValue","s","vatRate","vatRateOther","realizationGrossValue","MainFormExPost","realizatedValue","validationSchemaExPost","Confirm","confirmTitle","confirmText","confirmText2","labelConfirm","labelCancel","translateConfirmTexts","urlParams","draftConfirm","setDraftConfirm","autoSaveFormDraftEnabled","loadDemandDraft","Index","trPrefix","owner","history","operationType","operationDatetime","firstName","lastName","member","boldDouble","bold","t","textVariant","DELETE","ADD","toUpperCase","MODIFY","purchasingGroupHeader","historyTab","newHistoryTab","inner","sortTable","sort","b","reverse","createTab","onFormOpen","onImporterOpen","_prepareIncomingDealing","_formatSinglePartValues","_open","_edit","_touched","_load","otherValues","otherAmount","newVatRate","vatType","curName","iNewVatRate","offerVatRate","iVatType","offerVatRateOther","offerVatType","offerVatValue","_getDeleteElements","dealingsList","RESOURCE_DEALING_REALIZATION_VALUE_STATUS","getList","modRes","dealingsToDelete","dealingsToSave","some","dealingWithErrorId","dealingWithErrorIndex","checkForDraft","loadDraft","saveDraft","deleteDraft","clearResources","getDealingsMatchingCriterion","getDealingsMatchingCriterionName","getFullList","dealingIds","getRealizationValues","getFinalRealizationValues","getRealizationValueStatus","saveRealizationValues","publishMode","saveFinalRealizationValues","publishRealizationAmountValue","unpublishRealizationAmountValue","validate","SOURCE_TYPES","ITEM_TYPES","ItemTypes","netGross","newItem","quantity","uom","offerVatPredefined","offerSourceType","allowQuantityEditInOffer","newElement","realizationBeforeOfferAmount","stages","conditions","conditionsInSiwz","criterions","AddIcon","LoadingScreen","Backdrop","modal","ImporterForm","downloadingInProgress","downloadImportTemplate","table","tableLayout","head","Table","TableHead","TableBody","SortIcon","STableRow","cellClassName","cellClassNames","TableRow","ccn","TableCell","colSpan","TableSortLabel","IconComponent","SimpleTable","columnClasses","rowClasses","rowElements","lpColumn","reasonColumn","buttonRow","setUploadOpened","importErrors","setImportErrors","processingUpload","setProcessingUpload","openSuccessPopup","setOpenSuccessPopup","clearImportErrors","handleCloseSuccessPopup","DealingsService","isPublished","isPublic","confirmExportPopup","setConfirmExportPopup","setDownloadingInProgress","uploadOpened","hideDownloadingTemplate","nextId","newElementsList","SortableItem","SortableElement","SortableList","SortableContainer","onSortEnd","oldIndex","newIndex","arrayMoveMutable","useDragHandle","CONDITION_TYPE_OTHER","CONDITION_TYPE","COMPETENCES","FINANCIAL_SITUATION","TECHNICAL_CAPACITY","EMPLOYMENT","CONDITION_TYPE_PZP_2021","COURSE_OF_TRADE","CONDITIONS_LABEL","CONDITIONS_LABEL_PZP_2021","conditionValues_PZP_2021","CRYTERIUM_TYPE","TIME_LIMIT","PAYMENT","OPERATING_COST","SERVICE","CONTRACT_SECURITY","OWNERSHIP","PRICE","CRYTERIUM_TYPE_LABEL","VARIANT_CODE","criteriaLabels","Directions","ASCENDING","DESCENDING","PriceDirections","DESCENDING_BY_PRICE_ITEMS","CriterionDictionaryItems","PriceCriterionDictionaryItems","repeadedElement","getNameFunc","y","schema","formItem","weightVisible","criteriaSum","planItemIdentity","planRequired","_weightSum","offerValue","offerGrossValue","vsObj","criterion","uiType","CRITERIA_TYPE","maxListPoints","valuesList","o","maxRangePoints","intervalList","stage0","conditionRepeaded","demandPzpType","conditionLabels","getName","otherName","findRepeatedConditionName","_conditionsError","criterionRepeaded","findRepeatedCriterionName","_criterionsError","WorkableIconDeleteButton","DeleteIcon","WorkableIconEditButton","EditIcon","dealingElement","rootId","createId","emptyStage","oldStage","concatNoDuplicates","concat","bElement","aElement","newDealingElement","WorkableIconConfirmButton","DoneIcon","rootEdit","editInput","wordBreak","cursorPointer","onOpen","disableDelete","elementId","_editId","_touchedId","editTitle","setEditTitle","titleId","titleError","titleTouched","demendId","handleEdit","mergeDealing","localeCompare","flexBasis","idPrefix","unitDisabled","quantityId","unitId","measureUnits","setMeasureUnits","MeasureUnitService","WorkableIconPreviewButton","VisibilityIcon","WorkableIconAddButton","rootWeight","handleEditItem","nameId","typeId","allowQuantityEditInOfferId","predefinedVatId","offerSourceTypeId","weightId","optionalItem","BooleanItems","OfferSourceTypes","showConfirmBeforeDelete","objectPath","oneBaseItem","vatRateId","vatOption","OFFER_VAT_ITEMS","itemElement","baseItemId","handleClose","baseItemName","editingItem","setEditingItem","deleteConfirm","setDeleteConfirm","deleteFunctionParams","setDeleteFunctionParams","criteriaSumError","handleShowItem","clonedItem","elId","showDeleteConfirm","idParam","indexParam","oldItem","mindIdFound","x1","x2","newId","onEdit","textBold","samllColumn","orderColumn","ipColumn","checkboxColumn","cells","elementList","orderLabel","isAllChecked","hasOrder","order","newElements","acc","htmlFor","ImputLimits","selectedItems","otherNameRegExp","partId","typeElements","conditionValues","parts","getInitialValues","initValuesName","getNames","onAdd","showParts","setObjectValue","shift","subObj","doElement","critArray","editedCriterion","originalCriterion","stageName","doDelete","_formikCritArrayCopy","_editedCritCopy","oldFieldIndex","stageValues","oldField","priceIndex","cur","priceWeight","hasElement","crit","objectValue","removeElementsfromParts","doElementsManipulation","addElementsToParts","splitId","fieldId","partsIds","currentDealingList","missingArray","newDownloaded","processedDealings","delaingIndex","currentDealing","newDealingList","processed","initCrit","setElementList","critName","setCritName","critDisplayName","getCritDisplayName","dealingsContains","ids","remoteDealingIds","curDeal","findTemporaryDealingIds","found","filterByCurrentLoadedDealings","dirtyListenerSemaphore","openPopup","setOpenPopup","openDeletePopup","setOpenDeletePopup","editElement","setEditElement","thisId","handleDeleteButtonPress","weightInput","curIndex","newSum","priceWeightId","min0MaxWeight","CRYTERIUM_VARIANT","tab","TABS","errorKeys","pointsLessThanWeight","z","validation","curRowValidation","CRITERIA_ELEMENT_TYPE","smallerError","biggerError","rangeSameError","fromInclusive","toInclusive","curFrom","inservalStartToPrevEndError","inservalStartLesThanEndError","elementErrors","fromValue","tabVertical","textTransform","tabVerticalSelected","tabsVertical","borderRight","Tabs","tabs","vertical","newValue","indicatorColor","orientation","Tab","wrapper","FormTabs","tabsValues","edit","setRepeatValue","fieldValue","criteriumVariant","typeValues","MEASURE_UNIT","MEASURE_UNIT_LABEL","unit","criteria","createCriteria2","points","createCriteriaSmaller","createCriteriaBigger","createCriteriaL","units","nameItem","typeItem","descriptionItem","cutLines","setValues","ErrorText","idList","errorText","CriteriaElement","unitLabel","mu","unitsId","pointsId","inputkey","input","criteriaKey","CriteriaListBase","Element","errorWholeTabValue","render","arrayHelpers","isLast","CriteriaList","hideElement","hide","pairId","pairValue","BaseVariant","disableMin","disableMax","criterionId","minId","maxId","minRadioId","maxRadioId","nextMinRadioId","RangeVariant","SmallerVariant","BiggerVariant","variantId","arrayIds","getErrorIds","criteriaElementVariants","getVariant","lastItem","arrayExtension","isEdit","change","TABS_VALUES","apiVersion","validationSheme","NewCriteria","addCheckbox","setAddCheckbox","criteriaSumId","criteriaPopup","setCriteriaPopup","POSITION_TYPE","POSITION_TYPE_LABEL","showCommentField","shapeObj","positionTypes","ITEM_TYPE","ITEM_TYPE_LABEL","itemTypes","grossNetGrid","cpvBox","isDealingElement","setLoaded","planItems","elementsLength","ExecuteFunction","func","shouldExecute","DemandValidationMessages","messages","infoMessages","saveSuccessCallback","saveErrorCallback","afterSave","setAfterSave","realDirty","dealingValuesAndActionsForSave","setDealingValuesAndActionsForSave","getDraftsAndSaveDealingsConfirm","setGetDraftsAndSaveDealingsConfirm","doSaveDealings","draftPromises","promisesValues","_openTouched","formatDealingList","_formikProps","field","newTouchedObject","getTouchedKeys","setFormikValuesTouched","doNotInitializeDraftsThenSaveDealings","dealingDraft","tmpArr","getAndInitializeDraftsThenSaveDealings","downloadImportTemplateClick","DownloadIcon","PAPERS_GENERATOR_LIST_RESOURCE_ID","WorkableIcon","WorkableIconShareButton","ShareIcon","PaperLink","paperWorking","paperClick","showShare","shareClick","available","waiting","salesModule","customPopup","ExitToAppIcon","PrintIcon","paperId","ListItemSecondaryAction","useSnackbar","useSnackbarNotistack","closeSnackbar","enqueueSnackbar","doSnackbar","options","enqueueInfoSnackbar","enqueueSuccessSnackbar","enqueueWarningSnackbar","enqueueErrorSnackbar","PapersGeneratorSelectPopup","onSelect","onBack","selectGeneratesDocument","workingSupplier","setWorkingSupplier","rowClick","PapersGeneratorService","PapersGeneratorRfxInvitedSupplierWithOfferPopup","invitedSuppliers","setInvitedSuppliers","PapersGeneratorRfxRequestPosition","requestPositions","setRequestPositions","PapersGeneratorRfxInvitedSupplierPosition","chosenSupplier","setChosenSupplier","downloadFileWithPreloadUrl","preloadUrl","previewFile","SiwzSourceType","potentiallyValidMomentObject","VISIBILITY_TYPES_RESOURCE_ID","FOLDER_LIST_RESOURCE_ID","REPO_EDITABLE_RESOURCE_ID","updateFileRowInStore","folderList","folderIndex","folder","fileIndex","f","newFolderList","_updateFolderInStore","respFolder","updateTrash","_doUpdateTrash","workingFolderIdentity","trashIndex","RepoFolderTypes","trash","addFolder","insertIndex","temp","resourcesName","__get","addFiles","refreshFolder","deleteItem","deleteAll","deleteFolder","downloadAll","updateFolderName","updateFolderDescription","getDownloadHistory","pagination","getVisibilityTypes","types","changeFileVisibility","visibilityEndDate","getOnlyValidMomentObjectOrDefault","visibility","changeFolderFilesVisibility","updateDescription","getDownloadFile","shareRepo","shareRepoFolder","isRepoEditable","buildIdentity","SIWZ_TYPE_LIST_RESOURCE_ID","SIWZ_LIST_RESOURCE_ID","SIWZ_EDITABLE_RESOURCE_ID","updateAfterAdd","addResp","demandValidationSectionId","validateSection","updateSiwzRowInStore","siwzRow","preserveVersions","rootRowIdentity","rootRowId","versionRowId","siwzList","versions","r","validateSIWZ","validateDocuments","getTypes","send","repositoryId","parentSiwzId","parent","autopublish","moveFromRepo","rootIdentity","curList","itemToRemove","RepoService","unpublish","getVersions","clearVersions","addBzpNotice","bzpNoticeId","siwzType","generateSWZ","finallyCallback","shareGenerateSWZ","shareSiwz","isSiwzEditable","buildSiwzIdentity","SwzGeneratorQuestionSelect","question","selectValue","SwzGeneratorQuestionCheckbox","changeMain","fPName","qKey","opt","subOptions","sub","changeSub","so","SwzGeneratorQuestion","helpMessage","DOMParser","parseFromString","documentElement","textContent","helpText","textIndent","SwzGeneratorSection","questions","helpTexts","setSections","getActions","inits","q","SiwzService","PapersGeneratorSelectFilesPopup","onGenerate","selectedPos","setSelectedPos","generateClick","added","PapersGeneratOfferFilesVerification","PapersGeneratorMessageFilesVerification","getJavaKey","jsKey","snakeCase","getParamSerializedValue","applySearchParams","curParams","searchIndex","applySortParams","PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID","transformer","__sectionResponseTranformer","getStage1Sections","getStage2Sections","respTransformed","curSections","newSections","resourceId","DemandValidationSectionStatus","querySelector","extraOffset","scrollElement","boundingClientRect","getBoundingClientRect","stageBar","toolBar","offsetTop","scrollY","clientHeight","scrollTo","behavior","PurchasingGroupStage1BasicDataForm","basicData","propertyTransformer","HistoryButton","HistoryIcon","dateColumn","dateTimeColumn","buttonColumn","HistoryListPopup","historyList","selectElem","selectedElem","dateInserted","replacedUser","getUserFullNameWithEmailAndDeputy","apiUser","getUserFullNameWithEmail","getUserFullNameWithDeputy","getUserFullName","noChanges","buttonShow","HistoryElementComparator","selectedElemLoaded","clearSelectedElem","customParamTransformer","showTheSame","setShowTheSame","rows","changesCount","fieldsCount","leftContent","rightContent","leftVal","rightVal","theSame","ArrowBackIosIcon","loadHistoryList","loadHistoryElement","setHistoryList","setSelectedElem","setSelectedElemLoaded","HistoryList","PurchasingGroupStage1BasicData","panelRef","validationSection","setBasicData","setHistory","PurchasingGroupSectionService","PurchasingGroupStage1Service","getBasicData","closeSection","saveBasicData","getArchiveElement","getArchiveList","TransferList","leftColumn","rightColumn","Column","grow","Header","childClassName","childrenItem","transferList","row","SearchHeader","ItemComponent","itemProps","disablePadding","POSITION_VALUE","IconAddButton","WorkableIconHighlightOffButton","HighlightOffIcon","FullNameItem","marked","addedId","markHistorical","elementsCount","externalUser","userType","CommissionUserType","secondaryText","organizationName","pgMode","pgPositionValue","demandPositionValue","otherRole","TypographyWithIcon","userList","validateObj","ErrorOutlineIcon","COMMISSION_USER_LIST_RESOURCE_ID","COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID","COMMISSION_ESTABLISHMENT_RESOURCE_ID","saveUserList","commissionUserList","users","addExternal","getHistory","getUsers","establishmentDate","getAvailableUsers","deleteCommissionMember","CommissionService","EmptyOptions","CandidateColumn","filteredItems","setFilteredItems","searchFilter","setSearchFilter","addPopup","setAddPopup","addedItems","FullNamePositionItem","selectTextId","otherValue","selectId","primaryAction","secondaryAction","pgPositionsItems","positionsItems","CommissionColumn","doLoadHistory","establishmentId","commissionHistoryList","setCommissionHistoryList","helperTextHidden","userListAvailable","CommissionForm","saveDraftFunc","PurchasingGroupStage1Commission","setCommission","getCommission","getCommissionHistory","saveCommission","DateTimePicker","ampm","picker","stageHead","PurchasingGroupStage1ScheduleForm","joiningStartDateEditable","joiningEndDateEditable","opinionStartDateEditable","opinionEndDateEditable","submissionStartDateEditable","submissionEndDateEditable","scheduleReloadTimeout","serverTime","reloadTimeout","nowServerTime","joiningStartDate","joiningEndDate","opinionStartDate","opinionEndDate","submissionStartDate","submissionEndDate","swzOpinionStartDate","swzOpinionEndDate","collectingDataStartDate","collectingDataEndDate","isAfter","diff","PurchasingGroupStage1Schedule","setSchedule","getSchedule","saveSchedule","PurchasingGroupStageSections","STAGE_1_SECTION","EMPTY_SEARCH_OBJECT","BasicSearch","searchInProgress","doSearch","clearSearch","setValue","submitState","setSubmitState","valueFiltered","doClearSearch","onKeyUp","maxLength","SearchIcon","ClearIcon","iconWorksReducer","newState","works","anyWorks","simpleConfirm","confirmComplex","simpleConfirmNoTranslate","WorkableIconMailButton","MailIcon","buttonReject","rejected","coordinatorView","editName","setEditName","rejectionDate","canReject","canRestore","iconWorks","dispatchIconWorks","useReducer","reject","restore","resend","submitName","updateMemberName","deleteMember","MEMBERS","onReject","rejectMember","onRestore","restoreMember","complete","RestoreIcon","activeStage","resendInviteNotification","disabledEmpty","textField","createEditDescriptionFile","isFolder","editDescriptionFile","onUpdated","service","WorkableIconSearchButton","WorkableIconDownloadButton","GetAppIcon","WorkableIconPublishButton","LaunchIcon","WorkableIconUnpublishButton","warnIcon","descriptionTooltip","versionsCell","MembersDocumentsListTableRow","mainDocs","onEditDescriptionFile","allMemberDocumentsApiPath","memberMode","download","deleteMemberDocument","deleteAllMembersDocument","typeTranslated","createDate","publishDate","downloadMemberDocument","downloadAllMembersDocument","unpublishAllMembersDocument","publishAllMembersDocument","gridContainer","fileName","generateItems","generateInitialValues","generateValidationSchema","typeColumn","MembersDocumentsList","membersDocs","availableTypes","setEditDescriptionFile","generateWorking","setGenerateWorking","addFilesWorking","setAddFilesWorking","setSelectedFiles","setConfiguredFiles","hasUpload","openEditDescription","documentsApiPathType","editDescription","afterDocumentAdd","docs","group_agreement","generateGroupAgreementDocument","doc","addMemberDocuments","addAllMembersDocuments","updateMemberDocument","updateAllMembersDocument","membersList","setMembersList","getAvailableMemberUsers","respMapped","selectedUsers","addMemberUser","addButton","memberData","PURCHASING_GROUP_MEMBER_RESOURCE_ID","stage1Sections","deleteWorkingId","setDeleteWorkingId","participationWorking","setParticipationWorking","getMember","mainSection","UserService","deleteMemberUser","canConfirm","confirmationDate","CancelIcon","withdrawParticipationMember","CheckCircleOutlineIcon","confirmParticipationMember","memberDocuments","MembersElement","getMembersAvailableConcerns","concerns","selectedOrgs","addMembers","MembersList","members","addWindowOpen","setAddWindowOpen","setSearch","PurchasingGroupRole","stageSections","PURCHASING_GROUP_MEMBERS_RESOURCE_ID","PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID","PURCHASING_GROUP_HEADER_RESOURCE_ID","userRole","getMembers","getAllMembersDocuments","STAGE_2_SECTION","PurchasingGroupStage1PapersGenerator","apiPathType","sendType","contractorList","setContractorList","getOpinionAvailableMembers","contents","opinion","addOpinionForMember","newOpinion","saveOpinionMessage","rootMine","contentWrapper","contentWrapperUnread","borderWidth","contentWrapperMine","sendDate","newBadge","OpinionMessage","mine","memberMessage","unread","read","Badge","badgeContent","author","remove","sendMode","handleDelete","deleteOpinionMessage","getOpinions","opinionMessages","PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID","addWorking","setAddWorking","getOpinionMessages","addEmptyOpinionMessage","OpinionElementTitle","memberName","unreadCount","OpinionElement","opinions","PURCHASING_GROUP_OPINIONS_RESOURCE_ID","newOpinionPopup","setNewOpinionPopup","PurchasingGroupStage1FinishPreparing","canFinish","setCanFinish","FINISH_PREPARING","canFinishPreparing","finishPreparingStage","getHeader","PurchasingGroupStage2ScheduleForm","swzOpinionStartDateEditable","swzOpinionEndDateEditable","collectingDataStartDateEditable","collectingDataEndDateEditable","PURCHASING_GROUP_TEMPLATE_RESOURCE_ID","PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID","__save","getCollectingSchedule","saveCollectingSchedule","getTemplate","saveTemplate","newRes","getAvailableTemplates","getTemplateMember","getTemplateMemberForm","updateReduxLists","formListElement","formWrapper","memberListElement","curTemplate","newTemplate","memberList","curMember","newMember","formList","saveTemplateMemberForm","saveTemplateMemberFormDraft","saveTemplateMemberFormClearDraft","saveTemplateMemberFormAccept","saveTemplateMemberFormReject","saveTemplateMemberFormAskForEdit","saveTemplateMemberFormAllowEdit","saveTemplateMemberFormRejectEdit","getFinish","saveFinish","createDemand","maxRedirects","sendDealingsChangedNotification","PurchasingGroupStage2Schedule","PurchasingGroupStage2Service","TemplateMembersElementTitle","allFormsAccepted","askForEditPending","PurchasingGroupTemplateFieldType","TEXT","DATE","PERCENTAGE","AGGREGATE","TemplateMemberFormField","enabled","lastArchiveField","getViewField","fieldBox","emptyValue","textValue","decimalValue","replaceAll","getInputType","difference","fieldGrid","gridFieldComparing","getReadonlyField","PurchasingGroupTemplateFormState","fieldValues","decisionType","showOnGrid","warning","uxFormId","onDiscardChanges","newForm","formEditable","submitter","setSubmitter","historyPopup","setHistoryPopup","draftMode","getReadonlyNameField","lastArchive","getViewNameField","allOptional","getFieldVS","hasAskedForEdit","canAskForEdit","hasDraftSaved","flexWrap","groupHeader","selectedFormId","setSelectedFormId","addFormWorking","setAddFormWorking","setFormWrapper","loadForm","checkFormDirty","doDiscardChanges","getIcon","addTplAvailable","formIdPrefix","TemplateMembersList","template","availableTemplates","setAvailableTemplates","endsWith","canChooseTemplate","templateName","canFillForm","FINISH","SplitButton","buttonClassName","hideEmpty","anchorRef","handleToggle","prevOpen","ButtonGroup","zindex","disablePortal","ClickAwayListener","onClickAway","contains","MenuList","finishData","setFinishData","getSectionData","procedureTypes","createSplitButton","hasDemandPrivilege","sectionErrors","hasDemandCreated","buttonPrint","canSendDealingsChangedNotification","BASIC_DATA","OPINION","SWZ","COLLECTING_SCHEDULE","OPINION_SWZ","TEMPLATE","COLLECTING_PAPERS_GENERATOR","StageSectionNameToSectionParam","kebabCase","StageSectionParamToSectionName","StageSectionsComponents","PurchasingGroupStage1Members","PurchasingGroupStage1Opinion","PurchasingGroupStage2Template","PurchasingGroupStage2Dealing","PurchasingGroupStage2Finish","getMembersRow","newMessage","modifiedDate","__print","getRelatedObjects","getPurchasingGroupList","searchData","getPurchasingGroupListActions","getPurchasingGroupMemberList","noErrorsDocs","userIds","getGzmManagementResolution","printGzmManagementResolution","getGzmLeadingDocument","printGzmLeadingDocument","getGzmDocumentToSign","printGzmDocumentToSign","getGzmDraftGroupAgreement","printGzmDraftGroupAgreement","initData","setInitData","resolutionNumber","resolutionDate","projectName","memberIds","documentNumber","documentDeadline","agreementConclusionDate","agreementStartDate","useEzamowieniaOauth","authorizeEzamowienia","requiredGroups","EZamowieniaIcon","getAuthorizationStatus","revokeToken","PapersGeneratorXmpUzpPresidentPaperContent","goto","EzamowieniaService","ezamowieniaOrigin","PapersGeneratorXmpUzpPresidentPaperPopup","shareSystemsActive","sharePopupData","onChoose","activeShareSystems","connectedShareSystems","shareSystemsConnected","SendIcon","DEF_CUSTOM_POPUP","PAPERS_SHARE_SUPPORTED_CUSTOM_POPUPS","REPORT_SHARE_SUPPORTED_CUSTOM_POPUPS","papersGeneratorList","setCustomPopup","setPaperWorking","sharePopupPaper","setSharePopupPaper","shareSystems","share","dictionary","INTEGRATIONS_UPLOAD","showShareReport","modules","papers","reports","doShare","getPaginationConfig","pageSize","setSearchData","totalCount","setTotalCount","contractorTotalCount","setContractorTotalCount","setPaginationConfig","setSearchConfig","preservePagination","setSortConfig","lineHeight","MoreButton","loadedCount","setConfig","captionTrKey","RESOURCE_ID_RFX_OFFER_LIST","RESOURCE_ID_RFX_OFFERS_ACTIONS","RESOURCE_ID_RFX_OFFER_DECRYPTION_STATUS","RESOURCE_ID_RFX_OFFER_PUBLIC_SESSION_STATUS","RESOURCE_ID_RFX_PUBLIC_SESSION_ONLINE_STATUS","getOffers","res2","getAvailableActions","getAdditionalRoundsOffers","_doAdditionalRoundsOffers","clearAdditionalRoundsOffers","additionalOffers","sendIvniteToOffers","emailsTab","emails","getOffersDecryptionStatus","getOffersDecryptionProgress","startOffersDecryptionProcess","getOffersPublicSessionStatus","getOffersPublicSessionProgress","startOffersPublicSessionProcess","getOffersPublicSessionOnlineStatus","saveOffersPublicSessionOnline","downloadOffersAttachments","downloadOffersSummary","saveEnvelope","envelope","getEnvelope","envelopeId","OfferStatusLabel","OfferEncryptionStatuses","OfferEncryptionStatusLabel","pointer","TooltipIcon","tooltipClasses","iconClasses","otherProps","cell","statusColumn","OfferAdditionalOffersTable","redirectToOffer","encryptionStatus","offerDate","offerDetailsUrl","encIcon","LockOpenOutlinedIcon","LockOutlinedIcon","InsertDriveFileOutlinedIcon","dateStr","GENERAL_INFO_BASIC_DATA","GENERAL_INFO_DOCUMENTS","GENERAL_INFO_PUBLIC_ANSWERS","resId","subject","unreadElements","GeneralInfoExpansionPanelTitle","toggleThread","toggleThread2","titleRoot","titleCollapsible","GeneralInfoEntry","collapsible","defaultCollapsed","biggerLabel","collapsed","setCollapsed","ExpansionPanel","defaultExpanded","highlighted","square","titleAdornment","Accordion","AccordionSummary","expandedSummary","titleGrid","AccordionDetails","details","AccordionActions","bottomButton","appBarBackground","formatAmountNumber","undefinedValue","fixed","Number","OfferStageTranslationsContext","createContext","OfferStageTranslationsContextProvider","Provider","textarea","GeneralInfoBasicData","panelsClassesObject","generalInfoBasicData","setExpanded","stageTr","useContext","isExpanded","procedureTypeTranslated","realizationTypeTranslated","orderType","canCreateAuction","guaranteeList","dealingsCount","ordinalNumber","procedureStartDate","stageTypeTranslated","stageEndDate","openOfferDate","stageSecondEndDate","demandFinishDate","ProcedureStatus","WorkableIconForwardButton","ForwardIcon","GeneralInfoDocumentsFileTableRow","DemandOffersGeneralInfoService","GeneralInfoDocumentsFileTable","generalInfoDocuments","downloadZipWorking","setDownloadZipWorking","PurchaserOfferContext","PurchaserOfferContextProvider","demandStageSectionsList","purchaserOfferContext","unreadDemandDocuments","StageSections","GENERAL_INFO","CORRESPONDENCE_RES_PREFIX","CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID","CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID","CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID","CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID","CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID","cleanupThreadList","_processNewMessagesUpdate","checkTime","correspondenceSplitDate","newReadMessageIds","listResourceId","reqResource","threads","threadsObject","th","reqThread","unreadMessagesCount","newMessageList","unshift","_setMessagesInThread","reqMessages","_addThreadToList","thread","_updateMessageInThread","_removeMessagesFromThread","removedLast","messagesFiltered","_updateMessagesInThreads","respTh","mesMap","_addMessagesToThreads","threadList","_sendFlagUnflagThread","hasRedFlag","_modifyFlag","getSearchResult","searchObject","beforeBiddingEndThreads","afterBiddingEndThreads","notSplicedThreads","print","threadIds","getBuyerThreadList","getBuyerNewMessages","dateFrom","unreadIds","getBuyerSearchResult","getBuyerThreadMessageList","contractorUser","publicQuestion","addBuyerThread","sendBuyerMessage","publishBuyerMessage","updateBuyerMessage","saveBuyerThreadAsContractor","createBuyerMessage","deleteBuyerMessage","sendBuyerBulkMessages","bulkMessages","publishBuyerBulkMessages","getBuyerContractorInRoundList","getBuyerMessageDelivery","downloadBuyerMessageAttachmentsZip","downloadBuyerMessageAttachment","checkVerificationLimit","printBuyerMessageAttachmentsVerification","sendBuyerFlagThread","sendBuyerUnflagThread","getBuyerPrivileges","getBuyerPrint","getBuyerThreadEmailList","getBuyerContractorEmailList","shareCorrespondencePrint","clearThreadMessages","getContractorThreadList","getContractorNewMessages","getContractorSearchResult","getContractorThreadMessageList","buyerUser","createContractorMessage","updateContractorMessage","sendContractorMessage","deleteContractorMessage","addContractorThread","downloadContractorMessageAttachmentsZip","downloadContractorMessageAttachment","sendContractorFlagThread","sendContractorUnflagThread","getContractorPrivileges","getContractorPrint","GeneralInfoPublicAnswersMessage","currentRfxRoundId","attachment","CorrespondenceService","messagesDiv","generalInfoPublicAnswers","unreadAnswers","unreadRfxMessages","DEMAND_STATISTICS_RESOURCE_ID","CURRENT_RFX_RESOURCE_ID","getStats","getCurrentRound","clearStats","clearCurrentRound","GeneralInfoRealizationAmount","realizationList","rootExpanded","currentRfxRound","StatisticsService","sectionId","dataLoading","isResponseValidWithStoredPasswordCheck","passwordSetSuccessCallback","passwordSetErrorCallback","setErrors","skipShowError","noValidPassword","offerErrors","Done","Finished","Required","Optional","Pending","Progress","Wait","avatar","icoTab","PriorityHighIcon","PlaylistAddIcon","HourglassFullIcon","CheckCircleIcon","AvatarStatus","ExpansionPanelTitleAvatar","Avatar","OfferMode","OfferPositionStatusType","OfferPositionStatusesReadyToOffering","OfferPositionStatusesReadyToOfferSign","OfferPositionStatusesReadyToWithdraw","OfferPositionStatusesReadyToWithdrawSign","OfferPositionStatusesReadyToDelete","SignatureType","QUALIFIED","PERSONAL_ID","E_PUAP","UNKNOWN","OfferStatusType","OFFER_EDIT","OFFER_POSITIONS_LOADED","postSaveCommonData","defErrorCallback","commonData","postSavePositionData","newLoaded","getLoadedPositionKey","placingType","filesResp","curEdit","positions","offerFiles","postOfferEspdFiles","_processAddNewEspdFiles","touchedPositions","tmpEspdFiles","espdFiles","updatedOf","placeOffer","onePositionMode","missingSignatures","deleteOffer","positionIds","withdrawOffer","signOffer","signWithdraw","stopSigningOperation","getDocumentToSign","signatureType","getDownloadOfferFile","getDownloadEspdFile","postOfferFiles","_processAddNewFiles","Set","tmpOfferFiles","pos","deleteOfferFile","editEspdFile","editEspdFiles","deleteEspdFile","editOfferFile","editOfferFiles","getOfferEdit","preview","endpoint","getOfferPosition","redirectContractorESPDMpAppUrl","resp2","downloadContractorESPDExportFile","downloadSnapshot","getDownloadOfferFileUrl","getDownloadOfferFilesZip","signFile","signEspdFile","getDownloadEspdFileUrl","printOfferPosition","getDocumentBase64EncodedToSignDocument","getDocumentToWithdraw","requireWithdrawEncryption","getSnapshots","getVerifications","downloadVerifications","verifyBeforePlaceOffer","getPreviewSection","getDownloadOfferTemplate","OFFER_PLACED","ContractorDocumentType","SECRET","RODO","ContractorDocumentTypeSelectItems","curVal","ContractorDocumentTypeLabel","RoundType","TRUE_FALSE_VALUE","TrueFalseWithEmpty","rodoSelect","typeSelect","containsRodoId","getPositionItems","onUpdate","documentType","containsRodo","ADDITIONAL_OFFER_EDIT","ADDITIONAL_OFFER_POSITIONS_LOADED","ADDITIONAL_OFFER_EDIT_ALT","DemandOffersOfferService","OFFER_AUCTIONS_LIST_DATA","AUCTIONS_OFFER_EDIT","AUCTIONS_OFFER_POSITIONS_LOADED","AUCTION_OFFER_PLACED","getOfferAuctionsList","assignToAuction","OfferSectionContext","OfferSectionProvider","SignatureIcon","OfferFileSignStatus","signature_file","not_signed","signed","wrong_sign_type","OfferFilesTableSignStatus","signState","SupportModeContext","SupportModeContextProvider","OfferFilesTableRow","positionIdToOrderMap","bulkEdit","signFileAvailable","onSignDocument","editFile","setEditFile","supportMode","contextSection","promise","DemandAdditionalOffersOfferService","insertDate","fileSize","sha256","signatureConfiguration","DemandOffersAuctionService","updateFile","doSignDocContent","signatureTypes","docContentFunc","cancelCallback","getEncryptionRoundId","makeTaskListConfig","breakSigning","setLoadingScreenShow","show","hideLoadingScreen","showLoadingScreen","simpleAlert","translateTexts","alertComplex","buttonText","OfferFilesTable","offerEdit","setBulkEdit","bulkEditWorking","setBulkEditWorking","realOnePositionMode","signFileRef","useSignature","useLoadingScreen","onDownloadZip","doBreakSigning","encryptionEnabled","SaveIcon","OfferFiles","portFilesWorking","setPostFilesWorking","OfferEspdType","OfferEspdTypeLabel","help","helpNotSelected","OfferEspdTypeSwitch","espdType","setEspdType","ToggleButtonGroup","exclusive","newEspdProcedure","ToggleButton","SimpleSelect","menuItemClassName","getItemProps","fieldValueInput","xVal","hidden","flex","OfferEspdInternal","positionItems","visible","setPositionId","espdOnPositions","parentSelect","OfferEspdExternalUploadFile","handleSendFiles","OfferEspdExternal","OfferEspdTableRow","OfferEspdTable","OfferEspd","envelopeOffer","modifyDisabled","ContractorOfferEspdType","criterionValidation","criterium","gVal","vatValue","quantityShape","baseCriterion","optionalItemId","optionCriterion","parameterOffers","showComment","comment","offerValidation","consorciants","consorciumOnPosition","criteriums","itemOffers","YESNO_ITEMS","OfferYesNoInput","OfferTextInput","OfferNumberInput","vat","currency","gridBlock","VAT_TYPE_ITEMS","calculateGrossValue","newGross","calcNetGros","sumNet","sumGross","roundedGross","roundedNet","OfferPriceInput","parsedQuantity","netField","grossField","vatField","copyVat","totalGross","totalNet","quantityDisabled","offer","optionalItemIndex","baseParameterOffer","parameterId","vatError","copyVats","offerValuesPredefined","getSelectValue","selValue","ImportExportIcon","po","OfferListInput","listValues","marginTop1","marginTop2","OfferInput","customQuantity","Input","offerInput","inpDisabled","canEditQuantity","OfferPositionConditions","OfferPositionCriteriums","sumElem","OfferPositionItems","showOptionSumValues","totalValues","positionOfferValue","positionOfferGrossValue","positionOptionOfferValue","positionOptionOfferGrossValue","positionTotalOfferValue","positionTotalOfferGrossValue","newOptionSum","OfferPositionParameters","parameter","ContractorConsorciumTypesOnePosition","NONE","ContractorConsorciumTypes","POSITION","ContractorConsorciumTypesLabel","ContractorCompanySize","MICRO","SMALL","MEDIUM","SELFTRADER","NONBUSINESSINDIVIDUAL","OTHERSIZE","LARGE","IGNORE","ContractorCompanySizeLabel","CONTRACTOR_LIST_ID","CONTRACTOR_ONE_PLACE_ID","NIP_LIST_RESOURCE_ID","reduxId","getContractorDetails","getOnePlace","__appendContractors","__removeContractor","sendTabContractor","contractors","invite","deleteUser","getNipList","check","NipRow","nipList","listSorted","ContractorService","MaskedTextInput","mask","maskChar","prevFormikProps","nextFormikProps","PostCodeRow","postCodeId","postCodeValue","postCode","FirstPart","SecondPart","PL_PREFIX","translationsMap","InviteContactorForm","defaultValues","collectPostCode","collectAddress","addressRequired","collectCity","cityRequired","collectRegon","collectCompanySize","collectIdentity","checkForExistingVatins","ctrMap","setCtrMap","vatin","address","city","regon","companySize","errorList","nipAndPostCodeError","numberLength","valueKey","countryCode","objShape","fixedname","PESEL","onBlurNip","nameExist","handleInvite","submitButtonLabel","setLoading","emailColumn","commonColumn","ConsorciumTable","invitePopup","setInvitePopup","TableContainer","removeContractor","lastId","toggle","YesNo","newProcedure","OfferPositionConsorciants","consorciumType","consorciumEnabled","APIOfferPlacingType","getConfig","SnapshotListPopup","snapshotList","setSnapshotList","workingId","setWorkingId","offerSubmitDate","offerPlacedInTime","digitalSignature","digitalSignatureDate","offerStatus","empty","verificationDate","getVerificationConfig","verificationsList","setVerificationsList","verificationsListFiltered","setVerificationsListFiltered","searchText","setSearchText","fillFilteredList","positionName","useSalesNotification","functionality","SIGNATURE_VERIFICATOR","OfferPositionForm","loadedPosition","loadedPositionCounted","setLoadedPositionCounted","chooseSnapshotPopup","setChooseSnapshotPopup","verifyPopup","setVerifyPopup","counted","printVerificationSalesCheck","salesNotificationKeys","SpellcheckIcon","additionalOfferAltMode","formDisabled","hadStageWithOffer","rootGrid","adornmentGrid","discardButton","positionsLoaded","OfferPositionStatusToAvatar","statusTranslated","endDate","offerTmpDate","createTitle","borderTop","floatingMenu","menuBarPaper","ownProps","positionsRef","searchReg","setSearchReg","hideNoOfferPositionsOperator","setHideNoOfferPositionsOperator","onKeyPress","inputRef","VisibilityOff","Visibility","ButtonsBar","toLeft","buttonListLeft","buttonList","memoButtons","bb","propDefault","progressBar","NavigationBar","menuBar","translateLabel","createSubmitFormButton","isSaveButton","nameColumn","POPUP_MODE","getListText","onSuccess","popupMode","contractorOfferStatus","isSupported","positionsFiltered","setPositionsFiltered","part","getButtonText","posIds","requiredSignatures","CONTRACTOR_OFFER_EDIT_COMMON_DATA_FORM_ID","OfferCommonData","headColumn","borderBottomColor","getVerificationBeforePlaceOfferPopupConfig","VerificationBeforePlaceOfferPopup","signedFile","signatureFiles","sFile","partColumn","errorColumn","entryLpColumn","entryColumn","ImportOfferFormPopup","setResult","upload","cellAddress","StageSectionsUrlParams","choosePositionPopup","setChoosePositionPopup","importTemplatePopup","setImportTemplatePopup","verifyBeforePlacePopup","setVerifyBeforePlacePopup","unsavedPos","readyPositions","submitChoosePositions","submitChoosePositionsWithdraw","submitDeleteOffer","espdComplete","offerEspdType","missing","posId","missingPos","doSubmitChoosePositions","sigType","signatureFileId","submitPlaceOffer","submitWithdrawOffer","requireEncryption","signWithdrawOffer","placingOffer","createMultiButton","navigationBarButtons","OfferExpansionSectionTitle","getSectionVariant","OfferEditSectionTitle","passResp","OfferPlacedPanel","OfferPlacedSectionTitle","submitSignWithdrawOffer","encryptionRoundId","offerCollectionEnded","AdditionalOfferCommonData","envelopeOfferDate","startMoment","startDate","endMoment","additionalOfferEdit","chooseEnvelopeOfferDatePopup","setChooseEnvelopeOfferDatePopup","doSignOffer","doDeleteOffer","doSignWithdrawOffer","doStopSigningOperation","AdditionalOfferPlacedPanel","AuctionRule","ENGLISH","DYNAMIC","JAPANESE","DUTCH","AuctionRuleLabel","AuctionStatus","AuctionStatusLabel","AuctionType","AuctionTypeLabel","AuctionTypeItems","TooltipRow","AuctionRow","handleAssignToAuction","confirmOpened","setConfirmOpened","customWidth","HelpOutlineIcon","overtime","overtimeCount","rule","decisionTime","openInNewTab","idColumn","userColumn","AuctionsTable","auctions","auctionWrapper","offerAuctionsListData","AUCTION_OFFER_EDIT","AdditionalOfferPlacedSectionTitle","AdditionalOfferEditSectionTitle","GeneralInfoSectionTitle","StageSectionsOrder","ADDITIONAL_OFFER_PLACED","DASHBOARD","GeneralInfoPanel","OfferEditPanel","AdditionalOfferEditPanel","AdditionalOfferEditAltPanel","AuctionOfferEditPanel","AuctionOfferPlacedPanel","StageSectionsTitles","OfferTableRow","openEnvelopeEdit","collectionFinished","addLoading","contractorName","offerUser","contractorAddress","dateOfEnvelopeReceipt","hasAdditionalRounds","consorciumOffer","outOfDateOffer","apiOffers","WarningRoundedIcon","RfxOfferService","supplierColumn","authorColumn","addressColumn","OfferTable","headRow","addContractorsTab","onclose","receiveMessage","onePlaceContractor","dialog","iframe","contractorImport","inlineBlock","nameError","RegisterEnvelopeForm","newEnvelope","handleClearContractor","suggestContractor","contractorNameError","getFormButtons","platformAdded","rfxRoundId","loadedEnvelope","setLoadedEnvelope","dateOfReceipt","req","invitation","offersActions","demandStatistics","offerLoading","setOfferLoading","registerEnvelopePopupOpened","setRegisterEnvelopePopupOpened","downloadWorking","setDownloadWorking","useSearch","refreshCurrentRows","loadedRows","curPageSize","numberOfOffers","runDownload","getAdditionalButtons","itemSummaryXls","itemParametersXls","summaryXls","summaryPdf","curDemandValidation","downloadOffersEnabled","registerEnvelopeEnabled","PROCEDURE_TYPES","noticeOjsType","noticeBzpType","siwzTypes","setErrorText","downloadSuccess","setDownloadSuccess","processResponse","bzpSiwzType","pickAutopublish","pickParent","parentId","autopublishId","createParentSelectTab","createDownloadHistoryFile","DownloadHistoryPopup","downloadHistoryFile","downloadHistory","setDownloadHistory","historyLoading","setHistoryLoading","handleHistoryLoad","paginator","curState","downloadCount","downloadUserFullName","ipAddress","downloadDate","WorkableIconDownloadCountButton","CloudDoneIcon","WarningRoundedButton","DemandValidationContext","DemandValidationProvider","SiwzVersionsTableRow","onOpenDownloadHistory","shareFilePopup","setShareFilePopup","getPublishDateCellValue","onShareFile","downloadDetails","versionColumn","SiwzVersionsTable","SiwzFileTableRow","currentDemandValidation","expand","hasVersions","checkRealizationAmountValue","openConfirmDeleteAll","setOpenConfirmDeleteAll","openDownloadHistory","parentRowIdentity","SelectSiwzDocument","topButtons","addBzpNoticePopupOpened","setAddBzpNoticePopupOpened","swzParamsOpen","setSwzParamsOpen","isBzpAttachmentNotice","isBzpAttachmentNoticeType","isOfferCollectionOrModification","validationShema","SelectFolderPopup","repoVisibilityTypes","repoVisibility","visibilityStatus","isFile","visibilityTypes","setVisibilityTypes","WorkableIconEjectButton","RepoFileTableRow","onSetRepoVisibility","onMoveToSiwz","moveToSiwz","changeVisibility","visibilityColumn","sizeColumn","RepoFileTable","setRepoVisibility","folderType","onSelectFileToMoveToSiwz","updateFolderFilesVisibility","deleteFolderFiles","headTable","nameCell","descriptionCell","verticalAlign","iconColumn","nameEdited","setNameEdited","openConfirmDeleteFolder","setOpenConfirmDeleteFolder","curDisabled","nameFormId","onShareFolder","getItems","SelectRepoDocument","moveToSiwzFolderAndFile","setMoveToSiwzFolderAndFile","openFolderPopup","setOpenFolderPopup","CreateNewFolderIcon","firstTable","showInternalDocuments","setShowInternalDocuments","siwzEditable","repoEditable","documentsLoading","setDocumentsLoading","siwzListPromise","siwzTypesPromise","repoFolderListPromise","repoVsibilityTypesPromise","ContractorVerificationProcedureType","ContractorVerificationProcedureTypeLabel","VerificationProcedureType","contractorVerificationProcedure","handleProcedureChange","verificationProcedure","ContractorVerificationOfferStatus","ALLOWED","ALLOWED_PARTIALLY","EXCLUDED","REVERSE_PROCEDURE","OFFER_REJECTED","NOT_SCORED","NOT_VERIFIED","CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID","CONTRACTOR_VERIFICATION_PROCEDURE_RESOURCE_ID","getContractors","updateContractorStatus","curRes","getProcedure","updateProcedure","statusCell","ContractorVerificationRow","contractorElem","rowWorking","setRowWorking","statusToConfirm","setStatusToConfirm","statusesList","changeable","newStatus","confirmed","ContractorVerificationService","ContractorVerificationTable","marginBottomItalic","contractorVerificationList","readonly","OFFER_EVALUATION_LIST_RESOURCE_ID","handleUpdate","offerItem","rowItem","changeType","AVAILABLE_CHANGE_TYPES","STATUS","ROW","offerEvaluations","list2","newList2","updateStatus","updateScore","score","criteriaEvaluation","OfferEvaluationViewMode","SUPPLIER","OfferEvaluationPositionStatus","EXTREMELY_LOW","OUT_OF_DATE","EXCLUDED_FROM_CONTRACT","scoreRegex","emptyRegex","emptyEditMode","OffersEvaluationScoreColumn","offerEvaluationRow","offerEvaluationCriterion","editMode","setEditMode","onScoreClick","userSelect","evenRow","lastRow","scoreColumn","statusSelect","OffersEvaluationRow","rowNumber","even","statusWorking","setStatusWorking","scoreWorking","setScoreWorking","onUpdateScore","onUpdateStatus","array","first","last","rowSpan","ViewMode","scoreTotalColumn","critColumn","weightColumn","valueColumn","OffersEvaluationTable","offerEvaluationItem","pageInputInput","pageInput","emptyWidth","goToPage","DottedPagination","showManualInputField","pageValue","setPageValue","handleConfirmPageValue","Pagination","ceil","newPage","showFirstButton","showLastButton","siblingCount","boundaryCount","intVal","Types","PaginationButton","variantDisabled","OfferEvaluationRoundType","ADDITIONAL_OFFERS","decisionsList","OfferEvaluationSearch","paginationClear","center","offerEvaluationList","OfferEvaluationService","setMode","searchOb","PaginationButtonTypes","OFFER_CHOICE_LIST_RESOURCE_ID","updateInProgress","callSectionsValidation","sectionsToRefresh","_doUpdatePosition","newPos","_doUpdateAuction","currentAdditionalRoundInfo","auc","getChoiceList","getPositionsWithNoOffer","getChoiceJustificationBasis","createAdditionalRound","filteredContractors","departmentIds","prepareAdditionalRound","cancelPositionsWithNoOffer","offerChoiceDate","saveOfferChoice","canceled","chosenSupplierIds","offerChoiceJustification","updateAuctionInAdditionalRoundInfo","addAuctionToAdditionalRoundInfo","removeAuctionFromAdditionalRoundInfo","updatePosition","modifyChoice","getPositionAuctions","checkForPrimaryTenderChoiceOptions","postPrimaryTenderDoOfferChoice","postPrimaryTenderDoNegotiations","rowsPerPageOptions","TablePagination","rowsPerPage","onPageChange","onRowsPerPageChange","labelRowsPerPage","labelDisplayedRows","backIconButtonProps","nextIconButtonProps","columnChecked","unavailable","maxPoints","iconMax","OfferChoiceContractorRowPart","chosen","chooseSupplierCountReached","offerChoiceContractor","offerChoiceRow","chooseSupplier","maxPartScore","maxScore","offerScore","unavailableReason","maxOfferChoiceCount","getTooltip","CheckBoxIcon","CheckBoxOutlineBlankIcon","IndeterminateCheckBoxIcon","AuctionTypeList","auctionType","AuctionHistoryPopup","setAuctions","OfferChoiceService","prod","choiceSize","body2","choiceStatus","choiceControls","choiceControlsEnd","auctionHistory","float","offerChoiceJustifications","chosenStatusDone","setChosenStatusDone","chosenSuppliers","auctionHistoryPopup","setAuctionHistoryPopup","offerChoiceDateError","setOfferChoiceDateError","modifyConfirmOpen","setModifyConfirmOpen","setOfferChoiceJustification","setOfferChoiceDate","disabledInputs","auctionHistoryVisible","dateValue","AdditionalRoundStatus","AdditionalRoundStatusesPending","HOUR_SECONDS","DAY_SECONDS","zeroTable","getDaysHoursMinutesSeconds","sec","zeroValue","secLeft","days","floor","hours","minutes","formatDaysHoursMinutesSeconds","ret","changeDates","dateTimePicker","roundName","additionalRoundId","additionalRoundEndDate","additionalRoundStatus","additionalRoundOpenOfferDate","offerOpenDate","AdditionalRoundService","handleEndDate","countTimeFunction","serverBrowserTimeDiffSeconds","setLeftTable","timerInterval","endTimeCallback","end","nowBrowserTime","secondsDiff","clearInterval","OfferChoiceSummaryCellAdditionalRound","refreshRow","serverBrowserTimeDiff","leftTableToOfferEnd","setLeftTableToOfferEnd","leftTableToOpenOffer","setLeftTableToOpenOffer","editDatesOpened","setEditDatesOpened","decryptionStatus","setDecryptionStatus","decryptionProgress","setDecryptionProgress","decryptionInterval","decryptionFinished","secondsLeftToOfferEnd","setInterval","openOffer","ProgressStatus","formatValues","create","editDates","pause","resume","prepare","netOverGross","downloadAuctionInvitation","AuctionItemBidType","AuctionItemBidTypeLabel","AuctionItemBidTypeItems","auctionRule","fixedOfferVat","inputColumn","boundaryColumn","OfferChoiceCreateAuctionTable","isCriterion","bidType","criterias","biddableDisabled","biddable","minOfferValue","measureUnit","maxOfferValue","minOfferPrice","maxOfferPrice","tableItems","formElement","dd","preparedAuction","setPreparedAuction","AuctionService","textYesNoOrList","critShape","itemShape","rules","handleUseNetOverGrossChange","priceItemCount","offerCount","AuctionTypePart","buttonWorks","setCreatePopupOpened","deleteAuction","editAuction","publishAuction","unpublishAuction","cancelAuction","pauseAuction","acceptAuction","resumeAuction","auctionDetails","prodAuctionStatus","secondsLeftToStart","secondsFromStart","secondsToWindowEnd","secondsLeftToEnd","btns","createConfirmAuctionCfg","sendEmail","confirmButtonLabel","ConfirmAuction","cfg","setSendEmail","SaveDialogBase","iconClassName","enter","AuctionSaveError","inviteButton","OfferChoiceSummaryCellAuction","createPopupAuctionType","setCreatePopupAuctionType","editPopupAuction","setEditPopupAuction","auctionError","setAuctionError","confirmCfg","setConfirmCfg","downloadInvitationWorking","setDownloadInvitationWorking","prodButtonWorks","dispatchProdButtonWorks","testButtonWorks","dispatchTestButtonWorks","dispatchButtonWorks","_DECISION_STATES","noOffer","OfferChoiceRow","offerChoices","setChosenSuppliers","curWorking","setCurWorking","doUpdateStatus","doModifyChoice","isAdditionalOffers","isAuction","getRow","contractorColumn","checkColumn","OfferChoiceTable","offerChoiceList","Alert","positionsWithNoOffer","setPositionsWithNoOffer","decision","OFFER_CHOSEN","CANCELED","OfferChoiceSearch","smallColumn","contractorsTable","rowHidden","divHidden","divOpen","elemTransition","showContractors","positionChecked","allContractorsChecked","elemId","handleContractorsHeadCheckboxChange","rounds","setRounds","setShowContractors","relative","realizationValues","getValidationSchema","xs","realizationPublishDate","setRealizationValues","toCompare","errorDialogOpen","setErrorDialogOpen","realizationDialogOpen","setRealizationDialogOpen","cancelWhereNoOffersPopupOpen","setCancelWhereNoOffersPopupOpen","createPopupType","setCreatePopupType","refreshData","createRoundButton","additionalActionsButton","OFFER_CHOICE_RESULT_LIST_RESOURCE_ID","roundResult","publishUntilDate","positionOrders","repositoryFiles","repositoryIds","OfferChoiceResultFileState","buttonCell","OfferChoiceResultFilesTableRow","offerChoiceResultItem","onDeleteFile","onUpdateFile","doPublishChange","OffersChoiceResultService","datePublished","unpublishFile","publishFile","deleteFile","OfferChoiceResultFilesTable","fileToDelete","fileToUpdate","OfferChoiceResultFiles","filesWorking","setFilesWorking","WorkableIconPrintButton","WorkableIconCalendarButton","EventIcon","openFilesCell","OfferChoiceResultRow","publishPopupOpened","setPublishPopupOpened","load","filesLoaded","ArrowUpIcon","ArrowDownIcon","offerChoiceResultList","AgreementListType","CREATED","AVAILABLE","AgreementsListType","listType","setListType","AGREEMENTS_RESOURCE_ID","AGREEMENTS_AVAILABLE_RESOURCE_ID","AGREEMENTS_AVAILABLE_ORGANIZATIONS_RESOURCE_ID","getAgreementsList","getAgreementsAvailableList","getAgreementsAvailableOrganizationsList","createNoAgreements","deleteAgreement","objType","createAgreements","orgForAgreement","oneAgreement","agreementsAvailableOrganizationsList","AgreementsService","confirmOpen","setConfirmOpen","InfoOutlinedIcon","agreementsAvailableList","confirmNoAgrOpened","setConfirmNoAgrOpened","createOpened","setCreateOpened","setSelected","checkClick","agreementsList","confirmDelete","setConfirmDelete","extObjId","doFinishEvaluation","cancelRound","onInvalidate","prevErrors","openInvalidate","setOpenInvalidate","hasPrevErrors","cancelVisible","cancelVisibleEnabled","EvaliationFinishService","RfxRoundService","ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID","getAdditionalPassiveRoundsList","updateAdditionalPassiveRound","getAvailableContractors","createAdditionalPassiveRound","AdditionalRoundPassiveStatusCell","AdditionalRoundPassiveRow","AdditionalRoundPassiveService","AdditionalRoundPassiveTable","additionalPassiveRounds","setContractors","refresh","createPopupOpened","negotiationButton","setNegotiationButton","foundExtremelyLowOfferStatus","setFoundExtremelyLowOfferStatus","choicePending","showNegotiationPathButton","extremelyLowOfferStatusFound","makeNegotiations","skipNegotiations","negotiationsCreated","choiceDate","NoticeYesNoInput","formTr","formTip","FormTranslationContext","tip","NoticeIntegerInput","dialogPaper","breakpoints","sm","opacity","max100","SelectTreeView","useObjectInsteadOfValues","prefixLabelsWithKeys","itemsFiltered","setItemsFiltered","keyToData","doItem","hasChildren","getLabel","node","renderTree","nodes","TreeItem","nodeId","nodeValue","fExp","parentVisible","childrenFiltered","itemsF","onClosePopup","startAdornment","newSelected","TreeView","defaultCollapseIcon","defaultExpandIcon","onNodeToggle","nodeIds","onNodeSelect","elemObject","NoticeGlossaryInput","NoticeNumericInput","exceptionChip","getKey","dictionaries","setDictionaries","translations","setTranslations","DemandAdditionalInfoService","labels","tips","getDict","mp_3_offers","OffersPanel","mp_3_documents","DocumentsPanel","mp_3_contractor_verification","ContractorVerification","mp_3_offers_evaluation","OffersEvaluation","mp_3_offer_choice","OfferChoice","mp_3_additional_round_passive","AdditionalRoundPassive","mp_3_primary_tender_choice","PrimaryTenderChoice","mp_3_offers_choice_result","OffersChoiceResult","mp_3_evaluation_finish","EvaluationFinish","mp_3_stage_finish","StageFinish","mp_3_papers_generator","PapersGenerator","mp_3_agreements","AgreementsPanel","mp_3_evaluation_additional_info","panelsValidationKeys","RESULT_NOTICE_RESOURCE_ID","checkAndUpdateAttachment","getResultNotice","publishOjsResultNotice","checkOjsResultNotice","rollbackOjsResultNotice","addResultNoticeAttachments","deleteResultNotice","publishResultNotice","unpublishResultNotice","unpublishResultNoticeAttachment","publishResultNoticeAttachment","clearResultNoticeResources","AttachmentResultNoticeRow","onDownloadHistory","ResultNoticeService","noticePublication","published","AttachmentResultNotice","PublishConst","ResultNoticeType","OJS","ATTACHMENT","text1","resultOjsPublicationStatus","ojsAdmin","ojsResultNoticeSend","canPublishOjsResultNotice","hasOjsNotice","resultNoticeStatusInterval","setResultNoticeStatusInterval","startResultNoticeStatusInterval","interval","bzpEditable","DEMAND_ARCHIVING_RESOURCE_ID","getDemandArchiving","scheduleArchive","clearDemandArchiving","ArchivingStatus","demandArchiving","ArchivingService","downloadArchive","archiveUrl","archivingStatus","demandNumber","demandName","orderDate","getButton","FINISH_DEMAND_RESOURCE_ID","getFinishDemand","backToOfferEvaluation","clearFinishDemand","backToResultNotice","withdrawalNoticeDate","unpublishDate","cancelDemand","initialDate","FinishDemandService","exPostButton","exPostBackButton","backConfirm","setBackConfirm","backToResultConfirm","setBackToResultConfirm","unpublishDatePopup","setUnpublishDatePopup","ProcedureStatusValues","ProcedureStatusLabels","canCancel","ojsResultNoticeSent","canBackState","canBackToResultNotice","canSetWithdrawalNoticeDate","DEMAND_PLAN_REALIZATIONS_RESOURCE_ID","valuesTouched","CalcIcon","WorkableIconCalcButton","NetGrossCalcPopup","setNetValue","setGrossValue","setOptionValue","setOtherValue","notSelected","otherVatValue","handleOtherChange","NetGrossCalc","calcOpen","setCalcOpen","noValues","cancelColumn","valueInput","DemandPlanRealizationRow","realization","isCancelled","dealingName","planItemName","planItemNumber","partName","DemandPlanRealizationTable","demandPlanRealizations","realizationId","DemandPlanRealizationService","realizationValue","mp_4_result_notice","ResultNoticePanel","mp_4_finish_documents","FinishDocumentsPanel","mp_4_demand_plan_realization","mp_4_finish_demand","FinishDemandPanel","mp_4_archiving","ArchivingPanel","mp_4_finish_additional_info","objectId","panelsValidationKeys1","panelsValidationKeys3","panelsValidationKeys4","validateAfterSave","sectionIndex","openForm","openImporter","historyOpen","setHistoryOpen","validationObj","hasPlanItems","isOpenForm","FormElement","initialPickDateInsteadOfPeriod","radioId","dateId","conditionalValue","getRadioValues","periodValues","SCHEDULE_RESOURCE_ID","_prepareData","offerEndDate","bindWithOfferPeriodOrDate","isDate","pickDateInsteadOfPeriod","period","schedules","Deadlines","scheduleList","ScheduleService","offerOpenDateClone","getPickDateInsteadOfPeriod","stageNumber","questionEndDate","errorObj","errorId","erId","DeadlinesEdit","memnerId","titleKey","descriptionKey","e1","e2","e3","e4","getInitValues","espdList","s1","s2","s3","s4","elements2","n1","true","false","ESPD_LIST_RESOURCE_KEY","_formatSingleEspd","qualifications","selection","declaration","_formatData","separateForEachDealing","espds","separate","force","onBuyerTypeChanged","buyerTypes","selectItems","arrow","noCheckbox","isChecked","checkedValue","descArr","titleComponent","AllElements","AllSections","sectorBuyer","exclusionValues","EspdBooleanItems","setConfirmPopupData","defaultConfirmData","JEDZFormContent","handleJedzTypeChange","sectionCompleted","confirmPopupData","isSectorBuyer","buyerType","handleBuyerTypeChanged","newBuyerType","fieldPath","separateForDealing","demandSectorBuyer","espdBuyerType","dealingIdPrefix","dealingSectorBuyer","EspdService","exportTemplate","JEDZ","typeChanged","getSingleJedzValue","noticeReferenceNumber","getExInitValues","getSeInitValues","orgName","orgCountry","searchForBooleanValue","searchedBooleanValue","findBooleanValue","initVal","getEspdVSObject","qualiOk","buyerTypeOk","estimatedNetValueId","warningThreshold","isWarning","guaranteeValue","estimatedNetValue","setWarning","wadiumColumn","createItems","GUARANTEE_LIST_RESOURCE_ID","GuaranteeService","IconExternalSignButton","LocationDisabledIcon","LocationSearchingIcon","nipColumn","ContractorTable","handleExternalSign","showJoinDate","showExternalSignColumn","externalOfferSign","invitationDate","joinMethod","joinDate","NOTICE_LINK_RESOURCE_ID","NOTICE_PREVIEW_RESOURCE_ID","getLink","getPreviewUrl","noticeLink","NoticeService","BZP_CONTRACT_NOTICE_STATUS","reqSectionsError","errorSections","NationalNoticeService","_FIRST_PUBLICATION_RESOURCE_ID","checkPublishOjs","publishExPost","clearOjsStatus","markFirstPublication","isFirstPublication","wasPublished","PublishSection","isPublishActive","isCancelActive","moveToOfferCollection","classesRoot","clearPublishResources","openCancelModificationPopup","setOpenCancelModificationPopup","openPublishPopup","setOpenPublishPopup","showPublishLimitUsedAlert","setShowPublishLimitUsedAlert","handleConfirmCancelModification","handleConfirmPublish","PublishService","ojsPublicationStatus","bzpContractNoticeStatus","getUncompletedSections","NationalNoticeStatus","minusMargin","noticePreview","isPublicOjsActive","isPreviewOjsActive","checkNoticeStatus","handleRollback","isPreviewActive","isPreviewNoticeActive","isOjsProcessing","uncompletedSections","isBzpPublishActive","isBzpProcessing","isPreparing","competitivenessBaseLink","focus","isNoticeAvailable","bzpNotice","isBzpNoticeAvailable","previewNoticeDisabled","PP_REQUIRED_GROUPS","MO_REQUIRED_GROUPS","MMiA_REQUIRED_GROUPS","ezWorking","setEzWorking","noticeStatusInterval","setNoticeStatusInterval","compareSection","hasBzpNotice","startNoticeStatusInterval","isPublishButtonActive","isCancelModificationButtonActive","isPreviewButtonActive","isPreviewNoticeButtonActive","finishButton","openGoToFinishPopup","setOpenGoToFinishPopup","isDemandFinish","mp_1_demand","Demand","mp_1_dealings","Dealings","mp_1_schedule","Schedule","mp_1_commission","Commission","mp_1_espd","Espd","mp_1_siwz","Siwz","mp_1_guarantee","Guarantee","mp_1_contractor","Contractor","mp_1_notice","Notice","mp_1_national_notice","NationalNotice","mp_1_publication","Publication","mp_1_ex_post_go_to_finish","mp_1_preparing_papers_generator","PreparingPapersGenerator","mp_1_preparing_additional_info","mp_1_questionnaire","questionnaireTabUrl","redirectOldPlatform","panels","doHandleClick","_doHandleClick","doHandleClickWithDraftSave","sectionStatus","Component","DemandRelatedObjects","rels","DemandRelatedObjectsPopup","relatedObjectServiceFunction","rel","setRel","purchaseRequests","demands","rfxPrivileges","relatedObjectPopup","setRelatedObjectPopup","openDemandPublicLinkPopup","setOpenDemandPublicLinkPopup","isModification","isNew","isDemandNew","isExPost","isOfferCollection","handleModifyClick","updateDemandNumber","hasPurchaseRequests","ListIcon","demandPublicLink","showUpdateNumber","EDIT","RefreshIcon","getNavigationBarButtons","stepsFiltered","URLSearchParams","isInitialHidden","filterSteps","Workspace","fullHeight","rootRef","topOffset","setTopOffset","useNodeTopPosition","nodeRef","withTheme","titleAdditional","RESOURCE_ID","getSuppliers","rfxSupplier","changeExternalSign","suppliers","suppliers2","clearSuppliers","RfxSupplierService","supplierLoading","setSupplierLoading","externalOfferSignConfirm","setExternalOfferSignConfirm","numberOfSuppliers","ADD_CONTRACTOR","circle","transformOrigin","stroke","ProgressRing","percent","radius","circumference","PI","offset","ring","strokeWidth","cx","cy","strokeDasharray","strokeDashoffset","RingCountdown","duration","baseDuration","setDays","setHours","setMinutes","seconds","setSeconds","baseDays","setBaseDays","durationLeft","setDurationLeft","setPeriods","dayPercent","hourPercent","minutePercent","secondsPercent","getTime","newSeconds","intervalFunction","StatisticSection","durations","setDurations","nowTime","asSeconds","startTime","offerStartDate","startNumber","summary","summaryContent","summaryButton","summaryGrid","gridItemCommon","gridItemButton","iconWait","iconWaitOptional","iconFinish","ExpansionProgressPanel","queue","progressAtlText","showProgress","buttonDisabled","onButtonClick","alwaysExpanded","IconWait","PlaylistAddRoundedIcon","ErrorIcon","IconFinish","PlaylistAddCheckRoundedIcon","summaryExpanded","expandIcon","onFocus","rfxOfferDecryptionStatus","setProgress","progressInterval","statusInterval","startProgressInterval","startOfferDecryptionStatusInterval","decryptionEnabled","warnings","getDetails","streamPlatformLabel","sessionOnlineStatus","getTypeElements","streamPlatforms","platform","sessionOnline","onlineSession","editPopupOpen","setEditPopupOpen","EditSessionOnlinePopup","dealingsRealizationValueStatus","curOfferCount","serviceMethod","processPublishUnpublish","handleCancel","handlePublish","realizationOfferAmountPublished","notFilledCount","onlineSessionStatus","isOfferDecryption","offerOpenTimeout","offerDeadline","sent","setSent","getEmailsTab","emailValidator","invalidEmails","isValidSync","fp","Tile","numberText","dangerouslySetText","mirror","tile","TilesRow","offerCollectionOrModification","numberOfUnreadMessagesFromSuppliers","numberOfMessagesFromSuppliers","operatorQnALink","handleCorrespondenceClick","numberOfAttachments","numberOfEmails","getPoll","savePollRating","rating","ratings","PollNpsSwitch","scoreChange","Poll","setPoll","PollService","rate","objectType","refreshStats","setRefreshStats","resendInvitationPopupOpen","setResendInvitationPopup","firstPublication","setFirstPublication","intervalId","loadingInProgress","offerCollection","handlePrevClick","RESEND_INVITATION","changePublication","realizationValuePublished","realizationValuesPopupOpened","setRealizationValuesPopupOpened","p2","p1","p3","p4","CORRESPONDENCE","ForumIcon","showUpdateRealizationValue","stepsMemo","OrganizationsSelect","onChipClick","chipTitle","Autocomplete","noOptionsText","getOptionLabel","filterSelectedOptions","disableCloseOnSelect","ChipProps","renderInput","CorrespondenceEmailList","contractorNameBuilder","recipient","toggleButton","ctrEmailList","ctrEmailListTitle","setSendType","withOfferSwitch","setWithOfferSwitch","contractorEmailList","setContractorEmailList","contractorListForSelect","hasOffer","contractorInRoundList","handleSaveResponse","handleSendResponse","saveResponse","chipClick","ctr","innerText","supplierRecipientIds","recipients","withOffer","onChangeWithOffer","InfoIcon","AddThreadAsSupplierForm","sender","MessageEmailDeliveryPopup","deliveryList","setDeliveryList","invitedSupplier","getStatusCellContent","Mail","MailOutline","deliveryDate","recipientsRoot","Message","hasEdit","emailDeliveryRecipient","setEmailDeliveryRecipient","verificationWorking","setVerificationWorking","buyerAsContractorUser","showVerifyLimitUsedAlert","setShowVerifyLimitUsedAlert","showEmailDelivery","getRecipient","firstEmailDeliveryDate","firstReadDate","linkToSection","threadsAfterEndDate","autoSave","updateMessage","deleteMessage","currentActive","availableRecipients","doAutoSave","rec","createConfirmObject","confirmFn","cancelFn","confirm","actionWrap","PublishMessageConfirmationPopup","publishMessageInfo","autoSaveSemaphore","setPublishMessageInfo","messageOut","holdSetWorking","isSaveRespValid","sendResp","publishResp","cancelPublish","delResp","abortEarly","autoSaveDebounced","correspondencePrivileges","addInProgress","setAddInProgress","summaryRoot","summaryItem","subjectExpanded","hasUnread","redFlag","Thread","onThreadSelectChange","selectedThreads","redFlagWorking","setRedFlagWorking","loadingMessagesWorking","setLoadingMessagesWorking","threadSelected","selectThreadChange","scrollToMessage","doScrollToMessage","flagClick","FlagRoundedIcon","OutlinedFlagRoundedIcon","chip","chipSupplier","chipSubject","threadsList","processMessage","getChips","selectedThreadsIds","reqMessage","shareButton","addAsSupplierOpened","setAddAsSupplierOpened","addPopupOpened","setAddPopupOpened","bulkPopupOpened","setBulkPopupOpened","setSelectedThreads","printWorking","setPrintWorking","shareWorking","setShareWorking","printCorrespondence","printPromise","hasSelected","getPrintButton","getShareButton","chipsGrid","dateTo","CorrespondenceSearch","parsed","parsedFiltered","n","dat","getInitValue","setContractorListForSelect","valueFilteredForSearch","prepareContractorList","respList","handleChangeDate","handleKeyUp","newFlag","threadsBeforeEndDate","correspondenceCheckTime","loadingNewInProgress","searchSelected","setSearchInProgress","setBefore","checkNewMessages","searchPromise","CorrespondencePanel","EMAIL_LIST_RESOURCE_ID","EMAIL_LIST_ACTIONS_RESOURCE_ID","EmailListSearch","handleKeyPress","EmailDeliveriesTable","secContent","preLine","previewBox","previewHtml","previewNoHtml","EmailDetailsPopup","detailed","emailDetails","setEmailDetails","EmailListService","cc","bcc","html","srcDoc","deliveries","recColumn","tooltipContent","recContent","more","emailListActions","exportWorking","setExportWorking","exportEmailList","getHeaders","getColumnClasses","EmailListPanel","NoticeTextInput","inputWithButton","BasicData","updateNotice","gId","defaultVal","getDynamicDict","loadDynamicDictionaries","bzpNumber","NoticeTypography","formTrKey","PurchaserDataTogetherList","removePurchaser","ExposureNeg1Icon","pe","ne","deepEq","PurchaserDataTogether","purchaserData","together","PlusOneIcon","addPurchaser","PurchaserDataEntrusted","PurchaserData","FormNavigator","onSave","onCreateNewVersion","memoItems","curStep","lastSave","ArrowIconLeft","ArrowIconRight","newVersion","draft","contractNoticeStepsOrder","strip","orderDealing","primaryDealing","partnershipDealing","refersTo","partialOffers","realization_primary_1","realization_primary_2","realization_primary_3","realization_partnership_2","primaryRealizationType","criteriaValidator","criteriaWeightStrategy","qualityCriterionType","criterionName","criterionPctgWeight","criterionPktWeight","criterionOrder","primaryLotValidator","lot","negotiationsPossible","evaluationMethodDescription","criteriaEvaluationStrategy","evaluationSocialAspects3","evaluationSocialAspects3Info","evaluationSocialAspects12","evaluationSocialAspects12Info","partnershipLotValidator","nonNegotiableRequirements","refersToSocialServices","tenderPlanRelated","tenderPlanNumber","tenderPlanItemIdentities","onlyArt94Suppliers","art94Suppliers","onlyArt361Suppliers","ueFunded","ueProgramName","phoneNumber","faxNumber","typeOther","activitySubject","activitySubjectOther","togetherCount","togetherDuties","togetherRegulations","branch","nationalIdNumber","street","nuts3","phone","fax","www","entrusted","orderRealizationType","frameworkRealizationType","documentsAccess","ezamowieniaDemand","restrictedAccess","restrictedAccessInfo","electronicOffersOnly","electronicOffersInfo","electronicOffersRequirements","toolsWww","toolsNotWidelyAvailable","notWidelyAvailableToolsInfo","offerCatalog","notElectronicOffersReason","notElectronicOffersMethod","offerLang","rodoInfo","rodoLimitations","offerCatalogUsage","orderObject","marketConsultations","dividedIntoLots","lotsValueNet","lotsValueNetCurrency","orderValueNet","orderValueNetCurrency","frameworkAgreementValueNet","frameworkAgreementValueNetCurrency","dealingCount","offerType","dealingLimited","dealingLimitPerSupplier","socialAspectsConsidered","socialAspects","notDivided","purchaserNeedsDescription","innovationProductNeed","orderSubjectDescription","mainCpv","additionalCpv","includesOptions","includesOptionsInfo","realizationPeriod","realizationPeriodDateFrom","realizationPeriodDateTo","realizationPeriodAmount","planRenewals","planRenewalsInfo","planOtherOrderForCurrentSupplier","planOtherOrderForCurrentSupplierInfo","divided","dealingValue","dealingValueCurrency","qualification","predictedExclusion","predictedExclusionInfo","participationConditions","participationConditionsInfo","art125Statement","inclusionSubjectiveEvidence","exclusionSubjectiveEvidence","objectiveEvidence","objectiveEvidenceInfo","plansEvidence","plansEvidenceInfo","otherDocumentsList","orderTerms","variantsAllowed","variantsAllowedInfo","auctionPlanned","auctionUrl","auctionPlannedInfo","guaranteeRequired","guaranteeRequiredInfo","properExecutionGuarantee","togetherRequirements","possibleDemandInvalidation","contractDraft","advancePayment","advancePaymentInfo","contractChanges","contractChangesInfo","socialAspectsInfo","orderDetails","frameworkAgreement","suppliersNumber","suppliersNumberLimited","suppliersNumberLimit","art314Order","periodExceedInfo","offerSubmitPlace","bindWithOffer","bindWithOfferDays","bindWithOfferDate","maxSupplierNumber","limitSuppliersNumberInfo","noNegotiationsTermsDescription","primaryLots","primaryNoLots","partnership","phasedNegotiations","suppliersLimited","suppliersLimitedInfo","criteriaComplianceDeclaration","criteriaComplianceList","minSuppliersCount","maxSuppliersCount","partnershipLots","partnershipNoLots","additionalInfo","RealizationTypeData","DocumentsAccessData","NoticeCpvInput","NoticeDateInput","OrderObjectNotDivided","DealingsNavigator","addPart","onlyNotice","OrderObjectDivided","removePart","OrderObjectDividedList","OrderObjectData","basicDataRefersTo","QualificationData","ObjectiveEvidenceData","OrderTermsData","ContractDraftData","OrderDetailsFrameworkAgreement","OrderDetailsLotCriterion","removeCriterion","deleteAvailable","CRITERION_TYPE","COST","QUALITY","OrderDetailsPrimaryLot","lotNumber","realizationTypeX11","realizationTypeX12","realizationTypeX13","addAvailable","strategy","newCriterions","getDefaultCriteria","addCriterion","NoticeDateTimeInput","OrderDetailsPrimary","dateTimeInput","OrderDetailsPartnership","OrderDetailsPartnershipLot","OrderDetailsData","realization_x_1_1","realization_x_1_2","realization_x_1_3","realization_1_2","curPrimaryDealingIndex","curPartnershipDealingIndex","AdditionalInfoData","collapse","confirmRemove","setConfirmRemove","navigateToError","errorpath","formikPath","createNewVersion","deleteLastVersion","canLoadDynamicDictionaries","_passive","_onlyNotice","_updateNotice","contractNoticeValidation","ezamowieniaErrors","casted","isString","XmlUzpPresidentPaper","NationalNoticePage","NationalNoticePanel","PartsRouter","Part1","Part2","Part3","Part4","Page","floatingWorkspace","mixins","InfoData","headerData","procedureTypeTr","demandRealizationTypeTr","linkRow","IconAfter","titleWrapped","attach","openDelete","setOpenDelete","stepsId","extendFindSectionEditable","isDeleteActive","isInvalidationActive","CancelOutlinedIcon","InfoBar","setAttach","infoContainer","borderColor","borderStyle","currentText","borderBottomWidth","StageElement","thin","gridItem","label2","stageClick","preparing","offerDecryption","evaluation","StepperPages","SearchInput","hadleClick","SearchBar","setFilters","filters","getObj","WorkableIconDuplicateButton","DuplicateIcon","numberColumn","oneLine","Started","openDeleteId","setOpenDeleteId","openCloneId","setOpenCloneId","usePathParams","DemandsService","fetchData","getSortProps","handleSortChange","hasClone","hasDelete","headerClasses","datePublish","deadlineForOffers","createDeleteButton","createCloneButton","stepOne","stepTwo","stepThree","stepFour","oldSystemUrl","handleEnterDemand","handleClone","HomeRoute","exact","MyProcedureHome","MyProcedure","rps","openedSectionParam","openedSection","mainSectionName","stageSection","emailListAvailable","hasDemand","newReloadTimeout","PurchasingGroupStageNr","PurchasingGroupStagesRouter","PurchaserGroupInfoBar","purchaserGroupHeader","createStageBarElement","historyPush","StageBarCommon","PurchasingGroupStatus","DATA_COLLECTION","REALIZATION","PurchasingGroupStatusLabel","stageBarElements","elems","lastStageStarted","PurchasingGroupSearch","PurchasingGroupList","purchasingGroupList","setPurchasingGroupList","setActions","goToGroup","hasAdd","dateModified","PurchasingGroupMemberList","getTemplatesList","getTemplateListHasEdit","cloneTemplate","deleteTemplate","activateTemplate","deactivateTemplate","WorkableIconDeactivateButton","ToggleOnIcon","WorkableIconActivateButton","ToggleOffIcon","PurchasingGroupTemplatesList","templatesList","setTemplatesList","setHasEdit","workingIds","setWorkingIds","PurchasingGroupTemplateService","goToTpl","clearWorkingId","doDeactivate","doActivate","doClone","IconDragButton","DragIndicator","SortableHandle","SortableHandleComponent","RadioGroupYesNo","yesNo","ol","paddingInlineStart","PurchasingGroupTemplateField","setAggregatedFieldId","aggregatedFieldErrorValue","allFields","updated","newAllFields","aggregatedFields","fieldsList","setFieldsList","curSelected","fieldsListTmp","uniqueIds","PurchasingGroupTemplateForm","aggregatedFieldId","fieldsErrorValue","newFields","back","bar","tpl","setTpl","testContext","PurchasingGroup","PurchasingGroupTemplate","PurchasingGroupStages","getRegistrationsList","acceptRegistration","rejectRegistration","getRegistration","getAvailableOrgs","getRegistrationOrganization","saveRegistrationOrganization","RegistrationStatusLabel","NEW","ACCEPTED","REJECTED","RegistrationsSearch","initSearch","organizationNameColumn","RegistrationsList","registrationsList","setRegistrationsList","RegistrationService","decisionDate","goToRegistration","InfoEntry","rejectionReason","representativeGrid","EMPTY_REPRESENTATIVE","registrationId","onCreate","setWrapper","externalId","nip","representatives","representativesTitleDictionary","representativesRoleDictionary","OrganizationUnitRepresentative","removeRepresentative","addRepresentative","backGrid","registration","setRegistration","setAvailableOrganizations","rejectPopup","setRejectPopup","addOrgPopup","setAddOrgPopup","emailAlreadyUsed","orgs","goToList","RemoveCircleIcon","notes","decisionUser","curRoles","roles","availableRoles","attrKeys","availableAttributes","attrKey","initAttr","rest","selectOrganization","Admin","UserRegistration","TitleComponent","popupConfig","passwordInfo","setPasswordInfo","setPassword","passwordError","setPasswordError","onStorePassword","messageHtml","OfferSections","oldPlatformOfferTabUrl","demandStagesList","stageTranslations","setStageTranslations","getStageTranslation","PurchaserScenesRouter","PurchaserOfferPanel","setContextSection","PurchaserDemand","PurchaserPreviewPanel","PurchaserStepperPages","AnnualReportStatus","DRAFT","SENDING","SENT","APPROVED","APPROVED_MODIFIED","annualReportStatusTr","ANNUAL_REPORT_TABLES_RESOURCE_ID","ANNUAL_REPORT_LIST_RESOURCE_ID","ANNUAL_REPORT_RESOURCE_ID","getAnnualReportList","getAnnualReport","getAnnualReportFormValues","markDraft","getAnnualReportListAvailableOrgs","addAnnualReport","getAnnualReportPrevVersions","sendAnnualReportToEzamowienia","submitAnnualReportToEzamowienia","correctAnnualReportToEzamowienia","downloadAnnualReportPdfFromEzamowienia","saveAnnualReportTableEntry","reportStep","currentType","distType","distArr","entry","moveAnnualReportTableEntry","tableEntryId","destination","formPart","deleteAnnualReportTableEntry","initializeTable","initializeTableFromPrevVersion","initializeTableEntry","saveAnnualReportForm","getAnnualReportDictionaries","getAnnualReportTranslations","AnnualReportsService","AnnualReportListTableRow","parentWorking","correct","prevVersions","setPrevVersions","goToReport","ezamowieniaNumber","dateSend","AddBoxIcon","versionsTable","orgColumn","empty_object","reportsList","years","minYear","maxYear","annualReportSteps","belowEu","aboveEu","conflict","community","social","innovative","exception","notIncluded","annualReportStepsOrder","annualReportTablesWithInitialize","tableCell","tableCellBorderRight","tableCellBorderLeft","borderLeft","variantRow","variantRow2","demandsRow","lightGreen","lightRed","demandsCell","demandsTable","addCell","sectionErrorIcon","tableMainHeaderRow","noOptions","moveEntryRadio","exceptionName","AnnualReportNavigator","onCurStepChange","onSendToEzamowienia","onSubmitInEzamowienia","AnnualReportNoticeSource","BZP","TED","dataLoaded","purchaserPartName","purchaserIdentifier","purchaserType","purchaserOtherType","purchaserActivityType","purchaserStreet","purchaserCity","purchaserCode","purchaserProvince","purchaserCountry","purchaserUrl","issueNumber","noticeNumber","codeCPV","tenderMode","contractorCountryList","contractValue","numberOfAwardedLots","numberOfRejectedOffers","numberOfOffersSubmittedByMMSP","contractAwardedToMMSP","codeCpv","tenderModeBzp","tenderModeTed","numberOfCasesOfConflictOfInterest","numberOfDetectedAgreements","numberOfContractorsWithRejectedOffer","serviceDescription","reservedTender","numberOfOffersMMSP","inDescriptionRequirementsForAccessibility","definedSocialAspectsInOfferEvaluationCriteria","definedRequirementsBasedOnEmploymentRelationship","definedSocialAspectsRequirements","definedLabelRelatedToSocialAspects","contractorType","environmentalRequirements","environmentalManagementSystemAndStandards","environmentalAspectsInEvaluationCriteria","costCriterionUsingLifeCycleCostingApplied","environmentalAspectsRequirements","labelRelatedToEnvAspectsOrMeasureOfEvidence","innovativeAspectsInEvaluationCriteria","innovativeAspectsRequirements","AnnualReportPurchaserForm","setFrom","submitSemaphore","annualReportValidation","isRequired","bool","AnnualReportTableCell","annulaReportClasses","getAnnualReportEditPopup","newEntry","autoValidate","AnnualReportEditPopup","FormComponent","reload","scrollContainer","scrollToContainer","ReplayIcon","AnnualReportAboveEuEditForm","formatBoolean","formatInteger","AnnualReportSearchBar","setEditPopup","AnnualReportTableHeadCell","getMoveAnnualReportEntryConfig","inputLabel","WorkableIconErrorButton","AnnualReportTablePart","setMovePopup","columnCount","getRowValues","hasIncomplete","setHasIncomplete","entriesFilteres","changeComplete","incompleteEntry","incomplete","RadioButtonUncheckedIcon","SwapVerticalCircleIcon","columns","AnnualReportAboveEuForm","dictTranslations","editPopup","movePopup","AnnualReportBelowEuEditForm","AnnualReportBelowEuTablePart","entriesCounted","setEntriesCounted","worksCount","worksAmount","deliveriesCount","deliveriesAmount","servicesCount","servicesAmount","AnnualReportSteps","AnnualReportBelowEuForm","AnnualReportConflictEditForm","annualReportTenderMode","AnnualReportConflictForm","AnnualReportCommunityEditForm","AnnualReportCommunityForm","AnnualReportSocialEditForm","AnnualReportSocialForm","AnnualReportInnovativeEditForm","AnnualReportInnovativeForm","AnnualReportExceptionEditForm","AnnualReportExceptionTablePart","exceptions","AnnualReportExceptionForm","AnnualReportNotIncludedEditForm","agreementStateId","AnnualReportNotIncludedTablePart","AnnualReportNotIncludedForm","doItems","trMap","oneLevel","dictToTranslationMap","dict","AnnualReportError","getMapKeys","iterator","getTranslatedErrorsView","translatedErrors","getErrors","errorsDescribed","described","wholeKey","subKey","getDescribedErrors","ReloadAnnualReportTableFromPrevVersionButton","ReloadAnnualReportTableButton","initFormValues","currentForm","setDictTranslations","setCurStep","newStep","pdf","dictTr","previewUrl","AnnualReport","AnnualReportsList","AnnualReportPage","PurchaserRouter","notificationSend","img","confirmationMessage","clearSalesNotification","setProcessed","handleCloseDialog","SalesService","ConfirmThreeButtons","onSecondConfirm","labelSecondConfirm","confirmCloseStepper","clearConfirmCloseStepper","openQuestion","FeedbackContentOpen","openQuestionRef","setScore","sendPool","answer","FeedbackContentClosed","showTimeout","nextPollDate","nextPoll","confirmationWindow","setConfirmationWindow","authWindowInterval","authWindow","ezamowieniaOauthRef","callbackUrlRef","closeWindow","openWindow","closed","callFail","authorized","authorizationUrl","logoutUrl","userInfo","callbackOrigin","missingRoles","groups","continueEnabled","organization_role","given_name","family_name","PurchaserRoot","Browser","ieOpen","setIeOpen","CtrCorrespondencePanel","ContractorClock","dashboardSection","setEndTime","secondEndTime","setSecondEndTime","clockTitle","setClockTitle","noOfferStage","secondEnd","offerSecondEndDate","cancelled","isSameOrAfter","setupDuration","highlight","OfferTilesRow","digitalSignCheckUrl","publicKnowledgeBaseUrl","messagesCount","getMessagesLabel","infoMsg","setDashboardSection","offerOutOfDateDueToRfxModification","CtrScenesRouter","CtrOfferPanel","loadExternalLibrary","existingScript","getElementById","script","onload","onabort","SUPPORTED_SIG_TYPES","isSupportedSigType","Szafir","setSignatureType","loadedLibrary","startComponentURIErrorCalback","onLoadError","onConfigError","onErrorNoExtension","onErrorNoHostApp","taskListErrorCallback","resultTaskList","successLoadSzafir","SZAFIR_SDK","startComponentURI","startComponentURISuccessCalback","signatureFormat","dataEmbedding","makeTaskList","getTaskList","taskList","doTaskList","taskListSuccessCallback","xmlDoc","jQuery","parseXML","attr","desc","resultCode","descriptionCode","loadSzafir","sdk_location_url","versions_file","debug","ExternalSignature","setFile","handlePlaceOffer","ExternalSignatureWrapper","supported","setSupported","setEncryptionRoundId","Signature","setSigType","selectedType","CtrDemand","CtrStepperPages","ContractorRoot","Router","WelcomeTutorial","TourTooltip","primaryProps","tooltipProps","isLastStep","onEnd","changePage","disableBeacon","Tutorial","setStep","run","setRun","handleEndTour","TEST","EVENTS","STEP_AFTER","TARGET_NOT_FOUND","ACTIONS","PREV","SKIPPED","PAUSED","tooltipComponent","stepIndex","disableOverlayClose","continuous","styles","SaveDialog","showDelete","setIsChecked","Save","useInterval","delay","setIntervalId","savedCallback","Session","timeLeft","setTimeLeft","utc","registerPopup","objKey","authorizeCounter","setRedirectFunc","setRedirectWithoutHistoryFunc","isNewToken","setIsNewToken","firstLoad","canRender","setCanRender","isTokenValid","setIsTokenValid","token","atob","ClientService","UserNavigationService","clearConfirmNotification","clearAlertNotification","loadingScreen","lg","useInitialize","maxSnack","anchorOrigin","horizontal","enrichTheme","isLargeText","appConfig","colors","basicColorLight","basicColorLightDarken","basicColorDark","basicColorDarkDarken","applayClientColors","baseThemeRes","createTheme","baseTheme","overrideTheme","fontFamily","num","lineClamp","disabledBackground","gray","chips","MuiTooltip","overrides","MuiAppBar","colorDefault","MuiAccordion","MuiInput","underline","inputBorder","MuiListItem","MuiButton","outlinedPrimary","containedPrimary","containedSecondary","textSecondary","outlinedSecondary","MuiRadio","colorPrimary","MuiToggleButton","alpha","pointerEvents","MuiTableCell","MuiPaginationItem","textPrimary","MuiPickersModal","dialogRoot","MuiInputAdornment","positionEnd","MuiTreeItem","iconContainer","MuiChip","outlined","transitionProp","easing","sharp","leavingScreen","topOffsetExpanded","enteringScreen","ThemeProvider","App","utils","MomentUtils","hostname","ReactDOM","serviceWorker","ready","unregister"],"mappings":"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","file":"static/js/main.42bc632a.chunk.js","sourcesContent":["export default {\r\n\tCLOSED: 'c',\r\n\tLOADING: 'l',\r\n\tDIALOG: 'd',\r\n\tDELETE: 'r',\r\n\tERROR: 'e',\r\n\tINFO: 'i',\r\n}","\r\nfunction getCookie(cname) {\r\n let name = cname + \"=\";\r\n let ca = document.cookie.split(';');\r\n for(let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) === ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) === 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport const getLocale = () => {\r\n return getCookie(\"locale\") || \"pl_PL\";\r\n}","import pl from './pl_PL.json'\r\nimport en from './en_EN.json'\r\nimport {getLocale} from \"libs/locale\";\r\n\r\n\r\nconst Tr = (key, obj, translateObj = false) => {\r\n const localeTr = getLocale() === \"en_EN\" ? en : pl;\r\n\r\n let tr = localeTr[key];\r\n if (tr === undefined) {\r\n if (process.env.NODE_ENV === 'development') {\r\n console.warn(`Key \"${key}\" not exist in translation`);\r\n }\r\n return key\r\n }\r\n if (obj) {\r\n for (let k in obj) {\r\n const find = `{{${k}}}`\r\n tr = tr.replace(new RegExp(find, 'g'), translateObj ? Tr(obj[k]) : obj[k])\r\n }\r\n }\r\n return tr;\r\n};\r\nexport default Tr;","import saveStatusValues from 'constants/status.save'\r\n\r\nfunction action(type, payload) {\r\n return {\r\n type,\r\n payload,\r\n }\r\n}\r\n\r\n//RESOURCE\r\n\r\nexport function setResource(id, value) {\r\n return action('SET_RESOURCE', {id, value})\r\n}\r\n\r\nexport function clearResource(id) {\r\n return setResource(id, undefined);\r\n}\r\n\r\nexport function addObjectResource(id, key, value) {\r\n return action('ADD_OBJECT_RESOURCE', {id, key, value})\r\n}\r\n\r\nexport function addObjectResources(id, keyValuePairObject) {\r\n return action('ADD_OBJECT_RESOURCES', {id, keyValuePairObject})\r\n}\r\n\r\n//PRIVILEGE\r\n\r\nexport function setPrivileges(id, value) {\r\n return action('SET_PRIVILEGES', {id, value})\r\n}\r\n\r\nexport function clearPrivileges(id) {\r\n return setPrivileges(id, undefined);\r\n}\r\n\r\n//SIGNATURE\r\n\r\nexport function setSignature(id, value) {\r\n return action('SET_SIGNATURE', {id, value})\r\n}\r\n\r\nexport function clearSignature(id) {\r\n return setSignature(id, undefined);\r\n}\r\n\r\n//STORE\r\n\r\nfunction __setStoreValue(id, value) {\r\n return action('SET_STORE_VALUE', {id, value})\r\n}\r\n\r\nfunction __setStoreMultiValue(obj) {\r\n return action('SET_STORE_MULTI_VALUE', obj)\r\n}\r\n\r\nexport function setRedirectWithoutHistoryFunc(func) {\r\n return __setStoreValue('redirectReplace', func)\r\n}\r\n\r\nexport function setRedirectFunc(func) {\r\n return __setStoreValue('redirect', func)\r\n}\r\n\r\nexport function setClientColors(value) {\r\n return __setStoreValue('clientColors', value)\r\n}\r\n\r\nexport function setContrastColors(value) {\r\n return __setStoreValue('contrast', value)\r\n}\r\n\r\nexport function setLargeText(value) {\r\n return __setStoreValue('largeText', value)\r\n}\r\n\r\nexport function setMenuOpen(value) {\r\n return __setStoreValue('isMenuOpen', value)\r\n}\r\n\r\nexport function setSalesNotification(salesNotification) {\r\n return __setStoreValue('salesNotification', salesNotification)\r\n}\r\n\r\nexport function clearSalesNotification() {\r\n return setSalesNotification(undefined)\r\n}\r\n\r\nexport function setEzamowieniaOauth(ezamowieniaOauth) {\r\n return __setStoreValue('ezamowieniaOauth', ezamowieniaOauth)\r\n}\r\n\r\nexport function clearEzamowieniaOauth() {\r\n return setEzamowieniaOauth(undefined)\r\n}\r\n\r\nexport function setConfirmCloseStepper(handleConfirm, sectionName, handleSecondConfirm) {\r\n return __setStoreValue('confirmCloseStepper', {handleConfirm, sectionName, handleSecondConfirm})\r\n}\r\n\r\nexport function clearConfirmCloseStepper() {\r\n return __setStoreValue('confirmCloseStepper', undefined)\r\n}\r\n\r\nexport function setConfirmNotifications(confirmNotification) {\r\n return __setStoreValue('confirmNotification', confirmNotification)\r\n}\r\nexport function clearConfirmNotification() {\r\n return setConfirmNotifications(undefined)\r\n}\r\n\r\nexport function setAlertNotifications(alertNotification) {\r\n return __setStoreValue('alertNotification', alertNotification)\r\n}\r\nexport function clearAlertNotification() {\r\n return setAlertNotifications(undefined)\r\n}\r\nexport function setLoadingScreen(loadingScreen) {\r\n return __setStoreValue('loadingScreen', loadingScreen)\r\n}\r\nexport function clearLoadingScreen() {\r\n return setAlertNotifications(undefined)\r\n}\r\n\r\nfunction __setSaveStatus(value) {\r\n return __setStoreValue('saveStatus', value)\r\n}\r\n\r\nexport function setSaveStatusLoading() {\r\n return __setSaveStatus(saveStatusValues.LOADING)\r\n}\r\n\r\nexport function setSaveStatusDeleted() {\r\n return __setSaveStatus(saveStatusValues.DELETE)\r\n}\r\n\r\nexport function setSaveStatusClosed() {\r\n return __setSaveStatus(saveStatusValues.CLOSED)\r\n}\r\n\r\nexport function setSaveStatusDialog() {\r\n return __setSaveStatus(saveStatusValues.DIALOG)\r\n}\r\n\r\nexport function setSaveStatusInfo(message) {\r\n return __setStoreMultiValue({\r\n saveStatus: saveStatusValues.INFO,\r\n saveStatusMessage: message,\r\n })\r\n}\r\n\r\nexport function setSaveStatusError(errorMessage) {\r\n return __setStoreMultiValue({\r\n saveStatus: saveStatusValues.ERROR,\r\n saveStatusMessage: errorMessage,\r\n })\r\n}\r\n\r\nexport function setOpenTutorial(value = true) {\r\n return __setStoreValue('openTutorial', value)\r\n}\r\n\r\nexport function setInnerMenuOpen(obj) {\r\n return {\r\n type: 'SET_INNER_MENU',\r\n payload: obj\r\n }\r\n}\r\n\r\nexport function setOpenRegisterPopup(value = null) {\r\n return __setStoreValue('registerPopup', value)\r\n}\r\n\r\n//OPEN DEALINGS PARTS FORM\r\nexport function setOpenForm(value) {\r\n return __setStoreValue('openForm', value)\r\n}\r\n\r\n//OPEN DEALINGS IMPORTER FORM\r\nexport function setOpenImporter(value) {\r\n return __setStoreValue('openImporter', value)\r\n}\r\n\r\n// FORM\r\nexport function setForm(id, value) {\r\n return action('SET_FORM_SUBMIT_FUNC', {id, value})\r\n}\r\n\r\n// FORM VALUES\r\nexport function setFormValues(id, form, dirty) {\r\n return action('SET_FORM_VALUES', {id, form, dirty})\r\n}\r\n\r\n// FORM AUTO SAVE LOADED\r\nexport function setFormDraftLoaded(id, draftLoaded) {\r\n return action('SET_FORM_DRAFT_LOADED', {id, draftLoaded})\r\n}\r\n\r\nexport function clearFormValues(id) {\r\n return action('CLEAR_FORM_VALUES', {id})\r\n}\r\n\r\n//AUTHORIZE\r\nexport function setAuthorizeCounter() {\r\n return action('SET_AUTHORIZE_COUNTER');\r\n}\r\n\r\n//STEPPER\r\n\r\nexport function setStepperState(state = null) {\r\n return action('SET_STEPPER_STATE', state);\r\n}\r\n\r\nexport function setStepperStateCloseValidator(closeValidationFunction) {\r\n return action('SET_STEPPER_STATE_CLOSE_VALIDATOR', closeValidationFunction);\r\n}\r\n\r\nexport function clearStepperStateCloseValidator() {\r\n return setStepperStateCloseValidator(undefined)\r\n}\r\n\r\nexport function setStepperStateDeleteFormDraftFunction(deleteFormDraftFunc) {\r\n return action('SET_STEPPER_STATE_DEL_FORM_DRAFT_FUNCTION', deleteFormDraftFunc);\r\n}\r\n\r\nexport function clearStepperStateDeleteFormDraftFunction() {\r\n return setStepperStateDeleteFormDraftFunction(undefined)\r\n}\r\n\r\nexport function setStepperStateSaveFormDraftFunction(deleteFormDraftFunc) {\r\n return action('SET_STEPPER_STATE_SAVE_FORM_DRAFT_FUNCTION', deleteFormDraftFunc);\r\n}\r\n\r\nexport function clearStepperStateSaveFormDraftFunction() {\r\n return setStepperStateSaveFormDraftFunction(undefined)\r\n}","import reduxStore from 'redux/store'\r\nimport {compile} from 'path-to-regexp';\r\nimport {setMenuOpen} from 'redux/actions';\r\nimport querystring from 'querystring';\r\n\r\nexport const createPath = (route, params) => compile(route)(params);\r\n\r\nconst purchaserBaseRoute = \"/react\"\r\nconst purchaserBaseRoute2 = \"/purchaser\"\r\nconst contractorBaseRoute = \"/contractor\"\r\n\r\nconst root = {\r\n BASE: '/',\r\n}\r\n\r\nconst buyerPaths = {\r\n BUYER_INIT: purchaserBaseRoute,\r\n MY_PROCEDURE: purchaserBaseRoute + '/my-procedure',\r\n FAQ: purchaserBaseRoute + '/faq',\r\n PURCHASER_INIT: purchaserBaseRoute2,\r\n PURCHASING_GROUP: purchaserBaseRoute2 + '/purchasing-group',\r\n ANNUAL_REPORT: purchaserBaseRoute2 + '/annual-report',\r\n ADMIN: purchaserBaseRoute2 + '/admin',\r\n DEMAND: purchaserBaseRoute2 + '/demand',\r\n}\r\n\r\n\r\nconst ctrPaths = {\r\n CTR_INIT: contractorBaseRoute,\r\n CTR_DEMAND: contractorBaseRoute + '/demand',\r\n}\r\n\r\nconst ctrDemand = {\r\n\told: {\r\n\t\tCTR_DEMAND_CORRESPONDENCE_ID: ctrPaths.CTR_DEMAND + '/correspondence/:id(\\\\d+)'\r\n\t},\r\n\tsteps: {\r\n CTR_DEMAND_ID: ctrPaths.CTR_DEMAND + '/:id(\\\\d+)',\r\n CTR_DEMAND_ID_CORRESPONDENCE: ctrPaths.CTR_DEMAND + '/:id(\\\\d+)/correspondence',\r\n CTR_DEMAND_ID_OFFER: ctrPaths.CTR_DEMAND + '/:id(\\\\d+)/offer',\r\n CTR_DEMAND_ID_OFFER_STAGE: ctrPaths.CTR_DEMAND + '/:id(\\\\d+)/offer/stage',\r\n CTR_DEMAND_ID_OFFER_STAGE_ID: ctrPaths.CTR_DEMAND + '/:id(\\\\d+)/offer/stage/:stageId(\\\\d+)',\r\n CTR_DEMAND_ID_OFFER_STAGE_ID_SECTION:ctrPaths.CTR_DEMAND + '/:id(\\\\d+)/offer/stage/:stageId(\\\\d+)/:section'\r\n\t}\r\n}\r\n\r\n\r\nconst myProcedureSteps = {\r\n MP_1: buyerPaths.MY_PROCEDURE + '/1',\r\n MP_2: buyerPaths.MY_PROCEDURE + '/2',\r\n MP_3: buyerPaths.MY_PROCEDURE + '/3',\r\n MP_4: buyerPaths.MY_PROCEDURE + '/4',\r\n MP_CORRESPONDENCE: buyerPaths.MY_PROCEDURE + '/correspondence',\r\n MP_EMAIL_LIST: buyerPaths.MY_PROCEDURE + '/email-list',\r\n MP_NATIONAL_NOTICE: buyerPaths.MY_PROCEDURE + '/nationalNotice',\r\n}\r\n\r\nconst myProcedureStepsTabsEdit = {\r\n\tMP_1_ID: myProcedureSteps.MP_1 + '/:id(\\\\d+)?',\r\n\tMP_2_ID: myProcedureSteps.MP_2 + '/:id(\\\\d+)?',\r\n\tMP_3_ID: myProcedureSteps.MP_3 + '/:id(\\\\d+)?',\r\n\tMP_4_ID: myProcedureSteps.MP_4 + '/:id(\\\\d+)?',\r\n\tMP_CORRESPONDENCE_ID: myProcedureSteps.MP_CORRESPONDENCE + '/:id(\\\\d+)',\r\n\tMP_EMAIL_LIST_ID: myProcedureSteps.MP_EMAIL_LIST + '/:id(\\\\d+)',\r\n\tMP_NATIONAL_NOTICE_FORM_TYPE_ID: myProcedureSteps.MP_NATIONAL_NOTICE + '/:formType/:id',\r\n}\r\n\r\n\r\nconst myProcedure = {\r\n steps: {\r\n ...myProcedureSteps,\r\n ...myProcedureStepsTabsEdit,\r\n }\r\n}\r\n\r\nconst annualReport = {\r\n MP_ANNUAL_REPORT: buyerPaths.ANNUAL_REPORT,\r\n MP_ANNUAL_REPORT_YEAR_LIST: buyerPaths.ANNUAL_REPORT + '/year/:year(\\\\d+)',\r\n\r\n MP_ANNUAL_REPORT_REPORT: buyerPaths.ANNUAL_REPORT + '/report',\r\n MP_ANNUAL_REPORT_REPORT_ID: buyerPaths.ANNUAL_REPORT + '/report/:id(\\\\d+)',\r\n MP_ANNUAL_REPORT_REPORT_ID_TABLE: buyerPaths.ANNUAL_REPORT + '/report/:id(\\\\d+)/:table',\r\n}\r\n\r\nconst purchasingGroup = {\r\n //bez kontekstu grupy zakupowej\r\n MP_PURCHASING_GROUP: buyerPaths.PURCHASING_GROUP,\r\n MP_PURCHASING_GROUP_LIST: buyerPaths.PURCHASING_GROUP + '/list',\r\n MP_PURCHASING_GROUP_MEMBER_LIST: buyerPaths.PURCHASING_GROUP + '/member/list',\r\n MP_PURCHASING_GROUP_TEMPLATES: buyerPaths.PURCHASING_GROUP + '/templates',\r\n MP_PURCHASING_GROUP_TEMPLATES_LIST: buyerPaths.PURCHASING_GROUP + '/templates/list',\r\n MP_PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID: buyerPaths.PURCHASING_GROUP + '/templates/template/:id(\\\\d+)',\r\n\r\n //kontekst konkretnej rejestracji\r\n MP_PURCHASING_GROUP_GROUP: buyerPaths.PURCHASING_GROUP + '/group',\r\n MP_PURCHASING_GROUP_GROUP_ID: buyerPaths.PURCHASING_GROUP + '/group/:id(\\\\d+)',\r\n MP_PURCHASING_GROUP_GROUP_ID_EMAIL_LIST: buyerPaths.PURCHASING_GROUP + '/group/:id(\\\\d+)/email-list',\r\n MP_PURCHASING_GROUP_GROUP_ID_STAGE: buyerPaths.PURCHASING_GROUP + '/group/:id(\\\\d+)/stage',\r\n MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR: buyerPaths.PURCHASING_GROUP + '/group/:id(\\\\d+)/stage/:stage(\\\\d+)',\r\n MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR_SECTION: buyerPaths.PURCHASING_GROUP + '/group/:id(\\\\d+)/stage/:stage(\\\\d+)/:section',\r\n}\r\n\r\nconst purchaserDemand = {\r\n PURCHASER_DEMAND_ID: buyerPaths.DEMAND + '/:id(\\\\d+)',\r\n PURCHASER_DEMAND_ID_OFFER: buyerPaths.DEMAND + '/:id(\\\\d+)/offer',\r\n PURCHASER_DEMAND_ID_PREVIEW: buyerPaths.DEMAND + '/:id(\\\\d+)/preview',\r\n PURCHASER_DEMAND_ID_PREVIEW_ID_STAGE_ID_SECTION: buyerPaths.DEMAND + '/:id(\\\\d+)/preview/stage/:stageId(\\\\d+)/:section',\r\n PURCHASER_DEMAND_ID_OFFER_CONTRACTOR: buyerPaths.DEMAND + '/:id(\\\\d+)/offer/contractor',\r\n PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID: buyerPaths.DEMAND + '/:id(\\\\d+)/offer/contractor/:contractorDepartmentId(\\\\d+)',\r\n PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE: buyerPaths.DEMAND + '/:id(\\\\d+)/offer/contractor/:contractorDepartmentId(\\\\d+)/stage',\r\n PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID: buyerPaths.DEMAND + '/:id(\\\\d+)/offer/contractor/:contractorDepartmentId(\\\\d+)/stage/:stageId(\\\\d+)',\r\n PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID_SECTION: buyerPaths.DEMAND + '/:id(\\\\d+)/offer/contractor/:contractorDepartmentId(\\\\d+)/stage/:stageId(\\\\d+)/:section'\r\n}\r\n\r\n\r\nconst admin = {\r\n ADMIN_REGISTRATIONS: buyerPaths.ADMIN + '/registrations',\r\n ADMIN_REGISTRATIONS_LIST: buyerPaths.ADMIN + '/registrations/list',\r\n ADMIN_REGISTRATION_ID: buyerPaths.ADMIN + '/registrations/:id',\r\n}\r\n\r\n\r\nconst matchOpenDrawerMenu = [\r\n root.MY_PROCEDURE\r\n]\r\n\r\nconst matchOpenDrawerMenuNotExact = []\r\n\r\nexport const setMenuOpenOnPath = (path = window.location.pathname) => {\r\n const {store} = reduxStore.getState()\r\n let open = matchOpenDrawerMenu.includes(path);\r\n for (let i in matchOpenDrawerMenuNotExact) {\r\n const item = matchOpenDrawerMenuNotExact[i];\r\n if (path.startsWith(item)) {\r\n open = true;\r\n break;\r\n }\r\n }\r\n if (store.isMenuOpen === open) return;\r\n\r\n reduxStore.dispatch(\r\n setMenuOpen(open)\r\n )\r\n}\r\n\r\nexport const redirect = (path, state) => {\r\n const { store } = reduxStore.getState()\r\n store.redirect(path, state)\r\n\tsetMenuOpenOnPath(path)\r\n}\r\n\r\nexport const redirectWithoutHistory = (path, state) => {\r\n\tconst { store } = reduxStore.getState()\r\n\tstore.redirectReplace(path, state)\r\n setMenuOpenOnPath(path)\r\n}\r\n\r\nexport const setSearchObj = searchObj => {\r\n const {store} = reduxStore.getState()\r\n const search = querystring.stringify(searchObj)\r\n const path = window.location.pathname;\r\n store.redirect(`${path}?${search}`)\r\n}\r\n\r\nexport const redirectWithSearch = (path, searchObj) => {\r\n const search = querystring.stringify(searchObj)\r\n redirect(`${path}?${search}`)\r\n}\r\n\r\n\r\nexport default {\r\n ...root,\r\n ...buyerPaths,\r\n ...ctrPaths,\r\n\r\n myProcedure,\r\n purchaserDemand,\r\n purchasingGroup,\r\n annualReport,\r\n admin,\r\n\r\n //ctr... dla wykonawcy, reszta dla zamawiającego\r\n ctrDemand,\r\n\r\n redirectWithoutHistory,\r\n redirect,\r\n redirectWithSearch,\r\n createPath,\r\n setSearchObj,\r\n setMenuOpenOnPath,\r\n baseRoute: purchaserBaseRoute\r\n}","import Tr from 'translations/Translations';\r\n\r\nexport const DemandValidation = {\r\n //part1\r\n DEMAND: \"DEMAND\",\r\n COMMISSION: \"COMMISSION\",\r\n QUESTIONNAIRE: \"QUESTIONNAIRE\",\r\n DEALINGS: \"DEALINGS\",\r\n SCHEDULE: \"SCHEDULE\",\r\n SIWZ: \"SIWZ\",\r\n PUBLICATION: \"PUBLICATION\",\r\n EX_POST_GO_TO_FINISH: \"EX_POST_GO_TO_FINISH\",\r\n ESPD: \"ESPD\",\r\n NOTICE: \"NOTICE\",\r\n NATIONAL_NOTICE: \"NATIONAL_NOTICE\",\r\n CONTRACTOR: \"CONTRACTOR\",\r\n GUARANTEE: \"GUARANTEE\",\r\n PREPARING_PAPERS_GENERATOR: \"PREPARING_PAPERS_GENERATOR\",\r\n PREPARING_ADDITIONAL_INFO: \"PREPARING_ADDITIONAL_INFO\",\r\n //part3\r\n PART_3_SECTION: \"PART_3_SECTION\",\r\n OFFERS: \"OFFERS\",\r\n DOCUMENTS: \"DOCUMENTS\",\r\n CONTRACTOR_VERIFICATION: \"CONTRACTOR_VERIFICATION\",\r\n OFFERS_EVALUATION: \"OFFERS_EVALUATION\",\r\n OFFER_CHOICE: \"OFFER_CHOICE\",\r\n PRIMARY_TENDER_CHOICE: \"PRIMARY_TENDER_CHOICE\",\r\n ADDITIONAL_ROUND_PASSIVE: \"ADDITIONAL_ROUND_PASSIVE\",\r\n OFFERS_CHOICE_RESULT: \"OFFERS_CHOICE_RESULT\",\r\n EVALUATION_FINISH: \"EVALUATION_FINISH\",\r\n STAGE_FINISH: \"STAGE_FINISH\",\r\n PAPERS_GENERATOR: \"PAPERS_GENERATOR\",\r\n AGREEMENTS: \"AGREEMENTS\",\r\n EVALUATION_ADDITIONAL_INFO: \"EVALUATION_ADDITIONAL_INFO\",\r\n //part 4\r\n RESULT_NOTICE: \"RESULT_NOTICE\",\r\n FINISH_DOCUMENTS: \"FINISH_DOCUMENTS\",\r\n DEMAND_PLAN_REALIZATION: \"DEMAND_PLAN_REALIZATION\",\r\n FINISH_DEMAND: \"FINISH_DEMAND\",\r\n ARCHIVING: \"ARCHIVING\",\r\n FINISH_ADDITIONAL_INFO: \"FINISH_ADDITIONAL_INFO\",\r\n}\r\n\r\nexport const DemandValidationKeys = {\r\n //part1\r\n DEMAND: 'mp_1_demand',\r\n COMMISSION: 'mp_1_commission',\r\n QUESTIONNAIRE: 'mp_1_questionnaire',\r\n DEALINGS: 'mp_1_dealings',\r\n SCHEDULE: 'mp_1_schedule',\r\n SIWZ: 'mp_1_siwz',\r\n PUBLICATION: 'mp_1_publication',\r\n EX_POST_GO_TO_FINISH: 'mp_1_ex_post_go_to_finish',\r\n ESPD: 'mp_1_espd',\r\n NOTICE: 'mp_1_notice',\r\n NATIONAL_NOTICE: 'mp_1_national_notice',\r\n CONTRACTOR: 'mp_1_contractor',\r\n GUARANTEE: 'mp_1_guarantee',\r\n PREPARING_PAPERS_GENERATOR: 'mp_1_preparing_papers_generator',\r\n PREPARING_ADDITIONAL_INFO: 'mp_1_preparing_additional_info',\r\n //part3\r\n OFFERS: 'mp_3_offers',\r\n DOCUMENTS: 'mp_3_documents',\r\n CONTRACTOR_VERIFICATION: 'mp_3_contractor_verification',\r\n OFFERS_EVALUATION: 'mp_3_offers_evaluation',\r\n OFFER_CHOICE: 'mp_3_offer_choice',\r\n PRIMARY_TENDER_CHOICE: 'mp_3_primary_tender_choice',\r\n ADDITIONAL_ROUND_PASSIVE: 'mp_3_additional_round_passive',\r\n OFFERS_CHOICE_RESULT: 'mp_3_offers_choice_result',\r\n EVALUATION_FINISH: 'mp_3_evaluation_finish',\r\n STAGE_FINISH: 'mp_3_stage_finish',\r\n PAPERS_GENERATOR: 'mp_3_papers_generator',\r\n AGREEMENTS: 'mp_3_agreements',\r\n EVALUATION_ADDITIONAL_INFO: 'mp_3_evaluation_additional_info',\r\n //part 4\r\n RESULT_NOTICE: 'mp_4_result_notice',\r\n FINISH_DOCUMENTS: 'mp_4_finish_documents',\r\n DEMAND_PLAN_REALIZATION: 'mp_4_demand_plan_realization',\r\n FINISH_DEMAND: 'mp_4_finish_demand',\r\n ARCHIVING: 'mp_4_archiving',\r\n FINISH_ADDITIONAL_INFO: \"mp_4_finish_additional_info\",\r\n}\r\n\r\nexport const DemandValidationTr = Object.keys(DemandValidationKeys).reduce((prev, key) => {\r\n return {...prev, [key]: Tr(DemandValidationKeys[key])}\r\n}, {});\r\n","import Tr from 'translations/Translations';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport {DemandValidation, DemandValidationKeys, DemandValidationTr} from 'constants/DemandValidation';\r\n\r\nconst createItem = (trKey, steps = [], href, hrefExpand = []) => ({\r\n title: Tr(trKey),\r\n steps,\r\n href,\r\n hrefExpand\r\n})\r\n\r\nconst createStep = (apiId, confirmClosing= false) => ({\r\n key: DemandValidationKeys[apiId],\r\n label: DemandValidationTr[apiId],\r\n apiId,\r\n confirmClosing\r\n});\r\n\r\nconst rp = RouterPath.myProcedure.steps;\r\n\r\nexport default [\r\n createItem('mp_1', [\r\n createStep(DemandValidation.DEMAND, true),\r\n createStep(DemandValidation.COMMISSION, true),\r\n createStep(DemandValidation.QUESTIONNAIRE),\r\n createStep(DemandValidation.DEALINGS, true),\r\n createStep(DemandValidation.SCHEDULE, true),\r\n createStep(DemandValidation.SIWZ),\r\n createStep(DemandValidation.ESPD),\r\n createStep(DemandValidation.NOTICE),\r\n createStep(DemandValidation.NATIONAL_NOTICE),\r\n createStep(DemandValidation.PREPARING_ADDITIONAL_INFO),\r\n createStep(DemandValidation.PUBLICATION),\r\n createStep(DemandValidation.CONTRACTOR),\r\n createStep(DemandValidation.GUARANTEE),\r\n createStep(DemandValidation.EX_POST_GO_TO_FINISH),\r\n createStep(DemandValidation.PREPARING_PAPERS_GENERATOR),\r\n ], rp.MP_1, [rp.MP_1]),\r\n createItem('mp_2', [], rp.MP_2),\r\n createItem('mp_3', [\r\n createStep(DemandValidation.OFFERS),\r\n createStep(DemandValidation.DOCUMENTS),\r\n createStep(DemandValidation.CONTRACTOR_VERIFICATION),\r\n createStep(DemandValidation.OFFERS_EVALUATION),\r\n createStep(DemandValidation.OFFER_CHOICE),\r\n createStep(DemandValidation.ADDITIONAL_ROUND_PASSIVE),\r\n createStep(DemandValidation.PRIMARY_TENDER_CHOICE),\r\n createStep(DemandValidation.OFFERS_CHOICE_RESULT),\r\n createStep(DemandValidation.EVALUATION_ADDITIONAL_INFO),\r\n createStep(DemandValidation.EVALUATION_FINISH),\r\n createStep(DemandValidation.STAGE_FINISH),\r\n createStep(DemandValidation.PAPERS_GENERATOR),\r\n createStep(DemandValidation.AGREEMENTS),\r\n ], rp.MP_3, [rp.MP_3]),\r\n createItem('mp_4', [\r\n createStep(DemandValidation.RESULT_NOTICE),\r\n createStep(DemandValidation.FINISH_DOCUMENTS),\r\n createStep(DemandValidation.DEMAND_PLAN_REALIZATION),\r\n createStep(DemandValidation.FINISH_ADDITIONAL_INFO),\r\n createStep(DemandValidation.FINISH_DEMAND),\r\n createStep(DemandValidation.ARCHIVING),\r\n ], rp.MP_4, [rp.MP_4]),\r\n]","import steps from './initValues/stepper.values'\r\n\r\nconst initialState = {\r\n state: null,\r\n steps,\r\n stateCloseValidator: null,\r\n stateCloseFunction: null\r\n}\r\n\r\nexport default (state = initialState, {type, payload}) => {\r\n switch (type) {\r\n\r\n case 'SET_STEPPER_STATE':\r\n return {\r\n ...state,\r\n stateCloseValidator: null,\r\n state: payload,\r\n }\r\n\r\n case 'SET_STEPPER_STATE_CLOSE_VALIDATOR':\r\n return {\r\n ...state,\r\n stateCloseValidator: payload\r\n }\r\n\r\n case 'SET_STEPPER_STATE_DEL_FORM_DRAFT_FUNCTION':\r\n return {\r\n ...state,\r\n deleteFormDraftFunc: payload\r\n }\r\n\r\n case 'SET_STEPPER_STATE_SAVE_FORM_DRAFT_FUNCTION':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tsaveFormDraftFunc: payload\r\n\t\t\t}\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n","import { createStore, combineReducers } from 'redux'\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\nimport resources from './reducers/ResourcesReducer'\r\nimport storeReducer from './reducers/StoreReducer'\r\nimport form from './reducers/FormReducer'\r\nimport authorize from './reducers/AuthorizeReducer'\r\nimport stepper from './reducers/StepperReducer'\r\nimport innerMenu from './reducers/InnerMenuReducer'\r\nimport formValues from './reducers/FormValuesReducer'\r\nimport privileges from './reducers/PrivilegeReducer'\r\nimport signature from './reducers/SignatureReducer'\r\n\r\nconst store = createStore(\r\n\tcombineReducers({\r\n\t\tresources,\r\n\t\tprivileges,\r\n\t\tstore: storeReducer,\r\n\t\tform,\r\n\t\tauthorize,\r\n\t\tinnerMenu,\r\n\t\tstepper,\r\n\t\tformValues,\r\n\t\tsignature\r\n\t}),\r\n\tcomposeWithDevTools()\r\n)\r\n\r\nexport default store;","export default (state = {}, {type, payload}) => {\r\n switch (type) {\r\n case 'SET_RESOURCE':\r\n return {\r\n ...state,\r\n [payload.id]: payload.value\r\n };\r\n case 'ADD_OBJECT_RESOURCE':\r\n return {\r\n ...state,\r\n [payload.id]: {\r\n ...state[payload.id],\r\n [payload.key]: payload.value,\r\n }\r\n };\r\n case 'ADD_OBJECT_RESOURCES':\r\n const idObject = {};\r\n Object.keys(payload.keyValuePairObject).forEach(key => {\r\n idObject[key] = payload.keyValuePairObject[key];\r\n });\r\n return {\r\n ...state,\r\n [payload.id]: {\r\n ...state[payload.id],\r\n ...idObject\r\n }\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","export default (state = {}, {type, payload}) => {\r\n\tswitch (type) {\r\n\t\tcase 'SET_PRIVILEGES':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t[payload.id]: payload.value,\r\n\t\t\t}\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n","import saveStatusValues from 'constants/status.save'\r\nexport default (state = {\r\n\tredirect: () => { },\r\n\tredirectReplace: () => { },\r\n\tcontrast: false,\r\n\tlargeText: false,\r\n\tclientColors: null,\r\n\tisMenuOpen: true,\r\n\tsaveStatus: saveStatusValues.CLOSED,\r\n\tsaveStatusMessage: '',\r\n\topenTutorial: false,\r\n}, { type, payload }) => {\r\n\tswitch (type) {\r\n\r\n\t\tcase 'SET_STORE_VALUE':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t[payload.id]: payload.value,\r\n\t\t\t}\r\n\t\tcase 'SET_STORE_MULTI_VALUE':\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t...payload,\r\n\t\t\t}\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n","export default (state = {\r\n\r\n}, { type, payload }) => {\r\n\tswitch (type) {\r\n\t\tcase 'SET_FORM_SUBMIT_FUNC':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t[payload.id]: payload.value\r\n\t\t\t}\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n","export default (state = {\r\n\tcounter: 0\r\n}, { type }) => {\r\n\tswitch (type) {\r\n\r\n\t\tcase 'SET_AUTHORIZE_COUNTER':\r\n\t\t\treturn {\r\n\t\t\t\tcounter: state.counter + 1\r\n\t\t\t}\r\n\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n","export default (state = {}, { type, payload }) => {\r\n switch (type) {\r\n\r\n case 'SET_INNER_MENU':\r\n return payload\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n","export default (state = {\r\n\r\n}, { type, payload }) => {\r\n\tswitch (type) {\r\n\t\tcase 'SET_FORM_VALUES':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t[payload.id]: payload.form,\r\n\t\t\t\t[payload.id + \"_dirty\"]: payload.dirty\r\n\t\t\t}\r\n\t\tcase 'SET_FORM_DRAFT_LOADED':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t[payload.id + \"_draftLoaded\"]: payload.draftLoaded\r\n\t\t\t}\r\n\t\tcase 'CLEAR_FORM_VALUES':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t[payload.id]: undefined,\r\n\t\t\t\t[payload.id + \"_dirty\"]: undefined,\r\n\t\t\t\t[payload.id + \"_draftLoaded\"]: undefined\r\n\t\t\t}\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n","export default (state = {}, {type, payload}) => {\r\n\tswitch (type) {\r\n\t\tcase 'SET_SIGNATURE':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t[payload.id]: payload.value,\r\n\t\t\t}\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n","import React from 'react'\r\nimport { Typography } from '@material-ui/core';\r\n\r\nfunction NotFound() {\r\n\treturn (\r\n\t\t\r\n\t\t\t404 Page not found.\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default NotFound\r\n","import React, {memo} from 'react'\r\nimport {Box, ListItem as ListItemUI, ListItemIcon, ListItemText, Tooltip} from '@material-ui/core';\r\nimport PropTypes from 'prop-types'\r\nimport {withStyles} from '@material-ui/styles';\r\nimport clsx from 'clsx';\r\n// import { redirect } from 'libs/RouterPath';\r\nimport {withRouter} from \"react-router\";\r\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\r\n\r\nconst style = theme => ({\r\n\tleftMargin: {\r\n\t\tmarginLeft: theme.spacing(3)\r\n\t},\r\n\trightIcon: {\r\n\t\tminWidth: 'unset'\r\n\t},\r\n\ticonOpen: {\r\n\t\ttransform: 'rotate(-180deg)',\r\n\t},\r\n\tcontrastColor: {\r\n\t\tcolor: theme.palette.primary.contrastText,\r\n\t},\r\n\telementColor: {\r\n\t\t...theme.components.navigation.item.primary\r\n\t},\r\n\tmainPadding: {\r\n\t\tpaddingLeft: 0,\r\n\t},\r\n\ticonInnerOpen: {\r\n\t\ttransform: 'rotate(90deg)',\r\n\t},\r\n\tinnerArrow: {\r\n\t\tminWidth: theme.spacing(3)\r\n\t},\r\n\ttext: {\r\n\t\twhiteSpace: \"normal\"\r\n\t},\r\n\ticonContrast: {\r\n\t\tfill: theme.palette.primary.main,\r\n\t},\r\n\tonHover: {\r\n\t\t'&:hover': {\r\n\t\t\tbackground: theme.palette.primary.light,\r\n\t\t\tcolor: theme.palette.secondary.contrastText,\r\n\t\t\t'& $iconContrast': {\r\n\t\t\t\tfill: theme.palette.secondary.contrastText,\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tepmptySpace: {\r\n\t\twidth: theme.spacing(3)\r\n\t},\r\n\ttextBox: {\r\n\t\tmaxWidth: 200\r\n\t}\r\n})\r\n\r\nfunction ListItem({\r\n\tIcon = \"\",\r\n\tonClick,\r\n\tclassName,\r\n\tclasses,\r\n\tclassesObj,\r\n\ticonPosition,\r\n\topen,\r\n\t// href,\r\n\tlocation,\r\n\tsetInnerMenuOpen,\r\n\tinnerMenu,\r\n\t// innerKey,\r\n\t// directLink,\r\n\topenInner,\r\n\tname,\r\n\turl,\r\n\tinnerKey,\r\n\tsingleLink,\r\n\tsetMenuOpen,\r\n\ttooltip\r\n}) {\r\n\tconst renderItem = (component, shouldRender) => {\r\n\t\t// return Icon && (shouldRender ? component : '')\r\n\t\treturn (shouldRender ? component : '')\r\n\t}\r\n\r\n\tconst isSelected = (() => {\r\n\t\tif (!url) return false;\r\n\t\tconst path = location.pathname;\r\n\r\n\t\treturn (path.startsWith(url) && url.length > 1) || path === url;\r\n\t})();\r\n\r\n\tconst iconBase = (className = '') => (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n\r\n\tconst icon = (tooltip, className) => {\r\n\t\tif (!tooltip) {\r\n\t\t\treturn iconBase(className);\r\n\t\t}\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{iconBase(className)}\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\r\n\tconst onArrowClick = () => {\r\n\t\tif (setInnerMenuOpen) {\r\n\t\t\tif (iconPosition === \"right\") {\r\n\t\t\t\tfor (const x in innerMenu) innerMenu[x] = false\r\n\t\t\t\tsetInnerMenuOpen({ ...innerMenu })\r\n\t\t\t} else {\r\n\t\t\t\tsetInnerMenuOpen({\r\n\t\t\t\t\t...innerMenu,\r\n\t\t\t\t\t[innerKey]: !innerMenu[innerKey]\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tsetMenuOpen(true);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tconst handleClick = () => {\r\n\t\tonClick();\r\n\t\t// if (href) { redirect(href) }\r\n\t\tif (url) window.location.href = url\r\n\r\n\t\tif (singleLink) window.location.href = singleLink\r\n\t\telse onArrowClick()\r\n\t}\r\n\r\n\tconst itemClass = clsx(className, classes.onHover, {\r\n\t\t[classes.elementColor]: isSelected,\r\n\t\t[classes.mainPadding]: openInner\r\n\t})\r\n\treturn (\r\n\t\t\r\n\t\t\t{singleLink ?\r\n\t\t\t\t\r\n\t\t\t\t:\r\n\t\t\t\topenInner && (\r\n\t\t\t\t\tinnerKey ?\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t\t{Icon && renderItem(icon(name), iconPosition === 'left')}\r\n\t\t\t\r\n\t\t\t{renderItem(icon(tooltip, classes.rightIcon), iconPosition === 'right')}\r\n\t\t\r\n\t)\r\n}\r\n\r\nListItem.propTypes = {\r\n\t// text: PropTypes.string,\r\n\t// icon: PropTypes.object,\r\n\tonClick: PropTypes.func,\r\n\tclassName: PropTypes.string,\r\n\tclassesObj: PropTypes.shape({\r\n\t\ticon: PropTypes.string,\r\n\t}),\r\n\ticonPosition: PropTypes.oneOf(['left', 'right']),\r\n\t// href: PropTypes.string,\r\n}\r\n\r\nListItem.defaultProps = {\r\n\t// text: '',\r\n\tclassesObj: {\r\n\t\ticon: '',\r\n\t},\r\n\ticonPosition: 'left',\r\n\topen: false,\r\n\tonClick: () => { },\r\n}\r\n\r\nexport default withRouter(withStyles(style)(memo(ListItem, (prevProps, nextProps) => {\r\n\tif (prevProps.location.pathname !== nextProps.location.pathname) return false;\r\n\tif (prevProps.open !== nextProps.open) return false;\r\n\tif (prevProps.openInner !== nextProps.openInner) return false;\r\n\tif (prevProps.className !== nextProps.className) return false;\r\n\tif (JSON.stringify(prevProps.classes) !== JSON.stringify(nextProps.classes)) return false;\r\n\tif (JSON.stringify(prevProps.classesObj) !== JSON.stringify(nextProps.classesObj)) return false;\r\n\tif (JSON.stringify(prevProps.innerMenu) !== JSON.stringify(nextProps.innerMenu)) return false;\r\n\treturn true;\r\n})))\r\n","import React from 'react'\r\nimport ArrowIcon from '@material-ui/icons/ArrowForward'\r\nimport ListItem from './ListItem';\r\nimport { withStyles } from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tpaddingTop: 0,\r\n\t\tpaddingBottom: 0,\r\n\r\n\t\t...theme.components.navigation.item.primary\r\n\t},\r\n\ticon: {\r\n\t\tfill: theme.palette.primary.contrastText\r\n\t}\r\n})\r\n\r\nfunction RolingElement({\r\n\topen,\r\n\tsetOpen,\r\n\tsetInnerMenuOpen,\r\n\tclasses,\r\n}) {\r\n\tconst handleClick = () => {\r\n\t\tsetOpen(!open)\r\n\t\tsetInnerMenuOpen({})\r\n\t}\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default withStyles(style)(RolingElement)\r\n","export default __webpack_public_path__ + \"static/media/logo-long-contrast.f29674e8.png\";","import React, {useMemo} from 'react'\r\nimport logoLong from 'images/logo-long.png'\r\nimport logoIcon from 'images/logo-icon.png'\r\nimport logoLongContrast from 'images/logo-long-contrast.png'\r\nimport logoIconContrast from 'images/logo-icon-contrast.png'\r\nimport { withStyles } from '@material-ui/styles';\r\nimport PropTypes from 'prop-types'\r\nimport { ListItem, Tooltip } from '@material-ui/core';\r\nimport clsx from 'clsx';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport { Link } from 'react-router-dom'\r\nimport { connect } from 'react-redux'\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\theight: theme.spacing(6),\r\n\t},\r\n\timage: {\r\n\t\tobjectFit: 'contain',\r\n\t},\r\n\timageOpen: {\r\n\t\twidth: theme.components.navigation.width - theme.spacing(8),\r\n\t\tmarginLeft: theme.spacing(2)\r\n\t},\r\n\timageClose: {\r\n\t\twidth: theme.spacing(3) + 1,\r\n\t}\r\n})\r\n\r\nfunction Logo({\r\n\topen,\r\n\tpurchaser,\r\n\tclasses,\r\n\tisContrast\r\n}) {\r\n\r\n\tconst logoLongMem = useMemo(()=> isContrast ? logoLongContrast : logoLong, [isContrast])\r\n\tconst logoIconMem = useMemo(()=> isContrast ? logoIconContrast : logoIcon, [isContrast])\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t Tooltip>\r\n\t\t\r\n\t)\r\n}\r\n\r\nLogo.propTypes = {\r\n\topen: PropTypes.bool,\r\n}\r\n\r\nLogo.defaultProps = {\r\n\topen: false,\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n\tisContrast: state.store.contrast,\r\n}), {\r\n\r\n})(withStyles(style)(Logo));","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIsAAACPCAMAAAD9VtjbAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAAFxEAABcRAcom8z8AAAA5UExURUdwTBWamheXlxSYmBObmw+fnxWamhSZmROYmBOZmROamhSXlxOZmRSamhSamhKYmBOZmRKXl///AMorUa4AAAASdFJOUwAwIO9AEGC/n4Df71CvcM+PzzbFZ/cAAAN0SURBVHja7VxZstwgDDSbQdh44f6HzUeSSj6GTYvHr4o+wFRbElLTwCzLxMTExMSPgbUA4P8gAKxWfYGF3sFv+RPOBPZBInuIuY4THgnQmnIXTBCmo8KW+xHByeXG51EELZOcmDEQYGPvjEXgzZT2mQBzMFKBTMTJtabUnekAFipHZoGnV41LmQmGOhpUzHxYad1ty5wIlPaWmRHeQwVPRoAKlowIFRwZISoYMjaLYXRpq02OSx5req5zBPkAu7V6WRZr7QHe9HXgoXEQembvJ72v19TBx7PWbTzKcm1vj7D+qa1bxeIbGdfNuHbrmYaIix2112JzsgiWrTO+tj7h+2Snq2bo7o6uu+hrKbBp+tUQ26+lR/Zfx6yR0bTCHRZm6qQExvJqRHcSAuPZEtRMU8CHBSnJFDow5fZ9Y/c35YFy1dtlucXhd6EJ12NAYg/qDGoxFPv2TdplYbTDziTFuhenRrR/T6JSXkuVNrHJhKX8ked4cyGGpfLLxZV0yRgEtYop/nJJ/G8MJuhgM3cSVsVfFHpMHE3qzsAljBUMyKWo3Lr2sfpKLBbk2GyJYquoMiHTEHNZxKddjhoGB6MolIjpz2jGfInLOiZ1RQEId2FyeRZ+cunnEmdcJpcBATv7y2cu4UVc3jSnS1yMF4Ua0ZjmC1fDFMEUZofktnEUN8pulEEinvVwAl5UMFbOCuIrXv8FLv5FSToETG/2bmfc82TiiwJzvSgwKosExkXMkflNP/QfCXe1c63kQ/8hw6ua+sqZPfBnqDF1K6J35+6grR6qKzcQcCUT8Ce7gZlMINwi0JmVTCDdrgicZKp7rvbErV5QMkNSRp81Kj3Stb5nu/qnwW7Il3Fc3RSKneeguuHR9t3UaJnxPa8PHBiE7YJxnVtsmkyy6ZWKrn0ZM1W6sO1wLA6Gafbfl6X1w7e59tukUTV/9fkVxsPx+2ro4qxdIXV6oWPSTNakUlyDXsj+qclNucvE416BetRERV5B+AKVV70PeNW7iWWx22uosK8m2lbY3XxMNrKnxGbN3wzv55jeQ/G8ctQMw2ljM4kPamgSo2fiSFUTmR93K3SitmNhh0Wx2YTeUNvhTMVDzlzTMKKxkvQJiw19dPz6iN+ooPUSJ6xPGp/2CB8JRQ/7Nw7iFmctAMDlfQL41t9WTExMTExg8Qv3czrSIXb/HQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIsAAACPCAMAAAD9VtjbAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAAFxEAABcRAcom8z8AAAAzUExURUdwTBWamhWamheXlxOZmRObmw+fnxSZmROZmRSZmROamhOZmROZmRSamhSamhOZmRSamtUGjvcAAAAQdFJOUwBgMCCAQBC/n+/fz1CvcI+CN945AAADb0lEQVQYGe3BRw7kOBAEwKSvolz+/7U7h70Ni3KUhAE6Aj8/Pz8//46UYozlfxKjSx7vC3MsypZpiQnvmaWyb4oeL3ALD1HxeJQX5XE1ZjxlLjxLAp7gKq+QgNHSxKskY6RQeIOuGCfypsljDD/xvogRVg5RMu7KCwfRhHt85TgOd8zKkQTXOQ4muMpxOME1jg8QXOH4CMF5jg8RnJX4GIdzvPI5CWfkiYcUiXNKAUBKaY1FeYRmnCDcN8WEvwS3KHcVHOe4p64BlnnhnoijgrKvJHQF4Q6Pgwq7asKuIOyacMzKHo04JFX2rDgiKzsmj4Pyxg7NOEDYIRnHOaVNsC+xY8UpXmkL2FVoczjJTzQJ9iTaHE7LE00BOwpNKy7wSougL9EkuMTTFNC10DJlXONo2dATaFGPqxYaNKMj0hJxWVYaHDoqDRNumGkosM20JNxRaAgwCQ0Ft3gaVpiUhoR7hG0TLImGgpsSDRmGjQaHuwrbHAwT2xS3ObYJ2jINgvuUTRVtiYYZ9wnbMpoi2xQDzGyb0VTYtmAEtkU0VbY5jLCwaUETv1DRkvgJtMz8hEdD5CcSGiI/4dCw8BMRDYWfiGgo/EREQ+EnChoKP1HQUPiJgobKTxQ0FH6ioKHwEwUNhZ8QNBR+IqKh8BMRDcJPRDREfsKhIbJNy6M8GhLbFO/zNAS8j4YZ75vYtuF9C9smvC/SEPC6RIPD+2goeF+hIeB1Kw0Rr/M0aMbrKg0Rr9to0Iy3eVoibsiVhgm2iRaP6zZaHGyOlgmXJVo0w5aVloiLcqVlQ4/QNOOaQlNAT6BJPa4QmgR9QpN6nCe0BfQF2tTjLKFNsEdoU49zhB0Be4LSpg4nhIkdG/ZF9mwZR83KDs3Ylyt7asIhYWHXiiNm9knArhyVXQXHLNwhAV05Kvs04Jis3LPMMCXhrhVHJe7TxQX8Jc9Sua/guI2HaIlrSgF/5JRcXCoP0YwTCp/kcUaufI7DOV75lA1neT5EcJ7jIwRXOD5AcI3jcIKrknIswXVeOVLEHXniMOpwk3CQyeO2WTmCZAwQCm/TGYOsynuWjGGy8IaaMJQvvEhXDJcKL9CY8YQkPKmuGU8JsfK4ZcazklQeUVzGC3ws7KriMt6TVilsqCXOAR/IKcU/tlKW+IdLHj8/Pz8//47/AP6//ENfH7fNAAAAAElFTkSuQmCC\"","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {Button as ButtonUI, Tooltip} from '@material-ui/core'\r\nimport {withStyles} from '@material-ui/styles';\r\nimport {connect} from 'react-redux'\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n icon: {\r\n marginRight: theme.spacing(1)\r\n },\r\n disabled: {\r\n border: `1px solid ${theme.palette.action.disabled}`,\r\n },\r\n transparentBorder: {\r\n border: `1px solid rgba(255,255,255,0.0)`\r\n }\r\n})\r\n\r\nfunction Button(\r\n {\r\n tooltip,\r\n hideTooltip = false,\r\n placement,\r\n classes,\r\n Icon,\r\n children,\r\n isContrast,\r\n ...others\r\n }) {\r\n\r\n const button = (\r\n {Icon &&\r\n \r\n }\r\n {children}\r\n )\r\n\r\n if (hideTooltip || !Boolean(tooltip)) {\r\n return button\r\n }\r\n\r\n return (\r\n \r\n\t\t\t\r\n\t\t\t\t{button}\r\n\t\t\t\r\n \r\n )\r\n}\r\n\r\nButton.propTypes = {\r\n variant: PropTypes.oneOf([ 'text', 'outlined', 'contained']),\r\n color: PropTypes.string,\r\n onClick: PropTypes.func,\r\n disabled: PropTypes.bool\r\n}\r\n\r\nButton.defaultProps = {\r\n variant: 'contained',\r\n color: 'primary',\r\n onClick: () => {\r\n },\r\n}\r\n\r\nexport default connect((state) => ({\r\n isContrast: state.store.contrast,\r\n}), {})(withStyles(style)(Button));\r\n","import React from 'react'\r\nimport { withStyles, ListItem } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&:hover': {\r\n\t\t\tbackground: theme.palette.primary.light,\r\n\t\t\tcolor: theme.palette.secondary.contrastText\r\n\t\t}\r\n\t}\r\n})\r\n\r\nfunction ListElement({\r\n\tclasses,\r\n\tonClick,\r\n\tonMouseEnter,\r\n\tonMouseLeave,\r\n\tlabel,\r\n\tdisabled,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t{label}\r\n\t\t\r\n\t)\r\n}\r\n\r\nListElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nListElement.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(ListElement);","import React, { useState, useEffect } from 'react'\r\nimport { withStyles, Paper, Popper, List } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ListElement from './ListElement';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tzIndex: theme.zIndex.tooltip,\r\n\t},\r\n})\r\n\r\nfunction NewProcedureMenu({\r\n\tclasses,\r\n\tanchorEl,\r\n\tonClose = () => { },\r\n\titems,\r\n\tplacement = 'right-start',\r\n}) {\r\n\tconst [anchorItem, setAnchorItem] = useState(null)\r\n\r\n\tuseEffect(() => {\r\n\t\tif (Boolean(anchorItem)) {\r\n\t\t\tsetAnchorItem(null)\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [anchorEl])\r\n\r\n\tconst handleClickElement = item => (e) => {\r\n\t\tif (Boolean(item.onClick)) {\r\n\t\t\titem.onClick();\r\n\t\t\tonClose();\r\n\t\t}\r\n\t}\r\n\r\n\tconst handleMouseEnter = item => e => {\r\n\t\tif (Boolean(item.items)) {\r\n\t\t\tsetAnchorItem({\r\n\t\t\t\tanchorEl: e.currentTarget,\r\n\t\t\t\t...item,\r\n\t\t\t})\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\tconst handleMouseLeave = e => {\r\n\t\tif (e.relatedTarget.attributes.role === undefined) {\r\n\t\t\t\tonClose();\r\n\t\t}\r\n\t}\r\n\r\n\tconst createSubMenu = () => {\r\n\t\tif (Boolean(anchorItem) && Boolean(anchorItem.items)) {\r\n\t\t\treturn \r\n\t\t}\r\n\t\treturn '';\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{items.map((item, i) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t{createSubMenu()}\r\n\t\t>\r\n\t)\r\n}\r\n\r\nNewProcedureMenu.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nNewProcedureMenu.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(NewProcedureMenu);","import Tr from 'translations/Translations';\r\n\r\nexport const isNonpublicProcedure = (procedureType) => {\r\n\treturn procedureType === ProcedureType.NATIONAL_NONPUBLIC_TYPE || procedureType === ProcedureType.NATIONAL_LOWCOST_TYPE;\r\n}\r\nexport const isNationalProcedure = (procedureType) => {\r\n\treturn procedureType === ProcedureType.NATIONAL_PUBLIC || procedureType === ProcedureType.NATIONAL_SOCIAL_SERVICES;\r\n}\r\nexport const isEuropeProcedure = (procedureType) => {\r\n\t return procedureType === ProcedureType.EUROPE_PUBLIC || procedureType === ProcedureType.EUROPE_SOCIAL_SERVICES;\r\n}\r\n\r\nexport const ProcedureType = {\r\n\tCOMPETITION: \"competition\",\r\n\tDEMAND: \"demand\",\r\n\tDYNAMICPURCHASINGSYSTEM: \"dynamicPurchasingSystem\",\r\n\tFRAMEWORKDEMAND: \"frameworkdemand\",\r\n\tLOWCOST: \"lowcost\",\r\n\tPUBLIC: \"public\",\r\n\tRESEARCH: \"research\",\r\n\tRESEARCHTECHNICAL: \"researchtechnical\",\r\n\tSOCIALSERVICES: \"socialservices\",\r\n\tSTANDARDPURCHASEREQUEST: \"standardpurchaserequest\",\r\n\tNONPUBLICEXECUTIVE: \"nonpublicExecutive\",\r\n\tEUROPE_PUBLIC: \"europePublic\",\r\n\tNATIONAL_PUBLIC: \"nationalPublic\",\r\n\tNATIONAL_SOCIAL_SERVICES: \"nationalSocialServices\",\r\n\tEUROPE_SOCIAL_SERVICES: \"europeSocialServices\",\r\n\tNATIONAL_NONPUBLIC_TYPE: \"nationalNonpublic\",\r\n\tNATIONAL_LOWCOST_TYPE: \"nationalLowcost\",\r\n\tNATIONAL_LOWCOST: \"nationalLowcost\",\r\n\tNATIONAL_RESEARCH_TYPE: \"nationalResearch\",\r\n\tCONCESSION: \"concession\"\r\n}\r\n\r\nexport const ProcedureTypeTr = {\r\n\t[ProcedureType.COMPETITION]: Tr(\"competition\"),\r\n\t[ProcedureType.DEMAND]: Tr(\"demand\"),\r\n\t[ProcedureType.DYNAMICPURCHASINGSYSTEM]: Tr(\"dynamicpurchasingsystem\"),\r\n\t[ProcedureType.FRAMEWORKDEMAND]: Tr(\"frameworkdemand\"),\r\n\t[ProcedureType.LOWCOST]: Tr(\"lowcost\"),\r\n\t[ProcedureType.PUBLIC]: Tr(\"public\"),\r\n\t[ProcedureType.RESEARCH]: Tr(\"research\"),\r\n\t[ProcedureType.RESEARCHTECHNICAL]: Tr(\"researchtechnical\"),\r\n\t[ProcedureType.SOCIALSERVICES]: Tr(\"socialservices\"),\r\n\t[ProcedureType.STANDARDPURCHASEREQUEST]: Tr(\"standardpurchaserequest\"),\r\n\t[ProcedureType.NONPUBLICEXECUTIVE]: Tr(ProcedureType.NONPUBLICEXECUTIVE),\r\n\t[ProcedureType.EUROPE_PUBLIC]: Tr(ProcedureType.EUROPE_PUBLIC),\r\n\t[ProcedureType.EUROPE_SOCIAL_SERVICES]: Tr(ProcedureType.EUROPE_SOCIAL_SERVICES),\r\n\t[ProcedureType.NATIONAL_PUBLIC]: Tr(ProcedureType.NATIONAL_PUBLIC),\r\n\t[ProcedureType.NATIONAL_SOCIAL_SERVICES]: Tr(ProcedureType.NATIONAL_SOCIAL_SERVICES),\r\n\t[ProcedureType.NATIONAL_NONPUBLIC_TYPE]: Tr(ProcedureType.NATIONAL_NONPUBLIC_TYPE),\r\n\t[ProcedureType.NATIONAL_LOWCOST_TYPE]: Tr(ProcedureType.NATIONAL_LOWCOST_TYPE),\r\n\t[ProcedureType.NATIONAL_LOWCOST]: Tr(ProcedureType.NATIONAL_LOWCOST_TYPE),\r\n\t[ProcedureType.NATIONAL_RESEARCH_TYPE]: Tr(ProcedureType.NATIONAL_RESEARCH_TYPE),\r\n\t[ProcedureType.CONCESSION]: Tr(ProcedureType.CONCESSION)\r\n}\r\n\r\nexport const ProcedureType_PZP_2021 = [\r\n\tProcedureType.EUROPE_PUBLIC,\r\n\tProcedureType.NATIONAL_PUBLIC,\r\n\tProcedureType.EUROPE_SOCIAL_SERVICES,\r\n\tProcedureType.NATIONAL_SOCIAL_SERVICES,\r\n\tProcedureType.NATIONAL_NONPUBLIC_TYPE,\r\n\tProcedureType.NATIONAL_LOWCOST_TYPE,\r\n\tProcedureType.NATIONAL_RESEARCH_TYPE,\r\n\tProcedureType.CONCESSION\r\n]\r\n\r\nexport default Object.values(ProcedureTypeTr)\r\n","import RouterPath from 'libs/RouterPath';\r\nimport {clearResource, setStepperState} from 'redux/actions';\r\nimport reduxStore from 'redux/store'\r\nimport {ProcedureTypeTr} from \"constants/ProcedureType\";\r\nimport Tr from 'translations/Translations';\r\n\r\nconst createItem = (label, items, onClick, disabled = false) => ({\r\n label,\r\n items,\r\n onClick,\r\n disabled,\r\n})\r\n\r\n//#TODO: translations\r\n\r\nconst newDeamandFunction = (passive, procedureType) => {\r\n reduxStore.dispatch(clearResource('demand'))\r\n reduxStore.dispatch(clearResource('dealingsList'))\r\n reduxStore.dispatch(clearResource('dealing'))\r\n reduxStore.dispatch(clearResource('demandHeader'));\r\n //reduxStore.dispatch(clearResource('demandActions'));\r\n reduxStore.dispatch(setStepperState())\r\n RouterPath.redirectWithSearch(RouterPath.myProcedure.steps.MP_1, {passive, procedureType})\r\n}\r\nexport default (procedures) => {\r\n\r\n return procedures.map(proc => {\r\n\r\n const items = [];\r\n if (proc.system) {\r\n items.push(createItem(Tr('activeForm'), undefined, () => newDeamandFunction(false, proc.procedureType)))\r\n }\r\n if (proc.passive) {\r\n items.push(\r\n createItem(Tr('passiveForm'), undefined, () => newDeamandFunction(true, proc.procedureType)))\r\n }\r\n return createItem(ProcedureTypeTr[proc.procedureType], items)\r\n })\r\n}\r\n\r\n","import React, {useState} from 'react'\r\nimport {ListItem, Tooltip, Typography, withStyles} from '@material-ui/core';\r\nimport Button from 'components/Button';\r\nimport PropTypes from 'prop-types'\r\nimport AddIcon from '@material-ui/icons/Add'\r\nimport Tr from 'translations/Translations'\r\n// import NewForm from 'components/popup/newForm/NewForm';\r\nimport NewProcedureMenu from './newProcedureMenu/NewProcedureMenu';\r\nimport menuItems from './newProcedureMenu/ListElements.values'\r\n\r\nconst style = theme => ({\r\n button: {\r\n minWidth: 'unset',\r\n padding: 0,\r\n },\r\n text: {\r\n marginBottom: -1,\r\n marginLeft: theme.spacing(1)\r\n },\r\n buttonTooltipWraper: {\r\n display: 'flex'\r\n }\r\n})\r\n\r\nfunction ListAddButton(\r\n {\r\n open,\r\n procedures,\r\n classes\r\n }) {\r\n // const [openCreateNew, setOpenCreateNew] = useState(false)\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n\r\n const handleClick = (e) => {\r\n // setOpenCreateNew(true)\r\n setAnchorEl(anchorEl ? null : e.currentTarget)\r\n }\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n }\r\n\r\n const buttonLabel = open ?\r\n <>\r\n \r\n \r\n {Tr('new2')}\r\n \r\n >\r\n : \r\n\r\n\r\n return (\r\n \r\n \r\n {/* */}\r\n \r\n \r\n\r\n )\r\n}\r\n\r\nListAddButton.propTypes = {\r\n open: PropTypes.bool,\r\n className: PropTypes.string,\r\n}\r\n\r\nListAddButton.defaultProps = {\r\n open: false,\r\n}\r\n\r\nexport default withStyles(style)(ListAddButton)\r\n","export const devMode = !process.env.NODE_ENV || process.env.NODE_ENV === 'development';\r\nexport default () => devMode;","import RouterPath from \"libs/RouterPath\";\r\nimport {devMode} from \"../libs/isDevMode\";\r\nimport pjson from '../../package.json'\r\n\r\nconst redirect_uri = window.location.origin + RouterPath.baseRoute;\r\n\r\nlet SERVER_URL = window.location.origin\r\n\r\nif (devMode) {\r\n SERVER_URL = \"http://localhost/app-ezam\";\r\n //nie można innych używać, bo przeszliśmy na sesję http a jeśli różne domeny to sa różne sesje\r\n //jak coś gtrzeba skonfigurowac lokalne proxy https://confluence.marketplanet.pl/pages/viewpage.action?pageId=19693610\r\n}\r\n\r\nconst EXT_JS_LIBRARIES = {\r\n jquery: SERVER_URL + \"/js/jquery-3.3.1.min.js?v=\" + encodeURIComponent(pjson.version),\r\n szafir: SERVER_URL + \"/js/signature/szafirsdk-module.js?v=\" + encodeURIComponent(pjson.version)\r\n}\r\n\r\n\r\nconst BASE = SERVER_URL + \"/api\"\r\nconst BASE_MP = SERVER_URL + \"/mp\"\r\n\r\nconst oauth = {\r\n AUTHORIZE: (state) => BASE_MP + `/oauth/authorize?client_id=mp&response_type=code&state=${state}&redirect_uri=${redirect_uri}`,\r\n TOKEN: BASE_MP + '/oauth/token',\r\n LOGOUT: `${BASE}/oauth/logout`\r\n}\r\n\r\nconst base = {\r\n BASE,\r\n DEMANDS: BASE + \"/demands\",\r\n DEMAND: BASE + \"/demand\",\r\n RFX: BASE + \"/rfx\",\r\n CPV_LIST: BASE + '/cpv/list',\r\n MEASURE_UNITS: BASE + '/measureUnitTypes/list',\r\n DEALINGS: BASE + '/dealings',\r\n ITEMS: BASE + '/items',\r\n USER: BASE + '/user',\r\n SALES: BASE + '/sales',\r\n POLL: BASE + '/poll',\r\n UPLOAD: (csrf, encryptRoundId) => `${SERVER_URL}/repository/upload/api${encryptRoundId ? \"/encrypt?roundId=\" + encryptRoundId + \"&\" : \"?\"}CSRFToken=${csrf}`,\r\n //UPLOAD: (csrf) => `${BASE}/upload?CSRFToken=${csrf}`,\r\n ESPD: BASE + '/espd',\r\n PURCHASING_GROUP: BASE + \"/purchasingGroup\",\r\n ADMIN: BASE + \"/admin\",\r\n CHANG_LANGUAGE: (language, country, csrf, backUrl) => `${SERVER_URL}/servlet/HomeServlet?MP_module=common&MP_action=changeLocale&language=${language}&country=${country}&CSRFToken=${csrf}&backUrl=${encodeURIComponent(backUrl)}`\r\n}\r\n\r\nconst sales = {\r\n SALES_NOTIFICATION_SEND: (functionalityName) => `${base.SALES}/notification/${functionalityName}/send`\r\n}\r\n\r\nconst poll = {\r\n POLL_SAVE_RATING: () => `${base.POLL}`,\r\n POLL_GET: (pollType) => `${base.POLL}/${pollType}`\r\n}\r\n\r\nconst DEMAND_BASE = (id) => `${base.DEMAND}/${id}`;\r\nconst RFX_BASE = (id) => `${base.RFX}/${id}`;\r\n\r\nconst __DEMAND_AUTOSAVE = (id) => base.DEMAND + \"/autoSave/\" + id;\r\nconst __DEMAND_EXPOST_AUTOSAVE = (id) => base.DEMAND + \"/exPost/autoSave/\" + id;\r\nconst demand = {\r\n DEMAND_SAVE: base.DEMAND + \"/save\",\r\n DEMAND_SAVE_EX_POST: base.DEMAND + \"/exPost/save\",\r\n DEMAND_GET_NEW: (params) => base.DEMAND + `/-1${params}`,\r\n DEMAND_GET_BY_ID: (id, params) => `${DEMAND_BASE(id)}${params}`,\r\n DEMAND_COMMISION_USER_HISTORY: (id) => base.DEMAND + `/${id}/commission/users/history`,\r\n DEMAND_AUTOSAVE: (id) => __DEMAND_AUTOSAVE(id),\r\n DEMAND_AUTOSAVE_CHECK: (id) => __DEMAND_AUTOSAVE(id) + '/check',\r\n DEMAND_EXPOST_AUTOSAVE: (id) => __DEMAND_EXPOST_AUTOSAVE(id),\r\n DEMAND_EXPOST_AUTOSAVE_CHECK: (id) => __DEMAND_EXPOST_AUTOSAVE(id) + '/check',\r\n DEMAND_PREVIEW: (id) => DEMAND_BASE(id) + '/preview',\r\n DEMAND_ACTIONS: (id) => `${DEMAND_BASE(id)}/actions`,\r\n DEMAND_DELETE: (id) => `${DEMAND_BASE(id)}/delete`,\r\n DEMAND_CLONE: (id) => `${DEMAND_BASE(id)}/clone`,\r\n DEMAND_REALTED_OBJECTS: (id) => `${DEMAND_BASE(id)}/relatedObjects`,\r\n DEMAND_PRIVILEGES: (id) => `${DEMAND_BASE(id)}/privileges`,\r\n DEMAND_RFX_PRIVILEGES: (id) => `${DEMAND_BASE(id)}/rfxPrivileges`,\r\n DEMAND_UPDATE_NUMBER: (id) => `${DEMAND_BASE(id)}/updateNumber`\r\n}\r\n\r\nconst DEALINGS = (id) => `${base.DEALINGS}/${id}`\r\nconst DEALINGS_AUTOSAVE_DEALING = (id, dealingId) => DEALINGS(id) + '/autoSaveDealing/' + (dealingId)\r\n\r\nconst dealings = {\r\n DEALINGS,\r\n DEALINGS_SINGLE: (demandId, dealingId) => DEALINGS(demandId) + '/' + dealingId,\r\n DEALINGS_LIST: (demandId) => DEALINGS(demandId) + '/list',\r\n DEALINGS_SAVE: (id) => DEALINGS(id) + '/save',\r\n DEALINGS_VALIDATE: (id) => DEALINGS(id) + '/validate',\r\n DEALINGS_DELETE: (id) => DEALINGS(id) + '/delete',\r\n DEALINGS_AUTOSAVE: (id, dealingId) => DEALINGS_AUTOSAVE_DEALING(id, dealingId),\r\n DEALINGS_AUTOSAVE_CHECK: (id, dealingId) => DEALINGS_AUTOSAVE_DEALING(id, dealingId) + '/check',\r\n DEALINGS_AUTOSAVE_BATCH: (id) => DEALINGS(id) + '/autoSaveDealing',\r\n DEALINGS_IMPORT: (id) => DEALINGS(id) + '/import',\r\n DEALINGS_EXPORT: (id) => DEALINGS(id) + '/export',\r\n DEALINGS_WITH_CRITERION: (demandId, critId) => DEALINGS(demandId) + `/criterion/${critId}/matching`,\r\n DEALINGS_MATCHING_CRITERION: (demandId, stageId, criteriumType) => DEALINGS(demandId) + `/stage/${stageId}/criterium/${criteriumType}/matching`\r\n}\r\n\r\nconst DEALING = (id) => `${base.DEMAND}/${id}/dealing`;\r\n\r\nconst dealing = {\r\n DEALING_REALIZATION_VALUE: (demandId) => `${DEALING(demandId)}/realizationValue`,\r\n DEALING_FINAL_REALIZATION_VALUE: (demandId) => `${DEALING(demandId)}/finalRealizationValue`,\r\n DEALING_REALIZATION_VALUE_STATUS: (demandId) => `${DEALING(demandId)}/realizationValueStatus`,\r\n DEALING_REALIZATION_VALUE_PUBLISH: (demandId) => `${DEALING(demandId)}/realizationOfferAmount/publish`,\r\n DEALING_REALIZATION_VALUE_UNPUBLISH: (demandId) => `${DEALING(demandId)}/realizationOfferAmount/unpublish`,\r\n}\r\n\r\nconst PAPERS_GENERATOR = (id) => `${DEMAND_BASE(id)}/papersGenerator`;\r\n\r\nconst PAPERS_GENERATOR_PRINT = (identity, paper) => `${SERVER_URL}/servlet/HomeServlet?MP_module=common&MP_action=papersGeneratorPrinter&paper=${paper}&identity=${identity}`;\r\nconst PAPERS_GENERATOR_PRINT_SHARE = (identity, paper, shareSystem) => `${SERVER_URL}/servlet/HomeServlet?MP_module=common&MP_action=papersGeneratorPrinter&paper=${paper}&identity=${identity}&shareSystem=${shareSystem}`;\r\nconst PAPERS_GENERATOR_DEMAND_REPORT = (identity, report) => `${SERVER_URL}/servlet/HomeServlet?MP_module=demand&MP_action=${report}&demandIdentity=${identity}`;\r\n\r\nconst PAPERS_GENERATOR_DEMAND_ATTACHMENT_VERIFICATION_REPORT = (demandId) => `${SERVER_URL}/app/rfx/${demandId}/offer/attachment/verify/report`;\r\nconst PAPERS_GENERATOR_CORRESPONDENCE_ATTACHMENT_VERIFICATION_REPORT = (demandId) => `${SERVER_URL}/app/rfx/correspondence/buyer/${demandId}/supplier/attachments/printVerification/report`;\r\nconst PAPERS_GENERATOR_DEMAND_PROCESS_HISTORY = (demandId) => `${SERVER_URL}/servlet/HomeServlet?MP_module=demand&MP_action=demandPrintProcessHistory&documentIdentity=${demandId}&documentType=DEMAND&processConfigName=Demand`;\r\n\r\nconst papersGenerator = {\r\n PAPERS_GENERATOR,\r\n RFX_REQUEST_POSITION: (id) => PAPERS_GENERATOR(id) + `/rfxRequestPosition`,\r\n SWZ_PARAMS: (id) => PAPERS_GENERATOR(id) + `/swzParams`,\r\n RFX_INVITED_SUPPLIER_WITH_OFFER: (id) => PAPERS_GENERATOR(id) + `/rfxInvitedSupplierWithOffer`,\r\n RFX_INVITED_SUPPLIER_POSITION: (id, supplierId) => PAPERS_GENERATOR(id) + `/${supplierId}/rfxInvitedSupplierPosition`,\r\n SIWZ_GET_GENERATOR_PARAMS: (id) => PAPERS_GENERATOR(id) + `/swzParams`,\r\n XMM_UZP_PRESIDENT_PAPER: (id) => PAPERS_GENERATOR(id) + `/xmlUzpPresidentPaper`,\r\n GET_SUPPLIER_ATTACHMENTS_VERIFICATION: (id, supplierId) => PAPERS_GENERATOR(id) + `/${supplierId}/supplierAttachmentsVerification`,\r\n PAPERS_GENERATOR_PRINT,\r\n PAPERS_GENERATOR_PRINT_SHARE,\r\n PAPERS_GENERATOR_DEMAND_REPORT,\r\n PAPERS_GENERATOR_DEMAND_ATTACHMENT_VERIFICATION_REPORT,\r\n PAPERS_GENERATOR_CORRESPONDENCE_ATTACHMENT_VERIFICATION_REPORT,\r\n PAPERS_GENERATOR_DEMAND_PROCESS_HISTORY\r\n}\r\n\r\nconst EMAIL_LIST = (id) => `${DEMAND_BASE(id)}/emailList`;\r\n\r\nconst emailList = {\r\n EMAIL_LIST,\r\n EMAIL_LIST_ACTIONS: (demandId) => `${EMAIL_LIST(demandId)}/actions`,\r\n EMAIL_DETAILS: (demandId, emailId) => `${EMAIL_LIST(demandId)}/${emailId}/details`,\r\n EMAIL_PRINT: (demandId, emailId) => `${EMAIL_LIST(demandId)}/${emailId}/print`,\r\n}\r\n\r\nconst SCHEDULE = (id) => `${DEMAND_BASE(id)}/schedule`;\r\n\r\nconst schedule = {\r\n SCHEDULE,\r\n SCHEDULE_AUTOSAVE: (id) => SCHEDULE(id) + '/autoSave/' + id,\r\n SCHEDULE_AUTOSAVE_CHECK: (id) => SCHEDULE(id) + '/autoSave/' + id + '/check',\r\n SCHEDULE_SAVE: (id) => SCHEDULE(id) + '/save',\r\n SCHEDULE_VALIDATE: (id) => SCHEDULE(id) + '/validate',\r\n}\r\n\r\nconst COMMISSION = (id) => `${base.DEMAND}/${id}/commission/users`;\r\n\r\nconst commission = {\r\n COMMISSION,\r\n COMMISSION_AUTOSAVE: (demandId) => COMMISSION(demandId) + `/autoSave/${demandId}`,\r\n COMMISSION_AUTOSAVE_CHECK: (demandId) => COMMISSION(demandId) + `/autoSave/${demandId}/check`,\r\n COMMISSION_VALIDATE: (id) => COMMISSION(id) + '/validate',\r\n COMMISSION_AVAILABLE: (id) => COMMISSION(id) + `/available`,\r\n COMMISSION_HISTORY: (id) => COMMISSION(id) + `/history`,\r\n COMMISSION_DELETE_COMMISION_MEMBER: (demandId, id) => COMMISSION(demandId) + `/${id}`,\r\n COMMISSION_MARK_HISTORICAL_MEMBER: (demandId, id) => COMMISSION(demandId) + `/markHistorical/${id}`,\r\n COMMISSION_EXTERNAL: `${base.BASE}/commission/external-users`,\r\n}\r\n\r\nconst GUARANTEE = (id) => `${base.DEMAND}/${id}/guarantee`;\r\nconst GUARANTEE_AUTOSAVE = (id) => `${GUARANTEE(id)}/autoSave/${id}`;\r\n\r\nconst guarantee = {\r\n GUARANTEE,\r\n GUARANTEE_VALIDATE: (id) => GUARANTEE(id) + '/validate',\r\n GUARANTEE_AUTOSAVE: (id) => GUARANTEE_AUTOSAVE(id),\r\n GUARANTEE_AUTOSAVE_CHECK: (id) => GUARANTEE_AUTOSAVE(id) + '/check'\r\n}\r\n\r\nconst ESPD = (id) => `${base.ESPD}/${id}`;\r\nconst ESPD_AUTOSAVE = (id) => `${base.ESPD}/autoSave/${id}`;\r\n\r\nconst espd = {\r\n ESPD,\r\n ESPD_SAVE: (id) => ESPD(id) + `/save`,\r\n ESPD_VALIDATE: (id) => ESPD(id) + '/validate',\r\n ESPD_AUTOSAVE: (id) => ESPD_AUTOSAVE(id),\r\n ESPD_AUTOSAVE_CHECK: (id) => ESPD_AUTOSAVE(id) + `/check`,\r\n ESPD_EXPORT_FOR_DEMAND: (dealingId) => `${ESPD(dealingId)}/export`,\r\n ESPD_EXPORT_FOR_DEALING: (demandId, dealingId) => `${ESPD(demandId)}/dealing/${dealingId}/export`,\r\n ESPD_PRINT_FOR_DEMAND: (dealingId) => `${ESPD(dealingId)}/print`,\r\n ESPD_PRINT_FOR_DEALING: (demandId, dealingId) => `${ESPD(demandId)}/dealing/${dealingId}/print`,\r\n}\r\n\r\nconst CONTRACTOR = (id) => `${DEMAND_BASE(id)}/contractor`;\r\nconst CONTRACTOR_INVITE = (id) => CONTRACTOR(id) + '/invite';\r\n\r\nconst contractor = {\r\n CONTRACTOR_ADD: (id) => CONTRACTOR(id) + '/add',\r\n CONTRACTOR_GET_LIST: (id) => CONTRACTOR(id) + '/list',\r\n CONTRACTOR_GET_DETAILS: (id, contractorDepartmentId) => CONTRACTOR(id) + `/getContractorData/${contractorDepartmentId}`,\r\n CONTRACTOR_REMOVE: (id) => CONTRACTOR(id) + '/remove',\r\n CONTRACTOR_ONEPLACE: (id) => CONTRACTOR(id) + `/onePlace`,\r\n CONTRACTOR_VALIDATE: (id) => CONTRACTOR(id) + '/validate',\r\n CONTRACTOR_INVITE,\r\n CONTRACTOR_CHECK: (id) => CONTRACTOR_INVITE(id) + '/check',\r\n CONTRACTOR_GET_NIP_LIST: (id) => CONTRACTOR_INVITE(id) + '/nipprefix',\r\n}\r\n\r\nconst CONTRACTOR_VERIFICATION = (id) => `${DEMAND_BASE(id)}/evaluation/contractor`;\r\nconst contractorVerification = {\r\n CONTRACTOR_VERIFICATION_LIST: (id) => CONTRACTOR_VERIFICATION(id) + \"/list\",\r\n CONTRACTOR_VERIFICATION_STATUS: (id) => CONTRACTOR_VERIFICATION(id) + \"/status\",\r\n CONTRACTOR_VERIFICATION_PROCEDURE: (id) => CONTRACTOR_VERIFICATION(id) + \"/procedure\",\r\n CONTRACTOR_VERIFICATION_VALIDATE: (id) => CONTRACTOR_VERIFICATION(id) + \"/validate\"\r\n}\r\n\r\nconst user = {\r\n USER_DATA: base.USER + '/data',\r\n USER_PROFILE: base.USER + '/profile',\r\n USER_LOGGED_MENU_LIST: base.USER + '/logged/menu/list',\r\n USER_SESSION_TIME: base.USER + '/sessionTime',\r\n USER_SERVER_TIME: base.USER + '/serverTime',\r\n}\r\n\r\nconst header = {\r\n HEADER: (id) => DEMAND_BASE(id) + '/header'\r\n}\r\n\r\nconst client = {\r\n CLIENT_LOGO: BASE + '/client/logo',\r\n CLIENT_COLORS: BASE + '/client/colors'\r\n}\r\n\r\nconst publish = {\r\n PUBLISH_DEMAND: (id) => DEMAND_BASE(id) + '/publish',\r\n IS_PUBLISH_DEMAND: (id) => DEMAND_BASE(id) + '/published',\r\n PUBLISH_OJS_NOTICE: (id) => DEMAND_BASE(id) + '/publication/ojs/publish',\r\n ROLLBACK_OJS_NOTICE: (id) => DEMAND_BASE(id) + '/publication/ojs/rollback',\r\n CHECK_OJS_NOTICE: (id) => DEMAND_BASE(id) + '/publication/ojs/status',\r\n CHECK_PUBLICATION_LIMIT: (id) => DEMAND_BASE(id) + '/publication/checkLimit',\r\n PUBLISH_DEMAND_EX_POST: (id) => DEMAND_BASE(id) + '/exPost/goToFinish'\r\n}\r\n\r\nconst NOTICE = (id) => `${DEMAND_BASE(id)}/notice`;\r\n\r\nconst notice = {\r\n NOTICE,\r\n NOTICE_PREVIEW: (id) => NOTICE(id) + '/preview',\r\n NOTICE_VALIDATE: (id) => NOTICE(id) + '/validate',\r\n}\r\n\r\nconst SIWZ = (demandId) => `${base.DEMAND}/${demandId}/siwz`;\r\nconst SIWZ_ID = (demandId, id, source) => `${SIWZ(demandId)}/${source}/${id}`;\r\n\r\nconst siwz = {\r\n SIWZ,\r\n SIWZ_MOVE_FROM_REPO: (demandId) => SIWZ(demandId) + '/moveFromRepo',\r\n SIWZ_VALIDATE: (demandId) => SIWZ(demandId) + '/validate',\r\n SIWZ_VALIDATE_DOCUMENTS: (demandId) => SIWZ(demandId) + '/validate/documents',\r\n SIWZ_ID,\r\n SIWZ_ID_DOWNLOAD_HISTORY: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/downloadHistory`,\r\n SIWZ_ID_UPDATE_DESCRIPTION: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/updateDescription`,\r\n SIWZ_ID_UPDATE_SHARE: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/share`,\r\n SIWZ_ID_UPDATE_STATUS: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/updateStatus`,\r\n SIWZ_ID_PUBLISH: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/publish`,\r\n SIWZ_ID_VERSIONS: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/versions`,\r\n SIWZ_ID_UNPUBLISH: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/unpublish`,\r\n SIWZ_ID_GET_DOWNLOAD_URL: (demandId, id, source, openInBrowser) => SIWZ_ID(demandId, id, source) + `/url/${openInBrowser ? 'open' : 'download'}`,\r\n SIWZ_EDITABLE: (demandId) => SIWZ(demandId) + '/editable',\r\n SIWZ_TYPES: (demandId) => SIWZ(demandId) + `/types`,\r\n SIWZ_DOWNLOAD_ALL: (demandId) => SIWZ(demandId) + `/downloadZip`,\r\n SIWZ_ADD_BZP_NOTICE: (demandId) => SIWZ(demandId) + `/bzpNotice`,\r\n SIWZ_POST_PRINT_SWZ: (demandId) => SIWZ(demandId) + `/printSwz`,\r\n SIWZ_POST_SHARE_SWZ: (demandId) => SIWZ(demandId) + `/shareSwz`,\r\n}\r\n\r\nconst STATISTIC_CURRENT_ROUND = (demandId) => `${base.DEMAND}/${demandId}/statistic/getCurrentRound`;\r\nconst STATISTIC = (demandId, roundId) => `${base.DEMAND}/${demandId}/statistic/${roundId}`;\r\n\r\nconst statistic = {\r\n STATISTIC_CURRENT_ROUND,\r\n STATISTIC,\r\n}\r\n\r\nconst SUPPLIERS = (demandId, roundId) => `${base.DEMAND}/${demandId}/rfx/${roundId}/supplier`;\r\nconst supplier = {\r\n SUPPLIERS_ADD: (demandId, roundId) => `${SUPPLIERS(demandId, roundId)}/add`,\r\n SUPPLIERS_INVITE: (demandId, roundId) => `${SUPPLIERS(demandId, roundId)}/invite`,\r\n SUPPLIERS_LIST: (demandId, roundId) => `${SUPPLIERS(demandId, roundId)}/list`,\r\n SUPPLIERS_CHANGE_EXTERNAL_SIGN: (demandId, roundId, supplierId) => `${SUPPLIERS(demandId, roundId)}/${supplierId}/externalOfferSign`\r\n}\r\n\r\nconst rfxRound = {\r\n RFX_ROUND_CANCEL: (roundId) => `${RFX_BASE(roundId)}/cancel`,\r\n RFX_ROUND_PRIVILEGES: (roundId) => `${RFX_BASE(roundId)}/privileges`,\r\n}\r\n\r\nconst RFX_OFFERS_BASE = (roundId) => `${RFX_BASE(roundId)}/offer`;\r\nconst RFX_DECRYPTION_BASE = (roundId) => `${RFX_BASE(roundId)}/decryption`;\r\nconst offers = {\r\n RFX_OFFERS_LIST: (roundId) => `${RFX_OFFERS_BASE(roundId)}/list`,\r\n RFX_OFFERS_SEND_INVITE: (roundId) => `${RFX_OFFERS_BASE(roundId)}/sendInvite`,\r\n RFX_OFFERS_ATTACHMENTS: (roundId) => `${RFX_OFFERS_BASE(roundId)}/attachments`,\r\n RFX_OFFERS_ENVELOPE: (roundId) => `${RFX_OFFERS_BASE(roundId)}/envelope`,\r\n RFX_OFFERS_ENVELOPE_ID: (roundId, offerEnvelopeId) => `${RFX_OFFERS_BASE(roundId)}/envelope/${offerEnvelopeId}`,\r\n RFX_OFFERS_ADDITIONAL_ROUND_OFFERS: (roundId, supplierId) => `${RFX_OFFERS_BASE(roundId)}/supplier/${supplierId}/additionalRoundOffers`,\r\n RFX_OFFERS_ACTIONS: (roundId) => `${RFX_OFFERS_BASE(roundId)}/actions`,\r\n RFX_OFFERS_SUMMARY: (roundId, type) => `${RFX_OFFERS_BASE(roundId)}/summary/${type}`,\r\n RFX_OFFERS_PUBLIC_SESSION_START: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/processPublicSession`,\r\n RFX_OFFERS_PUBLIC_SESSION_STATUS: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/publicSessionStatus`,\r\n RFX_OFFERS_PUBLIC_SESSION_PROGRESS: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/publicSessionProgress`,\r\n RFX_OFFERS_DECRYPTION_START: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/processOfferDecryption`,\r\n RFX_OFFERS_DECRYPTION_STATUS: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/offerDecryptionStatus`,\r\n RFX_OFFERS_DECRYPTION_STATUS_LIGHT: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/offerDecryptionStatusLight`,\r\n RFX_OFFERS_DECRYPTION_PROGRESS: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/offerDecryptionProgress`,\r\n RFX_OFFERS_PUBLIC_SESSION_ONLINE_SAVE: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/saveSessionOnline`,\r\n RFX_OFFERS_PUBLIC_SESSION_ONLINE_STATUS: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/publicSessionOnlineStatus`\r\n}\r\n\r\nconst REPO = (demandId) => `${DEMAND_BASE(demandId)}/repo`;\r\nconst REPO_FOLDER = (demandId, folderId) => REPO(demandId) + `/folder/${folderId}`;\r\nconst REPO_FILE = (demandId, fileId) => REPO(demandId) + `/file/${fileId}`;\r\n\r\nconst repo = {\r\n REPO,\r\n REPO_EDITABLE: (demandId) => REPO(demandId) + \"/editable\",\r\n REPO_PUBLISH_OPENING_OFFER_FOLDER: (demandId) => REPO(demandId) + \"/publishOpeningOfferFolder\",\r\n REPO_VISIBILITY_TYPES: (demandId) => REPO(demandId) + \"/visibilityTypes\",\r\n REPO_FOLDER,\r\n REPO_FILES_VISIBILITY: (demandId, folderId) => REPO_FOLDER(demandId, folderId) + \"/filesVisibility\",\r\n REPO_FOLDER_SHARE: (demandId, folderId) => REPO_FOLDER(demandId, folderId) + \"/share\",\r\n REPO_DOWNLOAD_ALL: (demandId, folderId) => REPO_FOLDER(demandId, folderId) + \"/downloadZip\",\r\n REPO_DELETE_ALL_FOLDER_FILES: (demandId, folderId) => REPO_FOLDER(demandId, folderId) + \"/allFiles\",\r\n REPO_FILE,\r\n REPO_FILE_VISIBILITY: (demandId, fileId) => REPO_FILE(demandId, fileId) + \"/visibility\",\r\n REPO_FILE_SHARE: (demandId, fileId) => REPO_FILE(demandId, fileId) + \"/share\",\r\n REPO_FILE_DOWNLOAD_HISTORY: (demandId, fileId) => REPO_FILE(demandId, fileId) + \"/downloadHistory\",\r\n REPO_FILE_UPDATE_DESCRIPTION: (demandId, fileId) => REPO_FILE(demandId, fileId) + \"/updateDescription\",\r\n REPO_FILE_GET_DOWNLOAD_URL: (demandId, fileId, openInBrowser) => REPO_FILE(demandId, fileId) + `/url/${openInBrowser ? 'open' : 'download'}`\r\n}\r\n\r\nconst DEMAND_MODIFICATION = (demandId) => `${DEMAND_BASE(demandId)}/modify`;\r\n\r\nconst modification = {\r\n DEMAND_MODIFICATION,\r\n DEMAND_MODIFICATION_PUBLISH: (demandId) => DEMAND_MODIFICATION(demandId) + \"/publish\",\r\n DEMAND_MODIFICATION_CANCEL: (demandId) => DEMAND_MODIFICATION(demandId) + \"/rollback\",\r\n DEMAND_MODIFICATION_PUBLISH_OJS: (demandId) => DEMAND_MODIFICATION(demandId) + \"/ojs/publish\",\r\n DEMAND_MODIFICATION_ROLLBACK_OJS: (demandId) => DEMAND_MODIFICATION(demandId) + \"/ojs/rollback\",\r\n DEMAND_MODIFICATION_OJS_STATUS: (demandId) => DEMAND_MODIFICATION(demandId) + \"/ojs/status\",\r\n DEMAND_MODIFICATION_CHANGED: (demandId) => DEMAND_MODIFICATION(demandId) + \"/changed\"\r\n}\r\n\r\nconst DEMAND_SECTIONS = (demandId) => `${DEMAND_BASE(demandId)}/sections`;\r\n\r\nconst sections = {\r\n DEMAND_PREPARING_SECTIONS: (demandId) => `${DEMAND_SECTIONS(demandId)}/preparing`,\r\n DEMAND_EVALUATION_SECTIONS: (demandId) => `${DEMAND_SECTIONS(demandId)}/evaluation`,\r\n DEMAND_FINISHING_SECTIONS: (demandId) => `${DEMAND_SECTIONS(demandId)}/finishing`\r\n}\r\n\r\nconst OFFER_EVALUATION = (demandId) => `${DEMAND_BASE(demandId)}/evaluation/offer`;\r\n\r\nconst offerEvaluation = {\r\n OFFER_EVALUATION_LIST: (demandId, viewMode, roundType) => `${OFFER_EVALUATION(demandId)}/${viewMode}/${roundType}`,\r\n OFFER_EVALUATION_LIST_UPDATE_STATUS: (demandId, viewMode, roundType) => `${OFFER_EVALUATION(demandId)}/${viewMode}/${roundType}/changeOfferStatus`,\r\n OFFER_EVALUATION_LIST_UPDATE_SCORE: (demandId, viewMode, roundType) => `${OFFER_EVALUATION(demandId)}/${viewMode}/${roundType}/changeCriterionScore`,\r\n OFFER_EVALUATION_VALIDATE: (demandId) => `${OFFER_EVALUATION(demandId)}/validate`\r\n}\r\n\r\n\r\nconst OFFER_CHOICE = (demandId) => `${DEMAND_BASE(demandId)}/evaluation/choice`;\r\n\r\nconst offerChoice = {\r\n OFFER_CHOICE: (demandId) => `${OFFER_CHOICE(demandId)}`,\r\n OFFER_CHOICE_CANCEL_WHERE_NO_OFFERS: (demandId) => `${OFFER_CHOICE(demandId)}/cancelWhereNoOffers`,\r\n OFFER_CHOICE_POSITIONS_WITH_NO_OFFER: (demandId) => `${OFFER_CHOICE(demandId)}/positionWithNoOffer`,\r\n OFFER_CHOICE_PREPARE_ADDITIONAL_ROUND: (demandId, roundType) => `${OFFER_CHOICE(demandId)}/prepareAdditionalRound/${roundType.toLowerCase()}`,\r\n OFFER_CHOICE_PREPARE_AUCTION_INFO: (demandId, positionId) => `${OFFER_CHOICE(demandId)}/prepareAuctionInfo/${positionId}`,\r\n OFFER_CHOICE_REVOKE: (demandId, positionId) => `${OFFER_CHOICE(demandId)}/position/${positionId}/revoke`,\r\n OFFER_CHOICE_CREATE_ADDITIONAL_ROUND: (demandId) => `${OFFER_CHOICE(demandId)}/createAdditionalRound`,\r\n OFFER_CHOICE_GET_POSITION: (demandId, positionId) => `${OFFER_CHOICE(demandId)}/position/${positionId}`,\r\n OFFER_CHOICE_VALIDATE: (demandId) => `${OFFER_CHOICE(demandId)}/validate`,\r\n OFFER_CHOICE_JUSTIFICATIONS: (demandId) => `${OFFER_CHOICE(demandId)}/choiceJustificationBasis`,\r\n OFFER_CHOICE_PRIMARY_CHECK: (demandId) => `${OFFER_CHOICE(demandId)}/primaryTenderPathChoice/check`,\r\n OFFER_CHOICE_PRIMARY_DO_NEGOTIATIONS: (demandId) => `${OFFER_CHOICE(demandId)}/primaryTenderPathChoice/doNegotiations`,\r\n OFFER_CHOICE_PRIMARY_DO_OFFER_CHOICE: (demandId) => `${OFFER_CHOICE(demandId)}/primaryTenderPathChoice/chooseOffers`,\r\n}\r\n\r\nconst ADDITIONAL_ROUND = (demandId) => `${DEMAND_BASE(demandId)}/evaluation/additionalRound`;\r\nconst additionalRound = {\r\n ADDITIONAL_ROUND_CHANGE_DATES: (demandId) => `${ADDITIONAL_ROUND(demandId)}/changeDates`\r\n}\r\n\r\nconst DEMAND_ADDITIONAL_INFO = (demandId) => `${DEMAND_BASE(demandId)}/additionalInfo`;\r\nconst demandAdditionalInfo = {\r\n DEMAND_ADDITIONAL_INFO: DEMAND_ADDITIONAL_INFO,\r\n DEMAND_ADDITIONAL_INFO_VALIDATE: (id) => DEMAND_ADDITIONAL_INFO(id) + \"/validate\",\r\n DEMAND_ADDITIONAL_INFO_AUTOSAVE: (id) => `${DEMAND_ADDITIONAL_INFO(id)}/autoSave/${id}`,\r\n DEMAND_ADDITIONAL_INFO_AUTOSAVE_CHECK: (id) => `${DEMAND_ADDITIONAL_INFO(id)}/autoSave/${id}/check`\r\n}\r\n\r\nconst AUCTION = (demandId) => `${DEMAND_BASE(demandId)}/auction`;\r\nconst AUCTION_RFX = (demandId, roundId) => `${AUCTION(demandId)}/${roundId}`;\r\n\r\nconst auction = {\r\n AUCTION_PREPARE: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/prepare`,\r\n AUCTION_CREATE: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/create`,\r\n AUCTION_EDIT_DATES: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/editDates`,\r\n AUCTION_PUBLISH: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/publish`,\r\n AUCTION_UNPUBLISH: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/unpublish`,\r\n AUCTION_PAUSE: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/pause`,\r\n AUCTION_RESUME: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/resume`,\r\n AUCTION_CANCEL: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/cancel`,\r\n AUCTION_DELETE: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/delete`,\r\n AUCTION_DOWNLOAD_INVITATION: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/auctionInvitation`,\r\n AUCTION_ACCEPT: (demandId, roundId, auctionId) => `${AUCTION_RFX(demandId, roundId)}/accept/${auctionId}`,\r\n AUCTION_DETAILS: (demandId, roundId, auctionId) => `${AUCTION_RFX(demandId, roundId)}/details/${auctionId}`,\r\n}\r\n\r\nconst OFFER_CHOICE_RESULT = (demandId) => `${DEMAND_BASE(demandId)}/evaluation/result`;\r\nconst OFFER_CHOICE_RESULT_ID = (demandId, roundResultId) => `${OFFER_CHOICE_RESULT(demandId)}/${roundResultId}`;\r\nconst OFFER_CHOICE_RESULT_FILE = (demandId, roundResultId) => `${OFFER_CHOICE_RESULT_ID(demandId, roundResultId)}/file`;\r\nconst OFFER_CHOICE_RESULT_FILE_ID = (demandId, roundResultId, resultFileId) => `${OFFER_CHOICE_RESULT_FILE(demandId, roundResultId)}/${resultFileId}`;\r\n\r\nconst offerChoiceResult = {\r\n OFFER_CHOICE_RESULT: (demandId) => `${OFFER_CHOICE_RESULT(demandId)}`,\r\n OFFER_CHOICE_RESULT_GET: (demandId, roundResultId) => `${OFFER_CHOICE_RESULT_ID(demandId, roundResultId)}/get`,\r\n OFFER_CHOICE_RESULT_PRINT: (demandId, roundResultId) => `${OFFER_CHOICE_RESULT_ID(demandId, roundResultId)}/print`,\r\n OFFER_CHOICE_RESULT_SHARE: (demandId, roundResultId) => `${OFFER_CHOICE_RESULT_ID(demandId, roundResultId)}/share`,\r\n OFFER_CHOICE_RESULT_PUBLISH_UNTIL_DATE: (demandId, roundResultId) => `${OFFER_CHOICE_RESULT_ID(demandId, roundResultId)}/publishUntilDate`,\r\n OFFER_CHOICE_RESULT_FILE: (demandId, roundResultId) => OFFER_CHOICE_RESULT_FILE(demandId, roundResultId),\r\n OFFER_CHOICE_RESULT_FILE_PUBLISH: (demandId, roundResultId, resultFileId) => `${OFFER_CHOICE_RESULT_FILE_ID(demandId, roundResultId, resultFileId)}/publish`,\r\n OFFER_CHOICE_RESULT_FILE_UNPUBLISH: (demandId, roundResultId, resultFileId) => `${OFFER_CHOICE_RESULT_FILE_ID(demandId, roundResultId, resultFileId)}/unpublish`,\r\n OFFER_CHOICE_RESULT_FILE_DELETE: (demandId, roundResultId, resultFileId) => `${OFFER_CHOICE_RESULT_FILE_ID(demandId, roundResultId, resultFileId)}/delete`,\r\n OFFER_CHOICE_RESULT_FILE_DOWNLOAD_HISTORY: (demandId, roundResultId, resultFileId) => `${OFFER_CHOICE_RESULT_FILE_ID(demandId, roundResultId, resultFileId)}/history`,\r\n OFFER_CHOICE_RESULT_FILE_SHARE: (demandId, roundResultId, resultFileId) => `${OFFER_CHOICE_RESULT_FILE_ID(demandId, roundResultId, resultFileId)}/share`,\r\n OFFER_CHOICE_RESULT_FILE_DOWNLOAD_URL: (demandId, roundResultId, resultFileId, openInBrowser) => `${OFFER_CHOICE_RESULT_FILE_ID(demandId, roundResultId, resultFileId)}/url/${openInBrowser ? \"open\" : \"download\"}`,\r\n OFFER_CHOICE_RESULT_VALIDATE: (demandId) => `${OFFER_CHOICE_RESULT(demandId)}/validate`\r\n}\r\n\r\nconst AGREEMENTS = (demandId) => `${DEMAND_BASE(demandId)}/evaluation/agreement`;\r\n\r\nconst agreements = {\r\n AGREEMENTS_AVAILABLE: (demandId) => `${AGREEMENTS(demandId)}/without`,\r\n AGREEMENTS_CREATED: (demandId) => `${AGREEMENTS(demandId)}/created`,\r\n AGREEMENTS_CREATE_NO_AGREEMENT: (demandId) => `${AGREEMENTS(demandId)}/createNoAgreement`,\r\n AGREEMENTS_CREATE_AGREEMENT: (demandId) => `${AGREEMENTS(demandId)}/createAgreement`,\r\n AGREEMENTS_AVAILABLE_ORGANIZATIONS: (demandId) => `${AGREEMENTS(demandId)}/organizations`,\r\n AGREEMENTS_DELETE: (demandId, objId) => `${AGREEMENTS(demandId)}/delete/extObj/${objId}`,\r\n AGREEMENTS_DELETE_AGR: (demandId, objId) => `${AGREEMENTS(demandId)}/delete/agreement/${objId}`,\r\n AGREEMENTS_VALIDATE: (demandId) => `${AGREEMENTS(demandId)}/validate`\r\n}\r\n\r\nconst RESULT_NOTICE = (demandId) => `${DEMAND_BASE(demandId)}/resultNotice`;\r\nconst RESULT_NOTICE_ID = (demandId, resultNoticeId) => `${DEMAND_BASE(demandId)}/resultNotice/${resultNoticeId}`;\r\nconst RESULT_NOTICE_ATTACHMENT_ID = (demandId, resultNoticeId, resultNoticeAttachmentId) => `${RESULT_NOTICE_ID(demandId, resultNoticeId)}/file/${resultNoticeAttachmentId}`;\r\n\r\nconst resultNotice = {\r\n RESULT_NOTICE: (demandId) => `${RESULT_NOTICE(demandId)}`,\r\n RESULT_NOTICE_BZP: (demandId) => RESULT_NOTICE(demandId) + `/bzpNotice`,\r\n RESULT_NOTICE_PUBLISH_OJS_NOTICE: (demandId) => `${RESULT_NOTICE(demandId)}/publication/ojs/publish`,\r\n RESULT_NOTICE_CHECK_OJS_NOTICE: (demandId) => `${RESULT_NOTICE(demandId)}/publication/ojs/check`,\r\n RESULT_NOTICE_ROLLBACK_OJS_NOTICE: (demandId) => `${RESULT_NOTICE(demandId)}/publication/ojs/rollback`,\r\n RESULT_NOTICE_ID: (demandId, resultNoticeId) => `${RESULT_NOTICE_ID(demandId, resultNoticeId)}`,\r\n RESULT_NOTICE_VALIDATE: (demandId) => `${RESULT_NOTICE(demandId)}/validate`,\r\n RESULT_NOTICE_DELETE: (demandId, resultNoticeId, resultNoticeAttachmentId) => `${RESULT_NOTICE_ATTACHMENT_ID(demandId, resultNoticeId, resultNoticeAttachmentId)}/delete`,\r\n RESULT_NOTICE_PUBLISH: (demandId) => `${RESULT_NOTICE(demandId)}/publish`,\r\n RESULT_NOTICE_UNPUBLISH: (demandId) => `${RESULT_NOTICE(demandId)}/unpublish`,\r\n RESULT_NOTICE_ATTACHMENT_PUBLISH: (demandId, resultNoticeId, resultNoticeAttachmentId) => `${RESULT_NOTICE_ATTACHMENT_ID(demandId, resultNoticeId, resultNoticeAttachmentId)}/publish`,\r\n RESULT_NOTICE_ATTACHMENT_UNPUBLISH: (demandId, resultNoticeId, resultNoticeAttachmentId) => `${RESULT_NOTICE_ATTACHMENT_ID(demandId, resultNoticeId, resultNoticeAttachmentId)}/unpublish`,\r\n RESULT_NOTICE_DESCRIPTION: (demandId, resultNoticeId, resultNoticeAttachmentId) => `${RESULT_NOTICE_ATTACHMENT_ID(demandId, resultNoticeId, resultNoticeAttachmentId)}/description`,\r\n RESULT_NOTICE_DOWNLOAD_FILE_URL: (demandId, resultNoticeId, resultNoticeAttachmentId, openInBrowser) =>\r\n `${RESULT_NOTICE_ATTACHMENT_ID(demandId, resultNoticeId, resultNoticeAttachmentId)}/url/${openInBrowser ? \"open\" : \"download\"}`,\r\n RESULT_NOTICE_DOWNLOAD_FILE_HISTORY: (demandId, resultNoticeId, resultNoticeAttachmentId) =>\r\n `${RESULT_NOTICE_ATTACHMENT_ID(demandId, resultNoticeId, resultNoticeAttachmentId)}/downloadHistory`\r\n}\r\n\r\nconst EVALUATION_FINISH = (demandId) => `${DEMAND_BASE(demandId)}/evaluation/finish`;\r\nconst evaluationFinish = {\r\n EVALUATION_FINISH: (demandId) => `${EVALUATION_FINISH(demandId)}`\r\n}\r\n\r\nconst DEMAND_PLAN_REALIZATION = (demandId) => `${DEMAND_BASE(demandId)}/planRealization`;\r\nconst demandPlanRealization = {\r\n DEMAND_PLAN_REALIZATION: (demandId) => `${DEMAND_PLAN_REALIZATION(demandId)}`,\r\n DEMAND_PLAN_REALIZATION_VALIDATE: (demandId) => `${DEMAND_PLAN_REALIZATION(demandId)}/validate`\r\n}\r\n\r\nconst FINISH_DEMAND = (demandId) => `${DEMAND_BASE(demandId)}/finish`;\r\nconst finishDemand = {\r\n FINISH_DEMAND: (demandId) => `${FINISH_DEMAND(demandId)}`,\r\n FINISH_DEMAND_BACK_TO_OFFER_EVALUATION: (demandId) => `${FINISH_DEMAND(demandId)}/backToOfferEvaluation`,\r\n FINISH_DEMAND_BACK_TO_RESULT_NOTICE: (demandId) => `${FINISH_DEMAND(demandId)}/backToResultNotice`,\r\n FINISH_DEMAND_WITHDRAWAL_NOTICE_DATE: (demandId) => `${FINISH_DEMAND(demandId)}/withdrawalNoticeDate`,\r\n FINISH_DEMAND_CANCEL: (demandId) => `${FINISH_DEMAND(demandId)}/cancelDemand`,\r\n FINISH_DEMAND_FINISH: (demandId) => `${FINISH_DEMAND(demandId)}/finishDemand`,\r\n FINISH_DEMAND_VALIDATE: (demandId) => `${FINISH_DEMAND(demandId)}/validate`\r\n}\r\n\r\nconst ARCHIVING = (demandId) => `${DEMAND_BASE(demandId)}/archiving`;\r\nconst archiving = {\r\n ARCHIVING: (demandId) => `${ARCHIVING(demandId)}`,\r\n ARCHIVING_SCHEDULE: (demandId) => `${ARCHIVING(demandId)}/scheduleArchive`,\r\n ARCHIVING_VALIDATE: (demandId) => `${ARCHIVING(demandId)}/validate`\r\n}\r\n\r\nconst ADDITIONAL_ROUNDS_PASSIVE = (demandId) => `${DEMAND_BASE(demandId)}/additionalRoundPassive`;\r\nconst additionalRoundsPassive = {\r\n ADDITIONAL_ROUNDS_PASSIVE: (demandId) => `${ADDITIONAL_ROUNDS_PASSIVE(demandId)}`,\r\n ADDITIONAL_ROUNDS_PASSIVE_ROUND: (demandId, roundId) => `${ADDITIONAL_ROUNDS_PASSIVE(demandId)}/round/${roundId}`,\r\n ADDITIONAL_ROUNDS_PASSIVE_AVAILABLE_CONTRACTORS: (demandId) => `${ADDITIONAL_ROUNDS_PASSIVE(demandId)}/availableContractors`,\r\n ADDITIONAL_ROUNDS_PASSIVE_VALIDATE: (demandId) => `${ADDITIONAL_ROUNDS_PASSIVE(demandId)}/validate`\r\n}\r\n\r\nconst CORRESPONDENCE_BASE = `${base.RFX}/correspondence`;\r\n\r\nconst CORRESPONDENCE_BUYER_BASE = (roundId) => `${CORRESPONDENCE_BASE}/buyer/${roundId}`;\r\n\r\nconst correspondenceBuyer = {\r\n CORRESPONDENCE_BUYER_CTR_IN_ROUND: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/getContractorsInRound`,\r\n CORRESPONDENCE_BUYER_THREAD_LIST: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/thread/list`,\r\n CORRESPONDENCE_BUYER_NEW_MESSAGES: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/newMessages`,\r\n CORRESPONDENCE_BUYER_SEARCH: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/search`,\r\n\r\n CORRESPONDENCE_BUYER_THREAD_ADD: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/thread/add`,\r\n CORRESPONDENCE_BUYER_THREAD_AS_CRT_SEND: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/asContractor/thread/send`,\r\n CORRESPONDENCE_BUYER_BULK_MESSAGES_SEND: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/bulk/message/send`,\r\n CORRESPONDENCE_BUYER_BULK_MESSAGES_PUBLISH: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/bulk/message/publish`,\r\n CORRESPONDENCE_BUYER_PRIVILEGES: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/privileges`,\r\n CORRESPONDENCE_BUYER_PRINT: (roundId, type, before) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/${type}/${before === true ? \"before\" : (before === false ? \"after\" : \"all\")}/print`,\r\n CORRESPONDENCE_BUYER_SHARE: (roundId, type, before) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/${type}/${before === true ? \"before\" : (before === false ? \"after\" : \"all\")}/share`,\r\n\r\n CORRESPONDENCE_BUYER_MESSAGE_LIST: (roundId, threadId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/thread/${threadId}/message/list`,\r\n CORRESPONDENCE_BUYER_MESSAGE_CREATE: (roundId, threadId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/thread/${threadId}/message/create`,\r\n CORRESPONDENCE_BUYER_MESSAGE_MARK_AS_READ: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/messages/markAsRead`,\r\n CORRESPONDENCE_BUYER_FLAG: (roundId, threadId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/thread/${threadId}/flag`,\r\n CORRESPONDENCE_BUYER_UNFLAG: (roundId, threadId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/thread/${threadId}/unflag`,\r\n CORRESPONDENCE_BUYER_THREAD_EMAIL_LIST: (roundId, threadId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/thread/${threadId}/emailList`,\r\n\r\n CORRESPONDENCE_BUYER_MESSAGE_SEND: (roundId, messageId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/send`,\r\n CORRESPONDENCE_BUYER_MESSAGE_PUBLISH: (roundId, messageId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/publish`,\r\n CORRESPONDENCE_BUYER_MESSAGE_UPDATE: (roundId, messageId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/update`,\r\n CORRESPONDENCE_BUYER_MESSAGE_DELETE: (roundId, messageId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/delete`,\r\n\r\n CORRESPONDENCE_BUYER_ATTACHMENT_URL: (roundId, attachmentId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/attachment/${attachmentId}/url`,\r\n\r\n CORRESPONDENCE_BUYER_MESSAGE_EMAIL_DELIVERY: (roundId, messageId, type, identity) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/emailDelivery/${type}/${identity}`,\r\n CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_ZIP: (roundId, messageId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/attachments`,\r\n CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_CHECK_LIMIT: (roundId, messageId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/attachments/checkVerificationLimit`,\r\n CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_VERIFY: (roundId, messageId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/attachments/printVerification`,\r\n CORRESPONDENCE_BUYER_CONTRACTOR_EMAIL_LIST: (roundId, departmentId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/contractor/${departmentId}/emailList`,\r\n}\r\n\r\nconst CORRESPONDENCE_CONTRACTOR_BASE = (roundId) => `${CORRESPONDENCE_BASE}/contractor/${roundId}`;\r\n\r\nconst correspondenceContractor = {\r\n CORRESPONDENCE_CONTRACTOR_THREAD_LIST: (roundId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/thread/list`,\r\n CORRESPONDENCE_CONTRACTOR_NEW_MESSAGES: (roundId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/newMessages`,\r\n CORRESPONDENCE_CONTRACTOR_SEARCH: (roundId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/search`,\r\n\r\n CORRESPONDENCE_CONTRACTOR_THREAD_ADD: (roundId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/thread/add`,\r\n CORRESPONDENCE_CONTRACTOR_PRIVILEGES: (roundId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/privileges`,\r\n CORRESPONDENCE_CONTRACTOR_PRINT: (roundId, type, before) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/${type}/${before === true ? \"before\" : (before === false ? \"after\" : \"all\")}/print`,\r\n\r\n CORRESPONDENCE_CONTRACTOR_MESSAGE_LIST: (roundId, threadId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/thread/${threadId}/message/list`,\r\n CORRESPONDENCE_CONTRACTOR_MESSAGE_CREATE: (roundId, threadId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/thread/${threadId}/message/create`,\r\n CORRESPONDENCE_CONTRACTOR_MESSAGE_MARK_AS_READ: (roundId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/messages/markAsRead`,\r\n CORRESPONDENCE_CONTRACTOR_FLAG: (roundId, threadId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/thread/${threadId}/flag`,\r\n CORRESPONDENCE_CONTRACTOR_UNFLAG: (roundId, threadId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/thread/${threadId}/unflag`,\r\n\r\n CORRESPONDENCE_CONTRACTOR_MESSAGE_UPDATE: (roundId, messageId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/message/${messageId}/update`,\r\n CORRESPONDENCE_CONTRACTOR_MESSAGE_SEND: (roundId, messageId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/message/${messageId}/send`,\r\n CORRESPONDENCE_CONTRACTOR_MESSAGE_DELETE: (roundId, messageId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/message/${messageId}/delete`,\r\n\r\n CORRESPONDENCE_CONTRACTOR_ATTACHMENT_URL: (roundId, attachmentId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/attachment/${attachmentId}/url`,\r\n\r\n CORRESPONDENCE_CONTRACTOR_MESSAGE_ATTACHMENTS_ZIP: (roundId, messageId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/message/${messageId}/attachments`,\r\n}\r\n\r\nconst DEMAND_OFFERS_BASE = (id) => `${DEMAND_BASE(id)}/offers`\r\nconst DEMAND_OFFERS_STAGE_BASE = (id, stageId) => `${DEMAND_OFFERS_BASE(id)}/${stageId}`\r\n\r\nconst demandOffers = {\r\n DEMAND_OFFERS_CONTRACTOR_STAGES_LIST: (id, contractorDepartmentId) => `${DEMAND_OFFERS_BASE(id)}/stages/${contractorDepartmentId ? 'operator' : 'contractor'}`,\r\n DEMAND_OFFERS_CONTRACTOR_STAGE_SECTIONS_LIST: (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/sections/${supplierId ? 'operator' : 'contractor'}`,\r\n DEMAND_OFFERS_CONTRACTOR_STAGE_TRANSLATIONS: (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/translations/${supplierId ? 'operator' : 'contractor'}`,\r\n DEMAND_OFFERS_CONTRACTOR_STAGE_SECTION: (id, stageId, section, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/sections/${section}/${supplierId ? 'operator' : 'contractor'}`,\r\n DEMAND_OFFERS_STAGE_CURRENT_ROUND: (id, stageId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/currentRound`,\r\n DEMAND_OFFERS_CONTRACTOR_STAGE_PASSWORD: (id, stageId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/password`,\r\n DEMAND_OFFERS_VALIDATE: (demandId) => `${DEMAND_OFFERS_BASE(demandId)}/validate`\r\n}\r\n\r\nconst DEMAND_OFFERS_STAGE_CONTRACTOR_GENERAL_INFO_BASE = (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/${supplierId ? \"operator\" : \"contractor\"}/generalInfo`\r\nconst demandOffersGeneralInfo = {\r\n DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_BASIC_DATA: (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_CONTRACTOR_GENERAL_INFO_BASE(id, stageId, supplierId)}/basicData`,\r\n DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS: (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_CONTRACTOR_GENERAL_INFO_BASE(id, stageId, supplierId)}/documents`,\r\n DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS_DOWNLOAD_URL: (id, stageId, type, documentId, supplierId) => `${DEMAND_OFFERS_STAGE_CONTRACTOR_GENERAL_INFO_BASE(id, stageId, supplierId)}/documents/downloadUrl/${type}/${documentId}`,\r\n DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS_DOWNLOAD_ZIP: (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_CONTRACTOR_GENERAL_INFO_BASE(id, stageId, supplierId)}/documents/download/zip`,\r\n DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_PUBLIC_ANSWERS: (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_CONTRACTOR_GENERAL_INFO_BASE(id, stageId, supplierId)}/publicAnswers`,\r\n}\r\n\r\nconst DEMAND_OFFERS_STAGE_OFFER_BASE = (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/${supplierId ? 'operator' : 'contractor'}/offer`;\r\n\r\nconst demandOffersOffer = {\r\n DEMAND_OFFERS_STAGE_CONTRACTOR_OFFER: (demandId, stageId, supplierId) => DEMAND_OFFERS_STAGE_OFFER_BASE(demandId, stageId, supplierId),\r\n DEMAND_OFFERS_OFFER_MODE: (id, stage, supplierId, mode) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}`,\r\n DEMAND_OFFERS_OFFER_MODE_POSITIONS: (id, stage, mode, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/positions`,\r\n DEMAND_OFFERS_OFFER_MODE_FILES: (id, stage, mode, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/files`,\r\n DEMAND_OFFERS_OFFER_MODE_TEMPLATE: (id, stage, mode, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/template`,\r\n DEMAND_OFFERS_OFFER_MODE_FILE_DOWNLOAD_URL: (id, stage, mode, fileId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/file/${fileId}`,\r\n DEMAND_OFFERS_OFFER_MODE_FILE_DOWNLOAD_ZIP: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/documents/download/zip`,\r\n DEMAND_OFFERS_OFFER_FILE: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/file`,\r\n DEMAND_OFFERS_OFFER_FILES: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/files`,\r\n DEMAND_OFFERS_OFFER_FILE_ID: (id, stage, fileId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/file/${fileId}`,\r\n DEMAND_OFFERS_OFFER_FILE_ID_SIGN_FILE: (id, stage, fileId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/file/${fileId}/signFile`,\r\n\r\n DEMAND_OFFERS_OFFER_ESPD: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/espd`,\r\n DEMAND_OFFERS_OFFER_ESPDS: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/espds`,\r\n DEMAND_OFFERS_OFFER_ESPD_ID: (id, stage, espdId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/espd/${espdId}`,\r\n DEMAND_OFFERS_OFFER_ESPD_ID_SIGN_FILE: (id, stage, espdId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/espd/${espdId}/signFile`,\r\n DEMAND_OFFERS_OFFER_ESPD_MP_APP_URL: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/espd/mpAppUrl`,\r\n DEMAND_OFFERS_OFFER_ESPD_EXPORT_FILE_URL: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/espd/exportFileUrl`,\r\n DEMAND_OFFERS_OFFER_MODE_ESPD_DOWNLOAD_URL: (id, stage, mode, espdId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/espd/${espdId}`,\r\n\r\n DEMAND_OFFERS_OFFER_PLACE_OFFER: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/placeOffer`,\r\n DEMAND_OFFERS_OFFER_WITHDRAW_OFFER: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/withdrawOffer`,\r\n DEMAND_OFFERS_OFFER_SIGN_OFFER: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/signOffer`,\r\n DEMAND_OFFERS_OFFER_SIGN_WITHDRAW: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/signWithdraw`,\r\n DEMAND_OFFERS_OFFER_DOC_TO_SIGN: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/offerDocumentToSign`,\r\n DEMAND_OFFERS_OFFER_WITHDRAW_DOC_TO_SIGN: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/withdrawDocumentToSign`,\r\n DEMAND_OFFERS_OFFER_STOP_SIGNING_OPERATION: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/stopSigningOperation`,\r\n DEMAND_OFFERS_OFFER_REQUIRE_WITHDRAW_ENCRYPTION: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/requireWithdrawEncryption`,\r\n DEMAND_OFFERS_OFFER_DELETE_OFFER: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/deleteOffer`,\r\n\r\n DEMAND_OFFERS_OFFER_POSITION: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/position`,\r\n DEMAND_OFFERS_OFFER_MODE_POSITION_ID: (id, stage, mode, positionId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/position/${positionId}`,\r\n\r\n DEMAND_OFFERS_OFFER_SNAPSHOTS: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/snapshots`,\r\n DEMAND_OFFERS_OFFER_SNAPSHOT_ID: (id, stage, snapshotId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/snapshot/${snapshotId}`,\r\n DEMAND_OFFERS_OFFER_VERIFICATIONS: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/verifications`,\r\n DEMAND_OFFERS_OFFER_VERIFICATION_BEFORE_PLACE: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/verificationBeforePlaceOffer`,\r\n\r\n}\r\n\r\nconst DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE = (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/${supplierId ? 'operator' : 'contractor'}/additionalOffers`;\r\n\r\nconst demandAdditionalOffersOffer = {\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_MODE: (id, stage, mode, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_POSITIONS: (id, stage, mode, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/positions`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILES: (id, stage, mode, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/files`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILE_DOWNLOAD_URL: (id, stage, mode, fileId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/file/${fileId}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILE_DOWNLOAD_ZIP: (id, stage, mode, fileId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/documents/download/zip`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_FILE: (id, stage, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/file`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_FILES: (id, stage, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/files`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_FILE_ID: (id, stage, fileId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/file/${fileId}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_FILE_ID_SIGN_FILE: (id, stage, fileId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/file/${fileId}/signFile`,\r\n\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_ESPD_DOWNLOAD_URL: (id, stage, mode, espdId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/espd/${espdId}`,\r\n\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_PLACE_OFFER: (id, stage, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/placeOffer`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_WITHDRAW_OFFER: (id, stage) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/withdrawOffer`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_SIGN_OFFER: (id, stage) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/signOffer`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_SIGN_WITHDRAW: (id, stage) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/signWithdraw`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_DOC_TO_SIGN: (id, stage) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/offerDocumentToSign`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_WITHDRAW_DOC_TO_SIGN: (id, stage) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/withdrawDocumentToSign`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_STOP_SIGNING_OPERATION: (id, stage, positionId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/stopSigningOperation/${positionId}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_REQUIRE_WITHDRAW_ENCRYPTION: (id, stage) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/requireWithdrawEncryption`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_DELETE_OFFER: (id, stage) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/deleteOffer`,\r\n\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_POSITION: (id, stage, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/position`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_POSITION_ID: (id, stage, mode, positionId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/position/${positionId}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_SNAPSHOTS: (id, stage, positionId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/snapshots/${positionId}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_SNAPSHOT_ID: (id, stage, positionId, snapshotId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/snapshot/${positionId}/${snapshotId}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_VERIFICATIONS: (id, stage, positionId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/verifications/${positionId}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_VERIFICATION_BEFORE_PLACE: (id, stage, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/verificationBeforePlaceOffer`,\r\n}\r\n\r\nconst DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE = (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/${supplierId ? 'operator' : 'contractor'}/additionalAuction`;\r\n\r\nconst demandAdditionalAuction = {\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_AUCTIONS: (id, stage) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage)}/auctions`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_AUCTIONS_ASSIGN: (id, stage, auctionId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage)}/${auctionId}/assignToAuction`,\r\n\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE: (id, stage, mode, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_ESPD_DOWNLOAD_URL: (id, stage, mode, espdId, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/espd/${espdId}`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_FILE_DOWNLOAD_URL: (id, stage, mode, fileId, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/file/${fileId}`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_FILES: (id, stage, mode, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/files`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_POSITION: (id, stage, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/position`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_POSITION_ID: (id, stage, mode, positionId, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/position/${positionId}`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_SNAPSHOTS: (id, stage, positionId, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/snapshots/${positionId}`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_SNAPSHOT_ID: (id, stage, positionId, snapshotId, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/snapshot/${positionId}/${snapshotId}`,\r\n}\r\n\r\n\r\nconst DEMAND_PREVIEW_STAGE_OFFER_BASE = (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/${supplierId ? 'operator' : 'contractor'}/preview`;\r\nconst demandPublicationPreview = {\r\n DEMAND_PREVIEW_OFFER_MODE: (id, stage, supplierId, mode) => `${DEMAND_PREVIEW_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}`,\r\n DEMAND_PREVIEW_OFFER_MODE_SECTION: (id, stage, supplierId, mode) => `${DEMAND_PREVIEW_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/section`,\r\n DEMAND_PREVIEW_OFFER_MODE_POSITION_ID: (id, stage, mode, positionId, supplierId) => `${DEMAND_PREVIEW_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/position/${positionId}`,\r\n DEMAND_PREVIEW_OFFER_MODE_POSITION_ID_PRINT: (id, stage, mode, positionId, supplierId) => `${DEMAND_PREVIEW_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/position/${positionId}/print`,\r\n}\r\n\r\nconst integrations = {\r\n SHAREPOINT: (demandId) => `${DEMAND_BASE(demandId)}/sharepoint`,\r\n EZDRP: (demandId) => `${DEMAND_BASE(demandId)}/ezdrp`,\r\n EZDPUW: (demandId) => `${DEMAND_BASE(demandId)}/ezdpuw`,\r\n EZDPUW_DOCUMENTS: (demandId, caseId) => `${DEMAND_BASE(demandId)}/ezdpuw/${caseId}/documents`\r\n}\r\n\r\nconst EZAMOWIENIA_BASE = `${BASE}/ezamowienia`\r\nconst ezamowienia = {\r\n EZAMOWIENIA_AUTHORIZATION_STATUS: `${EZAMOWIENIA_BASE}/authorizationStatus`,\r\n EZAMOWIENIA_REVOKE_TOKEN: `${EZAMOWIENIA_BASE}/revokeToken`,\r\n}\r\n\r\nconst ANNUAL_REPORT_BASE = `${BASE}/annualReport`\r\nconst annualReport = {\r\n ANNUAL_REPORT: ANNUAL_REPORT_BASE,\r\n ANNUAL_REPORT_REPORT_YEAR: (year) => `${ANNUAL_REPORT_BASE}/year/${year}`,\r\n ANNUAL_REPORT_REPORT_YEAR_AVAILABLE_ORGS: (year) => `${ANNUAL_REPORT_BASE}/year/${year}/availableOrgs`,\r\n ANNUAL_REPORT_REPORT_ID: (reportId) => `${ANNUAL_REPORT_BASE}/report/${reportId}`,\r\n ANNUAL_REPORT_REPORT_ID_ACTION: (reportId, action) => `${ANNUAL_REPORT_BASE}/report/${reportId}/${action}`,\r\n ANNUAL_REPORT_REPORT_ID_FORM_NAME: (reportId, formName) => `${ANNUAL_REPORT_BASE}/report/${reportId}/form/${formName}`,\r\n ANNUAL_REPORT_REPORT_ID_INITIALIZE_FORM_NAME: (reportId, formName) => `${ANNUAL_REPORT_BASE}/report/${reportId}/initialize/${formName}`,\r\n ANNUAL_REPORT_REPORT_ID_INITIALIZE_FROM_PREV_FORM_NAME: (reportId, formName) => `${ANNUAL_REPORT_BASE}/report/${reportId}/copyFromPrev/${formName}`,\r\n ANNUAL_REPORT_REPORT_ID_INITIALIZE_FORM_NAME_TABLE_ID: (reportId, formName, tableIdentity) => `${ANNUAL_REPORT_BASE}/report/${reportId}/initialize/${formName}/${tableIdentity}`,\r\n ANNUAL_REPORT_DICTIONARIES: ANNUAL_REPORT_BASE + \"/dictionaries\",\r\n ANNUAL_REPORT_TRANSLATIONS: ANNUAL_REPORT_BASE + \"/translations\",\r\n}\r\n\r\nconst CONTRACT_NOTICE = (demandId) => `${DEMAND_BASE(demandId)}/nationalNotice/contractNotice`\r\nconst nationalNotice = {\r\n NATIONAL_NOTICE_VALIDATE: (demandId) => `${DEMAND_BASE(demandId)}/nationalNotice/validate`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE: (demandId) => `${CONTRACT_NOTICE(demandId)}`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_CREATE_NEW_VERSION: (demandId) => `${CONTRACT_NOTICE(demandId)}/createNewVersion`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_DRAFT: (demandId) => `${CONTRACT_NOTICE(demandId)}/draft`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_TRANSLATIONS: (demandId) => `${CONTRACT_NOTICE(demandId)}/translations`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_DICTIONARIES: (demandId) => `${CONTRACT_NOTICE(demandId)}/dictionaries`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH: (demandId) => `${CONTRACT_NOTICE(demandId)}/publish`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_UPDATE: (demandId) => `${CONTRACT_NOTICE(demandId)}/publishUpdate`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_ROLLBACK: (demandId) => `${CONTRACT_NOTICE(demandId)}/publish/rollback`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_UPDATE_ROLLBACK: (demandId) => `${CONTRACT_NOTICE(demandId)}/publishUpdate/rollback`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_STATUS: (demandId) => `${CONTRACT_NOTICE(demandId)}/status`,\r\n NATIONAL_NOTICE_CONTRACT_MODIFICATION_NOTICE_STATUS: (demandId) => `${CONTRACT_NOTICE(demandId)}/modification/status`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_DYNAMIC_DICTIONARIES: (demandId) => `${CONTRACT_NOTICE(demandId)}/dynamicDictionaries`,\r\n}\r\n\r\nconst PURCHASING_GROUP_ID = (groupId) => `${base.PURCHASING_GROUP}/${groupId}`\r\nconst purchasingGroup = {\r\n PURCHASING_GROUP_LIST: () => `${base.PURCHASING_GROUP}/list`,\r\n PURCHASING_GROUP_LIST_ACTIONS: () => `${base.PURCHASING_GROUP}/list/actions`,\r\n PURCHASING_GROUP_MEMBER_LIST: () => `${base.PURCHASING_GROUP}/member/list`,\r\n PURCHASING_GROUP_HEADER: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/header`,\r\n PURCHASING_GROUP_RELATED_OBJECTS: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/relatedObjects`,\r\n PURCHASING_GROUP_BASIC_DATA: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/basicData`,\r\n PURCHASING_GROUP_ARCHIVE_LIST: (groupId, archiveType) => `${PURCHASING_GROUP_ID(groupId)}/archiveList/${archiveType}`,\r\n PURCHASING_GROUP_ARCHIVE_ID: (groupId, archiveType, archiveId) => `${PURCHASING_GROUP_ID(groupId)}/archive/${archiveType}/${archiveId}`,\r\n\r\n PURCHASING_GROUP_COMMISSION: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/commission`,\r\n PURCHASING_GROUP_COMMISSION_HISTORY: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/commission/history`,\r\n\r\n PURCHASING_GROUP_SCHEDULE: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/schedule`,\r\n\r\n PURCHASING_GROUP_MEMBERS: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/members`,\r\n PURCHASING_GROUP_MEMBERS_AVAILABLE_CONCERNS: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/members/availableConcerns`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/members/member`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_REJECT: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/reject`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_RESTORE: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/restore`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_CONFIRM_PARTICIPATION: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/confirmParticipation`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_WITHDRAW_PARTICIPATION: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/withdrawParticipation`,\r\n\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_RESEND_INVITE_NOTIFICATION: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/resendInviteNotification`,\r\n\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/document`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT_ID: (groupId, memberId, documentId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/document/${documentId}`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT_ID_URL: (groupId, memberId, documentId, open) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/document/${documentId}/url/${open ? \"open\" : \"download\"}`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_USER: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/user`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_USER_ID: (groupId, memberId, userId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/user/${userId}`,\r\n\r\n\r\n PURCHASING_GROUP_MEMBERS_DOCUMENTS: (groupId, apiPath) => `${PURCHASING_GROUP_ID(groupId)}/${apiPath}/documents`,\r\n PURCHASING_GROUP_MEMBERS_DOCUMENTS_GENERATE_GROUP_AGREEMENT: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/members/documents/generateGroupAgreementDocument`,\r\n PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID: (groupId, apiPath, documentId) => `${PURCHASING_GROUP_ID(groupId)}/${apiPath}/documents/${documentId}`,\r\n PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_PUBLISH: (groupId, apiPath, documentId) => `${PURCHASING_GROUP_ID(groupId)}/${apiPath}/documents/${documentId}/publish`,\r\n PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_UNPUBLISH: (groupId, apiPath, documentId) => `${PURCHASING_GROUP_ID(groupId)}/${apiPath}/documents/${documentId}/unpublish`,\r\n PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_URL: (groupId, apiPath, documentId, open) => `${PURCHASING_GROUP_ID(groupId)}/${apiPath}/documents/${documentId}/url/${open ? \"open\" : \"download\"}`,\r\n\r\n PURCHASING_GROUP_SWZ_DOCUMENTS: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/swz/documents`,\r\n PURCHASING_GROUP_SWZ_DOCUMENTS_ID: (groupId, documentId) => `${PURCHASING_GROUP_ID(groupId)}/swz/documents/${documentId}`,\r\n PURCHASING_GROUP_SWZ_DOCUMENTS_ID_PUBLISH: (groupId, documentId) => `${PURCHASING_GROUP_ID(groupId)}/swz/documents/${documentId}/publish`,\r\n PURCHASING_GROUP_SWZ_DOCUMENTS_ID_UNPUBLISH: (groupId, documentId) => `${PURCHASING_GROUP_ID(groupId)}/swz/documents/${documentId}/unpublish`,\r\n PURCHASING_GROUP_SWZ_DOCUMENTS_ID_URL: (groupId, documentId, open) => `${PURCHASING_GROUP_ID(groupId)}/swz/documents/${documentId}/url/${open ? \"open\" : \"download\"}`,\r\n\r\n\r\n PURCHASING_GROUP_OPINION: (groupId, type) => `${PURCHASING_GROUP_ID(groupId)}/opinion/${type}`,\r\n PURCHASING_GROUP_OPINION_ID: (groupId, type, opinionId) => `${PURCHASING_GROUP_ID(groupId)}/opinion/${type}/${opinionId}`,\r\n PURCHASING_GROUP_OPINION_ID_MARK_AS_READ: (groupId, type, opinionId) => `${PURCHASING_GROUP_ID(groupId)}/opinion/${type}/${opinionId}/markAsRead`,\r\n PURCHASING_GROUP_OPINION_AVAILABLE_MEMBERS: (groupId, type) => `${PURCHASING_GROUP_ID(groupId)}/opinion/${type}/availableMembers`,\r\n PURCHASING_GROUP_OPINION_MEMBER_ID: (groupId, type, memberId) => `${PURCHASING_GROUP_ID(groupId)}/opinion/${type}/member/${memberId}`,\r\n PURCHASING_GROUP_OPINION_ID_MESSAGE_NEW: (groupId, type, opinionId) => `${PURCHASING_GROUP_ID(groupId)}/opinion/${type}/${opinionId}/message/new`,\r\n PURCHASING_GROUP_OPINION_ID_MESSAGE_ID: (groupId, type, opinionId, messageId) => `${PURCHASING_GROUP_ID(groupId)}/opinion/${type}/${opinionId}/message/${messageId}`,\r\n\r\n\r\n PURCHASING_GROUP_FINISH_PREPARING: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/finishPreparing`,\r\n\r\n PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_TEMPLATE_FORM_EXPORT: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/papersGenerator/templateFormExport`,\r\n PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_LEADING_DOCUMENT: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/papersGenerator/gzmLeadingDocument`,\r\n PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_MANAGEMENT_RESOLUTION: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/papersGenerator/gzmManagementResolution`,\r\n PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DRAFT_GROUP_AGREEMENT: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/papersGenerator/gzmDraftGroupAgreement`,\r\n PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DOCUMENT_TO_SIGN: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/papersGenerator/gzmDocumentToSign`,\r\n\r\n PURCHASING_GROUP_COLLECTING_SCHEDULE: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/collectingSchedule`,\r\n\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/template`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_AVAILABLE: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/template/availableTemplates`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_ID: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_DRAFT: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/draft`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_CLEAR_DRAFT: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/clearDraft`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ACCEPT: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/accept`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_REJECT: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/reject`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ASK_FOR_EDIT: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/askForEdit`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ALLOW_EDIT: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/allowEdit`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_REJECT_EDIT: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/rejectEdit`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ARCHIVE_LIST: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/archiveList`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ARCHIVE_ID: (groupId, memberId, formId, archiveId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/archive/${archiveId}`,\r\n\r\n PURCHASING_GROUP_FINISH: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/finish`,\r\n PURCHASING_GROUP_FINISH_DEALINGS_CHANGED: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/finish/sendDealingsChangedNotification`\r\n\r\n}\r\n\r\nconst PURCHASING_GROUP_SECTIONS = (groupId) => `${PURCHASING_GROUP_ID(groupId)}/sections`\r\n\r\nconst purchasingGroupSections = {\r\n PURCHASING_GROUP_SECTIONS_PREPARING: (groupId) => `${PURCHASING_GROUP_SECTIONS(groupId)}/preparing`,\r\n PURCHASING_GROUP_SECTIONS_COLLECTING_DATA: (groupId) => `${PURCHASING_GROUP_SECTIONS(groupId)}/collectingData`,\r\n PURCHASING_GROUP_SECTIONS_SECTION: (groupId) => `${PURCHASING_GROUP_SECTIONS(groupId)}/section`\r\n}\r\n\r\nconst PURCHASING_GROUP_TEMPLATES = `${base.PURCHASING_GROUP}/template`\r\n\r\nconst purchasingGroupTemplate = {\r\n PURCHASING_GROUP_TEMPLATES_LIST: () => `${PURCHASING_GROUP_TEMPLATES}/list`,\r\n PURCHASING_GROUP_TEMPLATES_LIST_HAS_EDIT: () => `${PURCHASING_GROUP_TEMPLATES}/list/hasEdit`,\r\n PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID: (templateId) => `${PURCHASING_GROUP_TEMPLATES}/${templateId}`,\r\n PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_ACTIVATE: (templateId) => `${PURCHASING_GROUP_TEMPLATES}/${templateId}/activate`,\r\n PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_DEACTIVATE: (templateId) => `${PURCHASING_GROUP_TEMPLATES}/${templateId}/deactivate`,\r\n PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_CLONE: (templateId) => `${PURCHASING_GROUP_TEMPLATES}/${templateId}/clone`,\r\n}\r\n\r\nconst ADMIN_USER_REGISTRATION = `${base.ADMIN}/user/registration`\r\n\r\nconst adminUserRegistrations = {\r\n ADMIN_USER_REGISTRATION_LIST: `${ADMIN_USER_REGISTRATION}/list`,\r\n ADMIN_USER_REGISTRATION_AVAILABLE_ORGS: `${ADMIN_USER_REGISTRATION}/availableOrgs`,\r\n ADMIN_USER_REGISTRATION_ID: (regId) => `${ADMIN_USER_REGISTRATION}/${regId}`,\r\n ADMIN_USER_REGISTRATION_ID_REJECT: (regId) => `${ADMIN_USER_REGISTRATION}/${regId}/reject`,\r\n ADMIN_USER_REGISTRATION_ID_ACCEPT: (regId) => `${ADMIN_USER_REGISTRATION}/${regId}/accept`,\r\n ADMIN_USER_REGISTRATION_ID_ORGANIZATION: (regId) => `${ADMIN_USER_REGISTRATION}/${regId}/organization`\r\n}\r\n\r\nconst extensions = () => `${base.BASE}/file/extensions`\r\nconst hotJarSettings = {hjid: 1296211, hjsv: 6}\r\n\r\nexport default {\r\n redirect_uri,\r\n oauth,\r\n ...base,\r\n ...sales,\r\n ...demand,\r\n ...user,\r\n ...schedule,\r\n ...siwz,\r\n ...contractor,\r\n ...commission,\r\n ...espd,\r\n ...guarantee,\r\n ...contractor,\r\n ...user,\r\n ...header,\r\n ...client,\r\n ...notice,\r\n ...repo,\r\n ...publish,\r\n ...dealings,\r\n ...dealing,\r\n ...statistic,\r\n ...supplier,\r\n ...offers,\r\n ...modification,\r\n ...rfxRound,\r\n ...correspondenceBuyer,\r\n ...correspondenceContractor,\r\n ...papersGenerator,\r\n ...emailList,\r\n ...sections,\r\n ...contractorVerification,\r\n ...offerEvaluation,\r\n ...offerChoice,\r\n ...offerChoiceResult,\r\n ...agreements,\r\n ...evaluationFinish,\r\n ...resultNotice,\r\n ...finishDemand,\r\n ...archiving,\r\n ...additionalRound,\r\n ...demandAdditionalInfo,\r\n ...auction,\r\n ...additionalRoundsPassive,\r\n ...demandPlanRealization,\r\n ...poll,\r\n ...integrations,\r\n ...demandOffers,\r\n ...ezamowienia,\r\n ...nationalNotice,\r\n ...purchasingGroup,\r\n ...purchasingGroupSections,\r\n ...purchasingGroupTemplate,\r\n ...adminUserRegistrations,\r\n ...demandOffers,\r\n ...demandOffersGeneralInfo,\r\n ...demandOffersOffer,\r\n ...demandAdditionalOffersOffer,\r\n ...demandAdditionalAuction,\r\n ...demandPublicationPreview,\r\n ...annualReport,\r\n extensions,\r\n SERVER_URL,\r\n EXT_JS_LIBRARIES,\r\n hotJarSettings,\r\n}","\r\nexport default {\r\n\tBAD_REQUEST: 400,\r\n\tUNAUTHORIZED: 401,\r\n\tFORBIDDEN: 403,\r\n\tNOT_FOUND: 404,\r\n\tINTERNAL_SERVER_ERROR: 500,\r\n}","export default ({url, name}) => {\r\n\tlet a = document.createElement('a');\r\n\ta.href=url;\r\n\ta.target='_blank'\r\n\ta.setAttribute(\"download\", name)\r\n\ta.click();\r\n}","import Axios from 'axios';\r\nimport reduxStore from 'redux/store'\r\nimport HttpCodes from 'constants/HttpCodes';\r\nimport RouterPath from './RouterPath';\r\nimport querystring from 'querystring'\r\nimport downloadFile from './downloadFile';\r\nimport {setResource, setSaveStatusError} from 'redux/actions';\r\nimport Tr from 'translations/Translations';\r\nimport Endpoints from 'constants/Endpoints';\r\nimport {Sema as semaphore} from 'async-sema';\r\nimport moment from 'moment';\r\n\r\nconst _sem = new semaphore(1);\r\n\r\nconst _refreshSessionTime = () => {\r\n\tconst state = reduxStore.getState();\r\n\tconst sessionTime = state.resources.sessionTime;\r\n\tif (sessionTime) {\r\n\t\tconst endTime = moment().add(sessionTime.time, 's')\r\n\t\treduxStore.dispatch(setResource('sessionTime', {\r\n\t\t\ttime: sessionTime.time,\r\n\t\t\tendTime\r\n\t\t}))\r\n\t}\r\n}\r\n\r\nconst _paramsSerializer = (params) => {\r\n\treturn querystring.stringify(params)\r\n}\r\n\r\nconst _executeRequest = async ({ headers, ...params }) => {\r\n\tlet auth = JSON.parse(localStorage.getItem(\"authorize\"))\r\n\tconst request = await Axios({\r\n\t\theaders: {\r\n\t\t\t'Authorization': 'Bearer ' + auth.access_token,\r\n\t\t\t...headers,\r\n\t\t},\r\n\t\t...params,\r\n\t\tparamsSerializer: _paramsSerializer,\r\n\t});\r\n\t_refreshSessionTime();\r\n\treturn request;\r\n}\r\n\r\nconst _logout = (url) => {\r\n\tlocalStorage.removeItem('authorize');\r\n\tconst location = window.location;\r\n\tconst search = location.search\r\n\tconst params = querystring.parse(search.substr(1))\r\n\tlet state = params['state'];\r\n\tif (!state) {\r\n\t\tstate = window.btoa(location.pathname + location.search);\r\n\t}\r\n\r\n\tconst redUrl = url ? url : RouterPath.BUYER_INIT + '?' + querystring.stringify({\r\n\t\tstate\r\n\t})\r\n\twindow.location.href = redUrl;\r\n}\r\n\r\nexport const SoftLogout = async (url) => {\r\n\ttry {\r\n\t\tawait _logout(url);\r\n\t} catch (error) {\r\n\t\tthrow error;\r\n\t}\r\n}\r\n\r\nconst _refresToken = async () => {\r\n\tconst auth = JSON.parse(localStorage.getItem(\"authorize\"))\r\n\ttry {\r\n\t\tconsole.info(\"RestRequest - refreshing token...\");\r\n\t\tconst res = await Axios({\r\n\t\t\tmethod: 'post',\r\n\t\t\turl: Endpoints.oauth.TOKEN,\r\n\t\t\tparams: {\r\n\t\t\t\tclient_id: 'mp',\r\n\t\t\t\tgrant_type: 'refresh_token',\r\n\t\t\t\trefresh_token: auth.refresh_token\r\n\t\t\t},\r\n\t\t});\r\n\t\tlocalStorage.setItem(\"authorize\", JSON.stringify(res.data))\r\n\t} catch (error) {\r\n\t\tthrow error;\r\n\t}\r\n}\r\nexport const RefreshToken = async () => {\r\n\ttry {\r\n\t\tawait _refresToken();\r\n\t} catch (error) {\r\n\t\tthrow error;\r\n\t}\r\n}\r\n\r\nconst _restRequest = async (args) => {\r\n\tawait _sem.acquire();\r\n\ttry {\r\n\t\treturn await _executeRequest(args);\r\n\t} catch (error) {\r\n\t\tconst response = error.response;\r\n\r\n\t\tswitch (response.status) {\r\n\t\t\tcase HttpCodes.UNAUTHORIZED:\r\n\t\t\t\ttry {\r\n\t\t\t\t\tawait _refresToken();\r\n\t\t\t\t\treturn await _executeRequest(args);\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\t_logout();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase HttpCodes.FORBIDDEN:\r\n\t\t\t\treduxStore.dispatch(setSaveStatusError(Tr('forbidden_error')));\r\n\t\t\t\tthrow error;\r\n\t\t\tcase HttpCodes.BAD_REQUEST:\r\n\t\t\t\treduxStore.dispatch(setSaveStatusError(Tr('bad_request_error')));\r\n\t\t\t\tthrow error;\r\n\t\t\tcase HttpCodes.NOT_FOUND:\r\n\t\t\t\treduxStore.dispatch(setSaveStatusError(Tr('not_found_request_error')));\r\n\t\t\t\tthrow error;\r\n\t\t\tcase HttpCodes.INTERNAL_SERVER_ERROR:\r\n\t\t\t\treduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n\t\t\t\tthrow error;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow error;\r\n\t\t}\r\n\t} finally {\r\n\t\t_sem.release()\r\n\t}\r\n}\r\n\r\nconst RestRequest = async (params) => {\r\n\tconst res = await _restRequest(params);\r\n\treturn res.data;\r\n}\r\n\r\nexport const RestRequestGET = async (url, other) => RestRequest({ url, method: 'get', ...other });\r\nexport const RestRequestDELETE = async (url, other) => RestRequest({ url, method: 'delete', ...other });\r\nexport const RestRequestPOST = async (url, data, other) => RestRequest({ url, data, method: 'post', ...other });\r\nexport const RestRequestPUT = async (url, data, other) => RestRequest({ url, data, method: 'put', ...other });\r\n\r\nexport const RestRequestBLOB = async (url, other) => {\r\n\tconst res = await _restRequest({\r\n\t\turl,\r\n\t\tmethod: 'get',\r\n\t\tresponseType: 'blob',\r\n\t\t...other\r\n\t});\r\n\r\n\tconst type = res.headers['content-type'];\r\n\tif(type.startsWith(\"application/json\")) {\r\n\t\tconst ob = JSON.parse(await res.data.text());\r\n\t\tif(ob.success === false) {\r\n\t\t\treturn ob;\r\n\t\t}\r\n\t}\r\n\r\n\tconst contentDisposition = res.headers['content-disposition'];\r\n\tlet name = contentDisposition.indexOf(\"filename*=\") >= 0\r\n\t\t? contentDisposition.split(\"filename*=\")[1]\r\n\t\t: contentDisposition.split(\"filename=\")[1];\r\n\tname = decodeURIComponent(name);\r\n\tconst fileUrl = window.URL.createObjectURL(\r\n\t\tnew Blob([res.data], { type })\r\n\t)\r\n\tdownloadFile({ url: fileUrl, name })\r\n\twindow.URL.revokeObjectURL(fileUrl)\r\n}\r\n\r\nexport const RestRequestBLOBBase64Encoded = async (url, other) => {\r\n\tconst res = await _restRequest({\r\n\t\turl,\r\n\t\tmethod: 'get',\r\n\t\tresponseType: 'blob',\r\n\t\t...other\r\n\t});\r\n\r\n\tconst type = res.headers['content-type'];\r\n\tif(type.startsWith(\"application/json\")) {\r\n\t\tconst ob = JSON.parse(await res.data.text());\r\n\t\tif(ob.success === false || ob.success === true) {\r\n\t\t\treturn ob;\r\n\t\t}\r\n\t}\r\n\tconst b64 = await blobToBase64(res.data)\r\n\r\n\tconst result = {\"success\":true,\r\n\t\t\"result\":b64.split(\",\")[1],\r\n \"errors\":null\r\n }\r\n\r\n\treturn result;\r\n\r\n}\r\n\r\nfunction blobToBase64(blob) {\r\n\treturn new Promise((resolve, _) => {\r\n\t\tconst reader = new FileReader();\r\n\t\treader.onloadend = () => resolve(reader.result);\r\n\t\treader.readAsDataURL(blob);\r\n\t});\r\n}\r\n\r\nexport default RestRequest;","import Endpoints from 'constants/Endpoints'\r\nimport { RestRequestGET, SoftLogout } from 'libs/RestRequest';\r\nimport Axios from 'axios';\r\n\r\nconst logout = async () => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.oauth.LOGOUT);\r\n\t\tawait SoftLogout(resp.result);\r\n\t} catch (error) {\r\n\t\tconsole.error({error})\r\n\t}\r\n}\r\n\r\nconst getToken = async (code) => {\r\n\ttry {\r\n\t\tconst res = await Axios({\r\n\t\t\tmethod: 'post',\r\n\t\t\turl: Endpoints.oauth.TOKEN,\r\n\t\t\tparams: {\r\n\t\t\t\tgrant_type: 'authorization_code',\r\n\t\t\t\tcode,\r\n\t\t\t\tredirect_uri: Endpoints.redirect_uri,\r\n\t\t\t\tclient_id: 'mp'\r\n\t\t\t},\r\n\t\t});\r\n\t\tlocalStorage.setItem(\"authorize\", JSON.stringify(res.data));\r\n\t\treturn true;\r\n\t} catch (error) {\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\nexport default {\r\n\tlogout,\r\n\tgetToken,\r\n};","import React from 'react'\r\nimport LogoutIcon from '@material-ui/icons/PowerSettingsNew'\r\nimport ListItem from './ListItem';\r\nimport OAuthService from 'services/OAuthService';\r\nimport Tr from 'translations/Translations';\r\n\r\nfunction LogoutButton() {\r\n\treturn (\r\n\t\t OAuthService.logout()}\r\n\t\t/>\r\n\t)\r\n}\r\n\r\nexport default LogoutButton\r\n","\r\nimport React from 'react'\r\nimport { Drawer, List } from '@material-ui/core';\r\nimport { withStyles } from '@material-ui/styles';\r\nimport clsx from 'clsx';\r\nimport ListItem from './ListItem';\r\nimport OpenElement from './OpenElement';\r\nimport Logo from './Logo';\r\nimport ListAddButton from './ListAddButton';\r\nimport LogoutButton from './LogoutButton';\r\nimport { setMenuOpen, setInnerMenuOpen } from 'redux/actions'\r\nimport { connect } from 'react-redux'\r\n\r\nimport GroupWorkIcon from '@material-ui/icons/GroupWork';\r\nimport StarIcon from '@material-ui/icons/Star';\r\nimport ShoppingCartIcon from '@material-ui/icons/ShoppingCart';\r\nimport PeopleIcon from '@material-ui/icons/People';\r\nimport PublicIcon from '@material-ui/icons/Public';\r\nimport DescriptionIcon from '@material-ui/icons/Description';\r\nimport GavelIcon from '@material-ui/icons/Gavel';\r\nimport LocalLibraryIcon from '@material-ui/icons/LocalLibrary';\r\nimport InsertDriveFileIcon from '@material-ui/icons/InsertDriveFile';\r\nimport HowToRegIcon from '@material-ui/icons/HowToReg';\r\nimport MonetizationOnIcon from '@material-ui/icons/MonetizationOn';\r\nimport AssessmentIcon from '@material-ui/icons/Assessment';\r\n\r\nconst style = theme => ({\r\n\tpaper: {\r\n\t\tjustifyContent: 'space-between',\r\n\t\tborderRightColor: theme.palette.border.onlyContrast ? theme.palette.border.onlyContrast : undefined\r\n\t},\r\n\tdrawerOpen: {\r\n\t\twidth: theme.components.navigation.width,\r\n\t\ttransition: theme.transitions.default.open('width'),\r\n\t\toverflowX: 'hidden',\r\n\t},\r\n\tdrawerClose: {\r\n\t\ttransition: theme.transitions.default.close('width'),\r\n\t\toverflowX: 'hidden',\r\n\t\twidth: theme.spacing(7) + 1,\r\n\t},\r\n\tinnerListItem: {\r\n\t\tpaddingLeft: theme.spacing(3),\r\n\t}\r\n})\r\n\r\nfunction Navigation({\r\n\tpurchaser,\r\n\tclasses,\r\n\tisMenuOpen,\r\n\tsetMenuOpen,\r\n\tinnerMenu,\r\n\tsetInnerMenuOpen,\r\n\tnavElements\r\n}) {\r\n\r\n\tconst icons = {\r\n\t\tmy_demands: StarIcon,\r\n\t\tpurchasingGroups: GroupWorkIcon,\r\n\t\tall_demands: ShoppingCartIcon,\r\n\t\tdeputy: PeopleIcon,\r\n\t\tpublic_area: PublicIcon,\r\n\t\tedocument: DescriptionIcon,\r\n\t\tauction: GavelIcon,\r\n\t\tintranet: LocalLibraryIcon,\r\n\t\treport: InsertDriveFileIcon,\r\n\t\tadministration: HowToRegIcon,\r\n\t\tcontractor_area: MonetizationOnIcon,\r\n\t\tannualReport: AssessmentIcon,\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t{navElements && navElements.newDemandProcedures && }\r\n\r\n\t\t\t\t{navElements && navElements.elements.map((item, i) => (\r\n\r\n\t\t\t\t\t\titem.href ?\r\n\t\t\t\t\t\t\t :\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t(innerMenu[item.key.split(\".\")[1]] &&\r\n\t\t\t\t\t\t\t\t\t\titem.menuElementList.length > 1)\r\n\t\t\t\t\t\t\t\t\t&&\r\n\t\t\t\t\t\t\t\t\titem.menuElementList.map((innerItem, j) => {\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tisMenuOpen: state.store.isMenuOpen,\r\n\tinnerMenu: state.innerMenu,\r\n\tnavElements: state.resources.userLoggedMenuList\r\n}), {\r\n\t\tsetMenuOpen,\r\n\t\tsetInnerMenuOpen\r\n\t})(withStyles(style)(Navigation));\r\n","import React from 'react'\r\nimport InvertColorsIcon from '@material-ui/icons/InvertColors'\r\nimport {IconButton, Tooltip} from '@material-ui/core';\r\nimport InvertColorsOffIcon from '@material-ui/icons/InvertColorsOff'\r\nimport {connect} from 'react-redux'\r\nimport {setContrastColors} from 'redux/actions'\r\nimport Tr from 'translations/Translations';\r\n\r\nfunction InvertColorsButton(\r\n\t{\r\n\t\tcontrast,\r\n\t\tsetContrastColors\r\n\t}) {\r\n\tconst Icon = contrast ? InvertColorsOffIcon : InvertColorsIcon;\r\n\r\n\tconst handleClick = () => {\r\n\t\tsetContrastColors(!contrast);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t Tooltip>\r\n\t)\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tcontrast: state.store.contrast\r\n}), {\r\n\tsetContrastColors\r\n})(InvertColorsButton);\r\n","import React from 'react'\r\nimport TextFieldIcon from '@material-ui/icons/TextFields'\r\nimport {IconButton, Tooltip} from '@material-ui/core';\r\nimport {connect} from 'react-redux'\r\nimport {setLargeText} from 'redux/actions'\r\nimport Tr from 'translations/Translations';\r\n\r\nfunction TextSizeButton(\r\n\t{\r\n\t\tlargeText,\r\n\t\tsetLargeText\r\n\t}) {\r\n\r\n\tconst handleClick = () => {\r\n\t\tsetLargeText(!largeText);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tlargeText: state.store.largeText\r\n}), {\r\n\tsetLargeText\r\n})(TextSizeButton);\r\n","import React from 'react'\r\nimport { Grid, Box, Typography } from '@material-ui/core';\r\nimport { withStyles } from '@material-ui/styles';\r\nimport Tr from 'translations/Translations';\r\nimport { connect } from 'react-redux'\r\nimport Endpoints from \"../../../constants/Endpoints\";\r\n\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\twidth: 'unset',\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t},\r\n\tlinkText: {\r\n\t\tcolor: 'inherit',\r\n\t\ttextDecoration: 'none',\r\n\t}\r\n})\r\n\r\nfunction Profile({\r\n\tclasses,\r\n\tuser = { login: '' },\r\n\tuserProfile\r\n}) {\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{user.login}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{Tr('show_profile')}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tuser: state.resources.userData,\r\n\tuserProfile: state.resources.userProfile,\r\n}), {\r\n\r\n})(withStyles(style)(Profile));\r\n","import React from 'react'\r\n\r\nexport default (props) => {\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\n","import React from 'react'\r\n\r\nexport default (props) => {\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {Grid} from '@material-ui/core';\r\nimport clsx from 'clsx';\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n column: {\r\n width: '100%'\r\n },\r\n flexGrow: {\r\n flexGrow: 1\r\n }\r\n}));\r\n\r\nfunction GridBlock(\r\n {\r\n direction,\r\n className,\r\n itemClassName,\r\n children,\r\n alignItems,\r\n spacing,\r\n justify,\r\n wrap,\r\n column = false,\r\n onClick,\r\n flexGrow = false,\r\n gridClasses,\r\n id\r\n }) {\r\n\r\n const classes = useStyle();\r\n return (\r\n \r\n {React.Children.map(children, child => {\r\n return child &&\r\n \r\n {child}\r\n \r\n\r\n }\r\n )}\r\n \r\n )\r\n}\r\n\r\nGridBlock.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nGridBlock.defaultProps = {}\r\n\r\nexport default GridBlock;","import Tr from 'translations/Translations';\r\nimport reduxStore from 'redux/store'\r\nimport { setOpenTutorial, setOpenRegisterPopup } from 'redux/actions'\r\nimport RouterPath from 'libs/RouterPath';\r\n\r\nconst createItem = (trKey, action, disabled = true) => ({ label: Tr(trKey), action, disabled })\r\n\r\nexport default [\r\n\tcreateItem('tutorial', () => {\r\n\t\treduxStore.dispatch(setOpenTutorial())\r\n\t}),\r\n\tcreateItem('faq', () => {\r\n\t\tRouterPath.redirect(RouterPath.FAQ)\r\n\t}),\r\n\tcreateItem('contact', () => {\r\n\t\treduxStore.dispatch(setOpenRegisterPopup(true))\r\n\t},\r\n\t\tfalse\r\n\t),\r\n]","import React from 'react'\r\nimport { withStyles, Button } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction CancelButton({\r\n\tclasses,\r\n\tonClick,\r\n\tclassName\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nCancelButton.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tclasses: PropTypes.any,\r\n\tonClick: PropTypes.func,\r\n}\r\n\r\nCancelButton.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(CancelButton);","import React from 'react'\r\nimport { withStyles, Dialog, DialogTitle, DialogContent, DialogActions } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Button from 'components/Button';\r\nimport dialogButtons from './dialog.buttons'\r\nimport Tr from 'translations/Translations';\r\nimport CancelButton from '../components/CancelButton';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\ttitle: {\r\n\t\ttextAlign: 'center'\r\n\t},\r\n\tcontent: {\r\n\t\t...theme.components.popup.smallContainer,\r\n\t\t'&>*': {\r\n\t\t\t'&:not(:first-child)': {\r\n\t\t\t\tmarginTop: theme.spacing(1)\r\n\t\t\t},\r\n\t\t\t'&:last-child': {\r\n\t\t\t\tmarginTop: theme.spacing(4)\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tborder: {\r\n\t\tborder: `1px solid ${theme.palette.common.white}`,\r\n\t}\r\n})\r\n\r\nfunction HelpDialog({\r\n\tclasses,\r\n\tonClose,\r\n\t...other\r\n}) {\r\n\r\n\tconst handleClickButton = (action) => {\r\n\t\tonClose()\r\n\t\taction()\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nHelpDialog.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\topen: PropTypes.bool.isRequired,\r\n\tonClose: PropTypes.func,\r\n}\r\n\r\nHelpDialog.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(HelpDialog);","import React, {useState} from 'react'\r\nimport {IconButton, Tooltip} from '@material-ui/core';\r\nimport HelpDialog from './HelpDialog';\r\nimport HelpIcon from '@material-ui/icons/Help'\r\nimport Tr from 'translations/Translations';\r\n\r\nfunction Help() {\r\n\tconst [open, setOpen] = useState(false)\r\n\treturn (<>\r\n\t\t\r\n\t\t\t setOpen(true)}>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t setOpen(false)} />\r\n\t\t>\r\n\t)\r\n}\r\n\r\nHelp.propTypes = {\r\n}\r\n\r\nHelp.defaultProps = {\r\n}\r\n\r\nexport default Help;\r\n","import React from 'react'\r\nimport {IconButton, Tooltip} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n\tflag: {\r\n\t\twidth: theme.spacing(3)\r\n\t}\r\n}))\r\n\r\nfunction ChangeLanguageButtonButtons(\r\n\t{\r\n\t\tlocale,\r\n\t\tsetLocale,\r\n\t\tIcon\r\n\t}) {\r\n\tconst classes = useStyle();\r\n\tconst handleClick = () => {\r\n\t\tsetLocale(locale);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t Tooltip>\r\n\t)\r\n}\r\n\r\nexport default ChangeLanguageButtonButtons;\r\n","import reduxStore from 'redux/store'\r\n\r\nexport default (url) => {\r\n const form = document.createElement(\"form\");\r\n form.setAttribute('action', url);\r\n form.setAttribute('method', 'post');\r\n form.setAttribute('hidden', 'true');\r\n const csrfInput = document.createElement(\"input\");\r\n csrfInput.setAttribute('name', 'CSRFToken');\r\n csrfInput.setAttribute('hidden', 'true');\r\n csrfInput.setAttribute('type', 'text');\r\n csrfInput.value = reduxStore.getState().resources.userData.csrf;\r\n form.append(csrfInput);\r\n document.body.appendChild(form);\r\n form.submit();\r\n}","import React from 'react'\r\nimport {AppBar as AppBarUI, Toolbar} from '@material-ui/core';\r\nimport InvertColorsButton from './InvertColorsButton';\r\nimport TextSizeButton from './TextSizeButton';\r\nimport Profile from './Profile';\r\nimport PolandSvg from 'images/Poland'\r\nimport GreatBritainSvg from 'images/GreatBritain'\r\nimport {connect} from 'react-redux'\r\nimport GridBlock from 'components/GridBlock';\r\nimport clsx from 'clsx';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport SwapHorizIcon from '@material-ui/icons/SwapHoriz';\r\nimport Endpoints from 'constants/Endpoints';\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport {withRouter} from \"react-router\";\r\nimport Help from \"../../popup/help/Help\";\r\nimport ChangeLanguageButtonButtons from \"./ChangeLanguageButtonButtons\";\r\nimport redirectUsingPOST from \"libs/redirectUsingPOST\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n paddingLeft: theme.components.navigation.margin.left,\r\n zIndex: theme.zIndex.appBar + 10,\r\n borderBottom: `solid 3px ${theme.palette.primary.main}`,\r\n backgroundColor: theme.palette.background.greyBackground,\r\n },\r\n rootBorder: {},\r\n menuMargin: {\r\n paddingLeft: theme.components.navigation.width,\r\n transition: theme.transitions.default.open('margin-left'),\r\n },\r\n toolbar: {\r\n justifyContent: 'space-between'\r\n },\r\n rightGrid: {\r\n width: 'unset'\r\n },\r\n beta: {\r\n paddingLeft: theme.spacing(1),\r\n color: theme.palette.primary.contrastText\r\n },\r\n buttonLight: {\r\n whiteSpace: 'nowrap',\r\n marginRight: theme.spacing(1),\r\n },\r\n logo: {\r\n maxHeight: 55,\r\n maxWidth: 200\r\n }\r\n}))\r\n\r\nfunction AppBar(\r\n {\r\n logo = {},\r\n isMenuOpen,\r\n demandHeader,\r\n id,\r\n location\r\n }) {\r\n\r\n const classes = useStyle();\r\n const goSoStatus = !!(demandHeader?.oldPlatformRoundStatusUrl);\r\n\r\n const handleRedirectToOldSystemVersion = () => {\r\n if (goSoStatus) {\r\n window.location.href = demandHeader.oldPlatformRoundStatusUrl;\r\n } else {\r\n window.location.href = Endpoints.SERVER_URL;\r\n }\r\n };\r\n\r\n const changeLocale = (locale) => {\r\n const split = locale.split(\"_\");\r\n const auth = JSON.parse(localStorage.getItem(\"authorize\"));\r\n const url = Endpoints.CHANG_LANGUAGE(split[0], split[1], auth.csrf, window.location.href);\r\n redirectUsingPOST(url);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {/*{Tr(\"beta_version\")}*/}\r\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 connect((state) => ({\r\n logo: state.resources.logo,\r\n isMenuOpen: state.store.isMenuOpen,\r\n demandHeader: state.resources.demandHeader,\r\n}), {})(withRouter(AppBar));\r\n","import React from 'react'\r\nimport {IconButton as MuiIconButton, Tooltip} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport AcUnitIcon from '@material-ui/icons/AcUnit';\r\n\r\n\r\nfunction IconButton(\r\n {\r\n tooltip,\r\n placement = 'top',\r\n hideTooltip = false,\r\n Icon = AcUnitIcon,\r\n children,\r\n disabled,\r\n color,\r\n ...props\r\n }) {\r\n const button = (\r\n \r\n \r\n {children}\r\n \r\n )\r\n\r\n if (hideTooltip || !Boolean(tooltip)) {\r\n return button\r\n }\r\n return (\r\n \r\n\t\t\t\r\n\t\t\t\t{button}\r\n\t\t\t\r\n \r\n )\r\n}\r\n\r\nIconButton.propTypes = {\r\n tooltip: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n placement: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n Icon: PropTypes.elementType,\r\n disabled: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default IconButton;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport IconButton from './IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\n\r\nfunction IconCloseButton({\r\n\tclasses,\r\n\ttooltip = Tr('close'),\r\n\t...props\r\n}) {\r\n\treturn \r\n}\r\n\r\nIconCloseButton.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default IconCloseButton;","import React from 'react'\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { withStyles } from '@material-ui/styles';\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\twidth: '100%',\r\n\t\theight: '100%',\r\n\t\tminHeight: 40,\r\n\t\tposition: 'relative',\r\n\r\n\t\t'&>*': {\r\n\t\t\tposition: 'absolute',\r\n\t\t\ttop: '50%',\r\n\t\t\tleft: 'calc(50% - 20px)',\r\n\t\t\ttransform: 'translate(-50%, -50%)',\r\n\t\t}\r\n\t}\r\n})\r\n\r\nfunction Loading({\r\n\tclasses,\r\n\tsize,\r\n\tclassName,\r\n\tref,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t)\r\n}\r\n\r\nexport default withStyles(style)(Loading);\r\n","import React from 'react'\r\nimport {Box, Dialog as DialogUI, DialogActions, DialogContent, DialogTitle} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport IconCloseButton from './button/IconCloseButton';\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport Loading from \"./Loading\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n\troot: {\r\n\t\tposition: 'relative'\r\n\t},\r\n\tcontent: {\r\n\t\tminHeight: 50\r\n\t},\r\n\tcentered: {\r\n\t\ttextAlign: 'center'\r\n\t},\r\n\tborder: {\r\n\t\tborder: theme.palette.border.onlyContrast ? `1px solid ${theme.palette.border.onlyContrast}` : undefined,\r\n\t},\r\n\tcloseButtonBox: {\r\n\t\tposition: 'absolute',\r\n\t\tright: theme.spacing(1),\r\n\t\ttop: theme.spacing(1),\r\n\t},\r\n\tcloseButton: {\r\n\t\tcolor: theme.palette.primary.main,\r\n\t},\r\n\tloading: {\r\n\t\twidth: '92%'\r\n\t}\r\n}));\r\n\r\nfunction Dialog({\r\n\ttitle,\r\n\tchildren,\r\n\tfullWidth = true,\r\n\tmaxWidth,\r\n\topen,\r\n\tclassName,\r\n\tcontentClassName,\r\n\ttitleCentered = false,\r\n\ttransitionDuration,\r\n\tonClose,\r\n\tpaperClassName,\r\n\tdialogActions,\r\n\tloading,\r\n\thtmlId\r\n}) {\r\n\tconst classes = useStyle();\r\n\treturn (\r\n\t\t\r\n\t\t\t{title &&\r\n\t\t\t\t{title}\r\n\t\t\t\t\t{onClose ? (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t) : null}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\t{\r\n\t\t\t\t\t!!loading ?\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\tchildren\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nDialog.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tmaxWidth: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false])\r\n}\r\n\r\nexport default Dialog;","import React from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tbuttonContainer: {\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'flex-end',\r\n\t\tmarginTop: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction IEInfo({\r\n\tclasses,\r\n\topen = false,\r\n\tonClose,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nIEInfo.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(IEInfo);","\r\n\r\n//https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\r\n\r\n// Opera 8.0+\r\nconst isOpera = (!!window.opr && !!window.opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;\r\n\r\n// Firefox 1.0+\r\nconst isFirefox = typeof InstallTrigger !== 'undefined';\r\n\r\n// Safari 3.0+ \"[object HTMLElementConstructor]\" \r\nconst isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === \"[object SafariRemoteNotification]\"; })(!window['safari'] || (typeof window['safari'] !== 'undefined' && window['safari'].pushNotification));\r\n\r\n// Internet Explorer 6-11\r\nconst isIE = /*@cc_on!@*/false || !!document.documentMode;\r\n\r\n// Edge 20+\r\nconst isEdge = !isIE && !!window.StyleMedia;\r\n\r\n// Chrome 1 - 71\r\nconst isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);\r\n\r\n// Blink engine detection\r\nconst isBlink = (isChrome || isOpera) && !!window.CSS;\r\n\r\nexport default {\r\n\tisOpera,\r\n\tisFirefox,\r\n\tisSafari,\r\n\tisIE,\r\n\tisEdge,\r\n\tisChrome,\r\n\tisBlink,\r\n}","import _ from 'lodash'\r\n/**\r\n * Deep diff between two object, using lodash\r\n * @param {Object} object Object compared\r\n * @param {Object} base Object to compare with\r\n * @return {Object} Return a new object who represent the diff. If no diff it will return null.\r\n * \r\n * Source: https://gist.github.com/Yimiprod/7ee176597fef230d1451\r\n */\r\n\r\nexport default {\r\n\tdiff: (object, base, checkCondition = false) => {\r\n\t\tif (!object || !base) {\r\n\t\t\tconsole.error('Can not diff object if one of them is undefined.')\r\n\t\t\treturn object !== base\r\n\t\t}\r\n\t\tconst changes = (object, base) => _.transform(object, function (result, value, key) {\r\n\t\t\tif (!_.isEqual(value, base[key])) {\r\n\t\t\t\tconst res = (_.isObject(value) && _.isObject(base[key])) ? changes(value, base[key]) : value;\r\n\t\t\t\tif (!_.isObject(res)) {\r\n\t\t\t\t\tresult[key] = res;\r\n\t\t\t\t} else if (Object.keys(res).length > 0) {\r\n\t\t\t\t\tresult[key] = res;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tconst changesObj = changes(object, base)\r\n\t\tif (Object.keys(changesObj).length > 0) return changesObj;\r\n\t\tif (checkCondition) return changesObj;\r\n\t\treturn null;\r\n\t}\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestGET} from \"libs/RestRequest\";\r\n\r\nconst DEMAND_VALIDATION_RESOURCE_ID = \"demandValidation\";\r\n\r\n\r\nconst getPreparingSections = async (id, clear = true) => {\r\n await getSections(id, clear, Endpoints.DEMAND_PREPARING_SECTIONS);\r\n}\r\n\r\nconst getEvaluationSections = async (id, clear = true) => {\r\n await getSections(id, clear, Endpoints.DEMAND_EVALUATION_SECTIONS);\r\n}\r\n\r\nconst getFinishingSections = async (id, clear = true) => {\r\n await getSections(id, clear, Endpoints.DEMAND_FINISHING_SECTIONS);\r\n}\r\n\r\nconst getSections = async (id, clear = true, urlFn) => {\r\n if (clear) {\r\n clearResource(DEMAND_VALIDATION_RESOURCE_ID)\r\n }\r\n\r\n try {\r\n const res = await RestRequestGET(urlFn(id));\r\n reduxStore.dispatch(setResource(DEMAND_VALIDATION_RESOURCE_ID, res))\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst clearDemandValidationResources = () => reduxStore.dispatch(clearResource(DEMAND_VALIDATION_RESOURCE_ID));\r\n\r\nexport default {\r\n getPreparingSections,\r\n getEvaluationSections,\r\n getFinishingSections,\r\n clearDemandValidationResources,\r\n DEMAND_VALIDATION_RESOURCE_ID\r\n}","import {RestRequestGET} from 'libs/RestRequest';\r\nimport reduxStore from 'redux/store';\r\nimport {clearPrivileges, setPrivileges} from 'redux/actions';\r\n\r\nconst CORRESPONDENCE_PRIVILEGE_STORE_KEY = 'correspondence';\r\nconst RFX_PRIVILEGE_STORE_KEY = 'rfx';\r\nconst DEMAND_PRIVILEGE_STORE_KEY = 'demand';\r\n\r\nconst cleanupPrivileges = (id) => {\r\n reduxStore.dispatch(clearPrivileges(id));\r\n}\r\n\r\nconst getPrivileges = async (url, key) => {\r\n const resp = await RestRequestGET(url);\r\n if (resp.success === true)\r\n reduxStore.dispatch(setPrivileges(key, resp.map))\r\n}\r\n\r\nexport default {\r\n getPrivileges,\r\n cleanupPrivileges,\r\n CORRESPONDENCE_PRIVILEGE_STORE_KEY,\r\n RFX_PRIVILEGE_STORE_KEY,\r\n DEMAND_PRIVILEGE_STORE_KEY\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {\r\n clearResource,\r\n setResource,\r\n setSaveStatusClosed,\r\n setSaveStatusDeleted,\r\n setSaveStatusDialog,\r\n setSaveStatusError,\r\n setSaveStatusLoading,\r\n setStepperState\r\n} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport RouterPath, {createPath} from 'libs/RouterPath';\r\nimport Tr from 'translations/Translations';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport objectExtension from 'libs/objectExtension'\r\nimport querystring from 'querystring';\r\nimport {ProcedureType} from \"../constants/ProcedureType\";\r\nimport DemandSectionsService from \"./DemandSectionsService\";\r\nimport PrivilegeService from \"./PrivilegeService\";\r\n\r\nconst DEMAND_RESOURCE_ID = 'demand';\r\nconst DEMAND_AVAILABLE_FORM_TYPES_RESOURCE_ID = 'demandAvailableFormTypes';\r\nconst DEMAND_AVAILABLE_REALIZATIONS_RESOURCE_ID = 'demandRealizationTypes';\r\nconst DEMAND_AVAILABLE_ORGANIZATIONS_RESOURCE_ID = 'demandAvailableOrganizations';\r\nconst DEMAND_NUMBER_AUTOMATED = 'demandNumberAutomated';\r\nconst DEMAND_CASE_CLASSIFICATION_SYMBOL_REQUIRED = 'caseClassificationSymbolRequired';\r\n\r\n\r\nconst createParams = (params, defaultProps = {\r\n procedureType: ProcedureType.EUROPE_PUBLIC,\r\n passive: false,\r\n exPost: false\r\n}) => {\r\n const {procedureType, passive, exPost} = params;\r\n let queryParams = {}\r\n if (passive) {\r\n queryParams['passive'] = passive;\r\n } else if (defaultProps.passive) {\r\n queryParams['passive'] = defaultProps.passive;\r\n }\r\n\r\n if (procedureType) {\r\n queryParams['procedureType'] = procedureType;\r\n } else if (defaultProps.procedureType) {\r\n queryParams['procedureType'] = defaultProps.procedureType;\r\n }\r\n\r\n if (exPost) {\r\n queryParams['exPost'] = exPost;\r\n } else if (defaultProps.exPost) {\r\n queryParams['exPost'] = defaultProps.exPost;\r\n }\r\n\r\n return `?${querystring.stringify(queryParams)}`\r\n}\r\n\r\nconst get = async (id, params) => {\r\n const res = await RestRequestGET(Endpoints.DEMAND_GET_BY_ID(id, createParams(params, {})));\r\n reduxStore.dispatch(setResource(DEMAND_RESOURCE_ID, res.demand));\r\n reduxStore.dispatch(setResource(DEMAND_AVAILABLE_REALIZATIONS_RESOURCE_ID, res.demandAvailableRealizationTypes));\r\n reduxStore.dispatch(setResource(DEMAND_AVAILABLE_ORGANIZATIONS_RESOURCE_ID, res.demandAvailableOrganizations));\r\n reduxStore.dispatch(setResource(DEMAND_AVAILABLE_FORM_TYPES_RESOURCE_ID, res.demandAvailableFormTypes));\r\n reduxStore.dispatch(setResource(DEMAND_NUMBER_AUTOMATED, res.numberingAutomated));\r\n reduxStore.dispatch(setResource(DEMAND_CASE_CLASSIFICATION_SYMBOL_REQUIRED, res.caseClassificationSymbolRequired));\r\n return res;\r\n}\r\n\r\nconst getCreateNew = async (params) => {\r\n const res = await RestRequestGET(Endpoints.DEMAND_GET_BY_ID(-1, createParams(params)));\r\n reduxStore.dispatch(setResource(DEMAND_RESOURCE_ID, res.demand));\r\n reduxStore.dispatch(setResource(DEMAND_AVAILABLE_REALIZATIONS_RESOURCE_ID, res.demandAvailableRealizationTypes));\r\n reduxStore.dispatch(setResource(DEMAND_AVAILABLE_ORGANIZATIONS_RESOURCE_ID, res.demandAvailableOrganizations));\r\n reduxStore.dispatch(setResource(DEMAND_AVAILABLE_FORM_TYPES_RESOURCE_ID, res.demandAvailableFormTypes));\r\n reduxStore.dispatch(setResource(DEMAND_NUMBER_AUTOMATED, res.numberingAutomated));\r\n reduxStore.dispatch(setResource(DEMAND_CASE_CLASSIFICATION_SYMBOL_REQUIRED, res.caseClassificationSymbolRequired));\r\n}\r\n\r\nconst _formatFormValues = (values) => {\r\n const {\r\n identity,\r\n enableOptional,\r\n termOption,\r\n termDate,\r\n termDescription,\r\n orderValueDecisionDate,\r\n auctionMade,\r\n digitalSign,\r\n euFunded,\r\n ...other\r\n } = values;\r\n\r\n const formatDate = (x) => (x ? x.format() : x);\r\n\r\n return {\r\n identity: identity,\r\n agreementRealizationDate: {\r\n date: termOption === 'date' ? formatDate(termDate) : null,\r\n text: termOption === 'text' ? termDescription : null,\r\n },\r\n orderValueDecisionDate: formatDate(orderValueDecisionDate),\r\n auctionMade: auctionMade === 'true',\r\n digitalSign: digitalSign === 'true',\r\n euFunded: euFunded === 'true',\r\n ...other\r\n }\r\n}\r\n\r\nconst _save = async (url, values) => {\r\n const data = _formatFormValues(values)\r\n const {resources} = reduxStore.getState()\r\n const {demand} = resources;\r\n const diff = objectExtension.diff(data, demand);\r\n if (diff === null) return null;\r\n\r\n try {\r\n return await RestRequestPOST(url, data)\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nconst getValidate = async (id = -1, clear = true) => {\r\n if (id === -1) {\r\n if (clear) {\r\n reduxStore.dispatch(clearResource(DemandSectionsService.DEMAND_VALIDATION_RESOURCE_ID))\r\n }\r\n const data = [\r\n {\r\n section: DemandValidation.DEMAND,\r\n status: \"EMPTY\",\r\n required: true,\r\n }\r\n ]\r\n reduxStore.dispatch(setResource(DemandSectionsService.DEMAND_VALIDATION_RESOURCE_ID, data))\r\n return;\r\n }\r\n\r\n await DemandSectionsService.getPreparingSections(id, clear)\r\n}\r\n\r\nconst save = async (values) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n\r\n const res = await _save(Endpoints.DEMAND_SAVE, values)\r\n await _handleSaveResponse(res);\r\n}\r\n\r\nconst saveExPost = async (values) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n\r\n const res = await _save(Endpoints.DEMAND_SAVE_EX_POST, values)\r\n await _handleSaveResponse(res);\r\n}\r\n\r\nconst _handleSaveResponse = async (res) => {\r\n try {\r\n if (res === null) {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n reduxStore.dispatch(setStepperState())\r\n } else if (res.success) {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n reduxStore.dispatch(setStepperState())\r\n\r\n const path = createPath(RouterPath.myProcedure.steps.MP_1_ID, {id: res.result})\r\n if (path === window.location.pathname) {\r\n await getValidate(res.result, false)\r\n } else {\r\n RouterPath.redirect(path)\r\n }\r\n } else {\r\n let msg;\r\n\r\n for (let prop in res.errors) {\r\n if (Object.prototype.hasOwnProperty.call(res.errors, prop)) {\r\n if (prop === 'number') {\r\n msg = res.errors[prop];\r\n } else if (prop.startsWith('fundingInstitutionLogo')) {\r\n msg = Tr('funding_institution_logo_error');\r\n } else if (prop === 'ezdrpId' || prop === 'ezdpuwId') {\r\n msg = Array.isArray(res.errors[prop]) ? res.errors[prop][0] : res.errors[prop];\r\n } else if (prop === 'name') {\r\n if(Array.isArray(res.errors[prop]))\r\n msg = res.errors[prop][0];\r\n else if(typeof res.errors[prop] === 'string')\r\n msg = res.errors[prop];\r\n }\r\n }\r\n if (msg) {\r\n break;\r\n }\r\n }\r\n\r\n if (!msg) {\r\n msg = Tr('unknown_error_message');\r\n }\r\n reduxStore.dispatch(setSaveStatusError(msg));\r\n }\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst preview = async (id = -1) => {\r\n\r\n try {\r\n const res = await RestRequestGET(Endpoints.DEMAND_PREVIEW(id))\r\n window.location.href = res.url\r\n } catch (error) {\r\n }\r\n\r\n}\r\n\r\n// const autoSave = async (id = -1) => {\r\n// \tconst { formValues } = reduxStore.getState()\r\n// \tconst values = formValues['mp_1_demand']\r\n// \tif (values === undefined) return;\r\n//\r\n// \ttry {\r\n// \t\tawait _save(Endpoints.DEMAND_AUTOSAVE(id), values)\r\n// \t} catch (error) {\r\n// \t}\r\n// }\r\n//\r\n// const autoSaveCheck = async (id = -1) => {\r\n// \ttry {\r\n// \t\treturn await RestRequestGET(Endpoints.DEMAND_AUTOSAVE_CHECK(id))\r\n// \t} catch (error) {\r\n// \t}\r\n// }\r\n//\r\n// const autoSaveDelete = async (id = -1) => {\r\n// \ttry {\r\n// \t\treturn await RestRequestDELETE(Endpoints.DEMAND_AUTOSAVE(id))\r\n// \t} catch (error) {\r\n// \t}\r\n// }\r\n//\r\n// const autoSaveLoad = async (id = -1) => {\r\n// \ttry {\r\n// \t\tconst res = await RestRequestGET(Endpoints.DEMAND_AUTOSAVE(id))\r\n// \t\treduxStore.dispatch(\r\n// \t\t\tsetResource(DEMAND_RESOURCE_ID, res)\r\n// \t\t)\r\n// \t} catch (error) {\r\n// \t}\r\n// }\r\n//\r\n// const restoreAutosave = async (id = -1) => {\r\n// \tawait autoSaveLoad(id);\r\n// }\r\n//\r\n// const getDemandActions = async (id = -1) => {\r\n// \ttry {\r\n// \t\tlet res = await RestRequestGET(Endpoints.DEMAND_ACTIONS(id))\r\n// \t\treduxStore.dispatch(setResource(\"demandActions\", res))\r\n// \t} catch (error) { }\r\n// }\r\n\r\nconst deteleUrl = async (url) => {\r\n try {\r\n await RestRequestDELETE(url);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst action = async (url) => {\r\n try {\r\n await RestRequestGET(url);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst deleteDemand = async (id) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n await RestRequestDELETE(Endpoints.DEMAND_DELETE(id));\r\n reduxStore.dispatch(setSaveStatusDeleted());\r\n } catch (error) {\r\n reduxStore.dispatch(setSaveStatusError());\r\n }\r\n}\r\n\r\nconst clone = async (id) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_CLONE(id))\r\n if (res.success) {\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n const path = createPath(RouterPath.myProcedure.steps.MP_1_ID, {id: res.result})\r\n RouterPath.redirect(path)\r\n } else {\r\n }\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst clearResources = (resource) => reduxStore.dispatch(clearResource(resource));\r\n\r\nconst getRelatedObjects = async (id) => {\r\n return await RestRequestGET(Endpoints.DEMAND_REALTED_OBJECTS(id));\r\n}\r\nconst getBuyerPrivileges = async (id) => {\r\n await PrivilegeService.getPrivileges(Endpoints.DEMAND_PRIVILEGES(id), PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY);\r\n}\r\nconst getBuyerRfxPrivileges = async (id) => {\r\n await PrivilegeService.getPrivileges(Endpoints.DEMAND_RFX_PRIVILEGES(id), PrivilegeService.RFX_PRIVILEGE_STORE_KEY);\r\n}\r\n\r\nconst updateNumber = async (id) => {\r\n return await RestRequestPOST(Endpoints.DEMAND_UPDATE_NUMBER(id));\r\n}\r\n\r\nconst checkForDraft = async (id) => {\r\n return await RestRequestGET(Endpoints.DEMAND_AUTOSAVE_CHECK(id));\r\n}\r\n\r\nconst loadDraft = async (id) => {\r\n const res = await RestRequestGET(Endpoints.DEMAND_AUTOSAVE(id));\r\n reduxStore.dispatch(setResource(DEMAND_RESOURCE_ID, res.result));\r\n return res;\r\n}\r\n\r\nconst saveDraft = async (id, formValues) => {\r\n await RestRequestPOST(Endpoints.DEMAND_AUTOSAVE(id), formValues)\r\n}\r\n\r\nconst deleteDraft = async (id) => {\r\n await RestRequestDELETE(Endpoints.DEMAND_AUTOSAVE(id));\r\n}\r\n\r\nconst checkForDraftExPost = async (id) => {\r\n return await RestRequestGET(Endpoints.DEMAND_EXPOST_AUTOSAVE_CHECK(id));\r\n}\r\n\r\nconst loadDraftExPost = async (id) => {\r\n const res = await RestRequestGET(Endpoints.DEMAND_EXPOST_AUTOSAVE(id));\r\n reduxStore.dispatch(setResource(DEMAND_RESOURCE_ID, res.result));\r\n return res;\r\n}\r\n\r\nconst saveDraftExPost = async (id, formValues) => {\r\n await RestRequestPOST(Endpoints.DEMAND_EXPOST_AUTOSAVE(id), formValues)\r\n}\r\n\r\nconst deleteDraftExPost = async (id) => {\r\n await RestRequestDELETE(Endpoints.DEMAND_EXPOST_AUTOSAVE(id));\r\n}\r\n\r\nexport default {\r\n get,\r\n getCreateNew,\r\n save,\r\n saveExPost,\r\n clone,\r\n getValidate,\r\n preview,\r\n //getDemandActions,\r\n deteleUrl,\r\n action,\r\n deleteDemand,\r\n clearResources,\r\n getRelatedObjects,\r\n getBuyerPrivileges,\r\n getBuyerRfxPrivileges,\r\n updateNumber,\r\n checkForDraft,\r\n loadDraft,\r\n saveDraft,\r\n deleteDraft,\r\n checkForDraftExPost,\r\n loadDraftExPost,\r\n saveDraftExPost,\r\n deleteDraftExPost,\r\n DEMAND_RESOURCE_ID,\r\n DEMAND_AVAILABLE_REALIZATIONS_RESOURCE_ID,\r\n DEMAND_AVAILABLE_ORGANIZATIONS_RESOURCE_ID,\r\n DEMAND_AVAILABLE_FORM_TYPES_RESOURCE_ID,\r\n DEMAND_NUMBER_AUTOMATED,\r\n DEMAND_CASE_CLASSIFICATION_SYMBOL_REQUIRED\r\n}","\r\nexport default {\r\n\tprocedure: {\r\n\t\tbasicInformation: {\r\n\t\t\tNUMBER: 50,\r\n\t\t\tNAME: 400,\r\n\t\t\tDESCRIPTION: 4000,\r\n\r\n\t\t\tCONTACT_PERSON: 200,\r\n\t\t\tCONTACT_PERSON_PHONE: 20,\r\n\r\n\t\t\tPURCHASER_PHONE: 20,\r\n\t\t\tPURCHASER_FAX: 20,\r\n\t\t\tPURCHASER_EMAIL: 255,\r\n\t\t\tPURCHASER_ADDITIONAL_INFO: 500,\r\n\r\n\t\t\tEOD: 100,\r\n\t\t\tSINGLE_DEALING_JUSTIFICATION: 4000,\r\n\t\t\tESTIMATION_BASE: 255,\r\n\t\t\tFINANCIAL_SOURCE: 4000,\r\n\t\t\tTERM_DESCRIPTION: 1000,\r\n\t\t\tFULL_NAME: 200,\r\n\t\t\tEU_PROJECT_NUMBER: 100\r\n\t\t},\r\n\t\tcontractor: {\r\n\t\t\tNAME: 1000,\r\n\t\t\tPOSTCODE_PL: 6,\r\n\t\t\tPOSTCODE: 50,\r\n\t\t\tEMAIL: 255,\r\n\t\t\tNIP_MIN: 5,\r\n\t\t\tNIP_MAX: 20,\r\n\t\t\tPESEL_PL: 11,\r\n\t\t\tNIP_PL: 10,\r\n\t\t\tCITY: 100,\r\n\t\t\tADDRESS: 500\r\n\t\t},\r\n\t\torganization: {\r\n\t\t\tNAME: 500,\r\n\t\t},\r\n\t\tdealings: {\r\n\t\t\tNAME: 400,\r\n\t\t\tPLANNED_CONTRACTOR_NUMBER: 5\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tOTHER_NAME: 400,\r\n\t\t},\r\n\t\tcriteriaSection: {\r\n\t\t\tNAME: 400\r\n\t\t},\r\n\t\tparameters: {\r\n\t\t\tNAME: 400\r\n\t\t},\r\n\t\titemParameters: {\r\n\t\t\tNAME: 30\r\n\t\t},\r\n\t\tdocuments: {\r\n\t\t\tNAME: 255\r\n\t\t},\r\n\t\tcorrespondence: {\r\n\t\t\tSUBJECT: 255\r\n\t\t}\r\n\t},\r\n}","import moment, {isMoment} from \"moment\";\r\nmoment.fn.toJSON = function() { return this.format(); }\r\n\r\nexport {isMoment}\r\nexport default moment","import * as Yup from 'yup'\r\nimport Tr from 'translations/Translations';\r\nimport InputLimits from \"./InputLimits\";\r\nimport moment, {isMoment} from \"libs/moment\";\r\n\r\nconst emailRegexp = /^[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?$/;\r\nconst contractorlimits = InputLimits.procedure.contractor\r\n\r\nYup.addMethod(Yup.string, 'noOnlyWhitespaces', function (message) {\r\n const usedMessage = message ? message : Tr('not_only_whitespaces')\r\n return this.test('only-whitespace', usedMessage, function (value) {\r\n if (value != null && value !== undefined) {\r\n return value.trim().length > 0;\r\n }\r\n return true;\r\n });\r\n});\r\n\r\nconst maxStringFunc = ({value, max}) => {\r\n return Tr('too_many_characters', {max})\r\n}\r\n\r\nconst minStringFunc = ({value, min}) => {\r\n const number = Math.abs(value.length - min)\r\n return Tr('too_low_characters', {number})\r\n}\r\n\r\nconst amountMin = (min, inclusive) => Yup.string().test('amountMin',\r\n inclusive ? Tr('v_number_min', {min}) : Tr('v_number_min_exclusive', {min}),\r\n (val) => {\r\n if (val) {\r\n const fVal = parseFloat(val);\r\n return !isNaN(fVal) && inclusive ? min <= fVal : min < fVal;\r\n }\r\n return true;\r\n })\r\n\r\nconst amountBasicOptional = (min, inclusive) => amountMin(min, inclusive)\r\n .matches(/^$|^[^-].*$/, Tr('v_positive')).matches(/^$|^[-]?\\d+([,.]|([,.]\\d{1,2})?)$/, Tr(\"amount_error\"))\r\n\r\nconst amountBasicRequired = (min, inclusive) => amountMin(min, inclusive)\r\n .matches(/^[^-].*$/, Tr('v_positive')).matches(/^[-]?\\d+([,.]|([,.]\\d{1,2})?)$/, Tr(\"amount_error\"))\r\n\r\nconst amountMaxDecimal100 = (value, noZero = true) => {\r\n let tr = \"\"\r\n const pValue = parseFloat(value)\r\n if (noZero && pValue <= 0) return Yup.number().positive(Tr(\"v_positive\"));\r\n else if (pValue > 100) tr = \"number_cant_be_bigger_than\"\r\n else tr = \"amount_error\"\r\n return Yup.string().matches(/(^\\d{1,2}([,.]\\d{1,2})?|100)$/, Tr(tr))\r\n}\r\n\r\nconst stringExactlyBase = (value, message) => Yup.string()\r\n .matches(value, message)\r\n .required(Tr('required_field'))\r\n .nullable();\r\nconst stringNotOneOfBase = (value, message) => Yup.string()\r\n .notOneOf(value, message)\r\n .required(Tr('required_field'))\r\n .nullable();\r\n\r\nconst stringMinAndMax = (min, max) => Yup.string()\r\n .min(min, minStringFunc)\r\n .max(max, maxStringFunc)\r\n .required(Tr('required_field'));\r\n\r\nconst vatinPL = (val, optional) => {\r\n if (!val && optional)\r\n return true;\r\n if (val?.length !== 10) {\r\n return false;\r\n }\r\n if (val.charAt(0) === '0' || val.charAt(2) === '0') {\r\n return false;\r\n }\r\n\r\n let weight = [6, 5, 7, 2, 3, 4, 5, 6, 7];\r\n let sum = 0;\r\n let controlNumber = parseInt(val.substring(9, 10));\r\n let weightCount = weight.length;\r\n for (let i = 0; i < weightCount; i++) {\r\n sum += (parseInt(val.substr(i, 1)) * weight[i]);\r\n }\r\n\r\n return sum % 11 === controlNumber;\r\n}\r\n\r\nconst peselPL = (val) => {\r\n if (val?.length !== contractorlimits.PESEL_PL) {\r\n return false;\r\n }\r\n\r\n let weight = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3];\r\n let sum = 0;\r\n let controlNumber = parseInt(val.substring(10, 11));\r\n for (let i = 0; i < weight.length; i++) {\r\n sum += ((parseInt(val.substring(i, i + 1)) * weight[i]) % 10);\r\n }\r\n sum = sum % 10;\r\n return (10 - sum) % 10 === controlNumber;\r\n}\r\n\r\nconst dateOrDateTimeValid = () => {\r\n return Yup.mixed().test('dateOrDateTimeValid', Tr('invalid_date_format'), (value) => {\r\n if (!value) {\r\n return true;\r\n }\r\n if (isMoment(value)) {\r\n return value.isValid();\r\n } else if (typeof value === 'string' || value instanceof String) {\r\n return moment(value, \"YYYY-MM-DD[T]HH:mm:ssZ\", true).isValid() || moment(value, \"YYYY-MM-DD[T]HH:mm:ss.SSSZ\", true).isValid();\r\n }\r\n return false;\r\n })\r\n};\r\n\r\nconst dateMax = (date, tr) => {\r\n return dateOrDateTimeValid().test('dateValidMax', tr, (value) => {\r\n if (!value) {\r\n return true;\r\n }\r\n\r\n let dateToCompare = date;\r\n if (!isMoment(date)) {\r\n dateToCompare = moment(date);\r\n }\r\n let result;\r\n if (!dateToCompare.isValid()) {\r\n result = false;\r\n } else {\r\n result = !dateToCompare.endOf('day').isBefore(value);\r\n }\r\n\r\n return result;\r\n })\r\n}\r\n\r\n\r\nconst dateMin = (date, tr) => {\r\n return dateOrDateTimeValid().test('dateValidMin', tr, (value) => {\r\n if (!value || !value.isValid()) {\r\n return true;\r\n }\r\n let dateToCompare = date;\r\n if (!isMoment(date)) {\r\n dateToCompare = moment(date);\r\n }\r\n let result;\r\n if (!dateToCompare.isValid()) {\r\n result = false;\r\n } else {\r\n result = !value.isBefore(dateToCompare.startOf(\"day\"));\r\n }\r\n return result;\r\n })\r\n}\r\n\r\n\r\nconst dateTimeMin = (date, tr) => {\r\n return dateOrDateTimeValid().test('dateTimeMin', tr, (value) => {\r\n if (!value || !value.isValid()) {\r\n return true;\r\n }\r\n let dateToCompare = date;\r\n if (!isMoment(date)) {\r\n dateToCompare = moment(date);\r\n }\r\n let result;\r\n if (!dateToCompare.isValid()) {\r\n result = false;\r\n } else {\r\n result = !value.isBefore(moment(dateToCompare));\r\n }\r\n return result;\r\n })\r\n}\r\nconst dateTimeMax = (date, tr) => {\r\n return dateOrDateTimeValid().test('dateTimeMax', tr, (value) => {\r\n if (!value || !value.isValid()) {\r\n return true;\r\n }\r\n let dateToCompare = date;\r\n if (!isMoment(date)) {\r\n dateToCompare = moment(date);\r\n }\r\n let result;\r\n if (!dateToCompare.isValid()) {\r\n result = false;\r\n } else {\r\n result = !dateToCompare.isBefore(value);\r\n }\r\n return result;\r\n })\r\n}\r\n\r\n\r\nexport default {\r\n stringNoRq: () => Yup.string(),\r\n string: (value, defTrKey) => {\r\n let trKey = defTrKey ? defTrKey : 'required_field'\r\n if (!defTrKey && value !== undefined) {\r\n trKey = 'v_string_required'\r\n }\r\n return Yup.string()\r\n .required(Tr(trKey, {value}))\r\n .noOnlyWhitespaces()\r\n .nullable()\r\n },\r\n stringExactly: (value, message) => stringExactlyBase(value, message),\r\n stringNotOneOf: (value, message) => stringNotOneOfBase(value, message),\r\n stringExactlyMax: (value, message, max) => stringExactlyBase(value, message)\r\n .max(max, maxStringFunc),\r\n stringMax: (max) => Yup.string()\r\n .max(max, maxStringFunc)\r\n .noOnlyWhitespaces().nullable()\r\n .required(Tr('required_field')),\r\n stringMin: (min) => Yup.string()\r\n .min(min, minStringFunc)\r\n .noOnlyWhitespaces()\r\n .required(Tr('required_field')),\r\n stringMinAndMax,\r\n stringMaxNoRq: (max) => Yup.string()\r\n .max(max, maxStringFunc).nullable(),\r\n number: (value) => {\r\n if (value !== undefined) {\r\n return Yup.number()\r\n .typeError(Tr('v_number_value', {value}))\r\n .min(0, Tr('v_positive_value', {value}))\r\n .required(Tr('v_number'))\r\n }\r\n return Yup.number()\r\n .typeError(Tr('v_number'))\r\n // .integer(Tr('v_integer'))\r\n .min(0, Tr('v_positive'))\r\n .required(Tr('v_number'))\r\n },\r\n numberMax: (value, key) => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .min(0, Tr('v_positive'))\r\n .max(value, Tr(key ? key : 'v_number_max', {value}))\r\n .required(Tr('v_number')),\r\n numberMin: (value, key) => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .min(value, Tr(key ? key : 'v_number_min', {min: value}))\r\n .required(Tr('v_number')),\r\n numberMin0: () => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .min(0, Tr('v_positive'))\r\n .required(Tr('v_number')),\r\n numberMaxNoZero: (value, key) => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .positive(Tr('v_positive'))\r\n .max(value, Tr(key ? key : 'v_number_max', {value}))\r\n .required(Tr('v_number')),\r\n numberPositiveOptional: () => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .positive(Tr('v_positive')).nullable(),\r\n numberPositiveNoZero: () => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .positive(Tr('v_positive'))\r\n .required(Tr('v_number')),\r\n numberMaxMin: (min, max, keyMin, keyMax, fieldName) => Yup.number()\r\n .typeError(fieldName ? Tr('v_number_value_field', {value: fieldName}) : Tr('v_number'))\r\n .min(min, Tr(keyMin ? keyMin : 'v_number_min', {min}))\r\n .max(max, Tr(keyMax ? keyMax : 'v_number_max', {value: max}))\r\n .required(Tr('v_number')),\r\n decimalNumber: (value) => Yup.string()\r\n .matches(/^[-]?\\d+([,.]|([,.]\\d{1,2})?)$/, Tr('decimal_number', {value}))\r\n .required(Tr('v_number_value_field', {value})).nullable(),\r\n bigDecimal: () => Yup.string()\r\n .matches(/^[-]?\\d{1,17}([,.]|([,.]\\d{1,10})?)$/, Tr('v_number'))\r\n .required(Tr('required_field')).nullable(),\r\n bigDecimalOptional: () => Yup.string()\r\n .matches(/^[-]?\\d{1,17}([,.]|([,.]\\d{1,10})?)$/, Tr('v_number'))\r\n .nullable(),\r\n integerMin: (value = 0) => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .min(value, Tr('v_number_min',{min: value}))\r\n .required(Tr('v_number'))\r\n .integer(Tr('integer_number')),\r\n integerMax: (value, key) => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .min(1, Tr('v_number_min_0'))\r\n .max(value, Tr(key ? key : 'v_number_max', {value}))\r\n .required(Tr('v_number'))\r\n .integer(Tr('integer_number')),\r\n integerMinMax: (min, max, keyMin, keyMax) => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .min(min, Tr(keyMin ? keyMin : min === 0 ? 'v_number_min_0' : 'v_number_min', {min: min}))\r\n .max(max, Tr(keyMax ? keyMax : 'v_number_max', {value: max}))\r\n .required(Tr('v_number'))\r\n .integer(Tr('integer_number')),\r\n email: () => Yup.string().email(Tr('invalid_email')).matches(emailRegexp, Tr('invalid_email')),\r\n emailMax: (max) => Yup.string()\r\n .max(max, maxStringFunc)\r\n .email(Tr('invalid_email'))\r\n .matches(emailRegexp, Tr('invalid_email'))\r\n .nullable()\r\n .required(Tr('required_field')),\r\n emailMaxNoRq: (max) => Yup.string()\r\n .max(max, maxStringFunc)\r\n .email(Tr('invalid_email')).matches(emailRegexp, Tr('invalid_email')).nullable(),\r\n amount: (min = 0, inclusive = true) => amountBasicRequired(min, inclusive)\r\n .nullable()\r\n .required(Tr('required_field')),\r\n amountOptional: (min = 0, inclusive = true) => amountBasicOptional(min, inclusive)\r\n .nullable(),\r\n amountMax100NoZero: () => Yup.lazy((value) => amountMaxDecimal100(value)\r\n .nullable()\r\n .required(Tr('required_field'))\r\n ),\r\n amountMax100: () => Yup.lazy((value) => amountMaxDecimal100(value, false)\r\n .nullable()\r\n .required(Tr('required_field'))\r\n ),\r\n amountMax100Optional: () => Yup.lazy((value) => amountMaxDecimal100(value, false)\r\n .nullable()\r\n ),\r\n arrayOfShape: (shape) => Yup.array(Yup.object().shape(shape)),\r\n arrayOf: (shema) => Yup.array().of(shema),\r\n object: (shape, fields) => Yup.object().shape(shape, fields),\r\n lazy: (fn) => Yup.lazy(fn),\r\n arrayRequired: (tr) => Yup.array().nullable().min(1, Tr(tr ? tr : 'required_field')).test(\r\n 'arrayRequired',\r\n Tr(tr ? tr : 'required_field'),\r\n (formValue) => {\r\n return Array.isArray(formValue) && formValue.length >= 0;\r\n }\r\n ),\r\n any: () => Yup.mixed(),\r\n anyRequired: () => Yup.mixed().required(Tr('required_field')),\r\n immediatelyError: (tr) => Yup.mixed().test('immediatelyError', tr, (val) => {\r\n return false;\r\n }),\r\n dateMaxNoRq: (date, tr) => dateMax(date, tr),\r\n dateMax: (date, tr) => dateMax(date, tr).required(Tr('required_field')),\r\n dateMinNoRq: (date, tr) => dateMin(date, tr),\r\n dateMin: (date, tr) => dateMin(date, tr).required(Tr('required_field')),\r\n dateTimeNoReq: () => dateOrDateTimeValid(),\r\n dateTimeValid: () => dateOrDateTimeValid().required(Tr('required_field')),\r\n dateTimeMinNoRq: (date, tr) => dateTimeMin(date, tr),\r\n dateTimeMin: (date, tr) => dateTimeMin(date, tr).required(Tr('required_field')),\r\n dateTimeMaxNoRq: (date, tr) => dateTimeMax(date, tr),\r\n dateTimeMax: (date, tr) => dateTimeMax(date, tr).required(Tr('required_field')),\r\n vatinPLOptional: () => Yup.string().test('vatinPL', Tr(\"invalid_vatin\"), (val) => {\r\n return vatinPL(val, true);\r\n }).nullable(),\r\n vatinOrPeselPL: (tr) => Yup.string().test('vatinOrPeselPL', tr, (val) => {\r\n const vatinValid = vatinPL(val);\r\n const peselValid = peselPL(val);\r\n\r\n return vatinValid || peselValid;\r\n\r\n }),\r\n requiredBoolean: () => Yup.boolean().required(Tr('required_field')).nullable(),\r\n mixed: () => Yup.mixed(),\r\n requiredObject: () => Yup.object().required(Tr('required_field')).nullable(),\r\n ref: Yup.ref,\r\n url: () => Yup.string().url(Tr('invalid_url')).nullable().required(Tr('required_field')),\r\n urlOptional: () => Yup.string().url(Tr('invalid_url')).nullable(),\r\n urlMax: (max) => Yup.string().max(max, maxStringFunc).url(Tr('invalid_url')).nullable().required(Tr('required_field')),\r\n urlMaxOptional: (max) => Yup.string().max(max, maxStringFunc).url(Tr('invalid_url')).nullable(),\r\n phoneOptional: () => Yup.string().matches(/(^[+]\\d{2}\\s?\\d{9}$)|^\\d{9}$/, Tr('invalid_telephone')).nullable()\r\n}","import React, {useEffect} from 'react'\r\nimport {Formik} from 'formik';\r\nimport Button from './Button';\r\nimport PropTypes from 'prop-types'\r\nimport {setForm} from 'redux/actions'\r\nimport {connect} from 'react-redux'\r\nimport ValidationShema from \"../constants/ValidationShema\";\r\n\r\nfunction InnerForm(\r\n {\r\n id,\r\n htmlFormId,\r\n setForm,\r\n formikProps,\r\n submitLabel,\r\n children,\r\n className,\r\n afterSubmitFunc = () => {\r\n },\r\n }) {\r\n\r\n useEffect(() => {\r\n if (id !== undefined) {\r\n // setForm(id, formikProps.submitForm)\r\n setForm(id, () => {\r\n formikProps.submitForm().then(afterSubmitFunc)\r\n })\r\n setForm(id + \"_reset\", formikProps.resetForm)\r\n }\r\n return () => {\r\n if (id !== undefined) {\r\n setForm(id);\r\n setForm(id + \"_reset\");\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction Form(\r\n {\r\n children,\r\n onSubmit,\r\n onReset,\r\n submitLabel,\r\n initialValues,\r\n initialTouched,\r\n validationSchema = ValidationShema.any(),\r\n id,\r\n htmlFormId,\r\n setForm,\r\n className,\r\n afterSubmitFunc,\r\n onChange,\r\n validateOnMount,\r\n validateOnChange,\r\n validateOnBlur\r\n }) {\r\n\r\n useEffect(() => {\r\n return () => {\r\n setForm(id)\r\n };\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n return (\r\n {\r\n actions.setSubmitting(false);\r\n onSubmit(values, actions)\r\n }}\r\n onReset={onReset}\r\n >{(props) => ()}\r\n )\r\n}\r\n\r\nForm.propTypes = {\r\n id: PropTypes.string,\r\n htmlFormId: PropTypes.string,\r\n initialValues: PropTypes.any,\r\n submitLabel: PropTypes.any,\r\n onSubmit: PropTypes.func,\r\n onReset: PropTypes.func,\r\n validationSchema: PropTypes.object,\r\n className: PropTypes.string,\r\n}\r\n\r\nForm.defaultProps = {\r\n onSubmit: () => {\r\n },\r\n initialValues: {},\r\n validationSchema: {},\r\n}\r\n\r\nexport default connect((state) => ({}), {\r\n setForm\r\n})(Form);\r\n","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction Title(\r\n {\r\n children,\r\n align,\r\n className,\r\n variant='h5'\r\n }) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nTitle.propTypes = {\r\n align: PropTypes.string,\r\n className: PropTypes.string,\r\n}\r\n\r\nTitle.defaultProps = {}\r\n\r\nexport default Title;","import React from 'react'\r\nimport { withStyles, Divider as DividerUI } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Title from 'components/Title';\r\nimport clsx from \"clsx\";\r\n\r\nconst style = theme => ({\r\n\ttitle: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t},\r\n\tdivider: {\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t}\r\n})\r\n\r\nfunction Divider({\r\n\tclasses,\r\n\ttitleClassName,\r\n\tchildren,\r\n\tvariant\r\n}) {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\t\r\n\t\t>\r\n\t)\r\n}\r\n\r\nDivider.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nDivider.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(Divider);","\r\nexport default (id, obj, defaultValue) => {\r\n\tif(id === undefined) return defaultValue;\r\n\tlet idArray = id.split('.')\r\n\tlet value = obj;\r\n\tfor (let i in idArray) {\r\n\t\tlet key = idArray[i]\r\n\t\tvalue = value[key]\r\n\t\tif (value === undefined\r\n\t\t|| value === null) return defaultValue;\r\n\t}\r\n\treturn value;\r\n}","export default {\r\n\tNUMBER_19: 'number_19',\r\n\tNUMBER_19_WITH_NEGATIVE: 'number_19_neg',\r\n\tNUMBER_POSITIVE_AMOUNT: 'number_positive_amount',\r\n\tNUMBER_DECIMAL: 'number_decimal',\r\n\tINTEGER_POSITIVE_AMOUNT: 'integer_positive_amount',\r\n\tPHONE: 'phone'\r\n}","export default (value, innerReg) => {\r\n let reg = innerReg ? innerReg : /(?!(\\d|[.,]))\\D/\r\n let _value = value.toString();\r\n\r\n if (_value.length > 0) {\r\n _value = _value.replace(reg, \"\")\r\n }\r\n\r\n\r\n _value = _value.replace(/,/g, '.')\r\n\r\n _value = _value.replace(/\\.\\./g, '.')\r\n\r\n return _value;\r\n}","import React, {useEffect} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {TextField, Typography, withStyles} from '@material-ui/core';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport Tr from 'translations/Translations';\r\nimport clsx from 'clsx';\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE'\r\nimport toNumberType from \"libs/toNumberType\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n position: 'relative',\r\n },\r\n limit: {\r\n position: 'absolute',\r\n bottom: 0,\r\n right: 0,\r\n color: theme.palette.text.secondary,\r\n },\r\n error: {\r\n marginBottom: 10,\r\n }\r\n})\r\n\r\nfunction TextInput({\r\n formikProps,\r\n id,\r\n label,\r\n placeholder,\r\n className,\r\n noError,\r\n noErrorSpace,\r\n multiline,\r\n disabled,\r\n required,\r\n endAdornment,\r\n limit,\r\n type = \"text\",\r\n onChange = () => {\r\n },\r\n classes,\r\n step,\r\n onBlur = () => {\r\n },\r\n showErrorImmediately = false,\r\n fullWidth = true,\r\n\tskipCheckTouched,\r\n\t...other\r\n}) {\r\n\tconst errorValue = getObjectValue(id, formikProps.errors, '')\r\n\tconst touched = getObjectValue(id, formikProps.touched, !!skipCheckTouched)\r\n\tconst value = getObjectValue(id, formikProps.values, '')\r\n\tconst editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const isError = !noError && (!!errorValue && Boolean(touched))\r\n const lettersLeft = limit - value.toString().length\r\n\r\n let _label = label;\r\n let _placeholder = placeholder;\r\n if (_label && required) _label += '*';\r\n if (_placeholder && required) _placeholder += '*';\r\n\r\n\r\n useEffect(() => {\r\n if (showErrorImmediately && lettersLeft < 0) {\r\n formikProps.setFieldTouched(id, true)\r\n }\r\n // eslint-disable-next-line\r\n }, [lettersLeft])\r\n\r\n\tconst handleChange = (e) => {\r\n\t\tlet value = e.target.value;\r\n\t\tswitch (type) {\r\n\t\t\tcase INPUT_TYPE.NUMBER_19:\r\n\t\t\tcase INPUT_TYPE.NUMBER_19_WITH_NEGATIVE:\r\n\t\t\t\tconst withMin = INPUT_TYPE.NUMBER_19_WITH_NEGATIVE === type;\r\n\t\t\t\tvalue = toNumberType(value, withMin ? /(?!(^([-]?)\\d|[.,]|^[-]))\\D/ : undefined);\r\n\t\t\t\tlet valueSplit = value.split('.')\r\n\t\t\t\tif(valueSplit.length > 2) {\r\n\t\t\t\t\tvalueSplit = valueSplit.slice(0, 2)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (valueSplit.length > 1) {\r\n\t\t\t\t\tvalueSplit[0] = valueSplit[0].slice(0, withMin && value.startsWith(\"-\") ? 14 : 13)\r\n\t\t\t\t\tvalueSplit[1] = valueSplit[1].slice(0, 2);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalueSplit[0] = valueSplit[0].slice(0, withMin && value.startsWith(\"-\") ? 14 : 13)\r\n\t\t\t\t}\r\n\t\t\t\tvalue = valueSplit.join('.');\r\n\t\t\t\tbreak;\r\n\t\t\tcase INPUT_TYPE.NUMBER_POSITIVE_AMOUNT:\r\n\t\t\t\tvalue = toNumberType(value);\r\n\t\t\t\tlet valueSplitAmount = value.split('.')\r\n\t\t\t\tif(valueSplitAmount.length > 2) {\r\n\t\t\t\t\tvalueSplit = valueSplit.slice(0, 2)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (valueSplitAmount.length > 1) {\r\n\t\t\t\t\tvalueSplitAmount[0] = valueSplitAmount[0].slice(0, 17)\r\n\t\t\t\t\tvalueSplitAmount[1] = valueSplitAmount[1].slice(0, 10);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalueSplitAmount[0] = valueSplitAmount[0].slice(0, 17)\r\n\t\t\t\t}\r\n\t\t\t\tvalue = valueSplitAmount.join('.');\r\n\t\t\t\tbreak;\r\n\t\t\tcase INPUT_TYPE.INTEGER_POSITIVE_AMOUNT:\r\n\t\t\t\tvalue = toNumberType(value, /\\D/);\r\n\t\t\t\tbreak;\r\n\t\t\tcase INPUT_TYPE.NUMBER_DECIMAL:\r\n\t\t\t\tif (value !== \"-\") {\r\n\r\n\t\t\t\t\tvalue = toNumberType(value, /(?!(^([-]?)\\d|[.,]))\\D/);\r\n\t\t\t\t\tconst valueSplit1 = value.split('.')\r\n\t\t\t\t\tif (valueSplit1.length > 1) {\r\n\t\t\t\t\t\tvalueSplit1[1] = valueSplit1[1].slice(0, 10);\r\n\t\t\t\t\t\tvalueSplit1[0] = valueSplit1[0].slice(0, 17)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvalueSplit1[0] = valueSplit1[0].slice(0, 17)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvalue = valueSplit1.filter((x, i) => i < 2).join('.');\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase INPUT_TYPE.PHONE:\r\n\t\t\t\tvalue = toNumberType(value, /(?!(^([+]?)[ ]*\\d|[ ]|^[+]))\\D/);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n onChange(value);\r\n if (type === 'number' || type === 'text') formikProps.handleChange(e)\r\n else {\r\n formikProps.setFieldValue(id, value)\r\n formikProps.setFieldTouched(id, true)\r\n }\r\n }\r\n\r\n const handleBlur = (e) => {\r\n onBlur(e)\r\n formikProps.handleBlur(e)\r\n }\r\n\r\n\tconst inputType = ((type) => {\r\n\t\tswitch (type) {\r\n\t\t\tcase INPUT_TYPE.NUMBER_19:\r\n\t\t\tcase INPUT_TYPE.NUMBER_19_WITH_NEGATIVE:\r\n\t\t\tcase INPUT_TYPE.NUMBER_POSITIVE_AMOUNT: return 'text';\r\n\t\t\tdefault: return type;\r\n\t\t}\r\n\t})(type)\r\n\r\n const formatValue = () => {\r\n let v = '' + value;\r\n if (type !== \"text\") v = v.replace(/\\./g, ',')\r\n return v;\r\n }\r\n\r\n return (\r\n \r\n \r\n {limit &&\r\n \r\n {Tr('characters_left', {number: lettersLeft < 0 ? 0 : lettersLeft})}\r\n \r\n }\r\n
\r\n )\r\n}\r\n\r\nTextInput.propTypes = {\r\n formikProps: PropTypes.object,\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n noError: PropTypes.bool,\r\n}\r\n\r\nTextInput.defaultProps = {\r\n noError: false,\r\n}\r\n\r\nexport default withStyles(style)(TextInput)\r\n","import React from 'react'\r\nimport {FormControlLabel, Radio, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n})\r\n\r\nfunction RadioGroupElement(\r\n {\r\n classes,\r\n value,\r\n children,\r\n size,\r\n labelClassName,\r\n className,\r\n disabled,\r\n htmlId\r\n }) {\r\n return (\r\n }\r\n label={children}\r\n classes={{\r\n label: labelClassName\r\n }}\r\n disabled={disabled}\r\n />\r\n )\r\n}\r\n\r\nRadioGroupElement.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(RadioGroupElement);","import React, { memo } from 'react'\r\nimport { RadioGroup as RadioGroupUI, FormControl, FormLabel, FormHelperText } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport RadioGroupElement from './RadioGroupElement';\r\n\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport { withStyles } from '@material-ui/styles';\r\n\r\nconst style = theme => ({\r\n\terror: {\r\n\t\tmarginTop: 0,\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t}\r\n})\r\n\r\nfunction RadioGroup({\r\n\tclasses,\r\n\tformikProps,\r\n\tlabel,\r\n\tid,\r\n\titems,\r\n\tchildren,\r\n\tclassName,\r\n\trequired,\r\n\tnoError,\r\n\tonChange = ()=> {},\r\n\tdisabled\r\n}) {\r\n\tconst errorValue = getObjectValue(id, formikProps.errors, '')\r\n\tconst touched = getObjectValue(id, formikProps.touched, false)\r\n\tconst value = getObjectValue(id, formikProps.values, '')\r\n\tconst editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n\tconst isError = !noError && (!!errorValue && touched)\r\n\r\n\t// const isError = !!formikProps.errors[id] && formikProps.touched[id]\r\n\tconst helperText = (isError && errorValue) || ' ';\r\n\r\n\tlet _label = label;\r\n\tif (required) _label += '*';\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{_label}\r\n\t\t\t {\r\n\t\t\t\t\tonChange(event);\r\n\t\t\t\t\tformikProps.handleChange(event);\r\n\t\t\t\t}}\r\n\t\t\t\tonBlur={formikProps.handleBlur}\r\n\t\t\t\t// value={formikProps.values[id]}\r\n\t\t\t\tvalue={value}\r\n\t\t\t>\r\n\t\t\t\t{items.map((item, i) => {\r\n\t\t\t\t\tconst isStr = typeof item === 'string';\r\n\t\t\t\t\tconst value = isStr ? item : String(item.value);\r\n\t\t\t\t\tconst label = isStr ? item : item.label;\r\n\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{label}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)\r\n\t\t\t\t})}\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\t{helperText}\r\n\t\t\r\n\t)\r\n}\r\n\r\nRadioGroup.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tlabel: PropTypes.string,\r\n\tid: PropTypes.string,\r\n\titems: PropTypes.arrayOf(\r\n\t\tPropTypes.oneOfType([\r\n\t\t\tPropTypes.shape({\r\n\t\t\t\tvalue: PropTypes.any.isRequired,\r\n\t\t\t\tlabel: PropTypes.string.isRequired,\r\n\t\t\t}),\r\n\t\t\tPropTypes.string.isRequired,\r\n\t\t])\r\n\t),\r\n\tformikProps: PropTypes.object,\r\n}\r\n\r\nRadioGroup.defaultProps = {\r\n\titems: []\r\n}\r\n\r\nexport default withStyles(style)(memo(RadioGroup, (prevProps, nextProps) => {\r\n\tif (prevProps.label !== nextProps.label) return false;\r\n\tif (prevProps.id !== nextProps.id) return false;\r\n\tif (JSON.stringify(prevProps.items) !== JSON.stringify(nextProps.items)) return false;\r\n\tif (prevProps.children !== nextProps.children) return false;\r\n\tconst id = nextProps.id;\r\n\t// if (prevProps.formikProps.values[id] !== nextProps.formikProps.values[id]) return false;\r\n\t// if (prevProps.formikProps.errors[id] !== nextProps.formikProps.errors[id]) return false;\r\n\t// if (prevProps.formikProps.touched[id] !== nextProps.formikProps.touched[id]) return false;\r\n\tif (getObjectValue(id, prevProps.formikProps.values) !== getObjectValue(id, nextProps.formikProps.values)) return false;\r\n\tif (getObjectValue(id, prevProps.formikProps.errors) !== getObjectValue(id, nextProps.formikProps.errors)) return false;\r\n\tif (getObjectValue(id, prevProps.formikProps.touched) !== getObjectValue(id, nextProps.formikProps.touched)) return false;\r\n\treturn true;\r\n}))","import React from 'react'\r\nimport TypographyUI from '@material-ui/core/Typography';\r\n\r\nfunction Typography(props) {\r\n return (\r\n \r\n )\r\n}\r\n\r\n\r\nexport default (Typography);","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {Box, MenuItem, TextField} from '@material-ui/core';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport {withStyles} from '@material-ui/styles';\r\nimport clsx from 'clsx';\r\nimport Typography from \"./Typography\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n marginBottom: theme.spacing(),\r\n },\r\n contrastSelectValue: {\r\n minHeight: theme.spacing(4)\r\n },\r\n selected: {\r\n background: `${theme.palette.primary.main} !important`,\r\n color: `${theme.palette.secondary.contrastText} !important`\r\n\r\n },\r\n border: {\r\n border: `1px solid ${theme.palette.common.white}`,\r\n },\r\n subLabel: {\r\n fontStyle: 'italic'\r\n }\r\n})\r\nexport const createSelectItem = (value, label, subLabel) => ({\r\n value,\r\n label: label !== undefined ? label : value,\r\n subLabel\r\n})\r\n\r\nfunction Select(\r\n {\r\n formikProps,\r\n id,\r\n label,\r\n items,\r\n noError,\r\n className,\r\n required,\r\n classes,\r\n disabled,\r\n onChange = () => {\r\n },\r\n alwaysEditable = false,\r\n showErrorWithoutTouched = false\r\n }) {\r\n const errorValue = getObjectValue(id, formikProps.errors, '')\r\n const touched = getObjectValue(id, formikProps.touched, false)\r\n const value = getObjectValue(id, formikProps.values, '')\r\n const editable = alwaysEditable || getObjectValue('_editable', formikProps.values, true);\r\n\r\n const isError = !noError && !!errorValue && (showErrorWithoutTouched || !!touched)\r\n\r\n let _label = label;\r\n if (_label && required) _label += '*';\r\n\r\n const _value = items.findIndex(x => {\r\n if (typeof x === 'string') return x === value\r\n return x.value === value\r\n }) < 0 ? '' : value;\r\n\r\n return (\r\n {\r\n formikProps.handleChange(event);\r\n onChange(event)\r\n }}\r\n onBlur={formikProps.handleBlur}\r\n value={_value}\r\n error={isError}\r\n helperText={noError ? undefined : isError ? errorValue : ' '}\r\n fullWidth\r\n classes={{\r\n root: classes.contrast,\r\n // selectMenu: classes.selected,\r\n }}\r\n SelectProps={{\r\n MenuProps: {\r\n classes: {\r\n paper: classes.border\r\n }\r\n },\r\n }}\r\n >\r\n {\r\n items.map((item, i) => {\r\n const isStr = typeof item === 'string';\r\n const value = isStr ? item : item.value;\r\n const label = isStr ? item : item.label;\r\n const subLabel = isStr ? undefined : item.subLabel;\r\n\r\n return (\r\n \r\n )\r\n })\r\n }\r\n \r\n )\r\n}\r\n\r\nSelect.propTypes = {\r\n className: PropTypes.string,\r\n formikProps: PropTypes.object,\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n items: PropTypes.arrayOf(\r\n PropTypes.oneOfType([\r\n PropTypes.shape({\r\n value: PropTypes.any.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }),\r\n PropTypes.string.isRequired,\r\n ])\r\n )\r\n}\r\n\r\nSelect.defaultProps = {\r\n items: []\r\n}\r\n\r\nexport default withStyles(style)(Select)\r\n","import Tr from 'translations/Translations';\r\n\r\nconst PrimaryTenderVariant = {\r\n\tVARIANT_1: \"variant_1\",\r\n\tVARIANT_2: \"variant_2\",\r\n\tVARIANT_3: \"variant_3\",\r\n}\r\n\r\nexport const PrimaryTenderVariantTr = {\r\n\t[PrimaryTenderVariant.VARIANT_1]: Tr(\"primarytendervariant.variant_1\"),\r\n\t[PrimaryTenderVariant.VARIANT_2]: Tr(\"primarytendervariant.variant_2\"),\r\n\t[PrimaryTenderVariant.VARIANT_3]: Tr(\"primarytendervariant.variant_3\")\r\n}\r\n\r\nexport default PrimaryTenderVariant;\r\n","import {PrimaryTenderVariantTr} from \"constants/PrimaryTenderVariant\";\r\n\r\nexport default Object.entries(PrimaryTenderVariantTr).map(([value, label]) => ({label, value}))","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (value) => ({label: Tr('pzp_exclusion.' + value), value})\r\n\r\nexport default [\r\n {label: '---', value: ''},\r\n createItem('exclusion10'),\r\n createItem('exclusion1'),\r\n createItem('exclusion2'),\r\n createItem('exclusion3'),\r\n createItem('exclusion4'),\r\n createItem('exclusion5'),\r\n createItem('exclusion6'),\r\n createItem('exclusion7'),\r\n createItem('exclusion8'),\r\n createItem('exclusion9'),\r\n createItem('exclusion11'),\r\n createItem('exclusion12'),\r\n]","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value) => ({label: Tr(trKey), value})\r\n\r\nexport default [\r\n\tcreateItem('p1s1_ot_1', 'supplies'),\r\n\tcreateItem('p1s1_ot_2', 'services'),\r\n\tcreateItem('p1s1_ot_3', 'works'),\r\n]","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value) => ({label: Tr(trKey), value})\r\n\r\nexport default [\r\n\tcreateItem('p1s1_ot_2', 'services'),\r\n\tcreateItem('p1s1_ot_3', 'works'),\r\n]","import Tr from 'translations/Translations';\r\nimport {createSelectItem} from \"../components/Select\";\r\n\r\nexport default [\r\n createSelectItem(true, Tr('yes')),\r\n createSelectItem(false, Tr('no'))\r\n]\r\n\r\n","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value) => ({label: Tr(trKey), value})\r\n\r\nexport default [\r\n // createItem('p1s1_jedz_1', 'yes'),\r\n createItem('p1s1_jedz_2', 'yes'),\r\n createItem('p1s1_jedz_3', 'yesPostpone'),\r\n createItem('p1s1_jedz_4', 'no'),\r\n]\r\n\r\nexport const jedzTranslations = (value) => {\r\n switch (value) {\r\n case \"yes\":\r\n return Tr(\"p1s1_jedz_2\");\r\n case \"yesPostpone\":\r\n return Tr(\"p1s1_jedz_3\");\r\n case \"no\":\r\n return Tr(\"p1s1_jedz_4\");\r\n default:\r\n return \"\"\r\n }\r\n\r\n}","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value) => ({label: Tr(trKey), value})\r\n\r\nconst itemsHidedExecutive = [\r\n\tcreateItem('p1s1_ct_1', 'Standard'),\r\n\tcreateItem('p1s1_ct_2', 'Framework')\r\n]\r\n\r\nconst itemsWithExecutive = [\r\n\t...itemsHidedExecutive,\r\n\tcreateItem('p1s1_ct_3', 'Executive')\r\n]\r\n\r\n\r\nexport default (hideExecutiveDemandVariant) => {\r\n if (hideExecutiveDemandVariant) {\r\n \treturn itemsHidedExecutive;\r\n } else {\r\n \treturn itemsWithExecutive;\r\n\t}\r\n}\r\n","import React from 'react'\r\nimport {Checkbox as CheckboxUI, FormControlLabel, Tooltip} from '@material-ui/core';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport Tr from 'translations/Translations';\r\n\r\nfunction Checkbox(\r\n {\r\n formikProps,\r\n id,\r\n htmlId,\r\n label,\r\n disabled,\r\n checkboxClassName,\r\n fullWidth,\r\n checked,\r\n className,\r\n labelClassName,\r\n onChange = () => {\r\n },\r\n }) {\r\n\r\n const value = checked === undefined ? getObjectValue(id, formikProps.values, false) : checked\r\n\r\n const checkbox = \r\n {\r\n if (formikProps) formikProps.handleChange(event);\r\n onChange(event);\r\n }}\r\n onBlur={formikProps ? formikProps.handleBlur : undefined}\r\n disabled={disabled}\r\n className={checkboxClassName}\r\n id={htmlId}\r\n />\r\n \r\n\r\n if (Boolean(label)) {\r\n return (\r\n \r\n )\r\n }\r\n return checkbox;\r\n}\r\n\r\nexport default Checkbox\r\n","import React from 'react'\r\n\r\nexport default ({ type = 'div', children, props = {} }) => {\r\n\treturn React.createElement(\r\n\t\ttype,\r\n\t\t{\r\n\t\t\tdangerouslySetInnerHTML: {\r\n\t\t\t\t__html: children\r\n\t\t\t},\r\n\t\t\t...props,\r\n\t\t}\r\n\t)\r\n}\r\n","import React from 'react'\r\nimport {CircularProgress, makeStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport IconButton from \"./IconButton\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n fabProgress: {\r\n position: 'absolute',\r\n left: 0,\r\n top: 0\r\n }\r\n}))\r\n\r\nfunction WorkableIconButton(\r\n {\r\n working,\r\n disabled,\r\n ...props\r\n }) {\r\n const classes = useStyles();\r\n return (\r\n \r\n {working && }\r\n \r\n )\r\n}\r\n\r\nWorkableIconButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.elementType]),\r\n hideTooltip: PropTypes.bool,\r\n Icon: PropTypes.elementType,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconButton;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowDown'\r\nimport clsx from 'clsx';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nconst useStyles = makeStyles({\r\n\trotate: {\r\n\t\ttransform: 'rotate(180deg)'\r\n\t},\r\n})\r\n\r\nfunction WorkableIconExpandButton({\r\n\texpanded,\r\n\ttooltip,\r\n\t...props\r\n}) {\r\n\tconst classes = useStyles();\r\n\tlet _tooltip = tooltip;\r\n\tif (!_tooltip && !props.disabled) {\r\n\t\t_tooltip = expanded ? Tr('collapse') : Tr('expand');\r\n\t}\r\n\r\n\treturn \r\n\r\n}\r\n\r\nWorkableIconExpandButton.propTypes = {\r\n\texpanded: PropTypes.bool,\r\n\tworking: PropTypes.bool,\r\n\tdisabled: PropTypes.bool,\r\n\ttooltip: PropTypes.string,\r\n\thideTooltip: PropTypes.bool,\r\n\tcolor: PropTypes.string,\r\n\tonClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconExpandButton;","import React, { useState, useEffect } from 'react'\r\nimport { withStyles, Typography, Collapse } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Checkbox from 'components/Checkbox';\r\nimport clsx from 'clsx';\r\nimport RawHTML from 'components/RawHTML';\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t},\r\n\tradioGroup: {\r\n\t\twidth: '100%',\r\n\t\tmargin: 0,\r\n\t},\r\n\trotate: {\r\n\t\ttransform: 'rotate(180deg)'\r\n\t},\r\n\tmargin: {\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t},\r\n\tfilteredItemRoot: {\r\n\t\tdisplay: 'flex',\r\n\t\twidth: '100%',\r\n\t\talignItems: 'center'\r\n\t}\r\n})\r\n\r\nfunction ListElement({\r\n\tclasses,\r\n\tclassName,\r\n\tformikProps,\r\n\titemValue,\r\n\tsearchKeys,\r\n\t multiple,\r\n\t handleSave\r\n}) {\r\n\r\n\tconst {\r\n\t\tidentity,\r\n\t\tpublicCode,\r\n\t\tname,\r\n\t\tchildren,\r\n\t\tshouldOpen = false,\r\n\t\t...otherItemValues\r\n\t} = itemValue;\r\n\r\n\tconst [boldLabel, setBoldLabel] = useState('')\r\n\tconst [open, setOpen] = useState(shouldOpen)\r\n\r\n\tuseEffect(() => {\r\n\t\tsetOpen(shouldOpen)\r\n\t}, [shouldOpen])\r\n\r\n\r\n\tconst handleArrowClick = () => {\r\n\t\tsetOpen(!open)\r\n\t}\r\n\r\n\tconst checkboxId = JSON.stringify({\r\n\t\tidentity,\r\n\t\tpublicCode,\r\n\t\tname,\r\n\t\t...otherItemValues\r\n\t})\r\n\r\n\tconst _label = `${publicCode} ${name}`;\r\n\r\n\tuseEffect(() => {\r\n\t\tlet label = _label;\r\n\t\tsearchKeys.forEach(key => {\r\n\t\t\tif (key === '') return;\r\n\t\t\tconst reg = new RegExp(`(${key})`, 'ig')\r\n\t\t\tlabel = label.replace(reg, `$1`);\r\n\t\t});\r\n\t\tsetBoldLabel(label)\r\n\t}, [searchKeys, _label])\r\n\r\n\tconst openRow = open;\r\n\r\n\tconst label = (\r\n\t\t\r\n\t\t\t{boldLabel}\r\n\t\t\r\n\t)\r\n\r\n\t// const checkbox = (id) => {\r\n\t// \tconst value = getObjectValue(id, formikProps.values, false);\r\n\t// \treturn (\r\n\t// \t\t\r\n\t// \t)\r\n\t// }\r\n\r\n\tconst renderChildren = () => {\r\n\t\treturn children.map((item, i) => {\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t)\r\n\t\t})\r\n\t}\r\n\r\n\t// if (isFiltered) {\r\n\t// \treturn (\r\n\t// \t\t<>\r\n\t// \t\t\t\r\n\t// \t\t\t\t{checkbox(checkboxId)}\r\n\t// \t\t\t\t{label}\r\n\t// \t\t\t
\r\n\t// \t\t\t{\r\n\t// \t\t\t\tchildren.length > 0 &&\r\n\t// \t\t\t\t\r\n\t// \t\t\t\t\t{renderChildren()}\r\n\t// \t\t\t\t
\r\n\t// \t\t\t}\r\n\t// \t\t>\r\n\t// \t)\r\n\t// }\r\n\r\n\tconst onChange = (e) => {\r\n\t\tif(!multiple && e.target.checked)\r\n\t\t\thandleSave();\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\t\t{label}\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tchildren.length > 0 &&\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t/>\r\n\r\n\t\t\t{\r\n\t\t\t\tchildren.length > 0 &&\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{openRow ? renderChildren() : ''}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t}\r\n\t\t>\r\n\r\n\t)\r\n}\r\n\r\nListElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ListElement);","export default (items, search, size) => {\r\n\tif (search.trim().length === 0) return [items, [], false];\r\n\tconst s = search.toLowerCase().replace(/,/g, ' ').replace(/ +/g, ' ');\r\n\tlet searchKeys = s.split(' ');\r\n\tlet counter = 0;\r\n\tlet fastEnd = false;\r\n\r\n\tconst match = (x) => {\r\n\t\tconst publicCode = x.publicCode.toLowerCase();\r\n\t\tconst name = x.name.toLowerCase().replace(/,/g, ' ').replace(/ +/g, ' ');\r\n\t\tconst fullName = publicCode + ' ' + name;\r\n\r\n\t\treturn searchKeys.every(k => k === '' || fullName.includes(k))\r\n\t}\r\n\r\n\tconst find = (object) => {\r\n\t\tlet filteredChildrens = [];\r\n\t\tif (object.children && object.children.length > 0) {\r\n\t\t\tobject.children.forEach((element) => {\r\n\t\t\t\tif (counter > size) {\r\n\t\t\t\t\tfastEnd = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tconst findEl = find(element);\r\n\t\t\t\tif (findEl !== null) {\r\n\t\t\t\t\tfilteredChildrens.push(findEl);\r\n\t\t\t\t\tcounter += 1;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tif (filteredChildrens.length > 0) {\r\n\t\t\tcounter += 1;\r\n\t\t\treturn {\r\n\t\t\t\t...object,\r\n\t\t\t\tshouldOpen: true,\r\n\t\t\t\tchildren: filteredChildrens\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (counter > size) {\r\n\t\t\tfastEnd = true\r\n\t\t\treturn null\r\n\t\t}\r\n\t\tconst isMatch = match(object);\r\n\t\tif (isMatch) return object;\r\n\r\n\t\treturn null;\r\n\t}\r\n\tconst newItems = items.reduce((prev, curr) => {\r\n\t\tconst el = find(curr);\r\n\t\tif (el === null) return prev;\r\n\t\treturn [\r\n\t\t\t...prev,\r\n\t\t\tel,\r\n\t\t]\r\n\t}, [])\r\n\treturn [newItems, searchKeys, fastEnd]\r\n}","import React, { useRef, useEffect, useState } from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport InfiniteScroller from 'react-infinite-scroller'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\theight: '45vh',\r\n\t\toverflow: 'auto',\r\n\t\tpaddingRight: theme.scrollSize,\r\n\t}\r\n})\r\n\r\n\r\nfunction RadioListInfiniteScroller({\r\n\tclasses,\r\n\tchildren,\r\n\tsize,\r\n\tmaxSize,\r\n\tpage,\r\n\tloadMore,\r\n}) {\r\n\tconst containerRef = useRef();\r\n\tconst [hasMore, setHasMore] = useState(false)\r\n\tconst threshold = 200;\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!hasMore) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tsetHasMore(maxSize > size);\r\n\t\t\t}, 500)\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [size])\r\n\r\n\tconst load = (page) => {\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (hasMore) {\r\n\t\t\t\tsetHasMore(false);\r\n\t\t\t\tloadMore();\r\n\t\t\t}\r\n\t\t}, 500)\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t containerRef.current}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t
\r\n\t)\r\n}\r\n\r\nRadioListInfiniteScroller.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(RadioListInfiniteScroller);","export default (items) => {\r\n\r\n\tconst getSize = (list) => {\r\n\t\treturn list.length + list.reduce((count, item) => {\r\n\t\t\treturn count + getSize(item.children);\r\n\t\t}, 0);\r\n\t}\r\n\r\n\treturn !items ? 0 : getSize(items);\r\n}","import React, { useState, useEffect } from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n// import RadioGroup from 'components/RadioGroup';\r\nimport ListElement from './ListElement';\r\nimport filterItems from './libs/filterItems';\r\nimport RadioListInfiniteScroller from './RadioListInfiniteScroller';\r\nimport countItemsFunc from './libs/countItems'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\twidth: '100%'\r\n\t},\r\n})\r\n\r\nlet typingStopTimeout = null;\r\n\r\nfunction RadioList({\r\n\tclasses,\r\n\tformikProps,\r\n\titems = [],\r\n\tcountItems,\r\n multiple,\r\n handleSave\r\n}) {\r\n\tconst PAGE_SIZE = 30;\r\n\tconst [page, setPage] = useState(1)\r\n\tconst size = page * PAGE_SIZE;\r\n\tconst [elementLength, setElementLength] = useState(size);\r\n\tconst [filtered, setFiltered] = useState(items)\r\n\tconst [searchKeys, setSearchKeys] = useState([])\r\n\tconst [searchChanged, setSearchChanged] = useState(null)\r\n\tconst [itemsCount, setItemsCount] = useState(countItems)\r\n\r\n\tconst search = formikProps.values.search;\r\n\r\n\tuseEffect(() => {\r\n\t\tclearTimeout(typingStopTimeout);\r\n\t\ttypingStopTimeout = setTimeout(() => {\r\n\t\t\tconst [newItems, newSearchKeys, fastEnd] = filterItems(items, search, size)\r\n\t\t\tsetFiltered(newItems);\r\n\t\t\tsetSearchKeys(newSearchKeys)\r\n\t\t\tif (fastEnd) {\r\n\t\t\t\tif (countItems !== itemsCount) {\r\n\t\t\t\t\tsetItemsCount(countItems)\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tsetItemsCount(countItemsFunc(newItems))\r\n\t\t\t}\r\n\t\t\tif (JSON.stringify(newSearchKeys) !== JSON.stringify(searchKeys)) {\r\n\t\t\t\tsetPage(1);\r\n\t\t\t\tsetElementLength(PAGE_SIZE);\r\n\t\t\t\tsetSearchChanged(Math.random())\r\n\t\t\t} else {\r\n\t\t\t\tsetElementLength(size);\r\n\t\t\t}\r\n\t\t}, 500);\r\n\t\treturn () => {\r\n\t\t\tclearTimeout(typingStopTimeout);\r\n\t\t}\r\n\t// eslint-disable-next-line\r\n\t}, [search, items, size])\r\n\r\n\tconst getItems = () => {\r\n\t\treturn filtered;\r\n\t}\r\n\r\n\tconst loadFunc = () => {\r\n\t\tsetPage((p) => p += 1);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{getItems().map((item, i) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t})}\r\n\t\t\r\n\t)\r\n}\r\n\r\n/* \r\n\t\r\n */\r\n\r\nRadioList.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(RadioList);","import React from 'react'\r\nimport {CircularProgress, makeStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Button from \"../Button\";\r\nimport clsx from \"clsx\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n progress: {\r\n marginLeft: theme.spacing()\r\n },\r\n contained: {\r\n color: theme.palette.text.button,\r\n },\r\n text: {\r\n color: theme.palette.primary.main,\r\n }\r\n}))\r\n\r\nfunction WorkableButton(\r\n {\r\n working,\r\n children,\r\n variant = 'contained',\r\n onClick,\r\n ...props\r\n }) {\r\n const classes = useStyles();\r\n return (\r\n \r\n )\r\n}\r\n\r\nWorkableButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.elementType]),\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func,\r\n variant: PropTypes.oneOf([ 'text', 'outlined', 'contained']),\r\n}\r\n\r\nexport default WorkableButton;","import React from 'react'\r\nimport {Grid, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport WorkableButton from \"../../button/WorkableButton\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n item: {\r\n minWidth: theme.components.popup.buttons.width,\r\n '&:nth-child(2)': {\r\n marginRight: theme.spacing(1)\r\n },\r\n '&:nth-child(3)': {\r\n marginLeft: theme.spacing(1)\r\n }\r\n }\r\n})\r\n\r\nfunction DoubleButton(\r\n {\r\n className,\r\n classes,\r\n labelFirst,\r\n labelSecond,\r\n onClickFirst,\r\n onClickSecond,\r\n buttonTypeFirst,\r\n buttonTypeSecond,\r\n disabledFirst,\r\n disabledSecond,\r\n workingFirst,\r\n workingSecond,\r\n justify,\r\n before,\r\n after,\r\n }) {\r\n return (\r\n \r\n {before}\r\n \r\n \r\n {labelFirst}\r\n \r\n \r\n \r\n \r\n {labelSecond}\r\n \r\n \r\n {after}\r\n \r\n )\r\n}\r\n\r\nDoubleButton.propTypes = {\r\n className: PropTypes.string,\r\n classes: PropTypes.any,\r\n labelFirst: PropTypes.string,\r\n labelSecond: PropTypes.string,\r\n onClickFirst: PropTypes.func,\r\n onClickSecond: PropTypes.func,\r\n buttonTypeFirst: PropTypes.string,\r\n buttonTypeSecond: PropTypes.string,\r\n disabledFirst: PropTypes.bool,\r\n disabledSecond: PropTypes.bool,\r\n workingFirst: PropTypes.bool,\r\n workingSecond: PropTypes.bool,\r\n}\r\n\r\nDoubleButton.defaultProps = {}\r\n\r\nexport default withStyles(style)(DoubleButton);","import createId from 'libs/createId';\r\nimport { useState } from 'react';\r\n\r\nexport default () => {\r\n\tconst [id] = useState(createId())\r\n\treturn id;\r\n}","export default () => {\r\n\treturn '_'+Math.random().toString(36).substring(2);\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET} from 'libs/RestRequest';\r\n\r\nconst get = async () => {\r\n try {\r\n return await RestRequestGET(Endpoints.CPV_LIST);\r\n } catch (error) {\r\n }\r\n};\r\n\r\n\r\nexport default {\r\n get\r\n}","import React, {useEffect, useState} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport GridBlock from 'components/GridBlock';\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport RadioList from './RadioList';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport * as Yup from 'yup'\r\n// import ValidationShema from 'constants/ValidationShema'\r\nimport {connect} from 'react-redux'\r\nimport Loading from 'components/Loading';\r\nimport useId from 'hooks/useId';\r\nimport countItems from './libs/countItems';\r\nimport CpvService from \"../../../services/CpvService\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n loading: {\r\n height: 100,\r\n }\r\n})\r\n\r\nfunction SelectForm(\r\n {\r\n classes,\r\n onSubmit,\r\n onCancel,\r\n formSubmit,\r\n initCPVValues,\r\n multiple\r\n }) {\r\n const formId = useId();\r\n const [cpvList, setCpvList] = useState(null)\r\n const countCpvList = countItems(cpvList)\r\n\r\n const handleSubmit = ({search, ...values}) => {\r\n onSubmit(values)\r\n }\r\n\r\n const handleSave = () => {\r\n formSubmit[formId]();\r\n }\r\n\r\n\r\n useEffect(() => {\r\n CpvService.get().then((resp) => setCpvList(resp));\r\n }, []);\r\n\r\n return (\r\n <>\r\n {!cpvList ?\r\n \r\n :\r\n \r\n }\r\n >\r\n )\r\n}\r\n\r\nSelectForm.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(withStyles(style)(SelectForm));\r\n","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport SelectForm from './SelectForm';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction SelectCPV({\r\n\tclasses,\r\n\topen,\r\n\tonConfirm,\r\n\tonCancel,\r\n\tinitValues,\r\n\tlabel=Tr('cpv_code'),\r\n\tmultiple = true\r\n}) {\r\n\tconst createInitCPV = () => initValues.reduce((obj, value) => {\r\n\t\tconst {\r\n\t\t\tidentity,\r\n\t\t\tpublicCode,\r\n\t\t\tname,\r\n\t\t\thierarchicalId,\r\n\t\t} = value;\r\n\t\treturn {\r\n\t\t\t...obj,\r\n\t\t\t[JSON.stringify({\r\n\t\t\t\tidentity,\r\n\t\t\t\tpublicCode,\r\n\t\t\t\tname,\r\n\t\t\t\thierarchicalId,\r\n\t\t\t})]: true,\r\n\t\t}\r\n\t}, {})\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nSelectCPV.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(SelectCPV);","import React from 'react'\r\nimport {Box, Chip as ChipUI, Tooltip, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport Tr from 'translations/Translations';\r\n\r\n\r\nfunction Chip({\r\n\tlabel,\r\n\tvalue,\r\n\tonDelete,\r\n\tclassName,\r\n\tlabelClassName,\r\n\tonClick,\r\n\ttooltip,\r\n\tdisabled = false\r\n}) {\r\n\r\n\tconst getLabelBody = () => {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{label && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{label}:\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t>\r\n\t\t\t\t)}\r\n\t\t\t\t{value}\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\tconst getLabel = () => {\r\n\t\tif (!tooltip) {\r\n\t\t\treturn getLabelBody();\r\n\t\t}\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{getLabelBody()}\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\tonDelete={onDelete}\r\n\t\t\tonClick={onClick}\r\n\t\t\tdisabled={disabled}\r\n\t\t/>\r\n\t)\r\n}\r\n\r\nChip.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nChip.defaultProps = {\r\n}\r\n\r\nexport default Chip;","import getObjectValue from './getObjectValue';\r\nimport _ from 'lodash';\r\n\r\nexport default (formikProps, id, index) => {\r\n\r\n\tlet values;\r\n\tif (id === undefined) {\r\n\t\tvalues = formikProps.values\r\n\t} else {\r\n\t\tvalues = getObjectValue(id, formikProps.values)\r\n\t}\r\n\tvalues = _.cloneDeep(values);\r\n\tvalues.splice(index, 1)\r\n\tformikProps.setFieldValue(id, values)\r\n\r\n\tlet touched = getObjectValue(id, formikProps.touched)\r\n\r\n\tif (typeof touched === 'boolean') {\r\n\t\tformikProps.setFieldTouched(id, [])\r\n\t} else if (touched) {\r\n\t\tlet newTouched = [...touched]\r\n\t\tnewTouched.splice(index, 1)\r\n\t\tformikProps.setFieldTouched(id, newTouched)\r\n\t}\r\n}","import React, { useState } from 'react'\r\nimport { withStyles, FormLabel, FormHelperText } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport SelectCPV from 'components/popup/selectCpv/SelectCPV';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport Chip from './Chip';\r\nimport removeFormikListElement from 'libs/removeFormikListElement';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tmarginTop: theme.spacing()\r\n\t},\r\n\tchipLabel: {\r\n\t\tmaxWidth: 250,\r\n\t\toverflow: 'hidden',\r\n\t\ttextOverflow: 'ellipsis',\r\n\t},\r\n\tbuttonSelect: {\r\n\t\tmarginRight: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction CPVInput({\r\n\tclasses,\r\n\tformikProps,\r\n\tid,\r\n\trequired,\r\n\tdisabled,\r\n\tlabel=Tr('cpv_code'),\r\n\tskipCheckTouched\r\n}) {\r\n\r\n\tconst [openSelectCPV, setOpenSelectCPV] = useState(false)\r\n\r\n\tconst handleClick = () => {\r\n\t\tsetOpenSelectCPV(true)\r\n\t\tformikProps.setFieldTouched(id, true)\r\n\t}\r\n\r\n\tconst handleClosePoup = () => {\r\n\t\tsetOpenSelectCPV(false)\r\n\t\tformikProps.setFieldTouched(id, true)\r\n\t}\r\n\r\n\tconst handleConfirm = (values) => {\r\n\t\tconst elements = Object.keys(values).reduce((prevValue, currValue) => {\r\n\t\t\tif (!values[currValue]) return prevValue;\r\n\t\t\treturn [\r\n\t\t\t\t...prevValue,\r\n\t\t\t\tJSON.parse(currValue)\r\n\t\t\t]\r\n\t\t}, [])\r\n\t\thandleClosePoup();\r\n\t\tformikProps.setFieldValue(id, elements)\r\n\t}\r\n\r\n\tconst elements = getObjectValue(id, formikProps.values, [])\r\n\tconst errorValue = getObjectValue(id, formikProps.errors, '')\r\n\tconst touched = getObjectValue(id, formikProps.touched, !!skipCheckTouched)\r\n\tconst editable = getObjectValue('_editable', formikProps.values, true);\r\n\tconst errorLabel = touched && errorValue ? errorValue : ' '\r\n\r\n\r\n\tconst handleDelete = (index) => {\r\n\t\tremoveFormikListElement(formikProps, id, index)\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{label} {required && '*'}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{editable && !disabled && }\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t{elements.map((item, i) => {\r\n\t\t\t\t\t\treturn handleDelete(i) : undefined}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t})}\r\n\t\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t{errorLabel}\r\n\t\t
\r\n\t)\r\n}\r\n\r\nCPVInput.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(CPVInput);","import React from 'react'\r\nimport { withStyles, Tooltip } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport HelpIcon from '@material-ui/icons/Help';\r\nimport clsx from \"clsx\";\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\ticonColor: {\r\n\t\tcolor: theme.palette.action.active\r\n\t},\r\n\ttooltipWidth: {\r\n\t\tmaxWidth: 750\r\n\t}\r\n})\r\n\r\nfunction HelpTooltip({\r\n\tclassName,\r\n\tclasses,\r\n\ttext,\r\n\tdangerouslySetTextHTML\r\n}) {\r\n\treturn (\r\n\t\t : text}>\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nHelpTooltip.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(HelpTooltip);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport HelpTooltip from 'components/HelpTooltip';\r\nimport GridBlock from 'components/GridBlock';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*:first-child': {\r\n\t\t\twidth: `calc(100% - ${theme.spacing(3)}px)`\r\n\t\t}\r\n\t}\r\n})\r\n\r\nfunction HelpComponent({\r\n\tclasses,\r\n\tchildren,\r\n\ttext,\r\n\tdangerouslySetTextHTML\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nHelpComponent.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(HelpComponent);","import Tr from 'translations/Translations';\r\n\r\n\r\n\r\nexport const VALUES = {\r\n\tALL: '',\r\n\tPREPARING: 'PREPARING',\r\n\tMODIFICATION: 'MODIFICATION',\r\n\tOFFER_COLLECTION: 'OFFER_COLLECTION',\r\n\tOFFER_DECRYPTION: 'OFFER_DECRYPTION',\r\n\tOFFER_EVALUATION: 'OFFER_EVALUATION',\r\n\tFINISHING: 'FINISHING',\r\n\tCANCELLED: 'CANCELLED',\r\n\tANNULLED: 'ANNULLED',\r\n\tFINISHED: 'FINISHED'\r\n}\r\n\r\nexport const LABELS = {\r\n\t[VALUES.ALL]: Tr('procedure_status_0'),\r\n\t[VALUES.PREPARING]: Tr('procedure_status_1'),\r\n\t[VALUES.OFFER_COLLECTION]: Tr('procedure_status_2'),\r\n\t[VALUES.MODIFICATION]: Tr('procedure_status_3'),\r\n\t[VALUES.OFFER_DECRYPTION]: Tr('procedure_status_4_0'),\r\n\t[VALUES.OFFER_EVALUATION]: Tr('procedure_status_4'),\r\n\t[VALUES.FINISHING]: Tr('procedure_status_5'),\r\n\t[VALUES.FINISHED]: Tr('procedure_status_7'),\r\n\t[VALUES.ANNULLED]: Tr('procedure_status_8'),\r\n\t[VALUES.CANCELLED]: Tr('procedure_status_6'),\r\n}\r\n\r\nconst createItem = (e) => ({\r\n\tlabel: LABELS[e],\r\n\tvalue: e,\r\n})\r\n\r\nexport default Object.values(VALUES).map( x => createItem(x))\r\n","const PZPType = {\r\n PZP_OLD: \"PZP_old\",\r\n PZP_2021: \"PZP_2021\"\r\n};\r\n\r\nexport default PZPType;","import reduxStore from 'redux/store';\r\nimport {VALUES as demandStatus} from 'constants/ProcedureStatus';\r\nimport {ProcedureType_PZP_2021} from '../constants/ProcedureType';\r\nimport PZPType from '../constants/PZPType';\r\nimport {isEuropeProcedure as isEuProc, isNationalProcedure as isNatProc, isNonpublicProcedure as isNonpubProc} from 'constants/ProcedureType'\r\n\r\nexport const wasEverPublished = () => {\r\n const {resources} = reduxStore.getState();\r\n const result = resources.demandHeader ? demandStatus.PREPARING !== resources.demandHeader.status : undefined;\r\n return result;\r\n}\r\n\r\nexport const isDemandNew = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? resources.demandHeader.status === null : false;\r\n}\r\n\r\nexport const isDemandPreparing = () => {\r\n const {resources} = reduxStore.getState();\r\n if (resources.demandHeader) {\r\n return !resources.demandHeader.status || demandStatus.PREPARING === resources.demandHeader.status\r\n } else {\r\n if (resources.demand) {\r\n return resources.demand.identity === -1 ? true : undefined;\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n}\r\n\r\nexport const previewNoticeDisabled = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ?\r\n resources.demandHeader.demandRealizationType === 'rfq_no_invitation' || resources.demandHeader.demandRealizationType === 'public_exclusion_closed'\r\n : undefined;\r\n}\r\n\r\nexport const isDemandModification = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? demandStatus.MODIFICATION === resources.demandHeader.status : undefined;\r\n}\r\nexport const isDemandOfferCollection = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? demandStatus.OFFER_COLLECTION === resources.demandHeader.status : undefined;\r\n}\r\n\r\nexport const isDemandOfferDecryption = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? demandStatus.OFFER_DECRYPTION === resources.demandHeader.status : undefined;\r\n}\r\n\r\nexport const isDemandOfferEvaluation = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? demandStatus.OFFER_EVALUATION === resources.demandHeader.status : undefined;\r\n}\r\n\r\nexport const isDemandFinishing = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? demandStatus.FINISHING === resources.demandHeader.status : undefined;\r\n}\r\n\r\nexport const isDemandFinished = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? demandStatus.FINISHED === resources.demandHeader.status : undefined;\r\n}\r\n\r\nexport const getDemandPZPType = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? (ProcedureType_PZP_2021.includes(resources.demandHeader.procedureType) ? PZPType.PZP_2021 : PZPType.PZP_OLD) : undefined;\r\n}\r\n\r\nexport const isNonpublicProcedure = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? isNonpubProc(resources.demandHeader.procedureType) : undefined;\r\n}\r\nexport const isNationalProcedure = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? isNatProc(resources.demandHeader.procedureType) : undefined;\r\n}\r\nexport const isEuropeProcedure = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? isEuProc(resources.demandHeader.procedureType) : undefined;\r\n}","export default (items, search) => {\r\n if (search.trim().length === 0) return items;\r\n\r\n const s = search.toLowerCase().replace(/,/g, ' ').replace(/ +/g, ' ');\r\n let searchKeys = s.split(' ');\r\n\r\n const match = (x) => {\r\n const name = x.label.toLowerCase().replace(/,/g, ' ').replace(/ +/g, ' ');\r\n return searchKeys.every(k => k === '' || name.includes(k))\r\n }\r\n\r\n return items.filter(x => match(x));\r\n}","import React, {useCallback, useEffect, useState} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport * as Yup from 'yup'\r\nimport {connect} from 'react-redux'\r\nimport useId from 'hooks/useId';\r\nimport RadioGroup from \"../../RadioGroup\";\r\nimport Loading from \"../../Loading\";\r\nimport TextInput from \"../../TextInput\";\r\nimport _ from 'lodash';\r\nimport filterItems from \"libs/filterItems\";\r\nimport Typography from \"../../Typography\";\r\nimport getObjectValue from \"../../../libs/getObjectValue\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n height: '45vh',\r\n overflow: 'auto',\r\n paddingRight: theme.scrollSize,\r\n paddingLeft: theme.spacing(2),\r\n marginRight: -1 * theme.scrollSize,\r\n marginLeft: -1 * theme.spacing(2),\r\n marginBottom: theme.spacing(2),\r\n },\r\n buttonsWrapper: {},\r\n loading: {\r\n height: 100,\r\n }\r\n})\r\n\r\nfunction SelectOrganizationForm(\r\n {\r\n classes,\r\n onSubmit,\r\n onCancel,\r\n availableOrganizations,\r\n formSubmit,\r\n initOrganization,\r\n }) {\r\n const formId = useId();\r\n\r\n const [items, setItems] = useState();\r\n const [allItems, setAllItems] = useState();\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"keydown\", escFunction, false);\r\n\r\n const all = availableOrganizations ? availableOrganizations.map((x => createItem(x))) : [];\r\n setItems(all);\r\n setAllItems(all);\r\n\r\n return () => {\r\n document.removeEventListener(\"keydown\", escFunction, false);\r\n };\r\n\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n const createItem = (organization) => ({\r\n label: organization.name,\r\n value: organization.orgId\r\n })\r\n\r\n const handleSubmit = (values) => {\r\n const {orgId} = values\r\n const org = availableOrganizations.find((x => x.orgId === orgId))\r\n onSubmit(org)\r\n }\r\n\r\n const handleSave = () => {\r\n formSubmit[formId]();\r\n }\r\n\r\n const getInitvalues = () => {\r\n let initOrgId;\r\n if (initOrganization) {\r\n initOrgId = initOrganization.orgId;\r\n } else {\r\n initOrgId = availableOrganizations.length > 0 ? availableOrganizations[0].orgId : null;\r\n }\r\n return {\r\n search: '',\r\n orgId: initOrgId\r\n }\r\n }\r\n\r\n const changeSearch = _.debounce((event) => {\r\n setItems(filterItems(allItems, event));\r\n }, 700);\r\n\r\n const escFunction = useCallback((keyEvent) => {\r\n const code = (keyEvent.charCode || keyEvent.keyCode);\r\n if (code === 13) {\r\n keyEvent.preventDefault();\r\n } else if (code === 27) {\r\n onCancel()\r\n }\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n if (!availableOrganizations || !items) return \r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nSelectOrganizationForm.propTypes = {\r\n availableOrganizations: PropTypes.array.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(withStyles(style)(SelectOrganizationForm));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport SelectOrganizationForm from \"./SelectOrganizationForm\";\r\n\r\nfunction SelectOrganization(\r\n {\r\n open,\r\n onConfirm,\r\n onCancel,\r\n initOrganization,\r\n availableOrganizations,\r\n title = 'organizational_unit'\r\n }) {\r\n\r\n return ()\r\n}\r\n\r\nSelectOrganization.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default SelectOrganization;","import React, {useState} from 'react'\r\nimport {FormHelperText, FormLabel, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport SelectOrganization from \"./popup/selectOrganization/SelectOrganization\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n marginTop: theme.spacing()\r\n },\r\n chipLabel: {\r\n maxWidth: 250,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n buttonSelect: {\r\n marginRight: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction OrganizationInput(\r\n {\r\n classes,\r\n formikProps,\r\n id,\r\n required,\r\n availableOrganizations,\r\n disabled\r\n }) {\r\n\r\n const [openSelectOrganization, setOpenSelectOrganization] = useState(false)\r\n const initOrganization = getObjectValue(id, formikProps.values, null);\r\n const handleClick = () => {\r\n setOpenSelectOrganization(true)\r\n formikProps.setFieldTouched(id, true)\r\n }\r\n\r\n const handleClosePoup = () => {\r\n setOpenSelectOrganization(false)\r\n formikProps.setFieldTouched(id, true)\r\n }\r\n\r\n const handleConfirm = (values) => {\r\n handleClosePoup();\r\n formikProps.setFieldValue(id, values)\r\n }\r\n\r\n const element = getObjectValue(id, formikProps.values, {})\r\n const errorValue = getObjectValue(id, formikProps.errors, '')\r\n const touched = getObjectValue(id, formikProps.touched, false)\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const errorLabel = touched && errorValue ? errorValue : ''\r\n\r\n return (\r\n <>\r\n \r\n {Tr('organizational_unit')} {required && '*'}\r\n \r\n \r\n {(editable && !disabled) && }\r\n\r\n \r\n {element.name}\r\n \r\n \r\n \r\n {errorLabel}\r\n >\r\n )\r\n}\r\n\r\nOrganizationInput.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(OrganizationInput);","import React from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tbackgroundColor: theme.palette.background.greyBackground,\r\n\t\twidth: '100%',\r\n\t\theight: 100,\r\n\t\tborder: `${theme.palette.common.document} dashed 2px`,\r\n\t\tborderRadius: theme.shape.borderRadius,\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\t\talignItems: 'center',\r\n\t\tjustifyContent: 'center'\r\n\t}\r\n})\r\n\r\nfunction GreyBox({\r\n\tclasses,\r\n\tchildren,\r\n}) {\r\n\tconst childrenComponent = () => {\r\n\t\tif(typeof children === 'string'){\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t{children}\r\n\t\t\t\t\r\n\t\t\t)\r\n\t\t}\r\n\t\treturn children;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{childrenComponent()}\r\n\t\t
\r\n\t)\r\n}\r\n\r\nGreyBox.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nGreyBox.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(GreyBox);","import React, {memo, useCallback} from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport {useDropzone} from 'react-dropzone';\r\nimport GreyBox from './GreyBox';\r\nimport GridBlock from './GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport clsx from 'clsx';\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport WorkableButton from \"./button/WorkableButton\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n cursor: 'pointer'\r\n },\r\n defaultChildrenGrid: {\r\n '&>*:not(:first-child)': {\r\n marginLeft: theme.spacing(2),\r\n }\r\n }\r\n}))\r\n\r\nfunction Dropzone(\r\n {\r\n children,\r\n formikProps,\r\n id,\r\n multiple,\r\n submitOnChange,\r\n className,\r\n onChange = () => {\r\n },\r\n disabled,\r\n working,\r\n acceptExtensionList\r\n }) {\r\n const classes = useStyles();\r\n const isError = formikProps ? (!!formikProps.errors[id] && !!formikProps.touched[id]) : false;\r\n const helperText = formikProps ? (formikProps.errors[id] || ' ') : '';\r\n\r\n const onDrop = useCallback(acceptedFiles => {\r\n const files = acceptedFiles;\r\n onChange(files);\r\n\r\n if (formikProps) {\r\n formikProps.setFieldValue(id, files)\r\n if (submitOnChange) {\r\n formikProps.submitForm();\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [onChange])\r\n\r\n const generateExtension = () => {\r\n if (acceptExtensionList === undefined) return ''\r\n return acceptExtensionList.map(x => \".\" + x).join(\", \");\r\n }\r\n\r\n const {getRootProps, getInputProps} = useDropzone({onDrop, multiple, accept: generateExtension()})\r\n\r\n const setTouched = () => {\r\n if (formikProps && !formikProps.touched[id]) {\r\n formikProps.setFieldTouched(id, true)\r\n }\r\n }\r\n\r\n const {\r\n onClick,\r\n ...rootProps\r\n } = getRootProps({\r\n onDrop: setTouched,\r\n onBlur: setTouched,\r\n });\r\n\r\n const childrenComponent = () => {\r\n if (children === undefined) {\r\n return (\r\n \r\n \r\n {Tr('dropzone_text_1')}\r\n \r\n \r\n {Tr(working ? 'file_working' : 'select_file')}\r\n \r\n \r\n {Tr('dropzone_text_2')}\r\n \r\n \r\n )\r\n }\r\n if (typeof children === 'string') {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n }\r\n return children;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {childrenComponent()}\r\n {isError &&\r\n \r\n {helperText}\r\n \r\n }\r\n \r\n
\r\n )\r\n}\r\n\r\nDropzone.propTypes = {\r\n classes: PropTypes.any,\r\n formikProps: PropTypes.object,\r\n id: PropTypes.string,\r\n multiple: PropTypes.bool,\r\n}\r\n\r\nDropzone.defaultProps = {\r\n multiple: false\r\n}\r\n\r\nexport default memo(Dropzone, (prevProps, nextProps) => {\r\n if (prevProps.id !== nextProps.id) return false;\r\n if (prevProps.working !== nextProps.working) return false;\r\n const id = nextProps.id;\r\n if (prevProps.formikProps && nextProps.formikProps) {\r\n if (prevProps.formikProps.values[id] !== nextProps.formikProps.values[id]) return false;\r\n if (prevProps.formikProps.errors[id] !== nextProps.formikProps.errors[id]) return false;\r\n if (prevProps.formikProps.touched[id] !== nextProps.formikProps.touched[id]) return false;\r\n }\r\n if (JSON.stringify(prevProps.classes) !== JSON.stringify(nextProps.classes)) return false;\r\n if (prevProps.acceptExtensionList !== nextProps.acceptExtensionList) return false;\r\n if (!!prevProps.disabled !== !!nextProps.disabled) return false;\r\n return true;\r\n})\r\n","import Endpoints from 'constants/Endpoints';\r\nimport RestRequest, {RestRequestGET} from 'libs/RestRequest';\r\nimport reduxStore from 'redux/store'\r\nimport {clearResource, setResource} from \"../redux/actions\";\r\n\r\nconst VALID_EXTENSIONS_LIST_RESOURCE_ID = \"validExtensionsList\"\r\n\r\nconst upload = async (\r\n file,\r\n onUploadChange = () => {\r\n },\r\n url,\r\n encryptRoundId) => {\r\n\r\n if (!url) {\r\n let auth = JSON.parse(localStorage.getItem(\"authorize\"));\r\n url = Endpoints.UPLOAD(auth.csrf, encryptRoundId);\r\n }\r\n\r\n const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n try {\r\n return await RestRequest({\r\n method: 'post',\r\n data: formData,\r\n url: url,\r\n headers: {\r\n 'Content-Type': 'multipart/form-data',\r\n },\r\n onUploadProgress: onUploadChange\r\n })\r\n } catch (error) {\r\n throw error.data\r\n }\r\n\r\n}\r\n\r\nconst getValidExtensions = async () => {\r\n try {\r\n const extensions = await RestRequestGET(Endpoints.extensions());\r\n reduxStore.dispatch(setResource(VALID_EXTENSIONS_LIST_RESOURCE_ID, extensions))\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n}\r\nconst clearValidExtensionsResource = () => {\r\n reduxStore.dispatch(clearResource(VALID_EXTENSIONS_LIST_RESOURCE_ID));\r\n}\r\n\r\nexport default {\r\n upload,\r\n getValidExtensions,\r\n clearValidExtensionsResource,\r\n VALID_EXTENSIONS_LIST_RESOURCE_ID\r\n};","import React from 'react'\r\nimport { Grid, LinearProgress, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles } from '@material-ui/styles';\r\n// import Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\tflexShrink: 0,\r\n\t\t}\r\n\t},\r\n\tlabelItem: {\r\n\t\tmarginRight: theme.spacing(2)\r\n\t},\r\n\tprogressItem: {\r\n\t\tflexGrow: 1\r\n\t},\r\n\tprogressGrid: {\r\n\t\theight: '100%',\r\n\t\tjustifyContent: 'center',\r\n\t}\r\n})\r\n\r\nfunction ProgressBar({\r\n\tclasses,\r\n\tvalue,\r\n\tmax\r\n}) {\r\n\tconst progress = parseInt((value/max) * 100)\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{/* {Tr('completed')} {progress}% ({value}/{max} {Tr('fields')}) */}\r\n\t\t\t\t\t{progress}%\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nProgressBar.propTypes = {\r\n\tvalue: PropTypes.number.isRequired,\r\n\tmax: PropTypes.number.isRequired,\r\n}\r\n\r\nProgressBar.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(ProgressBar);\r\n","import React from 'react'\r\nimport {Grid, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Button from 'components/Button';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n item: {\r\n width: theme.components.popup.buttons.width,\r\n '&:nth-child(2)': {\r\n marginRight: theme.spacing(1)\r\n },\r\n '&:nth-child(3)': {\r\n marginLeft: theme.spacing(1)\r\n }\r\n }\r\n})\r\n\r\nfunction SingleButton(\r\n {\r\n className,\r\n classes,\r\n label,\r\n onClick,\r\n buttonType,\r\n disabled,\r\n justify=\"flex-end\",\r\n variant,\r\n before,\r\n after,\r\n }) {\r\n return (\r\n \r\n {before}\r\n \r\n \r\n \r\n {after}\r\n \r\n )\r\n}\r\n\r\nSingleButton.propTypes = {\r\n className: PropTypes.string,\r\n classes: PropTypes.any,\r\n variant: PropTypes.oneOf([ 'text', 'outlined', 'contained']),\r\n label: PropTypes.string,\r\n justify: PropTypes.string,\r\n onClick: PropTypes.func,\r\n disabled: PropTypes.bool\r\n}\r\n\r\nSingleButton.defaultProps = {}\r\n\r\nexport default withStyles(style)(SingleButton);","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\n\r\nconst DEMAND_STAGES_LIST = 'demandStagesList';\r\nconst DEMAND_STAGE_SECTIONS_LIST = 'demandStageSectionsList';\r\nconst DEMAND_CONTRACTOR_PASSWORD_POPUP = 'offerPasswordPopup';\r\nconst STAGE_CURRENT_ROUND = 'stageCurrentRound';\r\n\r\nconst openContractorPasswordPopup = (successCallback, errorCallback) => {\r\n reduxStore.dispatch(setResource(DEMAND_CONTRACTOR_PASSWORD_POPUP, {successCallback, errorCallback}));\r\n}\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n}\r\n\r\nconst getStages = async (demandId, contractorDepartmentId) => {\r\n try {\r\n const params = {contractorDepartmentId}\r\n\r\n const res = await RestRequestGET(Endpoints.DEMAND_OFFERS_CONTRACTOR_STAGES_LIST(demandId, contractorDepartmentId), {params});\r\n reduxStore.dispatch(setResource(DEMAND_STAGES_LIST, res));\r\n\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getStageSections = async (demandId, stageId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const res = await RestRequestGET(Endpoints.DEMAND_OFFERS_CONTRACTOR_STAGE_SECTIONS_LIST(demandId, stageId, supplierId), {params});\r\n const ob = res.reduce((prev, curr) => {\r\n prev[curr.section] = curr;\r\n return prev;\r\n }, {})\r\n reduxStore.dispatch(setResource(DEMAND_STAGE_SECTIONS_LIST, ob));\r\n } catch (error) {\r\n }\r\n}\r\nconst getStageTranslations = async (demandId, stageId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n return await RestRequestGET(Endpoints.DEMAND_OFFERS_CONTRACTOR_STAGE_TRANSLATIONS(demandId, stageId, supplierId), {params});\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getStageSection = async (demandId, stageId, section, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const res = await RestRequestGET(Endpoints.DEMAND_OFFERS_CONTRACTOR_STAGE_SECTION(demandId, stageId, section, supplierId), {params});\r\n const {resources} = reduxStore.getState();\r\n const list = resources[DEMAND_STAGE_SECTIONS_LIST];\r\n if(list) {\r\n const newList = {\r\n ...list,\r\n [res.section]: res\r\n }\r\n reduxStore.dispatch(setResource(DEMAND_STAGE_SECTIONS_LIST, newList));\r\n }\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getStageCurrentRound = async (demandId, stageId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.DEMAND_OFFERS_STAGE_CURRENT_ROUND(demandId, stageId));\r\n reduxStore.dispatch(setResource(STAGE_CURRENT_ROUND, res));\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getPasswordStatus = async (demandId, stageId) => {\r\n return await RestRequestGET(Endpoints.DEMAND_OFFERS_CONTRACTOR_STAGE_PASSWORD(demandId, stageId));\r\n}\r\n\r\nconst savePassword = async (demandId, stageId, password) => {\r\n return await RestRequestPOST(Endpoints.DEMAND_OFFERS_CONTRACTOR_STAGE_PASSWORD(demandId, stageId), {password});\r\n}\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.DEMAND_OFFERS_VALIDATE(id));\r\n}\r\n\r\nexport default {\r\n getStages,\r\n getStageSections,\r\n getStageTranslations,\r\n clearResources,\r\n getPasswordStatus,\r\n openContractorPasswordPopup,\r\n savePassword,\r\n getStageCurrentRound,\r\n getStageSection,\r\n validate,\r\n DEMAND_STAGES_LIST,\r\n DEMAND_STAGE_SECTIONS_LIST,\r\n DEMAND_CONTRACTOR_PASSWORD_POPUP,\r\n STAGE_CURRENT_ROUND\r\n}","import Tr from \"translations/Translations\";\r\n\r\nconst isResponseValid = (response, setError) => {\r\n if (response && response.success !== false) {\r\n return true;\r\n } else {\r\n let errorSet = false;\r\n if (response.errors) {\r\n if (Array.isArray(response.errors)) {\r\n if (response.errors.length > 0) {\r\n setError(response.errors[0])\r\n errorSet = true;\r\n }\r\n } else {\r\n for (const key in response.errors) {\r\n if (!response.errors.hasOwnProperty(key)) continue;\r\n setError(response.errors[key]);\r\n errorSet = true;\r\n break;\r\n }\r\n }\r\n }\r\n if (!errorSet)\r\n setError(Tr('unknown_error_message'));\r\n }\r\n return false;\r\n}\r\n\r\nexport default isResponseValid;","export const ContractorPasswordState = {\r\n REQUIRED_NEW_PASSWORD: \"REQUIRED_NEW_PASSWORD\",\r\n REQUIRED_EXISTING_PASSWORD: \"REQUIRED_EXISTING_PASSWORD\",\r\n HAS_PASSWORD_STORED: \"HAS_PASSWORD_STORED\"\r\n}\r\n","import React, {useEffect, useRef, useState} from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport ProgressBar from 'components/ProgressBar'\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport SingleButton from \"../components/SingleButton\";\r\nimport UploadService from \"services/UploadService\";\r\nimport DemandOffersService from \"../../../services/DemandOffersService\";\r\nimport isResponseValid from \"../../../libs/isResponseValid\";\r\nimport {ContractorPasswordState} from \"../../../constants/ContractorPasswordState\";\r\nimport {useParams} from \"react-router\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n item: {\r\n alignSelf: \"end\"\r\n }\r\n}))\r\n\r\nfunction UploadFilePopup(\r\n {\r\n downloadFiles,\r\n handleSubmit,\r\n onUpload,\r\n encryptRoundId\r\n }) {\r\n\r\n const errorTranslate = Tr('file_response')\r\n const setRefresh = useState(0)[1];\r\n const filesStatus = useRef();\r\n const uploadedFiles = useRef([]);\r\n const params = useParams();\r\n const classes = useStyle();\r\n const [dialogClosed, setDialogClosed] = useState(false);\r\n\r\n useEffect(() => {\r\n if (encryptRoundId) {\r\n DemandOffersService.getPasswordStatus(params.id, params.stageId)\r\n .then((resp) => {\r\n if (isResponseValid(resp, onError)) {\r\n if (resp.result.state === ContractorPasswordState.HAS_PASSWORD_STORED) {\r\n doUpload();\r\n } else {\r\n DemandOffersService.openContractorPasswordPopup(doUpload, onError)\r\n }\r\n } else {\r\n onError(resp)\r\n }\r\n })\r\n .catch(onError);\r\n } else {\r\n doUpload();\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const onError = (e) => {\r\n console.error(\"CheckPassword error\", e)\r\n handleSubmit({\r\n files: [],\r\n config: downloadFiles.config\r\n })\r\n }\r\n\r\n const doUpload = () => {\r\n filesStatus.current = downloadFiles.files.map((element) => ({\r\n loaded: 0,\r\n total: 1,\r\n name: element.name,\r\n uploadStatus: null,\r\n }));\r\n\r\n downloadFiles.files.forEach((element, index) => {\r\n UploadService.upload(element, handleUploadProgressChange(element, index), null, encryptRoundId)\r\n .then(res => {\r\n filesStatus.current[index].uploadStatus = res.uploadStatus;\r\n if (res.uploadStatus === 'OK') {\r\n uploadSuccess({...res, originalIndex: index});\r\n } else {\r\n setRefresh(st => st + 1);\r\n }\r\n })\r\n .catch((e) => {\r\n console.error(e)\r\n if (filesStatus.current[index]) {\r\n filesStatus.current[index].uploadStatus = 'ERROR';\r\n }\r\n setRefresh(st => st + 1)\r\n })\r\n });\r\n }\r\n\r\n const uploadSuccess = (fileData) => {\r\n uploadedFiles.current.push(fileData);\r\n if (onUpload)\r\n onUpload(fileData);\r\n setRefresh(st => st + 1);\r\n };\r\n\r\n\r\n const handleUploadProgressChange = (element, index) => (e) => {\r\n filesStatus.current[index] = {\r\n loaded: e.loaded,\r\n total: e.total,\r\n name: element.name,\r\n uploadStatus: e.loaded === e.total ? \"SCANNING_FILE\" : null,\r\n };\r\n setRefresh(st => st + 1);\r\n };\r\n\r\n const checkFilesLoaded = () => {\r\n const loaded = filesStatus.current && uploadedFiles.current && filesStatus.current.every(e => e.loaded === e.total) &&\r\n filesStatus.current.filter((x) => [\"SCANNING_FILE\", \"OK\"].includes(x.uploadStatus)).length === uploadedFiles.current.length\r\n return loaded;\r\n };\r\n\r\n const handleClose = () => {\r\n setDialogClosed(true);\r\n handleSubmit({\r\n files: uploadedFiles.current,\r\n config: downloadFiles.config\r\n })\r\n }\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nUploadFilePopup.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default UploadFilePopup;","import React from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport GridBlock from './GridBlock';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\ttitle: {\r\n\t\tfontWeight: theme.typography.fontWeightBold,\r\n\t},\r\n})\r\n\r\nfunction TitledComponent({\r\n\tclasses,\r\n\tchildren,\r\n\ttitle,\r\n\tclassName,\r\n\trequired,\r\n\tlabelClassName,\r\n\tadditionalElement,\r\n\tcomponentRef\r\n}) {\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{title}{required && '*'}\r\n\t\t\t\t\r\n\t\t\t\t{additionalElement}\r\n\t\t\t\r\n\t\t\t{children}\r\n\t\t
\r\n\t)\r\n}\r\n\r\nTitledComponent.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tclasses: PropTypes.any,\r\n\ttitle: PropTypes.string,\r\n}\r\n\r\nTitledComponent.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(TitledComponent);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from './GridBlock';\r\nimport Chip from './Chip';\r\nimport Tr from 'translations/Translations';\r\nimport downloadFile from \"../libs/downloadFile\";\r\n\r\nfunction FilesList(\r\n {\r\n elements = [],\r\n onDelete,\r\n customAction,\r\n onDownload,\r\n }) {\r\n\r\n return (\r\n {elements.map((element, i) => {\r\n const {file} = element;\r\n return (\r\n onDelete(i) : undefined}\r\n onClick={() => !!onDownload ? onDownload(element) : downloadFile(file) }\r\n key={i}\r\n tooltip={Tr('download')}\r\n disabled={element.inaccessible}\r\n />\r\n )\r\n })}\r\n {customAction}\r\n )\r\n}\r\n\r\nFilesList.propTypes = {\r\n classes: PropTypes.any,\r\n elements: PropTypes.array,\r\n onDelete: PropTypes.func,\r\n onDownload: PropTypes.func,\r\n customAction: PropTypes.any\r\n};\r\n\r\nexport default FilesList;","import Endpoints from \"../constants/Endpoints\";\r\nimport {RestRequestGET, RestRequestPOST} from \"../libs/RestRequest\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {setSaveStatusError} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst showError = (message) => {\r\n\treduxStore.dispatch(setSaveStatusError(message))\r\n}\r\n\r\nconst getFilesAdnFolders = async (demandId, folderPath) => {\r\n\tlet params = {\r\n\t\tfolderPath\r\n\t}\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.SHAREPOINT(demandId), {params});\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst downloadFileFromSharepoint = async (demandId, file) => {\r\n\ttry {\r\n\t\treturn await RestRequestPOST(Endpoints.SHAREPOINT(demandId), file);\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t}\r\n\treturn {uploadStatus: \"ERROR\"}\r\n}\r\n\r\nexport default {\r\n\tgetFilesAdnFolders,\r\n\tdownloadFileFromSharepoint\r\n};\r\n\r\n","import React from 'react'\r\nimport {Grid, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport clsx from \"clsx\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n item: {\r\n minWidth: theme.components.popup.buttons.width,\r\n marginRight: theme.spacing(1)\r\n },\r\n before: {\r\n flexGrow: 1,\r\n marginLeft: theme.spacing(1)\r\n }\r\n})\r\n\r\nfunction MultiButton(\r\n {\r\n className,\r\n classes,\r\n buttons,//created by createButton\r\n justify = 'flex-end',\r\n before,\r\n after,\r\n afterAfter,\r\n }) {\r\n return (\r\n \r\n {!!before && {before}}\r\n {!!buttons && buttons.map(\r\n ({\r\n label,\r\n onClick,\r\n variant,\r\n disabled,\r\n className,\r\n working,\r\n Icon\r\n }, i) => (\r\n \r\n {label}\r\n \r\n ))}\r\n {!!after && {after}}\r\n {!!afterAfter && {afterAfter}}\r\n \r\n )\r\n}\r\n\r\nMultiButton.propTypes = {\r\n className: PropTypes.string,\r\n classes: PropTypes.any,\r\n}\r\n\r\nMultiButton.defaultProps = {}\r\n\r\nexport const createButton = (label, onClick, variant, disabled = false, className, working = false, Icon) => ({\r\n label,\r\n onClick,\r\n variant,\r\n disabled,\r\n className,\r\n working,\r\n Icon\r\n});\r\n\r\nexport default withStyles(style)(MultiButton);","import React from 'react'\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\n//https://www.svgrepo.com/svg/306418/microsoftsharepoint\r\nfunction SharepointIcon(props) {\r\n return (\r\n \r\n \r\n );\r\n}\r\n\r\nexport default SharepointIcon;\r\n\r\n\r\n\r\n","import React, {useEffect, useMemo, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport SharepointService from \"../../../services/SharepointService\";\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport Loading from \"components/Loading\";\r\nimport Typography from \"components/Typography\";\r\nimport {Breadcrumbs, Checkbox, List, ListItem, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport FolderIcon from \"@material-ui/icons/Folder\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport SubdirectoryArrowLeftIcon from '@material-ui/icons/SubdirectoryArrowLeft';\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport NavigateNextIcon from \"@material-ui/icons/NavigateNext\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport SharepointIcon from \"components/icon/SharepointIcon\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n rotate: {\r\n transform: 'rotate(90deg)'\r\n },\r\n breadcrumbText: {\r\n marginRight: theme.spacing(2)\r\n },\r\n checkbox: {\r\n padding: \"0 11px\"\r\n },\r\n selDocuments: {\r\n marginRight: 200\r\n },\r\n dialogContent: {\r\n minHeight: 500\r\n },\r\n loading: {\r\n position: 'absolute',\r\n width: 900,\r\n height: 50\r\n },\r\n titleIcon: {\r\n position: 'absolute',\r\n left: theme.spacing(2),\r\n color: theme.palette.primary.main,\r\n }\r\n}))\r\n\r\n\r\nfunction SharepointExplorer(\r\n {\r\n demandId,\r\n onClose,\r\n handleSubmit\r\n }) {\r\n const classes = useStyle();\r\n const [filesAndFolders, setFilesAndFolders] = useState(null);\r\n const [selectedFileMap, setSelectedFilesMap] = useState(new Map());\r\n const [working, setWorking] = useState(true);\r\n\r\n useEffect(() => {\r\n SharepointService.getFilesAdnFolders(demandId).then((resp) => setFilesAndFolders(resp)).finally(() => setWorking(false));\r\n }, [demandId])\r\n\r\n\r\n const toggleSelectFile = (file) => {\r\n const newMap = new Map(selectedFileMap);\r\n if (newMap.has(file.uniqueId)) {\r\n newMap.delete(file.uniqueId);\r\n setSelectedFilesMap(new Map(newMap));\r\n } else {\r\n newMap.set(file.uniqueId, file)\r\n setSelectedFilesMap(new Map(newMap));\r\n }\r\n }\r\n\r\n const handleBreadcrumbClick = (event) => {\r\n event.preventDefault();\r\n const serverRelativeUrl = event.target.getAttribute('data-serverrelativeurl');\r\n handleClick(serverRelativeUrl);\r\n }\r\n\r\n const handleClick = (serverRelativeUrl) => {\r\n if (!working) {\r\n setWorking(true);\r\n SharepointService.getFilesAdnFolders(demandId, serverRelativeUrl).then((resp) => {\r\n if(!!resp)\r\n setFilesAndFolders(resp);\r\n }).finally(() => setWorking(false));\r\n }\r\n }\r\n\r\n const folders = useMemo(() => {\r\n\r\n return filesAndFolders ? filesAndFolders.serverRelativeUrl.split(\"/\") : null;\r\n }, [filesAndFolders]);\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined'));\r\n buttons.push(createButton(Tr('add'), () => handleSubmit(Array.from(selectedFileMap).map(([key, value]) => value)), undefined, selectedFileMap.size === 0));\r\n return buttons;\r\n }\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nSharepointExplorer.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n handleSubmit: PropTypes.func.isRequired\r\n}\r\n\r\nexport default SharepointExplorer;","import React, {useEffect, useRef, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport {CircularProgress, List, ListItem, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport SingleButton from \"../../popup/components/SingleButton\";\r\n\r\n\r\nimport QueryBuilderIcon from '@material-ui/icons/QueryBuilder';\r\nimport SharepointService from \"../../../services/SharepointService\";\r\nimport CheckCircleOutlineIcon from '@material-ui/icons/CheckCircleOutline';\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport Typography from \"../../Typography\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n wait: {color: theme.palette.action.disabled},\r\n uploading: {\r\n color: theme.palette.primary.main,\r\n },\r\n done: {color: theme.palette.common.success},\r\n error: {color: theme.palette.common.error},\r\n\r\n}))\r\n\r\n\r\nfunction SharepointDownloadPopup(\r\n {\r\n demandId,\r\n downloadFiles,\r\n handleSubmit,\r\n onUpload\r\n }) {\r\n const classes = useStyle();\r\n const [files, setFiles] = useState([]);\r\n const [working, setWorking] = useState(true);\r\n const uploadedFiles = useRef([]);\r\n const errorTranslate = Tr('file_response')\r\n\r\n useEffect(() => {\r\n setFiles(downloadFiles.files.map(x => ({...x})));\r\n (async () => {\r\n for (let i = 0; i < downloadFiles.files.length; i++) {\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = {uploadStatus: \"UPLOADING\"};\r\n return next;\r\n })\r\n\r\n try {\r\n const resp = await SharepointService.downloadFileFromSharepoint(demandId, downloadFiles.files[i]);\r\n\r\n if (resp.uploadStatus === 'OK') {\r\n uploadSuccess({...resp, originalIndex: i});\r\n }\r\n\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = resp;\r\n return next;\r\n })\r\n } catch (e) {\r\n console.error(e)\r\n if (files && files[i])\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = {uploadStatus: \"ERROR\"};\r\n return next;\r\n })\r\n }\r\n }\r\n setWorking(false);\r\n })()\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const uploadSuccess = (fileData) => {\r\n uploadedFiles.current.push(fileData);\r\n if (onUpload)\r\n onUpload(fileData);\r\n };\r\n\r\n\r\n const getIcon = (file) => {\r\n if (!file.file) {\r\n return \r\n } else if (file.file.uploadStatus === \"UPLOADING\") {\r\n return \r\n } else if (file.file.uploadStatus === \"OK\") {\r\n return \r\n } else {\r\n return \r\n }\r\n }\r\n\r\n const getSecondaryText = (file) => {\r\n if (file.file && file.file.uploadStatus !== \"UPLOADING\" && file.file.uploadStatus !== \"OK\") {\r\n return {errorTranslate[file.file.uploadStatus]}\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n handleSubmit({\r\n files: uploadedFiles.current,\r\n config: downloadFiles.config\r\n })\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nSharepointDownloadPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n downloadFiles: PropTypes.shape({\r\n files: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n serverRelativeUrl: PropTypes.string.isRequired,\r\n length: PropTypes.number.isRequired,\r\n uniqueId: PropTypes.string.isRequired\r\n })).isRequired,\r\n config: PropTypes.any\r\n }),\r\n handleSubmit: PropTypes.func.isRequired\r\n}\r\n\r\nexport default SharepointDownloadPopup;","import Endpoints from \"../constants/Endpoints\";\r\nimport {RestRequestGET, RestRequestPOST} from \"../libs/RestRequest\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {setSaveStatusError} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst showError = (message) => {\r\n\treduxStore.dispatch(setSaveStatusError(message))\r\n}\r\n\r\nconst getFilesAdnFolders = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.EZDRP(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n\tthrow new Error();\r\n}\r\n\r\nconst downloadFileFromEzdrp = async (demandId, file) => {\r\n\ttry {\r\n\t\treturn await RestRequestPOST(Endpoints.EZDRP(demandId), file);\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t}\r\n\treturn {uploadStatus: \"ERROR\"}\r\n}\r\n\r\nexport default {\r\n\tgetFilesAdnFolders,\r\n\tdownloadFileFromEzdrp\r\n};\r\n\r\n","import React from 'react'\r\nimport {Checkbox, Collapse, List, ListItem, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport FolderIcon from \"@material-ui/icons/Folder\";\r\nimport DescriptionIcon from '@material-ui/icons/Description';\r\nimport UnfoldLessIcon from '@material-ui/icons/UnfoldLess';\r\nimport UnfoldMoreIcon from '@material-ui/icons/UnfoldMore';\r\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n checkbox: {\r\n padding: \"0 11px\"\r\n },\r\n attachmentIcon: {\r\n position: \"absolute\",\r\n fontSize: \"1.3rem\"\r\n },\r\n attachmentsCount: {\r\n marginLeft: theme.spacing(2),\r\n fontWeight: \"bold\"\r\n },\r\n list: {\r\n marginLeft: theme.spacing(3)\r\n },\r\n line: {\r\n borderBottom: \"solid 1px \" + theme.palette.border.dark\r\n },\r\n italic: {\r\n fontStyle: 'italic'\r\n }\r\n}))\r\n\r\nconst FileTypes = {\r\n FILE: \"FILE\",\r\n PAPER: \"PAPER\",\r\n FOLDER: \"FOLDER\",\r\n EMPTY: \"EMPTY\"\r\n}\r\n\r\nfunction EzdrpList(\r\n {\r\n documents,\r\n toggleSelectFile,\r\n toggleExpandFile,\r\n selectedFileMap,\r\n expandedFileMap,\r\n level = 0\r\n }) {\r\n const classes = useStyle();\r\n const toggleCheckbox = (e, file) => {\r\n e.stopPropagation();\r\n if (file.type === FileTypes.FILE)\r\n toggleSelectFile(file);\r\n }\r\n\r\n if (documents.length === 0) {\r\n documents = [{id: \"id\", name: {Tr('no_files_in_directory')}, type: FileTypes.EMPTY, attachments: []}]\r\n }\r\n\r\n return (\r\n \r\n {\r\n documents.map(x => {\r\n const hasExpand = x.type === FileTypes.PAPER || x.type === FileTypes.FOLDER || x.attachments.length > 0;\r\n const expanded = expandedFileMap.has(x.id);\r\n\r\n return (\r\n
toggleExpandFile(x) : (e) => toggleCheckbox(e, x)}>\r\n \r\n {x.type === FileTypes.FILE && toggleCheckbox(e, x)}\r\n />}\r\n {x.type === FileTypes.FOLDER && }\r\n {x.type === FileTypes.PAPER && }\r\n \r\n \r\n {x.name}\r\n {hasExpand && <>\r\n \r\n {'[' + x.attachments.length + ']'}\r\n >}\r\n >\r\n }\r\n />\r\n {hasExpand ? expanded ? : : null}\r\n \r\n
\r\n \r\n \r\n {level === 0 &&
}\r\n
)\r\n })}\r\n
)\r\n}\r\n\r\nEzdrpList.propTypes = {\r\n documents: PropTypes.array.isRequired\r\n}\r\n\r\nexport default EzdrpList;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport Loading from \"components/Loading\";\r\nimport Typography from \"components/Typography\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport EzdrpService from \"services/EzdrpService\";\r\nimport EzdrpList from \"./EzdrpList\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n rotate: {\r\n transform: 'rotate(90deg)'\r\n },\r\n breadcrumbText: {\r\n marginRight: theme.spacing(2)\r\n },\r\n checkbox: {\r\n padding: \"0 11px\"\r\n },\r\n selDocuments: {\r\n marginRight: 200\r\n },\r\n dialogContent: {\r\n minHeight: 500\r\n },\r\n loading: {\r\n position: 'absolute',\r\n width: 900,\r\n height: 50\r\n },\r\n titleIcon: {\r\n position: 'absolute',\r\n left: theme.spacing(2),\r\n color: theme.palette.primary.main,\r\n }\r\n}))\r\n\r\n\r\nfunction EzdrpExplorer(\r\n {\r\n demandId,\r\n onClose,\r\n handleSubmit\r\n }) {\r\n const classes = useStyle();\r\n const [filesAndFolders, setFilesAndFolders] = useState(null);\r\n const [selectedFileMap, setSelectedFilesMap] = useState(new Map());\r\n const [expandedFileMap, setExpandedFilesMap] = useState(new Map());\r\n const [working, setWorking] = useState(true);\r\n\r\n useEffect(() => {\r\n EzdrpService.getFilesAdnFolders(demandId).then((resp) => setFilesAndFolders(resp)).then(() => setWorking(false)).catch(onClose);\r\n // eslint-disable-next-line\r\n }, [demandId])\r\n\r\n\r\n const toggleSelectFile = (file) => {\r\n const newMap = new Map(selectedFileMap);\r\n if (newMap.has(file.id)) {\r\n newMap.delete(file.id);\r\n setSelectedFilesMap(newMap);\r\n } else {\r\n const {attachments, ...others} = file;\r\n newMap.set(file.id, others)\r\n setSelectedFilesMap(newMap);\r\n }\r\n }\r\n const toggleExpandFile = (file) => {\r\n const newMap = new Map(expandedFileMap);\r\n if (newMap.has(file.id)) {\r\n newMap.delete(file.id);\r\n setExpandedFilesMap(newMap);\r\n } else {\r\n newMap.set(file.id, file.id)\r\n setExpandedFilesMap(newMap);\r\n }\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined'));\r\n buttons.push(createButton(Tr('add'), () => handleSubmit(Array.from(selectedFileMap).map(([key, value]) => value)), undefined, selectedFileMap.size === 0));\r\n return buttons;\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nEzdrpExplorer.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n handleSubmit: PropTypes.func.isRequired\r\n}\r\n\r\nexport default EzdrpExplorer;","import React, {useEffect, useRef, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport {CircularProgress, List, ListItem, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport SingleButton from \"../../popup/components/SingleButton\";\r\n\r\n\r\nimport QueryBuilderIcon from '@material-ui/icons/QueryBuilder';\r\nimport CheckCircleOutlineIcon from '@material-ui/icons/CheckCircleOutline';\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport Typography from \"../../Typography\";\r\nimport EzdrpService from \"../../../services/EzdrpService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n wait: {color: theme.palette.action.disabled},\r\n uploading: {\r\n color: theme.palette.primary.main,\r\n },\r\n done: {color: theme.palette.common.success},\r\n error: {color: theme.palette.common.error},\r\n\r\n}))\r\n\r\n\r\nfunction EzdrpDownloadPopup(\r\n {\r\n demandId,\r\n downloadFiles,\r\n handleSubmit,\r\n onUpload\r\n }) {\r\n const classes = useStyle();\r\n const [files, setFiles] = useState([]);\r\n const [working, setWorking] = useState(true);\r\n const uploadedFiles = useRef([]);\r\n const errorTranslate = Tr('file_response')\r\n\r\n useEffect(() => {\r\n setFiles(downloadFiles.files.map(x => ({...x})));\r\n (async () => {\r\n for (let i = 0; i < downloadFiles.files.length; i++) {\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = {uploadStatus: \"UPLOADING\"};\r\n return next;\r\n })\r\n\r\n try {\r\n const resp = await EzdrpService.downloadFileFromEzdrp(demandId, downloadFiles.files[i]);\r\n\r\n if (resp.uploadStatus === 'OK') {\r\n uploadSuccess({...resp, originalIndex: i});\r\n }\r\n\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = resp;\r\n return next;\r\n })\r\n } catch (e) {\r\n console.error(e)\r\n if (files && files[i])\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = {uploadStatus: \"ERROR\"};\r\n return next;\r\n })\r\n }\r\n }\r\n setWorking(false);\r\n })()\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const uploadSuccess = (fileData) => {\r\n uploadedFiles.current.push(fileData);\r\n if (onUpload)\r\n onUpload(fileData);\r\n };\r\n\r\n\r\n const getIcon = (file) => {\r\n if (!file.file) {\r\n return \r\n } else if (file.file.uploadStatus === \"UPLOADING\") {\r\n return \r\n } else if (file.file.uploadStatus === \"OK\") {\r\n return \r\n } else {\r\n return \r\n }\r\n }\r\n\r\n const getSecondaryText = (file) => {\r\n if (file.file && file.file.uploadStatus !== \"UPLOADING\" && file.file.uploadStatus !== \"OK\") {\r\n return {errorTranslate[file.file.uploadStatus]}\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n handleSubmit({\r\n files: uploadedFiles.current,\r\n config: downloadFiles.config\r\n })\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nEzdrpDownloadPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n downloadFiles: PropTypes.shape({\r\n files: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n serverRelativeUrl: PropTypes.string.isRequired,\r\n length: PropTypes.number.isRequired,\r\n uniqueId: PropTypes.string.isRequired\r\n })).isRequired,\r\n config: PropTypes.any\r\n }),\r\n handleSubmit: PropTypes.func.isRequired\r\n}\r\n\r\nexport default EzdrpDownloadPopup;","import Endpoints from \"../constants/Endpoints\";\r\nimport {RestRequestGET, RestRequestPOST} from \"../libs/RestRequest\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {setSaveStatusError} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst showError = (message) => {\r\n reduxStore.dispatch(setSaveStatusError(message))\r\n}\r\n\r\nconst getCases = async (demandId) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.EZDPUW(demandId));\r\n if (isResponseValid(resp, showError)) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n throw new Error();\r\n}\r\nconst getDocuments = async (demandId, caseId) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.EZDPUW_DOCUMENTS(demandId, caseId));\r\n if (isResponseValid(resp, showError)) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n throw new Error();\r\n}\r\n\r\nconst downloadFileFromEzdpuw = async (demandId, file) => {\r\n try {\r\n return await RestRequestPOST(Endpoints.EZDPUW(demandId), file);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n return {uploadStatus: \"ERROR\"}\r\n}\r\n\r\nexport default {\r\n getCases,\r\n getDocuments,\r\n downloadFileFromEzdpuw\r\n};\r\n\r\n","import React, {useEffect, useRef, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport {CircularProgress, List, ListItem, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport SingleButton from \"../../popup/components/SingleButton\";\r\n\r\n\r\nimport QueryBuilderIcon from '@material-ui/icons/QueryBuilder';\r\nimport CheckCircleOutlineIcon from '@material-ui/icons/CheckCircleOutline';\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport Typography from \"../../Typography\";\r\nimport EzdpuwService from \"services/EzdpuwService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n wait: {color: theme.palette.action.disabled},\r\n uploading: {\r\n color: theme.palette.primary.main,\r\n },\r\n done: {color: theme.palette.common.success},\r\n error: {color: theme.palette.common.error},\r\n}))\r\n\r\n\r\nfunction EzdpuwDownloadPopup(\r\n {\r\n demandId,\r\n downloadFiles,\r\n handleSubmit,\r\n onUpload\r\n }) {\r\n const classes = useStyle();\r\n const [files, setFiles] = useState([]);\r\n const [working, setWorking] = useState(true);\r\n const uploadedFiles = useRef([]);\r\n const errorTranslate = Tr('file_response')\r\n\r\n useEffect(() => {\r\n setFiles(downloadFiles.files.map(x => ({...x})));\r\n (async () => {\r\n for (let i = 0; i < downloadFiles.files.length; i++) {\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = {uploadStatus: \"UPLOADING\"};\r\n return next;\r\n })\r\n\r\n try {\r\n const resp = await EzdpuwService.downloadFileFromEzdpuw(demandId, downloadFiles.files[i]);\r\n\r\n if (resp.uploadStatus === 'OK') {\r\n uploadSuccess({...resp, originalIndex: i});\r\n }\r\n\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = resp;\r\n return next;\r\n })\r\n } catch (e) {\r\n console.error(e)\r\n if (files && files[i])\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = {uploadStatus: \"ERROR\"};\r\n return next;\r\n })\r\n }\r\n }\r\n setWorking(false);\r\n })()\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const uploadSuccess = (fileData) => {\r\n uploadedFiles.current.push(fileData);\r\n if (onUpload)\r\n onUpload(fileData);\r\n };\r\n\r\n\r\n const getIcon = (file) => {\r\n if (!file.file) {\r\n return \r\n } else if (file.file.uploadStatus === \"UPLOADING\") {\r\n return \r\n } else if (file.file.uploadStatus === \"OK\") {\r\n return \r\n } else {\r\n return \r\n }\r\n }\r\n\r\n const getSecondaryText = (file) => {\r\n if (file.file && file.file.uploadStatus !== \"UPLOADING\" && file.file.uploadStatus !== \"OK\") {\r\n return {errorTranslate[file.file.uploadStatus]}\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n handleSubmit({\r\n files: uploadedFiles.current,\r\n config: downloadFiles.config\r\n })\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nEzdpuwDownloadPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n downloadFiles: PropTypes.shape({\r\n files: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n })).isRequired,\r\n config: PropTypes.any\r\n }),\r\n handleSubmit: PropTypes.func.isRequired\r\n}\r\n\r\nexport default EzdpuwDownloadPopup;","import React from 'react'\r\nimport FolderIcon from \"@material-ui/icons/Folder\";\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconFolderButton(\r\n {\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconFolderButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconFolderButton;","import React from 'react'\r\nimport {Checkbox, Collapse, List, ListItem, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport UnfoldLessIcon from '@material-ui/icons/UnfoldLess';\r\nimport UnfoldMoreIcon from '@material-ui/icons/UnfoldMore';\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconFolderButton from \"components/button/WorkableIconFolderButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n checkbox: {\r\n padding: \"0 11px\"\r\n },\r\n attachmentIcon: {\r\n position: \"absolute\",\r\n fontSize: \"1.3rem\"\r\n },\r\n attachmentsCount: {\r\n marginLeft: theme.spacing(2),\r\n fontWeight: \"bold\"\r\n },\r\n list: {\r\n marginLeft: theme.spacing(3)\r\n },\r\n line: {\r\n borderBottom: \"solid 1px \" + theme.palette.border.dark\r\n },\r\n italic: {\r\n fontStyle: 'italic'\r\n }\r\n}))\r\n\r\nconst FileTypes = {\r\n CASE: \"CASE\",\r\n FILE: \"FILE\"\r\n}\r\n\r\nfunction EzdpuwList(\r\n {\r\n documents,\r\n toggleSelectFile,\r\n toggleExpandCase,\r\n selectedFileMap,\r\n level = 0,\r\n workingCase\r\n }) {\r\n const classes = useStyle();\r\n const toggleCheckbox = (e, file) => {\r\n e.stopPropagation();\r\n if (file.type === FileTypes.FILE)\r\n toggleSelectFile(file);\r\n }\r\n\r\n if (documents && documents.length === 0) {\r\n documents = [{id: \"id\", name: {Tr(level === 0 ? \"no_cases_associated\" : \"no_files_in_directory\")}, type: FileTypes.EMPTY, attachments: null}]\r\n }\r\n\r\n return (\r\n \r\n {\r\n documents.map(x => {\r\n const hasExpand = x.type === FileTypes.CASE;\r\n const expanded = x.attachments !== null\r\n\r\n return (\r\n
toggleExpandCase(x) : (e) => toggleCheckbox(e, x)}>\r\n \r\n {x.type === FileTypes.FILE && toggleCheckbox(e, x)}\r\n />}\r\n {x.type === FileTypes.CASE && }\r\n \r\n \r\n {hasExpand ? expanded ? : : null}\r\n \r\n
\r\n {expanded &&\r\n }\r\n \r\n {level === 0 &&
}\r\n
)\r\n })}\r\n
)\r\n}\r\n\r\nEzdpuwList.propTypes = {\r\n documents: PropTypes.array\r\n}\r\n\r\nexport default EzdpuwList;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport Loading from \"components/Loading\";\r\nimport Typography from \"components/Typography\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport EzdpuwList from \"./EzdpuwList\";\r\nimport EzdpuwService from \"services/EzdpuwService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n rotate: {\r\n transform: 'rotate(90deg)'\r\n },\r\n breadcrumbText: {\r\n marginRight: theme.spacing(2)\r\n },\r\n checkbox: {\r\n padding: \"0 11px\"\r\n },\r\n selDocuments: {\r\n marginRight: 200\r\n },\r\n dialogContent: {\r\n minHeight: 500\r\n },\r\n loading: {\r\n position: 'absolute',\r\n width: 900,\r\n height: 50\r\n },\r\n titleIcon: {\r\n position: 'absolute',\r\n left: theme.spacing(2),\r\n color: theme.palette.primary.main,\r\n }\r\n}))\r\n\r\n\r\nfunction EzdpuwExplorer(\r\n {\r\n demandId,\r\n onClose,\r\n handleSubmit\r\n }) {\r\n const classes = useStyle();\r\n const [filesAndFolders, setFilesAndFolders] = useState(null);\r\n const [selectedFileMap, setSelectedFilesMap] = useState(new Map());\r\n const [working, setWorking] = useState(true);\r\n const [workingCase, setWorkingCase] = useState(null);\r\n\r\n useEffect(() => {\r\n EzdpuwService.getCases(demandId).then((resp) => {\r\n setFilesAndFolders(resp);\r\n }).then(() => setWorking(false)).catch(onClose);\r\n // eslint-disable-next-line\r\n }, [demandId])\r\n\r\n\r\n const toggleSelectFile = (file) => {\r\n const newMap = new Map(selectedFileMap);\r\n if (newMap.has(file.id)) {\r\n newMap.delete(file.id);\r\n setSelectedFilesMap(newMap);\r\n } else {\r\n const {attachments, ...others} = file;\r\n newMap.set(file.id, others)\r\n setSelectedFilesMap(newMap);\r\n }\r\n }\r\n const toggleExpandCase = (file) => {\r\n if (working || workingCase)\r\n return;\r\n\r\n if ((file.attachments !== null)) {\r\n setFilesAndFolders(filesAndFolders.map(x => x.id === file.id ? {...x, attachments: null} : x))\r\n } else {\r\n setWorkingCase(file.id);\r\n EzdpuwService.getDocuments(demandId, file.id).then((resp) => {\r\n setFilesAndFolders(filesAndFolders.map(x => x.id === file.id ? {...x, attachments: resp} : x));\r\n }).finally(() => {\r\n setWorkingCase(null);\r\n })\r\n }\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working || !!workingCase));\r\n buttons.push(createButton(Tr('add'), () => handleSubmit(Array.from(selectedFileMap).map(([key, value]) => value)), undefined, working || !!workingCase || selectedFileMap.size === 0));\r\n return buttons;\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nEzdpuwExplorer.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n handleSubmit: PropTypes.func.isRequired\r\n}\r\n\r\nexport default EzdpuwExplorer;","import React, {useEffect, useRef, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dropzone from 'components/Dropzone'\r\nimport UploadService from 'services/UploadService';\r\nimport UploadFilePopup from './popup/uploadFile/UploadFilePopup';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport removeFormikListElement from 'libs/removeFormikListElement';\r\nimport TitledComponent from './TitledComponent';\r\nimport {makeStyles} from '@material-ui/core';\r\nimport FilesList from \"./FilesList\";\r\nimport {connect} from 'react-redux';\r\nimport PrivilegeService from \"../services/PrivilegeService\";\r\nimport GridBlock from \"./GridBlock\";\r\nimport SharepointExplorer from \"./complex/sharepointExplorer/SharepointExplorer\";\r\nimport Tr from \"../translations/Translations\";\r\nimport SharepointIcon from \"./icon/SharepointIcon\";\r\nimport Button from \"./Button\";\r\nimport SharepointDownloadPopup from \"./complex/sharepointExplorer/SharepointDownloadPopup\";\r\nimport {useParams} from \"react-router\";\r\nimport EzdrpExplorer from \"./complex/ezdrpExplorer/EzdrpExplorer\";\r\nimport EzdrpDownloadPopup from \"./complex/ezdrpExplorer/EzdrpDownloadPopup\";\r\nimport EzdpuwDownloadPopup from \"./complex/ezdpuwExplorer/EzdpuwDownloadPopup\";\r\nimport EzdpuwExplorer from \"./complex/ezdpuwExplorer/EzdpuwExplorer\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n dropzone: {\r\n marginTop: theme.spacing(1)\r\n },\r\n dropzoneParent: {\r\n '&>*:first-child': {\r\n flexGrow: 1,\r\n },\r\n '&>*:nth-child(2)': {\r\n marginLeft: theme.spacing(2),\r\n marginTop: theme.spacing()\r\n }\r\n },\r\n integrationButton: {\r\n width: \"100%\",\r\n marginBottom: theme.spacing()\r\n }\r\n}));\r\n\r\nconst SupportedTypes = {\r\n BROWSER: \"BROWSER\",\r\n SHAREPOINT: \"SHAREPOINT\",\r\n EZDRP: \"EZDRP\",\r\n EZDPUW: \"EZDPUW\",\r\n}\r\n\r\nfunction UploadFile(\r\n {\r\n //common\r\n label,\r\n onUpload,\r\n onUploadPopupClosed,\r\n acceptExtensionList,\r\n disabled,\r\n working,\r\n\r\n //formikProps\r\n multiple = true,\r\n id,\r\n formikProps,\r\n onDelete,\r\n onDownload,\r\n onOpenConfigureFiles,\r\n configuredFiles,\r\n defaultValidExtensionList,\r\n demandHeader,\r\n demandPrivileges = {},\r\n encryptRoundId\r\n }) {\r\n const params = useParams();\r\n const demandId = params.id;\r\n\r\n const classes = useStyle();\r\n const editable = formikProps ? getObjectValue('_editable', formikProps.values, true) : true;\r\n\r\n const currentProcess = useRef(null);\r\n\r\n const [browserDownloadFiles, setBrowserDownloadFiles] = useState(null);\r\n\r\n const [sharepointExplorerOpen, setSharepointExplorerOpen] = useState(false);\r\n const [sharepointDownloadFiles, setSharepointDownloadFiles] = useState(null);\r\n\r\n const [ezdrpExplorerOpen, setEzdrpExplorerOpen] = useState(false);\r\n const [ezdDownloadFiles, setEzdDownloadFiles] = useState(null);\r\n\r\n const [ezdpuwExplorerOpen, setEzdpuwExplorerOpen] = useState(false);\r\n const [ezdpuwDownloadFiles, setEzdpuwDownloadFiles] = useState(null);\r\n\r\n useEffect(() => {\r\n if (configuredFiles) {\r\n if (currentProcess.current === SupportedTypes.BROWSER)\r\n setBrowserDownloadFiles(configuredFiles)\r\n else if (currentProcess.current === SupportedTypes.SHAREPOINT)\r\n setSharepointDownloadFiles(configuredFiles)\r\n else if (currentProcess.current === SupportedTypes.EZDRP)\r\n setEzdDownloadFiles(configuredFiles)\r\n else if (currentProcess.current === SupportedTypes.EZDPUW)\r\n setEzdpuwDownloadFiles(configuredFiles)\r\n currentProcess.current = null;\r\n\r\n }\r\n }, [configuredFiles])\r\n\r\n\r\n const handleBrowserUpload = ({files, config}) => {\r\n setBrowserDownloadFiles(null);\r\n handleDownloadedFiles(files, config);\r\n };\r\n\r\n const handleSubmitSharepointDownloadFiles = ({files, config}) => {\r\n setSharepointDownloadFiles(null)\r\n handleDownloadedFiles(files, config);\r\n }\r\n\r\n const handleSubmitEzdrpDownloadFiles = ({files, config}) => {\r\n setEzdDownloadFiles(null)\r\n handleDownloadedFiles(files, config);\r\n }\r\n\r\n const handleSubmitEzdpuwDownloadFiles = ({files, config}) => {\r\n setEzdpuwDownloadFiles(null)\r\n handleDownloadedFiles(files, config);\r\n }\r\n\r\n const handleDownloadedFiles = (files, config) => {\r\n if (formikProps) {\r\n const formikFiles = getObjectValue(id, formikProps.values, []);\r\n files.forEach((fileData, i) => {\r\n const fileId = `${id}.${formikFiles.length + i}.file`;\r\n formikProps.setFieldValue(fileId, fileData)\r\n })\r\n }\r\n if (onUploadPopupClosed)\r\n onUploadPopupClosed(files, config);\r\n }\r\n\r\n\r\n const handleBrowserFileSelect = (selectedFiles) => {\r\n if (onOpenConfigureFiles) {\r\n currentProcess.current = SupportedTypes.BROWSER;\r\n onOpenConfigureFiles(selectedFiles);\r\n } else {\r\n setBrowserDownloadFiles({files: selectedFiles, config: null});\r\n }\r\n }\r\n\r\n const handleSharepointExplorerSubmit = (selectedFiles) => {\r\n setSharepointExplorerOpen(false);\r\n if (onOpenConfigureFiles) {\r\n currentProcess.current = SupportedTypes.SHAREPOINT;\r\n onOpenConfigureFiles(selectedFiles)\r\n } else {\r\n setSharepointDownloadFiles({files: selectedFiles, config: null})\r\n }\r\n }\r\n const handleEzdrpExplorerSubmit = (selectedFiles) => {\r\n setEzdrpExplorerOpen(false);\r\n if (onOpenConfigureFiles) {\r\n currentProcess.current = SupportedTypes.EZDRP;\r\n onOpenConfigureFiles(selectedFiles)\r\n } else {\r\n setEzdDownloadFiles({files: selectedFiles, config: null})\r\n }\r\n }\r\n const handleEzdpuwExplorerSubmit = (selectedFiles) => {\r\n setEzdpuwExplorerOpen(false);\r\n if (onOpenConfigureFiles) {\r\n currentProcess.current = SupportedTypes.EZDPUW;\r\n onOpenConfigureFiles(selectedFiles)\r\n } else {\r\n setEzdpuwDownloadFiles({files: selectedFiles, config: null})\r\n }\r\n }\r\n\r\n\r\n const deleteFile = (index) => {\r\n if (onDelete)\r\n onDelete(index);\r\n\r\n if (formikProps)\r\n removeFormikListElement(formikProps, id, index);\r\n };\r\n\r\n const fileElements = formikProps ? getObjectValue(id, formikProps.values, []) : [];\r\n\r\n const getIntegrationButtons = () => {\r\n if (demandPrivileges?.INTEGRATIONS_DOWNLOAD && !!demandId) {\r\n const sharepoint = demandHeader?.applicationClientSettings?.sharepointIntegration || {};\r\n const ezdrp = demandHeader?.applicationClientSettings?.ezdrpIntegration || {};\r\n const ezdpuw = demandHeader?.applicationClientSettings?.ezdpuwIntegration || {};\r\n\r\n if (sharepoint.active || ezdrp.active || ezdpuw.active) {\r\n return (\r\n {\r\n !!sharepoint.active && \r\n }\r\n {\r\n !!ezdrp.active && \r\n }\r\n {\r\n !!ezdpuw.active && \r\n }\r\n )\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n return (\r\n \r\n {!!formikProps && }\r\n {editable && <>\r\n \r\n \r\n {\r\n getIntegrationButtons()\r\n }\r\n\r\n \r\n\r\n {browserDownloadFiles && }\r\n\r\n\r\n {sharepointExplorerOpen && setSharepointExplorerOpen(false)}\r\n handleSubmit={handleSharepointExplorerSubmit}\r\n demandId={demandId}\r\n />}\r\n\r\n {ezdrpExplorerOpen && setEzdrpExplorerOpen(false)}\r\n handleSubmit={handleEzdrpExplorerSubmit}\r\n demandId={demandId}\r\n />}\r\n\r\n {ezdpuwExplorerOpen && setEzdpuwExplorerOpen(false)}\r\n handleSubmit={handleEzdpuwExplorerSubmit}\r\n demandId={demandId}\r\n />}\r\n\r\n {!!sharepointDownloadFiles &&\r\n \r\n }\r\n\r\n {!!ezdDownloadFiles &&\r\n \r\n }\r\n\r\n {!!ezdpuwDownloadFiles &&\r\n \r\n }\r\n\r\n >}\r\n \r\n )\r\n}\r\n\r\nUploadFile.propTypes = {\r\n onDelete: PropTypes.func,\r\n onDownload: PropTypes.func,\r\n\r\n configuredFiles: PropTypes.shape({\r\n files: PropTypes.array.isRequired,\r\n config: PropTypes.any.isRequired\r\n }),\r\n working: PropTypes.bool\r\n\r\n};\r\n\r\nexport default connect((state) => ({\r\n defaultValidExtensionList: state.resources[UploadService.VALID_EXTENSIONS_LIST_RESOURCE_ID],\r\n demandHeader: state.resources.demandHeader,\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY]\r\n}))(UploadFile);","import Tr from 'translations/Translations';\r\nimport {createSelectItem} from \"../components/Select\";\r\n\r\nexport const PriceType = {\r\n NET: 'NET',\r\n NET_VAT: 'NET_VAT',\r\n NET_GROSS: 'NET_GROSS',\r\n GROSS_VAT: 'GROSS_VAT',\r\n GROSS: 'GROSS',\r\n}\r\nconst _TR_PREFIX = 'price_type_';\r\n\r\nexport const PriceTypeLabel = (priceType) => (Tr(_TR_PREFIX + priceType.toLowerCase()));\r\n\r\nexport const PriceTypeItems = [\r\n createSelectItem(PriceType.NET, PriceTypeLabel(PriceType.NET)),\r\n createSelectItem(PriceType.NET_VAT, PriceTypeLabel(PriceType.NET_VAT)),\r\n createSelectItem(PriceType.NET_GROSS, PriceTypeLabel(PriceType.NET_GROSS)),\r\n createSelectItem(PriceType.GROSS_VAT, PriceTypeLabel(PriceType.GROSS_VAT)),\r\n createSelectItem(PriceType.GROSS, PriceTypeLabel(PriceType.GROSS))\r\n]\r\n\r\nconst UseNetOverGrossForAuctionPopup = {\r\n NET: true,\r\n GROSS: false\r\n}\r\n\r\nexport const PriceTypeItemsForAuction = [\r\n createSelectItem(UseNetOverGrossForAuctionPopup.GROSS, PriceTypeLabel(PriceType.GROSS)),\r\n createSelectItem(UseNetOverGrossForAuctionPopup.NET, PriceTypeLabel(PriceType.NET))\r\n]\r\n\r\n\r\nconst NET_FIELD_VISIBLE = [PriceType.NET, PriceType.NET_VAT, PriceType.NET_GROSS];\r\nconst GROSS_FIELD_VISIBLE = [PriceType.GROSS, PriceType.GROSS_VAT, PriceType.NET_GROSS];\r\nconst VAT_FIELD_VISIBLE = [PriceType.NET_VAT, PriceType.GROSS_VAT, PriceType.NET_GROSS];\r\n\r\nexport const PriceTypeNetFieldVisible = (priceType) => NET_FIELD_VISIBLE.includes(priceType);\r\nexport const PriceTypeGrossFieldVisible = (priceType) => GROSS_FIELD_VISIBLE.includes(priceType);\r\nexport const PriceTypeVatFieldVisible = (priceType) => VAT_FIELD_VISIBLE.includes(priceType);\r\n\r\n\r\nconst NET_SUM_PRICE_TYPES = [PriceType.NET, PriceType.NET_VAT]\r\nexport const NetSumPriceVisible = (priceType) => NET_SUM_PRICE_TYPES.includes(priceType);\r\n\r\nconst TOTAL_NET_FIELD_VISIBLE = [PriceType.NET, PriceType.NET_VAT, PriceType.NET_GROSS];\r\nconst TOTAL_GROSS_FIELD_VISIBLE = [PriceType.NET_GROSS, PriceType.GROSS_VAT, PriceType.GROSS];\r\nexport const TotalPriceTypeNetFieldVisible = (priceType) => TOTAL_NET_FIELD_VISIBLE.includes(priceType);\r\nexport const TotalPriceTypeGrossFieldVisible = (priceType) => TOTAL_GROSS_FIELD_VISIBLE.includes(priceType);","import Tr from 'translations/Translations';\r\nimport {ProcedureType} from \"./ProcedureType\";\r\n\r\nexport const DemandCategoryType = {\r\n CLASSIC: \"CLASSIC\",\r\n SECTOR: \"SECTOR\",\r\n DEFENSE_AND_SECURITY: \"DEFENSE_AND_SECURITY\",\r\n}\r\nconst _TR_PREFIX = 'demand_category_type_';\r\nexport const DemandCategoryTypeLabel = (type) => (Tr(_TR_PREFIX + type));\r\n\r\n\r\nexport const DemandCategoryTypesForProcedure = (procedure) =>\r\n ProcedureType.NATIONAL_SOCIAL_SERVICES === procedure || ProcedureType.EUROPE_SOCIAL_SERVICES === procedure ?\r\n Object.keys(DemandCategoryType).filter(x => x !== DemandCategoryType.DEFENSE_AND_SECURITY) : Object.keys(DemandCategoryType);","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (value) => ({label: Tr('caseClassificationSymbol.' + value), value})\r\n\r\nexport default [\r\n {label: '---', value: ''},\r\n createItem('270'),\r\n createItem('271'),\r\n createItem('272')\r\n]","import React from 'react'\r\nimport {Box, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport RadioGroup from 'components/RadioGroup';\r\nimport Select, {createSelectItem} from 'components/Select';\r\nimport GridBlock from 'components/GridBlock';\r\nimport primaryTenderVariantValues from './fieldsOptions/primaryTenderVariant.values'\r\nimport pzpExclusionValues from './fieldsOptions/pzpExclusion.values'\r\nimport orderTypeValues from 'constants/orderType.values'\r\nimport concessionOrderTypeValues from 'constants/concessionOrderType.values'\r\nimport booleanValues from 'constants/BooleanItems'\r\nimport jedzValues from './fieldsOptions/jedz.values'\r\nimport contractTypeValues from './fieldsOptions/contractType.values'\r\nimport CPVInput from 'components/CPVInput';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport HelpComponent from 'components/HelpComponent';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {isDemandPreparing} from \"libs/getDemandStatus\";\r\nimport OrganizationInput from \"components/OrganizationInput\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport {isEuropeProcedure, isNationalProcedure, isNonpublicProcedure} from \"constants/ProcedureType\";\r\nimport {PriceTypeItems} from \"constants/PriceTypes\";\r\nimport {DemandCategoryTypeLabel, DemandCategoryTypesForProcedure} from \"constants/DemandCategoryType\";\r\nimport caseClassificationSymbols from './fieldsOptions/caseClassificationSymbol.values'\r\n\r\n\r\nconst limits = InputLimits.procedure.basicInformation;\r\n\r\nconst style = theme => ({\r\n root: {},\r\n uploadFile: {\r\n marginTop: theme.spacing(4)\r\n }\r\n})\r\n\r\nfunction RequiredFields(\r\n {\r\n classes,\r\n formikProps,\r\n demandAvailableOrganizations,\r\n demandRealizationTypes,\r\n demandAvailableFormTypes,\r\n demandHeader,\r\n numberAutomated,\r\n caseClassificationSymbolRequired,\r\n hideExecutiveDemandVariant\r\n }) {\r\n const passiveOfferForm = getObjectValue('passiveOfferForm', formikProps.values, false);\r\n const creatingDemand = getObjectValue('identity', formikProps.values, false) <= 0 || isDemandPreparing();\r\n //const demandVariant = getObjectValue('demandVariant', formikProps.values, false);\r\n const procedureType = getObjectValue('procedureType', formikProps.values, \"\");\r\n const realizationType = getObjectValue('demandRealizationType', formikProps.values, \"\");\r\n const withNotice = realizationType ? demandRealizationTypes.find(x => x.name === realizationType).withNotice : false;\r\n const europeProcedure = isEuropeProcedure(procedureType);\r\n const nationalProcedure = isNationalProcedure(procedureType);\r\n const nonpublicProcedure = isNonpublicProcedure(procedureType);\r\n const createItem = (prefix, value) => ({label: Tr(prefix + '.' + value), value});\r\n const demandRealizationTypesTranslated = demandRealizationTypes.map(x => !!x.label ? {value: x.name, label: x.label} : createItem(procedureType, x.name));\r\n const demandCategoryType = getObjectValue(\"demandCategoryType\", formikProps.values, null);\r\n\r\n const onDemandRealizationTypeChanged = (realizationType) => {\r\n\r\n if (realizationType === 'primary_tender') {\r\n formikProps.setFieldValue('primaryTenderVariant', primaryTenderVariantValues[0].value);\r\n }\r\n\r\n const newWithNotice = realizationType ? demandRealizationTypes.find(x => x.name === realizationType).withNotice : false;\r\n if(!newWithNotice) {\r\n formikProps.setFieldValue('formType', null);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n\r\n {\r\n (creatingDemand || !!demandCategoryType) && \r\n )\r\n}\r\n\r\nRequiredFields.propTypes = {\r\n classes: PropTypes.any,\r\n formikProps: PropTypes.object,\r\n}\r\n\r\nRequiredFields.defaultProps = {}\r\n\r\nexport default withStyles(style)(RequiredFields);","export default {\r\n DATE_FORMAT: \"DD.MM.YYYY\",\r\n DATETIME_FORMAT: \"DD.MM.YYYY HH:mm\",\r\n DATETIME_WITH_SECONDS_FORMAT: \"YYYY.MM.DD HH:mm:ss\"\r\n}\r\n","import React, {useEffect} from 'react'\r\nimport {KeyboardDatePicker} from \"@material-ui/pickers\";\r\nimport {withStyles} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport clsx from 'clsx';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport moment from \"libs/moment\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n width: 320,\r\n }\r\n})\r\n\r\nfunction DatePicker(\r\n {\r\n formikProps,\r\n id,\r\n label,\r\n minDate,\r\n maxDate,\r\n required = false,\r\n classes,\r\n className,\r\n minDateMessage = Tr(\"v_data_can_not_be_past\"),\r\n maxDateMessage = Tr(\"v_data_can_not_be_future\"),\r\n onChange = () => {},\r\n disabled,\r\n skipCheckTouched\r\n }) {\r\n const errorValue = getObjectValue(id, formikProps.errors, '')\r\n const value = getObjectValue(id, formikProps.values, null)\r\n const touched = getObjectValue(id, formikProps.touched, !!skipCheckTouched)\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const isError = !!errorValue && Boolean(touched)\r\n const helperText = errorValue || ' ';\r\n\r\n useEffect(()=> {\r\n if( typeof value === 'string' || value instanceof String) {\r\n const momentVal = moment(value);\r\n if(momentVal.isValid()) {\r\n formikProps.setFieldValue(id, momentVal);\r\n formikProps.validateField(id);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n },[])\r\n\r\n const handleChange = (date) => {\r\n const value = date ? //\r\n (date.isValid() ? date.startOf(\"day\") : date)\r\n :\r\n null;\r\n formikProps.setFieldValue(id, value);\r\n formikProps.setFieldTouched(id, true);\r\n setTimeout((id)=> {try {formikProps.validateField(id)} catch (e){}}, 1, id);\r\n onChange(value ? value.clone() : null)\r\n }\r\n\r\n const handleError = (err) => {\r\n if (!Boolean(errorValue)) {\r\n if (errorValue !== err && err.length > 0) {\r\n formikProps.setFieldError(id, err)\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default withStyles(style)(DatePicker);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport TextInput from 'components/TextInput';\r\nimport RadioGroup from 'components/RadioGroup';\r\nimport DatePicker from 'components/DatePicker';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport booleanValues from 'constants/BooleanItems'\r\nimport InputLimits from 'constants/InputLimits';\r\nimport getObjectValue from 'libs/getObjectValue'\r\n\r\nconst limits = InputLimits.procedure.basicInformation;\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction OptionalFields({\r\n\tformikProps,\r\n\tclasses,\r\n}) {\r\n\tconst euFunded = getObjectValue('euFunded', formikProps.values, false)\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t{euFunded === \"true\" &&\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t{formikProps.values.termOption === 'date' ?\r\n\t\t\t\t\r\n\t\t\t\t:\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nOptionalFields.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tformikProps: PropTypes.object,\r\n}\r\n\r\nOptionalFields.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(OptionalFields);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Button from './Button';\r\n\r\nfunction CheckboxButton({\r\n\tclassName,\r\n\tid,\r\n\tlabel,\r\n\tformikProps,\r\n\tonClick\r\n}) {\r\n\t\r\n\tconst handleClick = () => {\r\n\t\tconst value = formikProps.values[id];\r\n\t\tformikProps.setFieldValue(id, !value);\r\n\t\tonClick();\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nCheckboxButton.propTypes = {\r\n\tformikProps: PropTypes.object,\r\n\tid: PropTypes.string.isRequired,\r\n\tlabel: PropTypes.string,\r\n\tonClick: PropTypes.func,\r\n}\r\n\r\nCheckboxButton.defaultProps = {\r\n\tonClick: () => {}\r\n}\r\n\r\nexport default CheckboxButton","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE';\r\nimport {isDemandPreparing} from \"libs/getDemandStatus\";\r\n\r\nconst limits = InputLimits.procedure.basicInformation;\r\n\r\nconst style = theme => ({\r\n root: {},\r\n text: {\r\n margin: `${theme.spacing(2)}px 0`\r\n },\r\n})\r\n\r\nfunction ContactFields(\r\n {\r\n classes,\r\n formikProps,\r\n }) {\r\n\r\n const creatingDemand = getObjectValue('identity', formikProps.values, false) <= 0 || isDemandPreparing();\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\nContactFields.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ContactFields);","//https://github.com/samanmohamadi/use-debounced-effect\r\nimport { useEffect, useRef } from 'react';\r\n\r\nconst DEFAULT_CONFIG = {\r\n timeout: 0,\r\n ignoreInitialCall: true,\r\n};\r\nexport function useDebouncedEffect(callback, config, deps = []) {\r\n let currentConfig;\r\n if (typeof config === 'object') {\r\n currentConfig = {\r\n ...DEFAULT_CONFIG,\r\n ...config,\r\n };\r\n } else {\r\n currentConfig = {\r\n ...DEFAULT_CONFIG,\r\n timeout: config,\r\n };\r\n }\r\n\r\n const { timeout, ignoreInitialCall } = currentConfig;\r\n const data = useRef({ firstTime: true });\r\n useEffect(() => {\r\n const { firstTime, clearFunc } = data.current;\r\n\r\n if (firstTime && ignoreInitialCall) {\r\n data.current.firstTime = false;\r\n return;\r\n }\r\n\r\n const handler = setTimeout(() => {\r\n if (clearFunc && typeof clearFunc === 'function') {\r\n clearFunc();\r\n }\r\n data.current.clearFunc = callback();\r\n }, timeout);\r\n\r\n return () => {\r\n clearTimeout(handler);\r\n };\r\n // eslint-disable-next-line\r\n }, [timeout, ...deps]);\r\n}\r\n\r\nexport default useDebouncedEffect;\r\n","import {useEffect} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {clearFormValues, setFormValues} from 'redux/actions'\r\nimport {connect} from 'react-redux'\r\nimport useDebouncedEffect from \"../hooks/useDebouncedEffect\";\r\n\r\n\r\nfunction SaveFormikValues({\r\n\tid,\r\n\tformikProps,\r\n\tsetFormValues,\r\n\tclearFormValues,\r\n\tsave=true,\r\n\tdebounceTimeout = 500\r\n}) {\r\n\tuseEffect(()=> {\r\n\t\treturn ()=> {\r\n\t\t\tclearFormValues(id);\r\n\t\t}\r\n\t},[id, clearFormValues])\r\n\r\n\tuseDebouncedEffect(() => {\r\n\t\tif(save) {\r\n\t\t\tsetFormValues(id, formikProps.values, formikProps.dirty)\r\n\t\t}\r\n\t}, {timeout: debounceTimeout, ignoreInitialCall: false},[save, setFormValues, id, formikProps.values, formikProps.dirty])\r\n\r\n\treturn null;\r\n}\r\n\r\nSaveFormikValues.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tdebounceTimeout: PropTypes.number\r\n}\r\n\r\nexport default connect((state) => ({\r\n\r\n}), {\r\n\tsetFormValues,\r\n\tclearFormValues\r\n})(SaveFormikValues);","import VS from 'constants/ValidationShema';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport Tr from 'translations/Translations';\r\nimport {isEuropeProcedure, isNonpublicProcedure, isNationalProcedure} from \"constants/ProcedureType\";\r\nimport {isDemandPreparing} from \"libs/getDemandStatus\";\r\n\r\nconst inputLimits = InputLimits.procedure.basicInformation;\r\n\r\nexport default (demandRealizationTypes, numberAutomated, caseClassificationSymbolRequired) => {\r\n return VS.lazy((values) => {\r\n const passiveOfferForm = values.passiveOfferForm;\r\n const euFunded = values.euFunded;\r\n const procedureType = values.procedureType;\r\n const realizationType = values.demandRealizationType;\r\n const europeProcedure = isEuropeProcedure(procedureType);\r\n const nonpublicProcedure = isNonpublicProcedure(procedureType);\r\n const nationalProcedure = isNationalProcedure(procedureType);\r\n const withNotice = realizationType ? demandRealizationTypes.find(x => x.name === realizationType).withNotice : false;\r\n const creatingDemand = values.identity <= 0 || isDemandPreparing();\r\n\r\n let baseObj = {\r\n number: VS.any().when(\"name\", {is: (x) => numberAutomated === true, then: VS.any(), otherwise: VS.stringMax(inputLimits.NUMBER)}),\r\n demandCategoryType: creatingDemand ? VS.string() : VS.any(),\r\n name: VS.stringMax(inputLimits.NAME),\r\n description: VS.stringMax(inputLimits.DESCRIPTION),\r\n formType: withNotice ? VS.string() : VS.any(),\r\n demandRealizationType: VS.string(),\r\n primaryTenderVariant: nationalProcedure ? VS.string() : VS.stringNoRq(),\r\n demandOrderType: VS.string(),\r\n categoryItemCpv: VS.arrayRequired(),\r\n\r\n contactPerson: VS.stringMaxNoRq(inputLimits.CONTACT_PERSON),\r\n\r\n contactPersonPhone: VS.stringMaxNoRq(inputLimits.CONTACT_PERSON_PHONE),\r\n contactPersonEmail: VS.emailMaxNoRq(inputLimits.PURCHASER_EMAIL),\r\n purchaserPhone: VS.stringMaxNoRq(inputLimits.PURCHASER_PHONE),\r\n purchaserFax: VS.stringMaxNoRq(inputLimits.PURCHASER_FAX),\r\n\r\n purchaserEmail: VS.emailMaxNoRq(inputLimits.PURCHASER_EMAIL),\r\n purchaserAdditionalInfo: VS.stringMaxNoRq(inputLimits.PURCHASER_ADDITIONAL_INFO),\r\n\r\n euProjectNumber: euFunded === \"true\" && VS.stringMax(inputLimits.EU_PROJECT_NUMBER),\r\n caseClassificationSymbol: VS.any().when(\"name\", {is: (x) => caseClassificationSymbolRequired === true, then: VS.string(), otherwise: VS.any()})\r\n }\r\n\r\n if (europeProcedure) {\r\n baseObj.requiredJEDZ = VS.string();\r\n }\r\n if (nonpublicProcedure) {\r\n baseObj.pzpExclusion = VS.stringNoRq();\r\n }\r\n\r\n baseObj.demandVariant = VS.string()\r\n\r\n if (passiveOfferForm) {\r\n return VS.object(baseObj)\r\n }\r\n\r\n // if (values.termOption === 'date') {\r\n // baseObj['termDate'] = VS.dateMinNoRq(new Date(), Tr(\"v_data_can_not_be_past\"))\r\n // }\r\n\r\n baseObj = {\r\n ...baseObj,\r\n\r\n auctionMade: VS.string(),\r\n digitalSign: VS.string(),\r\n priceType: VS.string(),\r\n\r\n externalPurchaseRequestNumber: VS.stringMaxNoRq(inputLimits.EOD),\r\n singleDealingJustification: VS.stringMaxNoRq(inputLimits.SINGLE_DEALING_JUSTIFICATION),\r\n estimationBase: VS.stringMaxNoRq(inputLimits.ESTIMATION_BASE),\r\n financialSource: VS.stringMaxNoRq(inputLimits.FINANCIAL_SOURCE),\r\n termDescription: VS.stringMaxNoRq(inputLimits.TERM_DESCRIPTION),\r\n orderValueDecisionDate: VS.dateMaxNoRq(new Date(), Tr('v_data_can_not_be_future')),\r\n fullNameOrderValueDecisionPerson: VS.stringMaxNoRq(inputLimits.FULL_NAME),\r\n managerEntrustedPerson: VS.stringMaxNoRq(inputLimits.FULL_NAME),\r\n }\r\n\r\n return VS.object(baseObj)\r\n })\r\n}","import { useEffect } from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport reduxStore from 'redux/store'\r\nimport { setSaveStatusError } from 'redux/actions'\r\n\r\nconst isErrors = (errors) => {\r\n\tif (Object.keys(errors).length <= 0) return false;\r\n\tfor (let k in errors) {\r\n\t\tconst e = errors[k];\r\n\t\tif (typeof e === 'object') {\r\n\t\t\tif(isErrors(e)) return true;\r\n\t\t} else {\r\n\t\t\tif(e.length > 0) return true;\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nfunction ShowErrorOnFailedSubmit({\r\n\tsetCheckError,\r\n\tcheckError,\r\n\tformikProps,\r\n}) {\r\n\tuseEffect(() => {\r\n\t\tif (checkError) {\r\n\t\t\tsetCheckError(false)\r\n\t\t\tconst errors = formikProps.errors\r\n\t\t\tif (isErrors(errors)) {\r\n\t\t\t\tconsole.log(errors);\r\n\t\t\t\tconst msg = Tr('submit_error')\r\n\t\t\t\treduxStore.dispatch(setSaveStatusError(msg));\r\n\t\t\t}\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [checkError])\r\n\treturn ''\r\n}\r\n\r\nexport default ShowErrorOnFailedSubmit;","export default () => {\r\n const href = window.location.href;\r\n return (href.includes(\"/correspondence/\") || href.includes(\"/nationalNotice/\") || href.includes(\"/offer/contractor/\") || //\r\n (href.includes(\"/purchaser/demand\") && href.includes(\"/preview\")));\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport { RestRequestGET } from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport supportedNoApiScreens from \"libs/supportedNoApiScreens\";\r\n\r\nconst _get = async (url) => {\r\n\ttry {\r\n\t\tconst res = await RestRequestGET(url);\r\n\t\tif (res.forceRedirectOldPlatform && !supportedNoApiScreens()) {\r\n\t\t\treduxStore.dispatch(setResource(\"redirectOldPlatform\", true));\r\n\t\t\twindow.location.replace(res.forceRedirectOldPlatform);\r\n\t\t} else {\r\n\t\t\treduxStore.dispatch(\r\n\t\t\t\tsetResource('demandHeader', res)\r\n\t\t\t);\r\n\t\t}\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nconst get = async (id = -1) => {\r\n\tlet url = Endpoints.HEADER(id)\r\n\r\n\tawait _get(url)\r\n}\r\n\r\nconst clear = () => {\r\n\treduxStore.dispatch(clearResource('demandHeader'))\r\n}\r\n\r\nexport default {\r\n\tget,\r\n\tclear\r\n}\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport HeaderService from 'services/HeaderService';\r\nimport reduxStore from 'redux/store';\r\nimport {clearResource, setResource} from 'redux/actions';\r\n\r\nconst updateHeader = (resp, demandId) => {\r\n if (resp.success) {\r\n HeaderService.get(demandId);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const modify = async (demandId) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_MODIFICATION(demandId));\r\n return updateHeader(resp, demandId);\r\n } catch (error) {\r\n }\r\n return false;\r\n};\r\n\r\nexport const publish = async (demandId) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_MODIFICATION_PUBLISH(demandId));\r\n return updateHeader(resp, demandId);\r\n } catch (error) {\r\n }\r\n};\r\n\r\nexport const cancel = async (demandId) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_MODIFICATION_CANCEL(demandId));\r\n return updateHeader(resp, demandId);\r\n } catch (error) {\r\n }\r\n};\r\n\r\nexport const publishOjsNotice = async (demandId) => {\r\n try {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_MODIFICATION_PUBLISH_OJS(demandId));\r\n return res;\r\n } catch (error) {\r\n }\r\n};\r\n\r\nexport const rollbackOjsNotice = async (demandId) => {\r\n try {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_MODIFICATION_ROLLBACK_OJS(demandId))\r\n return res\r\n } catch (error) {\r\n }\r\n};\r\n\r\nexport const noticeOjsStatus = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.DEMAND_MODIFICATION_OJS_STATUS(demandId));\r\n reduxStore.dispatch(\r\n setResource('ojsPublicationStatus', res)\r\n );\r\n return res;\r\n } catch (error) {\r\n }\r\n};\r\n\r\nexport const clearDemandChanged = () => {\r\n reduxStore.dispatch(clearResource('isDemandChanged'));\r\n}\r\nexport const isDemandChanged = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.DEMAND_MODIFICATION_CHANGED(demandId));\r\n reduxStore.dispatch(\r\n setResource('isDemandChanged', res)\r\n );\r\n } catch (error) {\r\n }\r\n};\r\n\r\nexport default {\r\n modify,\r\n publish,\r\n cancel,\r\n publishOjsNotice,\r\n rollbackOjsNotice,\r\n noticeOjsStatus,\r\n isDemandChanged,\r\n clearDemandChanged,\r\n}","import {useCallback, useEffect} from 'react'\r\nimport reduxStore from \"../redux/store\";\r\nimport {clearStepperStateCloseValidator, setStepperStateCloseValidator, setStepperStateDeleteFormDraftFunction, clearStepperStateDeleteFormDraftFunction,\r\n setStepperStateSaveFormDraftFunction, clearStepperStateSaveFormDraftFunction} from \"../redux/actions\";\r\n\r\n\r\nconst useStepperStateCloseValidator = (formId, customCloseValidatorFunction, deleteFormDraftFunc, saveFormDraftFunc) => {\r\n\r\n const defaultCloseValidatorFunction = useCallback(() => {\r\n //domyślna implementacja zakłada, że formularz zawiera {\r\n reduxStore.dispatch(\r\n setStepperStateCloseValidator(customCloseValidatorFunction ? customCloseValidatorFunction : defaultCloseValidatorFunction));\r\n if (!!deleteFormDraftFunc && typeof deleteFormDraftFunc === 'function')\r\n reduxStore.dispatch(setStepperStateDeleteFormDraftFunction(deleteFormDraftFunc));\r\n if (!!saveFormDraftFunc && typeof saveFormDraftFunc === 'function')\r\n reduxStore.dispatch(setStepperStateSaveFormDraftFunction(saveFormDraftFunc))\r\n return () => {\r\n reduxStore.dispatch(clearStepperStateCloseValidator());\r\n reduxStore.dispatch(clearStepperStateDeleteFormDraftFunction());\r\n reduxStore.dispatch(clearStepperStateSaveFormDraftFunction());\r\n }\r\n }, [customCloseValidatorFunction, defaultCloseValidatorFunction, formId, deleteFormDraftFunc, saveFormDraftFunc])\r\n}\r\n\r\nexport default useStepperStateCloseValidator;","import PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux'\r\nimport {useEffect, useRef} from \"react\";\r\nimport reduxStore from \"redux/store\";\r\nimport moment from \"moment\";\r\n\r\n\r\nfunction AutoSaveFormValues({\r\n\tid,\r\n\tformId,\r\n\tsaveFunc,\r\n\tformikProps,\r\n\tthrottleTimeout = 30000,\r\n\tdebounceTimeout = 10000,\r\n\tignoreInitialCall = true,\r\n\tcustomDirtyRef\r\n}) {\r\n\r\n\tconst data = useRef({ firstTime: true, timeoutSetTime: null });\r\n\r\n\tuseEffect(() => {\r\n\t\tconst { firstTime, timeoutSetTime } = data.current;\r\n\t\tif (firstTime && ignoreInitialCall) {\r\n\t\t\tdata.current.firstTime = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet throttleHandler;\r\n\t\tlet debounceHandler;\r\n\t\tif (!!customDirtyRef ? customDirtyRef.current === \"tak\" : formikProps.dirty) {\r\n\t\t\tif (!timeoutSetTime || moment.now() - timeoutSetTime > throttleTimeout) {\r\n\t\t\t\tdata.current.timeoutSetTime = moment.now();\r\n\t\t\t}\r\n\t\t\tthrottleHandler = setTimeout(() => {\r\n\t\t\t\tclearTimeout(debounceHandler)\r\n\t\t\t\tconst state = reduxStore.getState();\r\n\t\t\t\tsaveFunc(state.formValues[formId]);\r\n\t\t\t}, throttleTimeout - (moment.now() - data.current.timeoutSetTime));\r\n\t\t\tdebounceHandler = setTimeout(() => {\r\n\t\t\t\tclearTimeout(throttleHandler);\r\n\t\t\t\tdata.current.timeoutSetTime = null;\r\n\t\t\t\tconst state = reduxStore.getState();\r\n\t\t\t\tsaveFunc(state.formValues[formId]);\r\n\t\t\t}, debounceTimeout);\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tclearTimeout(throttleHandler);\r\n\t\t\tclearTimeout(debounceHandler);\r\n\t\t};\r\n\t\t// eslint-disable-next-line\r\n\t}, [throttleTimeout, debounceTimeout, id, formikProps.values, !!customDirtyRef ? customDirtyRef.current : formikProps.dirty]);\r\n\r\n\treturn null;\r\n}\r\n\r\nAutoSaveFormValues.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\ttimeout: PropTypes.number\r\n}\r\n\r\nexport default connect((state) => ({\r\n}))(AutoSaveFormValues);","import reduxStore from \"redux/store\";\r\n\r\nconst saveFormDraft = (id, saveFunc, formId) => {\r\n const state = reduxStore.getState();\r\n saveFunc(id, state.formValues[formId]);\r\n}\r\n\r\nexport default saveFormDraft;","import React, {useState} from 'react'\r\nimport {Collapse} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport Tr from 'translations/Translations';\r\nimport Divider from '../../../../../../../../components/Divider';\r\nimport RequiredFields from './RequiredFields';\r\nimport OptionalFields from './OptionalFields';\r\nimport moment from 'moment';\r\nimport CheckboxButton from 'components/CheckboxButton';\r\nimport GridBlock from 'components/GridBlock';\r\nimport {connect} from 'react-redux'\r\nimport Loading from 'components/Loading';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport DemandService from 'services/DemandService';\r\nimport ContactFields from './ContactFields';\r\nimport HelpTooltip from 'components/HelpTooltip';\r\nimport SaveFormikValues from 'components/SaveFormikValues';\r\nimport validationSchema from './constants/validationSchema';\r\nimport ShowErrorOnFailedSubmit from 'components/ShowErrorOnFailedSubmit';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport {useParams, withRouter} from \"react-router\";\r\nimport {isNonpublicProcedure} from \"constants/ProcedureType\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\n\r\nfunction MainForm(\r\n {\r\n data,\r\n demandAvailableOrganizations,\r\n demandRealizationTypes,\r\n demandAvailableFormTypes,\r\n numberAutomated,\r\n caseClassificationSymbolRequired,\r\n stepperState,\r\n demandValidation,\r\n demandHeader\r\n }) {\r\n const [checkError, setCheckError] = useState(false)\r\n const section = demandValidation.find(x => x.section === DemandValidation.DEMAND);\r\n const FORM_ID = 'mp_1_demand'\r\n const params = useParams();\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active;\r\n useStepperStateCloseValidator(FORM_ID, undefined,\r\n autoSaveFormDraftActive ? () => DemandService.deleteDraft(params.id) : undefined,\r\n autoSaveFormDraftActive ? () => saveFormDraft(params.id, DemandService.saveDraft, FORM_ID) : undefined);\r\n\r\n if (!data || !demandAvailableOrganizations || !demandRealizationTypes || !demandAvailableFormTypes || !demandHeader) {\r\n return \r\n }\r\n\r\n\r\n const handleSubmit = (values) => {\r\n DemandService.save(values).then(() => {\r\n if (data.identity !== -1) {\r\n HeaderService.get(data.identity)\r\n }\r\n });\r\n }\r\n\r\n const getField = (id, defaultValue = '') => getObjectValue(id, data, defaultValue)\r\n const getTimeField = (id, defaultValue = null) => {\r\n const v = getField(id, defaultValue);\r\n\r\n if (v) return moment(v);\r\n return v;\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nMainForm.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nMainForm.defaultProps = {}\r\n\r\n\r\nexport default connect((state) => ({\r\n data: state.resources.demand,\r\n demandAvailableOrganizations: state.resources.demandAvailableOrganizations,\r\n demandRealizationTypes: state.resources.demandRealizationTypes,\r\n demandAvailableFormTypes: state.resources.demandAvailableFormTypes,\r\n numberAutomated: state.resources.demandNumberAutomated,\r\n caseClassificationSymbolRequired: state.resources.caseClassificationSymbolRequired,\r\n demandHeader: state.resources.demandHeader,\r\n stepperState: state.stepper.state,\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(MainForm));\r\n","export default {\r\n\tSTANDARD: 'STANDARD', //ze słownika\r\n\tNOT_APPLICABLE: 'NOT_APPLICABLE', //nie dotyczy\r\n\tEXEMPTED: 'EXEMPTED', //zwolniony = value null\r\n\tREVERSED: 'REVERSED', //odwrócony = value null\r\n\tMIXED: 'MIXED', //mieszany, value null, wpisujemy netto i brutto ręcznie\r\n\tOTHER: 'OTHER', //spoza słownika wartość wpisywana recznie, brutto obliczmy\r\n}","import Tr from 'translations/Translations';\r\nimport VatType from './VatType';\r\n\r\nconst createItem = (value) => ({\r\n\tlabel: value + '%',\r\n\tvalue: '' + value,\r\n})\r\n\r\nconst createItemText = (label, value) => ({\r\n\tlabel,\r\n\tvalue,\r\n})\r\n\r\n// [0,3,5,7,8,23].map( x => createItem(x))\r\n\r\nexport const SELECT_VALUE = {\r\n\tDEFAULT: null,\r\n\tNOT_APPLICABLE: VatType.NOT_APPLICABLE,\r\n\tCANCEL: VatType.EXEMPTED,\r\n\tREVERSED: VatType.REVERSED,\r\n\tDIFFRENT_VAT: VatType.MIXED,\r\n\tOTHER: VatType.OTHER,\r\n}\r\n\r\nexport default [\r\n\tcreateItemText(Tr('not_applicable'), SELECT_VALUE.NOT_APPLICABLE),\r\n\tcreateItemText(Tr('released'), SELECT_VALUE.CANCEL),\r\n\tcreateItemText(Tr('reversed'), SELECT_VALUE.REVERSED),\r\n\tcreateItem(0),\r\n\tcreateItem(3),\r\n\tcreateItem(5),\r\n\tcreateItem(7),\r\n\tcreateItem(8),\r\n\tcreateItem(23),\r\n\tcreateItemText(Tr('different_vat_rates'), SELECT_VALUE.DIFFRENT_VAT),\r\n\tcreateItemText(Tr('other_2'), SELECT_VALUE.OTHER),\r\n]\r\n\r\n","export default (value) => {\r\n\tconst reg = /[,.]+$/g\r\n\r\n\tlet _value = '' + value\r\n\t_value.replace(reg, '')\r\n\t\r\n\treturn parseFloat(_value, 10)\r\n}","import {SELECT_VALUE} from \"../constants/VATItems\";\r\n\r\nexport const calcGrossValue = (netValue, vatOptionValue, optionOtherValue) => {\r\n\r\n if (vatOptionValue === null) return;\r\n\r\n if (isNaN(netValue)) return;\r\n\r\n if (vatOptionValue === SELECT_VALUE.DIFFRENT_VAT) {\r\n return;\r\n }\r\n\r\n if(vatOptionValue === SELECT_VALUE.CANCEL) {\r\n vatOptionValue = 0;\r\n }\r\n\r\n if (vatOptionValue === SELECT_VALUE.OTHER) {\r\n vatOptionValue = optionOtherValue;\r\n }\r\n\r\n let vatMultipler = vatOptionValue / 100\r\n\r\n let newGrossValue = netValue + netValue * vatMultipler;\r\n if (isNaN(newGrossValue)) return\r\n\r\n return Math.round(newGrossValue * 100) / 100;\r\n}\r\n\r\n\r\nexport const calcNetValue = (grossValue, vatOptionValue, optionOtherValue) => {\r\n if (vatOptionValue === null) return;\r\n if (isNaN(grossValue)) return\r\n\r\n if (vatOptionValue === SELECT_VALUE.DIFFRENT_VAT) {\r\n return;\r\n } else if(vatOptionValue === SELECT_VALUE.CANCEL) {\r\n vatOptionValue = 0;\r\n } else if (vatOptionValue === SELECT_VALUE.OTHER) {\r\n vatOptionValue = optionOtherValue;\r\n }\r\n\r\n const vatMultipler = vatOptionValue / 100;\r\n\r\n let newNetValue = grossValue;\r\n if (vatMultipler !== 0) newNetValue = Math.round((grossValue / (1 + vatMultipler)) * 100) / 100;\r\n\r\n if (isNaN(newNetValue)) return\r\n\r\n return newNetValue;\r\n}","import {useEffect, useRef} from 'react'\r\nimport {devMode} from \"../libs/isDevMode\";\r\n\r\n\r\nexport const useDidUpdateEffect = (effect, deps) => {\r\n if (devMode) {\r\n if (deps !== undefined && !Array.isArray(deps)) {\r\n throw new Error('Deps should be an Array');\r\n }\r\n }\r\n\r\n const didMountRef = useRef(false);\r\n\r\n useEffect(() => {\r\n if (didMountRef.current)\r\n return effect();\r\n else\r\n didMountRef.current = true;\r\n // eslint-disable-next-line\r\n }, deps);\r\n}","import React from 'react'\r\nimport {IconButton, InputAdornment, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from './GridBlock';\r\nimport TitledComponent from './TitledComponent';\r\nimport Select from './Select';\r\nimport TextInput from './TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport VATItems, {SELECT_VALUE} from 'constants/VATItems'\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport CloseIcon from '@material-ui/icons/Close'\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE';\r\nimport toFloat from 'libs/toFloat';\r\nimport {calcGrossValue, calcNetValue} from \"../libs/netGrosCalculations\";\r\nimport {useDidUpdateEffect} from \"../hooks/useDidUpdateEffect\";\r\nimport {PriceType, PriceTypeNetFieldVisible, PriceTypeVatFieldVisible, PriceTypeGrossFieldVisible} from \"constants/PriceTypes\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tgrid: {\r\n\t\t'&>*': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\t'&:not(:first-child)': {\r\n\t\t\t\tmarginLeft: theme.spacing(2)\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\ticonButton: {\r\n\t\tpadding: theme.spacing(1) / 2,\r\n\t},\r\n\totherTextInput: {\r\n\t\t'& input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button': {\r\n\t\t\t'-webkit-appearance': 'none',\r\n\t\t\tmargin: 0\r\n\t\t}\r\n\t},\r\n\tregularTitle: {\r\n\t\tfontWeight: theme.typography.fontWeightRegular,\r\n\t},\r\n})\r\n\r\nfunction NetGrossField({\r\n\tclasses,\r\n\tformikProps,\r\n\tid,\r\n\tpathPrefix,\r\n\ttitle,\r\n\trequired,\r\n\tpriceType = PriceType.NET_GROSS\r\n}) {\r\n\tconst net = !!pathPrefix ? `${pathPrefix}Value` : `${id}.value`;\r\n\tconst gross = !!pathPrefix ? `${pathPrefix}GrossValue` : `${id}.grossValue`\r\n\tconst option = !!pathPrefix ? `${pathPrefix}VatRate` : `${id}.vatRate`\r\n\tconst optionOther = !!pathPrefix ? `${pathPrefix}VatRateOther` : `${id}.vatRateOther`\r\n\r\n\r\n\tconst netValue = toFloat(getObjectValue(net, formikProps.values, 0))\r\n\tconst grossValue = toFloat(getObjectValue(gross, formikProps.values, 0))\r\n\tconst optionValue = getObjectValue(option, formikProps.values, null)\r\n\tconst optionOtherValue = getObjectValue(optionOther, formikProps.values, '')\r\n\tconst editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n\tconst doCalcGrossValue = () => {\r\n\t\tconst curGross = getObjectValue(gross, formikProps.values, 0);\r\n\t\tlet newGrossValue = calcGrossValue(netValue, optionValue, optionOtherValue);\r\n\t\tif(newGrossValue !== undefined && curGross !== newGrossValue)\r\n\t\t\tformikProps.setFieldValue(gross, newGrossValue.toFixed(2))\r\n\t}\r\n\r\n\tconst doCalcNetValue = () => {\r\n\t\tconst newNetValue = calcNetValue(grossValue, optionValue, optionOtherValue);\r\n\t\tif(newNetValue !== undefined)\r\n\t\t\tformikProps.setFieldValue(net, newNetValue.toFixed(2))\r\n\t}\r\n\r\n\tuseDidUpdateEffect(() => {\r\n\t\tdoCalcGrossValue()\r\n\t}, [netValue, optionValue, optionOtherValue])\r\n\r\n\tconst handleGrossBlur = () => {\r\n\t\tdoCalcNetValue()\r\n\t}\r\n\r\n\tconst closeTextInput = () => {\r\n\t\tformikProps.setFieldValue(option, \"\")\r\n\t}\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{PriceTypeNetFieldVisible(priceType) &&\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\t{PriceTypeVatFieldVisible(priceType) &&\r\n\t\t\t\t\t(optionValue === SELECT_VALUE.OTHER ?\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t%\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\r\n\t\t\t\t{PriceTypeGrossFieldVisible(priceType) &&\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nNetGrossField.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(NetGrossField);","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport RadioGroup from 'components/RadioGroup';\r\nimport Select, {createSelectItem} from 'components/Select';\r\nimport GridBlock from 'components/GridBlock';\r\nimport primaryTenderVariantValues from './fieldsOptions/primaryTenderVariant.values'\r\nimport orderTypeValues from 'constants/orderType.values'\r\nimport InputLimits from 'constants/InputLimits';\r\nimport HelpComponent from 'components/HelpComponent';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {isDemandPreparing} from \"libs/getDemandStatus\";\r\nimport OrganizationInput from \"components/OrganizationInput\";\r\nimport {isNationalProcedure} from \"constants/ProcedureType\";\r\nimport NetGrossField from \"components/NetGrossField\";\r\nimport TitledComponent from \"components/TitledComponent\";\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE';\r\nimport {DemandCategoryTypeLabel, DemandCategoryTypesForProcedure} from \"constants/DemandCategoryType\";\r\n\r\n\r\nconst limits = InputLimits.procedure.basicInformation;\r\n\r\nconst style = theme => ({\r\n root: {}\r\n})\r\n\r\nfunction ExPostFields(\r\n {\r\n formikProps,\r\n demandAvailableOrganizations,\r\n demandRealizationTypes,\r\n numberAutomated,\r\n demandHeader,\r\n }) {\r\n const creatingDemand = getObjectValue('identity', formikProps.values, false) <= 0 || isDemandPreparing();\r\n const procedureType = getObjectValue('procedureType', formikProps.values, \"\");\r\n const nationalProcedure = isNationalProcedure(procedureType);\r\n const realizationType = getObjectValue('demandRealizationType', formikProps.values, \"\");\r\n const createItem = (prefix, value) => ({label: Tr(prefix + '.' + value), value});\r\n const demandRealizationTypesTranslated = demandRealizationTypes.map(x => createItem(procedureType, x.name));\r\n const demandCategoryType = getObjectValue(\"demandCategoryType\", formikProps.values, null)\r\n \r\n const onDemandRealizationTypeChanged = (realizationType) => {\r\n\r\n if (realizationType === 'primary_tender') {\r\n formikProps.setFieldValue('primaryTenderVariant', primaryTenderVariantValues[0].value);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n\r\n {\r\n (creatingDemand || !!demandCategoryType) && createSelectItem(x, DemandCategoryTypeLabel(x)))}\r\n required\r\n />\r\n }\r\n\r\n {demandHeader?.applicationClientSettings?.ezdrpIntegration?.active &&\r\n \r\n }\r\n\r\n {demandHeader?.applicationClientSettings?.ezdpuwIntegration?.active &&\r\n \r\n }\r\n\r\n \r\n\r\n \r\n\r\n \r\n onDemandRealizationTypeChanged(e.target.value)}\r\n required\r\n disabled={!creatingDemand}\r\n />\r\n \r\n\r\n {nationalProcedure && realizationType === 'primary_tender' &&\r\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\nExPostFields.propTypes = {\r\n classes: PropTypes.any,\r\n formikProps: PropTypes.object,\r\n};\r\n\r\nExPostFields.defaultProps = {};\r\n\r\nexport default withStyles(style)(ExPostFields);","import VS from 'constants/ValidationShema';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport {SELECT_VALUE} from 'constants/VATItems';\r\n\r\nconst inputLimits = InputLimits.procedure.basicInformation;\r\n\r\nexport default (demandRealizationTypes, numberAutomated) => {\r\n return VS.lazy(() => {\r\n let baseObj = {\r\n number: VS.any().when(\"name\", {is: (x) => numberAutomated === true, then: VS.any(), otherwise: VS.stringMax(inputLimits.NUMBER)}),\r\n demandCategoryType: VS.string(),\r\n name: VS.stringMax(inputLimits.NAME),\r\n demandRealizationType: VS.string(),\r\n demandOrderType: VS.string(),\r\n primaryTenderVariant: VS.any().when(\"demandRealizationType\", {is: (x) => x === 'primary_tender', then: VS.string(), otherwise: VS.any()}),\r\n\r\n estimatedValue: VS.lazy(x => {\r\n const s = {\r\n value: VS.amount(0, false),\r\n grossValue: VS.amount(0, false),\r\n vatRate: VS.amount(),\r\n }\r\n if (x.vatRate === SELECT_VALUE.CANCEL ||\r\n x.vatRate === SELECT_VALUE.DIFFRENT_VAT) {\r\n s.vatRate = VS.any();\r\n }\r\n if (x.vatRate === SELECT_VALUE.OTHER) {\r\n return VS.object({\r\n ...s,\r\n vatRate: VS.any(),\r\n vatRateOther: VS.amountMax100()\r\n })\r\n }\r\n return VS.object(s);\r\n }),\r\n realizationGrossValue: VS.amountOptional(0, false),\r\n }\r\n\r\n return VS.object(baseObj)\r\n })\r\n}","import React, {useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport GridBlock from 'components/GridBlock';\r\nimport {connect} from 'react-redux'\r\nimport Loading from 'components/Loading';\r\nimport ExPostFields from './ExPostFields';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport DemandService from 'services/DemandService';\r\nimport SaveFormikValues from 'components/SaveFormikValues';\r\nimport validationSchemaExPost from './constants/validationSchemaExPost';\r\nimport ShowErrorOnFailedSubmit from 'components/ShowErrorOnFailedSubmit';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport {useParams, withRouter} from \"react-router\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\n\r\nfunction MainFormExPost(\r\n {\r\n data,\r\n demandAvailableOrganizations,\r\n demandRealizationTypes,\r\n numberAutomated,\r\n stepperState,\r\n demandValidation,\r\n demandHeader\r\n }) {\r\n const [checkError, setCheckError] = useState(false)\r\n const section = demandValidation.find(x => x.section === DemandValidation.DEMAND);\r\n const FORM_ID = 'mp_1_demand';\r\n const params = useParams();\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active;\r\n useStepperStateCloseValidator(FORM_ID, undefined,\r\n autoSaveFormDraftActive ? () => DemandService.deleteDraftExPost(params.id) : undefined,\r\n autoSaveFormDraftActive ? () => saveFormDraft(params.id, DemandService.saveDraftExPost, FORM_ID) : undefined);\r\n\r\n if (!data || !demandAvailableOrganizations || !demandRealizationTypes) {\r\n return \r\n }\r\n\r\n\r\n const handleSubmit = (values) => {\r\n DemandService.saveExPost(values).then(() => {\r\n if (data.identity !== -1) {\r\n HeaderService.get(data.identity)\r\n }\r\n });\r\n }\r\n\r\n const getField = (id, defaultValue = '') => getObjectValue(id, data, defaultValue);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nMainFormExPost.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nMainFormExPost.defaultProps = {}\r\n\r\n\r\nexport default connect((state) => ({\r\n data: state.resources.demand,\r\n demandAvailableOrganizations: state.resources.demandAvailableOrganizations,\r\n demandRealizationTypes: state.resources.demandRealizationTypes,\r\n numberAutomated: state.resources.demandNumberAutomated,\r\n demandHeader: state.resources.demandHeader,\r\n stepperState: state.stepper.state,\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(MainFormExPost));\r\n","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport DoubleButton from '../components/DoubleButton';\r\n\r\nfunction Confirm(\r\n {\r\n open,\r\n confirmTitle,\r\n confirmText,\r\n confirmText2,\r\n onConfirm,\r\n onCancel,\r\n labelConfirm = \"yes\",\r\n labelCancel = \"no\",\r\n translateConfirmTexts = true\r\n }) {\r\n\r\n return (\r\n }\r\n >\r\n {!!confirmText && \r\n {translateConfirmTexts ? Tr(confirmText) : confirmText}\r\n }\r\n {!!confirmText2 && \r\n {translateConfirmTexts ? Tr(confirmText2) : confirmText2}\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nConfirm.propTypes = {\r\n open: PropTypes.bool.isRequired,\r\n confirmText: PropTypes.string.isRequired,\r\n confirmText2: PropTypes.string,\r\n onConfirm: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n labelConfirm: PropTypes.string,\r\n labelCancel: PropTypes.string,\r\n translateConfirmTexts: PropTypes.bool\r\n}\r\n\r\nexport default Confirm;","import {withRouter} from \"react-router\";\r\nimport React, {useEffect, useMemo, useState} from \"react\";\r\nimport DemandService from 'services/DemandService';\r\nimport querystring from \"querystring\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from 'components/Loading';\r\nimport MainForm from \"./MainForm\";\r\nimport MainFormExPost from \"./MainFormExPost\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport {setFormDraftLoaded} from \"redux/actions\";\r\n\r\nfunction MainFormWrapper(\r\n {\r\n match,\r\n location,\r\n data,\r\n setFormDraftLoaded\r\n }) {\r\n const demandId = match.params.id;\r\n const search = location.search.slice(1);\r\n const urlParams = useMemo(() => querystring.parse(search), [search]);\r\n const [draftConfirm, setDraftConfirm] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n\r\n useEffect(() => {\r\n if (demandId) {\r\n DemandService.get(demandId, urlParams).then(res => {\r\n if (res.autoSaveFormDraftEnabled) {\r\n if (!!res.demand.exPost)\r\n DemandService.checkForDraftExPost(res.demand.identity).then(res => setDraftConfirm(res.result));\r\n else\r\n DemandService.checkForDraft(res.demand.identity).then(res => setDraftConfirm(res.result));\r\n }\r\n });\r\n } else {\r\n DemandService.getCreateNew(urlParams);\r\n HeaderService.get(demandId);\r\n }\r\n\r\n return () => {\r\n DemandService.clearResources(DemandService.DEMAND_RESOURCE_ID);\r\n DemandService.clearResources(DemandService.DEMAND_AVAILABLE_REALIZATIONS_RESOURCE_ID);\r\n DemandService.clearResources(DemandService.DEMAND_AVAILABLE_ORGANIZATIONS_RESOURCE_ID);\r\n DemandService.clearResources(DemandService.DEMAND_AVAILABLE_FORM_TYPES_RESOURCE_ID);\r\n DemandService.clearResources(DemandService.DEMAND_NUMBER_AUTOMATED);\r\n DemandService.clearResources(DemandService.DEMAND_CASE_CLASSIFICATION_SYMBOL_REQUIRED);\r\n }\r\n }, [demandId, urlParams]);\r\n\r\n const loadDemandDraft = (exPost) => {\r\n setDraftConfirm(false);\r\n setWorking(true);\r\n if (exPost)\r\n DemandService.loadDraftExPost(demandId).then(res => setFormDraftLoaded('mp_1_demand', res.success));\r\n else\r\n DemandService.loadDraft(demandId).then(res => setFormDraftLoaded('mp_1_demand', res.success));\r\n setWorking(false);\r\n }\r\n\r\n if (!data || working) {\r\n return \r\n } else if (data.exPost) {\r\n return <>\r\n \r\n loadDemandDraft(true)}\r\n onCancel={() => setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n >\r\n } else {\r\n return <>\r\n \r\n loadDemandDraft(false)}\r\n onCancel={() => setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n >\r\n }\r\n}\r\n\r\nexport default connect((state) => ({\r\n data: state.resources.demand,\r\n}), {setFormDraftLoaded})(withRouter(MainFormWrapper));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport MainFormWrapper from \"./dataEdit/MainFormWrapper\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Index;","import React from 'react'\r\nimport {Box, ListItem, Typography, withStyles} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport moment from 'moment';\r\nimport DateFormats from \"constants/DateFormats\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n grid: {\r\n '&>*:first-child': {\r\n flexGrow: 1,\r\n marginRight: theme.spacing(2),\r\n },\r\n '&>*:nth-child(2)': {\r\n width: 130\r\n }\r\n },\r\n})\r\n\r\nfunction ListElement({\r\n classes,\r\n item,\r\n trPrefix = \"\"\r\n\r\n }) {\r\n\r\n const {owner, history} = item\r\n const {operationType, operationDatetime, role} = history\r\n const {firstName, lastName, member} = owner\r\n\r\n const boldDouble = (firstName, lastName) => {`${firstName} ${lastName}`}\r\n const bold = (t) => {t}\r\n\r\n const textVariant = {\r\n DELETE: (<>\r\n {Tr('history_popup_del_1')}{' '}\r\n {bold(Tr('history_popup_del_2'))}{' '}\r\n {Tr('history_popup_del_3')}\r\n >),\r\n ADD: (<>\r\n {Tr('history_popup_add_1')}{' '}\r\n {bold(Tr('history_popup_add_2'))}{' '}\r\n {Tr('history_popup_add_3')}{' '}\r\n {Tr('history_popup_add_4')}{' '}\r\n {bold(Tr(trPrefix + role.toUpperCase()))}\r\n >),\r\n MODIFY: (<>\r\n {Tr('history_popup_role_0')}{' '}\r\n {bold(Tr(trPrefix + role.toUpperCase()))}\r\n >)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {member ? boldDouble(member.firstName, member.lastName) : boldDouble(firstName, lastName)}\r\n {' '}\r\n {textVariant[operationType.trim()]}\r\n \r\n \r\n {moment(operationDatetime).format(DateFormats.DATE_FORMAT)}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default withStyles(style)(ListElement);","import React from 'react'\r\nimport {List, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations'\r\nimport GridBlock from 'components/GridBlock';\r\nimport ListElement from './ListElement';\r\nimport Loading from \"../../Loading\";\r\nimport SingleButton from \"../components/SingleButton\";\r\nimport {connect} from \"react-redux\";\r\n\r\n\r\nfunction ChangeHistory(\r\n {\r\n open,\r\n onClose,\r\n historyTab,\r\n purchasingGroupHeader\r\n }) {\r\n\r\n const createTab = () => {\r\n let newHistoryTab = []\r\n historyTab.forEach(x => {\r\n let {history, ...other} = x\r\n history.forEach(inner => {\r\n newHistoryTab.push({\r\n history: inner,\r\n owner: {...other}\r\n })\r\n });\r\n });\r\n\r\n let sortTable = newHistoryTab.sort((a, b) => {\r\n return a.history.operationDatetime - b.history.operationDatetime\r\n })\r\n\r\n if (sortTable.length === 0) return (\r\n {Tr('empty_history')}\r\n )\r\n\r\n return sortTable.reverse().slice(0, 5).map((item, i) => {\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\nChangeHistory.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\nexport default connect((state) => ({\r\n purchasingGroupHeader: state.resources.purchasingGroupHeader\r\n}), {\r\n\r\n})(ChangeHistory);\r\n","import React from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Button from 'components/Button';\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => {\r\n const width = 400;\r\n return {\r\n root: {\r\n marginTop: theme.spacing(2)\r\n },\r\n button: {\r\n width,\r\n height: 60,\r\n },\r\n text: {\r\n width,\r\n textAlign: 'center',\r\n marginTop: theme.spacing(2),\r\n }\r\n }\r\n}\r\n\r\nfunction StartScreen(\r\n {\r\n classes,\r\n onFormOpen,\r\n onImporterOpen\r\n }) {\r\n return (\r\n \r\n \r\n \r\n \r\n {Tr('prepare_offer_form_description')}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {Tr('import_form_more_than_description')}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nStartScreen.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(StartScreen);","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport reduxStore from 'redux/store'\r\nimport {SELECT_VALUE} from 'constants/VATItems';\r\nimport {addObjectResource, addObjectResources, clearResource, setResource, setSaveStatusDialog, setSaveStatusError, setSaveStatusLoading} from 'redux/actions'\r\nimport Tr from 'translations/Translations';\r\nimport VatType from 'constants/VatType';\r\nimport getObjectValue from \"../libs/getObjectValue\";\r\nimport moment from \"libs/moment\";\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n}\r\n\r\nconst getDealingsMatchingCriterion = async (demandId, critId) => {\r\n const res = await RestRequestGET(Endpoints.DEALINGS_WITH_CRITERION(demandId, critId))\r\n return res;\r\n}\r\n\r\n\r\nconst getDealingsMatchingCriterionName = async (demandId, stageId, criteriumType, name) => {\r\n let params = {\r\n name\r\n }\r\n const res = await RestRequestGET(Endpoints.DEALINGS_MATCHING_CRITERION(demandId, stageId, criteriumType), {params});\r\n return res;\r\n}\r\n\r\nconst _prepareIncomingDealing = (dealing) => {\r\n const {agreementRealizationDate, ...other} = dealing;\r\n\r\n const text = getObjectValue('agreementRealizationDate.text', dealing);\r\n const date = getObjectValue('agreementRealizationDate.date', dealing);\r\n return {\r\n ...other,\r\n termOption: text ? \"text\" : \"date\",\r\n termDate: date ? moment(date) : null,\r\n termDescription: text\r\n }\r\n};\r\n\r\nconst getList = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.DEALINGS(demandId));\r\n\r\n const modRes = {\r\n ...res,\r\n dealings: res.dealings.map(x => _prepareIncomingDealing(x)),\r\n };\r\n\r\n\r\n reduxStore.dispatch(\r\n setResource('dealingsList', modRes)\r\n )\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n}\r\n\r\nconst get = async (demandId, dealingId) => {\r\n const {resources} = reduxStore.getState()\r\n const dealing = resources.dealing ? resources.dealing[dealingId] : undefined\r\n if (dealing) return;\r\n\r\n try {\r\n const res = await RestRequestGET(Endpoints.DEALINGS_SINGLE(demandId, dealingId));\r\n const modRes = _prepareIncomingDealing(res);\r\n reduxStore.dispatch(\r\n addObjectResource('dealing', dealingId, modRes)\r\n )\r\n return modRes;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getFullList = async (demandId, dealingIds) => {\r\n\r\n const data = {\r\n items: dealingIds\r\n };\r\n\r\n const res = await RestRequestPOST(Endpoints.DEALINGS_LIST(demandId), data);\r\n const payload = {};\r\n res.forEach(item => {\r\n payload[item.identity] = _prepareIncomingDealing(item)\r\n });\r\n reduxStore.dispatch(\r\n addObjectResources('dealing', payload)\r\n );\r\n return payload;\r\n\r\n}\r\n\r\nconst _formatSinglePartValues = (values) => {\r\n // eslint-disable-next-line\r\n const {\r\n _open,\r\n _edit,\r\n _touched,\r\n _load,\r\n amount,\r\n items,\r\n name,\r\n termOption,\r\n termDescription,\r\n termDate,\r\n agreementRealizationDate,\r\n ...otherValues\r\n } = values;\r\n\r\n const {\r\n vatRate,\r\n vatRateOther,\r\n ...otherAmount\r\n } = amount;\r\n\r\n let newVatRate = vatRate;\r\n let vatType = VatType.STANDARD;\r\n if (vatRate === SELECT_VALUE.OTHER) {\r\n newVatRate = vatRateOther\r\n vatType = VatType.OTHER;\r\n } else if (vatRate === SELECT_VALUE.CANCEL) {\r\n newVatRate = 0\r\n vatType = VatType.EXEMPTED\r\n } else if (vatRate === SELECT_VALUE.DIFFRENT_VAT) {\r\n newVatRate = 0\r\n vatType = VatType.MIXED\r\n }\r\n\r\n let newItems = items;\r\n if (newItems.length === 1) {\r\n const curName = items[0].name ? items[0].name.trim() : null;\r\n newItems = [{\r\n ...newItems[0],\r\n name: !curName ? name : curName\r\n }]\r\n }\r\n\r\n newItems = newItems.map(i => {\r\n let iNewVatRate = i.offerVatRate;\r\n let iVatType = VatType.STANDARD;\r\n if (i.offerVatRate === SELECT_VALUE.OTHER) {\r\n iNewVatRate = i.offerVatRateOther\r\n iVatType = VatType.OTHER;\r\n } else if (i.offerVatRate === SELECT_VALUE.CANCEL) {\r\n iNewVatRate = 0\r\n iVatType = VatType.EXEMPTED\r\n } else if (i.offerVatRate === SELECT_VALUE.DIFFRENT_VAT) {\r\n iNewVatRate = 0\r\n iVatType = VatType.MIXED\r\n } else if (i.offerVatRate === SELECT_VALUE.NOT_APPLICABLE) {\r\n iNewVatRate = 0\r\n iVatType = VatType.NOT_APPLICABLE\r\n } else if (i.offerVatRate === SELECT_VALUE.REVERSED) {\r\n iNewVatRate = 0\r\n iVatType = VatType.REVERSED\r\n }\r\n return {\r\n ...i,\r\n offerVatType: iVatType,\r\n offerVatValue: iNewVatRate\r\n }\r\n });\r\n\r\n const formatDate = (x) => (x ? x.format() : x);\r\n return {\r\n ...otherValues,\r\n name,\r\n agreementRealizationDate: {\r\n date: termOption === 'date' ? formatDate(termDate) : null,\r\n text: termOption === 'text' ? termDescription : null,\r\n },\r\n amount: {\r\n ...otherAmount,\r\n vatRate: newVatRate,\r\n vatType,\r\n },\r\n items: newItems\r\n }\r\n}\r\n\r\nconst _formatFormValues = (values) => {\r\n const onlyTouchedAndNew = values.form.filter(\r\n element => element._touched || element.identity < 0\r\n )\r\n const formatedValues = onlyTouchedAndNew.reduce((prevValue, currValue) => {\r\n return [\r\n ...prevValue,\r\n _formatSinglePartValues(currValue)\r\n ]\r\n }, [])\r\n return formatedValues\r\n}\r\n\r\nconst _getDeleteElements = (values) => {\r\n const {resources} = reduxStore.getState()\r\n const dealings = resources.dealingsList.dealings;\r\n\r\n return dealings.reduce((prev, curr) => {\r\n const id = curr.identity;\r\n const el = values.form.find(x => x.identity === id)\r\n if (!!el) return prev;\r\n return [\r\n ...prev,\r\n id\r\n ]\r\n }, [])\r\n}\r\n\r\nconst _save = async (url, values, demandId) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n\r\n const dealingsToDelete = _getDeleteElements(values)\r\n const dealingsToSave = _formatFormValues(values)\r\n\r\n if (dealingsToSave.length <= 0 && dealingsToDelete.length <= 0) {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n return true;\r\n }\r\n\r\n const data = {\r\n dealingsToDelete,\r\n dealingsToSave,\r\n }\r\n\r\n try {\r\n let res = await RestRequestPOST(url, data)\r\n if (res.success) {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n return true;\r\n } else {\r\n let msg;\r\n if (res.errors) {\r\n if (dealingsToSave.some((d, i) => !!res.errors[`dealingsToSave[${i}].items`])) {\r\n const dealingWithErrorId = dealingsToSave.filter((d, i) => !!res.errors[`dealingsToSave[${i}].items`]).map(d => d.identity)[0];\r\n const dealingWithErrorIndex = dealingsToSave.map(d => d.identity).indexOf(dealingWithErrorId);\r\n msg = res.errors[`dealingsToSave[${dealingWithErrorIndex}].items`];\r\n } else if (dealingsToSave.some((d, i) => !!res.errors[`dealingsToSave[${i}].stages[0].criterions`])) {\r\n const dealingWithErrorId = dealingsToSave.filter((d, i) => !!res.errors[`dealingsToSave[${i}].stages[0].criterions`]).map(d => d.identity)[0];\r\n const dealingWithErrorIndex = dealingsToSave.map(d => d.identity).indexOf(dealingWithErrorId);\r\n msg = res.errors[`dealingsToSave[${dealingWithErrorIndex}].stages[0].criterions`];\r\n if (msg === 'wrongWeightSum') {\r\n msg = Tr('v_number_min_criteria', {min: 100});\r\n }\r\n } else if (dealingsToSave.some((d, i) => !!res.errors[`dealingsToSave[${i}].amount.value`])) {\r\n const dealingWithErrorId = dealingsToSave.filter((d, i) => !!res.errors[`dealingsToSave[${i}].amount.value`]).map(d => d.identity)[0];\r\n const dealingWithErrorIndex = dealingsToSave.map(d => d.identity).indexOf(dealingWithErrorId);\r\n msg = `${Tr('part')} ${dealingWithErrorIndex + 1}: ${res.errors[`dealingsToSave[${dealingWithErrorIndex}].amount.value`]}`;\r\n }\r\n }\r\n if (!msg) {\r\n msg = Tr('unknown_error_message');\r\n }\r\n reduxStore.dispatch(setSaveStatusError(msg));\r\n\r\n }\r\n } catch (error) {\r\n }\r\n return false;\r\n}\r\n\r\nconst save = async (demandId, values) => {\r\n return await _save(Endpoints.DEALINGS_SAVE(demandId), values, demandId)\r\n}\r\n\r\nconst validate = async (demandId) => {\r\n return RestRequestGET(Endpoints.DEALINGS_VALIDATE(demandId));\r\n}\r\n\r\nconst checkForDraft = async (id, dealingId) => {\r\n return await RestRequestGET(Endpoints.DEALINGS_AUTOSAVE_CHECK(id, dealingId));\r\n}\r\n\r\nconst loadDraft = async (id, dealingId) => {\r\n const res = await RestRequestGET(Endpoints.DEALINGS_AUTOSAVE(id, dealingId));\r\n if (res.success)\r\n res.result = _prepareIncomingDealing(res.result);\r\n return res;\r\n}\r\n\r\nconst saveDraft = async (id, formValues) => {\r\n const dealingsToDelete = _getDeleteElements(formValues);\r\n const dealingsToSave = _formatFormValues(formValues);\r\n const data = {\r\n dealingsToDelete,\r\n dealingsToSave,\r\n }\r\n await RestRequestPOST(Endpoints.DEALINGS_AUTOSAVE_BATCH(id), data)\r\n}\r\n\r\nconst deleteDraft = async (id) => {\r\n await RestRequestDELETE(Endpoints.DEALINGS_AUTOSAVE_BATCH(id));\r\n}\r\n\r\nconst getRealizationValues = async (demandId) => {\r\n return await RestRequestGET(Endpoints.DEALING_REALIZATION_VALUE(demandId));\r\n}\r\nconst saveRealizationValues = async (demandId, values, publishMode) => {\r\n return await RestRequestPOST(Endpoints.DEALING_REALIZATION_VALUE(demandId) + (publishMode != null ? '?publishMode=' + publishMode : ''), values);\r\n}\r\n\r\nconst getFinalRealizationValues = async (demandId) => {\r\n return await RestRequestGET(Endpoints.DEALING_FINAL_REALIZATION_VALUE(demandId));\r\n}\r\nconst saveFinalRealizationValues = async (demandId, values) => {\r\n return await RestRequestPOST(Endpoints.DEALING_FINAL_REALIZATION_VALUE(demandId), values);\r\n}\r\n\r\nconst getRealizationValueStatus = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.DEALING_REALIZATION_VALUE_STATUS(demandId));\r\n reduxStore.dispatch(setResource(RESOURCE_DEALING_REALIZATION_VALUE_STATUS, resp));\r\n return resp;\r\n}\r\n\r\nconst publishRealizationAmountValue = async (demandId) => {\r\n await RestRequestPUT(Endpoints.DEALING_REALIZATION_VALUE_PUBLISH(demandId));\r\n}\r\n\r\nconst unpublishRealizationAmountValue = async (demandId) => {\r\n await RestRequestPUT(Endpoints.DEALING_REALIZATION_VALUE_UNPUBLISH(demandId));\r\n}\r\n\r\nconst RESOURCE_DEALING_REALIZATION_VALUE_STATUS = 'dealingsRealizationValueStatus';\r\n\r\nexport default {\r\n getList,\r\n get,\r\n save,\r\n checkForDraft,\r\n loadDraft,\r\n saveDraft,\r\n deleteDraft,\r\n clearResources,\r\n getDealingsMatchingCriterion,\r\n getDealingsMatchingCriterionName,\r\n getFullList,\r\n getRealizationValues,\r\n getFinalRealizationValues,\r\n getRealizationValueStatus,\r\n saveRealizationValues,\r\n saveFinalRealizationValues,\r\n publishRealizationAmountValue,\r\n unpublishRealizationAmountValue,\r\n validate,\r\n RESOURCE_DEALING_REALIZATION_VALUE_STATUS\r\n}","import Tr from \"translations/Translations\";\r\n\r\nconst createItem = (value, key) => ({\r\n value,\r\n label: Tr(key),\r\n})\r\n\r\nexport const SOURCE_TYPES = {\r\n SUPPLIER: \"SUPPLIER\",\r\n INITIATOR: \"INITIATOR\"\r\n}\r\n\r\nexport default [\r\n createItem(SOURCE_TYPES.SUPPLIER, 'offerSourceType.supplier'),\r\n createItem(SOURCE_TYPES.INITIATOR, 'offerSourceType.initiator')\r\n]","import {createSelectItem} from \"components/Select\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nexport const ITEM_TYPES = {\r\n BASIC: \"basic\",\r\n OPTIONAL: \"optional\",\r\n}\r\n\r\nexport const ItemTypes = [\r\n createSelectItem(ITEM_TYPES.BASIC, Tr('position_type.basic')),\r\n createSelectItem(ITEM_TYPES.OPTIONAL, Tr('position_type.optional'))\r\n]","import {SELECT_VALUE} from 'constants/VATItems'\r\nimport {SOURCE_TYPES} from 'constants/OfferSourceTypes'\r\nimport {ITEM_TYPES} from \"./itemTypes\";\r\n\r\n\r\nconst netGross = {\r\n grossValue: '',\r\n value: '',\r\n vatRate: SELECT_VALUE.DEFAULT,\r\n}\r\n\r\nexport const newItem = {\r\n name: '',\r\n description: '',\r\n quantity: {\r\n value: \"1\",\r\n uom: 'SZT'\r\n },\r\n type: ITEM_TYPES.BASIC,\r\n offerVatPredefined: false,\r\n offerSourceType: SOURCE_TYPES.SUPPLIER,\r\n allowQuantityEditInOffer: false,\r\n}\r\n\r\nexport const newElement = (identity, demandId) => ({\r\n identity,\r\n demandId,\r\n _edit: true,\r\n _open: true,\r\n _touched: true,\r\n name: null,\r\n description: '',\r\n categoryItemCpv: [],\r\n termOption: \"date\",\r\n amount: netGross,\r\n realizationBeforeOfferAmount: netGross,\r\n items: [newItem],\r\n stages: [\r\n {\r\n conditions: [],\r\n conditionsInSiwz: true,\r\n criterions: [],\r\n parameters: [],\r\n }\r\n ],\r\n})\r\n\r\n\r\nexport default [\r\n newElement(-1),\r\n]\r\n","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Button from 'components/Button';\r\nimport AddIcon from '@material-ui/icons/AddBoxOutlined'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction AddButton({\r\n\tclasses,\r\n\tchildren,\r\n\t...others\r\n}) {\r\n\t\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nAddButton.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(AddButton);","import React from 'react'\r\nimport { withStyles, Backdrop } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Loading from '../../Loading';\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\ttop: 0,\r\n\t\tleft: 0,\r\n\t\tright: 0,\r\n\t\tbottom: 0,\r\n\t\tzIndex: theme.zIndex.modal,\r\n\t\tposition: 'fixed',\r\n\t},\r\n})\r\n\r\nfunction LoadingScreen({\r\n\t\t\t\t\t\t classes,\r\n\t\t\t\t\t\t open = true,\r\n\t\t\t\t\t }) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t{open && }\r\n\t\t
\r\n\t)\r\n}\r\n\r\nLoadingScreen.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nLoadingScreen.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(LoadingScreen);","import React from 'react';\r\nimport LoadingScreen from \"components/complex/loadingScreen/LoadingScreen\";\r\n\r\n\r\nconst ImporterForm = (\r\n {\r\n downloadingInProgress\r\n }) => {\r\n\r\n\r\n return (\r\n <>\r\n {downloadingInProgress ? : ''}\r\n >\r\n )\r\n};\r\n\r\n\r\nexport default ImporterForm\r\n\r\n","import {RestRequestBLOB} from \"libs/RestRequest\";\r\nimport Endpoints from \"constants/Endpoints\";\r\n\r\nexport const downloadImportTemplate = async (demandId, successCallback = () => {}, errorCallback = () => {}) => {\r\n try {\r\n RestRequestBLOB(Endpoints.DEALINGS_EXPORT(demandId))\r\n .then(successCallback)\r\n .catch(errorCallback);\r\n } catch (error) {\r\n }\r\n}\r\n\r\n","import React from 'react'\r\nimport { withStyles, Table, TableHead, TableBody } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n\ttable: {\r\n\t\ttableLayout: 'fixed',\r\n\r\n\t\t'& td, th': {\r\n\t\t\toverflow: 'hidden',\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction STableContainer({\r\n\tclasses,\r\n\tchildren,\r\n\thead,\r\n\tclassName,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{head}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t
\r\n\t)\r\n}\r\n\r\nSTableContainer.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(STableContainer);","import React from 'react'\r\nimport {TableCell, TableRow, TableSortLabel, Tooltip} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';\r\nimport Tr from 'translations/Translations';\r\n\r\nfunction SortIcon(props) {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nfunction STableRow(\r\n {\r\n items = [],\r\n className,\r\n cellClassName,\r\n cellClassNames = []\r\n }) {\r\n\r\n if (items.length <= 0) return '';\r\n\r\n return (\r\n \r\n {items.map((item, i) => {\r\n let ccn;\r\n if (cellClassNames.length > i) {\r\n ccn = cellClassNames[i];\r\n }\r\n\r\n if (item === null) item = '';\r\n let obj = item;\r\n if ((typeof item !== 'object') || (typeof item === 'object' && item.value === undefined)) {\r\n obj = {value: item}\r\n }\r\n\r\n const cellBody = () => {\r\n if (obj.sort) {\r\n return (\r\n \r\n {obj.value}\r\n \r\n )\r\n }\r\n return obj.value;\r\n }\r\n\r\n return \r\n {cellBody()}\r\n \r\n })}\r\n \r\n )\r\n}\r\n\r\nSTableRow.propTypes = {\r\n classes: PropTypes.any,\r\n items: PropTypes.arrayOf(PropTypes.oneOfType([\r\n PropTypes.shape({\r\n value: PropTypes.any,\r\n className: PropTypes.string,\r\n }),\r\n PropTypes.any,\r\n ]))\r\n}\r\n\r\n\r\nexport default STableRow;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport STableContainer from './STableContainer';\r\nimport STableRow from './STableRow';\r\n\r\nfunction SimpleTable({\r\n\theaders,\r\n\titems = [],\r\n\tclassName,\r\n\tcellClassName = '',\r\n\tcolumnClasses = [],\r\n\trowClasses = []\r\n\r\n}) {\r\n\t\r\n\treturn (\r\n\t\t: undefined}\r\n\t\t>\r\n\t\t\t{items.map( (rowElements, i) => {\r\n\t\t\t\treturn( rowElements !== null ?\r\n\t\t\t\t\t : null\r\n\t\t\t\t)\r\n\t\t\t})}\r\n\t\t\r\n\t)\r\n}\r\n\r\nSimpleTable.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default SimpleTable;","import React, {useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dropzone from 'components/Dropzone'\r\nimport UploadService from 'services/UploadService';\r\nimport {Typography} from '@material-ui/core';\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport Dialog from \"components/Dialog\";\r\nimport Tr from \"translations/Translations\";\r\nimport Button from \"components/Button\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport clsx from \"clsx\";\r\nimport {clearResource, setOpenForm, setOpenImporter, setStepperState} from \"redux/actions\";\r\nimport {connect} from \"react-redux\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport DealingsService from \"services/DealingsService\";\r\nimport LoadingScreen from \"components/complex/loadingScreen/LoadingScreen\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n dropzone: {\r\n marginTop: theme.spacing(1)\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n reasonColumn: {\r\n color: theme.palette.error.main\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n }\r\n\r\n}));\r\n\r\nfunction UploadImportFile(\r\n {\r\n id,\r\n clearResource,\r\n setStepperState,\r\n setUploadOpened,\r\n setOpenImporter,\r\n setOpenForm,\r\n ...others\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n // eslint-disable-next-line\r\n const [importErrors, setImportErrors] = useState([]);\r\n const [processingUpload, setProcessingUpload] = useState(false);\r\n const [openSuccessPopup, setOpenSuccessPopup] = useState(false);\r\n\r\n const handlePickFile = (files) => {\r\n setProcessingUpload(true);\r\n\r\n //start upload\r\n files.forEach((element, index) => {\r\n UploadService.upload(element, () => {\r\n }, Endpoints.DEALINGS_IMPORT(id)).then(res => {\r\n if (res.success) {\r\n setOpenSuccessPopup(true);\r\n } else {\r\n setImportErrors(res.errors)\r\n }\r\n }).catch((e) => {\r\n console.error(e);\r\n setImportErrors([Tr(\"unknown_error_message\")])\r\n }).finally(() => setProcessingUpload(false))\r\n });\r\n };\r\n const clearImportErrors = () => {\r\n setImportErrors([]);\r\n };\r\n\r\n const handleCloseSuccessPopup = () => {\r\n setOpenSuccessPopup(false);\r\n DealingsService.clearResources('dealing');\r\n DealingsService.clearResources('dealingsList');\r\n DealingsService.getList(id).then(() => {\r\n setOpenImporter(false);\r\n setOpenForm(true);\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\nUploadImportFile.propTypes = {\r\n classes: PropTypes.any,\r\n\r\n};\r\n\r\nexport default connect((state) => ({}), {\r\n setOpenImporter,\r\n setOpenForm,\r\n setStepperState,\r\n clearResource\r\n})(UploadImportFile);","import React, {useMemo, useState} from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport AddButton from 'components/button/AddButton';\r\nimport Tr from 'translations/Translations';\r\nimport {newElement} from '../constants/initialValues'\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {withRouter} from \"react-router\"\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport ImporterForm from \"./ImporterForm\";\r\nimport {downloadImportTemplate} from \"../lib/downloadImportTemplate\";\r\nimport clsx from \"clsx\";\r\nimport UploadImportFile from \"./UploadImportFile\";\r\nimport {connect} from \"react-redux\";\r\nimport {wasEverPublished, isNationalProcedure, isEuropeProcedure} from \"libs/getDemandStatus\";\r\n\r\n\r\nconst style = theme => ({\r\n root: {}\r\n})\r\n\r\nfunction AdditionalButtons(\r\n {\r\n classes,\r\n id,\r\n formikProps,\r\n match,\r\n demandHeader\r\n }) {\r\n\r\n const demandId = match.params.id;\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const isPublished = useMemo(() => demandHeader ? wasEverPublished() : undefined, [demandHeader]);\r\n const isPublic = useMemo(() => demandHeader ? isNationalProcedure() || isEuropeProcedure() : undefined, [demandHeader]);\r\n\r\n const [confirmExportPopup, setConfirmExportPopup] = useState(false);\r\n const [downloadingInProgress, setDownloadingInProgress] = useState(false);\r\n const [uploadOpened, setUploadOpened] = useState(false);\r\n\r\n const handleAdd = () => {\r\n const elements = getObjectValue(id, formikProps.values);\r\n\r\n const lastElement = elements.reduce((prev, curr) => {\r\n if (prev.identity < curr.identity) return prev;\r\n return curr;\r\n }, {identity: 0});\r\n const nextId = lastElement.identity - 1;\r\n let newElementsList = [...elements];\r\n newElementsList.forEach((x, i) => {\r\n newElementsList[i]._open = false;\r\n });\r\n newElementsList = [\r\n ...newElementsList,\r\n newElement(nextId, demandId)\r\n ];\r\n\r\n formikProps.setFieldValue(id, newElementsList)\r\n\r\n };\r\n\r\n const hideDownloadingTemplate = () => {\r\n setDownloadingInProgress(false);\r\n };\r\n const downloadImportTemplateClick = () => {\r\n setConfirmExportPopup(false);\r\n setDownloadingInProgress(true);\r\n downloadImportTemplate(demandId, hideDownloadingTemplate, hideDownloadingTemplate);\r\n }\r\n\r\n const toggleUploadOpened = () => {\r\n setUploadOpened(uploadOpened => !uploadOpened);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n {Tr('add_part')}\r\n \r\n setConfirmExportPopup(true)}\r\n >\r\n {Tr('export_form')}\r\n \r\n \r\n {Tr('import_form')}\r\n \r\n \r\n {\r\n uploadOpened &&\r\n <>\r\n \r\n {Tr('dealings_import_step_two_upload')}\r\n \r\n \r\n {Tr('dealings_import_step_two_upload_warning')}\r\n \r\n \r\n >\r\n }\r\n \r\n setConfirmExportPopup(false)}\r\n onConfirm={downloadImportTemplateClick}\r\n open={confirmExportPopup}\r\n labelConfirm='export'\r\n labelCancel='cancel'\r\n />\r\n >\r\n )\r\n}\r\n\r\nAdditionalButtons.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader\r\n}), {})(withStyles(style)(withRouter(AdditionalButtons)));","import { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport { SortableElement } from 'react-sortable-hoc'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tdivider: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t\tmarginBottom: theme.spacing(1),\r\n\t}\r\n})\r\n\r\nconst SortableItem = SortableElement(({\r\n\tformikProps,\r\n\ti,\r\n\tid,\r\n\tclasses,\r\n\tchildren,\r\n\t...other\r\n}) => {\r\n\treturn children(formikProps, id, i)\r\n})\r\n\r\n\r\nSortableItem.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(SortableItem);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport { SortableContainer } from 'react-sortable-hoc';\r\nimport SortableItem from './SortableItem'\r\nimport getObjectValue from 'libs/getObjectValue';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nconst SortableList = SortableContainer(({\r\n\tclasses,\r\n\tformikProps,\r\n\tid,\r\n\tchildren\r\n}) => {\r\n\tconst elements = getObjectValue(id, formikProps.values)\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{elements.map((item, i) => (\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t
\r\n\t)\r\n})\r\n\r\nSortableList.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(SortableList);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport SortableList from './SortableList';\r\nimport {arrayMoveMutable} from 'array-move';\r\nimport getObjectValue from 'libs/getObjectValue';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction SortableContainer({\r\n\tclasses,\r\n\tformikProps,\r\n\tid,\r\n\tchildren,\r\n}) {\r\n\r\n\tconst onSortEnd = ({oldIndex, newIndex}) => {\r\n\t\tconst elements = getObjectValue(id, formikProps.values)\r\n\t\tarrayMoveMutable(elements, oldIndex, newIndex)\r\n\t\tformikProps.setFieldValue(id, elements);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nSortableContainer.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(SortableContainer);","import Tr from 'translations/Translations';\r\n\r\nexport const CONDITION_TYPE_OTHER = \"OTHER\";\r\n\r\nexport const CONDITION_TYPE = {\r\n\tCOMPETENCES: \"COMPETENCES\",\r\n\tFINANCIAL_SITUATION: \"FINANCIAL_SITUATION\",\r\n\tTECHNICAL_CAPACITY: \"TECHNICAL_CAPACITY\",\r\n\tEMPLOYMENT: \"EMPLOYMENT\",\r\n\tOTHER: CONDITION_TYPE_OTHER\r\n}\r\n\r\nexport const CONDITION_TYPE_PZP_2021 = {\r\n\tCOMPETENCES: \"COMPETENCES\",\r\n\tFINANCIAL_SITUATION: \"FINANCIAL_SITUATION\",\r\n\tTECHNICAL_CAPACITY: \"TECHNICAL_CAPACITY\",\r\n\tEMPLOYMENT: \"EMPLOYMENT\",\r\n\tCOURSE_OF_TRADE: \"COURSE_OF_TRADE\",\r\n\tOTHER: CONDITION_TYPE_OTHER\r\n}\r\n\r\nexport const CONDITIONS_LABEL = {\r\n\t[CONDITION_TYPE.COMPETENCES]: Tr('condition_type_competences'),\r\n\t[CONDITION_TYPE.FINANCIAL_SITUATION]: Tr('condition_type_financial_situation'),\r\n\t[CONDITION_TYPE.TECHNICAL_CAPACITY]: Tr('condition_type_technical_capacity'),\r\n\t[CONDITION_TYPE.EMPLOYMENT]: Tr('condition_type_employment'),\r\n\t[CONDITION_TYPE.OTHER]: Tr('other'),\r\n}\r\n\r\nexport const CONDITIONS_LABEL_PZP_2021 = {\r\n\t[CONDITION_TYPE_PZP_2021.COMPETENCES]: Tr('condition_type_competences_2'),\r\n\t[CONDITION_TYPE_PZP_2021.FINANCIAL_SITUATION]: Tr('condition_type_financial_situation'),\r\n\t[CONDITION_TYPE_PZP_2021.TECHNICAL_CAPACITY]: Tr('condition_type_technical_capacity'),\r\n\t[CONDITION_TYPE_PZP_2021.EMPLOYMENT]: Tr('condition_type_employment'),\r\n\t[CONDITION_TYPE_PZP_2021.COURSE_OF_TRADE]: Tr('condition_type_course_of_trade'),\r\n\t[CONDITION_TYPE_PZP_2021.OTHER]: Tr('other')\r\n}\r\n\r\nconst createItem = (key) => ({\r\n\tlabel: CONDITIONS_LABEL[key],\r\n\tvalue: key\r\n})\r\n\r\nconst createItem_PZP_2021 = (key) => ({\r\n\tlabel: CONDITIONS_LABEL_PZP_2021[key],\r\n\tvalue: key\r\n})\r\n\r\nexport const conditionValues_PZP_2021 = Object.keys(CONDITION_TYPE_PZP_2021).map(x => createItem_PZP_2021(x));\r\n\r\nexport default Object.keys(CONDITION_TYPE).map( x => createItem(x))","import Tr from 'translations/Translations';\r\n\r\nexport const CRYTERIUM_TYPE = {\r\n\tTIME_LIMIT: \"TIME_LIMIT\",\r\n\tGUARANTEE: \"GUARANTEE\",\r\n\tPAYMENT: \"PAYMENT\",\r\n\tOPERATING_COST: \"OPERATING_COST\",\r\n\tSERVICE: \"SERVICE\",\r\n\tCONTRACT_SECURITY: \"CONTRACT_SECURITY\",\r\n\tOWNERSHIP: \"OWNERSHIP\",\r\n\tOTHER: \"OTHER\",\r\n\tPRICE: \"PRICE\",\r\n}\r\n\r\nexport const CRYTERIUM_TYPE_LABEL = {\r\n\t[CRYTERIUM_TYPE.CONTRACT_SECURITY]: Tr('criterion_type_contract_security'),\r\n\t[CRYTERIUM_TYPE.GUARANTEE]: Tr('criterion_type_guarantee'),\r\n\t[CRYTERIUM_TYPE.OPERATING_COST]: Tr('criterion_type_operating_cost'),\r\n\t[CRYTERIUM_TYPE.OWNERSHIP]: Tr('criterion_type_ownership'),\r\n\t[CRYTERIUM_TYPE.PAYMENT]: Tr('criterion_type_payment'),\r\n\t[CRYTERIUM_TYPE.PRICE]: Tr('criterion_type_price'),\r\n\t[CRYTERIUM_TYPE.SERVICE]: Tr('criterion_type_service'),\r\n\t[CRYTERIUM_TYPE.TIME_LIMIT]: Tr('criterion_type_time_limit'),\r\n\t[CRYTERIUM_TYPE.OTHER]: Tr('other'),\r\n}\r\n\r\nconst createItem = (key) => ({\r\n\tlabel: CRYTERIUM_TYPE_LABEL[key],\r\n\tvalue: key\r\n})\r\n\r\nexport default Object.values(CRYTERIUM_TYPE).map( x => createItem(x))","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (label, value) => ({\r\n\tlabel,\r\n\tvalue\r\n})\r\n\r\nexport const VARIANT_CODE = {\r\n\tTEXT: 'TEXT',\r\n\tLIST: 'LIST',\r\n\tNUMBER: 'NUMBER',\r\n\tYESNO: 'YESNO',\r\n\tINTERVAL: 'INTERVAL',\r\n\tPRICE: 'PRICE',\r\n}\r\n\r\nexport const criteriaLabels = {\r\n\t[VARIANT_CODE.TEXT]: Tr('text'),\r\n\t[VARIANT_CODE.YESNO]: `${Tr('yes')}/${Tr('no')}`,\r\n\t[VARIANT_CODE.NUMBER]: Tr('number'),\r\n\t[VARIANT_CODE.LIST]: Tr('list'),\r\n\t[VARIANT_CODE.INTERVAL]: Tr('allocation'),\r\n\t[VARIANT_CODE.PRICE]: Tr('price'),\r\n}\r\n\r\nexport default Object.keys(criteriaLabels).map( x => createItem(criteriaLabels[x], x))\r\n","import Tr from 'translations/Translations'\r\n\r\nexport const Directions = {\r\n ASCENDING: 'ASCENDING',\r\n DESCENDING: 'DESCENDING',\r\n}\r\n\r\nexport const PriceDirections = {\r\n ...Directions,\r\n DESCENDING_BY_PRICE_ITEMS: 'DESCENDING_BY_PRICE_ITEMS'\r\n}\r\n\r\nconst createItem = (key) => ({\r\n label: Tr(`direction.${key}`),\r\n value: key,\r\n})\r\n\r\nexport const CriterionDictionaryItems = Object.keys(Directions).map(key => createItem(key));\r\nexport const PriceCriterionDictionaryItems = Object.keys(PriceDirections).map(key => createItem(key));\r\n","import VS from 'constants/ValidationShema';\r\nimport {SELECT_VALUE} from 'constants/VATItems';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport {CONDITION_TYPE_OTHER, CONDITIONS_LABEL, CONDITIONS_LABEL_PZP_2021} from 'components/popup/newCondition/constants/condition.values';\r\nimport {getDemandPZPType} from \"libs/getDemandStatus\";\r\nimport PZPType from \"constants/PZPType\";\r\nimport Tr from 'translations/Translations';\r\nimport {CRYTERIUM_TYPE, CRYTERIUM_TYPE_LABEL} from 'components/popup/newCriteria/constants/criterium.type';\r\nimport {VARIANT_CODE as CRITERIA_TYPE} from \"components/popup/newCriteria/constants/criteria.variants\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport {PriceDirections} from \"constants/DirectionsItems\";\r\nimport {SOURCE_TYPES} from \"../../../../../../../../constants/OfferSourceTypes\";\r\nimport {PriceTypeGrossFieldVisible, PriceTypeNetFieldVisible, PriceTypeVatFieldVisible} from \"../../../../../../../../constants/PriceTypes\";\r\n\r\nconst inputLimits = InputLimits.procedure.dealings;\r\n\r\nconst repeadedElement = (elements, getNameFunc) => {\r\n return elements.find(x => undefined !== elements\r\n .find(y => {\r\n if (x.identity === y.identity) return false;\r\n const xName = getNameFunc(x);\r\n const yName = getNameFunc(y);\r\n return xName === yName;\r\n }))\r\n}\r\n\r\nconst findRepeatedConditionName = (elements) => {\r\n const demandPzpType = getDemandPZPType();\r\n const conditionLabels = PZPType.PZP_2021 === demandPzpType ? CONDITIONS_LABEL_PZP_2021 : CONDITIONS_LABEL;\r\n const getName = (e) => {\r\n if (e.type === CONDITION_TYPE_OTHER) return e.otherName;\r\n return conditionLabels[e.type]\r\n }\r\n const e = repeadedElement(elements, getName)\r\n if (e === undefined) return undefined;\r\n return getName(e);\r\n}\r\n\r\nconst findRepeatedCriterionName = (elements) => {\r\n const getName = (e) => {\r\n if (e.type === CRYTERIUM_TYPE.PRICE) {\r\n if (Boolean(e.otherName)) return e.otherName;\r\n }\r\n if (e.type === CRYTERIUM_TYPE.OTHER) return e.otherName;\r\n return CRYTERIUM_TYPE_LABEL[e.type]\r\n }\r\n const e = repeadedElement(elements, getName)\r\n if (e === undefined) return undefined;\r\n return getName(e);\r\n}\r\n\r\nconst schema = (dealingsList = {}) => VS.object({\r\n\r\n form: VS.arrayOf(\r\n VS.lazy(formItem => {\r\n if (formItem === null) return VS.any();\r\n\r\n const criterions = getObjectValue('stages.0.criterions', formItem);\r\n const section = criterions.find(x => x.type === CRYTERIUM_TYPE.PRICE);\r\n const weightVisible = section && section.direction === PriceDirections.DESCENDING_BY_PRICE_ITEMS;\r\n\r\n let criteriaSum = 0;\r\n if (weightVisible) {\r\n const items = getObjectValue('items', formItem);\r\n criteriaSum = items.map(item => parseFloat(item.weight)).reduce((prev, next) => prev + next);\r\n criteriaSum = parseFloat(criteriaSum.toFixed(2))\r\n }\r\n\r\n if (formItem._touched || formItem._load) {\r\n return VS.object({\r\n name: VS.stringMax(inputLimits.NAME).nullable(),\r\n description: VS.string(),\r\n plannedContractorNumberForAgreement: 'Framework' === dealingsList.demandVariant && VS.integerMax(99999),\r\n planItemIdentity: !!dealingsList.planRequired && VS.string(),\r\n termDescription: VS.any().when(\r\n 'termOption',\r\n {\r\n is: 'text',\r\n then: VS.stringMaxNoRq(InputLimits.procedure.basicInformation.TERM_DESCRIPTION),\r\n otherwise: VS.any()\r\n }),\r\n termDate: VS.any().when(\r\n 'termOption',\r\n {\r\n is: 'date',\r\n then: VS.dateMinNoRq(new Date(), Tr(\"v_data_can_not_be_past\")),\r\n otherwise: VS.any()\r\n }),\r\n _weightSum: weightVisible ? VS.mixed().test('weightMin100', Tr('v_number_min_criteria', {min: 100}), () => {\r\n return !(criteriaSum < 100)\r\n }).test('weightMax100', Tr('v_number_max_criteria', {value: 100}), () => {\r\n return !(criteriaSum > 100)\r\n }) : VS.any(),\r\n amount: VS.lazy(x => {\r\n const s = {\r\n value: VS.amount(0, false),\r\n grossValue: VS.amount(0, false),\r\n vatRate: VS.amount(),\r\n }\r\n if (x.vatRate === SELECT_VALUE.CANCEL ||\r\n x.vatRate === SELECT_VALUE.DIFFRENT_VAT) {\r\n s.vatRate = VS.any();\r\n }\r\n if (x.vatRate === SELECT_VALUE.OTHER) {\r\n return VS.object({\r\n ...s,\r\n vatRate: VS.any(),\r\n vatRateOther: VS.amountMax100()\r\n })\r\n }\r\n return VS.object(s);\r\n }),\r\n realizationBeforeOfferAmount: VS.lazy((x) => {\r\n return VS.object({\r\n grossValue: VS.amountOptional(0, true)\r\n })\r\n }),\r\n items: VS.arrayOf(VS.lazy(item => {\r\n const shape = {\r\n quantity: VS.object({\r\n value: VS.numberMax(1000000000000000),\r\n uom: VS.string().nullable()\r\n })\r\n }\r\n\r\n shape['name'] = VS.stringMax(inputLimits.NAME).nullable();\r\n shape['description'] = VS.stringMaxNoRq(100000).nullable();\r\n\r\n if (weightVisible) {\r\n shape['weight'] = VS.amountMax100NoZero();\r\n }\r\n\r\n shape['offerSourceType'] = VS.any().test('itemFilled', Tr('item_not_filled'), (e) => {\r\n return ((!item.offerVatPredefined && SOURCE_TYPES.INITIATOR !== item.offerSourceType) || !PriceTypeVatFieldVisible(dealingsList.priceType) || !!item.offerVatRate)\r\n && (SOURCE_TYPES.INITIATOR !== item.offerSourceType || !PriceTypeNetFieldVisible(dealingsList.priceType) || !!item.offerValue)\r\n && (SOURCE_TYPES.INITIATOR !== item.offerSourceType || !PriceTypeGrossFieldVisible(dealingsList.priceType) || !!item.offerGrossValue);\r\n });\r\n\r\n return VS.object(shape);\r\n })),\r\n stages: VS.lazy(stage => {\r\n const vsObj = {\r\n //conditions: [],\r\n criterions: VS.arrayOf(VS.lazy(criterion => {\r\n const shape = {\r\n //weight: VS.amountMax100NoZero()\r\n }\r\n\r\n switch (criterion.uiType) {\r\n case CRITERIA_TYPE.LIST:\r\n const maxListPoints = Math.max(...criterion.valuesList.map(o => o.value), 0);\r\n shape.weight = VS.numberMaxMin(maxListPoints, maxListPoints, 'v_number_weight_min_max_points', 'v_number_weight_less_than_points');\r\n break;\r\n case CRITERIA_TYPE.INTERVAL:\r\n const maxRangePoints = Math.max(...criterion.intervalList.map(o => o.value), 0);\r\n shape.weight = VS.numberMaxMin(maxRangePoints, maxRangePoints, 'v_number_weight_min_max_points', 'v_number_weight_less_than_points');\r\n break;\r\n default:\r\n shape.weight = VS.numberMax(100)\r\n }\r\n\r\n return VS.object(shape);\r\n }))\r\n\r\n }\r\n const stage0 = stage[0];\r\n\r\n let criteriaSum = stage0.criterions.map(item => parseFloat(item.weight)).reduce((prev, next) => prev + next, 0);\r\n criteriaSum = parseFloat(criteriaSum.toFixed(2));\r\n\r\n vsObj['_criteriaSum'] = VS.mixed().test('weightMin100', Tr('v_number_min_criteria', {min: 100}), () => {\r\n return !(criteriaSum < 100)\r\n }).test('weightMax100', Tr('v_number_max_criteria', {value: 100}), () => {\r\n return !(criteriaSum > 100)\r\n });\r\n\r\n\r\n const conditionsElements = stage0.conditions;\r\n const conditionRepeaded = findRepeatedConditionName(conditionsElements);\r\n if (conditionRepeaded) vsObj._conditionsError = VS.immediatelyError(Tr('condition_repeats', {name: conditionRepeaded}))\r\n\r\n const criterionsElements = stage0.criterions;\r\n const criterionRepeaded = findRepeatedCriterionName(criterionsElements);\r\n if (criterionRepeaded) vsObj._criterionsError = VS.immediatelyError(Tr('criterion_repeats', {name: criterionRepeaded}))\r\n\r\n return VS.arrayOfShape(vsObj)\r\n }),\r\n categoryItemCpv: VS.arrayRequired(),\r\n\r\n })\r\n }\r\n return VS.any();\r\n }))\r\n});\r\n\r\nexport default schema;\r\n\r\n\r\n// conditions: VS.lazy(elements => {\r\n// \tlet obj = {};\r\n// \tconst name = findRepeatedConditionName(elements);\r\n// \tif (name) obj._error = Tr('condition_repeats', { name });\r\n// \treturn VS.arrayOfShape(obj)\r\n// }),","import React from 'react'\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconDeleteButton(\r\n {\r\n tooltip = Tr('delete'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconDeleteButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconDeleteButton;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport EditIcon from '@material-ui/icons/Edit'\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction WorkableIconEditButton({\r\n\ttooltip = Tr('edit'),\r\n\t...props\r\n}) {\r\n\treturn \r\n}\r\n\r\nWorkableIconEditButton.propTypes = {\r\n\texpanded: PropTypes.bool,\r\n\tworking: PropTypes.bool,\r\n\tdisabled: PropTypes.bool,\r\n\ttooltip: PropTypes.string,\r\n\thideTooltip: PropTypes.bool,\r\n\tcolor: PropTypes.string,\r\n\tonClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconEditButton;","import getObjectValue from 'libs/getObjectValue'\r\nimport {SELECT_VALUE} from 'constants/VATItems';\r\nimport VatType from 'constants/VatType';\r\nimport {SOURCE_TYPES} from 'constants/OfferSourceTypes'\r\n\r\nexport default async (dealingElement, formikProps, rootId) => {\r\n if (dealingElement === undefined) {\r\n return;\r\n }\r\n const createId = key => `${rootId}.${key}`\r\n\r\n\r\n const emptyStage = {conditions: [], criterions: [], parameters: []}\r\n const oldStage = getObjectValue(createId('stages.0'), formikProps.values, emptyStage)\r\n const _open = getObjectValue(createId('_open'), formikProps.values)\r\n const _edit = getObjectValue(createId('_edit'), formikProps.values)\r\n const _touched = getObjectValue(createId('_touched'), formikProps.values)\r\n let stage = dealingElement.stages[0];\r\n if (!stage) stage = emptyStage\r\n\r\n const concatNoDuplicates = (a, b) => a.concat(\r\n b.filter(bElement => !a.find(\r\n aElement => bElement.identity === aElement.identity\r\n ))\r\n )\r\n\r\n const {amount, items, ...other} = dealingElement;\r\n let vatRate = amount.vatRate ? amount.vatRate : SELECT_VALUE.DEFAULT;\r\n let vatType = amount.vatType;\r\n let vatRateOther = undefined;\r\n if (vatType === VatType.OTHER) {\r\n vatRateOther = vatRate;\r\n vatRate = SELECT_VALUE.OTHER;\r\n } else if (vatType !== VatType.STANDARD) {\r\n vatRateOther = 0;\r\n vatRate = vatType;\r\n }\r\n\r\n const stages = [\r\n {\r\n ...stage,\r\n conditions: concatNoDuplicates(stage.conditions, oldStage.conditions),\r\n criterions: concatNoDuplicates(stage.criterions, oldStage.criterions),\r\n parameters: concatNoDuplicates(stage.parameters, oldStage.parameters),\r\n }\r\n ];\r\n\r\n const newItems = [];\r\n items.forEach(i => {\r\n let offerVatRate = SELECT_VALUE.DEFAULT;\r\n let offerVatRateOther = undefined;\r\n if (i.offerVatPredefined || i.offerSourceType === SOURCE_TYPES.INITIATOR) {\r\n if (i.offerVatType === VatType.OTHER) {\r\n offerVatRateOther = i.offerVatValue;\r\n offerVatRate = SELECT_VALUE.OTHER;\r\n } else if (i.offerVatType !== VatType.STANDARD) {\r\n offerVatRateOther = 0;\r\n offerVatRate = i.offerVatType;\r\n } else {\r\n offerVatRate = i.offerVatValue.toString();\r\n }\r\n }\r\n newItems.push({\r\n ...i,\r\n offerVatRate,\r\n offerVatRateOther\r\n })\r\n });\r\n\r\n const newDealingElement = {\r\n ...other,\r\n amount: {\r\n ...amount,\r\n vatRate,\r\n vatRateOther,\r\n },\r\n _open,\r\n _touched,\r\n _edit,\r\n stages,\r\n items: newItems\r\n }\r\n\r\n formikProps.setFieldValue(rootId, newDealingElement)\r\n}","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport DoneIcon from '@material-ui/icons/Done'\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconConfirmButton({\r\n\ttooltip = Tr('confirm'),\r\n\t...props\r\n}) {\r\n\treturn \r\n}\r\n\r\nWorkableIconConfirmButton.propTypes = {\r\n\tworking: PropTypes.bool,\r\n\tdisabled: PropTypes.bool,\r\n\ttooltip: PropTypes.string,\r\n\thideTooltip: PropTypes.bool,\r\n\tcolor: PropTypes.string,\r\n\tonClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconConfirmButton;","import React from 'react'\r\nimport {Box, Tooltip, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport clsx from 'clsx';\r\nimport DealingsService from 'services/DealingsService';\r\nimport {withRouter} from \"react-router\";\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport WorkableIconEditButton from 'components/button/WorkableIconEditButton';\r\nimport mergeDealing from '../lib/mergeDealing';\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport WorkableIconConfirmButton from \"components/button/WorkableIconConfirmButton\";\r\n\r\nconst limits = InputLimits.procedure.dealings;\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*:nth-child(1)': {\r\n flexGrow: 1,\r\n }\r\n },\r\n rootEdit: {\r\n '&>*:nth-child(2)': {\r\n flexGrow: 1,\r\n paddingLeft: theme.spacing(2),\r\n }\r\n },\r\n editInput: {},\r\n marginLeft: {\r\n marginLeft: theme.spacing(2),\r\n },\r\n title: {\r\n marginLeft: theme.spacing(),\r\n wordBreak: 'break-all',\r\n },\r\n rotate: {\r\n transform: 'rotate(180deg)'\r\n },\r\n cursorPointer: {\r\n cursor: 'pointer'\r\n }\r\n})\r\n\r\nfunction ElementTitle(\r\n {\r\n classes,\r\n index,\r\n id,\r\n onDelete,\r\n onOpen,\r\n formikProps,\r\n open,\r\n disableDelete,\r\n match,\r\n }) {\r\n\r\n const createId = (key) => `${id}.${key}`;\r\n const elementId = getObjectValue(createId('identity'), formikProps.values)\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const _editId = `${id}._edit`;\r\n const _touchedId = `${id}._touched`;\r\n const editTitle = getObjectValue(_editId, formikProps.values, false)\r\n const setEditTitle = x => {\r\n formikProps.setFieldValue(_editId, x);\r\n formikProps.setFieldValue(_touchedId, true);\r\n }\r\n\r\n const titleId = createId('name');\r\n const title = getObjectValue(titleId, formikProps.values)\r\n const titleError = getObjectValue(titleId, formikProps.errors)\r\n const titleTouched = getObjectValue(titleId, formikProps.touched)\r\n\r\n const demendId = match.params.id;\r\n\r\n const handleEdit = () => {\r\n if (editTitle && !(Boolean(titleError) && titleTouched)) {\r\n setEditTitle(false)\r\n } else if (!editTitle) {\r\n DealingsService.get(demendId, elementId).then(res => {\r\n mergeDealing(res, formikProps, id);\r\n setEditTitle(true);\r\n })\r\n }\r\n }\r\n\r\n const errors = getObjectValue(id, formikProps.errors, null);\r\n const touched = getObjectValue(id, formikProps.touched, null);\r\n\r\n const showTitleComponent = () => (\r\n \r\n {title}\r\n \r\n )\r\n\r\n const editTitleComponent = () => (\r\n \r\n )\r\n\r\n return (\r\n \r\n \r\n \r\n {index + 1}.\r\n {!editTitle && showTitleComponent()}\r\n \r\n
\r\n {editTitle && editTitleComponent()}\r\n {(errors && touched) &&\r\n \r\n \r\n \r\n }\r\n \r\n {editTitle ?\r\n :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nElementTitle.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(withRouter(ElementTitle));","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET} from 'libs/RestRequest';\r\n\r\nconst getRequired = async () => {\r\n return await _get();\r\n};\r\n\r\nconst getWithEmptyOption = async () => {\r\n const list = await _get();\r\n return [{label: '---', value: ''}, ...list];\r\n};\r\n\r\nconst _get = async () => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.MEASURE_UNITS);\r\n resp.sort((a, b) => a.label.localeCompare(b.label));\r\n return resp;\r\n } catch (error) {\r\n }\r\n};\r\n\r\n\r\nexport default {\r\n getRequired, getWithEmptyOption\r\n}","import React, {useEffect, useState} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport Select from 'components/Select';\r\nimport GridBlock from 'components/GridBlock';\r\nimport MeasureUnitService from 'services/MeasureUnitService';\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE';\r\nimport Loading from \"components/Loading\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tflexBasis: 0,\r\n\t\t\t'&:last-child': {\r\n\t\t\t\tflexGrow: 2,\r\n\t\t\t\tmarginLeft: theme.spacing(2),\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n})\r\n\r\nfunction Units({\r\n\tclasses,\r\n\tformikProps,\r\n\tidPrefix,\r\n\tdisabled,\r\n\tunitDisabled\r\n}) {\r\n\tconst quantityId = !!idPrefix ? `${idPrefix}.quantity.value` : `quantity.value`;\r\n\tconst unitId = !!idPrefix ? `${idPrefix}.quantity.uom` : `quantity.uom`\r\n\tconst [measureUnits, setMeasureUnits] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tMeasureUnitService.getRequired().then((resp) => setMeasureUnits(resp));\r\n\t}, []);\r\n\r\n\tif (!measureUnits) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nUnits.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(Units);","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport VisibilityIcon from '@material-ui/icons/Visibility';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconPreviewButton(\r\n {\r\n tooltip = Tr('preview'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconPreviewButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconPreviewButton;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport AddIcon from '@material-ui/icons/AddCircle'\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction WorkableIconAddButton({\r\n\ttooltip = Tr('add'),\r\n\t...props\r\n}) {\r\n\treturn \r\n}\r\n\r\nWorkableIconAddButton.propTypes = {\r\n\texpanded: PropTypes.bool,\r\n\tworking: PropTypes.bool,\r\n\tdisabled: PropTypes.bool,\r\n\ttooltip: PropTypes.string,\r\n\thideTooltip: PropTypes.bool,\r\n\tcolor: PropTypes.string,\r\n\tonClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconAddButton;","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Units from './Units';\r\nimport GridBlock from 'components/GridBlock';\r\nimport TextInput from \"components/TextInput\";\r\nimport Tr from \"translations/Translations\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport clsx from 'clsx';\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport Select from \"components/Select\";\r\nimport BooleanItems from \"constants/BooleanItems\";\r\nimport OfferSourceTypes from \"constants/OfferSourceTypes\";\r\nimport {ItemTypes} from \"../../constants/itemTypes\";\r\nimport WorkableIconAddButton from \"components/button/WorkableIconAddButton\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*': {\r\n flexBasis: 0,\r\n\r\n '&:not(:first-child)': {\r\n marginLeft: theme.spacing(2),\r\n },\r\n '&:last-child': {\r\n marginLeft: theme.spacing(2),\r\n },\r\n '&:nth-child(1)': {\r\n flexGrow: 4\r\n },\r\n '&:nth-child(2)': {\r\n flexGrow: 3\r\n },\r\n '&:nth-child(3)': {\r\n flexGrow: 1\r\n },\r\n '&:nth-child(4)': {\r\n flexGrow: 1\r\n },\r\n '&:nth-child(5)': {\r\n flexGrow: 1\r\n },\r\n '&:nth-child(6)': {\r\n flexGrow: 1.6\r\n }\r\n }\r\n },\r\n rootWeight: {\r\n '&>*': {\r\n '&:nth-child(7)': {\r\n flexGrow: 1\r\n },\r\n }\r\n }\r\n})\r\n\r\nfunction SingleVariant(\r\n {\r\n classes,\r\n formikProps,\r\n id,\r\n handleEditItem,\r\n weightVisible\r\n }) {\r\n\r\n const nameId = `${id}.0.name`;\r\n const typeId = `${id}.0.type`;\r\n const allowQuantityEditInOfferId = `${id}.0.allowQuantityEditInOffer`;\r\n const predefinedVatId = `${id}.0.offerVatPredefined`;\r\n const offerSourceTypeId = `${id}.0.offerSourceType`;\r\n const weightId = `${id}.0.weight`;\r\n const optionalItem = getObjectValue(`${id}.0.optionalItem`, formikProps.values, null);\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {weightVisible && }\r\n {editable ?\r\n handleEditItem(0)}\r\n />\r\n :\r\n handleEditItem(0)}\r\n />\r\n }\r\n handleEditItem(0, true)}\r\n disabled={!editable || !!optionalItem}\r\n />\r\n \r\n \r\n )\r\n}\r\n\r\nSingleVariant.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(SingleVariant);","import React from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Units from './Units';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport removeFormikListElement from 'libs/removeFormikListElement';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport clsx from 'clsx';\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport BooleanItems from \"constants/BooleanItems\";\r\nimport Select from \"components/Select\";\r\nimport OfferSourceTypes from \"constants/OfferSourceTypes\";\r\nimport {ItemTypes} from \"../../constants/itemTypes\";\r\nimport WorkableIconAddButton from \"components/button/WorkableIconAddButton\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*': {\r\n flexBasis: 0,\r\n\r\n '&:not(:first-child)': {\r\n marginLeft: theme.spacing(2),\r\n },\r\n '&:nth-child(2)': {\r\n flexGrow: 4\r\n },\r\n '&:nth-child(3)': {\r\n flexGrow: 2\r\n },\r\n '&:nth-child(4)': {\r\n flexGrow: 1\r\n },\r\n '&:nth-child(5)': {\r\n flexGrow: 1\r\n },\r\n '&:nth-child(6)': {\r\n flexGrow: 1\r\n },\r\n '&:nth-child(7)': {\r\n flexGrow: 1.6\r\n }\r\n }\r\n },\r\n rootWeight: {\r\n '&>*': {\r\n '&:nth-child(8)': {\r\n flexGrow: 1\r\n },\r\n }\r\n }\r\n})\r\n\r\nfunction MultiVariant(\r\n {\r\n classes,\r\n formikProps,\r\n id,\r\n index,\r\n option = false,\r\n handleEditItem,\r\n weightVisible,\r\n showConfirmBeforeDelete\r\n }) {\r\n const objectPath = option ? `${id}.${index}.optionalItem` : `${id}.${index}`;\r\n const nameId = `${objectPath}.name`;\r\n const typeId = `${objectPath}.type`;\r\n const allowQuantityEditInOfferId = `${objectPath}.allowQuantityEditInOffer`;\r\n const predefinedVatId = `${objectPath}.offerVatPredefined`;\r\n const offerSourceTypeId = `${objectPath}.offerSourceType`;\r\n const weightId = `${objectPath}.weight`;\r\n const optionalItem = getObjectValue(`${objectPath}.optionalItem`, formikProps.values, null);\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const oneBaseItem = getObjectValue(id, formikProps.values, []).length <= 1;\r\n\r\n const handleDelete = () => {\r\n if (option) {\r\n formikProps.setFieldValue(objectPath, null);\r\n } else if (!!optionalItem) {\r\n showConfirmBeforeDelete(id, index);\r\n } else {\r\n removeFormikListElement(formikProps, id, index)\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {option ? '-' : (index + 1)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {weightVisible && }\r\n {editable ?\r\n handleEditItem(index, option)}\r\n />\r\n :\r\n handleEditItem(index, option)}\r\n />\r\n }\r\n \r\n handleEditItem(index, true)}\r\n disabled={!editable || option || !!optionalItem}\r\n />\r\n \r\n )\r\n}\r\n\r\nMultiVariant.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(MultiVariant);","import OFFER_VAT_ITEMS, {SELECT_VALUE} from \"constants/VATItems\";\r\nimport TextInput from \"./TextInput\";\r\nimport Tr from \"translations/Translations\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport {IconButton, InputAdornment, withStyles} from \"@material-ui/core\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Select from \"./Select\";\r\nimport React from \"react\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n\r\n },\r\n grid: {\r\n '&>*': {\r\n flexGrow: 1,\r\n '&:not(:first-child)': {\r\n marginLeft: theme.spacing(2)\r\n }\r\n }\r\n },\r\n iconButton: {\r\n padding: theme.spacing(1) / 2,\r\n },\r\n otherTextInput: {\r\n '& input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button': {\r\n '-webkit-appearance': 'none',\r\n margin: 0\r\n }\r\n }\r\n})\r\n\r\nfunction VatField({\r\n classes,\r\n formikProps,\r\n required,\r\n editable,\r\n title = 'vat'\r\n}) {\r\n const vatRateId = 'offerVatRate';\r\n const vatRateOtherId = 'offerVatRateOther';\r\n const vatOption = getObjectValue(vatRateId, formikProps.values, null);\r\n\r\n const closeTextInput = () => {\r\n formikProps.setFieldValue(vatRateId, \"\")\r\n }\r\n\r\n return (\r\n <>\r\n {vatOption === SELECT_VALUE.OTHER ?\r\n \r\n %\r\n \r\n \r\n \r\n \r\n }\r\n required={required}\r\n />\r\n :\r\n \r\n }\r\n >\r\n )\r\n}\r\n\r\nexport default withStyles(style)(VatField);","import Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport React from \"react\";\r\nimport useId from \"hooks/useId\";\r\nimport Form from \"components/Form\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Units from \"./Units\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport InputLimits from \"constants/InputLimits\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport {withStyles} from '@material-ui/core';\r\nimport {connect} from \"react-redux\";\r\nimport BooleanItems from \"constants/BooleanItems\";\r\nimport {SOURCE_TYPES} from \"constants/OfferSourceTypes\";\r\nimport OfferSourceTypes from \"constants/OfferSourceTypes\";\r\nimport Select from \"components/Select\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport VatField from \"components/VatField\";\r\nimport {SELECT_VALUE} from \"constants/VATItems\";\r\nimport {PriceTypeVatFieldVisible, PriceTypeNetFieldVisible, PriceTypeGrossFieldVisible} from \"constants/PriceTypes\";\r\nimport NetGrossField from \"components/NetGrossField\";\r\nimport {ItemTypes} from \"../../constants/itemTypes\";\r\n\r\nconst style = theme => ({\r\n actions: {\r\n marginTop: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction ItemPopup(\r\n {\r\n editable,\r\n onClose,\r\n onSubmit,\r\n itemElement,\r\n weightVisible,\r\n classes,\r\n formSubmit,\r\n priceType\r\n }) {\r\n const formId = useId();\r\n const inputLimits = InputLimits.procedure.dealings;\r\n const option = !!itemElement.baseItemId;\r\n\r\n const handleClose = () => {\r\n onClose();\r\n }\r\n\r\n const handleSave = () => {\r\n formSubmit[formId]();\r\n }\r\n\r\n const handleSubmit = (values) => {\r\n onSubmit(values);\r\n }\r\n\r\n const validationSchema = (priceType) => {\r\n return VS.object({\r\n name: VS.stringMax(inputLimits.NAME).nullable(),\r\n description: VS.stringMaxNoRq(100000).nullable(),\r\n quantity: VS.object({\r\n value: VS.numberMax(1000000000000000),\r\n uom: VS.string().nullable()\r\n }),\r\n type: VS.string(),\r\n offerVatPredefined: VS.string(),\r\n offerSourceType: VS.string(),\r\n offerValue: VS.any().when(\"offerSourceType\", {\r\n is: offerSourceType => SOURCE_TYPES.INITIATOR === offerSourceType && PriceTypeNetFieldVisible(priceType),\r\n then: VS.amount(0, false),\r\n otherwise: VS.any()\r\n }),\r\n offerVatRate: VS.any().when([\"offerVatPredefined\", \"offerSourceType\"], {\r\n is: (offerVatPredefined, offerSourceType) => {\r\n return offerVatPredefined === true || offerVatPredefined === 'true' || (SOURCE_TYPES.INITIATOR === offerSourceType && PriceTypeVatFieldVisible(priceType))\r\n },\r\n then: VS.string(),\r\n otherwise: VS.any()\r\n }),\r\n offerVatRateOther: VS.any().when([\"offerVatPredefined\", \"offerSourceType\", \"offerVatRate\"], {\r\n is: (offerVatPredefined, offerSourceType, offerVatRate) => {\r\n return (offerVatPredefined === true || offerVatPredefined === 'true' || SOURCE_TYPES.INITIATOR === offerSourceType) && offerVatRate === SELECT_VALUE.OTHER\r\n },\r\n then: VS.amountMax100(),\r\n otherwise: VS.any()\r\n }),\r\n offerGrossValue: VS.any().when(\"offerSourceType\", {\r\n is: offerSourceType => SOURCE_TYPES.INITIATOR === offerSourceType && PriceTypeGrossFieldVisible(priceType),\r\n then: VS.amount(0, false),\r\n otherwise: VS.any()\r\n }),\r\n weight: weightVisible ? VS.amountMax100NoZero() : VS.amountMax100Optional()\r\n });\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(withStyles(style)(ItemPopup));","import React, {useEffect, useState} from 'react'\r\nimport {Divider, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport SingleVariant from './positions/SingleVariant';\r\nimport MultiVariant from './positions/MultiVariant';\r\nimport Tr from 'translations/Translations';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport AddButton from 'components/button/AddButton';\r\nimport {newItem} from '../constants/initialValues';\r\nimport ItemPopup from './positions/ItemPopup';\r\nimport _ from 'lodash';\r\nimport {CRYTERIUM_TYPE} from \"components/popup/newCriteria/constants/criterium.type\";\r\nimport {PriceDirections} from \"constants/DirectionsItems\";\r\nimport {ITEM_TYPES} from \"../constants/itemTypes\";\r\nimport Confirm from \"../../../../../../../../components/popup/confirm/Confirm\";\r\nimport removeFormikListElement from \"../../../../../../../../libs/removeFormikListElement\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n width: '100%',\r\n '&>*': {\r\n width: 'inherit'\r\n }\r\n },\r\n header: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n divider: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n }\r\n})\r\n\r\nfunction PositionsSection({\r\n classes,\r\n formikProps,\r\n id,\r\n dealingId,\r\n priceType\r\n}) {\r\n\r\n const [editingItem, setEditingItem] = useState(null);\r\n const [deleteConfirm, setDeleteConfirm] = useState(false);\r\n const [deleteFunctionParams, setDeleteFunctionParams] = useState(null);\r\n\r\n const criterions = getObjectValue(`${dealingId}.stages.0.criterions`, formikProps.values, [])\r\n const section = criterions.find(x => x.type === CRYTERIUM_TYPE.PRICE);\r\n const weightVisible = section && section.direction === PriceDirections.DESCENDING_BY_PRICE_ITEMS;\r\n const elements = getObjectValue(id, formikProps.values)\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const criteriaSumError = getObjectValue(`${dealingId}._weightSum`, formikProps.errors, [])\r\n const isError = !!criteriaSumError;\r\n\r\n const handleAddItem = () => {\r\n setEditingItem(_.cloneDeep(newItem));\r\n }\r\n\r\n const handleShowItem = (index, option) => {\r\n let clonedItem;\r\n if (option) {\r\n if (elements[index].optionalItem) {\r\n clonedItem = _.cloneDeep(elements[index].optionalItem);\r\n } else {\r\n clonedItem = _.cloneDeep(newItem);\r\n clonedItem.type = ITEM_TYPES.OPTIONAL;\r\n clonedItem.quantity.uom = elements[index].quantity.uom;\r\n }\r\n clonedItem.baseItemId = elements[index].identity;\r\n clonedItem.baseItemName = elements[index].name;\r\n } else {\r\n clonedItem = _.cloneDeep(elements[index]);\r\n }\r\n setEditingItem(clonedItem);\r\n }\r\n\r\n const handleCloseEditItem = () => {\r\n setEditingItem(null);\r\n }\r\n\r\n const handleEditItem = (values) => {\r\n const dealing = getObjectValue(`${dealingId}.identity`, formikProps.values);\r\n if (!!editingItem.baseItemId) {\r\n const index = elements.findIndex(x => x.identity === editingItem.baseItemId);\r\n elements[index].optionalItem = {\r\n ...values,\r\n identity: !!values.identity && values.identity > 0 ? values.identity : -1,\r\n quantity: {\r\n ...values.quantity,\r\n uom: elements[index].quantity.uom\r\n },\r\n offerVatPredefined: elements[index].offerVatPredefined,\r\n offerSourceType: elements[index].offerSourceType,\r\n offerValue: elements[index].offerValue,\r\n offerVatRate: elements[index].offerVatRate,\r\n offerVatRateOther: elements[index].offerVatRateOther,\r\n offerGrossValue: elements[index].offerGrossValue,\r\n allowQuantityEditInOffer: elements[index].allowQuantityEditInOffer\r\n }\r\n } else if (!editingItem.identity) {\r\n const mindIdFound = elements.map(e => e.identity).reduce((x1, x2) => x1 < x2 ? x1 : x2);\r\n const newId = mindIdFound < 0 ? (mindIdFound - 1) : -1;\r\n elements.push({\r\n ...values,\r\n identity: newId,\r\n dealing: dealing\r\n });\r\n } else {\r\n const index = elements.findIndex(x => x.identity === editingItem.identity);\r\n const oldItem = elements[index];\r\n elements[index] = {\r\n ...values,\r\n identity: oldItem.identity,\r\n dealing: oldItem.dealing,\r\n optionalItem: oldItem.optionalItem\r\n };\r\n if (elements[index].optionalItem) {\r\n elements[index].optionalItem.quantity.uom = elements[index].quantity.uom;\r\n elements[index].optionalItem.offerVatPredefined = elements[index].offerVatPredefined;\r\n elements[index].optionalItem.offerSourceType = elements[index].offerSourceType;\r\n elements[index].optionalItem.offerValue = elements[index].offerValue;\r\n elements[index].optionalItem.offerVatRate = elements[index].offerVatRate;\r\n elements[index].optionalItem.offerVatRateOther = elements[index].offerVatRateOther;\r\n elements[index].optionalItem.offerGrossValue = elements[index].offerGrossValue;\r\n elements[index].optionalItem.allowQuantityEditInOffer = elements[index].allowQuantityEditInOffer;\r\n }\r\n }\r\n formikProps.setFieldValue(id, elements);\r\n setEditingItem(null);\r\n }\r\n\r\n const renderSingle = () => {\r\n return (\r\n <>\r\n \r\n >\r\n )\r\n }\r\n\r\n useEffect(() => {\r\n if (elements.length < 2) {\r\n const elId = `${id}.0.name`\r\n formikProps.setFieldTouched(elId, false)\r\n }\r\n // eslint-disable-next-line\r\n }, [elements.length]);\r\n\r\n const showDeleteConfirm = (idParam, indexParam) => {\r\n setDeleteConfirm(true);\r\n setDeleteFunctionParams([idParam, indexParam]);\r\n }\r\n\r\n const doDeleteAfterConfirm = () => {\r\n setDeleteConfirm(false);\r\n removeFormikListElement(formikProps, deleteFunctionParams[0], deleteFunctionParams[1])\r\n }\r\n\r\n const renderMulti = () => {\r\n return (\r\n <>\r\n \r\n \r\n {Tr('positions')}({elements.length})\r\n \r\n {\r\n elements.map((item, i) => {\r\n return (\r\n \r\n \r\n {item.optionalItem &&\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 <>\r\n \r\n {elements.length < 2 && elements[0].optionalItem == null ? renderSingle() : renderMulti()}\r\n \r\n \r\n {Tr('add_position')}\r\n \r\n {(isError) &&\r\n \r\n {criteriaSumError}\r\n \r\n }\r\n <>>\r\n \r\n \r\n \r\n {!!editingItem && }\r\n {deleteConfirm && {\r\n setDeleteConfirm(false);\r\n setDeleteFunctionParams(null);\r\n }}\r\n confirmText=\"positions_with_option_delete\"\r\n />}\r\n >)\r\n}\r\n\r\nPositionsSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(PositionsSection);","import React from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport clsx from 'clsx';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport WorkableIconEditButton from 'components/button/WorkableIconEditButton';\r\n\r\nconst style = theme => ({\r\n root: {\r\n marginRight: theme.spacing(1),\r\n },\r\n disableDelete: {\r\n marginRight: theme.spacing(3)\r\n }\r\n})\r\n\r\nfunction ConditionElement(\r\n {\r\n classes,\r\n name,\r\n index,\r\n id,\r\n formikProps,\r\n onEdit,\r\n onDelete,\r\n disableDelete = false,\r\n disabled,\r\n }) {\r\n\r\n return (\r\n \r\n \r\n {name}\r\n \r\n \r\n {!disableDelete &&\r\n onDelete(index)}\r\n disabled={disabled}\r\n />\r\n }\r\n \r\n )\r\n}\r\n\r\nConditionElement.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ConditionElement);","import React from 'react'\r\nimport {Checkbox as MuiCheckbox, FormHelperText, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport SimpleTable from 'components/complex/simpleTable/SimpleTable';\r\nimport Checkbox from 'components/Checkbox';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport clsx from \"clsx\";\r\n\r\n\r\nconst style = theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n textBold: {\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n samllColumn: theme.components.table.lpColumn,\r\n orderColumn: theme.components.table.ipColumn,\r\n checkboxColumn: {\r\n width: theme.spacing()\r\n },\r\n cells: {\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n },\r\n checkbox: {\r\n padding: 0,\r\n },\r\n cursor: {\r\n cursor: \"pointer\"\r\n }\r\n})\r\n\r\nfunction PartsTable(\r\n {\r\n classes,\r\n className,\r\n formikProps,\r\n id,\r\n elementList = [],\r\n label,\r\n orderLabel = \"part_number\",\r\n editable = true,\r\n required=true,\r\n disabled\r\n }) {\r\n const elements = getObjectValue(id, formikProps.values, []);\r\n const errorValue = getObjectValue(id, formikProps.errors, '');\r\n const touched = getObjectValue(id, formikProps.touched, false);\r\n const isAllChecked = elementList.length > 0 && !elementList.find(x => elements[x.identity] !== true)\r\n\r\n const handleHeadCheckboxChange = (e, value) => {\r\n const newElements = elementList.reduce((acc, x) => {\r\n return {\r\n ...acc,\r\n [x.identity]: value\r\n }\r\n }, {})\r\n formikProps.setFieldValue(id, newElements)\r\n }\r\n\r\n const isError = editable && !!errorValue && Boolean(touched);\r\n const helperText = errorValue || ' ';\r\n const hasOrder = !!(elementList?.[0]?.order);\r\n return (\r\n \r\n \r\n {label ? label : Tr('assign_to_part')}{required ? '*' : ''}\r\n \r\n ,\r\n (hasOrder ? Tr(orderLabel) : Tr('column_lp')),\r\n Tr('name')\r\n ]}\r\n items={elementList.map((x, i) => {\r\n return [\r\n ,\r\n ,\r\n ,\r\n ]\r\n })}\r\n cellClassName={classes.cells}\r\n columnClasses={[\r\n classes.checkboxColumn,\r\n hasOrder ? classes.orderColumn : classes.samllColumn\r\n ]}\r\n />\r\n {isError && {helperText}}\r\n \r\n )\r\n}\r\n\r\nPartsTable.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(PartsTable);\r\n","import * as Yup from 'yup'\r\nimport { CONDITION_TYPE_OTHER } from './condition.values'\r\nimport ValidationShema from 'constants/ValidationShema';\r\nimport Tr from 'translations/Translations';\r\nimport ImputLimits from 'constants/InputLimits';\r\n\r\nconst limits = ImputLimits.procedure.condition;\r\n\r\nexport default (selectedItems) => Yup.lazy(values => {\r\n\tif (values.type !== CONDITION_TYPE_OTHER) {\r\n\t\treturn Yup.object()\r\n\t}\r\n\tconst reg = '^(?!(' + selectedItems.map(x => x.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|')+ ')$).*$';\r\n\tconst otherNameRegExp = new RegExp(reg)\r\n\treturn Yup.object().shape({\r\n\t\totherName: ValidationShema.stringExactlyMax(\r\n\t\t\totherNameRegExp,\r\n\t\t\tTr('v_condition_exist'),\r\n\t\t\tlimits.OTHER_NAME\r\n\t\t)\r\n\t})\r\n})","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport Select from 'components/Select';\r\nimport conditionValues, {CONDITION_TYPE_OTHER, CONDITIONS_LABEL, CONDITIONS_LABEL_PZP_2021, conditionValues_PZP_2021} from './constants/condition.values';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport PartsTable from 'components/PartsTable';\r\nimport validationSchema from './constants/validation.form'\r\nimport ImputLimits from 'constants/InputLimits';\r\nimport {getDemandPZPType, isDemandPreparing} from \"libs/getDemandStatus\";\r\nimport PZPType from \"constants/PZPType\";\r\n\r\nconst limits = ImputLimits.procedure.condition;\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t},\r\n\tuploadFile: {\r\n\t\tmarginBottom: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction ConditionForm({\r\n\tclasses,\r\n\tonSubmit = () => { },\r\n\tid,\r\n\tpartId,\r\n\tinitValues,\r\n\telementList,\r\n\tselectedItems,\r\n\teditable,\r\n}) {\r\n\r\n\tconst demandPzpType = getDemandPZPType();\r\n\tconst conditionLabels = PZPType.PZP_2021 === demandPzpType ? CONDITIONS_LABEL_PZP_2021 : CONDITIONS_LABEL;\r\n\tconst conditionValuesDict = PZPType.PZP_2021 === demandPzpType ? conditionValues_PZP_2021 : conditionValues;\r\n\r\n\tconst getInitialValues = (typeElements) => {\r\n\t\tif (initValues !== undefined) {\r\n\t\t\treturn {\r\n\t\t\t\t...initValues,\r\n\t\t\t\tparts: {\r\n\t\t\t\t\t[partId]: true,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn {\r\n\t\t\ttype: typeElements[0].value,\r\n\t\t\tdescription: '',\r\n\t\t\tparts: {\r\n\t\t\t\t[partId]: true,\r\n\t\t\t},\r\n\t\t\totherName: '',\r\n\t\t\tfile: null,\r\n\t\t}\r\n\t}\r\n\r\n\tconst getNames = () => {\r\n\t\tlet selected = selectedItems.map(x => {\r\n\t\t\tif (x.type === CONDITION_TYPE_OTHER) return x.otherName;\r\n\t\t\treturn conditionLabels[x.type];\r\n\t\t})\r\n\t\tif (initValues !== undefined) {\r\n\t\t\tlet initValuesName = conditionLabels[initValues.type];\r\n\t\t\tif (initValues.type === CONDITION_TYPE_OTHER) {\r\n\t\t\t\tinitValuesName = initValues.otherName;\r\n\t\t\t}\r\n\t\t\tvar index = selected.indexOf(initValuesName);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tselected.splice(index, 1);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn selected;\r\n\t}\r\n\r\n\r\n\tconst typeElements = conditionValuesDict.reduce((acc, item) => {\r\n\t\tif (item.value === CONDITION_TYPE_OTHER) return [...acc, item];\r\n\t\tif (initValues !== undefined) {\r\n\t\t\tif (item.value === initValues.type) {\r\n\t\t\t\treturn [...acc, item]\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (selectedItems.find(x => x.type === item.value)) {\r\n\t\t\treturn acc;\r\n\t\t}\r\n\t\treturn [...acc, item]\r\n\t}, [])\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nConditionForm.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ConditionForm);","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport useId from 'hooks/useId';\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport {connect} from 'react-redux'\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport ConditionForm from './ConditionForm';\r\n\r\nconst style = theme => ({\r\n root: {}\r\n})\r\n\r\nfunction NewCondition(\r\n {\r\n classes,\r\n onAdd,\r\n onClose,\r\n formSubmit,\r\n \tpartId,\r\n initValues,\r\n elementList,\r\n selectedItems,\r\n showParts\r\n }) {\r\n const formId = useId();\r\n\r\n const handleClose = () => {\r\n onClose();\r\n }\r\n\r\n const handleSubmit = () => {\r\n formSubmit[formId]()\r\n }\r\n\r\n const handleAdd = (values) => {\r\n onAdd(values);\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nNewCondition.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(withStyles(style)(NewCondition));","\r\nconst setObjectValue = (idArray, obj, value) => {\r\n\tconst id = idArray.shift();\r\n\tif(idArray.length > 0){\r\n\t\tlet subObj = setObjectValue(idArray, obj[id], value);\r\n\t\tobj[id] = subObj;\r\n\t\treturn obj;\r\n\t} else {\r\n\t\tobj[id] = value;\r\n\t\treturn obj;\r\n\t}\r\n}\r\n\r\nexport default (id, obj, value) => {\r\n\tif(id === undefined) return;\r\n\tlet idArray = id.split('.')\r\n\tsetObjectValue(idArray, obj, value);\r\n};","\r\nexport default {\r\n\tPARAMETERS: \"parameters\",\r\n\tCRITERIONS: \"criterions\",\r\n\tCONDITIONS: \"conditions\",\r\n\tITEM_PARAMETERS: \"itemParameters\"\r\n}","import getObjectValue from 'libs/getObjectValue';\r\nimport reduxStore from 'redux/store'\r\nimport DealingsService from 'services/DealingsService';\r\nimport {setSaveStatusClosed, setSaveStatusLoading} from 'redux/actions';\r\nimport setObjectValue from 'libs/setObjectValue';\r\nimport _ from 'lodash';\r\nimport stageValues from '../constants/stage.values';\r\nimport {CONDITION_TYPE_OTHER, CONDITIONS_LABEL, CONDITIONS_LABEL_PZP_2021} from 'components/popup/newCondition/constants/condition.values';\r\nimport {CRYTERIUM_TYPE, CRYTERIUM_TYPE_LABEL} from 'components/popup/newCriteria/constants/criterium.type';\r\nimport {getDemandPZPType} from \"libs/getDemandStatus\";\r\nimport PZPType from \"constants/PZPType\";\r\n\r\nconst doElement = (critArray, editedCriterion, originalCriterion, stageName, dealingId, doDelete) => {\r\n const _formikCritArrayCopy = _.cloneDeep(critArray);\r\n const _editedCritCopy = _.cloneDeep(editedCriterion);\r\n const demandPzpType = getDemandPZPType();\r\n const conditionLabels = PZPType.PZP_2021 === demandPzpType ? CONDITIONS_LABEL_PZP_2021 : CONDITIONS_LABEL;\r\n if (!originalCriterion) {\r\n //dodanie nowego kryterium, więc nie mamy \"zmienianego\"\r\n originalCriterion = _editedCritCopy;\r\n }\r\n\r\n let oldFieldIndex;\r\n\r\n switch (stageName) {\r\n case stageValues.CONDITIONS:\r\n oldFieldIndex = _formikCritArrayCopy.findIndex(x => {\r\n if (originalCriterion.type === CONDITION_TYPE_OTHER) {\r\n if (x.type === CONDITION_TYPE_OTHER) {\r\n return originalCriterion.otherName === x.otherName;\r\n } else {\r\n return originalCriterion.otherName === conditionLabels[x.type];\r\n }\r\n } else {\r\n if (x.type === CONDITION_TYPE_OTHER) {\r\n return conditionLabels[originalCriterion.type] === x.otherName\r\n } else {\r\n return originalCriterion.type === x.type\r\n }\r\n }\r\n })\r\n break;\r\n case stageValues.CRITERIONS:\r\n oldFieldIndex = _formikCritArrayCopy.findIndex(x => {\r\n if (originalCriterion.type === CRYTERIUM_TYPE.OTHER || originalCriterion.type === CRYTERIUM_TYPE.PRICE) {\r\n if (x.type === CRYTERIUM_TYPE.OTHER || x.type === CRYTERIUM_TYPE.PRICE) {\r\n return originalCriterion.otherName === x.otherName;\r\n } else {\r\n return originalCriterion.otherName === CRYTERIUM_TYPE_LABEL[x.type];\r\n }\r\n } else {\r\n if (x.type === CRYTERIUM_TYPE.OTHER || x.type === CRYTERIUM_TYPE.PRICE) {\r\n return CRYTERIUM_TYPE_LABEL[originalCriterion.type] === x.otherName;\r\n } else {\r\n return originalCriterion.type === x.type\r\n }\r\n }\r\n });\r\n\r\n break;\r\n case stageValues.PARAMETERS:\r\n case stageValues.ITEM_PARAMETERS:\r\n oldFieldIndex = _formikCritArrayCopy.findIndex(x => x.name === originalCriterion.name);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (doDelete) {\r\n if (oldFieldIndex >= 0) {\r\n _formikCritArrayCopy.splice(oldFieldIndex, 1);\r\n }\r\n } else {\r\n if (oldFieldIndex < 0) {\r\n _formikCritArrayCopy.push({\r\n ..._editedCritCopy,\r\n dealingId,\r\n identity: -_formikCritArrayCopy.length - 1,\r\n })\r\n } else {\r\n const oldField = _formikCritArrayCopy[oldFieldIndex];\r\n _formikCritArrayCopy[oldFieldIndex] = {\r\n ..._editedCritCopy,\r\n identity: oldField.identity,\r\n }\r\n }\r\n }\r\n\r\n if (stageName === stageValues.CRITERIONS) {\r\n //aktualizacja wagi ceny\r\n const priceIndex = _formikCritArrayCopy.findIndex(x => x.type === CRYTERIUM_TYPE.PRICE);\r\n\r\n let sum = _formikCritArrayCopy.reduce((prev, cur) => {\r\n if (cur.type !== CRYTERIUM_TYPE.PRICE) {\r\n return prev + parseFloat(cur.weight);\r\n }\r\n return prev;\r\n }, 0);\r\n sum = parseFloat(sum.toFixed(2));\r\n\r\n const priceWeight = (100 - sum) < 0 ? 0 : 100 - sum;\r\n\r\n _formikCritArrayCopy[priceIndex].weight = priceWeight;\r\n }\r\n\r\n return _formikCritArrayCopy;\r\n}\r\n\r\nconst hasElement = (dealing, crit, stageName) => {\r\n const objectValue = getObjectValue(`stages.0.${stageName}`, dealing, []);\r\n let oldFieldIndex = 10;\r\n\r\n const demandPzpType = getDemandPZPType();\r\n const conditionLabels = PZPType.PZP_2021 === demandPzpType ? CONDITIONS_LABEL_PZP_2021 : CONDITIONS_LABEL;\r\n\r\n switch (stageName) {\r\n case stageValues.CONDITIONS:\r\n oldFieldIndex = objectValue.findIndex(x => {\r\n if (crit.type === CONDITION_TYPE_OTHER) {\r\n if (x.type === CONDITION_TYPE_OTHER) {\r\n return crit.otherName === x.otherName;\r\n }\r\n return crit.otherName === conditionLabels[x.type];\r\n }\r\n return crit.type === x.type\r\n })\r\n break;\r\n case stageValues.CRITERIONS:\r\n oldFieldIndex = objectValue.findIndex(x => {\r\n if (crit.type === CRYTERIUM_TYPE.OTHER) {\r\n if (x.type === CRYTERIUM_TYPE.OTHER) {\r\n return crit.otherName === x.otherName;\r\n }\r\n return crit.otherName === CRYTERIUM_TYPE_LABEL[x.type];\r\n }\r\n return crit.type === x.type\r\n })\r\n break;\r\n case stageValues.PARAMETERS:\r\n case stageValues.ITEM_PARAMETERS:\r\n oldFieldIndex = objectValue.findIndex(x => x.name === crit.name);\r\n break;\r\n default:\r\n break;\r\n }\r\n if (oldFieldIndex >= 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\n\r\nexport const findTemporaryDealingIds = (dealingsContains, allItems, id, crit) => {\r\n const splitId = id.split('.');\r\n splitId.shift();// remove index\r\n const stageName = splitId[splitId.length - 1];\r\n\r\n const remoteDealingIds = dealingsContains.map(x => x.identity);\r\n\r\n const dealingIds = [];\r\n allItems.forEach((curDeal, i) => {\r\n if (remoteDealingIds.indexOf(curDeal.identity) > -1 || hasElement(curDeal, crit, stageName)) {\r\n dealingIds.push(curDeal.identity);\r\n }\r\n });\r\n return dealingIds;\r\n\r\n}\r\n\r\nexport const filterByCurrentLoadedDealings = (dealingsContains, allItems, id, crit) => {\r\n const splitId = id.split('.');\r\n splitId.shift();// remove index\r\n const stageName = splitId[splitId.length - 1];\r\n\r\n allItems.forEach((curDeal, i) => {\r\n if (curDeal._touched) {\r\n const found = dealingsContains.findIndex(el => el.identity === curDeal.identity);\r\n if (found !== -1) {\r\n if (!hasElement(curDeal, crit, stageName)) {\r\n dealingsContains.splice(found, 1);\r\n }\r\n }\r\n }\r\n });\r\n\r\n}\r\n\r\n\r\nexport const removeElementsfromParts = (formikProps, id, dealings, criterion, demandId) => {\r\n doElementsManipulation(formikProps, id, dealings, criterion, null, demandId, true);\r\n}\r\n\r\nexport const addElementsToParts = (formikProps, id, dealings, criterion, originalCriterion, demandId) => {\r\n doElementsManipulation(formikProps, id, dealings, criterion, originalCriterion, demandId, false);\r\n}\r\n\r\nconst doElementsManipulation = (formikProps, id, dealings, editedCriterion, originalCriterion, demandId, doDelete) => {\r\n\r\n const splitId = id.split('.');\r\n const rootId = splitId.shift();// remove root\r\n splitId.shift();// remove index\r\n const fieldId = splitId.join('.')\r\n const partsIds = Object.keys(dealings).filter(x => dealings[x]);\r\n\r\n const stageName = splitId[splitId.length - 1];\r\n\r\n (async () => {\r\n if (partsIds.length < 1) {\r\n return;\r\n }\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n\r\n const {resources} = reduxStore.getState();\r\n const currentDealingList = getObjectValue(rootId, formikProps.values)\r\n\r\n const missingArray = [];\r\n for (let i = 0; i < partsIds.length; i++) {\r\n const dealingId = partsIds[i];\r\n const dealing = resources.dealing ? resources.dealing[dealingId] : undefined;\r\n if (!dealing) {\r\n missingArray.push(dealingId)\r\n }\r\n }\r\n let newDownloaded = {};\r\n if (missingArray.length > 0) {\r\n newDownloaded = await DealingsService.getFullList(demandId, missingArray);\r\n }\r\n\r\n\r\n const processedDealings = {};\r\n for (let i = 0; i < partsIds.length; i++) {\r\n const dealingId = partsIds[i];\r\n const dealing = resources.dealing ? resources.dealing[dealingId] : undefined;\r\n const delaingIndex = currentDealingList.findIndex(x => '' + x.identity === dealingId)\r\n let currentDealing;\r\n if (dealing) {\r\n // dealing exist\r\n currentDealing = _.cloneDeep(currentDealingList[delaingIndex]);\r\n } else {\r\n // need get dealing\r\n //currentDealing = await DealingsService.get(demandId, dealingId);\r\n currentDealing = newDownloaded[dealingId]\r\n }\r\n\r\n let critArray = getObjectValue(fieldId, currentDealing)\r\n critArray = doElement(critArray, editedCriterion, originalCriterion, stageName, dealingId, doDelete)\r\n currentDealing._touched = true;\r\n setObjectValue(fieldId, currentDealing, critArray)\r\n // const partId = `${rootId}.${delaingIndex}`\r\n // formikProps.setFieldValue(partId, currentDealing);\r\n processedDealings[currentDealing.identity] = currentDealing;\r\n }\r\n const newDealingList = currentDealingList.map((el) => {\r\n const dealingId = el.identity;\r\n const processed = processedDealings[dealingId];\r\n if (Boolean(processed)) {\r\n return processed\r\n } else {\r\n return el;\r\n }\r\n });\r\n formikProps.setFieldValue(rootId, newDealingList);\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n })();\r\n}","import React, {useEffect, useState} from 'react';\r\nimport Dialog from \"components/Dialog\";\r\nimport Tr from \"translations/Translations\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport Loading from \"components/Loading\";\r\nimport DealingsService from \"services/DealingsService\";\r\nimport PartsTable from \"components/PartsTable\";\r\nimport {connect} from \"react-redux\";\r\nimport {filterByCurrentLoadedDealings, findTemporaryDealingIds} from \"../lib/manipulateElementsOnParts\";\r\nimport stageValues from \"../constants/stage.values\";\r\nimport {CONDITION_TYPE_OTHER, CONDITIONS_LABEL, CONDITIONS_LABEL_PZP_2021} from \"components/popup/newCondition/constants/condition.values\";\r\nimport {CRYTERIUM_TYPE, CRYTERIUM_TYPE_LABEL} from \"components/popup/newCriteria/constants/criterium.type\";\r\nimport {getDemandPZPType} from \"libs/getDemandStatus\";\r\nimport PZPType from \"constants/PZPType\";\r\nimport VS from \"constants/ValidationShema\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n minHeight: 75\r\n }\r\n}));\r\n\r\n\r\nconst getCritDisplayName = (crit, stageName) => {\r\n\r\n const demandPzpType = getDemandPZPType();\r\n const conditionLabels = PZPType.PZP_2021 === demandPzpType ? CONDITIONS_LABEL_PZP_2021 : CONDITIONS_LABEL;\r\n\r\n let name;\r\n switch (stageName) {\r\n case stageValues.CONDITIONS:\r\n name = crit.type === CONDITION_TYPE_OTHER ? crit.otherName : conditionLabels[crit.type];\r\n break;\r\n case stageValues.CRITERIONS:\r\n name = crit.type === CRYTERIUM_TYPE.OTHER ? crit.otherName : CRYTERIUM_TYPE_LABEL[crit.type];\r\n break;\r\n case stageValues.PARAMETERS:\r\n case stageValues.ITEM_PARAMETERS:\r\n name = crit.name;\r\n break;\r\n default:\r\n name = \"\";\r\n break;\r\n }\r\n return name;\r\n\r\n}\r\n\r\nconst ConfirmDeleteCriterion = (\r\n {\r\n onClose = () => {\r\n },\r\n onDelete = () => {\r\n },\r\n partId,\r\n demandId,\r\n stageId,\r\n initCrit, //usuwane kryterium\r\n allItems,\r\n id,\r\n formSubmit,\r\n }) => {\r\n\r\n const [elementList, setElementList] = useState(null);\r\n const [critName, setCritName] = useState(\"\");\r\n const classes = useStyle();\r\n\r\n const formId = useId();\r\n\r\n const handleClose = () => {\r\n setElementList(null);\r\n onClose();\r\n };\r\n\r\n const handleSubmit = (values) => {\r\n onDelete(values);\r\n };\r\n\r\n const handleConfirm = () => {\r\n formSubmit[formId]();\r\n };\r\n\r\n useEffect(() => {\r\n if (initCrit) {\r\n\r\n const splitId = id.split('.');\r\n splitId.shift();// remove index\r\n const stageName = splitId[splitId.length - 1];\r\n const critDisplayName = getCritDisplayName(initCrit, stageName);\r\n setCritName(critDisplayName);\r\n if (initCrit.identity < 0) {\r\n DealingsService.getDealingsMatchingCriterionName(demandId, stageId, stageName, critDisplayName).then((dealingsContains) => {\r\n const ids = findTemporaryDealingIds(dealingsContains, allItems, id, initCrit);\r\n const filtered = allItems.filter(x => ids.indexOf(x.identity) > -1);\r\n setElementList(filtered);\r\n\r\n });\r\n\r\n } else {\r\n DealingsService.getDealingsMatchingCriterion(demandId, initCrit.identity).then((dealingsContains) => {\r\n\r\n filterByCurrentLoadedDealings(dealingsContains, allItems, id, initCrit);\r\n const ids = dealingsContains.map(x => x.identity);\r\n const filtered = allItems.filter(x => ids.indexOf(x.identity) > -1);\r\n setElementList(filtered);\r\n });\r\n }\r\n }\r\n }, [demandId, initCrit, allItems, id, stageId]);\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(ConfirmDeleteCriterion);","import React, {useEffect, useState} from 'react'\r\nimport {Divider, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ConditionElement from './ConditionElement';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport AddButton from 'components/button/AddButton';\r\nimport NewCondition from 'components/popup/newCondition/NewCondition';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {CONDITIONS_LABEL, CONDITIONS_LABEL_PZP_2021, CONDITION_TYPE_OTHER} from 'components/popup/newCondition/constants/condition.values';\r\nimport Checkbox from 'components/Checkbox';\r\nimport {withRouter} from \"react-router\";\r\nimport ConfirmDeleteCriterion from \"./ConfirmDeleteCriterion\";\r\nimport {addElementsToParts, removeElementsfromParts} from \"../lib/manipulateElementsOnParts\";\r\nimport {getDemandPZPType} from \"libs/getDemandStatus\";\r\nimport PZPType from \"constants/PZPType\";\r\nimport _ from 'lodash';\r\n\r\nconst style = theme => ({\r\n root: {\r\n width: '100%',\r\n '&>*': {\r\n width: 'inherit'\r\n }\r\n },\r\n header: {\r\n marginTop: theme.spacing(1),\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n divider: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n }\r\n})\r\n\r\nfunction ConditionsSection(\r\n {\r\n classes,\r\n formikProps,\r\n rootId,\r\n id,\r\n checkboxId,\r\n match,\r\n partId,\r\n stageId,\r\n dirtyListenerSemaphore\r\n }) {\r\n const [openPopup, setOpenPopup] = useState(false);\r\n const [openDeletePopup, setOpenDeletePopup] = useState(false);\r\n const [editElement, setEditElement] = useState();\r\n\r\n const demandId = match.params.id;\r\n\r\n const thisId = id;\r\n\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const elements = getObjectValue(thisId, formikProps.values, []);\r\n\r\n const demandPzpType = getDemandPZPType();\r\n const conditionLabels = PZPType.PZP_2021 === demandPzpType ? CONDITIONS_LABEL_PZP_2021 : CONDITIONS_LABEL;\r\n\r\n const handleAddCondition = ({parts, ...values}) => {\r\n addElementsToParts(formikProps, id, parts, values, editElement, demandId)\r\n setOpenPopup(false)\r\n setEditElement()\r\n }\r\n\r\n const handleEdit = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setOpenPopup(true);\r\n }\r\n\r\n const onClosePopup = () => {\r\n setOpenPopup(false)\r\n setEditElement()\r\n }\r\n\r\n const conditionsInSiwz = getObjectValue(checkboxId, formikProps.values);\r\n\r\n\r\n const handleDeleteButtonPress = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setOpenDeletePopup(true);\r\n }\r\n\r\n const onCloseDeletePopup = () => {\r\n setOpenDeletePopup(false)\r\n setEditElement();\r\n }\r\n\r\n const handleDeleteCondition = ({parts}) => {\r\n removeElementsfromParts(formikProps, id, parts, editElement, demandId);\r\n setOpenDeletePopup(false);\r\n setEditElement();\r\n }\r\n\r\n\r\n useEffect(() => {\r\n dirtyListenerSemaphore.current = true;\r\n if (elements.length > 0) {\r\n formikProps.setFieldValue(checkboxId, false)\r\n } else if (elements.length === 0 && !conditionsInSiwz) {\r\n formikProps.setFieldValue(checkboxId, true)\r\n }\r\n dirtyListenerSemaphore.current = false;\r\n // eslint-disable-next-line\r\n }, [elements.length])\r\n\r\n return (\r\n <>\r\n \r\n \r\n {Tr('conditions')}\r\n {!conditionsInSiwz ?\r\n ` (${elements.length})`\r\n : ''\r\n }\r\n\r\n \r\n\r\n \r\n \r\n {!conditionsInSiwz &&\r\n elements.map((item, i) => {\r\n const name = item.type === CONDITION_TYPE_OTHER ? item.otherName : conditionLabels[item.type];\r\n return (\r\n handleEdit(i)}\r\n disabled={!editable}\r\n />\r\n )\r\n })\r\n }\r\n\r\n setOpenPopup(true)}\r\n disabled={!editable}\r\n >\r\n {Tr('add_condition')}\r\n \r\n \r\n \r\n \r\n {openPopup && onClosePopup()}\r\n partId={partId}\r\n initValues={editElement}\r\n elementList={formikProps.values.form}\r\n selectedItems={elements}\r\n demandId={demandId}\r\n stageId={stageId}\r\n showParts={editable}\r\n />}\r\n {openDeletePopup && onCloseDeletePopup()}\r\n onDelete={handleDeleteCondition}\r\n partId={partId}\r\n demandId={demandId}\r\n stageId={stageId}\r\n initCrit={editElement}\r\n allItems={formikProps.values.form}\r\n id={id}\r\n />}\r\n\r\n\r\n >\r\n )\r\n}\r\n\r\nConditionsSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(withRouter(ConditionsSection));","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ConditionElement from './ConditionElement';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport {CRYTERIUM_TYPE} from \"components/popup/newCriteria/constants/criterium.type\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport {isDemandPreparing} from \"libs/getDemandStatus\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n weightInput: {\r\n width: 100\r\n }\r\n})\r\n\r\nfunction CriteriaElement(\r\n {\r\n classes,\r\n formikProps,\r\n name,\r\n type,\r\n id,\r\n index,\r\n onEdit,\r\n onDelete,\r\n disabled,\r\n }) {\r\n\r\n const onWeightChange = (val) => {\r\n\r\n const critArray = getObjectValue(id, formikProps.values, []);\r\n let priceIndex = -1;\r\n let sum = critArray.reduce((prev, cur, curIndex) => {\r\n let newSum = prev;\r\n if (cur.type === CRYTERIUM_TYPE.PRICE) {\r\n priceIndex = curIndex;\r\n } else {\r\n if (curIndex === index) {\r\n newSum += parseFloat(val);\r\n } else {\r\n newSum += parseFloat(cur.weight);\r\n }\r\n }\r\n return newSum;\r\n }, 0);\r\n sum = parseFloat(sum.toFixed(2));\r\n const priceWeight = (100 - sum) < 0 ? 0 : 100 - sum;\r\n const priceWeightId = `${id}.${priceIndex}.weight`;\r\n formikProps.setFieldValue(priceWeightId, priceWeight);\r\n }\r\n\r\n const weightId = `${id}.${index}.weight`\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nCriteriaElement.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(CriteriaElement);","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (label, value,disabled=false) => ({label, value, disabled})\r\n\r\nexport const VALUES = {\r\n\tNEW: 0,\r\n\tMY_CRITERIA: 1,\r\n}\r\n\r\nexport default [\r\n\tcreateItem(Tr('new'), VALUES.NEW),\r\n\tcreateItem(Tr('my_criteria'), VALUES.MY_CRITERIA,true)\r\n]","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (label, value) => ({\r\n\tlabel,\r\n\tvalue\r\n})\r\n\r\nexport const VARIANT_CODE = {\r\n\tRANGE: 'BETWEEN',\r\n\tSMALLER: 'SMALLER_THAN',\r\n\tBIGGER: 'BIGGER_THAN',\r\n}\r\n\r\nexport default [\r\n\tcreateItem(Tr('criteria_element_v_range'), VARIANT_CODE.RANGE),\r\n\tcreateItem(Tr('criteria_element_v_smaller'), VARIANT_CODE.SMALLER),\r\n\tcreateItem(Tr('criteria_element_v_bigger'), VARIANT_CODE.BIGGER),\r\n]","import * as Yup from 'yup'\r\nimport Tr from 'translations/Translations';\r\nimport {CRYTERIUM_TYPE as CRYTERIUM_VARIANT, CRYTERIUM_TYPE_LABEL} from './criterium.type'\r\nimport {VARIANT_CODE as CRITERIA_TYPE} from './criteria.variants'\r\nimport {VARIANT_CODE as CRITERIA_ELEMENT_TYPE} from './criteriaElement.variants'\r\nimport {VALUES as TABS} from './tabs.values'\r\nimport VS from 'constants/ValidationShema'\r\nimport InputLimits from 'constants/InputLimits';\r\nimport toFloat from 'libs/toFloat';\r\n\r\nexport default (selectedItems) => Yup.lazy(values => {\r\n\r\n const weight = values.weight ? parseFloat(parseFloat(values.weight).toFixed(2)) : 0;\r\n\r\n const min0MaxWeight = VS.numberMaxMin(0, weight, null, 'v_number_max_weight', Tr('points'));\r\n\r\n const from = VS.decimalNumber(Tr(\"from\"))\r\n const to = VS.decimalNumber(Tr(\"to\"))\r\n\r\n const reg = '^(?!(' + selectedItems.map(x => x.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|') + ')$).*$';\r\n const otherNameRegExp = new RegExp(reg)\r\n let shape = {\r\n otherName: (values.type === CRYTERIUM_VARIANT.OTHER || values.type === CRYTERIUM_VARIANT.PRICE) ?\r\n VS.stringExactlyMax(\r\n otherNameRegExp,\r\n Tr('v_criteria_exist'),\r\n InputLimits.procedure.criteriaSection.NAME\r\n ) : VS.any(),\r\n isSelected: values.tab === TABS.NEW ?\r\n VS.any() :\r\n VS.immediatelyError(Tr('new_criteria_popup_v_choose')),\r\n weight: VS.numberMax(100)\r\n }\r\n switch (values.type) {\r\n case CRYTERIUM_VARIANT.OTHER:\r\n case CRYTERIUM_VARIANT.PRICE:\r\n //to jest walidowane przy pomocy otherName\r\n break;\r\n default:\r\n shape['type'] = VS.string().test(\r\n 'duplicate',\r\n Tr('v_criteria_exist'),\r\n (formValue) => {\r\n return otherNameRegExp.test(CRYTERIUM_TYPE_LABEL[formValue]);\r\n }\r\n )\r\n }\r\n\r\n switch (values.uiType) {\r\n case CRITERIA_TYPE.LIST:\r\n\r\n shape['valuesList'] = VS.lazy(list => {\r\n let keys = [];\r\n let errorKeys = [];\r\n\r\n const maxListPoints = Math.max(...list.map(o => o.value), 0);\r\n let pointsLessThanWeight = maxListPoints === weight;\r\n\r\n list.forEach((x, i, arr) => {\r\n if (keys.indexOf(x.key) === -1) {\r\n keys.push(x.key);\r\n } else {\r\n errorKeys.push(x.key);\r\n }\r\n });\r\n return VS.arrayOf(VS.lazy((x, y, z) => {\r\n\r\n return VS.object({\r\n value: min0MaxWeight,\r\n key: VS.stringMax(1000)\r\n .test(\r\n 'duplicate',\r\n Tr('v_keys_must_be_unique'),\r\n (formValue) => {\r\n return errorKeys.indexOf(formValue) === -1;\r\n }\r\n )\r\n })\r\n })).min(2, Tr('at_least_two_values'))\r\n .test('weight_less_than_points', Tr('v_number_weight_less_than_points'), () => pointsLessThanWeight)\r\n });\r\n\r\n break;\r\n case CRITERIA_TYPE.INTERVAL:\r\n shape['intervalList'] = VS.lazy(list => {\r\n\r\n const maxListPoints = Math.max(...list.map(o => o.value), 0);\r\n const pointsLessThanWeight = maxListPoints === weight;\r\n\r\n let validation = {};\r\n\r\n list.forEach((x, i) => {\r\n let curRowValidation = {};\r\n validation[x.id] = curRowValidation;\r\n\r\n if (x.type === CRITERIA_ELEMENT_TYPE.SMALLER && i !== 0) {\r\n curRowValidation.smallerError = true;\r\n }\r\n\r\n if (x.type === CRITERIA_ELEMENT_TYPE.BIGGER && i !== (list.length - 1)) {\r\n curRowValidation.biggerError = true;\r\n }\r\n\r\n if (x.type === CRITERIA_ELEMENT_TYPE.RANGE) {\r\n\r\n curRowValidation.rangeSameError = x.from === x.to ? !x.fromInclusive || !x.toInclusive : false;\r\n }\r\n\r\n if (i !== 0) {\r\n const curFrom = toFloat(x.from);\r\n const prevTo = toFloat(list[i - 1].to);\r\n if (curFrom !== prevTo) {\r\n curRowValidation.inservalStartToPrevEndError = true;\r\n }\r\n if (x.type === CRITERIA_ELEMENT_TYPE.RANGE) {\r\n const curTo = toFloat(x.to);\r\n if (curTo < curFrom) {\r\n curRowValidation.inservalStartLesThanEndError = true;\r\n }\r\n }\r\n }\r\n })\r\n\r\n return VS.arrayOf(VS.lazy(x => {\r\n const elementErrors = validation[x.id];\r\n switch (x.type) {\r\n case CRITERIA_ELEMENT_TYPE.RANGE:\r\n return VS.object({\r\n value: min0MaxWeight,\r\n to,\r\n from: from\r\n .test(\r\n 'lessPrev',\r\n Tr('v_interval_contained_within'),\r\n (formValue) => {\r\n return !elementErrors.inservalStartToPrevEndError;\r\n })\r\n .test(\r\n 'less',\r\n Tr('v_number_less_than', {from: Tr('from'), to: Tr('to')}),\r\n (fromValue) => {\r\n return !elementErrors.inservalStartLesThanEndError\r\n }).test(\r\n 'rangeSameError',\r\n Tr('v_interval_contained_within'),\r\n (fromValue) => {\r\n return !elementErrors.rangeSameError;\r\n }\r\n ),\r\n })\r\n\r\n case CRITERIA_ELEMENT_TYPE.SMALLER:\r\n return VS.object({\r\n value: min0MaxWeight,\r\n to: to\r\n .test(\r\n 'smallerFirst',\r\n Tr('v_smaller_not_first'),\r\n (formValue) => {\r\n return !elementErrors.smallerError;\r\n }\r\n ),\r\n })\r\n\r\n case CRITERIA_ELEMENT_TYPE.BIGGER:\r\n default:\r\n return VS.object({\r\n value: min0MaxWeight,\r\n from: from\r\n .test(\r\n 'biggerLast',\r\n Tr('v_bigger_not_last'),\r\n (formValue) => {\r\n return !elementErrors.biggerError;\r\n }\r\n )\r\n .test(\r\n 'lessPrev',\r\n Tr('v_interval_contained_within'),\r\n (formValue) => {\r\n return !elementErrors.inservalStartToPrevEndError;\r\n }),\r\n })\r\n }\r\n })).min(1, Tr('mustNotBeEmpty', {value: Tr('values')})).test('weight_less_than_points', Tr('v_number_weight_less_than_points'), () => pointsLessThanWeight)\r\n })\r\n\r\n break;\r\n case CRITERIA_TYPE.NUMBER:\r\n case CRITERIA_TYPE.PRICE:\r\n shape['direction'] = VS.string();\r\n break;\r\n case CRITERIA_TYPE.TEXT:\r\n case CRITERIA_TYPE.YESNO:\r\n default:\r\n break;\r\n }\r\n\r\n return VS.object(shape)\r\n})","import React from 'react'\r\nimport {Divider, makeStyles, Tab} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport TabsUI from '@material-ui/core/Tabs';\r\nimport Typography from \"./Typography\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n divider: {\r\n margin: `0 ${-theme.spacing(2)}px ${theme.spacing(2)}px`\r\n },\r\n tab: {\r\n flexGrow: '1'\r\n },\r\n tabVertical: {\r\n display: \"flex\",\r\n flexDirection: \"row-reverse\",\r\n justifyContent: \"end\",\r\n textTransform: \"none\",\r\n \"&>.MuiSvgIcon-root\": {\r\n marginLeft: theme.spacing(1)\r\n },\r\n \"&>.MuiTypography-root\": {\r\n flexGrow: 1\r\n }\r\n },\r\n tabVerticalSelected: {\r\n backgroundColor: theme.palette.background.greyBackground,\r\n borderRadius: `${theme.shape.borderRadius}px 0 0 ${theme.shape.borderRadius}px`,\r\n },\r\n tabsVertical: {\r\n borderRight: `1px solid ${theme.palette.divider}`,\r\n marginRight: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction Tabs(\r\n {\r\n tabs,\r\n value,\r\n onChange,\r\n children,\r\n vertical\r\n }) {\r\n const classes = useStyle();\r\n\r\n return (\r\n <>\r\n onChange(newValue)}\r\n indicatorColor='primary'\r\n orientation={vertical ? \"vertical\" : undefined}\r\n >\r\n {tabs.map(({\r\n label,\r\n value,\r\n disabled,\r\n icon\r\n }) => {\r\n return (\r\n {label}}\r\n value={value}\r\n disabled={disabled}\r\n icon={icon}\r\n />\r\n )\r\n })}\r\n \r\n {!vertical && }\r\n {children}\r\n >\r\n )\r\n}\r\n\r\nTabs.propTypes = {\r\n tabs: PropTypes.arrayOf(PropTypes.shape({\r\n label: PropTypes.string.isRequired,\r\n value: PropTypes.any.isRequired,\r\n icon: PropTypes.element,\r\n disabled: PropTypes.bool\r\n }))\r\n}\r\n\r\nexport default Tabs;","import React, { memo } from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tabs from 'components/Tabs';\r\nimport tabsValues from '../constants/tabs.values'\r\nimport getObjectValue from 'libs/getObjectValue'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction FormTabs({\r\n\tclasses,\r\n\tid,\r\n\tformikProps,\r\n\tonChange = () => {},\r\n}) {\r\n\tconst value = getObjectValue(id, formikProps.values, '')\r\n\t\r\n\tconst handleChange = (value) => {\r\n\t\tformikProps.setFieldValue(id, value)\r\n\t\tonChange(value)\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nFormTabs.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(memo(FormTabs, (prevProps, nextProps) => {\r\n\tif (prevProps.id !== nextProps.id) return false;\r\n\tconst id = nextProps.id;\r\n\tif (getObjectValue(id, prevProps.formikProps.values) !== getObjectValue(id, nextProps.formikProps.values)) return false;\r\n\treturn true;\r\n}));","import React, { useEffect } from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Select from 'components/Select';\r\nimport Tr from 'translations/Translations';\r\nimport typeValues, { VARIANT_CODE } from '../constants/criteria.variants'\r\nimport TextInput from 'components/TextInput';\r\nimport criteriumVariant, { CRYTERIUM_TYPE } from '../constants/criterium.type'\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport {isDemandPreparing} from 'libs/getDemandStatus';\r\n\r\nconst limits = InputLimits.procedure\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction OtherCriteriaFields({\r\n\tclasses,\r\n\tformikProps,\r\n\tedit,\r\n\tselectedItems,\r\n\tinitValues,\r\n}) {\r\n\r\n\tconst type = getObjectValue(\"type\", formikProps.values, '')\r\n\r\n\tconst setRepeatValue = (direction, fieldValue) => {\r\n\t\tformikProps.setFieldValue(\"uiType\", VARIANT_CODE.NUMBER)\r\n\t\tformikProps.setFieldValue(\"calculation\", true)\r\n\t\tformikProps.setFieldValue(\"direction\", direction)\r\n\t\tif (fieldValue) formikProps.setFieldValue(\"uom\", fieldValue)\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!edit) {\r\n\t\t\tif (type === CRYTERIUM_TYPE.PAYMENT) setRepeatValue(\"ASCENDING\", \"TG\")\r\n\t\t\telse if (type === CRYTERIUM_TYPE.GUARANTEE) setRepeatValue(\"ASCENDING\", \"MS\")\r\n\t\t\telse if (type === CRYTERIUM_TYPE.TIME_LIMIT) setRepeatValue(\"DESCENDING\", \"TG\")\r\n\t\t\telse if (type === CRYTERIUM_TYPE.PRICE) setRepeatValue(\"DESCENDING\", \"PLN\")\r\n\t\t\telse formikProps.setFieldValue(\"uiType\", VARIANT_CODE.TEXT);\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [type])\r\n\r\n\tconst typeElements = criteriumVariant.reduce((acc, item) => {\r\n\t\tif (item.value === CRYTERIUM_TYPE.OTHER) return [...acc, item];\r\n\t\tif (initValues !== undefined) {\r\n\t\t\tif (item.value === initValues.type) {\r\n\t\t\t\treturn [...acc, item]\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (selectedItems.find(x => x.type === item.value)) {\r\n\t\t\treturn acc;\r\n\t\t}\r\n\t\treturn [...acc, item]\r\n\t}, [])\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t{(formikProps.values.type === CRYTERIUM_TYPE.OTHER ||\r\n\t\t\t\tformikProps.values.type === CRYTERIUM_TYPE.PRICE\r\n\t\t\t) &&\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t{(formikProps.values.uiType !== undefined &&\r\n\t\t\t\tformikProps.values.type !== CRYTERIUM_TYPE.PRICE\r\n\t\t\t) &&\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nOtherCriteriaFields.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(OtherCriteriaFields);","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (label, value) => ({\r\n\tlabel,\r\n\tvalue\r\n})\r\n\r\nexport const MEASURE_UNIT = {\r\n\tDAY: 0,\r\n\tMONTH: 1,\r\n\tWEEKS: 2,\r\n\tYEARS: 3,\r\n}\r\n\r\nexport const MEASURE_UNIT_LABEL = {\r\n\t[MEASURE_UNIT.DAY]: Tr('days'),\r\n\t[MEASURE_UNIT.MONTH]: Tr('months'),\r\n\t[MEASURE_UNIT.WEEKS]: Tr('weeks'),\r\n\t[MEASURE_UNIT.YEARS]: Tr('years'),\r\n}\r\n\r\nconst values = Object.keys(MEASURE_UNIT_LABEL).map( item => \r\n\tcreateItem(MEASURE_UNIT_LABEL[item], item)\r\n)\r\n\r\nexport default values;","import { VARIANT_CODE as CRITERIA_TYPE } from '../constants/criteria.variants'\r\nimport { MEASURE_UNIT } from '../constants/measurePeriodUnits.values'\r\nimport { VARIANT_CODE as CRITERIA_ELEMENT_TYPE } from '../constants/criteriaElement.variants'\r\n\r\nconst createItem = (name, type, description, unit, criteria) => ({\r\n\tname, type, description, unit, criteria\r\n})\r\n\r\nconst createCriteria2 = (min, max, points) => ({min, max, points, variant: CRITERIA_ELEMENT_TYPE.RANGE})\r\nconst createCriteriaSmaller = (max, points) => ({max, points, variant: CRITERIA_ELEMENT_TYPE.SMALLER})\r\nconst createCriteriaBigger = (min, points) => ({min, points, variant: CRITERIA_ELEMENT_TYPE.BIGGER})\r\nconst createCriteriaL = (units, points) => ({units, points})\r\n\r\nexport default [\r\n\tcreateItem('NAME 1', CRITERIA_TYPE.INTERVAL, 'DESCRIPTION 1', MEASURE_UNIT.MONTH, [\r\n\t\tcreateCriteriaBigger(2, 20),\r\n\t\tcreateCriteria2(3, 13, 10),\r\n\t\tcreateCriteriaSmaller(1, 25),\r\n\t\tcreateCriteriaBigger(4, 35),\r\n\t\tcreateCriteria2(1, 7, 30),\r\n\t]),\r\n\tcreateItem('NAME 2', CRITERIA_TYPE.LIST, 'DESCRIPTION 2', MEASURE_UNIT.WEEKS, [\r\n\t\tcreateCriteriaL(3,11),\r\n\t\tcreateCriteriaL(1,21),\r\n\t\tcreateCriteriaL(7,41),\r\n\t\tcreateCriteriaL(2,12),\r\n\t\tcreateCriteriaL(3,26),\r\n\t\tcreateCriteriaL(2,12),\r\n\t]),\r\n\tcreateItem('Lorem ipsum dolor sit amet consectetur', CRITERIA_TYPE.INTERVAL, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut in mi facilisis, iaculis diam ut, lobortis dolor. Morbi venenatis elementum condimentum. Donec commodo quam eget ipsum venenatis, vitae mollis turpis volutpat. Etiam sit amet ullamcorper tortor. Nulla et feugiat massa.', MEASURE_UNIT.DAY, [\r\n\t\tcreateCriteria2(3, 13, 10),\r\n\t\tcreateCriteriaSmaller(1, 25),\r\n\t\tcreateCriteriaBigger(2, 20),\r\n\t\tcreateCriteria2(1, 7, 30),\r\n\t\tcreateCriteriaBigger(4, 35),\r\n\t]),\r\n]","import React from 'react'\r\nimport { withStyles, ListItem, Grid, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport { criteriaLabels } from '../constants/criteria.variants'\r\nimport Button from 'components/Button';\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tgrid: {\r\n\t\t'&>*': {\r\n\t\t\t'&:not(:first-child)': {\r\n\t\t\t\tmarginLeft: theme.spacing(1)\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tnameItem: {\r\n\t\twidth: 200,\r\n\t\tflexShrink: 0,\r\n\t},\r\n\ttypeItem: {\r\n\t\twidth: 100,\r\n\t\tflexShrink: 0,\r\n\t},\r\n\tdescriptionItem: {\r\n\t\tflexGrow: 1,\r\n\t},\r\n\ttext: {\r\n\t\t...theme.typography.cutLines(1),\r\n\t}\r\n})\r\n\r\nfunction ListElement({\r\n\tclasses,\r\n\tname,\r\n\ttype,\r\n\tdescription,\r\n\tonClick\r\n}) {\r\n\tconst text = (t) => ({t})\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{text(name)}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{text(criteriaLabels[type])}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{text(description)}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nListElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ListElement);","import React from 'react'\r\nimport { withStyles, List, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport elements from './mock.elements'\r\nimport ListElement from './ListElement';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction MyCriteriaList({\r\n\tclasses,\r\n\tformikProps,\r\n}) {\r\n\r\n\tconst handleClick = item => {\r\n\t\tformikProps.setValues({\r\n\t\t\t...formikProps.values,\r\n\t\t\t...item,\r\n\t\t\tisSelected: true,\r\n\t\t})\r\n\t}\r\n\r\n\tconst errorValue = formikProps.errors.isSelected;\r\n\tconst touched = formikProps.touched.isSelected;\r\n\tconst isError = !!errorValue && touched\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t{elements.map((item, i) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t handleClick(item)} />\r\n\t\t\t\t\t)\r\n\t\t\t\t})}\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t{isError && formikProps.errors.isSelected}\r\n\t\t\t\r\n\t\t>\r\n\t)\r\n}\r\n\r\nMyCriteriaList.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(MyCriteriaList);","import React from 'react'\r\nimport { withStyles, FormHelperText } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from './GridBlock';\r\nimport getObjectValue from 'libs/getObjectValue'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\ttext: {\r\n\t\tmargin: 0,\r\n\t\tmarginBottom: theme.spacing(1)\r\n\t}\r\n})\r\n\r\nfunction ErrorText({\r\n\tclasses,\r\n\tchildren,\r\n\tidList,\r\n\tformikProps,\r\n}) {\r\n\r\n\tlet errorText = undefined;\r\n\r\n\tfor (let i in idList) {\r\n\t\tconst id = idList[i];\r\n\t\tconst errorValue = getObjectValue(id, formikProps.errors, '')\r\n\t\tconst touched = getObjectValue(id, formikProps.touched, false)\r\n\t\tconst isError = !!errorValue && touched;\r\n\t\tif (isError) {\r\n\t\t\terrorText = errorValue;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\t{errorText &&\r\n\t\t\t\t{errorText}\r\n\t\t\t}\r\n\t\t\r\n\t)\r\n}\r\n\r\nErrorText.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tchildren: PropTypes.any,\r\n\tidList: PropTypes.array,\r\n\tformikProps: PropTypes.object.isRequired,\r\n}\r\n\r\nErrorText.defaultProps = {\r\n\tidList: []\r\n}\r\n\r\nexport default withStyles(style)(ErrorText);","import React, {useEffect, useState} from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport ErrorText from 'components/ErrorText';\r\nimport MeasureUnitService from 'services/MeasureUnitService';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*:last-child': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\ttextAlign: 'right'\r\n\t\t}\r\n\t},\r\n\tinput: {\r\n\t\twidth: theme.components.input.criteria.width,\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tinputkey: {\r\n\t\twidth: theme.components.input.criteriaKey.width,\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n});\r\n\r\nfunction CriteriaElement({\r\n\tclasses,\r\n\tindex,\r\n\tformikProps,\r\n\tonDelete,\r\n\tdisabled\r\n}) {\r\n\tconst id = 'valuesList';\r\n\tconst [measureUnits, setMeasureUnits] = useState(null);\r\n\tconst editable = getObjectValue('_editable', formikProps.values, false);\r\n\r\n\tuseEffect(() => {\r\n\t\tMeasureUnitService.getRequired().then((resp) => setMeasureUnits(resp));\r\n\t}, []);\r\n\r\n\tconst unitId = formikProps.values.uom;\r\n\tconst unitLabel = unitId && measureUnits ? measureUnits.filter(mu => mu.value === unitId).label : '';\r\n\r\n\tconst unitsId = `${id}.${index}.key`;\r\n\tconst pointsId = `${id}.${index}.value`;\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{index + 1}. {Tr('add_criterium_e_eq')}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{unitLabel} {Tr('admit')}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{Tr('points')}.\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nCriteriaElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tonDelete: PropTypes.func,\r\n};\r\n\r\nCriteriaElement.defaultProps = {\r\n};\r\n\r\nexport default withStyles(style)(CriteriaElement);","import React from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Button from 'components/Button';\r\nimport {FieldArray} from 'formik';\r\nimport Tr from 'translations/Translations';\r\nimport AddIcon from '@material-ui/icons/AddBoxOutlined'\r\nimport removeFormikListElement from 'libs/removeFormikListElement';\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst style = theme => ({\r\n root: {}\r\n})\r\n\r\nfunction CriteriaListBase({\r\n classes,\r\n formikProps,\r\n id,\r\n Element,\r\n onAdd,\r\n disabled\r\n }) {\r\n\r\n const handleDelete = index => {\r\n removeFormikListElement(formikProps, id, index)\r\n }\r\n const errorValue = getObjectValue(id, formikProps.errors, null);\r\n const errorWholeTabValue = Array.isArray(errorValue) ? null : errorValue;\r\n const editable = getObjectValue('_editable', formikProps.values, false);\r\n\r\n return (\r\n \r\n \r\n \r\n {Tr('values')}\r\n \r\n \r\n formikProps.values[id].map(\r\n (item, i, arr) => {\r\n return (\r\n handleDelete(i)}\r\n isLast={arr.length - 1 === i}\r\n disabled={disabled}\r\n />\r\n )\r\n }\r\n )}\r\n />\r\n\t\t\t{!!errorWholeTabValue && \r\n\t\t\t\t{errorWholeTabValue}\r\n\t\t\t}\r\n\r\n {editable && !disabled &&\r\n \r\n }\r\n
\r\n )\r\n}\r\n\r\nCriteriaListBase.propTypes = {\r\n classes: PropTypes.any,\r\n Element: PropTypes.object,\r\n onDelete: PropTypes.func,\r\n onAdd: PropTypes.func,\r\n}\r\n\r\nCriteriaListBase.defaultProps = {}\r\n\r\nexport default withStyles(style)(CriteriaListBase);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport CriteriaElement from './CriteriaElement';\r\nimport CriteriaListBase from '../components/CriteriaListBase';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\ttitle: {\r\n\t\tfontWeight: theme.typography.fontWeightBold,\r\n\t}\r\n})\r\n\r\nfunction CriteriaList({\r\n\tclasses,\r\n\tformikProps,\r\n\tdisabled = false\r\n}) {\r\n\tconst id = 'valuesList';\r\n\r\n\tconst handleAdd = () => {\r\n\t\tformikProps.setFieldValue(id,\r\n\t\t\t[...formikProps.values[id], {\r\n\t\t\t\tkey: '',\r\n\t\t\t\tvalue: ''\r\n\t\t\t}])\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nCriteriaList.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nCriteriaList.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(CriteriaList);","import React, { useEffect } from 'react'\r\nimport { withStyles, Radio } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport getObjectValue from 'libs/getObjectValue';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\thideElement: {\r\n\t\twidth: 42,\r\n\t}\r\n})\r\n\r\nfunction RadioButton({\r\n\tclasses,\r\n\thide,\r\n\tformikProps,\r\n\tid,\r\n\tpairId,\r\n\tdisabled = false\r\n}) {\r\n\t\r\n\tconst value = getObjectValue(id, formikProps.values, false)\r\n\tconst pairValue = getObjectValue(pairId, formikProps.values, false)\r\n\r\n\tuseEffect(() => {\r\n\t\tif(pairId !== undefined){\r\n\t\t\tformikProps.setFieldValue(id, !pairValue)\r\n\t\t}\r\n\t// eslint-disable-next-line\r\n\t}, [pairValue])\r\n\r\n\tconst handleClick = (e) => {\r\n\t\tconst value = e.target.checked;\r\n\t\tformikProps.setFieldValue(id, value)\r\n\t\tif(pairId !== undefined){\r\n\t\t\tformikProps.setFieldValue(pairId, !value)\r\n\t\t}\r\n\t}\r\n\r\n\tif (hide) {\r\n\t\treturn \r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nRadioButton.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(RadioButton);","import React from 'react'\r\nimport { withStyles, Typography, Tooltip } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport RadioButton from '../../components/RadioButton';\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\tmarginRight: theme.spacing(1),\r\n\t\t}\r\n\t},\r\n\tinput: {\r\n\t\twidth: theme.components.input.criteria.width,\r\n\t}\r\n});\r\n\r\nfunction BaseVariant({\r\n\tclasses,\r\n\tindex,\r\n\tformikProps,\r\n\tdisableMin = false,\r\n\tdisableMax = false,\r\n\tisLast = false,\r\n\tdisabled\r\n}) {\r\n\tconst criterionId = 'intervalList';\r\n\r\n\tconst pointsId = `${criterionId}.${index}.value`;\r\n\tconst minId = `${criterionId}.${index}.from`;\r\n\tconst maxId = `${criterionId}.${index}.to`;\r\n\tconst minRadioId = `${criterionId}.${index}.fromInclusive`;\r\n\tconst maxRadioId = `${criterionId}.${index}.toInclusive`;\r\n\tconst nextMinRadioId = `${criterionId}.${index + 1}.fromInclusive`;\r\n\tconst editable = getObjectValue('_editable', formikProps.values, false);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{Tr('admit')}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{Tr('points')}.\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nBaseVariant.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tchildren: PropTypes.any,\r\n};\r\n\r\nBaseVariant.defaultProps = {\r\n};\r\n\r\nexport default withStyles(style)(BaseVariant);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport BaseVariant from './BaseVariant';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t\r\n\t},\r\n})\r\n\r\nfunction RangeVariant({\r\n\tindex,\r\n\tformikProps,\r\n\tisLast,\r\n\tdisabled\r\n}) {\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nRangeVariant.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nRangeVariant.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(RangeVariant);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport BaseVariant from './BaseVariant';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tinput: {\r\n\t\twidth: theme.components.input.criteria.width,\r\n\t}\r\n})\r\n\r\nfunction SmallerVariant({\r\n\tclasses,\r\n\tindex,\r\n\tformikProps,\r\n\tisLast,\r\n\tdisabled\r\n}) {\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nSmallerVariant.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nSmallerVariant.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(SmallerVariant);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport BaseVariant from './BaseVariant';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction BiggerVariant({\r\n\tclasses,\r\n\tindex,\r\n\tformikProps,\r\n\tisLast,\r\n\tdisabled\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nBiggerVariant.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nBiggerVariant.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(BiggerVariant);","import React from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Select from 'components/Select';\r\nimport criteriaElementVariants, { VARIANT_CODE } from '../constants/criteriaElement.variants'\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport RangeVariant from './elementVariants/RangeVariant';\r\nimport SmallerVariant from './elementVariants/SmallerVariant';\r\nimport BiggerVariant from './elementVariants/BiggerVariant';\r\nimport ErrorText from 'components/ErrorText';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\tmarginRight: theme.spacing(1),\r\n\t\t\t'&:last-child': {\r\n\t\t\t\tflexGrow: 1,\r\n\t\t\t\ttextAlign: 'right'\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tselect: {\r\n\t\twidth: 130,\r\n\t},\r\n})\r\n\r\nfunction CriteriaElement({\r\n\tclasses,\r\n\tindex,\r\n\tformikProps,\r\n\tonDelete,\r\n\tisLast,\r\n\tdisabled\r\n}) {\r\n\tconst criterionId = 'intervalList';\r\n\tconst variantId = `${criterionId}.${index}.type`;\r\n\tconst variant = getObjectValue(variantId, formikProps.values);\r\n\tconst editable = getObjectValue('_editable', formikProps.values, false);\r\n\r\n\tconst getVariant = () => {\r\n\r\n\t\tswitch (variant) {\r\n\t\t\tcase VARIANT_CODE.RANGE: return \r\n\t\t\tcase VARIANT_CODE.SMALLER: return \r\n\t\t\tcase VARIANT_CODE.BIGGER: return \r\n\t\t\tdefault: return '';\r\n\t\t}\r\n\t}\r\n\r\n\tconst getErrorIds = () => {\r\n\t\tlet arrayIds = [`${criterionId}.${index}.value`]\r\n\t\tswitch (variant) {\r\n\t\t\tcase VARIANT_CODE.RANGE:\r\n\t\t\t\tarrayIds.push(`${criterionId}.${index}.from`)\r\n\t\t\t\tarrayIds.push(`${criterionId}.${index}.to`)\r\n\t\t\t\tbreak;\r\n\t\t\tcase VARIANT_CODE.SMALLER:\r\n\t\t\t\tarrayIds.push(`${criterionId}.${index}.to`)\r\n\t\t\t\tbreak;\r\n\t\t\tcase VARIANT_CODE.BIGGER:\r\n\t\t\t\tarrayIds.push(`${criterionId}.${index}.from`)\r\n\t\t\t\tbreak;\r\n\t\t\tdefault: break;\r\n\t\t}\r\n\t\treturn arrayIds;\r\n\t}\r\n\t\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{index + 1}.\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{getVariant()}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nCriteriaElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nCriteriaElement.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(CriteriaElement);","export default {\r\n\tlastItem: (arr) => arr[arr.length - 1]\r\n}","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport CriteriaListBase from '../components/CriteriaListBase';\r\nimport CriteriaElement from './CriteriaElement';\r\nimport {VARIANT_CODE} from '../constants/criteriaElement.variants';\r\nimport arrayExtension from 'libs/arrayExtension'\r\n\r\nconst style = theme => ({\r\n root: {}\r\n})\r\n\r\nfunction CriteriaList({\r\n classes,\r\n formikProps,\r\n disabled\r\n }) {\r\n const id = 'intervalList';\r\n\r\n const handleAdd = () => {\r\n let lastItem = arrayExtension.lastItem(formikProps.values[id]);\r\n if (lastItem === undefined) {\r\n lastItem = {\r\n to: '',\r\n id: 0,\r\n fromInclusive: false,\r\n toInclusive: false\r\n }\r\n }\r\n\r\n formikProps.setFieldValue(id,\r\n [...formikProps.values[id], {\r\n type: VARIANT_CODE.RANGE,\r\n from: lastItem.to,\r\n to: '',\r\n fromInclusive: !lastItem.toInclusive,\r\n toInclusive: false,\r\n value: '',\r\n id: lastItem.id + 1,\r\n }])\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nCriteriaList.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nCriteriaList.defaultProps = {}\r\n\r\nexport default withStyles(style)(CriteriaList);","import React, {useEffect, useState} from 'react'\r\nimport {Box, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport FormTabs from './components/FormTabs';\r\nimport MeasureUnitService from 'services/MeasureUnitService';\r\nimport OtherCriteriaFields from './components/OtherCriteriaFields';\r\nimport MyCriteriaList from './myCriteriaList/MyCriteriaList';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport Select from 'components/Select';\r\nimport ListVariantCriteriaList from './listVariant/CriteriaList';\r\nimport AllocationVariantCriteriaList from './intervalVariant/CriteriaList';\r\nimport PartsTable from 'components/PartsTable';\r\nimport {CriterionDictionaryItems, PriceCriterionDictionaryItems} from 'constants/DirectionsItems';\r\nimport UploadFile from 'components/UploadFile';\r\nimport {VARIANT_CODE as CRITERIA_TYPE} from './constants/criteria.variants'\r\nimport {VALUES as TABS_VALUES} from './constants/tabs.values'\r\nimport {CRYTERIUM_TYPE} from './constants/criterium.type';\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport Loading from \"components/Loading\";\r\nimport {connect} from \"react-redux\";\r\nimport {isDemandPreparing} from \"libs/getDemandStatus\";\r\n\r\nconst style = theme => ({\r\n root: {}\r\n})\r\n\r\nfunction CriteriaFormBody(\r\n {\r\n classes,\r\n formikProps,\r\n getInitialValues,\r\n isEdit,\r\n elementList,\r\n selectedItems,\r\n initValues,\r\n showParts,\r\n demandHeader\r\n }) {\r\n\r\n const [measureUnits, setMeasureUnits] = useState(null);\r\n\r\n useEffect(() => {\r\n MeasureUnitService.getWithEmptyOption().then((resp) => setMeasureUnits(resp));\r\n }, []);\r\n\r\n const handleTabChange = (change) => {\r\n if (change !== formikProps.values.tab) {\r\n if (change === TABS_VALUES.MY_CRITERIA) {\r\n formikProps.setFieldValue('type', undefined)\r\n } else if (formikProps.values.type === undefined) {\r\n formikProps.setValues(getInitialValues())\r\n }\r\n formikProps.setTouched({})\r\n }\r\n }\r\n\r\n const uiType = formikProps.values.uiType;\r\n const type = formikProps.values.type;\r\n\r\n if (!measureUnits) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {formikProps.values.tab === TABS_VALUES.NEW &&\r\n \r\n }\r\n {formikProps.values.tab === TABS_VALUES.MY_CRITERIA &&\r\n \r\n }\r\n\r\n \r\n\r\n {(uiType === CRITERIA_TYPE.LIST\r\n || uiType === CRITERIA_TYPE.INTERVAL\r\n || uiType === CRITERIA_TYPE.NUMBER\r\n || uiType === CRITERIA_TYPE.PRICE) &&\r\n <>\r\n {(type !== CRYTERIUM_TYPE.PRICE && uiType !== CRITERIA_TYPE.PRICE) &&\r\n \r\n }\r\n {\r\n (uiType === CRITERIA_TYPE.NUMBER || uiType === CRITERIA_TYPE.PRICE) &&\r\n \r\n }\r\n >\r\n }\r\n {uiType === CRITERIA_TYPE.LIST &&\r\n \r\n }\r\n {uiType === CRITERIA_TYPE.INTERVAL &&\r\n \r\n }\r\n\r\n {!!demandHeader && demandHeader.apiVersion < 3 &&\r\n \r\n \r\n \r\n }\r\n\r\n {elementList.length > 1 &&\r\n \r\n }\r\n >\r\n )\r\n}\r\n\r\nCriteriaFormBody.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n}))(withStyles(style)(CriteriaFormBody));","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport {VALUES as TABS_VALUES} from './constants/tabs.values'\r\nimport {VARIANT_CODE as CRITERIA_TYPE} from './constants/criteria.variants'\r\nimport {CRYTERIUM_TYPE as CRYTERIUM_VARIANT, CRYTERIUM_TYPE, CRYTERIUM_TYPE_LABEL} from './constants/criterium.type'\r\nimport validationSheme from './constants/validation.form'\r\nimport CriteriaFormBody from './CriteriaFormBody';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n weightInput: {\r\n width: 180,\r\n },\r\n uploadFile: {\r\n marginBottom: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction CriteriaForm({\r\n classes,\r\n onSubmit = () => {\r\n },\r\n id,\r\n partId,\r\n initValues,\r\n elementList,\r\n selectedItems,\r\n demandId,\r\n stageId,\r\n showParts = true\r\n }) {\r\n\r\n const handleSubmit = async (value) => {\r\n onSubmit({\r\n ...value,\r\n intervalList: value.intervalList.map(({id, ...x}) => x),\r\n });\r\n }\r\n\r\n const getInitialValues = () => {\r\n if (initValues !== undefined) {\r\n return {\r\n tab: TABS_VALUES.NEW,\r\n parts: {\r\n [partId]: true,\r\n },\r\n ...initValues,\r\n intervalList: initValues.intervalList.map((x, i) => ({id: i, ...x})),\r\n };\r\n }\r\n return {\r\n tab: TABS_VALUES.NEW,\r\n type: CRYTERIUM_VARIANT.OTHER,\r\n uiType: CRITERIA_TYPE.TEXT,\r\n otherName: '',\r\n description: '',\r\n direction: null,\r\n isSelected: false,\r\n uom: '',\r\n intervalList: [],\r\n valuesList: [],\r\n parts: {\r\n [partId]: true,\r\n },\r\n weight: '0',\r\n attachments: null\r\n }\r\n }\r\n\r\n const getNames = () => {\r\n let selected = selectedItems.map(x => {\r\n if (x.type === CRYTERIUM_TYPE.OTHER ||\r\n x.type === CRYTERIUM_TYPE.PRICE) return x.otherName;\r\n return CRYTERIUM_TYPE_LABEL[x.type];\r\n });\r\n if (initValues !== undefined) {\r\n let initValuesName = CRYTERIUM_TYPE_LABEL[initValues.type];\r\n if (initValues.type === CRYTERIUM_TYPE.OTHER || initValues.type === CRYTERIUM_TYPE.PRICE) {\r\n initValuesName = initValues.otherName;\r\n }\r\n var index = selected.indexOf(initValuesName);\r\n if (index > -1) {\r\n selected.splice(index, 1);\r\n }\r\n }\r\n return selected;\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nCriteriaForm.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(CriteriaForm);\r\n","import React, {useState} from 'react'\r\nimport {Checkbox, FormControlLabel, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport {connect} from 'react-redux'\r\nimport Dialog from 'components/Dialog';\r\nimport CriteriaForm from './CriteriaForm';\r\nimport useId from 'hooks/useId';\r\n\r\nconst style = theme => ({\r\n content: {\r\n marginTop: theme.spacing(2)\r\n },\r\n actions: {\r\n marginTop: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction NewCriteria(\r\n {\r\n classes,\r\n formSubmit,\r\n onClose,\r\n onAdd = () => {\r\n },\r\n initValues,\r\n partId,\r\n elementList,\r\n selectedItems,\r\n demandId,\r\n stageId,\r\n showParts\r\n }) {\r\n const [addCheckbox, setAddCheckbox] = useState(false)\r\n const formId = useId();\r\n\r\n const handleClose = () => {\r\n onClose();\r\n }\r\n\r\n const handleSubmit = () => {\r\n formSubmit[formId]()\r\n }\r\n\r\n const handleAdd = (values) => {\r\n onAdd(values);\r\n }\r\n\r\n return (\r\n \r\n )\r\n\r\n\r\n}\r\n\r\nNewCriteria.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nNewCriteria.defaultProps = {}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(withStyles(style)(NewCriteria));","import React, {useState} from 'react'\r\nimport {Divider, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport CriteriaElement from './CriteriaElement';\r\nimport AddButton from 'components/button/AddButton';\r\nimport NewCriteriaPopup from 'components/popup/newCriteria/NewCriteria'\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {CRYTERIUM_TYPE, CRYTERIUM_TYPE_LABEL} from 'components/popup/newCriteria/constants/criterium.type';\r\nimport {withRouter} from \"react-router\";\r\nimport {addElementsToParts, removeElementsfromParts} from \"../lib/manipulateElementsOnParts\";\r\nimport ConfirmDeleteCriterion from \"./ConfirmDeleteCriterion\";\r\nimport _ from 'lodash';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n header: {\r\n marginTop: theme.spacing(1),\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n divider: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n }\r\n})\r\n\r\nfunction CriteriaSection(\r\n {\r\n classes,\r\n formikProps,\r\n id,\r\n partId,\r\n criteriaSumId,\r\n match,\r\n stageId,\r\n }) {\r\n const [criteriaPopup, setCriteriaPopup] = useState(false)\r\n const [editElement, setEditElement] = useState();\r\n const [openDeletePopup, setOpenDeletePopup] = useState(false);\r\n const demandId = match.params.id;\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const thisId = id;\r\n\r\n const elements = getObjectValue(thisId, formikProps.values, [])\r\n\r\n const handleAddCriteria = ({parts, ...values}) => {\r\n addElementsToParts(formikProps, id, parts, values, editElement, demandId);\r\n setCriteriaPopup(false);\r\n setEditElement();\r\n }\r\n\r\n const handleEdit = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setCriteriaPopup(true);\r\n }\r\n\r\n const criteriaSumError = getObjectValue(criteriaSumId, formikProps.errors, [])\r\n const isError = !!criteriaSumError;\r\n\r\n const handleDeleteButtonPress = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setOpenDeletePopup(true);\r\n }\r\n\r\n const onCloseDeletePopup = () => {\r\n setOpenDeletePopup(false)\r\n setEditElement();\r\n }\r\n\r\n const handleDeleteCondition = ({parts}) => {\r\n removeElementsfromParts(formikProps, id, parts, editElement, demandId);\r\n setOpenDeletePopup(false);\r\n setEditElement();\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n {Tr('criteria')}({elements.length})\r\n \r\n \r\n {\r\n elements.map((item, i) => {\r\n let name = item.type === CRYTERIUM_TYPE.OTHER ? item.otherName : CRYTERIUM_TYPE_LABEL[item.type];\r\n if (item.type === CRYTERIUM_TYPE.PRICE\r\n && Boolean(item.otherName)) {\r\n name = item.otherName;\r\n }\r\n return (\r\n handleEdit(i)}\r\n disabled={!editable}\r\n />\r\n )\r\n })\r\n }\r\n\r\n {\r\n setEditElement()\r\n setCriteriaPopup(true)\r\n }}>\r\n {Tr('add_criteria')}\r\n \r\n \r\n\r\n {(isError) &&\r\n \r\n {criteriaSumError}\r\n \r\n }\r\n \r\n \r\n {criteriaPopup && setCriteriaPopup(false)}\r\n partId={partId}\r\n selectedItems={elements}\r\n initValues={editElement}\r\n elementList={formikProps.values.form}\r\n demandId={demandId}\r\n stageId={stageId}\r\n showParts={editable}\r\n />}\r\n {openDeletePopup && onCloseDeletePopup()}\r\n onDelete={handleDeleteCondition}\r\n partId={partId}\r\n demandId={demandId}\r\n stageId={stageId}\r\n initCrit={editElement}\r\n allItems={formikProps.values.form}\r\n id={id}\r\n />}\r\n >\r\n )\r\n}\r\n\r\nCriteriaSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(withRouter(CriteriaSection));","import Tr from 'translations/Translations';\r\n\r\nexport const POSITION_TYPE = {\r\n\tTEXT: 'TEXT',\r\n\tYES_NO: 'YESNO',\r\n}\r\n\r\nexport const POSITION_TYPE_LABEL = {\r\n\t[POSITION_TYPE.TEXT]: Tr('text'),\r\n\t[POSITION_TYPE.YES_NO]: Tr('yes')+'/'+Tr('no'),\r\n}\r\n\r\nconst createItem = (key) => ({\r\n\tlabel: POSITION_TYPE_LABEL[key],\r\n\tvalue: key\r\n})\r\n\r\nexport default [\r\n\tcreateItem(POSITION_TYPE.TEXT),\r\n\tcreateItem(POSITION_TYPE.YES_NO),\r\n]","import * as Yup from 'yup'\r\nimport ValidationShema from 'constants/ValidationShema';\r\nimport Tr from 'translations/Translations';\r\nimport ImputLimits from 'constants/InputLimits';\r\nimport {POSITION_TYPE} from \"components/popup/addAdditionalPosition/constants/additionalPositionType.values\";\r\n\r\nconst limits = ImputLimits.procedure.parameters;\r\n\r\nexport default (selectedItems) => Yup.lazy(values => {\r\n\r\n\tconst reg = '^(?!(' + selectedItems.map(x => x.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|')+ ')$).*$';\r\n\tconst otherNameRegExp = new RegExp(reg)\r\n\r\n\tlet shapeObj = {\r\n\t\tname: ValidationShema.stringExactlyMax(\r\n\t\t\totherNameRegExp,\r\n\t\t\tTr('v_position_exist'),\r\n\t\t\tlimits.NAME\r\n\t\t)\r\n\t}\r\n\r\n\tif (values.uiType === POSITION_TYPE.YES_NO) {\r\n\t\tshapeObj = {\r\n\t\t\t...shapeObj,\r\n\t\t\tshowCommentField: ValidationShema.requiredBoolean()\r\n\t\t}\r\n\t}\r\n\r\n\treturn Yup.object().shape(shapeObj);\r\n})","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport positionTypes, {POSITION_TYPE} from './constants/additionalPositionType.values'\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport Select from 'components/Select';\r\nimport PartsTable from 'components/PartsTable';\r\nimport BooleanItems from 'constants/BooleanItems';\r\nimport validationSheme from './constants/validation.form'\r\nimport InputLimits from 'constants/InputLimits';\r\nimport getObjectValue from 'libs/getObjectValue';\r\n\r\nconst limits = InputLimits.procedure.parameters;\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tuploadFile: {\r\n\t\tmarginBottom: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction AddAdditionalPositionForm({\r\n\tclasses,\r\n\tonSubmit = () => { },\r\n\tid,\r\n\tinitValues,\r\n\tpartId,\r\n\telementList,\r\n\tshowParts = true,\r\n}) {\r\n\r\n\tconst getInitialValues = () => {\r\n\t\tif (initValues !== undefined) {\r\n\t\t\treturn {\r\n\t\t\t\t...initValues,\r\n\t\t\t\tparts: {\r\n\t\t\t\t\t[partId]: true,\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tuiType: POSITION_TYPE.TEXT,\r\n\t\t\tshowCommentField: null,\r\n\t\t\tdescription: '',\r\n\t\t\tname: '',\r\n\t\t\tparts: {\r\n\t\t\t\t[partId]: true,\r\n\t\t\t},\r\n\t\t\tattachments: null\r\n\t\t}\r\n\t}\r\n\r\n\tconst getNames = () => {\r\n\t\tlet elementId = elementList.findIndex((x) => x.identity === partId)\r\n\t\tlet selected = elementList[elementId].stages[0].parameters.map(x => {\r\n\t\t\treturn x.name;\r\n\t\t})\r\n\t\tif (initValues !== undefined) {\r\n\t\t\tlet initValuesName = initValues.name;\r\n\t\t\tvar index = selected.indexOf(initValuesName);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tselected.splice(index, 1);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn selected;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nAddAdditionalPositionForm.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(AddAdditionalPositionForm);","import React from 'react'\r\nimport useId from 'hooks/useId';\r\nimport Tr from 'translations/Translations';\r\nimport AddAdditionalPositionForm from './AddAdditionalPositionForm';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport Dialog from 'components/Dialog';\r\nimport {connect} from 'react-redux'\r\n\r\nfunction AddAdditionalPosition(\r\n {\r\n onClose = () => {\r\n },\r\n formSubmit,\r\n onAdd,\r\n initValues,\r\n partId,\r\n elementList,\r\n showParts\r\n }) {\r\n const formId = useId();\r\n\r\n const handleClose = () => {\r\n onClose();\r\n }\r\n\r\n const handleSubmit = () => {\r\n formSubmit[formId]()\r\n }\r\n\r\n const handleAdd = (values) => {\r\n onAdd(values);\r\n }\r\n\r\n return (\r\n : undefined}\r\n >\r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddAdditionalPosition);","import React, {useState} from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport AddAdditionalPosition from 'components/popup/addAdditionalPosition/AddAdditionalPosition';\r\nimport Tr from 'translations/Translations';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport GridBlock from 'components/GridBlock';\r\nimport AddButton from 'components/button/AddButton';\r\nimport ConditionElement from './ConditionElement';\r\nimport {withRouter} from \"react-router\";\r\nimport {addElementsToParts, removeElementsfromParts} from \"../lib/manipulateElementsOnParts\";\r\nimport ConfirmDeleteCriterion from \"./ConfirmDeleteCriterion\";\r\nimport _ from 'lodash'\r\nconst style = theme => ({\r\n root: {},\r\n header: {\r\n marginTop: theme.spacing(1),\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n})\r\n\r\nfunction AdditionalPositionsSection(\r\n {\r\n classes,\r\n formikProps,\r\n id,\r\n partId,\r\n stageId,\r\n match,\r\n }) {\r\n const [openPopup, setOpenPopup] = useState(false)\r\n const [editElement, setEditElement] = useState();\r\n const [openDeletePopup, setOpenDeletePopup] = useState(false);\r\n const demandId = match.params.id;\r\n\r\n const thisId = id;\r\n\r\n const elements = getObjectValue(thisId, formikProps.values, [])\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const handleAddPosition = ({parts, ...values}) => {\r\n addElementsToParts(formikProps, thisId, parts, values, editElement, demandId);\r\n setOpenPopup(false)\r\n setEditElement()\r\n }\r\n\r\n // eslint-disable-next-line\r\n const handleEdit = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setOpenPopup(true);\r\n }\r\n\r\n const handleDeleteButtonPress = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setOpenDeletePopup(true);\r\n }\r\n\r\n const onCloseDeletePopup = () => {\r\n setOpenDeletePopup(false)\r\n setEditElement();\r\n }\r\n\r\n const handleDeleteCondition = ({parts}) => {\r\n removeElementsfromParts(formikProps, id, parts, editElement, demandId);\r\n setOpenDeletePopup(false);\r\n setEditElement();\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n {Tr('additional_positions')}({elements.length})\r\n \r\n \r\n {elements.map((item, i) => {\r\n return (\r\n handleEdit(i)}\r\n onDelete={handleDeleteButtonPress}\r\n disabled={!editable}\r\n />\r\n )\r\n })}\r\n\r\n {\r\n setEditElement()\r\n setOpenPopup(true)\r\n }}\r\n disabled={!editable}\r\n >\r\n {Tr('additional_form_items')}\r\n \r\n \r\n \r\n\r\n {openPopup && setOpenPopup(false)}\r\n initValues={editElement}\r\n partId={partId}\r\n elementList={formikProps.values.form}\r\n showParts={editable}\r\n />}\r\n {openDeletePopup && onCloseDeletePopup()}\r\n onDelete={handleDeleteCondition}\r\n partId={partId}\r\n demandId={demandId}\r\n stageId={stageId}\r\n initCrit={editElement}\r\n allItems={formikProps.values.form}\r\n id={id}\r\n />}\r\n >\r\n )\r\n}\r\n\r\nAdditionalPositionsSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(withRouter(AdditionalPositionsSection));","import Tr from 'translations/Translations';\r\n\r\nexport const ITEM_TYPE = {\r\n\tTEXT: 'TEXT',\r\n}\r\n\r\nexport const ITEM_TYPE_LABEL = {\r\n\t[ITEM_TYPE.TEXT]: Tr('text'),\r\n}\r\n\r\nconst createItem = (key) => ({\r\n\tlabel: ITEM_TYPE_LABEL[key],\r\n\tvalue: key\r\n})\r\n\r\nexport default [\r\n\tcreateItem(ITEM_TYPE.TEXT)\r\n]","import * as Yup from 'yup'\r\nimport ValidationShema from 'constants/ValidationShema';\r\nimport Tr from 'translations/Translations';\r\nimport ImputLimits from 'constants/InputLimits';\r\n\r\nconst limits = ImputLimits.procedure.itemParameters;\r\n\r\nexport default (selectedItems) => Yup.lazy(values => {\r\n\r\n\tconst reg = '^(?!(' + selectedItems.map(x => x.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|')+ ')$).*$';\r\n\tconst otherNameRegExp = new RegExp(reg)\r\n\r\n\tlet shapeObj = {\r\n\t\tname: ValidationShema.stringExactlyMax(\r\n\t\t\totherNameRegExp,\r\n\t\t\tTr('v_position_exist'),\r\n\t\t\tlimits.NAME\r\n\t\t)\r\n\t}\r\n\r\n\treturn Yup.object().shape(shapeObj);\r\n})","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport itemTypes, {ITEM_TYPE} from './constants/itemParameterType.values'\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport Select from 'components/Select';\r\nimport PartsTable from 'components/PartsTable';\r\nimport validationSheme from './constants/validation.form'\r\nimport InputLimits from 'constants/InputLimits';\r\n\r\nconst limits = InputLimits.procedure.itemParameters;\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tuploadFile: {\r\n\t\tmarginBottom: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction AddItemParameterForm({\r\n\tclasses,\r\n\tonSubmit = () => { },\r\n\tid,\r\n\tinitValues,\r\n\tpartId,\r\n\telementList,\r\n\tshowParts = true,\r\n}) {\r\n\r\n\tconst getInitialValues = () => {\r\n\t\tif (initValues !== undefined) {\r\n\t\t\treturn {\r\n\t\t\t\t...initValues,\r\n\t\t\t\tparts: {\r\n\t\t\t\t\t[partId]: true,\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tuiType: ITEM_TYPE.TEXT,\r\n\t\t\tdescription: '',\r\n\t\t\tname: '',\r\n\t\t\tparts: {\r\n\t\t\t\t[partId]: true,\r\n\t\t\t},\r\n\t\t\tattachments: null\r\n\t\t}\r\n\t}\r\n\r\n\tconst getNames = () => {\r\n\t\tlet elementId = elementList.findIndex((x) => x.identity === partId)\r\n\t\tlet selected = elementList[elementId].stages[0].itemParameters.map(x => {\r\n\t\t\treturn x.name;\r\n\t\t})\r\n\t\tif (initValues !== undefined) {\r\n\t\t\tlet initValuesName = initValues.name;\r\n\t\t\tvar index = selected.indexOf(initValuesName);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tselected.splice(index, 1);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn selected;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nAddItemParameterForm.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(AddItemParameterForm);","import React from 'react'\r\nimport useId from 'hooks/useId';\r\nimport Tr from 'translations/Translations';\r\nimport AddItemParameterForm from './AddItemParameterForm';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport Dialog from 'components/Dialog';\r\nimport {connect} from 'react-redux'\r\n\r\nfunction AddItemParameter(\r\n {\r\n onClose = () => {\r\n },\r\n formSubmit,\r\n onAdd,\r\n initValues,\r\n partId,\r\n elementList,\r\n showParts\r\n }) {\r\n const formId = useId();\r\n\r\n const handleClose = () => {\r\n onClose();\r\n }\r\n\r\n const handleSubmit = () => {\r\n formSubmit[formId]()\r\n }\r\n\r\n const handleAdd = (values) => {\r\n onAdd(values);\r\n }\r\n\r\n return (\r\n : undefined}\r\n >\r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddItemParameter);","import React, {useState} from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport AddItemParameter from 'components/popup/addItemParameter/AddItemParameter';\r\nimport Tr from 'translations/Translations';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport GridBlock from 'components/GridBlock';\r\nimport AddButton from 'components/button/AddButton';\r\nimport ConditionElement from './ConditionElement';\r\nimport {withRouter} from \"react-router\";\r\nimport {addElementsToParts, removeElementsfromParts} from \"../lib/manipulateElementsOnParts\";\r\nimport ConfirmDeleteCriterion from \"./ConfirmDeleteCriterion\";\r\nimport _ from 'lodash';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n header: {\r\n marginTop: theme.spacing(1),\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n})\r\n\r\nfunction PositionsParametersSection(\r\n {\r\n classes,\r\n formikProps,\r\n id,\r\n partId,\r\n stageId,\r\n match,\r\n }) {\r\n const [openPopup, setOpenPopup] = useState(false)\r\n const [editElement, setEditElement] = useState();\r\n const [openDeletePopup, setOpenDeletePopup] = useState(false);\r\n const demandId = match.params.id;\r\n\r\n const thisId = id;\r\n\r\n const elements = getObjectValue(thisId, formikProps.values, [])\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const handleAddPosition = ({parts, ...values}) => {\r\n addElementsToParts(formikProps, thisId, parts, values, editElement, demandId);\r\n setOpenPopup(false)\r\n setEditElement()\r\n }\r\n\r\n // eslint-disable-next-line\r\n const handleEdit = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setOpenPopup(true);\r\n }\r\n\r\n const handleDeleteButtonPress = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setOpenDeletePopup(true);\r\n }\r\n\r\n const onCloseDeletePopup = () => {\r\n setOpenDeletePopup(false)\r\n setEditElement();\r\n }\r\n\r\n const handleDeleteCondition = ({parts}) => {\r\n removeElementsfromParts(formikProps, id, parts, editElement, demandId);\r\n setOpenDeletePopup(false);\r\n setEditElement();\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n {Tr('item_parameters')}({elements.length})\r\n \r\n \r\n {elements.map((item, i) => {\r\n return (\r\n handleEdit(i)}\r\n onDelete={handleDeleteButtonPress}\r\n disabled={!editable}\r\n />\r\n )\r\n })}\r\n\r\n {\r\n setEditElement()\r\n setOpenPopup(true)\r\n }}\r\n disabled={!editable}\r\n >\r\n {Tr('item_parameters_add')}\r\n \r\n \r\n \r\n\r\n {openPopup && setOpenPopup(false)}\r\n initValues={editElement}\r\n partId={partId}\r\n elementList={formikProps.values.form}\r\n showParts={editable}\r\n />}\r\n {openDeletePopup && onCloseDeletePopup()}\r\n onDelete={handleDeleteCondition}\r\n partId={partId}\r\n demandId={demandId}\r\n stageId={stageId}\r\n initCrit={editElement}\r\n allItems={formikProps.values.form}\r\n id={id}\r\n />}\r\n >\r\n )\r\n}\r\n\r\nPositionsParametersSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(withRouter(PositionsParametersSection));","import React, {useEffect, useState} from 'react'\r\nimport {Box, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport CPVInput from 'components/CPVInput';\r\nimport NetGrossField from 'components/NetGrossField';\r\nimport PositionsSection from './PositionsSection'\r\nimport ConditionsSection from './ConditionsSection'\r\nimport CriteriaSection from './CriteriaSection'\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport Loading from 'components/Loading';\r\nimport {withRouter} from \"react-router\";\r\nimport DealingsService from 'services/DealingsService';\r\nimport AdditionalPositionsSection from './AdditionalPositionsSection';\r\nimport TitledComponent from 'components/TitledComponent';\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport mergeDealing from '../lib/mergeDealing';\r\nimport RadioGroup from \"components/RadioGroup\";\r\nimport DatePicker from \"components/DatePicker\";\r\nimport Select, {createSelectItem} from \"components/Select\";\r\nimport {isNonpublicProcedure} from \"libs/getDemandStatus\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport PositionsParametersSection from \"./PositionsParametersSection\";\r\n\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*': {\r\n width: 'inherit'\r\n },\r\n paddingLeft: theme.spacing(4)\r\n },\r\n grossNetGrid: {\r\n '&>*': {\r\n flexGrow: 1,\r\n flexBasis: 0,\r\n\r\n '&:not(:first-child)': {\r\n marginLeft: theme.spacing(2),\r\n }\r\n }\r\n },\r\n cpvBox: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n loading: {\r\n height: 100\r\n }\r\n})\r\n\r\nconst limits = InputLimits.procedure.dealings;\r\n\r\nfunction PartForm(\r\n {\r\n classes,\r\n formikProps,\r\n dirtyListenerSemaphore,\r\n id,\r\n match,\r\n isDealingElement,\r\n dealingsList,\r\n autoSaveFormDraftActive\r\n }) {\r\n const createId = (key) => `${id}.${key}`;\r\n const partId = getObjectValue(createId('identity'), formikProps.values)\r\n const demandId = match.params.id;\r\n const [loaded, setLoaded] = useState(isDealingElement);\r\n const [draftConfirm, setDraftConfirm] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n\r\n useEffect(() => {\r\n if (demandId && !isDealingElement) {\r\n DealingsService.get(demandId, partId)\r\n .then(res => {\r\n dirtyListenerSemaphore.current = true;\r\n mergeDealing(res, formikProps, id).then(()=> {\r\n dirtyListenerSemaphore.current = false;\r\n setLoaded(true);\r\n });\r\n if (autoSaveFormDraftActive) {\r\n DealingsService.checkForDraft(demandId, partId).then(res => setDraftConfirm(res.result));\r\n }\r\n });\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n if (!isDealingElement || !loaded || working) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n const stageId = getObjectValue(createId('stages.0.identity'), formikProps.values);\r\n\r\n const loadDealingDraft = () => {\r\n setDraftConfirm(false);\r\n setWorking(true);\r\n DealingsService.loadDraft(demandId, partId).then(res => {\r\n dirtyListenerSemaphore.current = true;\r\n mergeDealing(res.result, formikProps, id).then(()=> {\r\n dirtyListenerSemaphore.current = false;\r\n });\r\n });\r\n setWorking(false);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n {'Framework' === dealingsList.demandVariant &&\r\n \r\n }\r\n { !!dealingsList.planRequired &&\r\n createSelectItem(x.identity, x.name, x.number))}\r\n />\r\n }\r\n\r\n \r\n \r\n \r\n \r\n {getObjectValue(createId('termOption'), formikProps.values) === 'date' ?\r\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 loadDealingDraft()}\r\n onCancel={() => setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n >\r\n )\r\n}\r\n\r\nPartForm.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(withRouter(PartForm));","import React, {memo, useMemo} from 'react'\r\nimport {Collapse} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ElementTitle from './ElementTitle';\r\nimport PartForm from './PartForm'\r\nimport removeFormikListElement from 'libs/removeFormikListElement';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {withRouter} from \"react-router\";\r\nimport {connect} from 'react-redux'\r\nimport {addObjectResource, setResource} from 'redux/actions'\r\nimport {wasEverPublished, isNationalProcedure, isEuropeProcedure} from \"libs/getDemandStatus\";\r\n\r\nfunction Element({\r\n index,\r\n id,\r\n formikProps,\r\n match,\r\n dealing,\r\n addObjectResource,\r\n dealingsList,\r\n dirtyListenerSemaphore,\r\n demandHeader,\r\n autoSaveFormDraftActive\r\n }) {\r\n const partId = `${id}.${index}`\r\n const createId = key => `${partId}.${key}`\r\n\r\n const elements = getObjectValue(id, formikProps.values, []);\r\n const elementsLength = elements.length;\r\n const isPublished = useMemo(() => demandHeader ? wasEverPublished() : undefined, [demandHeader]);\r\n const isPublic = useMemo(() => demandHeader ? isNationalProcedure() || isEuropeProcedure() : undefined, [demandHeader]);\r\n\r\n const open = getObjectValue(createId('_open'), formikProps.values)\r\n const setOpen = (value) => {\r\n dirtyListenerSemaphore.current = true;\r\n formikProps.setFieldValue(createId('_open'), value)\r\n if (value === true) {\r\n formikProps.setFieldValue(createId('_touched'), true)\r\n }\r\n dirtyListenerSemaphore.current = false;\r\n }\r\n const elementId = getObjectValue(createId('identity'), formikProps.values)\r\n\r\n const handleDelete = () => {\r\n //DealingsService.autoSaveDeleteSingle(demendId, index).then(() => {\r\n addObjectResource('dealing', elementId)\r\n removeFormikListElement(formikProps, id, index)\r\n //})\r\n }\r\n\r\n let isDealingElement = dealing ? dealing[elementId] ? true : false : false;\r\n\r\n // const stageCriterions = getObjectValue(createId('stages.0.criterions'), formikProps.values)\r\n // useEffect(() => {\r\n // \tlet value = sumCriteria(stageCriterions)\r\n // \t//formikProps.setFieldValue(createId('_criteriaSum'), value.toFixed(2))\r\n // \t// formikProps.setFieldTouched(createId('_criteriaSum'), false)\r\n // \t//eslint-disable-next-line\r\n // }, [stageCriterions])\r\n\r\n const renderForm = () => {\r\n if (open) {\r\n return (\r\n \r\n )\r\n }\r\n return ''\r\n }\r\n\r\n return (\r\n <>\r\n setOpen(!open)}\r\n onDelete={handleDelete}\r\n disableDelete={elementsLength < 2 || (isPublic && isPublished)}\r\n />\r\n\r\n \r\n {renderForm()}\r\n \r\n >\r\n )\r\n}\r\n\r\nElement.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n dealing: state.resources.dealing,\r\n dealingsList: state.resources.dealingsList,\r\n demandHeader: state.resources.demandHeader\r\n}), {\r\n setResource,\r\n addObjectResource,\r\n})(withRouter(memo(Element, (prevProps, nextProps) => {\r\n if (prevProps.id !== nextProps.id) return false;\r\n if (prevProps.index !== nextProps.index) return false;\r\n if (JSON.stringify(prevProps.classes) !== JSON.stringify(nextProps.classes)) return false;\r\n const partId = nextProps.id + '.' + nextProps.index;\r\n if (JSON.stringify(prevProps.formikProps.values) !==\r\n JSON.stringify(nextProps.formikProps.values)\r\n ) return false;\r\n if (JSON.stringify(getObjectValue(partId, prevProps.formikProps.errors)) !==\r\n JSON.stringify(getObjectValue(partId, nextProps.formikProps.errors))\r\n ) return false;\r\n if (JSON.stringify(getObjectValue(partId, prevProps.formikProps.touched)) !==\r\n JSON.stringify(getObjectValue(partId, nextProps.formikProps.touched))\r\n ) return false;\r\n if (prevProps.dealing !== nextProps.dealing)\r\n return false;\r\n if (prevProps.dealing &&\r\n nextProps.dealing &&\r\n JSON.stringify(Object.keys(prevProps.dealing)) !==\r\n JSON.stringify(Object.keys(nextProps.dealing))\r\n ) return false;\r\n // history\r\n // staticContextx\r\n // location\r\n // match\r\n return true;\r\n})));","import { useEffect } from 'react';\r\n\r\nfunction ExecuteFunction({\r\n\tfunc,\r\n\tshouldExecute = true,\r\n\tconditions = [],\r\n}) {\r\n\tuseEffect(() => {\r\n\t\tif (shouldExecute) {\r\n\t\t\tfunc()\r\n\t\t}\r\n\t}, [func, shouldExecute, conditions])\r\n\treturn ''\r\n}\r\n\r\nexport default ExecuteFunction;","import React from 'react'\r\nimport {makeStyles, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n italic: {\r\n fontStyle: 'italic'\r\n }\r\n}))\r\n\r\nfunction DemandValidationMessages(\r\n {\r\n section,\r\n editable\r\n }) {\r\n const classes = useStyle();\r\n const show = editable && section && (section.messages || section.infoMessages);\r\n return (show && \r\n {\r\n !!section?.messages && section.messages.map((x, i) => {x})\r\n }\r\n {\r\n !!section?.infoMessages && section.infoMessages.map((x, i) => {x})\r\n }\r\n
)\r\n}\r\n\r\nDemandValidationMessages.propTypes = {\r\n section: PropTypes.object,\r\n editable: PropTypes.bool,\r\n}\r\n\r\nexport default DemandValidationMessages;","import React, {useEffect, useRef, useState} from 'react'\r\nimport {Divider, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport initialValues from './constants/initialValues'\r\nimport AdditionalButtons from './components/AdditionalButtons';\r\nimport {connect} from 'react-redux'\r\nimport Loading from 'components/Loading';\r\nimport {withRouter} from \"react-router\";\r\nimport SaveFormikValues from 'components/SaveFormikValues';\r\nimport SortableContainer from 'components/complex/sortable/SortableContainer';\r\nimport validationSchema from './constants/validationSchema'\r\nimport DealingsService from 'services/DealingsService';\r\nimport Element from './components/Element';\r\nimport setFormikValuesTouched from 'libs/setFormikValuesTouched';\r\nimport ExecuteFunction from 'components/ExecuteFunction';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport {\r\n clearStepperStateCloseValidator,\r\n setStepperStateCloseValidator,\r\n setStepperStateDeleteFormDraftFunction,\r\n clearStepperStateDeleteFormDraftFunction,\r\n setStepperStateSaveFormDraftFunction,\r\n clearStepperStateSaveFormDraftFunction\r\n} from \"redux/actions\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n width: '100%',\r\n '&>*:last-child': {\r\n marginTop: theme.spacing()\r\n }\r\n },\r\n error: {\r\n color: theme.palette.error.main\r\n }\r\n})\r\n\r\nfunction PositionAndPartsForm(\r\n {\r\n classes,\r\n match,\r\n expanded,\r\n section,\r\n formId,\r\n dealingsList,\r\n dealing,\r\n setStepperStateCloseValidator,\r\n clearStepperStateCloseValidator,\r\n setStepperStateDeleteFormDraftFunction,\r\n clearStepperStateDeleteFormDraftFunction,\r\n setStepperStateSaveFormDraftFunction,\r\n clearStepperStateSaveFormDraftFunction,\r\n saveSuccessCallback,\r\n saveErrorCallback,\r\n demandHeader\r\n }) {\r\n const [afterSave, setAfterSave] = useState(false);\r\n const editable = section ? section.editable : true;\r\n\r\n const realDirty = useRef(\"nie\");\r\n const dirtyListenerSemaphore = useRef(false);\r\n\r\n const id = match.params.id;\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active && dealingsList?.dealings?.length <= 30;\r\n\r\n const [dealingValuesAndActionsForSave, setDealingValuesAndActionsForSave] = useState(null);\r\n const [getDraftsAndSaveDealingsConfirm, setGetDraftsAndSaveDealingsConfirm] = useState(false);\r\n\r\n useEffect(() => {\r\n if (expanded) {\r\n setStepperStateCloseValidator(() => {\r\n return realDirty.current !== \"tak\"\r\n });\r\n if (autoSaveFormDraftActive) {\r\n setStepperStateDeleteFormDraftFunction(() => DealingsService.deleteDraft(id));\r\n setStepperStateSaveFormDraftFunction(() => saveFormDraft(id, DealingsService.saveDraft, formId));\r\n }\r\n } else {\r\n dirtyListenerSemaphore.current = false;\r\n realDirty.current = \"nie\";\r\n }\r\n return () => {\r\n clearStepperStateCloseValidator();\r\n clearStepperStateDeleteFormDraftFunction();\r\n clearStepperStateSaveFormDraftFunction();\r\n }\r\n\r\n }, [id, formId, expanded, autoSaveFormDraftActive, setStepperStateCloseValidator, clearStepperStateCloseValidator,\r\n setStepperStateDeleteFormDraftFunction, clearStepperStateDeleteFormDraftFunction, setStepperStateSaveFormDraftFunction, clearStepperStateSaveFormDraftFunction])\r\n\r\n const handleSubmit = (values, actions) => {\r\n if (autoSaveFormDraftActive && dealingsList.dealings.length > (!!dealing ? Object.keys(dealing).length : 0)) {\r\n const draftPromises = [];\r\n dealingsList.dealings.filter(d => !!dealing ? !dealing[d.identity] : true).forEach(d => draftPromises.push(DealingsService.checkForDraft(id, d.identity)));\r\n Promise.all(draftPromises).then(promisesValues => {\r\n if (promisesValues.some(v => v.result === true)) {\r\n setDealingValuesAndActionsForSave([values, actions]);\r\n setGetDraftsAndSaveDealingsConfirm(true);\r\n } else {\r\n doSaveDealings(values, actions);\r\n }\r\n });\r\n } else {\r\n doSaveDealings(values, actions);\r\n }\r\n }\r\n\r\n const getAndInitializeDraftsThenSaveDealings = () => {\r\n const values = dealingValuesAndActionsForSave[0];\r\n const actions = dealingValuesAndActionsForSave[1];\r\n const draftPromises = [];\r\n dealingsList.dealings.filter(d => !!dealing ? !dealing[d.identity] : true).forEach(d => draftPromises.push(DealingsService.loadDraft(id, d.identity)));\r\n Promise.all(draftPromises).then(promisesValues => {\r\n promisesValues.forEach(v => {\r\n if (v.success) {\r\n const dealingDraft = v.result;\r\n dealingDraft._touched = true;\r\n const tmpArr = values.form.filter(i => i.identity !== dealingDraft.identity);\r\n values.form = [\r\n ...tmpArr,\r\n dealingDraft\r\n ]\r\n\r\n }\r\n });\r\n setDealingValuesAndActionsForSave(null);\r\n doSaveDealings(values, actions);\r\n });\r\n }\r\n\r\n const doNotInitializeDraftsThenSaveDealings = () => {\r\n const values = dealingValuesAndActionsForSave[0];\r\n const actions = dealingValuesAndActionsForSave[1];\r\n setDealingValuesAndActionsForSave(null);\r\n doSaveDealings(values, actions);\r\n }\r\n\r\n const doSaveDealings = (values, actions) => {\r\n DealingsService.save(id, values)\r\n .then((success) => {\r\n\r\n if(success) {\r\n realDirty.current = \"nie\";\r\n saveSuccessCallback();\r\n actions.setValues({\r\n form: values.form.map(element => ({\r\n ...element,\r\n _touched: false,\r\n _open: false,\r\n _edit: false,\r\n }))\r\n })\r\n } else {\r\n saveErrorCallback();\r\n }\r\n\r\n })\r\n }\r\n\r\n if (!dealingsList && id) {\r\n return \r\n }\r\n\r\n const formatDealingList = (list = []) => {\r\n const _openTouched = list.length === 1;\r\n return list.map(item => ({\r\n _open: _openTouched,\r\n _touched: _openTouched,\r\n _edit: false,\r\n ...item,\r\n stages: [{\r\n conditions: [],\r\n criterions: [],\r\n parameters: [],\r\n }],\r\n }));\r\n }\r\n\r\n const getInitialValues = () => {\r\n if (id) {\r\n return formatDealingList(dealingsList.dealings)\r\n }\r\n return initialValues\r\n }\r\n\r\n const handleChange = (e) => {\r\n if (dirtyListenerSemaphore.current === false) {\r\n realDirty.current = \"tak\";\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {\r\n setGetDraftsAndSaveDealingsConfirm(false);\r\n doNotInitializeDraftsThenSaveDealings();\r\n }}\r\n onConfirm={() => {\r\n setGetDraftsAndSaveDealingsConfirm(false);\r\n getAndInitializeDraftsThenSaveDealings();\r\n }}\r\n open={getDraftsAndSaveDealingsConfirm}\r\n />\r\n >\r\n )\r\n}\r\n\r\nPositionAndPartsForm.propTypes = {\r\n expanded: PropTypes.bool.isRequired,\r\n section: PropTypes.shape({\r\n editable: PropTypes.bool,\r\n messages: PropTypes.arrayOf(PropTypes.string),\r\n infoMessages: PropTypes.arrayOf(PropTypes.string),\r\n }),\r\n formId: PropTypes.string.isRequired,\r\n saveSuccessCallback: PropTypes.func.isRequired,\r\n saveErrorCallback: PropTypes.func.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n dealingsList: state.resources.dealingsList,\r\n dealing: state.resources.dealing,\r\n demandHeader: state.resources.demandHeader\r\n}), {setStepperStateCloseValidator, clearStepperStateCloseValidator,\r\n setStepperStateDeleteFormDraftFunction, clearStepperStateDeleteFormDraftFunction,\r\n setStepperStateSaveFormDraftFunction, clearStepperStateSaveFormDraftFunction\r\n})(withStyles(style)(withRouter(PositionAndPartsForm)));","\r\nexport default (formikProps) => {\r\n\tconst getTouchedKeys = (values) => {\r\n\t\tconst obj = Array.isArray(values) ? [] : {}\r\n\r\n\t\tfor (let key in values) {\r\n\t\t\tconst value = values[key];\r\n\t\t\tif (typeof value === 'object') {\r\n\r\n\t\t\t\tobj[key] = getTouchedKeys(value);\r\n\t\t\t} else {\r\n\t\t\t\tobj[key] = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn obj;\r\n\t}\r\n\r\n\tconst newTouchedObject = getTouchedKeys(formikProps.values);\r\n\tformikProps.setTouched(newTouchedObject)\r\n}","import React, {useState} from 'react';\r\nimport Button from \"components/Button\";\r\nimport Tr from \"translations/Translations\";\r\nimport {Typography, withStyles} from \"@material-ui/core\";\r\nimport DownloadIcon from '@material-ui/icons/GetApp';\r\nimport UploadImportFile from \"./components/UploadImportFile\";\r\nimport {downloadImportTemplate} from \"./lib/downloadImportTemplate\";\r\nimport ImporterForm from \"./components/ImporterForm\";\r\nimport GridBlock from \"components/GridBlock\";\r\n\r\nexport const style = theme => {\r\n return {\r\n root: {\r\n marginTop: theme.spacing(2)\r\n },\r\n button: {\r\n width: 400,\r\n height: 60,\r\n marginBottom: theme.spacing(6),\r\n },\r\n text: {\r\n marginBottom: theme.spacing(1),\r\n }\r\n }\r\n}\r\n\r\n\r\nconst ImportScreen = (\r\n {\r\n classes,\r\n id\r\n }\r\n) => {\r\n\r\n const hideDownloadingTemplate = () => {\r\n setDownloadingInProgress(false);\r\n }\r\n const downloadImportTemplateClick = async () => {\r\n setDownloadingInProgress(true);\r\n await downloadImportTemplate(id, hideDownloadingTemplate, hideDownloadingTemplate);\r\n }\r\n const [downloadingInProgress, setDownloadingInProgress] = useState(false);\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n {Tr('dealings_import_step_one_download')}\r\n \r\n\r\n \r\n\r\n \r\n {Tr('dealings_import_step_two_upload')}\r\n \r\n \r\n \r\n \r\n >\r\n );\r\n};\r\n\r\nexport default withStyles(style)(ImportScreen)","import {clearResource, setResource, setSaveStatusError} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestBLOB, RestRequestGET} from \"../libs/RestRequest\";\r\nimport Endpoints from \"../constants/Endpoints\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst PAPERS_GENERATOR_LIST_RESOURCE_ID = 'papersGeneratorList';\r\n\r\nconst getAvailablePapers = async (id) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.PAPERS_GENERATOR(id));\r\n\r\n reduxStore.dispatch(\r\n setResource(PAPERS_GENERATOR_LIST_RESOURCE_ID, res)\r\n )\r\n } catch (error) {\r\n }\r\n}\r\n\r\n\r\nconst getRfxRequestPosition = async (id) => {\r\n return await RestRequestGET(Endpoints.RFX_REQUEST_POSITION(id));\r\n}\r\n\r\nconst getSwzParams = async (id) => {\r\n return await RestRequestGET(Endpoints.SWZ_PARAMS(id));\r\n}\r\n\r\nconst getRfxInvitedSupplierWithOffer = async (id) => {\r\n return await RestRequestGET(Endpoints.RFX_INVITED_SUPPLIER_WITH_OFFER(id));\r\n}\r\n\r\nconst getRfxInvitedSupplierPosition = async (id, supplierId) => {\r\n return await RestRequestGET(Endpoints.RFX_INVITED_SUPPLIER_POSITION(id, supplierId));\r\n}\r\n\r\n\r\nconst getSwzGeneratorParams = async (demandId) => {\r\n const swzGeneratorParams = await RestRequestGET(Endpoints.SIWZ_GET_GENERATOR_PARAMS(demandId));\r\n return swzGeneratorParams;\r\n}\r\nconst getRfxSupplierAttachmentsVerification = async (demandId, supplierId) => {\r\n const swzGeneratorParams = await RestRequestGET(Endpoints.GET_SUPPLIER_ATTACHMENTS_VERIFICATION(demandId, supplierId));\r\n return swzGeneratorParams;\r\n}\r\n\r\nconst downloadPaper = async (url, successCallback = () => {\r\n}, errorCallback = () => {\r\n}) => {\r\n try {\r\n RestRequestBLOB(url)\r\n .then(successCallback)\r\n .catch(errorCallback);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst sharePaperByUrl = async (url, shareSystem) => {\r\n let params = {\r\n shareSystem\r\n }\r\n try {\r\n const resp = await RestRequestGET(url, {params});\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return resp.success;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n return false;\r\n}\r\n\r\n\r\n\r\nconst sharePaper = async (id, paper, shareSystem) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.PAPERS_GENERATOR_PRINT_SHARE(id, paper, shareSystem));\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return resp.success;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n return false;\r\n}\r\n\r\nconst clearResources = (resource) => reduxStore.dispatch(clearResource(resource));\r\n\r\nexport default {\r\n getAvailablePapers,\r\n clearResources,\r\n getRfxRequestPosition,\r\n getSwzParams,\r\n getRfxInvitedSupplierWithOffer,\r\n getRfxInvitedSupplierPosition,\r\n getRfxSupplierAttachmentsVerification,\r\n getSwzGeneratorParams,\r\n downloadPaper,\r\n sharePaper,\r\n sharePaperByUrl,\r\n PAPERS_GENERATOR_LIST_RESOURCE_ID\r\n}","import React from 'react'\r\nimport {CircularProgress, makeStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n wrapper: {\r\n position: \"relative\"\r\n },\r\n fabProgress: {\r\n position: 'absolute',\r\n left: -4,\r\n top: -4\r\n }\r\n}))\r\n\r\nfunction WorkableIcon(\r\n {\r\n working,\r\n Icon,\r\n ...props\r\n }) {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n {working && }\r\n \r\n )\r\n}\r\n\r\nWorkableIcon.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n Icon: PropTypes.elementType,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIcon;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport ShareIcon from '@material-ui/icons/Share'\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconShareButton(\r\n {\r\n tooltip = Tr(\"send\"),\r\n ...props\r\n }) {\r\n\r\n return \r\n}\r\n\r\nWorkableIconShareButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.elementType]),\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconShareButton;","import React from \"react\";\r\nimport {ListItem, ListItemIcon, ListItemSecondaryAction, ListItemText} from \"@material-ui/core\";\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport PrintIcon from \"@material-ui/icons/Print\";\r\nimport WorkableIcon from \"components/button/WorkableIcon\";\r\nimport Tr from \"translations/Translations\";\r\nimport Typography from \"components/Typography\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconShareButton from \"components/button/WorkableIconShareButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n italic: {\r\n fontStyle: 'italic',\r\n fontSize: '0.75rem'\r\n }\r\n}))\r\n\r\nconst PaperLink = (\r\n {\r\n paper,\r\n paperWorking,\r\n editable,\r\n paperClick,\r\n showShare,\r\n shareClick\r\n }) => {\r\n\r\n const classes = useStyle();\r\n\r\n return (\r\n <>\r\n paperClick(paper)} disabled={!editable || (paper.available && paper.waiting) || (!paper.available && !paper.salesModule)}>\r\n \r\n \r\n \r\n \r\n {paper.name}\r\n {(paper.available && paper.waiting) &&\r\n {\" (\" + Tr('papers_generator_paper_waiting') + \")\"}}\r\n \r\n {showShare &&\r\n \r\n shareClick(paper)}\r\n />\r\n \r\n }\r\n \r\n\r\n >)\r\n}\r\n\r\nPaperLink.propTypes = {\r\n paper: PropTypes.shape({\r\n paperId: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n customPopup: PropTypes.string,\r\n available: PropTypes.bool.isRequired,\r\n waiting: PropTypes.bool.isRequired,\r\n }),\r\n paperWorking: PropTypes.string,\r\n paperClick: PropTypes.func.isRequired,\r\n showShare: PropTypes.bool.isRequired,\r\n shareClick: PropTypes.func.isRequired,\r\n\r\n}\r\n\r\nexport default PaperLink;","import React from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from \"clsx\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tfontWeight: theme.typography.fontWeightBold,\r\n\t}\r\n})\r\n\r\nfunction BoldTypography({\r\n\tclassName,\r\n\tclasses,\r\n\tchildren,\r\n\t...other\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t)\r\n}\r\n\r\nBoldTypography.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tvariant: PropTypes.string\r\n}\r\n\r\nexport default withStyles(style)(BoldTypography);","import {useSnackbar as useSnackbarNotistack} from \"notistack\";\r\n\r\nexport default function useSnackbar() {\r\n\r\n const {closeSnackbar, enqueueSnackbar} = useSnackbarNotistack();\r\n\r\n function enqueueDefaultSnackbar(message, options) {\r\n return doSnackbar(message, options, 'default')\r\n }\r\n\r\n function enqueueInfoSnackbar(message, options) {\r\n return doSnackbar(message, options, 'info')\r\n }\r\n\r\n function enqueueSuccessSnackbar(message, options) {\r\n return doSnackbar(message, options, 'success')\r\n }\r\n\r\n function enqueueWarningSnackbar(message, options) {\r\n return doSnackbar(message, options, 'warning')\r\n }\r\n\r\n function enqueueErrorSnackbar(message, options) {\r\n return doSnackbar(message, options, 'error')\r\n }\r\n\r\n function doSnackbar(message, options, variant) {\r\n const key = enqueueSnackbar(message, {variant, onClick: () => closeSnackbar(key), ...options})\r\n return key;\r\n }\r\n\r\n return {enqueueSnackbar: enqueueDefaultSnackbar, enqueueInfoSnackbar, enqueueSuccessSnackbar, enqueueWarningSnackbar, enqueueErrorSnackbar}\r\n}","import {List, ListItem, ListItemIcon, ListItemText, Typography} from \"@material-ui/core\";\r\nimport PrintIcon from \"@material-ui/icons/Print\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport React, {useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport Loading from \"components/Loading\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport WorkableIcon from \"components/button/WorkableIcon\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n loading: {\r\n width: '92%'\r\n },\r\n}))\r\nconst PapersGeneratorSelectPopup = (\r\n {\r\n paperId,\r\n list,\r\n title,\r\n onClose,\r\n onSelect,\r\n onBack,\r\n selectGeneratesDocument,\r\n working,\r\n shareSystem\r\n }) => {\r\n\r\n const classes = useStyle();\r\n const [workingSupplier, setWorkingSupplier] = useState(0);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const paperClick = (supplier) => {\r\n if (workingSupplier > 0)\r\n return;\r\n\r\n setWorkingSupplier(supplier.id);\r\n\r\n if(!!shareSystem) {\r\n PapersGeneratorService.sharePaper(supplier.id, paperId, shareSystem).then(resp => resp ? enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: shareSystem}, true)) : null).finally(onClose)\r\n } else {\r\n PapersGeneratorService.downloadPaper(Endpoints.PAPERS_GENERATOR_PRINT(supplier.id, paperId), () => setWorkingSupplier(0), () => setWorkingSupplier(0))\r\n\r\n }\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n if (!!onBack) {\r\n buttons.push(createButton(Tr('back'), onBack, 'outlined'));\r\n }\r\n buttons.push(createButton(Tr('close'), onClose, undefined, working));\r\n return buttons;\r\n }\r\n\r\n const rowClick = (supplier) => {\r\n if (working)\r\n return;\r\n onSelect ? onSelect(supplier) : paperClick(supplier)\r\n }\r\n\r\n return ()\r\n}\r\n\r\nexport default PapersGeneratorSelectPopup;","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PapersGeneratorSelectPopup from \"./PapersGeneratorSelectPopup\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst PapersGeneratorRfxInvitedSupplierWithOfferPopup = (\r\n {\r\n demandId,\r\n paper,\r\n onClose,\r\n shareSystem\r\n }) => {\r\n\r\n const [invitedSuppliers, setInvitedSuppliers] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getRfxInvitedSupplierWithOffer(demandId).then(resp => setInvitedSuppliers(resp));\r\n }, [demandId])\r\n\r\n return (\r\n \r\n )\r\n}\r\nPapersGeneratorRfxInvitedSupplierWithOfferPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\nexport default PapersGeneratorRfxInvitedSupplierWithOfferPopup;","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PapersGeneratorSelectPopup from \"./PapersGeneratorSelectPopup\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst PapersGeneratorRfxRequestPosition = (\r\n {\r\n demandId,\r\n paper,\r\n onClose,\r\n shareSystem\r\n }) => {\r\n\r\n const [requestPositions, setRequestPositions] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getRfxRequestPosition(demandId).then(resp => setRequestPositions(resp));\r\n }, [demandId])\r\n\r\n return (\r\n \r\n )\r\n}\r\nPapersGeneratorRfxRequestPosition.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\nexport default PapersGeneratorRfxRequestPosition;","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PapersGeneratorSelectPopup from \"./PapersGeneratorSelectPopup\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst PapersGeneratorRfxInvitedSupplierPosition = (\r\n {\r\n demandId,\r\n paper,\r\n onClose,\r\n shareSystem\r\n }) => {\r\n\r\n const [invitedSuppliers, setInvitedSuppliers] = useState(null);\r\n const [chosenSupplier, setChosenSupplier] = useState(null);\r\n const [requestPositions, setRequestPositions] = useState(null);\r\n\r\n const onSelectSupplier = (supplier) => {\r\n setChosenSupplier(supplier);\r\n PapersGeneratorService.getRfxInvitedSupplierPosition(demandId, supplier.id).then(resp => setRequestPositions(resp));\r\n }\r\n\r\n const onBack = () => {\r\n setChosenSupplier(null);\r\n setRequestPositions(null);\r\n }\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getRfxInvitedSupplierWithOffer(demandId).then(resp => setInvitedSuppliers(resp));\r\n }, [demandId])\r\n\r\n return (<>\r\n {!chosenSupplier ?\r\n \r\n : \r\n }\r\n >)\r\n}\r\nPapersGeneratorRfxInvitedSupplierPosition.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\nexport default PapersGeneratorRfxInvitedSupplierPosition;","export default ({url, name}) => {\r\n\tlet a = document.createElement('a');\r\n\ta.href=url;\r\n\ta.target='_blank'\r\n\ta.click();\r\n}","import {RestRequestGET} from \"./RestRequest\";\r\nimport downloadFile from \"./downloadFile\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {setSaveStatusError} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\nimport previewFile from \"./previewFile\";\r\n\r\n\r\nconst downloadFileWithPreloadUrl = async (preloadUrl, openInBrowser, params) => {\r\n try {\r\n const resp = await RestRequestGET(preloadUrl, {params});\r\n if (resp?.success) {\r\n openInBrowser ?\r\n previewFile({url: resp.result}) :\r\n downloadFile({url: resp.result})\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\nexport default downloadFileWithPreloadUrl;","export const SiwzSourceType = {\r\n REPO: \"REPO\",\r\n SIWZ: \"SIWZ\"\r\n}\r\n","import {isMoment} from \"libs/moment\";\r\n\r\nexport default (potentiallyValidMomentObject, defaultValue) => {\r\n return isMoment(potentiallyValidMomentObject) ? (potentiallyValidMomentObject.isValid() ? potentiallyValidMomentObject : defaultValue) : defaultValue\r\n}","export default {\r\n /**\r\n * Kosz\r\n */\r\n Z_TRASH: \"z.trash\",\r\n /**\r\n * Publiczna Sesja Otwarcia Ofert\r\n */\r\n X_OPEN_OFFERS_PUBLIC_SESSION: \"x.openOffersPublicSession\",\r\n /**\r\n * Informacje z otwarcia ofert\r\n */\r\n X_OPEN_OFFERS: \"x.openOffers\",\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport Tr from 'translations/Translations';\r\nimport {clearResource, setResource, setSaveStatusError} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport getOnlyValidMomentObjectOrDefault from \"libs/getOnlyValidMomentObjectOrDefault\";\r\nimport RepoFolderTypes from \"constants/RepoFolderTypes\";\r\nimport downloadFileWithPreloadUrl from \"libs/downloadFileWithPreloadUrl\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\n\r\nconst VISIBILITY_TYPES_RESOURCE_ID = \"repoVisibilityTypes\";\r\nconst FOLDER_LIST_RESOURCE_ID = \"folderList\";\r\nconst REPO_EDITABLE_RESOURCE_ID = \"repoEditable\";\r\n\r\nconst __get = async (url, resourcesName) => {\r\n try {\r\n let res = await RestRequestGET(url)\r\n reduxStore.dispatch(setResource(resourcesName, res))\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getList = async (demandId) => {\r\n await __get(Endpoints.REPO(demandId), FOLDER_LIST_RESOURCE_ID)\r\n}\r\n\r\nconst getVisibilityTypes = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.REPO_VISIBILITY_TYPES(demandId));\r\n const types = {};\r\n Object.keys(resp).forEach(x => types[x] = Tr(`repo.visibility.${x}`));\r\n reduxStore.dispatch(setResource(VISIBILITY_TYPES_RESOURCE_ID, types));\r\n}\r\n\r\n\r\nconst addFolder = async (demandId, values) => {\r\n const {resources} = reduxStore.getState();\r\n const {folderList} = resources\r\n\r\n let res = await RestRequestPOST(Endpoints.REPO(demandId), values);\r\n\r\n const insertIndex = folderList.findIndex((el) => !(el.type.startsWith('x')));\r\n let temp = [...folderList];\r\n temp.splice(insertIndex < 0 ? 0 : insertIndex, 0, res);\r\n reduxStore.dispatch(setResource(FOLDER_LIST_RESOURCE_ID, temp))\r\n\r\n}\r\n\r\nconst updateDescription = async (demandId, {fileId, folderId}, description) => {\r\n const resp = await RestRequestPUT(Endpoints.REPO_FILE_UPDATE_DESCRIPTION(demandId, fileId), {description});\r\n updateFileRowInStore(resp, folderId);\r\n}\r\n\r\nconst updateFileRowInStore = (resp, folderId) => {\r\n\r\n const {resources} = reduxStore.getState();\r\n const {folderList} = resources;\r\n const folderIndex = folderList.findIndex((x) => {\r\n return x.identity === folderId;\r\n })\r\n const folder = folderList[folderIndex];\r\n const fileIndex = folder.files.findIndex(f => f.identity === resp.identity)\r\n folder.files[fileIndex] = resp;\r\n let newFolderList = [...folderList]\r\n\r\n reduxStore.dispatch(setResource(FOLDER_LIST_RESOURCE_ID, newFolderList))\r\n}\r\n\r\nconst changeFileVisibility = async (demandId, folderId, fileId, values) => {\r\n const visibilityEndDate = getOnlyValidMomentObjectOrDefault(values.visibilityEndDate, null);\r\n const data = {\r\n visibility: values.visibility,\r\n visibilityEndDate: visibilityEndDate ? visibilityEndDate.format() : null,\r\n }\r\n try {\r\n const respFolder = await RestRequestPUT(Endpoints.REPO_FILE_VISIBILITY(demandId, fileId), data);\r\n await _updateFolderInStore(demandId, respFolder, false);\r\n } catch (error) {\r\n }\r\n\r\n}\r\n\r\nconst changeFolderFilesVisibility = async (demandId, folderId, values) => {\r\n const visibilityEndDate = getOnlyValidMomentObjectOrDefault(values.visibilityEndDate, null);\r\n const data = {\r\n visibility: values.visibility,\r\n visibilityEndDate: visibilityEndDate ? visibilityEndDate.format() : null,\r\n }\r\n\r\n try {\r\n let res = await RestRequestPUT(Endpoints.REPO_FILES_VISIBILITY(demandId, folderId), data);\r\n await _updateFolderInStore(demandId, res, false);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst updateFolderName = async (demandId, folderId, name) => {\r\n try {\r\n let respFolder = await RestRequestPUT(Endpoints.REPO_FOLDER(demandId, folderId), {name})\r\n await _updateFolderInStore(demandId, respFolder, false);\r\n\r\n } catch (error) {\r\n }\r\n}\r\nconst updateFolderDescription = async (demandId, folderId, description) => {\r\n try {\r\n let respFolder = await RestRequestPUT(Endpoints.REPO_FOLDER(demandId, folderId), {description})\r\n await _updateFolderInStore(demandId, respFolder, false);\r\n\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst addFiles = async (demandId, folderId, values) => {\r\n let data = {\r\n \"list\": [...values],\r\n }\r\n try {\r\n let respFolder = await RestRequestPOST(Endpoints.REPO_FOLDER(demandId, folderId), data)\r\n await _updateFolderInStore(demandId, respFolder, false);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst refreshFolder = async (demandId, folderId) => {\r\n try {\r\n let respFolder = await RestRequestGET(Endpoints.REPO_FOLDER(demandId, folderId))\r\n await _updateFolderInStore(demandId, respFolder, false);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst _updateFolderInStore = async (demandId, respFolder, updateTrash) => {\r\n const {resources} = reduxStore.getState();\r\n const {folderList} = resources;\r\n\r\n const newFolderList = folderList.map((el, i) => {\r\n if (el.identity === respFolder.identity) {\r\n return respFolder\r\n }\r\n return el;\r\n });\r\n if(updateTrash) {\r\n await _doUpdateTrash(demandId, newFolderList, respFolder.identity)\r\n }\r\n reduxStore.dispatch(setResource(FOLDER_LIST_RESOURCE_ID, newFolderList))\r\n}\r\n\r\nconst updateTrash = async (demandId) => {\r\n const {resources} = reduxStore.getState();\r\n const {folderList} = resources;\r\n const modified = await _doUpdateTrash(demandId, folderList);\r\n if(modified) {\r\n reduxStore.dispatch(setResource(FOLDER_LIST_RESOURCE_ID, [...folderList]))\r\n }\r\n\r\n}\r\n\r\nconst _doUpdateTrash = async (demandId, newFolderList, workingFolderIdentity) => {\r\n if (updateTrash) {\r\n let trashIndex = newFolderList.findIndex(el => el.identity !== workingFolderIdentity && el.type === RepoFolderTypes.Z_TRASH);\r\n if (trashIndex > -1) {\r\n const trash = await RestRequestGET(Endpoints.REPO_FOLDER(demandId, newFolderList[trashIndex].identity));\r\n newFolderList[trashIndex] = trash;\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\n\r\n\r\nconst deleteItem = async (demandId, fileId) => {\r\n try {\r\n const respFolder = await RestRequestDELETE(Endpoints.REPO_FILE(demandId, fileId));\r\n await _updateFolderInStore(demandId, respFolder, true);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n}\r\n\r\nconst deleteFolder = async (demandId, folderId) => {\r\n const {resources} = reduxStore.getState();\r\n const {folderList} = resources;\r\n try {\r\n const res = await RestRequestDELETE(Endpoints.REPO_FOLDER(demandId, folderId));\r\n if (res.success) {\r\n\r\n let newFolderList = folderList.filter(x => x.identity !== folderId);\r\n\r\n const trashIndex = newFolderList.findIndex(x => x.type === RepoFolderTypes.Z_TRASH && x.identity !== folderId);\r\n\r\n if (trashIndex > -1) {\r\n const trash = await RestRequestGET(Endpoints.REPO_FOLDER(demandId, newFolderList[trashIndex].identity));\r\n newFolderList[trashIndex] = trash;\r\n }\r\n\r\n reduxStore.dispatch(setResource(FOLDER_LIST_RESOURCE_ID, newFolderList))\r\n }\r\n } catch (error) {\r\n }\r\n}\r\n\r\n\r\nconst deleteAll = async (demandId, folderId) => {\r\n try {\r\n const respFolder = await RestRequestDELETE(Endpoints.REPO_DELETE_ALL_FOLDER_FILES(demandId, folderId))\r\n await _updateFolderInStore(demandId, respFolder, true);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst downloadAll = async (demandId, folderId) => {\r\n try {\r\n await RestRequestBLOB(Endpoints.REPO_DOWNLOAD_ALL(demandId, folderId));\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getDownloadHistory = async (demandId, fileId, pagination) => {\r\n\r\n const params = {\r\n ...pagination\r\n }\r\n\r\n const url = Endpoints.REPO_FILE_DOWNLOAD_HISTORY(demandId, fileId);\r\n try {\r\n const repoDownloadHistory = await RestRequestGET(url, {params});\r\n return repoDownloadHistory;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst isRepoEditable = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.REPO_EDITABLE(demandId));\r\n reduxStore.dispatch(setResource(REPO_EDITABLE_RESOURCE_ID, resp));\r\n}\r\n\r\nconst clearResources = (id) => {\r\n reduxStore.dispatch(clearResource(id));\r\n}\r\n\r\nconst getDownloadFile = async (demandId, fileId, openInBrowser) => {\r\n await downloadFileWithPreloadUrl(Endpoints.REPO_FILE_GET_DOWNLOAD_URL(demandId, fileId, openInBrowser), openInBrowser);\r\n}\r\n\r\nconst shareRepo = async (demandId, fileId, system) => {\r\n const resp = await RestRequestPOST(Endpoints.REPO_FILE_SHARE(demandId, fileId), {system});\r\n try {\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n return false;\r\n}\r\n\r\nconst shareRepoFolder = async (demandId, folderId, system) => {\r\n const resp = await RestRequestPOST(Endpoints.REPO_FOLDER_SHARE(demandId, folderId), {system});\r\n try {\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n return false;\r\n}\r\n\r\nconst buildIdentity = (fileId, folderId) => ({fileId, folderId});\r\n\r\nexport default {\r\n addFolder,\r\n getList,\r\n addFiles,\r\n refreshFolder,\r\n deleteItem,\r\n deleteAll,\r\n deleteFolder,\r\n downloadAll,\r\n updateFolderName,\r\n updateFolderDescription,\r\n getDownloadHistory,\r\n getVisibilityTypes,\r\n changeFileVisibility,\r\n changeFolderFilesVisibility,\r\n updateDescription,\r\n updateFileRowInStore,\r\n clearResources,\r\n getDownloadFile,\r\n shareRepo,\r\n shareRepoFolder,\r\n isRepoEditable,\r\n buildIdentity,\r\n updateTrash,\r\n FOLDER_LIST_RESOURCE_ID,\r\n VISIBILITY_TYPES_RESOURCE_ID,\r\n REPO_EDITABLE_RESOURCE_ID\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {clearResource, setResource, setSaveStatusDialog, setSaveStatusError, setSaveStatusLoading} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport validateSection from './helpers/validateSection'\r\nimport Tr from \"../translations/Translations\";\r\nimport downloadFileWithPreloadUrl from \"libs/downloadFileWithPreloadUrl\";\r\nimport {SiwzSourceType} from \"../components/complex/documentsTables/swz/constants/SiwzSourceType\";\r\nimport RepoService from \"./RepoService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\n\r\nconst __get = async (url, resourcesName) => {\r\n try {\r\n const res = await RestRequestGET(url);\r\n\r\n reduxStore.dispatch(\r\n setResource(resourcesName, res)\r\n )\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst SIWZ_TYPE_LIST_RESOURCE_ID = \"typeSiwzList\";\r\nconst SIWZ_LIST_RESOURCE_ID = \"siwzList\";\r\nconst SIWZ_EDITABLE_RESOURCE_ID = \"siwzEditable\";\r\n\r\n\r\nconst send = async (demandId, files, demandValidationSectionId) => {\r\n\r\n let list = []\r\n files.forEach(x => {\r\n list.push({\r\n repositoryId: x.identity,\r\n type: x.type,\r\n description: \"\",\r\n parentSiwzId: x.parent,\r\n publish: x.autopublish\r\n })\r\n });\r\n\r\n const data = {\r\n \"list\": list\r\n }\r\n\r\n const addResp = await RestRequestPOST(Endpoints.SIWZ(demandId), data);\r\n await updateAfterAdd(demandId, addResp, demandValidationSectionId);\r\n}\r\n\r\nconst moveFromRepo = async (demandId, files, demandValidationSectionId) => {\r\n const list = []\r\n files.forEach(x => {\r\n list.push({\r\n repositoryId: x.identity,\r\n type: x.type,\r\n description: \"\",\r\n parentSiwzId: x.parent,\r\n publish: x.autopublish\r\n });\r\n });\r\n const data = {\r\n \"list\": list\r\n }\r\n\r\n const addResp = await RestRequestPOST(Endpoints.SIWZ_MOVE_FROM_REPO(demandId), data);\r\n await updateAfterAdd(demandId, addResp, demandValidationSectionId);\r\n}\r\n\r\nconst updateAfterAdd = async (demandId, addResp, demandValidationSectionId) => {\r\n //jeśli któryś z dodanych plików miał wyższą wersję musze przeładowac wszystko\r\n if (addResp.findIndex(x => x.version > 1) > -1) {\r\n await getList(demandId);\r\n } else {\r\n const {resources} = reduxStore.getState();\r\n const newList = [...addResp.reverse(), ...resources[SIWZ_LIST_RESOURCE_ID]];\r\n reduxStore.dispatch(setResource(SIWZ_LIST_RESOURCE_ID, newList));\r\n }\r\n\r\n if (demandValidationSectionId)\r\n await validateSection(demandValidationSectionId, demandId, false);\r\n}\r\n\r\n\r\nconst addBzpNotice = async (demandId, bzpNoticeId, siwzType) => {\r\n const url = Endpoints.SIWZ_ADD_BZP_NOTICE(demandId)\r\n\r\n const data = {\r\n bzpNoticeId,\r\n siwzType\r\n }\r\n\r\n return await RestRequestPOST(url, data);\r\n}\r\n\r\nconst deleteItem = async (demandId, {identity, source, rootIdentity}, demandValidationSectionId) => {\r\n const resp = await RestRequestDELETE(Endpoints.SIWZ_ID(demandId, identity, source));\r\n try {\r\n if (resp.success) {\r\n\r\n const {resources} = reduxStore.getState();\r\n const curList = resources[SIWZ_LIST_RESOURCE_ID];\r\n const itemToRemove = curList.find(siwz => siwz.identity === identity && siwz.source === source);\r\n\r\n if (itemToRemove.version === 1) {\r\n reduxStore.dispatch(setResource(SIWZ_LIST_RESOURCE_ID, curList.filter(siwz => !(siwz.identity === identity && siwz.source === source))));\r\n } else {\r\n await getList(demandId);\r\n }\r\n\r\n if (source === SiwzSourceType.REPO) {\r\n RepoService.updateTrash(demandId)\r\n }\r\n\r\n if (demandValidationSectionId)\r\n await validateSection(demandValidationSectionId, demandId, false);\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\nconst publish = async (demandId, {identity, source, rootIdentity}, demandValidationSectionId) => {\r\n const resp = await RestRequestPUT(Endpoints.SIWZ_ID_PUBLISH(demandId, identity, source));\r\n try {\r\n if (resp.success) {\r\n updateSiwzRowInStore(resp.result, true, rootIdentity);\r\n if (demandValidationSectionId)\r\n await validateSection(demandValidationSectionId, demandId, false);\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\nconst unpublish = async (demandId, {identity, source, rootIdentity}, demandValidationSectionId) => {\r\n const resp = await RestRequestPUT(Endpoints.SIWZ_ID_UNPUBLISH(demandId, identity, source));\r\n try {\r\n if (resp.success) {\r\n updateSiwzRowInStore(resp.result, true, rootIdentity)\r\n if (demandValidationSectionId)\r\n await validateSection(demandValidationSectionId, demandId, false);\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\nconst getDownloadHistory = async (demandId, {identity, source, rootIdentity}, pagination) => {\r\n\r\n const params = {\r\n ...pagination\r\n }\r\n\r\n const url = Endpoints.SIWZ_ID_DOWNLOAD_HISTORY(demandId, identity, source);\r\n const siwzDownloadHistory = await RestRequestGET(url, {params});\r\n return siwzDownloadHistory;\r\n}\r\n\r\nconst getVersions = async (demandId, {identity, source}) => {\r\n const url = Endpoints.SIWZ_ID_VERSIONS(demandId, identity, source);\r\n const resp = await RestRequestGET(url);\r\n\r\n const {resources} = reduxStore.getState();\r\n const siwzList = resources[SIWZ_LIST_RESOURCE_ID].map((x) => {\r\n if (x.identity === identity) {\r\n return {...x, versions: resp.filter(x => x.identity !== identity)};\r\n } else {\r\n return x;\r\n }\r\n });\r\n reduxStore.dispatch(setResource(SIWZ_LIST_RESOURCE_ID, siwzList));\r\n}\r\n\r\nconst clearVersions = async (demandId, {identity, source}) => {\r\n const {resources} = reduxStore.getState();\r\n const siwzList = resources[SIWZ_LIST_RESOURCE_ID].map((x) => {\r\n if (x.identity === identity) {\r\n return {...x, versions: undefined};\r\n } else {\r\n return x;\r\n }\r\n });\r\n reduxStore.dispatch(setResource(SIWZ_LIST_RESOURCE_ID, siwzList));\r\n}\r\n\r\nconst deleteAll = async (demandId, demandValidationSectionId) => {\r\n const url = Endpoints.SIWZ(demandId);\r\n await RestRequestDELETE(url);\r\n reduxStore.dispatch(setResource(SIWZ_LIST_RESOURCE_ID, []));\r\n if (demandValidationSectionId)\r\n await validateSection(demandValidationSectionId, demandId);\r\n}\r\n\r\nconst getList = async (demandId) => {\r\n await __get(Endpoints.SIWZ(demandId), SIWZ_LIST_RESOURCE_ID)\r\n}\r\n\r\nconst getTypes = async (demandId) => {\r\n await __get(Endpoints.SIWZ_TYPES(demandId), SIWZ_TYPE_LIST_RESOURCE_ID)\r\n}\r\n\r\nconst downloadAll = async (demandId) => {\r\n await RestRequestBLOB(Endpoints.SIWZ_DOWNLOAD_ALL(demandId))\r\n}\r\n\r\n\r\nconst save = async (demandId, demandValidationSectionId) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n if (demandValidationSectionId)\r\n await validateSection(demandValidationSectionId, demandId);\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n}\r\n\r\nconst validateSIWZ = async (demandId) => {\r\n return RestRequestGET(Endpoints.SIWZ_VALIDATE(demandId));\r\n}\r\n\r\nconst validateDocuments = async (demandId) => {\r\n return RestRequestGET(Endpoints.SIWZ_VALIDATE_DOCUMENTS(demandId));\r\n}\r\n\r\nconst updateSiwzRowInStore = (siwzRow, preserveVersions, rootRowIdentity) => {\r\n const {resources} = reduxStore.getState();\r\n\r\n const rootRowId = rootRowIdentity ? rootRowIdentity : siwzRow.identity;\r\n const versionRowId = rootRowIdentity ? siwzRow.identity : null;\r\n\r\n const siwzList = resources[SIWZ_LIST_RESOURCE_ID].map((x) => {\r\n if (x.identity === rootRowId) {\r\n if (versionRowId) {\r\n if (x.versions) {\r\n const versions = x.versions.map((r) => {\r\n if (r.identity === versionRowId)\r\n return siwzRow\r\n else\r\n return r\r\n });\r\n return {...x, versions}\r\n } else {\r\n return {...x};\r\n }\r\n } else {\r\n if (preserveVersions) {\r\n siwzRow.versions = x.versions;\r\n }\r\n return siwzRow;\r\n }\r\n } else {\r\n return x;\r\n }\r\n\r\n });\r\n reduxStore.dispatch(setResource(SIWZ_LIST_RESOURCE_ID, siwzList));\r\n}\r\n\r\nconst updateDescription = async (demandId, {identity, source, rootIdentity}, description) => {\r\n const resp = await RestRequestPUT(Endpoints.SIWZ_ID_UPDATE_DESCRIPTION(demandId, identity, source), {description});\r\n try {\r\n if (resp.success) {\r\n updateSiwzRowInStore(resp.result, true, rootIdentity)\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\nconst shareSiwz = async (demandId, {identity, source, rootIdentity}, system) => {\r\n const resp = await RestRequestPOST(Endpoints.SIWZ_ID_UPDATE_SHARE(demandId, identity, source), {system});\r\n try {\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n return false;\r\n}\r\n\r\nconst getDownloadFile = async (demandId, {identity, source, rootIdentity}, openInBrowser) => {\r\n await downloadFileWithPreloadUrl(\r\n Endpoints.SIWZ_ID_GET_DOWNLOAD_URL(demandId, identity, source, openInBrowser),\r\n openInBrowser);\r\n}\r\n\r\nconst generateSWZ = (demandId, arr, finallyCallback = () => {\r\n}) => {\r\n const data = {\r\n list: arr\r\n }\r\n RestRequestBLOB(Endpoints.SIWZ_POST_PRINT_SWZ(demandId), {method: 'post', data: data})\r\n .finally(finallyCallback);\r\n}\r\n\r\nconst shareGenerateSWZ = async (demandId, arr, shareSystem) => {\r\n const data = {\r\n list: arr\r\n }\r\n const params = {\r\n shareSystem\r\n }\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.SIWZ_POST_SHARE_SWZ(demandId), data, {params})\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return resp.success;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n return false;\r\n\r\n\r\n}\r\n\r\nconst isSiwzEditable = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.SIWZ_EDITABLE(demandId));\r\n reduxStore.dispatch(setResource(SIWZ_EDITABLE_RESOURCE_ID, resp));\r\n}\r\n\r\nconst buildSiwzIdentity = (identity, source, rootIdentity = null) => {\r\n return {identity, source, rootIdentity};\r\n}\r\nconst clearResources = (id) => {\r\n reduxStore.dispatch(clearResource(id));\r\n}\r\n\r\nexport default {\r\n save,\r\n validateSIWZ,\r\n validateDocuments,\r\n getList,\r\n getTypes,\r\n send,\r\n moveFromRepo,\r\n deleteItem,\r\n deleteAll,\r\n downloadAll,\r\n unpublish,\r\n publish,\r\n getDownloadHistory,\r\n getVersions,\r\n clearVersions,\r\n updateDescription,\r\n addBzpNotice,\r\n generateSWZ,\r\n shareGenerateSWZ,\r\n shareSiwz,\r\n getDownloadFile,\r\n isSiwzEditable,\r\n buildSiwzIdentity,\r\n clearResources,\r\n SIWZ_LIST_RESOURCE_ID,\r\n SIWZ_TYPE_LIST_RESOURCE_ID,\r\n SIWZ_EDITABLE_RESOURCE_ID\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Select from \"components/Select\";\r\n\r\nfunction SwzGeneratorQuestionSelect(\r\n {\r\n id,\r\n question,\r\n formikProps\r\n }) {\r\n return (\r\n ({label: x.text, value: x.selectValue}))}\r\n />\r\n )\r\n}\r\n\r\nSwzGeneratorQuestionSelect.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default SwzGeneratorQuestionSelect;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Checkbox from \"components/Checkbox\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n wrap: {\r\n marginLeft: theme.spacing(4)\r\n }\r\n}));\r\n\r\n\r\nfunction SwzGeneratorQuestionCheckbox(\r\n {\r\n id,\r\n question,\r\n formikProps\r\n }) {\r\n const classes = useStyle();\r\n\r\n const changeMain = (e) => {\r\n const fPName = e.target.name;\r\n const qKey = fPName.replace(/#/g, '.');\r\n const opt = question.options.find((x) => x.key === qKey && x.subOptions)\r\n if(opt) {\r\n const checked = e.target.checked;\r\n const sub = opt.subOptions.reduce((prev, curr) => {\r\n return {\r\n ...prev,\r\n [curr.key.replace(/\\./g, '#')]: checked\r\n }\r\n }, {})\r\n sub[fPName] = checked;\r\n formikProps.setValues({\r\n ...formikProps.values,\r\n ...sub\r\n })\r\n }\r\n }\r\n\r\n const changeSub = (e) => {\r\n const fPName = e.target.name;\r\n const qKey = fPName.replace(/#/g, '.');\r\n const opt = question.options.find((x) => !!x.subOptions && x.subOptions.find(y => y.key === qKey))\r\n const checked = e.target.checked;\r\n if(opt) {\r\n if(checked) {\r\n formikProps.setFieldValue(opt.key.replace(/\\./g, '#'), checked);\r\n } else {\r\n const otherChecked = opt.subOptions.find(y => y.key !== qKey && getObjectValue(y.key.replace(/\\./g, '#'), formikProps.values, false));\r\n if(!otherChecked) {\r\n formikProps.setFieldValue(opt.key.replace(/\\./g, '#'), checked);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return (question.options.map(x => (\r\n \r\n
\r\n
\r\n {!!x.subOptions ?\r\n x.subOptions.map(so => (\r\n \r\n \r\n
\r\n )) : null}\r\n \r\n )))\r\n}\r\n\r\nSwzGeneratorQuestionCheckbox.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default SwzGeneratorQuestionCheckbox;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport HelpTooltip from \"components/HelpTooltip\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport SwzGeneratorQuestionSelect from \"./SwzGeneratorQuestionSelect\";\r\nimport SwzGeneratorQuestionCheckbox from \"./SwzGeneratorQuestionCheckbox\";\r\n\r\nfunction SwzGeneratorQuestion(\r\n {\r\n id,\r\n question,\r\n formikProps\r\n }) {\r\n return (\r\n \r\n {question.text}\r\n {!!question.helpMessage && }\r\n \r\n {question.type === \"checkbox\" ?\r\n \r\n :\r\n \r\n }\r\n\r\n\r\n
\r\n )\r\n}\r\n\r\nSwzGeneratorQuestion.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default SwzGeneratorQuestion;","import React from 'react'\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport Title from \"components/Title\";\r\nimport HelpTooltip from \"components/HelpTooltip\";\r\nimport SwzGeneratorQuestion from \"./SwzGeneratorQuestion\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n title: {\r\n background: theme.palette.background.greyBackground,\r\n padding: theme.spacing(1),\r\n borderRadius: theme.shape.borderRadius,\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n marginBottom: theme.spacing(2)\r\n },\r\n wrap: {\r\n marginLeft: theme.spacing(2)\r\n },\r\n helpText: {\r\n textIndent: -1 * theme.spacing(2),\r\n marginLeft: theme.spacing(2),\r\n marginBottom: theme.spacing()\r\n\r\n }\r\n}));\r\n\r\nfunction SwzGeneratorSection(\r\n {\r\n id,\r\n section,\r\n formikProps\r\n }) {\r\n const classes = useStyle();\r\n return (\r\n \r\n
\r\n {section.text}\r\n {!!section.helpMessage && }\r\n \r\n
\r\n {section.questions.map(x => (\r\n \r\n ))}\r\n
\r\n {\r\n !!section?.helpTexts.length &&
\r\n {section.helpTexts.map(x => (\r\n {x.message}\r\n ))}\r\n
\r\n }\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default SwzGeneratorSection;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport SiwzService from \"services/SiwzService\";\r\nimport Loading from \"components/Loading\";\r\nimport SwzGeneratorSection from \"./SwzGeneratorSection\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport {connect} from \"react-redux\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n wrap: {\r\n minWidth: 600,\r\n minHeight: 40\r\n }\r\n}));\r\n\r\n\r\nfunction ChooseSwzGeneratorOptions(\r\n {\r\n id,\r\n onClose,\r\n formSubmit,\r\n shareSystem\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [sections, setSections] = useState(null);\r\n const [working, setWorking] = useState(true);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getSwzGeneratorParams(id).then(resp => {\r\n setSections(resp);\r\n setWorking(false);\r\n });\r\n }, [id])\r\n\r\n const getInitialValues = (sections) => {\r\n const inits = {};\r\n sections.result.forEach(s => {\r\n s.questions.forEach(q => {\r\n q.type === 'select' ?\r\n inits[q.key.replace(/\\./g, '#')] = \"\" + !q.options[0].value\r\n :\r\n q.options.forEach(o => {\r\n inits[o.key.replace(/\\./g, '#')] = o.value;\r\n if (o.subOptions) {\r\n o.subOptions.forEach(so => {\r\n inits[so.key.replace(/\\./g, '#')] = so.value;\r\n })\r\n }\r\n })\r\n })\r\n })\r\n return inits\r\n }\r\n const formId = useId();\r\n const onSubmit = (values) => {\r\n setWorking(true);\r\n const selected = [];\r\n for (const [key, value] of Object.entries(values)) {\r\n if (value === true || value === 'true') {\r\n selected.push(key.replace(/#/g, '.'))\r\n }\r\n }\r\n\r\n if (shareSystem) {\r\n SiwzService.shareGenerateSWZ(id, selected, shareSystem).then(resp => resp ? enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: shareSystem}, true)) : null).finally(onClose);\r\n } else {\r\n SiwzService.generateSWZ(id, selected, onClose)\r\n }\r\n\r\n }\r\n\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined'));\r\n buttons.push(createButton(Tr('swz.button.generate'), () => formSubmit[formId](), undefined, working));\r\n return ;\r\n }\r\n return (\r\n \r\n )\r\n}\r\n\r\nChooseSwzGeneratorOptions.propTypes = {\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(ChooseSwzGeneratorOptions);","import {List, ListItem, ListItemIcon, ListItemText, Typography} from \"@material-ui/core\";\r\nimport React, {useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport Loading from \"components/Loading\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Checkbox from \"components/Checkbox\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n loading: {\r\n width: '92%'\r\n },\r\n}))\r\n\r\nconst PapersGeneratorSelectFilesPopup = (\r\n {\r\n list,\r\n title,\r\n onClose,\r\n onBack,\r\n onGenerate,\r\n working\r\n }) => {\r\n const classes = useStyle();\r\n const [selectedPos, setSelectedPos] = useState([]);\r\n\r\n const generateClick = () => onGenerate(selectedPos);\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n if(!!onBack) {\r\n buttons.push(createButton(Tr('back'), onBack, 'outlined'));\r\n }\r\n buttons.push(createButton(Tr('close'), onClose, 'outlined'));\r\n buttons.push(createButton(Tr('generate_report'), generateClick, undefined, working || selectedPos.length === 0));\r\n return buttons;\r\n }\r\n\r\n const onSelect = (supplier) => {\r\n if(working)\r\n return;\r\n const added = selectedPos.indexOf(supplier.id) === -1;\r\n if (added) {\r\n setSelectedPos(x => [...x, supplier.id]);\r\n } else {\r\n setSelectedPos(x => x.filter(x => x !== supplier.id));\r\n }\r\n }\r\n\r\n return (}\r\n >\r\n {(working || !list) && }\r\n {(!!list && list.length > 0) && \r\n {list.map((position) =>\r\n onSelect(position)}>\r\n \r\n -1}\r\n onChange={() => onSelect(position)}\r\n disabled={working}\r\n />\r\n \r\n \r\n )}\r\n
}\r\n {(!!list && list.length === 0) && {Tr('no_options')}}\r\n )\r\n}\r\n\r\nexport default PapersGeneratorSelectFilesPopup;","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PapersGeneratorSelectPopup from \"./PapersGeneratorSelectPopup\";\r\nimport PapersGeneratorSelectFilesPopup from \"./PapersGeneratorSelectFilesPopup\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport PropTypes from \"prop-types\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\n\r\nconst PapersGeneratOfferFilesVerification = (\r\n {\r\n demandId,\r\n paper,\r\n onClose,\r\n shareSystem\r\n }) => {\r\n\r\n const [invitedSuppliers, setInvitedSuppliers] = useState(null);\r\n const [chosenSupplier, setChosenSupplier] = useState(null);\r\n const [requestPositions, setRequestPositions] = useState(null);\r\n const [working, setWorking] = useState(false);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const onSelectSupplier = (supplier) => {\r\n setChosenSupplier(supplier);\r\n PapersGeneratorService.getRfxSupplierAttachmentsVerification(demandId, supplier.id).then(resp => setRequestPositions(resp));\r\n }\r\n\r\n const onBack = () => {\r\n setChosenSupplier(null);\r\n setRequestPositions(null);\r\n }\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getRfxInvitedSupplierWithOffer(demandId).then(resp => setInvitedSuppliers(resp));\r\n }, [demandId])\r\n\r\n\r\n const generateClick = (selectedPos) => {\r\n setWorking(true);\r\n const url = Endpoints.PAPERS_GENERATOR_DEMAND_ATTACHMENT_VERIFICATION_REPORT(demandId) + `?supplierId=${chosenSupplier.id}&positionIds=${selectedPos.join(\",\")}`;\r\n\r\n if (shareSystem) {\r\n PapersGeneratorService.sharePaperByUrl(url, shareSystem).then(resp => resp ? enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: shareSystem}, true)) : null).finally(() => setWorking(false));;\r\n } else {\r\n PapersGeneratorService.downloadPaper(url, () => setWorking(false), () => setWorking(false))\r\n }\r\n\r\n }\r\n\r\n return (<>\r\n {!chosenSupplier ?\r\n \r\n : \r\n }\r\n >)\r\n}\r\n\r\n\r\nPapersGeneratOfferFilesVerification.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\n\r\nexport default PapersGeneratOfferFilesVerification;","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PapersGeneratorSelectPopup from \"./PapersGeneratorSelectPopup\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport PropTypes from \"prop-types\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\n\r\nconst PapersGeneratorMessageFilesVerification = (\r\n {\r\n demandId,\r\n paper,\r\n onClose,\r\n shareSystem\r\n }) => {\r\n\r\n const [invitedSuppliers, setInvitedSuppliers] = useState(null);\r\n const [working, setWorking] = useState(false);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getRfxInvitedSupplierWithOffer(demandId).then(resp => setInvitedSuppliers(resp));\r\n }, [demandId])\r\n\r\n const generateClick = (supplier) => {\r\n setWorking(true);\r\n const url = Endpoints.PAPERS_GENERATOR_CORRESPONDENCE_ATTACHMENT_VERIFICATION_REPORT(demandId) + `?cdId=ris_${supplier.id}`;\r\n\r\n if (shareSystem) {\r\n PapersGeneratorService.sharePaperByUrl(url, shareSystem).then(resp => resp ? enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: shareSystem}, true)) : null).finally(() => setWorking(false));\r\n } else {\r\n PapersGeneratorService.downloadPaper(url, () => setWorking(false), () => setWorking(false))\r\n }\r\n }\r\n return (\r\n \r\n )\r\n}\r\nPapersGeneratorMessageFilesVerification.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\nexport default PapersGeneratorMessageFilesVerification;","import {snakeCase} from \"lodash\";\r\nimport {isMoment} from \"libs/moment\";\r\n\r\nconst getJavaKey = (jsKey) => {\r\n return snakeCase(jsKey).toUpperCase();\r\n}\r\n\r\nconst getParamSerializedValue = (value) => {\r\n\r\n if (isMoment(value)) {\r\n return value.format()\r\n }\r\n return value;\r\n}\r\n\r\n\r\nconst applySearchParams = (search = {}, curParams = {}) => {\r\n let searchIndex = 0;\r\n Object.keys(search).reduce((prev, cur) => {\r\n const val = search[cur];\r\n if (val === 0 || val === false || !!val) {\r\n prev['filters[' + searchIndex + '].column'] = getJavaKey(cur);\r\n prev['filters[' + searchIndex + '].value'] = getParamSerializedValue(search[cur]);\r\n searchIndex++;\r\n }\r\n return prev;\r\n }, curParams);\r\n\r\n return curParams;\r\n}\r\n\r\nexport default applySearchParams;","const applySortParams = (sort = {}, curParams = {}) => {\r\n curParams['sort[0].column'] = sort.column;\r\n curParams['sort[0].direction'] = sort.direction.toUpperCase();\r\n return curParams;\r\n\r\n}\r\nexport default applySortParams;","import Endpoints from 'constants/Endpoints';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestGET} from 'libs/RestRequest';\r\n\r\nconst PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID = \"purchasingGroupStageSections\";\r\n\r\nconst __get = async (url, resourcesName, transformer) => {\r\n try {\r\n let res = await RestRequestGET(url)\r\n if (transformer) {\r\n res = transformer(res);\r\n }\r\n reduxStore.dispatch(setResource(resourcesName, res))\r\n return res;\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n}\r\n\r\nconst __sectionResponseTranformer = (resp) => {\r\n return resp.reduce((prev, curr) => {\r\n prev[curr.section] = curr;\r\n return prev;\r\n }, {})\r\n}\r\n\r\nconst getStage1Sections = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_SECTIONS_PREPARING(groupId ? groupId : -1), PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID, __sectionResponseTranformer)\r\n}\r\n\r\nconst getStage2Sections = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_SECTIONS_COLLECTING_DATA(groupId), PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID, __sectionResponseTranformer)\r\n}\r\n\r\nconst getSections = async (groupId, sections) => {\r\n const params = {sections: Array.isArray(sections) ? sections.join(\",\") : sections}\r\n const resp = await RestRequestGET(Endpoints.PURCHASING_GROUP_SECTIONS_SECTION(groupId), {params})\r\n const respTransformed = __sectionResponseTranformer(resp);\r\n const {resources} = reduxStore.getState();\r\n const curSections = resources[PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID] || {};\r\n const newSections = {...curSections, ...respTransformed}\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID, newSections));\r\n}\r\n\r\nconst clearResources = (resourceId) => reduxStore.dispatch(clearResource(resourceId))\r\n\r\nexport default {\r\n getStage1Sections,\r\n getStage2Sections,\r\n getSections,\r\n\r\n clearResources,\r\n PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID\r\n}","export const DemandValidationSectionStatus = {\r\n OK: \"OK\",\r\n EMPTY: \"EMPTY\",\r\n ERROR: \"ERROR\",\r\n DISABLED: \"DISABLED\",\r\n UNAVAILABLE: \"UNAVAILABLE\"\r\n}\r\n","export default (querySelector, extraOffset = 0, scrollElement = window) => {\r\n if (!querySelector) {\r\n return;\r\n }\r\n\r\n const element = querySelector instanceof Element ? querySelector : document.querySelector(querySelector);\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const boundingClientRect = element.getBoundingClientRect();\r\n\r\n const stageBar = document.querySelector('#stageBar');\r\n const toolBar = document.querySelector('#toolBar');\r\n\r\n let offsetTop = boundingClientRect.top + window.scrollY;\r\n\r\n if (stageBar) {\r\n offsetTop -= stageBar.clientHeight;\r\n }\r\n\r\n if (toolBar) {\r\n offsetTop -= toolBar.clientHeight;\r\n }\r\n offsetTop -= 20;\r\n offsetTop -= extraOffset\r\n\r\n\r\n if(scrollElement !== window) {\r\n scrollElement = document.querySelector(scrollElement)\r\n }\r\n\r\n scrollElement.scrollTo({behavior: 'smooth', top: offsetTop});\r\n}\r\n","import Tr from \"translations/Translations\";\r\n\r\nexport default {\r\n number: {\r\n id: 'number',\r\n label: Tr('purchase_group_number')\r\n },\r\n organization: {\r\n id: 'organization',\r\n label: Tr('organizational_unit'),\r\n transform: (org) => org ? org.name : \"\"\r\n },\r\n name: {\r\n id: 'name',\r\n label: Tr('purchase_group_name')\r\n },\r\n description: {\r\n id: 'description',\r\n label: Tr('purchase_group_description')\r\n }\r\n}","import React from 'react'\r\nimport GridBlock from \"components/GridBlock\";\r\nimport TextInput from \"components/TextInput\";\r\nimport OrganizationInput from \"components/OrganizationInput\";\r\nimport PropTypes from \"prop-types\";\r\nimport propertyTransformer from \"./history/propertyTransformer\";\r\n\r\nfunction PurchasingGroupStage1BasicDataForm(\r\n {\r\n formikProps,\r\n basicData,\r\n disabled,\r\n }) {\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nPurchasingGroupStage1BasicDataForm.propTypes = {\r\n basicData: PropTypes.shape({\r\n purchasingGroup: PropTypes.object.isRequired,\r\n numberingAutomated: PropTypes.bool.isRequired,\r\n availableOrganizations: PropTypes.arrayOf(PropTypes.shape({\r\n externalId: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n orgId: PropTypes.string.isRequired,\r\n })).isRequired\r\n })\r\n}\r\n\r\nexport default PurchasingGroupStage1BasicDataForm;","import React from 'react'\r\nimport HistoryIcon from '@material-ui/icons/History';\r\nimport Button from 'components/Button';\r\nimport Tr from 'translations/Translations';\r\n\r\n\r\nfunction HistoryButton({\r\n\tclasses,\r\n\tonClick,\r\n\tvariant = 'outlined',\r\n\tIcon = HistoryIcon,\r\n\tchildren = Tr('history'),\r\n\t...other\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default HistoryButton;","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations'\r\nimport GridBlock from 'components/GridBlock';\r\nimport Loading from \"components/Loading\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport moment from \"moment\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n lpColumn: theme.components.table.lpColumn,\r\n dateColumn: theme.components.table.dateTimeColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n}))\r\n\r\nfunction HistoryListPopup(\r\n {\r\n historyList,\r\n selectElem,\r\n selectedElem\r\n }) {\r\n const classes = useStyle();\r\n return (\r\n <>\r\n {!historyList ?\r\n \r\n :\r\n \r\n ([\r\n `${arr.length - i}`,\r\n moment(elem.dateInserted).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT),\r\n `${elem.user.firstName} ${elem.user.lastName}` + (elem.user.replacedUser ? ` (${Tr('in_deputy_of')} ${elem.user.replacedUser.firstName} ${elem.user.replacedUser.lastName})` : \"\"),\r\n selectElem(elem)} disabled={!!selectedElem}\r\n working={elem.identity === selectedElem?.identity}/>\r\n ]))\r\n }\r\n columnClasses={[\r\n classes.lpColumn,\r\n classes.dateColumn,\r\n undefined,\r\n classes.buttonColumn\r\n ]}\r\n />\r\n\r\n {historyList.length === 0 && {Tr('empty_history')}}\r\n\r\n \r\n }\r\n >\r\n )\r\n}\r\n\r\nHistoryListPopup.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default HistoryListPopup;\r\n","import Tr from 'translations/Translations'\r\n\r\nexport const getUserFullNameWithEmailAndDeputy = (apiUser) => {\r\n let name = getUserFullNameWithEmail(apiUser);\r\n if (apiUser?.replacedUser) {\r\n name += Tr('in_deputy_of') + apiUser.replacedUser.firstName + \" \" + apiUser.replacedUser.lastName;\r\n }\r\n return name;\r\n}\r\nexport const getUserFullNameWithDeputy = (apiUser) => {\r\n let name = getUserFullName(apiUser);\r\n if (apiUser?.replacedUser) {\r\n name += Tr('in_deputy_of') + apiUser.replacedUser.firstName + \" \" + apiUser.replacedUser.lastName;\r\n }\r\n return name;\r\n}\r\n\r\nexport const getUserFullNameWithEmail = (apiUser) => {\r\n let name = getUserFullName(apiUser);\r\n if (apiUser && apiUser.email) {\r\n name += \" (\" + apiUser.email + \")\";\r\n }\r\n return name;\r\n}\r\nexport const getUserFullName = (apiUser) => {\r\n let name = '';\r\n if (apiUser) {\r\n name += apiUser.firstName + \" \" + apiUser.lastName;\r\n }\r\n return name;\r\n}\r\n\r\n","import React, {useMemo, useState} from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations'\r\nimport GridBlock from 'components/GridBlock';\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Button from \"components/Button\";\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\nimport moment from \"moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport {getUserFullNameWithDeputy} from \"libs/userNameGetter\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n column: {\r\n width: '30%'\r\n },\r\n change: {\r\n \"&> td\": {\r\n fontWeight: \"bold\",\r\n backgroundColor: theme.palette.primary.light\r\n }\r\n },\r\n noChanges: {\r\n textAlign: \"center\",\r\n marginTop: theme.spacing(2),\r\n fontSize: \"1.2rem\"\r\n },\r\n buttonShow: {\r\n position: \"absolute\",\r\n bottom: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction HistoryElementComparator(\r\n {\r\n selectedElemLoaded,\r\n selectedElem,\r\n clearSelectedElem,\r\n propertyTransformer,\r\n customParamTransformer\r\n }) {\r\n const classes = useStyle();\r\n const [showTheSame, setShowTheSame] = useState(false)\r\n\r\n\r\n const content = useMemo(() => {\r\n const rows = [];\r\n const rowClasses = [];\r\n let changesCount = 0;\r\n let fieldsCount = 0;\r\n\r\n const {left, right} = selectedElemLoaded;\r\n const leftContent = left?.content || {};\r\n const rightContent = right.content;\r\n\r\n Object.keys(propertyTransformer).forEach((prop, i, arr) => {\r\n\r\n const tr = propertyTransformer[prop];\r\n const leftVal = tr.transform ? tr.transform(getObjectValue(tr.id, leftContent, null)) : getObjectValue(tr.id, leftContent, null)\r\n const rightVal = tr.transform ? tr.transform(getObjectValue(tr.id, rightContent, null)) : getObjectValue(tr.id, rightContent, null);\r\n const theSame = rightVal === leftVal;\r\n fieldsCount++;\r\n if (left === null || !theSame || showTheSame) {\r\n rows.push([tr.label, leftVal, rightVal])\r\n rowClasses.push(showTheSame && leftVal !== rightVal ? classes.change : undefined)\r\n if (!theSame)\r\n changesCount++;\r\n }\r\n })\r\n return {rows, rowClasses, changesCount, fieldsCount, user: right.user, dateInserted: right.dateInserted}\r\n }, [selectedElemLoaded, showTheSame, propertyTransformer, classes.change])\r\n\r\n\r\n return (\r\n \r\n \r\n <>\r\n {Tr('changing_person')}\r\n {`: ${getUserFullNameWithDeputy(selectedElem.user)}`}\r\n \r\n
\r\n {Tr('last_save_date')}\r\n {`: ${moment(selectedElem.dateInserted).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}`}\r\n {\r\n !!customParamTransformer && Object.keys(customParamTransformer).map(x => (<>\r\n
\r\n {customParamTransformer[x].label}\r\n {`: ${customParamTransformer[x].transform ? customParamTransformer[x].transform(selectedElem.params[x]) : (selectedElem.params[x] || null) }`}\r\n >\r\n ))\r\n\r\n }\r\n >\r\n \r\n \r\n\r\n\r\n \r\n\r\n {!showTheSame && content.changesCount < content.fieldsCount && }\r\n\r\n {\r\n content.changesCount === 0 && {Tr(\"no_changes\")}\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nHistoryElementComparator.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default HistoryElementComparator;\r\n","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations'\r\nimport SingleButton from \"../components/SingleButton\";\r\nimport HistoryList from \"./HistoryList\";\r\nimport HistoryElementComparator from \"./HistoryElementComparator\";\r\n\r\n\r\nfunction HistoryListPopup(\r\n {\r\n onClose,\r\n loadHistoryList,\r\n loadHistoryElement,\r\n propertyTransformer,\r\n customParamTransformer\r\n }) {\r\n\r\n const [historyList, setHistoryList] = useState(null);\r\n const [selectedElem, setSelectedElem] = useState(null);\r\n const [selectedElemLoaded, setSelectedElemLoaded] = useState(null);\r\n\r\n useEffect(() => {\r\n loadHistoryList().then(resp => setHistoryList(resp))\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const clearSelectedElem = () => {\r\n setSelectedElem(null);\r\n setSelectedElemLoaded(null);\r\n }\r\n const selectElem = (elem) => {\r\n setSelectedElem(elem);\r\n loadHistoryElement(elem.identity).then((resp) => setSelectedElemLoaded(resp)).catch((e) => {\r\n console.error(e);\r\n clearSelectedElem();\r\n })\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nHistoryListPopup.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n loadHistoryList: PropTypes.func.isRequired,\r\n loadHistoryElement: PropTypes.func.isRequired,\r\n propertyTransformer: PropTypes.object.isRequired,\r\n customParamTransformer: PropTypes.object\r\n}\r\n\r\nexport default HistoryListPopup;\r\n","import React, {useEffect, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport Loading from \"components/Loading\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport PurchasingGroupStage1BasicDataForm from \"./PurchasingGroupStage1BasicDataForm\";\r\nimport Form from \"components/Form\";\r\nimport VS from 'constants/ValidationShema';\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport Tr from \"translations/Translations\"\r\nimport GridBlock from \"components/GridBlock\";\r\nimport HistoryButton from \"components/button/HistoryButton\";\r\nimport HistoryListPopup from \"components/popup/historyListPopup/HistoryListPopup\";\r\nimport propertyTransformer from \"./history/propertyTransformer\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\n\r\nfunction PurchasingGroupStage1BasicData(\r\n {\r\n panelRef,\r\n validationSection,\r\n purchasingGroupHeader\r\n }) {\r\n\r\n const params = useParams();\r\n const groupId = params.id;\r\n const formId = params.section;\r\n const disabled = !validationSection.editable;\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const [basicData, setBasicData] = useState();\r\n const [history, setHistory] = useState();\r\n\r\n useStepperStateCloseValidator(formId);\r\n\r\n useEffect(() => {\r\n if (!!basicData) {\r\n setTimeout((elem) => scrollTo(elem, 30), 100, panelRef.current);\r\n }\r\n // eslint-disable-next-line\r\n }, [basicData]);\r\n\r\n useEffect(() => {\r\n if (groupId > 0)\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n\r\n PurchasingGroupStage1Service.getBasicData(groupId).then((resp) => {\r\n if (resp)\r\n setBasicData(resp);\r\n else\r\n closeSection(groupId);\r\n });\r\n }, [groupId, validationSection.section]);\r\n\r\n const closeSection = (id) => RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {\r\n id: id,\r\n stage: 1\r\n }))\r\n\r\n const handleSubmit = (values) => {\r\n PurchasingGroupStage1Service.saveBasicData(groupId, values).then((result) => {\r\n if (result) {\r\n enqueueSuccessSnackbar(Tr(\"saved\") + \" \" + validationSection.name);\r\n closeSection(result);\r\n }\r\n })\r\n }\r\n\r\n const loadHistoryList = async () => {\r\n try {\r\n return await PurchasingGroupStage1Service.getArchiveList(groupId, validationSection.section)\r\n } catch (e) {\r\n setHistory(false);\r\n }\r\n }\r\n\r\n const loadHistoryElement = async (archiveId) => {\r\n return await PurchasingGroupStage1Service.getArchiveElement(groupId, validationSection.section, archiveId);\r\n }\r\n\r\n\r\n if (!basicData) return ;\r\n\r\n return (<>\r\n \r\n \r\n\r\n {!!history && setHistory(false)}\r\n propertyTransformer={propertyTransformer}/>}\r\n >)\r\n}\r\n\r\nPurchasingGroupStage1BasicData.propTypes = {}\r\n\r\nexport default PurchasingGroupStage1BasicData;","import React from 'react'\r\nimport { withStyles, Grid } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\twidth: `calc(50% - ${theme.spacing(2)}px)`\r\n\t\t},\r\n\t}\r\n})\r\n\r\nfunction TransferList({\r\n\tclasses,\r\n\tleftColumn,\r\n\trightColumn\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{leftColumn}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{rightColumn}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nTransferList.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tleftColumn: PropTypes.object,\r\n\trightColumn: PropTypes.object,\r\n}\r\n\r\nTransferList.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(TransferList);","import React from 'react'\r\nimport { withStyles, Grid } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t\t'&>*':{\r\n\t\t\twidth: '100%'\r\n\t\t}\r\n\t},\r\n\tgrow: {\r\n\t\tflexGrow: 1,\r\n\t}\r\n})\r\n\r\nfunction Column({\r\n\tclasses,\r\n\tchildren\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t{React.Children.map( children, child => {\r\n\t\t\t\tif(child === null) return child;\r\n\t\t\t\tconst props = child.props;\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{child}\r\n\t\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t})}\r\n\t\t\r\n\t)\r\n}\r\n\r\nColumn.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tchildren: PropTypes.any,\r\n}\r\n\r\nColumn.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(Column);","import React from 'react'\r\nimport { withStyles, Grid, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\theight: theme.components.transferList.row.height,\r\n\t},\r\n\tlabelItem:{\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tchildrenItem:{\r\n\t\tflexGrow: '1'\r\n\t}\r\n})\r\n\r\nfunction Header({\r\n\tclasses,\r\n\tchildren,\r\n\ttitle,\r\n\tclassName,\r\n\tchildClassName,\r\n}) {\r\n\tconst getLabel = () => {\r\n\t\tif(typeof title === 'string'){\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t{title}\r\n\t\t\t\t\r\n\t\t\t)\r\n\t\t}\r\n\t\treturn children;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{getLabel()}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nHeader.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tclasses: PropTypes.any,\r\n\ttitle: PropTypes.oneOfType([\r\n\t\tPropTypes.string,\r\n\t\tPropTypes.func,\r\n\t]),\r\n\tchildren: PropTypes.any,\r\n}\r\n\r\nHeader.defaultProps = {\r\n\tclassName: '',\r\n\tchildClassName: '',\r\n}\r\n\r\nexport default withStyles(style)(Header);","import React from 'react'\r\nimport { withStyles, TextField } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Header from './Header';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t},\r\n})\r\n\r\nfunction SearchHeader({\r\n\tclasses,\r\n\ttitle,\r\n\tplaceholder,\r\n\tonChange,\r\n\tvalue\r\n}) {\r\n\r\n\treturn (\r\n\t\t\r\n\r\n\t)\r\n}\r\n\r\nSearchHeader.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\ttitle: PropTypes.oneOfType([\r\n\t\tPropTypes.string,\r\n\t\tPropTypes.func,\r\n\t]),\r\n\tplaceholder: PropTypes.string,\r\n\tonChange: PropTypes.func,\r\n\tvalue: PropTypes.string,\r\n}\r\n\r\nSearchHeader.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(SearchHeader);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ListUI from '@material-ui/core/List'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tborder: `1px solid ${theme.palette.divider}`,\r\n\t\theight: '100%',\r\n\t\t\"overflow-y\": 'auto',\r\n \t'box-sizing': 'border-box',\r\n \t'max-height': '360px',\r\n\t}\r\n})\r\n\r\nfunction List({\r\n\tclasses,\r\n\tItemComponent,\r\n\titems,\r\n\titemProps,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t{items.map( (item, i) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t})}\r\n\t\t\r\n\t)\r\n}\r\n\r\nList.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tItemComponent: PropTypes.object,\r\n\titems: PropTypes.array,\r\n}\r\n\r\nList.defaultProps = {\r\n\titems: [],\r\n}\r\n\r\nexport default withStyles(style)(List);","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value = Tr(trKey)) => ({\r\n\tlabel: Tr(trKey),\r\n\tvalue,\r\n})\r\n\r\nexport const POSITION_VALUE = {\r\n\t// DEFAULT: '1',\r\n\t// OTHER: '6',\r\n\r\n\tCHAIRMAN: 'CHAIRMAN',\r\n\tVICECHAIRMAN: 'VICECHAIRMAN',\r\n\tSECRETARY: 'SECRETARY',\r\n\tVICESECRETARY: 'VICESECRETARY',\r\n\tSUPERVISOR: 'SUPERVISOR',\r\n\tMEMBER: 'MEMBER',\r\n\tBUYER_SUPERVISOR: 'BUYER_SUPERVISOR',\r\n\tEXPERT: 'EXPERT',\r\n\tOTHER: 'OTHER'\r\n}\r\n\r\nexport default [\r\n\tcreateItem('position_1', POSITION_VALUE.CHAIRMAN),\r\n\tcreateItem('position_2', POSITION_VALUE.VICECHAIRMAN),\r\n\tcreateItem('position_3', POSITION_VALUE.SECRETARY),\r\n\tcreateItem('position_3a', POSITION_VALUE.VICESECRETARY),\r\n\tcreateItem('position_3b', POSITION_VALUE.SUPERVISOR),\r\n\tcreateItem('position_4', POSITION_VALUE.MEMBER),\r\n\tcreateItem('position_4a', POSITION_VALUE.BUYER_SUPERVISOR),\r\n\tcreateItem('position_5', POSITION_VALUE.EXPERT),\r\n\tcreateItem('position_6', POSITION_VALUE.OTHER),\r\n]","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value = Tr(trKey)) => ({\r\n\tlabel: Tr(trKey),\r\n\tvalue,\r\n})\r\n\r\nexport const POSITION_VALUE = {\r\n\t// DEFAULT: '1',\r\n\t// OTHER: '6',\r\n\tCHAIRMAN: 'CHAIRMAN',\r\n\tEXPERT: 'EXPERT',\r\n\tOTHER: 'OTHER'\r\n}\r\n\r\nexport default [\r\n\tcreateItem('pg_position_1', POSITION_VALUE.CHAIRMAN),\r\n\tcreateItem('pg_position_5', POSITION_VALUE.EXPERT),\r\n\tcreateItem('position_6', POSITION_VALUE.OTHER),\r\n]","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport IconButton from './IconButton';\r\nimport AddIcon from '@material-ui/icons/AddBoxOutlined'\r\n\r\nfunction IconAddButton({\r\n\ttooltip = Tr('add'),\r\n\t...props\r\n}) {\r\n\treturn \r\n}\r\n\r\nexport default IconAddButton;","export default {\r\n\tSYSTEM_USER: 'SYSTEM_USER',\r\n\tEXTERNAL_USER: 'EXTERNAL_USER',\r\n}","import React from 'react'\r\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconHighlightOffButton(\r\n {\r\n tooltip = Tr('delete'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconHighlightOffButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconHighlightOffButton;","import React from 'react'\r\nimport {ListItem, ListItemSecondaryAction, ListItemText, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {POSITION_VALUE as demandPositionValue} from 'constants/PositionItems'\r\nimport {POSITION_VALUE as pgPositionValue} from 'constants/PurchasingGroupPositionItems'\r\nimport Tr from 'translations/Translations';\r\nimport IconAddButton from 'components/button/IconAddButton';\r\nimport CommissionUserType from \"constants/CommissionUserType\";\r\nimport reduxStore from \"redux/store\";\r\nimport WorkableIconHighlightOffButton from \"../../../../button/WorkableIconHighlightOffButton\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n iconButton: {\r\n padding: theme.spacing(1) / 2,\r\n },\r\n email: {\r\n fontStyle: 'italic',\r\n fontWeight: theme.typography.fontWeightBold,\r\n fontSize: '0.75rem'\r\n }\r\n})\r\n\r\nfunction FullNameItem(\r\n {\r\n classes,\r\n marked = false,\r\n formikProps,\r\n addedId,\r\n item,\r\n markHistorical\r\n }) {\r\n const elementsCount = getObjectValue(addedId, formikProps.values, []).length;\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const addPerson = () => {\r\n const {resources} = reduxStore.getState();\r\n const pgMode = !!resources.purchasingGroupHeader;\r\n\r\n const nextId = `${addedId}.${elementsCount}`\r\n formikProps.setFieldValue(nextId, {\r\n ...item,\r\n role: pgMode ? (item.userType === CommissionUserType.EXTERNAL_USER ? pgPositionValue.OTHER : pgPositionValue.CHAIRMAN) : demandPositionValue.MEMBER,\r\n otherRole: \"\"\r\n })\r\n }\r\n const externalUser = item.userType === CommissionUserType.EXTERNAL_USER;\r\n const getPrimaryText = () => (<>\r\n {item.firstName} {item.lastName}\r\n {externalUser && {' (' + (item.email ? item.email : Tr('email_empty')) + ')'}}\r\n >)\r\n\r\n const secondaryText = externalUser ? Tr('external') : item.organizationName;\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n (!!markHistorical && editable && externalUser) &&\r\n markHistorical(item.id)}\r\n disabled={!editable}\r\n />\r\n }\r\n\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nFullNameItem.propTypes = {\r\n classes: PropTypes.any,\r\n name: PropTypes.string,\r\n}\r\n\r\nFullNameItem.defaultProps = {}\r\n\r\nexport default withStyles(style)(FullNameItem);","import React from 'react'\r\nimport {makeStyles, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n display: 'flex'\r\n },\r\n icon: {\r\n marginRight: theme.spacing(1)\r\n }\r\n}));\r\n\r\nfunction TypographyWithIcon(\r\n {\r\n className,\r\n children,\r\n Icon,\r\n ...other\r\n }) {\r\n\r\n\r\n const classes = useStyles();\r\n return (\r\n \r\n {!!Icon && }\r\n {children}\r\n \r\n )\r\n}\r\n\r\nTypographyWithIcon.propTypes = {\r\n classes: PropTypes.any,\r\n variant: PropTypes.string\r\n}\r\n\r\nexport default TypographyWithIcon;","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport GridBlock from 'components/GridBlock';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport * as Yup from 'yup';\r\nimport VS from 'constants/ValidationShema';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport InputLimits from \"constants/InputLimits\";\r\nimport Loading from \"../../Loading\";\r\nimport TypographyWithIcon from \"../../TypographyWithIcon\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\n\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\twidth: '100%'\r\n\t\t}\r\n\t},\r\n\tactions:{\r\n\t\tmarginTop: theme.spacing(),\r\n\t}\r\n})\r\nconst limits = InputLimits.procedure.contractor;\r\nfunction PopupForm({\r\n\tclasses,\r\n\tonSubmit,\r\n\tonClose,\r\n\tformSubmit,\r\n\tuserList,\r\n\terror,\r\n\tworking\r\n}) {\r\n\tconst formId = useId();\r\n\r\n\tconst handleSubmit = () => {\r\n\t\tformSubmit[formId]()\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nPopupForm.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tformSubmit: state.form\r\n}), {\r\n\r\n\t})(withStyles(style)(PopupForm));","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport reduxStore from 'redux/store'\r\nimport {clearResource, setResource, setSaveStatusDialog, setSaveStatusError, setSaveStatusLoading} from 'redux/actions'\r\nimport validateSection from './helpers/validateSection';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport Tr from 'translations/Translations';\r\nimport objectExtension from 'libs/objectExtension';\r\nimport CommissionUserType from \"../constants/CommissionUserType\";\r\n\r\nconst COMMISSION_USER_LIST_RESOURCE_ID = 'commissionUserList';\r\nconst COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID = 'commissionUserListAvailable';\r\nconst COMMISSION_ESTABLISHMENT_RESOURCE_ID = 'commissionEstablishmentDate';\r\nconst getUsers = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.COMMISSION(demandId))\r\n reduxStore.dispatch(setResource(COMMISSION_USER_LIST_RESOURCE_ID, res.users))\r\n reduxStore.dispatch(setResource(COMMISSION_ESTABLISHMENT_RESOURCE_ID, res.establishmentDate))\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getAvailableUsers = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.COMMISSION_AVAILABLE(demandId))\r\n reduxStore.dispatch(setResource(COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID, res))\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst _save = async (url, data) => {\r\n const {resources} = reduxStore.getState()\r\n const {commissionUserList} = resources;\r\n const diff = objectExtension.diff(data, {users: commissionUserList}, true);\r\n\r\n if (diff === null) return null;\r\n\r\n try {\r\n return await RestRequestPOST(url, data)\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst saveUserList = async (demandId, data) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n const res = await _save(Endpoints.COMMISSION(demandId), data)\r\n if (res === null) {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n } else if (res.success) {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n await validateSection(DemandValidation.COMMISSION, demandId);\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(Tr(res.errors.users)));\r\n await validateSection(DemandValidation.COMMISSION, demandId, false);\r\n }\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst addExternal = async (values) => {\r\n return await RestRequestPOST(Endpoints.COMMISSION_EXTERNAL, values);\r\n}\r\n\r\nconst getHistory = async (demandId) => {\r\n try {\r\n return await RestRequestGET(Endpoints.COMMISSION_HISTORY(demandId))\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst deleteCommissionMember = async (demandId, id) => {\r\n try {\r\n await RestRequestDELETE(Endpoints.COMMISSION_DELETE_COMMISION_MEMBER(demandId, id))\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst markHistorical = async (demandId, id) => {\r\n try {\r\n await RestRequestPUT(Endpoints.COMMISSION_MARK_HISTORICAL_MEMBER(demandId, id))\r\n const {resources} = reduxStore.getState();\r\n reduxStore.dispatch(setResource(COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID,\r\n resources[COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID].filter(x => !(x.userType === CommissionUserType.EXTERNAL_USER && x.id === id))))\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst validate = async (demandId) => {\r\n return RestRequestGET(Endpoints.COMMISSION_VALIDATE(demandId));\r\n}\r\nconst clearResources = async (id) => {\r\n reduxStore.dispatch(clearResource(id));\r\n}\r\n\r\nconst checkForDraft = async (id) => {\r\n return await RestRequestGET(Endpoints.COMMISSION_AUTOSAVE_CHECK(id));\r\n}\r\n\r\nconst loadDraft = async (id) => {\r\n const res = await RestRequestGET(Endpoints.COMMISSION_AUTOSAVE(id));\r\n reduxStore.dispatch(setResource(COMMISSION_USER_LIST_RESOURCE_ID, res.result.users));\r\n reduxStore.dispatch(setResource(COMMISSION_ESTABLISHMENT_RESOURCE_ID, res.result.establishmentDate));\r\n return res;\r\n}\r\n\r\nconst saveDraft = async (id, formValues) => {\r\n await RestRequestPOST(Endpoints.COMMISSION_AUTOSAVE(id), formValues)\r\n}\r\n\r\nconst deleteDraft = async (id) => {\r\n await RestRequestDELETE(Endpoints.COMMISSION_AUTOSAVE(id));\r\n}\r\n\r\nexport default {\r\n saveUserList,\r\n addExternal,\r\n getHistory,\r\n getUsers,\r\n getAvailableUsers,\r\n deleteCommissionMember,\r\n markHistorical,\r\n validate,\r\n clearResources,\r\n checkForDraft,\r\n loadDraft,\r\n saveDraft,\r\n deleteDraft,\r\n COMMISSION_USER_LIST_RESOURCE_ID,\r\n COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID,\r\n COMMISSION_ESTABLISHMENT_RESOURCE_ID\r\n // autoSave,\r\n // autoSaveCheck,\r\n // autoSaveDelete,\r\n // autoSaveLoad,\r\n // restoreAutosave,\r\n}","import React, {useState} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport PopupForm from './PopupForm';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {POSITION_VALUE as demandPositionValue} from 'constants/PositionItems'\r\nimport {POSITION_VALUE as pgPositionValue} from \"constants/PurchasingGroupPositionItems\";\r\nimport CommissionService from 'services/CommissionService';\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport reduxStore from \"redux/store\";\r\nimport {setResource} from \"../../../redux/actions\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tactions: {\r\n\t\tmarginTop: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction AddCandidate({\r\n\tclasses,\r\n\tonClose = () => { },\r\n\tformikProps\r\n}) {\r\n\r\n\tconst elementsCount = getObjectValue(\"users\", formikProps.values, []).length;\r\n\tconst [working, setWorking] = useState(false);\r\n\tconst [error, setError] = useState(null);\r\n\r\n\tconst handleAdd = (values) => {\r\n\t\tsetError(null);\r\n\t\tsetWorking(true);\r\n\t\tCommissionService.addExternal(values).then((res) => {\r\n\t\t\tif(isResponseValid(res, setError)) {\r\n\t\t\t\tconst {resources} = reduxStore.getState();\r\n\t\t\t\tconst pgMode = !!resources.purchasingGroupHeader;\r\n\r\n\t\t\t\tformikProps.setFieldValue(`users.${elementsCount}`, {\r\n\t\t\t\t\t...res,\r\n\t\t\t\t\trole: pgMode ? pgPositionValue.OTHER : demandPositionValue.MEMBER,\r\n\t\t\t\t})\r\n\r\n\t\t\t\tif(!pgMode) {\r\n\t\t\t\t\tconst newList = [...resources[CommissionService.COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID], res];\r\n\t\t\t\t\treduxStore.dispatch(setResource(CommissionService.COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID, newList))\r\n\t\t\t\t}\r\n\r\n\t\t\t\tonClose();\r\n\t\t\t} else {\r\n\t\t\t\tsetWorking(false);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nAddCandidate.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(AddCandidate);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\theight: theme.components.transferList.row.height,\r\n\t}\r\n})\r\n\r\nfunction EmptyOptions({\r\n\tclasses,\r\n\tchildren,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t
\r\n\t)\r\n}\r\n\r\nEmptyOptions.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tchildren: PropTypes.any,\r\n}\r\n\r\nEmptyOptions.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(EmptyOptions);","import React, {useState, useEffect} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Column from 'components/complex/transferList/Column';\r\nimport SearchHeader from 'components/complex/transferList/headers/SearchHeader';\r\nimport List from 'components/complex/transferList/List';\r\nimport FullNameItem from './listItems/FullNameItem';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport AddIcon from '@material-ui/icons/AddBoxOutlined'\r\nimport AddCandidate from 'components/popup/addCandidate/AddCandidate';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport EmptyOptions from 'components/complex/transferList/options/EmptyOptions';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n button: {\r\n marginTop: theme.spacing(1)\r\n }\r\n});\r\n\r\nfunction CandidateColumn({\r\n classes,\r\n items,\r\n formikProps,\r\n addedId,\r\n markHistorical\r\n }) {\r\n\r\n const [filteredItems, setFilteredItems] = useState([]);\r\n const [searchFilter, setSearchFilter] = useState('');\r\n const [addPopup, setAddPopup] = useState(false);\r\n\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const addedItems = getObjectValue(addedId, formikProps.values, []);\r\n\r\n useEffect(() => {\r\n\r\n let filter = items.filter(x => {\r\n const isAdded = addedItems.findIndex(z => z.id === x.id);\r\n if (isAdded >= 0) return false;\r\n\r\n let search = searchFilter.trim().toLowerCase();\r\n if (search.length <= 0) return true;\r\n\r\n let name = `${x.firstName} ${x.lastName}`;\r\n name = name.toLowerCase();\r\n return name.includes(search)\r\n });\r\n\r\n filter.sort((a, b) => a.firstName.localeCompare(b.firstName));\r\n\r\n setFilteredItems(filter)\r\n // eslint-disable-next-line\r\n }, [searchFilter, addedItems.length, items]);\r\n\r\n const handleSearchChange = (event) => {\r\n setSearchFilter(event.target.value);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n \r\n {addPopup && setAddPopup(false)}\r\n formikProps={formikProps}\r\n />}\r\n \r\n )\r\n}\r\n\r\nCandidateColumn.propTypes = {\r\n classes: PropTypes.any,\r\n items: PropTypes.array,\r\n};\r\n\r\nCandidateColumn.defaultProps = {};\r\n\r\nexport default withStyles(style)(CandidateColumn);","import React, {useEffect} from 'react'\r\nimport {IconButton, InputAdornment, ListItem, ListItemSecondaryAction, ListItemText, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport positionsItems, {POSITION_VALUE} from 'constants/PositionItems'\r\nimport pgPositionsItems from 'constants/PurchasingGroupPositionItems'\r\nimport GridBlock from 'components/GridBlock';\r\nimport Select from 'components/Select';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport TextInput from 'components/TextInput';\r\nimport CloseIcon from '@material-ui/icons/Close'\r\nimport removeFormikListElement from 'libs/removeFormikListElement';\r\nimport Tr from 'translations/Translations';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport CommissionUserType from \"constants/CommissionUserType\";\r\nimport {connect} from \"react-redux\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n paddingRight: theme.spacing(2),\r\n },\r\n primaryAction: {\r\n width: \"calc(100% - 260px)\",\r\n },\r\n secondaryAction: {\r\n width: 250,\r\n },\r\n iconButton: {\r\n padding: theme.spacing(1) / 2,\r\n },\r\n grid: {\r\n '&>*:first-child': {\r\n flexGrow: 1\r\n }\r\n },\r\n email: {\r\n fontStyle: 'italic',\r\n fontWeight: theme.typography.fontWeightBold,\r\n fontSize: '0.75rem'\r\n }\r\n})\r\n\r\nfunction FullNamePositionItem(\r\n {\r\n classes,\r\n formikProps,\r\n index,\r\n id,\r\n item,\r\n purchasingGroupHeader\r\n }) {\r\n const selectTextId = `${id}.${index}.otherRole`\r\n const otherValue = getObjectValue(selectTextId, formikProps.values, \"\");\r\n\r\n useEffect(() => {\r\n if (role === POSITION_VALUE.OTHER) formikProps.setFieldValue(selectTextId, otherValue)\r\n // eslint-disable-next-line\r\n }, [role])\r\n\r\n const selectId = `${id}.${index}.role`\r\n const otherRole = `${id}.${index}.otherRole`\r\n const role = getObjectValue(selectId, formikProps.values);\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const closeTextInput = () => {\r\n formikProps.setFieldValue(selectId, POSITION_VALUE.CHAIRMAN)\r\n formikProps.setFieldValue(otherRole, undefined)\r\n }\r\n\r\n const handleDelete = () => {\r\n removeFormikListElement(formikProps, id, index)\r\n }\r\n const externalUser = item.userType === CommissionUserType.EXTERNAL_USER;\r\n const getPrimaryText = () => (<>\r\n {item.firstName} {item.lastName}\r\n {externalUser &&\r\n {' (' + (item.email ? item.email : Tr('email_empty')) + ')'}}\r\n >)\r\n\r\n const secondaryText = externalUser ? Tr('external') : item.organizationName;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {role === POSITION_VALUE.OTHER ?\r\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\nFullNamePositionItem.propTypes = {\r\n classes: PropTypes.any,\r\n name: PropTypes.string,\r\n}\r\n\r\nFullNamePositionItem.defaultProps = {}\r\n\r\nexport default connect((state) => ({\r\n purchasingGroupHeader: state.resources.purchasingGroupHeader\r\n}), {\r\n\r\n})(withStyles(style)(FullNamePositionItem));","import React, {useEffect, useState} from 'react'\r\nimport ChangeHistory from 'components/popup/changeHistory/ChangeHistory';\r\nimport PropTypes from 'prop-types';\r\nimport EmptyOptions from 'components/complex/transferList/options/EmptyOptions';\r\nimport Column from 'components/complex/transferList/Column';\r\nimport List from 'components/complex/transferList/List';\r\nimport FullNamePositionItem from './listItems/FullNamePositionItem';\r\nimport Tr from 'translations/Translations';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport Header from 'components/complex/transferList/headers/Header';\r\nimport HistoryButton from 'components/button/HistoryButton';\r\nimport GridBlock from 'components/GridBlock';\r\nimport DatePicker from \"components/DatePicker\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\n\r\nconst style = theme => ({\r\n helperTextHidden: {\r\n '&>*.MuiFormHelperText-root': {\r\n display: \"none\"\r\n }\r\n }\r\n})\r\n\r\nfunction CommissionColumn(\r\n {\r\n doLoadHistory,\r\n formikProps,\r\n id,\r\n establishmentId,\r\n classes,\r\n }) {\r\n const [history, setHistory] = useState(false);\r\n const [commissionHistoryList, setCommissionHistoryList] = useState(null);\r\n\r\n useEffect(() => {\r\n if (history) {\r\n doLoadHistory().then((resp => setCommissionHistoryList(resp)));\r\n } else {\r\n setCommissionHistoryList(null)\r\n }\r\n }, [history, doLoadHistory]);\r\n\r\n let items = getObjectValue(id, formikProps.values, [])\r\n\r\n items = items.sort((a, b) => a.firstName.localeCompare(b.firstName))\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n !!doLoadHistory && setHistory(true)}>\r\n {Tr('history')}\r\n \r\n }\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n setHistory(false)}/>\r\n \r\n )\r\n}\r\n\r\nCommissionColumn.propTypes = {\r\n classes: PropTypes.any,\r\n items: PropTypes.array,\r\n}\r\n\r\nCommissionColumn.defaultProps = {}\r\n\r\nexport default withStyles(style)(CommissionColumn);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport TransferListBase from 'components/complex/transferList/TransferList'\r\nimport CandidateColumn from './CandidateColumn';\r\nimport CommissionColumn from './CommissionColumn';\r\n\r\n\r\nfunction TransferList(\r\n {\r\n formikProps,\r\n userListAvailable,\r\n doLoadHistory,\r\n markHistorical\r\n }) {\r\n\r\n return (\r\n \r\n }\r\n rightColumn={\r\n \r\n }\r\n />\r\n )\r\n}\r\n\r\nTransferList.propTypes = {\r\n classes: PropTypes.any,\r\n markHistorical: PropTypes.func\r\n};\r\n\r\nexport default TransferList;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport TransferList from './transferList/TransferList';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup'\r\nimport ValidationShema from 'constants/ValidationShema';\r\nimport {POSITION_VALUE} from 'constants/PositionItems'\r\nimport Loading from \"components/Loading\";\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\n\r\nfunction CommissionForm(\r\n {\r\n formId,\r\n demandId,\r\n commissionUserList,\r\n userListAvailable,\r\n establishmentDate,\r\n handleSubmit,\r\n afterSubmitFunc = () => {\r\n },\r\n editable,\r\n doLoadHistory,\r\n markHistorical,\r\n saveDraftFunc,\r\n autoSaveFormDraftActive\r\n }) {\r\n\r\n const validationSchema = () => {\r\n return Yup.object().shape({\r\n users: Yup.array().of(\r\n Yup.lazy((value) => {\r\n if (value.role === POSITION_VALUE.OTHER) {\r\n return Yup.object().shape({\r\n otherRole: ValidationShema.string().nullable()\r\n })\r\n }\r\n return Yup.object().shape({})\r\n })\r\n ),\r\n establishmentDate: ValidationShema.any()\r\n })\r\n }\r\n\r\n const getInitValues = () => {\r\n return {\r\n _editable: editable,\r\n users: [...commissionUserList],\r\n establishmentDate: establishmentDate,\r\n }\r\n }\r\n\r\n if (!userListAvailable || !commissionUserList) return \r\n return (\r\n \r\n )\r\n}\r\n\r\nCommissionForm.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default CommissionForm;\r\n","import React, {useCallback, useEffect, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport Tr from \"translations/Translations\"\r\nimport CommissionForm from \"components/complex/commissionForm/CommissionForm\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\n\r\nfunction PurchasingGroupStage1Commission(\r\n {\r\n panelRef,\r\n validationSection\r\n }) {\r\n\r\n const params = useParams();\r\n const groupId = params.id;\r\n const formId = params.section;\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const [commission, setCommission] = useState({});\r\n\r\n useStepperStateCloseValidator(formId);\r\n\r\n const closeSection = useCallback(() => RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {\r\n id: groupId,\r\n stage: 1\r\n })), [groupId]);\r\n\r\n useEffect(() => {\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n PurchasingGroupStage1Service.getCommission(groupId).then((resp) => {\r\n if (resp)\r\n setCommission(resp)\r\n else\r\n closeSection();\r\n });\r\n }, [groupId, closeSection, validationSection.section]);\r\n\r\n\r\n const handleSubmit = (values) => {\r\n PurchasingGroupStage1Service.saveCommission(groupId, values).then(() => {\r\n enqueueSuccessSnackbar(Tr(\"saved\") + \" \" + validationSection.name);\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n closeSection();\r\n })\r\n }\r\n\r\n const doLoadHistory = async () => {\r\n return await PurchasingGroupStage1Service.getCommissionHistory(groupId);\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nPurchasingGroupStage1Commission.propTypes = {}\r\n\r\nexport default PurchasingGroupStage1Commission;","import React, {useEffect} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {KeyboardDateTimePicker} from '@material-ui/pickers';\r\nimport Tr from 'translations/Translations';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport moment from \"libs/moment\";\r\n\r\nfunction DateTimePicker(\r\n {\r\n formikProps,\r\n id,\r\n label,\r\n minDate,\r\n maxDate,\r\n required = false,\r\n onChange = () => {\r\n },\r\n disabled = false,\r\n className,\r\n skipCheckTouched\r\n }) {\r\n\r\n const editable = disabled ? false : getObjectValue('_editable', formikProps.values, true);\r\n const errorValue = getObjectValue(id, formikProps.errors, null);\r\n const value = getObjectValue(id, formikProps.values, null);\r\n const touched = getObjectValue(id, formikProps.touched, !!skipCheckTouched);\r\n\r\n useEffect(()=> {\r\n if( typeof value === 'string' || value instanceof String) {\r\n const momentVal = moment(value);\r\n if(momentVal.isValid()) {\r\n formikProps.setFieldValue(id, momentVal);\r\n formikProps.validateField(id);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n },[])\r\n\r\n const handleChange = (date) => {\r\n const value = date ? date : null;\r\n formikProps.setFieldValue(id, value);\r\n formikProps.setFieldTouched(id, true);\r\n setTimeout((id) => {try {formikProps.validateField(id)} catch (e){}}, 1, id);\r\n onChange(value ? value.clone() : null)\r\n };\r\n\r\n const handleError = (err) => {\r\n if (!Boolean(errorValue)) {\r\n if (errorValue !== err && err.length > 0) {\r\n formikProps.setFieldError(id, err)\r\n }\r\n }\r\n };\r\n const isError = editable && !!errorValue && Boolean(touched);\r\n const helperText = errorValue || ' ';\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nDateTimePicker.propTypes = {\r\n classes: PropTypes.any,\r\n required: PropTypes.bool\r\n}\r\n\r\nexport default DateTimePicker;","import React from 'react'\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PropTypes from \"prop-types\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n picker: {\r\n width: 400,\r\n marginRight: theme.spacing(3)\r\n },\r\n stageHead: {\r\n marginTop: theme.spacing(4)\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage1ScheduleForm(\r\n {\r\n formikProps,\r\n schedule,\r\n editable\r\n }) {\r\n const classes = useStyle();\r\n\r\n return (\r\n\r\n {Tr('purchasing_group_joining_stage')}\r\n \r\n \r\n \r\n \r\n\r\n {Tr('purchasing_group_opinion_stage')}\r\n \r\n \r\n \r\n \r\n\r\n {Tr('purchasing_group_submission_stage')}\r\n \r\n \r\n \r\n \r\n\r\n )\r\n}\r\n\r\nPurchasingGroupStage1ScheduleForm.propTypes = {\r\n schedule: PropTypes.shape({\r\n joiningStartDateEditable: PropTypes.bool.isRequired,\r\n joiningEndDateEditable: PropTypes.bool.isRequired,\r\n opinionStartDateEditable: PropTypes.bool.isRequired,\r\n opinionEndDateEditable: PropTypes.bool.isRequired,\r\n submissionStartDateEditable: PropTypes.bool.isRequired,\r\n submissionEndDateEditable: PropTypes.bool.isRequired,\r\n }).isRequired\r\n}\r\n\r\nexport default PurchasingGroupStage1ScheduleForm;","import moment from \"moment\";\r\n\r\nconst scheduleReloadTimeout = (schedule, serverTime) => {\r\n\r\n let reloadTimeout = null;\r\n const nowServerTime = moment(serverTime);\r\n const {\r\n joiningStartDate,\r\n joiningEndDate,\r\n opinionStartDate,\r\n opinionEndDate,\r\n submissionStartDate,\r\n submissionEndDate,\r\n swzOpinionStartDate,\r\n swzOpinionEndDate,\r\n collectingDataStartDate,\r\n collectingDataEndDate\r\n } = schedule;\r\n const dates = [joiningStartDate, joiningEndDate, opinionStartDate, opinionEndDate, submissionStartDate, submissionEndDate];\r\n for (let date of dates) {\r\n if (date && moment(date).isAfter(nowServerTime)) {\r\n reloadTimeout = moment(date).diff(nowServerTime) + 500;\r\n break;\r\n }\r\n }\r\n\r\n if(!reloadTimeout) {\r\n const dates2 = [swzOpinionStartDate, swzOpinionEndDate, collectingDataStartDate, collectingDataEndDate];\r\n for (let date of dates2) {\r\n if (date && moment(date).isAfter(nowServerTime)) {\r\n if(!reloadTimeout || (moment(date).diff(nowServerTime) + 500) < reloadTimeout) {\r\n reloadTimeout = moment(date).diff(nowServerTime) + 500;\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n if (reloadTimeout && reloadTimeout > 3600000) {\r\n reloadTimeout = null;\r\n }\r\n return reloadTimeout;\r\n\r\n}\r\n\r\nexport default scheduleReloadTimeout;","import React, {useCallback, useEffect, useRef, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport Tr from \"translations/Translations\"\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport Loading from \"components/Loading\";\r\nimport Form from \"components/Form\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport PurchasingGroupStage1ScheduleForm from \"./PurchasingGroupStage1ScheduleForm\";\r\nimport moment from \"moment\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport scheduleReloadTimeout from \"../../../utils/scheduleReloadTimeout\";\r\nimport {PurchasingGroupStageSections} from \"../../../constants/PurchasingGroupStageSections\";\r\n\r\nfunction PurchasingGroupStage1Schedule(\r\n {\r\n panelRef,\r\n validationSection\r\n }) {\r\n\r\n const params = useParams();\r\n const groupId = params.id;\r\n const formId = params.section;\r\n const editable = validationSection.editable;\r\n const {enqueueSuccessSnackbar, enqueueErrorSnackbar} = useSnackbar();\r\n const [schedule, setSchedule] = useState(null);\r\n const timeout = useRef(0);\r\n\r\n useStepperStateCloseValidator(formId);\r\n\r\n const closeSection = useCallback(() => RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {\r\n id: groupId,\r\n stage: 1\r\n })), [groupId]);\r\n\r\n const getSchedule = () => {\r\n setSchedule(null);\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n PurchasingGroupStage1Service.getSchedule(groupId).then((resp) => {\r\n if (resp) {\r\n setSchedule(resp);\r\n let reloadTimeout = scheduleReloadTimeout(resp.schedule, resp.serverTime);\r\n if (reloadTimeout) {\r\n timeout.current = setTimeout(() => {\r\n getSchedule();\r\n }, reloadTimeout)\r\n }\r\n\r\n } else\r\n closeSection();\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n getSchedule();\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section);\r\n return () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n\r\n const handleSubmit = (values) => {\r\n PurchasingGroupStage1Service.saveSchedule(groupId, values).then((resp) => {\r\n if (resp && resp.success === false) {\r\n Object.keys(resp.errors).forEach((field) => {\r\n let error;\r\n switch (field) {\r\n case \"joiningStartDate\":\r\n error = `${Tr('purchasing_group_joining_stage')} ${Tr('purchase_group_stage_end_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"joiningEndDate\":\r\n error = `${Tr('purchasing_group_joining_stage')}: ${Tr('purchase_group_stage_start_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"opinionStartDate\":\r\n error = `${Tr('purchasing_group_opinion_stage')}: ${Tr('purchase_group_stage_end_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"opinionEndDate\":\r\n error = `${Tr('purchasing_group_opinion_stage')}: ${Tr('purchase_group_stage_start_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"submissionStartDate\":\r\n error = `${Tr('purchasing_group_submission_stage')}: ${Tr('purchase_group_stage_start_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"submissionEndDate\":\r\n error = `${Tr('purchasing_group_submission_stage')}: ${Tr('purchase_group_stage_start_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n default:\r\n error = `${resp.errors[field].join(\", \")}`\r\n }\r\n enqueueErrorSnackbar(error)\r\n })\r\n } else if(resp) {\r\n enqueueSuccessSnackbar(Tr(\"saved\") + \" \" + validationSection.name);\r\n PurchasingGroupSectionService.getSections(groupId, [validationSection.section, PurchasingGroupStageSections.STAGE_1_SECTION])\r\n closeSection();\r\n }\r\n }).catch((e) => enqueueErrorSnackbar(e.message))\r\n }\r\n\r\n if (!schedule) return \r\n\r\n return (<>\r\n \r\n \r\n >\r\n )\r\n}\r\n\r\nPurchasingGroupStage1Schedule.propTypes = {}\r\n\r\nexport default PurchasingGroupStage1Schedule;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport {TextField} from \"@material-ui/core\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport clsx from \"clsx\";\r\nimport {useDidUpdateEffect} from \"../hooks/useDidUpdateEffect\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n\r\n '&>*:not(:first-child):not(:last-child)': {\r\n marginLeft: theme.spacing(4),\r\n }\r\n },\r\n search: {\r\n width: 400,\r\n }\r\n}));\r\n\r\nconst EMPTY_SEARCH_OBJECT = {search: ''}\r\nconst MAX_SEARCH_LENGTH = 100;\r\n\r\nfunction BasicSearch(\r\n {\r\n className,\r\n label,\r\n searchInProgress,\r\n doSearch,\r\n clearSearch\r\n }) {\r\n\r\n\r\n const getInitValue = () => {\r\n return {...EMPTY_SEARCH_OBJECT};\r\n }\r\n\r\n const classes = useStyle();\r\n const [value, setValue] = useState(getInitValue());\r\n const [submitState, setSubmitState] = useState(0);\r\n\r\n useEffect(() => {\r\n if (submitState && !searchInProgress) {\r\n const valueFiltered = Object.keys(value)\r\n .filter((k) => value[k])\r\n .reduce((a, k) => ({...a, [k]: value[k]}), {});\r\n doSearch(valueFiltered);\r\n }\r\n // eslint-disable-next-line\r\n }, [submitState]);\r\n\r\n useDidUpdateEffect(() => {\r\n doClearSearch();\r\n },[clearSearch]);\r\n\r\n const handleChange = (id, e) => {\r\n setValue({...value, [id]: e.target.value});\r\n }\r\n\r\n const handleSubmit = () => {\r\n setSubmitState(x => x + 1)\r\n };\r\n\r\n const doClearSearch = () => {\r\n setValue(EMPTY_SEARCH_OBJECT);\r\n handleSubmit()\r\n }\r\n\r\n const handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n handleSubmit()\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n\r\n handleChange('search', e)}\r\n onKeyUp={handleKeyPress}\r\n fullWidth\r\n value={value.search}\r\n inputProps={{maxLength: MAX_SEARCH_LENGTH}}\r\n />\r\n\r\n \r\n \r\n \r\n
\r\n \r\n >\r\n )\r\n}\r\n\r\nBasicSearch.propTypes = {\r\n classes: PropTypes.any,\r\n className: PropTypes.string,\r\n label: PropTypes.string,\r\n searchInProgress:PropTypes.bool,\r\n doSearch: PropTypes.func.isRequired,\r\n clearSearch: PropTypes.any\r\n}\r\n\r\n\r\nexport default BasicSearch;","const iconWorksReducer = (state, action) => {\r\n if (Object.keys(state).indexOf(action.type) < 0)\r\n throw new Error(`Unsupported type: '${action.type}, did you add it in initial state?`);\r\n let newState = {...state, [action.type]: action.works};\r\n const index = Object.keys(newState).findIndex(x => x !== 'anyWorks' && newState[x] === true);\r\n newState.anyWorks = index > -1;\r\n return newState;\r\n}\r\nexport default iconWorksReducer;","import reduxStore from 'redux/store'\r\nimport {setConfirmNotifications} from \"../redux/actions\";\r\n\r\nexport const simpleConfirm = (confirmText, onConfirm, onCancel) =>\r\n confirmComplex({confirmText, onConfirm, onCancel})\r\n\r\nexport const simpleConfirmNoTranslate = (confirmText, onConfirm, onCancel) =>\r\n confirmComplex({confirmText, onConfirm, onCancel, translateConfirmTexts: false})\r\n\r\nexport const confirmComplex = ({onConfirm, onCancel, confirmText, confirmText2, labelConfirm, labelCancel, translateConfirmTexts}) => {\r\n reduxStore.dispatch(setConfirmNotifications({\r\n confirmText,\r\n confirmText2,\r\n onConfirm,\r\n onCancel,\r\n labelConfirm,\r\n labelCancel,\r\n translateConfirmTexts\r\n }))\r\n}\r\n\r\n","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\n\r\nfunction WorkableIconMailButton(\r\n {\r\n tooltip = Tr('send'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconMailButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconMailButton;","import React, {useReducer, useState} from 'react'\r\nimport {Box, Tooltip, Typography} from '@material-ui/core';\r\nimport GridBlock from 'components/GridBlock';\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport clsx from 'clsx';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport WorkableIconConfirmButton from \"components/button/WorkableIconConfirmButton\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport Form from \"components/Form\";\r\nimport VS from 'constants/ValidationShema';\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport {confirmComplex, simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport WarningIcon from \"@material-ui/icons/Warning\";\r\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\r\nimport RestoreIcon from '@material-ui/icons/Restore';\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport {PurchasingGroupStageSections} from \"../../../../constants/PurchasingGroupStageSections\";\r\nimport WorkableIconMailButton from \"components/button/WorkableIconMailButton\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport WorkableIconEditButton from \"../../../../../../../../components/button/WorkableIconEditButton\";\r\n\r\nconst limits = InputLimits.procedure.organization;\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n '&>*:nth-child(2)': {\r\n flexGrow: 1,\r\n }\r\n },\r\n rootEdit: {\r\n '&>*:nth-child(2)': {\r\n flexGrow: 1,\r\n paddingLeft: theme.spacing(2),\r\n }\r\n },\r\n editInput: {},\r\n marginLeft: {\r\n marginLeft: theme.spacing(2),\r\n },\r\n title: {\r\n marginLeft: theme.spacing()\r\n },\r\n rotate: {\r\n transform: 'rotate(180deg)'\r\n },\r\n cursorPointer: {\r\n cursor: 'pointer'\r\n },\r\n buttonReject: {\r\n marginTop: theme.spacing()\r\n },\r\n rejected: {\r\n color: theme.palette.text.disabled\r\n }\r\n}))\r\n\r\nfunction MembersElementTitle(\r\n {\r\n groupId,\r\n index,\r\n member,\r\n open,\r\n onOpen,\r\n editable,\r\n coordinatorView,\r\n validationSection,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const formId = 'memberTitleElement_' + member.identity\r\n const [editName, setEditName] = useState(false)\r\n const rejected = member.rejectionDate !== null;\r\n const canReject = member.actions['reject'] != null;\r\n const canRestore = member.actions['restore'] != null;\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n name: false,\r\n delete: false,\r\n reject: false,\r\n restore: false,\r\n resend: false\r\n });\r\n\r\n\r\n const handleEdit = () => {\r\n if (editName) {\r\n formSubmit[formId]()\r\n } else {\r\n setEditName(true)\r\n }\r\n }\r\n\r\n const submitName = (values) => {\r\n dispatchIconWorks({type: 'name', works: true});\r\n PurchasingGroupStage1Service.updateMemberName(groupId, member.identity, values).then(() => setEditName(false)).finally(() => dispatchIconWorks({\r\n type: 'name',\r\n works: false\r\n })\r\n );\r\n }\r\n\r\n const doDelete = () => {\r\n dispatchIconWorks({type: 'delete', works: true});\r\n PurchasingGroupStage1Service.deleteMember(groupId, member.identity).then(() => {\r\n PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n }).catch(() => dispatchIconWorks({type: 'delete', works: false}))\r\n }\r\n\r\n const onReject = () => {\r\n setEditName(false);\r\n dispatchIconWorks({type: 'reject', works: true});\r\n PurchasingGroupStage1Service.rejectMember(groupId, member.identity).finally(() => dispatchIconWorks({type: 'reject', works: false}))\r\n }\r\n\r\n const onRestore = () => {\r\n dispatchIconWorks({type: 'restore', works: true});\r\n PurchasingGroupStage1Service.restoreMember(groupId, member.identity).finally(() => dispatchIconWorks({type: 'restore', works: false}))\r\n }\r\n\r\n\r\n const showTitleComponent = () => (\r\n \r\n \r\n {member.name}\r\n \r\n \r\n )\r\n\r\n\r\n const editNameComponent = () => (\r\n \r\n )\r\n\r\n\r\n const onResend = () => {\r\n dispatchIconWorks({type: 'resend', works: true});\r\n PurchasingGroupStage1Service.resendInviteNotification(groupId, member.identity).then(() => enqueueSuccessSnackbar(Tr('purchase_group_member_resend_success'))).finally(() => dispatchIconWorks({type: 'resend', works: false}))\r\n }\r\n\r\n\r\n return (\r\n \r\n {!coordinatorView ? \r\n \r\n {index + 1}.\r\n \r\n {!rejected && !member.complete && \r\n \r\n }\r\n : \r\n }\r\n\r\n {editName ? editNameComponent() : showTitleComponent()}\r\n\r\n \r\n {!coordinatorView && <>\r\n {editName ? <>\r\n \r\n setEditName(false)}\r\n tooltip={Tr('cancel')}\r\n Icon={ClearIcon}\r\n disabled={iconWorks.anyWorks}\r\n />\r\n > :\r\n \r\n }\r\n confirmComplex({\r\n onConfirm: doDelete,\r\n confirmText: Tr('confirm_delete'),\r\n confirmText2: member.name,\r\n translateConfirmTexts: false\r\n })}\r\n working={iconWorks.delete}\r\n disabled={!editable || !member.actions['delete'] || iconWorks.anyWorks}\r\n />\r\n {\r\n canReject ?\r\n simpleConfirm(\"purchase_groups_exclude_confirm\", onReject)}>{Tr('purchase_groups_exclude')}\r\n \r\n : (canRestore &&\r\n simpleConfirm(\"purchase_groups_restore_confirm\", onRestore)}>{Tr('purchase_groups_restore')}\r\n \r\n )\r\n }\r\n >}\r\n\r\n {!coordinatorView && editable && validationSection.activeStage === 1 &&\r\n }\r\n\r\n {!coordinatorView && }\r\n \r\n \r\n )\r\n}\r\n\r\nMembersElementTitle.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(MembersElementTitle);","import React, {useState} from 'react'\r\nimport clsx from 'clsx';\r\nimport {connect} from 'react-redux'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport DescriptionIcon from '@material-ui/icons/Description';\r\nimport FolderIcon from \"@material-ui/icons/Folder\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport PropTypes from 'prop-types'\r\nimport Typography from \"components/Typography\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport MultiButton, {createButton} from \"./components/MultiButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n disabledEmpty: {\r\n fontStyle: 'italic'\r\n },\r\n disabled: {\r\n '& textarea': {\r\n color: theme.palette.text.primary\r\n }\r\n },\r\n textField: {\r\n wordBreak: \"break-word\",\r\n whiteSpace: 'pre-line',\r\n marginBottom: theme.spacing(2)\r\n }\r\n}));\r\n\r\nexport const createEditDescriptionFile = (demandId, identity, name, description, disabled, required = false, isFolder = false) => ({demandId, identity, name, description, disabled, required, isFolder});\r\n\r\nfunction EditDescriptionPopup(\r\n {\r\n editDescriptionFile,\r\n onClose,\r\n onUpdated,\r\n service,\r\n formSubmit,\r\n }) {\r\n\r\n const {demandId, identity, name, description, disabled, required, isFolder} = editDescriptionFile;\r\n const classes = useStyle();\r\n const formId = useId();\r\n const [working, setWorking] = useState(false);\r\n\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = ({description}) => {\r\n setWorking(true);\r\n service.updateDescription(demandId, identity, description).then(onUpdated).finally(()=> setWorking(false))\r\n }\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr(disabled ? 'close': 'cancel'), onClose, disabled ? undefined :'outlined', false));\r\n if(!disabled)\r\n buttons.push(createButton(Tr('confirm'), handleSubmit, undefined, working, undefined, working));\r\n\r\n\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nEditDescriptionPopup.propTypes = {\r\n editDescriptionFile: PropTypes.shape({\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n identity: PropTypes.oneOfType([PropTypes.number, PropTypes.object]).isRequired,\r\n name: PropTypes.string.isRequired,\r\n description: PropTypes.string,\r\n disabled: PropTypes.bool.isRequired,\r\n required: PropTypes.bool.isRequired\r\n }).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n onUpdated: PropTypes.func.isRequired,\r\n service: PropTypes.shape({\r\n updateDescription: PropTypes.func.isRequired\r\n })\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(EditDescriptionPopup);","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport SearchIcon from '@material-ui/icons/Search'\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconSearchButton(\r\n {\r\n tooltip = Tr('search2'),\r\n ...props\r\n }) {\r\n\r\n return \r\n}\r\n\r\nWorkableIconSearchButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.elementType]),\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconSearchButton;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconDownloadButton(\r\n {\r\n tooltip = Tr('download'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconDownloadButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconDownloadButton;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport LaunchIcon from '@material-ui/icons/Launch';\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction WorkableIconPublishButton(\r\n {\r\n tooltip = Tr('publish'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconPublishButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconPublishButton;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport LaunchIcon from '@material-ui/icons/Launch';\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport clsx from 'clsx';\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n rotate: {\r\n transform: \"rotate(90deg)\"\r\n }\r\n}));\r\n\r\nfunction WorkableIconUnpublishButton(\r\n {\r\n tooltip = Tr('unpublish'),\r\n className,\r\n ...props\r\n }) {\r\n const classes = useStyle();\r\n return \r\n\r\n}\r\n\r\nWorkableIconUnpublishButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconUnpublishButton;","import React, {useReducer} from 'react'\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles, TableCell, TableRow} from \"@material-ui/core\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport WorkableIconSearchButton from \"components/button/WorkableIconSearchButton\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport WorkableIconDownloadButton from \"components/button/WorkableIconDownloadButton\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport WorkableIconPublishButton from \"components/button/WorkableIconPublishButton\";\r\nimport WorkableIconUnpublishButton from \"components/button/WorkableIconUnpublishButton\";\r\nimport {PurchasingGroupDocumentStatusLabel} from \"../constants/PurchasingGroupDocumentStatus\";\r\nimport PropTypes from \"prop-types\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n warnIcon: {\r\n padding: 0,\r\n color: `${theme.palette.secondary.main} !important`\r\n },\r\n descriptionTooltip: {\r\n whiteSpace: 'pre-line'\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n versionsCell: {\r\n background: theme.palette.background.default,\r\n paddingLeft: 0,\r\n paddingRight: 0\r\n }\r\n}));\r\n\r\nfunction MembersDocumentsListTableRow(\r\n {\r\n groupId,\r\n mainDocs,\r\n editable,\r\n coordinatorView,\r\n memberId,\r\n row,\r\n index,\r\n onEditDescriptionFile,\r\n validationSection,\r\n allMemberDocumentsApiPath\r\n }) {\r\n const classes = useStyle();\r\n const memberMode = !!memberId;\r\n const {enqueueErrorSnackbar} = useSnackbar();\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n delete: false,\r\n publish: false,\r\n unpublish: false\r\n });\r\n\r\n const doDelete = () => {\r\n dispatchIconWorks({type: 'delete', works: true});\r\n let promise;\r\n if (!!memberId) {\r\n promise = PurchasingGroupStage1Service.deleteMemberDocument(groupId, memberId, row.identity)\r\n } else {\r\n promise = PurchasingGroupStage1Service.deleteAllMembersDocument(groupId, allMemberDocumentsApiPath, row.identity)\r\n }\r\n promise.then(() => PurchasingGroupSectionService.getSections(groupId, validationSection.section)).catch(() => dispatchIconWorks({\r\n type: 'delete',\r\n works: false\r\n }));\r\n }\r\n const handleDelete = () => {\r\n simpleConfirm('confirm_delete_file', doDelete)\r\n }\r\n\r\n const onDownload = () => {\r\n dispatchIconWorks({type: 'download', works: true});\r\n let promise;\r\n if (!!memberId) {\r\n promise = PurchasingGroupStage1Service.downloadMemberDocument(groupId, memberId, row.identity, false)\r\n } else {\r\n promise = PurchasingGroupStage1Service.downloadAllMembersDocument(groupId, allMemberDocumentsApiPath, row.identity, false)\r\n }\r\n promise.finally(() => dispatchIconWorks({type: 'download', works: false}));\r\n }\r\n\r\n const onUnpublish = () => {\r\n dispatchIconWorks({type: 'unpublish', works: true});\r\n PurchasingGroupStage1Service.unpublishAllMembersDocument(groupId, allMemberDocumentsApiPath, row.identity).catch((e) => {\r\n enqueueErrorSnackbar(`${row.name} - ${row.typeTranslated}: ${e.message}`)\r\n }).finally(() => dispatchIconWorks({type: 'unpublish', works: false}));\r\n }\r\n const onPublish = () => {\r\n dispatchIconWorks({type: 'publish', works: true});\r\n PurchasingGroupStage1Service.publishAllMembersDocument(groupId, allMemberDocumentsApiPath, row.identity)\r\n .catch((e) => {\r\n enqueueErrorSnackbar(`${row.name} - ${row.typeTranslated}: ${e.message}`)\r\n })\r\n .finally(() => dispatchIconWorks({type: 'publish', works: false}));\r\n }\r\n\r\n return (\r\n {index}\r\n {row.name}\r\n \r\n onEditDescriptionFile(row)}\r\n tooltip={row.description ? {row.description}
: {Tr('no_description')}}\r\n />\r\n \r\n {row.typeTranslated}\r\n {!mainDocs && {moment(row.createDate).format(DateFormats.DATETIME_FORMAT)}}\r\n {mainDocs && {row.publishDate ? moment(row.publishDate).format(DateFormats.DATETIME_FORMAT) : null}}\r\n {mainDocs && !coordinatorView && {PurchasingGroupDocumentStatusLabel(row.status)}}\r\n \r\n onDownload(row.actions.download, row.name)}\r\n hideTooltip={!row.actions.download}\r\n disabled={iconWorks.anyWorks || !row.actions.download}\r\n working={iconWorks.download}\r\n />\r\n \r\n {!coordinatorView && mainDocs && \r\n {\r\n row.actions.unpublish ?\r\n onUnpublish(row.actions.download, row.name)}\r\n hideTooltip={!row.actions.unpublish}\r\n disabled={!editable || iconWorks.anyWorks || !row.actions.unpublish}\r\n working={iconWorks.unpublish}\r\n />\r\n :\r\n onPublish(row.actions.download, row.name)}\r\n hideTooltip={!row.actions.publish}\r\n disabled={!editable || iconWorks.anyWorks || !row.actions.publish}\r\n working={iconWorks.publish}\r\n />\r\n }\r\n }\r\n {(!coordinatorView || (coordinatorView && memberMode)) && \r\n \r\n }\r\n )\r\n}\r\n\r\nMembersDocumentsListTableRow.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n mainDocs: PropTypes.bool,\r\n editable: PropTypes.bool.isRequired,\r\n coordinatorView: PropTypes.bool.isRequired,\r\n memberId: PropTypes.number,\r\n row: PropTypes.shape({\r\n identity: PropTypes.number,\r\n actions: PropTypes.object.isRequired,\r\n publishDate: PropTypes.string,\r\n createDate: PropTypes.string,\r\n description: PropTypes.string,\r\n }).isRequired,\r\n index: PropTypes.number.isRequired,\r\n onEditDescriptionFile: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default MembersDocumentsListTableRow;","import Tr from 'translations/Translations';\r\n\r\n\r\nexport const PurchasingGroupDocumentStatus = {\r\n NEW: \"NEW\",\r\n PUBLISHED: \"PUBLISHED\",\r\n WITHDRAWN: \"WITHDRAWN\"\r\n}\r\nconst _TR_PREFIX = 'purchasing_group_document_status_';\r\n\r\nexport const PurchasingGroupDocumentStatusLabel = (status) => status ? Tr(_TR_PREFIX + status.toLowerCase()) : null;","import React from 'react'\r\nimport {makeStyles, Typography} from '@material-ui/core';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport DoubleButton from 'components/popup/components/DoubleButton';\r\nimport Select from 'components/Select';\r\nimport VS from 'constants/ValidationShema';\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n gridContainer: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n fileName: {\r\n width: 400\r\n },\r\n select: {\r\n width: 350,\r\n marginLeft: theme.spacing(2)\r\n },\r\n\r\n}));\r\n\r\nfunction SelectMembersDocumentType(\r\n {\r\n items,\r\n types,\r\n onCancel,\r\n onSubmit,\r\n formSubmit,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const formId = useId();\r\n const selectId = 'item';\r\n\r\n const createSelectTab = () => {\r\n if (types === undefined) return '';\r\n return Object.keys(types).map(x => ({value: x, label: types[x]}));\r\n }\r\n\r\n const generateItems = (formikProps) => {\r\n if (items.length === 0) {\r\n return {Tr(\"file_extension_error\")}\r\n }\r\n return items.map((item, i) => {\r\n return (\r\n \r\n {item.name}\r\n\r\n \r\n\r\n \r\n )\r\n })\r\n };\r\n\r\n const submitForm = () => {\r\n formSubmit[formId]()\r\n };\r\n\r\n const generateInitialValues = () => {\r\n let obj = {};\r\n for (let i = 0; i < items.length; i++) {\r\n obj[selectId + i] = \"\";\r\n }\r\n return obj\r\n };\r\n\r\n const generateValidationSchema = () => {\r\n let obj = {};\r\n for (let i = 0; i < items.length; i++) {\r\n obj[selectId + i] = VS.string();\r\n }\r\n\r\n return VS.object(obj)\r\n };\r\n\r\n const handleSubmit = (values) => onSubmit(values, items)\r\n\r\n if (items === undefined) return '';\r\n return (\r\n }\r\n >\r\n \r\n\r\n \r\n )\r\n}\r\n\r\nSelectMembersDocumentType.propTypes = {\r\n items: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired\r\n })).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(SelectMembersDocumentType);","import React, {useMemo, useState} from 'react'\r\nimport PropTypes from \"prop-types\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport EditDescriptionPopup, {createEditDescriptionFile} from \"components/popup/EditDescriptionPopup\";\r\nimport MembersDocumentsListTableRow from \"./MembersDocumentsListTableRow\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport TitledComponent from 'components/TitledComponent';\r\nimport SelectMembersDocumentType from \"./SelectMembersDocumentType\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport clsx from \"clsx\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n lpColumn: theme.components.table.lpColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n typeColumn: {\r\n width: 180\r\n },\r\n marginTop: {\r\n marginTop: theme.spacing(2)\r\n },\r\n marginBottom: {\r\n marginBottom: theme.spacing(3)\r\n }\r\n\r\n}));\r\n\r\n\r\nfunction MembersDocumentsList(\r\n {\r\n groupId,\r\n mainDocs,\r\n editable,\r\n coordinatorView,\r\n membersDocs,\r\n memberId,\r\n validationSection,\r\n allMemberDocumentsApiPath\r\n }) {\r\n\r\n const classes = useStyle();\r\n const {documents, availableTypes} = membersDocs;\r\n const memberMode = !!memberId;\r\n const [editDescriptionFile, setEditDescriptionFile] = useState(false);\r\n const [generateWorking, setGenerateWorking] = useState(false);\r\n const [addFilesWorking, setAddFilesWorking] = useState(false);\r\n const [selectedFiles, setSelectedFiles] = useState(null);\r\n const [configuredFiles, setConfiguredFiles] = useState(null);\r\n const {enqueueSuccessSnackbar, enqueueErrorSnackbar} = useSnackbar();\r\n\r\n const hasUpload = useMemo(() => {\r\n return editable && availableTypes && Object.keys(availableTypes).length > 0\r\n }, [availableTypes, editable])\r\n\r\n const openEditDescription = (file) => {\r\n if (memberMode) {\r\n setEditDescriptionFile(createEditDescriptionFile(groupId, {\r\n memberId,\r\n documentId: file.identity\r\n }, file.name, file.description || \"\", !editable || !file.actions.editDescription, false, false))\r\n } else {\r\n setEditDescriptionFile(createEditDescriptionFile(groupId, {\r\n documentId: file.identity,\r\n documentsApiPathType: allMemberDocumentsApiPath,\r\n }, file.name, file.description || \"\", !editable || !file.actions.editDescription, false, false))\r\n }\r\n }\r\n\r\n const generateGroupAgreementDocument = () => {\r\n setGenerateWorking(true);\r\n PurchasingGroupStage1Service.generateGroupAgreementDocument(groupId).then((resp) => {\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section);\r\n enqueueSuccessSnackbar(availableTypes.group_agreement);\r\n }).catch((e) => {\r\n enqueueErrorSnackbar(e.message)\r\n }).finally(() => {\r\n setGenerateWorking(false)\r\n })\r\n }\r\n\r\n const afterDocumentAdd = (docs) => {\r\n docs.filter(d => d.error !== null).forEach( d => enqueueErrorSnackbar(`${d.name} - ${d.typeTranslated}: ${d.error}`));\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section);\r\n }\r\n\r\n const handleSendFiles = (uploadedFiles, config) => {\r\n if (uploadedFiles.length) {\r\n const tab = uploadedFiles.map((x) => ({\r\n repositoryId: x.identity,\r\n type: config[`item${x.originalIndex}`]\r\n }));\r\n if (memberMode) {\r\n setAddFilesWorking(true);\r\n PurchasingGroupStage1Service.addMemberDocuments(groupId, memberId, tab).then(afterDocumentAdd).catch((e) => {\r\n enqueueErrorSnackbar(e.message)\r\n }).finally(()=> setAddFilesWorking(false));\r\n } else {\r\n setAddFilesWorking(true);\r\n PurchasingGroupStage1Service.addAllMembersDocuments(groupId, allMemberDocumentsApiPath, tab).then(afterDocumentAdd).catch((e) => {\r\n enqueueErrorSnackbar(e.message)\r\n }).finally(()=> setAddFilesWorking(false));\r\n }\r\n }\r\n }\r\n\r\n\r\n const handleSubmitSelectDocumentTypes = (values) => {\r\n setConfiguredFiles({files: selectedFiles, config: values})\r\n setSelectedFiles(null);\r\n };\r\n\r\n return (<>\r\n {!!documents && \r\n\r\n <>\r\n
\r\n {!memberMode && !coordinatorView && !!availableTypes && !!availableTypes.group_agreement &&\r\n {`${Tr('create')} ${availableTypes.group_agreement}`}}\r\n\r\n {!documents.length ?\r\n {Tr('no_options')}\r\n :\r\n \r\n \r\n \r\n {Tr(\"column_lp\")}\r\n {Tr(\"name\")}\r\n {Tr(\"description\")}\r\n {Tr(\"type\")}\r\n {!mainDocs && {Tr(\"add_data\")}}\r\n {mainDocs && {Tr(\"publish_data\")}}\r\n {mainDocs && !coordinatorView && {Tr(\"status\")}}\r\n \r\n {!coordinatorView && mainDocs && }\r\n {(!coordinatorView || (coordinatorView && memberMode)) && }\r\n \r\n \r\n \r\n {\r\n documents.map((doc, index) => (\r\n ))\r\n }\r\n \r\n
\r\n }\r\n {hasUpload &&\r\n setSelectedFiles(files)}\r\n configuredFiles={configuredFiles}\r\n working={addFilesWorking}\r\n />\r\n }\r\n \r\n {Boolean(editDescriptionFile) &&\r\n
setEditDescriptionFile(null)}\r\n onClose={() => setEditDescriptionFile(null)}\r\n service={{updateDescription: memberMode ? PurchasingGroupStage1Service.updateMemberDocument : PurchasingGroupStage1Service.updateAllMembersDocument}}\r\n />\r\n }\r\n\r\n {!!selectedFiles && setSelectedFiles(null)}\r\n onSubmit={handleSubmitSelectDocumentTypes}\r\n />}\r\n >\r\n\r\n\r\n \r\n }\r\n >)\r\n}\r\n\r\nMembersDocumentsList.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n mainDocs: PropTypes.bool,\r\n editable: PropTypes.bool.isRequired,\r\n coordinatorView: PropTypes.bool.isRequired,\r\n membersDocs: PropTypes.shape({\r\n documents: PropTypes.array.isRequired,\r\n availableTypes: PropTypes.object.isRequired,\r\n }).isRequired,\r\n memberId: PropTypes.number,\r\n}\r\n\r\nexport default MembersDocumentsList;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport Form from 'components/Form';\r\nimport useId from 'hooks/useId';\r\nimport VS from \"constants/ValidationShema\";\r\nimport Loading from \"components/Loading\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport PartsTable from \"components/PartsTable\";\r\nimport {connect} from \"react-redux\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport {PurchasingGroupStageSections} from \"../../../../constants/PurchasingGroupStageSections\";\r\n\r\nfunction AddMemberUserPopup(\r\n {\r\n groupId,\r\n memberId,\r\n onClose,\r\n formSubmit,\r\n }) {\r\n\r\n const [working, setWorking] = useState(false);\r\n const [membersList, setMembersList] = useState(null);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getAvailableMemberUsers(groupId, memberId).then((resp) => {\r\n const respMapped = resp.map(x => ({identity: \"_\" + x.identity, name: `${x.firstName} ${x.lastName}`}));\r\n setMembersList(respMapped);\r\n }).catch(() => onClose());\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n const onSubmit = ({users}) => {\r\n const selectedUsers = Object.keys(users).filter(key => !!users[key]).map(key => parseInt(key.substring(1)))\r\n setWorking(true);\r\n PurchasingGroupStage1Service.addMemberUser(groupId, memberId, selectedUsers).then((resp) => {\r\n PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n onClose();\r\n }).catch(() => {\r\n setWorking(false);\r\n })\r\n }\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('confirm'), handleSubmit, undefined, working || !membersList || membersList.length === 0, undefined, working));\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nAddMemberUserPopup.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired\r\n};\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddMemberUserPopup);","import {RestRequestGET} from 'libs/RestRequest'\r\nimport Endpoints from 'constants/Endpoints'\r\nimport reduxStore from 'redux/store'\r\nimport {setResource} from 'redux/actions'\r\nimport moment from 'moment'\r\n\r\nconst profile = async () => {\r\n\ttry {\r\n\t\tconst res = await RestRequestGET(Endpoints.USER_PROFILE);\r\n\t\treduxStore.dispatch(\r\n\t\t\tsetResource('userProfile', res)\r\n\t\t)\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nconst data = async () => {\r\n\ttry {\r\n\t\tconst res = await RestRequestGET(Endpoints.USER_DATA);\r\n\t\treduxStore.dispatch(\r\n\t\t\tsetResource('userData', res)\r\n\t\t)\r\n\t\treturn res;\r\n\t} catch (error) {\r\n\t}\r\n\r\n}\r\n\r\nconst sessionTime = async () => {\r\n\ttry {\r\n\t\tconst res = await RestRequestGET(Endpoints.USER_SESSION_TIME);\r\n\t\tconst value = res.result;\r\n\t\tconst endTime = moment().add(value,'s')\r\n\t\treduxStore.dispatch(setResource('sessionTime', {\r\n\t\t\ttime: value,\r\n\t\t\tendTime\r\n\t\t}))\r\n\t} catch (error) { }\r\n}\r\n\r\nconst serverTime = async () => {\r\n\tconst res = await RestRequestGET(Endpoints.USER_SERVER_TIME);\r\n\treturn res.result\r\n}\r\n\r\nexport default {\r\n\tdata,\r\n\tprofile,\r\n\tsessionTime,\r\n\tserverTime,\r\n};\r\n\r\n","import React, {useEffect, useRef, useState} from 'react'\r\nimport Loading from \"components/Loading\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport MembersDocumentsList from \"./MembersDocumentsList\";\r\nimport {connect} from \"react-redux\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport TitledComponent from \"components/TitledComponent\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport Button from \"components/Button\";\r\nimport AddIcon from \"@material-ui/icons/AddBoxOutlined\";\r\nimport AddMemberUserPopup from \"./AddMemberUserPopup\";\r\nimport {confirmComplex} from \"libs/ConfirmNotification\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport {getUserFullNameWithEmail} from \"libs/userNameGetter\";\r\nimport {PurchasingGroupStageSections} from \"../../../../constants/PurchasingGroupStageSections\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport CheckCircleOutlineIcon from '@material-ui/icons/CheckCircleOutline';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport UserService from \"services/UserService\";\r\nimport scheduleReloadTimeout from \"../../../../utils/scheduleReloadTimeout\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Typography from \"components/Typography\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n lpColumn: theme.components.table.lpColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n addButton: {\r\n marginLeft: theme.spacing(2)\r\n },\r\n section: {\r\n marginTop: theme.spacing(2)\r\n },\r\n success: {\r\n color: theme.palette.success.dark,\r\n marginLeft: theme.spacing()\r\n },\r\n italic: {\r\n fontStyle: 'italic'\r\n }\r\n\r\n}))\r\n\r\nfunction MembersElementContent(\r\n {\r\n groupId,\r\n member,\r\n coordinatorView,\r\n editable,\r\n memberData,\r\n validationSection,\r\n stage1Sections\r\n }) {\r\n const classes = useStyle();\r\n const [addPopup, setAddPopup] = useState(false);\r\n const [deleteWorkingId, setDeleteWorkingId] = useState(0);\r\n const [participationWorking, setParticipationWorking] = useState(false);\r\n const rejected = member.rejectionDate !== null;\r\n const timeout = useRef(0)\r\n\r\n\r\n const getMember = () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n PurchasingGroupStage1Service.getMember(groupId, member.identity)\r\n\r\n const mainSection = stage1Sections[PurchasingGroupStageSections.STAGE_1_SECTION];\r\n if (mainSection && mainSection.schedule) {\r\n UserService.serverTime().then(serverTime => {\r\n let reloadTimeout = scheduleReloadTimeout(mainSection.schedule, serverTime);\r\n if (reloadTimeout) {\r\n timeout.current = setTimeout(() => {\r\n getMember();\r\n }, reloadTimeout)\r\n }\r\n })\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getMember();\r\n return () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n PurchasingGroupStage1Service.clearResources(PurchasingGroupStage1Service.PURCHASING_GROUP_MEMBER_RESOURCE_ID(member.identity))\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const doDelete = (user) => {\r\n setDeleteWorkingId(user.identity)\r\n PurchasingGroupStage1Service.deleteMemberUser(groupId, member.identity, user.identity).finally(() => {\r\n PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n setDeleteWorkingId(0);\r\n });\r\n }\r\n\r\n const withdrawParticipation = () => {\r\n setParticipationWorking(true);\r\n PurchasingGroupStage1Service.withdrawParticipationMember(groupId, member.identity).then(\r\n ()=> PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n ).finally(() => setParticipationWorking(false));\r\n }\r\n\r\n const confirmParticipation = () => {\r\n setParticipationWorking(true);\r\n PurchasingGroupStage1Service.confirmParticipationMember(groupId, member.identity).then(\r\n ()=> PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n ).finally(() => setParticipationWorking(false));\r\n }\r\n\r\n if (!memberData)\r\n return \r\n return (\r\n {coordinatorView &&
}\r\n setAddPopup(true)} className={classes.addButton} Icon={AddIcon}\r\n variant=\"outlined\">{Tr('purchasing_group_users_add')}}>\r\n {\r\n memberData.users.length === 0 ?\r\n <>\r\n {Tr('purchasing_group_users_not_added')}\r\n >\r\n :\r\n [\r\n (index + 1),\r\n getUserFullNameWithEmail(item),\r\n coordinatorView ? '' : confirmComplex({\r\n onConfirm: () => doDelete(item),\r\n confirmText: Tr('confirm_delete'),\r\n confirmText2: `${item.firstName} ${item.lastName}`,\r\n translateConfirmTexts: false\r\n })}/>\r\n ])}\r\n />\r\n }\r\n {\r\n addPopup && setAddPopup(false)}/>\r\n }\r\n \r\n \r\n {\r\n memberData.canConfirm && <>\r\n {\r\n !memberData.confirmationDate ?\r\n {Tr(\"purchase_group_member_confirm_participation\")} :\r\n\r\n {Tr(\"purchase_group_member_withdraw_participation\")}\r\n }\r\n >\r\n }\r\n {\r\n !!memberData.confirmationDate && {Tr(\"purchase_group_member_participation_confirmed\")}\r\n }\r\n \r\n
\r\n\r\n \r\n\r\n \r\n\r\n )\r\n}\r\n\r\nMembersElementContent.propTypes = {}\r\n\r\nexport default connect((state, {member}) => ({\r\n memberData: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_MEMBER_RESOURCE_ID(member.identity)],\r\n stage1Sections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID],\r\n}), {})(MembersElementContent);","import React, {useState} from 'react'\r\nimport {Collapse, makeStyles} from \"@material-ui/core\";\r\nimport MembersElementTitle from \"./MembersElementTitle\";\r\nimport MembersElementContent from \"./MembersElementContent\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper,\r\n padding: `${theme.spacing()}px ${theme.spacing(2)}px`,\r\n marginBottom: theme.spacing()\r\n }\r\n}))\r\n\r\nfunction MembersElement(\r\n {\r\n index,\r\n groupId,\r\n member,\r\n coordinatorView,\r\n editable,\r\n search,\r\n validationSection\r\n }) {\r\n const classes = useStyle();\r\n const [open, setOpen] = useState(false);\r\n\r\n\r\n return ( -1} unmountOnExit={false}>\r\n \r\n setOpen(!open)}\r\n coordinatorView={coordinatorView}\r\n validationSection={validationSection}\r\n />\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nMembersElement.propTypes = {}\r\n\r\nexport default MembersElement;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport Form from 'components/Form';\r\nimport useId from 'hooks/useId';\r\nimport VS from \"constants/ValidationShema\";\r\nimport Loading from \"components/Loading\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport PartsTable from \"components/PartsTable\";\r\nimport {connect} from \"react-redux\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport {PurchasingGroupStageSections} from \"../../../../constants/PurchasingGroupStageSections\";\r\n\r\nfunction AddPurchasingGroupMemberPopup(\r\n {\r\n groupId,\r\n onClose,\r\n formSubmit,\r\n }) {\r\n\r\n const [working, setWorking] = useState(false);\r\n const [membersList, setMembersList] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getMembersAvailableConcerns(groupId).then((resp) => {\r\n const respMapped = resp.map(x => ({identity: x.orgId, name: x.name}));\r\n setMembersList(respMapped);\r\n }).catch(() => onClose());\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n const onSubmit = ({concerns}) => {\r\n const selectedOrgs = Object.keys(concerns).filter(key => !!concerns[key])\r\n\r\n setWorking(true);\r\n PurchasingGroupStage1Service.addMembers(groupId, selectedOrgs).then((resp) => {\r\n enqueueSuccessSnackbar(Tr('purchase_group_members_added', {x: resp.length}))\r\n PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n onClose();\r\n }).catch(() => {\r\n setWorking(false);\r\n })\r\n }\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('confirm'), handleSubmit, undefined, working || !membersList || membersList.length === 0, undefined, working));\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nAddPurchasingGroupMemberPopup.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired\r\n};\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddPurchasingGroupMemberPopup);","import React, {useState} from 'react'\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport MembersElement from \"./MembersElement\";\r\nimport Tr from \"translations/Translations\";\r\nimport AddIcon from '@material-ui/icons/AddBoxOutlined'\r\nimport Button from \"components/Button\";\r\nimport AddPurchasingGroupMemberPopup from \"./AddPurchasingGroupMemberPopup\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n search: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction MembersList(\r\n {\r\n groupId,\r\n members,\r\n coordinatorView,\r\n editable,\r\n validationSection\r\n }) {\r\n const classes = useStyle();\r\n const [addWindowOpen, setAddWindowOpen] = useState(false);\r\n const [search, setSearch] = useState({});\r\n\r\n return (\r\n {!coordinatorView &&
}\r\n {\r\n members.map((x, i) => ())\r\n }\r\n {\r\n !coordinatorView && \r\n }\r\n {(!coordinatorView && addWindowOpen) && setAddWindowOpen(false)}/>}\r\n )\r\n}\r\n\r\nMembersList.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n members: PropTypes.array.isRequired,\r\n coordinatorView: PropTypes.bool.isRequired,\r\n editable: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default MembersList;","export const PurchasingGroupRole = {\r\n AUTHOR: \"AUTHOR\",\r\n ADMIN: \"ADMIN\",\r\n EXPERT: \"EXPERT\",\r\n MEMBER: \"MEMBER\"\r\n}\r\n","import React, {useEffect, useRef} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport Loading from \"components/Loading\";\r\nimport MembersList from \"./components/MembersList\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport {connect} from \"react-redux\";\r\nimport MembersDocumentsList from \"./components/MembersDocumentsList\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport scheduleReloadTimeout from \"../../../utils/scheduleReloadTimeout\";\r\nimport {PurchasingGroupStageSections} from \"../../../constants/PurchasingGroupStageSections\";\r\nimport UserService from \"services/UserService\";\r\nimport {PurchasingGroupRole} from \"../../../constants/PurchasingGroupRole\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage1Members(\r\n {\r\n panelRef,\r\n validationSection,\r\n members,\r\n membersDocs,\r\n purchasingGroupHeader,\r\n stageSections\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const groupId = params.id;\r\n const stage = params.stage;\r\n const formId = params.section;\r\n const timeout = useRef(0);\r\n const documentsApiPathType = stage === \"1\" ? \"members\" : \"swz\"\r\n const coordinatorView = purchasingGroupHeader.userRole === PurchasingGroupRole.MEMBER;\r\n const editable = validationSection.editable;\r\n useStepperStateCloseValidator(formId);\r\n\r\n\r\n const getMembers = () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n if (stage === \"1\")\r\n PurchasingGroupStage1Service.getMembers(groupId);\r\n PurchasingGroupStage1Service.getAllMembersDocuments(groupId, documentsApiPathType);\r\n\r\n const mainSection = stageSections[stage === \"1\" ? PurchasingGroupStageSections.STAGE_1_SECTION : PurchasingGroupStageSections.STAGE_2_SECTION];\r\n if (mainSection && mainSection.schedule) {\r\n UserService.serverTime().then(serverTime => {\r\n let reloadTimeout = scheduleReloadTimeout(mainSection.schedule, serverTime);\r\n if (reloadTimeout) {\r\n timeout.current = setTimeout(() => {\r\n getMembers();\r\n }, reloadTimeout)\r\n }\r\n })\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getMembers();\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n return () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n if (stage === \"1\")\r\n PurchasingGroupStage1Service.clearResources(PurchasingGroupStage1Service.PURCHASING_GROUP_MEMBERS_RESOURCE_ID);\r\n PurchasingGroupStage1Service.clearResources(PurchasingGroupStage1Service.PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID);\r\n }\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n if ((stage === \"1\" && !members) || !membersDocs) return \r\n\r\n return (\r\n \r\n {!coordinatorView && }\r\n \r\n {stage === \"1\" &&\r\n \r\n }\r\n
\r\n )\r\n}\r\n\r\nPurchasingGroupStage1Members.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n stageSections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID],\r\n members: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_MEMBERS_RESOURCE_ID],\r\n membersDocs: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID],\r\n purchasingGroupHeader: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID]\r\n}), {})(PurchasingGroupStage1Members);","import React, {useEffect} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PapersGeneratorList from \"components/complex/papersGenerator/PapersGeneratorList\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage1PapersGenerator(\r\n {\r\n panelRef,\r\n validationSection\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const groupId = params.id;\r\n const formId = params.section;\r\n const editable = validationSection.editable;\r\n\r\n useStepperStateCloseValidator(formId);\r\n\r\n useEffect(() => {\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n PapersGeneratorService.getAvailablePapers(groupId);\r\n return () => {\r\n PapersGeneratorService.clearResources(PapersGeneratorService.PAPERS_GENERATOR_LIST_RESOURCE_ID);\r\n }\r\n }, [groupId, validationSection.section])\r\n\r\n return ()\r\n}\r\n\r\nPurchasingGroupStage1PapersGenerator.propTypes = {}\r\n\r\nexport default PurchasingGroupStage1PapersGenerator;","import React, {useEffect, useRef, useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Loading from \"components/Loading\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport Select from \"components/Select\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n loading: {\r\n width: '98%'\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n },\r\n uploadFile: {\r\n marginBottom: 20\r\n }\r\n}));\r\n\r\nfunction AddNewOpinionMemberPopup(\r\n {\r\n groupId,\r\n onClose,\r\n apiPathType,\r\n formSubmit,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const sendType = useRef('');\r\n const [working, setWorking] = useState(true);\r\n const [contractorList, setContractorList] = useState([]);\r\n const formId = useId();\r\n\r\n\r\n const handleSubmit = (type) => {\r\n sendType.current = type;\r\n formSubmit[formId]();\r\n }\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getOpinionAvailableMembers(groupId, apiPathType).then((resp) => {\r\n if(resp) {\r\n setContractorList(resp.map(x => ({label: x.name, value: x.identity})));\r\n setWorking(false)\r\n } else {\r\n onClose()\r\n }\r\n\r\n });\r\n // eslint-disable-next-line\r\n }, [groupId, apiPathType]);\r\n\r\n\r\n const onSubmit = (opinion) => {\r\n setWorking(true);\r\n const send = sendType.current === 'send';\r\n sendType.current = \"\";\r\n\r\n PurchasingGroupStage1Service.addOpinionForMember(groupId, apiPathType, opinion.memberId).then((newOpinion) => {\r\n if (newOpinion) {\r\n PurchasingGroupStage1Service.saveOpinionMessage(groupId, apiPathType, newOpinion.identity, {\r\n identity: 0,\r\n contents: opinion.contents,\r\n send: send\r\n }).then(() => onClose(newOpinion.identity))\r\n } else {\r\n onClose();\r\n }\r\n }).catch(() => setWorking(false));\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('save'), () => handleSubmit('save'), 'outlined', working));\r\n buttons.push(createButton(Tr('send'), () => handleSubmit('send'), undefined, working));\r\n return buttons;\r\n }\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddNewOpinionMemberPopup);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {Badge, makeStyles, Typography} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from 'clsx';\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\nimport {getUserFullNameWithDeputy} from \"../../../../../../../../libs/userNameGetter\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '80%',\r\n margin: 5,\r\n },\r\n rootMine: {\r\n marginLeft: '20%'\r\n },\r\n contentWrapper: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper,\r\n position: 'relative'\r\n },\r\n contentWrapperUnread: {\r\n borderWidth: 3\r\n },\r\n contentWrapperMine: {\r\n backgroundColor: theme.palette.background.default\r\n },\r\n content: {\r\n padding: `${theme.spacing(1)}px ${theme.spacing(2)}px`\r\n },\r\n sendDate: {\r\n margin: `0 ${theme.spacing(1)}px`,\r\n minWidth: 110\r\n },\r\n message: {\r\n whiteSpace: 'pre-line',\r\n margin: `${theme.spacing(2)}px 0`\r\n },\r\n newBadge: {\r\n position: 'absolute',\r\n right: 0,\r\n top: 3\r\n },\r\n}));\r\n\r\n\r\nfunction OpinionMessage(\r\n {\r\n coordinatorView,\r\n message\r\n }) {\r\n\r\n const classes = useStyles();\r\n const mine = !!(coordinatorView ? message.memberMessage : !message.memberMessage);\r\n const unread = !mine && !message.read;\r\n\r\n return (\r\n \r\n\r\n
\r\n
\r\n {unread && \r\n \r\n }\r\n \r\n \r\n {Tr(\"author\")}\r\n \r\n {getUserFullNameWithDeputy(message.author)}\r\n \r\n \r\n \r\n {Tr(\"send_date\")}\r\n \r\n {message.sendDate ? moment(message.sendDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT) : ''}\r\n \r\n \r\n \r\n\r\n {message.contents}\r\n\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nOpinionMessage.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default OpinionMessage;","import React, {useReducer, useRef, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport clsx from 'clsx';\r\nimport * as Yup from \"yup\";\r\nimport {connect} from \"react-redux\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Tr from \"translations/Translations\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '80%',\r\n margin: 5,\r\n marginLeft: '20%',\r\n },\r\n contentWrapper: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n content: {\r\n padding: `${theme.spacing(1)}px ${theme.spacing(2)}px`\r\n },\r\n sendDate: {\r\n margin: `0 ${theme.spacing(1)}px`,\r\n minWidth: 110\r\n },\r\n message: {\r\n whiteSpace: 'pre-line',\r\n margin: `${theme.spacing(2)}px 0`\r\n }\r\n}));\r\n\r\n\r\nfunction NewOpinionMessage(\r\n {\r\n groupId,\r\n coordinatorView,\r\n editable,\r\n message,\r\n opinion,\r\n apiPathType,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyles();\r\n const formId = useId();\r\n // eslint-disable-next-line\r\n const [error, setError] = useState('');\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n remove: false,\r\n send: false,\r\n save: false,\r\n other: false\r\n });\r\n const sendMode = useRef(\"\");\r\n\r\n\r\n const onSubmit = ({contents}) => {\r\n const type = sendMode.current;\r\n dispatchIconWorks({type: type, works: true});\r\n PurchasingGroupStage1Service.saveOpinionMessage(groupId, apiPathType, opinion.identity, {\r\n identity: message.identity,\r\n contents: contents,\r\n send: type === 'send'\r\n }).then(() => {\r\n if (opinion.identity === 0)\r\n PurchasingGroupStage1Service.getOpinions(groupId, apiPathType).then(() => dispatchIconWorks({type: type, works: false}))\r\n else\r\n dispatchIconWorks({type: type, works: false})\r\n })\r\n\r\n }\r\n const handleSubmit = (type) => {\r\n sendMode.current = type;\r\n formSubmit[formId]();\r\n }\r\n\r\n const handleDelete = () => {\r\n dispatchIconWorks({type: \"remove\", works: true});\r\n PurchasingGroupStage1Service.deleteOpinionMessage(groupId, apiPathType, opinion.identity, message.identity).catch(() => dispatchIconWorks({type: \"remove\", works: false}))\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n if (opinion.identity > 0)\r\n buttons.push(createButton(Tr('delete'), handleDelete, 'outlined', !editable || iconWorks.anyWorks, undefined, iconWorks.remove ));\r\n buttons.push(createButton(Tr('save'), () => handleSubmit('save'), 'outlined', !editable || iconWorks.anyWorks, undefined, iconWorks.save ));\r\n buttons.push(createButton(Tr('send'), () => handleSubmit('send'), undefined, !editable || iconWorks.anyWorks, undefined, iconWorks.send ));\r\n return buttons;\r\n }\r\n return (\r\n \r\n )\r\n}\r\n\r\nNewOpinionMessage.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(NewOpinionMessage);","import React, {useEffect, useState} from 'react'\r\nimport Loading from \"components/Loading\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport {connect} from \"react-redux\";\r\nimport OpinionMessage from \"./OpinionMessage\";\r\nimport NewOpinionMessage from \"./NewOpinionMessage\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport AddIcon from \"@material-ui/icons/AddBoxOutlined\";\r\nimport Tr from \"translations/Translations\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\n\r\nfunction OpinionElementContent(\r\n {\r\n groupId,\r\n opinion,\r\n coordinatorView,\r\n opinionMessages,\r\n editable,\r\n apiPathType\r\n }) {\r\n\r\n const [addWorking, setAddWorking] = useState(false);\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getOpinionMessages(groupId, apiPathType, opinion.identity, editable)\r\n return () => {\r\n PurchasingGroupStage1Service.clearResources(PurchasingGroupStage1Service.PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID(opinion.identity))\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n if (!opinionMessages)\r\n return \r\n return (\r\n\r\n {(opinionMessages.length === 0) && {Tr('no_options')}}\r\n\r\n {\r\n opinionMessages.map(x => x.status === 'SENT' ? :\r\n \r\n )\r\n }\r\n {\r\n opinion.identity > 0 && \r\n {\r\n setAddWorking(true);\r\n PurchasingGroupStage1Service.addEmptyOpinionMessage(groupId, apiPathType, opinion.identity, editable).finally(() => setAddWorking(false))\r\n }}>{Tr(\"new_message\")}\r\n \r\n \r\n }\r\n\r\n\r\n
)\r\n}\r\n\r\nOpinionElementContent.propTypes = {}\r\n\r\nexport default connect((state, {opinion}) => ({\r\n opinionMessages: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID(opinion.identity)]\r\n}), {})(OpinionElementContent);","import React from 'react'\r\nimport {Badge, Box, Typography} from '@material-ui/core';\r\nimport GridBlock from 'components/GridBlock';\r\nimport clsx from 'clsx';\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n '&>*:nth-child(2)': {\r\n flexGrow: 1,\r\n }\r\n },\r\n title: {\r\n marginLeft: theme.spacing()\r\n },\r\n rotate: {\r\n transform: 'rotate(180deg)'\r\n },\r\n cursorPointer: {\r\n cursor: 'pointer'\r\n }\r\n}))\r\n\r\nfunction OpinionElementTitle(\r\n {\r\n index,\r\n opinion,\r\n open,\r\n onOpen,\r\n coordinatorView,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n return (\r\n \r\n { coordinatorView ? :\r\n \r\n {index + 1}.\r\n \r\n }\r\n\r\n\r\n \r\n \r\n {opinion.memberName}\r\n \r\n \r\n\r\n {!coordinatorView && !!opinion.unreadCount && \r\n \r\n }\r\n {!coordinatorView && }\r\n \r\n )\r\n}\r\n\r\nOpinionElementTitle.propTypes = {}\r\n\r\nexport default OpinionElementTitle;","import React, {useState} from 'react'\r\nimport {Collapse, makeStyles} from \"@material-ui/core\";\r\nimport OpinionElementContent from \"./OpinionElementContent\";\r\nimport OpinionElementTitle from \"./OpinionElementTitle\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper,\r\n padding: `${theme.spacing()}px ${theme.spacing(2)}px`,\r\n marginBottom: theme.spacing()\r\n }\r\n}))\r\n\r\nfunction OpinionElement(\r\n {\r\n index,\r\n groupId,\r\n opinion,\r\n coordinatorView,\r\n search,\r\n editable,\r\n apiPathType\r\n }) {\r\n const classes = useStyle();\r\n const [open, setOpen] = useState(false);\r\n\r\n\r\n return ( -1} unmountOnExit={false}>\r\n \r\n setOpen(!open)}\r\n coordinatorView={coordinatorView}\r\n editable={editable}\r\n />\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nOpinionElement.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n index: PropTypes.number.isRequired,\r\n opinion: PropTypes.object.isRequired,\r\n coordinatorView: PropTypes.bool.isRequired,\r\n search: PropTypes.shape({\r\n search: PropTypes.string\r\n }),\r\n editable: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default OpinionElement;","import React, {useCallback, useEffect, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport Button from \"components/Button\";\r\nimport Tr from \"translations/Translations\";\r\nimport AddNewOpinionMemberPopup from \"./components/AddNewOpinionMemberPopup\";\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport OpinionElement from \"./components/OpinionElement\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport AddIcon from \"@material-ui/icons/AddBoxOutlined\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {PurchasingGroupRole} from \"../../../constants/PurchasingGroupRole\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n },\r\n search: {\r\n marginBottom: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage1Opinion(\r\n {\r\n panelRef,\r\n validationSection,\r\n purchasingGroupHeader,\r\n opinions\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const groupId = params.id;\r\n const stage = params.stage;\r\n const formId = params.section;\r\n const editable = validationSection.editable;\r\n const apiPathType = stage === \"1\" ? \"AGREEMENT\" : \"SWZ\"\r\n const coordinatorView = purchasingGroupHeader.userRole === PurchasingGroupRole.MEMBER;\r\n const [newOpinionPopup, setNewOpinionPopup] = useState(false);\r\n const [search, setSearch] = useState({});\r\n\r\n useStepperStateCloseValidator(formId);\r\n\r\n const closeSection = useCallback(() => RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {\r\n id: groupId,\r\n stage: stage\r\n })), [groupId, stage]);\r\n\r\n useEffect(() => {\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n PurchasingGroupStage1Service.getOpinions(groupId, apiPathType).then((resp) => {\r\n if(!resp) closeSection();\r\n })\r\n return () => {\r\n PurchasingGroupStage1Service.clearResources(PurchasingGroupStage1Service.PURCHASING_GROUP_OPINIONS_RESOURCE_ID);\r\n }\r\n }, [groupId, closeSection, apiPathType, validationSection.section])\r\n\r\n if (!opinions) return \r\n\r\n return (\r\n
\r\n {!coordinatorView && \r\n \r\n \r\n\r\n \r\n }\r\n\r\n {\r\n opinions.map((x, i) => (\r\n ))\r\n }\r\n\r\n {(newOpinionPopup) && setNewOpinionPopup(false)} apiPathType={apiPathType}/>}\r\n )\r\n}\r\n\r\nPurchasingGroupStage1Opinion.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n opinions: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_OPINIONS_RESOURCE_ID],\r\n purchasingGroupHeader: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID]\r\n}), {})(PurchasingGroupStage1Opinion);","import React, {useEffect, useState} from 'react'\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport Button from \"components/Button\";\r\nimport Tr from \"translations/Translations\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport {useParams} from \"react-router\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {confirmComplex} from \"libs/ConfirmNotification\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport {PurchasingGroupStageSections} from \"../../../constants/PurchasingGroupStageSections\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage1FinishPreparing(\r\n {\r\n panelRef,\r\n validationSection\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const groupId = params.id;\r\n const editable = validationSection.editable;\r\n\r\n const [canFinish, setCanFinish] = useState(false)\r\n\r\n useEffect(() => {\r\n PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.FINISH_PREPARING)\r\n PurchasingGroupStage1Service.canFinishPreparing(groupId).then(resp => {\r\n if (resp) {\r\n setCanFinish(resp.result);\r\n } else {\r\n setCanFinish(false);\r\n }\r\n });\r\n }, [groupId]);\r\n\r\n const finishPreparingState = () => {\r\n PurchasingGroupStage1Service.finishPreparingStage(groupId).then(resp => {\r\n if (resp) {\r\n PurchasingGroupStage1Service.getHeader(groupId);\r\n const path = RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {id: groupId, stage: 2});\r\n RouterPath.redirect(path);\r\n } else {\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\nPurchasingGroupStage1FinishPreparing.propTypes = {}\r\n\r\nexport default PurchasingGroupStage1FinishPreparing;","import React from 'react'\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PropTypes from \"prop-types\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n picker: {\r\n width: 400,\r\n marginRight: theme.spacing(3)\r\n },\r\n stageHead: {\r\n marginTop: theme.spacing(4)\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage2ScheduleForm(\r\n {\r\n formikProps,\r\n schedule,\r\n editable\r\n }) {\r\n const classes = useStyle();\r\n\r\n return (\r\n\r\n {Tr('purchasing_group_opinion_swz_stage')}\r\n \r\n \r\n \r\n \r\n\r\n {Tr('purchasing_group_collecting_data_stage')}\r\n \r\n \r\n \r\n \r\n\r\n )\r\n}\r\n\r\nPurchasingGroupStage2ScheduleForm.propTypes = {\r\n schedule: PropTypes.shape({\r\n swzOpinionStartDateEditable: PropTypes.bool.isRequired,\r\n swzOpinionEndDateEditable: PropTypes.bool.isRequired,\r\n collectingDataStartDateEditable: PropTypes.bool.isRequired,\r\n collectingDataEndDateEditable: PropTypes.bool.isRequired,\r\n }).isRequired\r\n}\r\n\r\nexport default PurchasingGroupStage2ScheduleForm;","import Endpoints from 'constants/Endpoints';\r\nimport {clearResource, setResource, setSaveStatusClosed, setSaveStatusError, setSaveStatusLoading} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst PURCHASING_GROUP_TEMPLATE_RESOURCE_ID = \"purchasingGroupTemplate\"\r\nconst PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID = (memberId) => `purchasingGroupTemplateMember_${memberId}`;\r\n\r\nconst __get = async (url, resourcesName) => {\r\n try {\r\n let res = await RestRequestGET(url)\r\n if (resourcesName) {\r\n reduxStore.dispatch(setResource(resourcesName, res))\r\n }\r\n return res;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst __save = async (url, values) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n const resp = await RestRequestPOST(url, values)\r\n isResponseValid(resp, (e) => {\r\n throw new Error(e);\r\n })\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n return resp;\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\n\r\nconst getCollectingSchedule = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COLLECTING_SCHEDULE(groupId))\r\n}\r\nconst saveCollectingSchedule = async (groupId, values) => {\r\n try {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_COLLECTING_SCHEDULE(groupId), values)\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n return resp;\r\n } catch (e) {\r\n }\r\n}\r\n\r\nconst getTemplate = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE(groupId), PURCHASING_GROUP_TEMPLATE_RESOURCE_ID)\r\n}\r\nconst saveTemplate = async (groupId, values) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE(groupId), values);\r\n if (resp) {\r\n const {resources} = reduxStore.getState();\r\n const newRes = {...resources[PURCHASING_GROUP_TEMPLATE_RESOURCE_ID], ...resp}\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_TEMPLATE_RESOURCE_ID, newRes))\r\n }\r\n return resp;\r\n\r\n}\r\nconst getAvailableTemplates = async (groupId) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n const resp = await __get(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_AVAILABLE(groupId))\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n return resp;\r\n}\r\n\r\nconst getTemplateMember = async (groupId, memberId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_ID(groupId, memberId), PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID(memberId))\r\n}\r\n\r\nconst getTemplateMemberForm = async (groupId, memberId, formId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID(groupId, memberId, formId))\r\n}\r\n\r\nconst updateReduxLists = (memberId, formId, resp) => {\r\n if (resp) {\r\n const {formListElement, formWrapper, memberListElement} = resp;\r\n const {resources} = reduxStore.getState();\r\n const curTemplate = resources[PURCHASING_GROUP_TEMPLATE_RESOURCE_ID];\r\n if (curTemplate) {\r\n const newTemplate = {...curTemplate, memberList: curTemplate.memberList.map(x => x.memberId === memberListElement.memberId ? memberListElement : x)}\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_TEMPLATE_RESOURCE_ID, newTemplate))\r\n }\r\n const curMember = resources[PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID(memberId)];\r\n if (curMember) {\r\n const newMember = {...curMember, formList: curMember.formList.map(x => x.formId === formListElement.formId ? formListElement : x)}\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID(memberId), newMember))\r\n }\r\n return formWrapper;\r\n }\r\n}\r\n\r\n\r\nconst saveTemplateMemberForm = async (groupId, memberId, formId, values) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID(groupId, memberId, formId), values);\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\n\r\nconst saveTemplateMemberFormDraft = async (groupId, memberId, formId, values) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_DRAFT(groupId, memberId, formId), values);\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\n\r\nconst saveTemplateMemberFormClearDraft = async (groupId, memberId, formId) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_CLEAR_DRAFT(groupId, memberId, formId));\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\n\r\nconst saveTemplateMemberFormAccept = async (groupId, memberId, formId) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ACCEPT(groupId, memberId, formId));\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\nconst saveTemplateMemberFormReject = async (groupId, memberId, formId) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_REJECT(groupId, memberId, formId));\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\n\r\nconst saveTemplateMemberFormAskForEdit = async (groupId, memberId, formId) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ASK_FOR_EDIT(groupId, memberId, formId));\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\nconst saveTemplateMemberFormAllowEdit = async (groupId, memberId, formId) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ALLOW_EDIT(groupId, memberId, formId));\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\nconst saveTemplateMemberFormRejectEdit = async (groupId, memberId, formId) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_REJECT_EDIT(groupId, memberId, formId));\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\n\r\n\r\nconst getArchiveList = async (groupId, memberId, formId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ARCHIVE_LIST(groupId, memberId, formId))\r\n}\r\nconst getArchiveElement = async (groupId, memberId, formId, archiveId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ARCHIVE_ID(groupId, memberId, formId, archiveId))\r\n}\r\n\r\nconst getFinish = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_FINISH(groupId))\r\n}\r\nconst saveFinish = async (groupId, values) => {\r\n return await __save(Endpoints.PURCHASING_GROUP_FINISH(groupId), values)\r\n}\r\nconst createDemand = async (url) => {\r\n return await RestRequestPOST(url + \"&CSRFToken=\" + reduxStore.getState().resources.userData.csrf, null, {maxRedirects: 0})\r\n}\r\n\r\nconst sendDealingsChangedNotification = async (groupId) => {\r\n return await RestRequestPOST(Endpoints.PURCHASING_GROUP_FINISH_DEALINGS_CHANGED(groupId));\r\n}\r\n\r\n\r\nconst clearResources = (resourceId) => reduxStore.dispatch(clearResource(resourceId))\r\n\r\n\r\nexport default {\r\n\r\n //collecting schedule\r\n getCollectingSchedule,\r\n saveCollectingSchedule,\r\n\r\n //template\r\n getTemplate,\r\n saveTemplate,\r\n getAvailableTemplates,\r\n getTemplateMember,\r\n getTemplateMemberForm,\r\n saveTemplateMemberForm,\r\n saveTemplateMemberFormDraft,\r\n saveTemplateMemberFormClearDraft,\r\n saveTemplateMemberFormAccept,\r\n saveTemplateMemberFormReject,\r\n saveTemplateMemberFormAskForEdit,\r\n saveTemplateMemberFormAllowEdit,\r\n saveTemplateMemberFormRejectEdit,\r\n getArchiveList,\r\n getArchiveElement,\r\n getFinish,\r\n saveFinish,\r\n createDemand,\r\n\r\n clearResources,\r\n PURCHASING_GROUP_TEMPLATE_RESOURCE_ID,\r\n PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID,\r\n sendDealingsChangedNotification\r\n}","import React, {useCallback, useEffect, useRef, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport Tr from \"translations/Translations\"\r\nimport Loading from \"components/Loading\";\r\nimport Form from \"components/Form\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport PurchasingGroupStage2ScheduleForm from \"./PurchasingGroupStage2ScheduleForm\";\r\nimport moment from \"moment\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport {PurchasingGroupStageSections} from \"../../../constants/PurchasingGroupStageSections\";\r\nimport PurchasingGroupStage2Service from \"services/PurchasingGroupStage2Service\";\r\nimport scheduleReloadTimeout from \"../../../utils/scheduleReloadTimeout\";\r\n\r\nfunction PurchasingGroupStage2Schedule(\r\n {\r\n panelRef,\r\n validationSection\r\n }) {\r\n\r\n const params = useParams();\r\n const groupId = params.id;\r\n const formId = params.section;\r\n const editable = validationSection.editable;\r\n const {enqueueSuccessSnackbar, enqueueErrorSnackbar} = useSnackbar();\r\n const [schedule, setSchedule] = useState(null);\r\n const timeout = useRef(0);\r\n\r\n useStepperStateCloseValidator(formId);\r\n\r\n const closeSection = useCallback(() => RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {\r\n id: groupId,\r\n stage: 2\r\n })), [groupId]);\r\n\r\n const getSchedule = () => {\r\n setSchedule(null);\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n PurchasingGroupStage2Service.getCollectingSchedule(groupId).then((resp) => {\r\n if (resp) {\r\n setSchedule(resp);\r\n let reloadTimeout = scheduleReloadTimeout(resp.schedule, resp.serverTime);\r\n if (reloadTimeout) {\r\n timeout.current = setTimeout(() => {\r\n getSchedule();\r\n }, reloadTimeout)\r\n }\r\n\r\n } else\r\n closeSection();\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n getSchedule();\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section);\r\n return () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n\r\n const handleSubmit = (values) => {\r\n PurchasingGroupStage2Service.saveCollectingSchedule(groupId, values).then((resp) => {\r\n if (resp && resp.success === false) {\r\n Object.keys(resp.errors).forEach((field) => {\r\n let error;\r\n switch (field) {\r\n case \"swzOpinionEndDate\":\r\n error = `${Tr('purchasing_group_opinion_swz_stage')} ${Tr('purchase_group_stage_end_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"swzOpinionStartDate\":\r\n error = `${Tr('purchasing_group_opinion_swz_stage')}: ${Tr('purchase_group_stage_start_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"collectingDataEndDate\":\r\n error = `${Tr('purchasing_group_collecting_data_stage')}: ${Tr('purchase_group_stage_end_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"collectingDataStartDate\":\r\n error = `${Tr('purchasing_group_collecting_data_stage')}: ${Tr('purchase_group_stage_start_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n default:\r\n error = `${resp.errors[field].join(\", \")}`\r\n }\r\n enqueueErrorSnackbar(error)\r\n })\r\n\r\n } else if (resp) {\r\n enqueueSuccessSnackbar(Tr(\"saved\") + \" \" + validationSection.name);\r\n PurchasingGroupSectionService.getSections(groupId, [validationSection.section, PurchasingGroupStageSections.STAGE_2_SECTION])\r\n closeSection();\r\n }\r\n\r\n })\r\n }\r\n\r\n if (!schedule) return \r\n\r\n return (\r\n )\r\n}\r\n\r\nPurchasingGroupStage2Schedule.propTypes = {}\r\n\r\nexport default PurchasingGroupStage2Schedule;","import React from 'react'\r\nimport {Tooltip, Typography} from '@material-ui/core';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport clsx from 'clsx';\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\nimport HourglassFullIcon from '@material-ui/icons/HourglassFull';\r\nimport BoldTypography from \"components/BoldTypography\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n '&>*:nth-child(2)': {\r\n flexGrow: 1,\r\n }\r\n },\r\n cursorPointer: {\r\n cursor: 'pointer'\r\n },\r\n marginRight: {\r\n marginRight: theme.spacing()\r\n }\r\n\r\n}))\r\n\r\nfunction TemplateMembersElementTitle(\r\n {\r\n groupId,\r\n index,\r\n member,\r\n open,\r\n onOpen,\r\n editable,\r\n coordinatorView,\r\n validationSection,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n\r\n return (\r\n \r\n {!coordinatorView ?\r\n \r\n {index + 1}.\r\n \r\n : \r\n }\r\n\r\n \r\n {member.memberName}\r\n \r\n {editable && !coordinatorView && !member.allFormsAccepted &&\r\n \r\n \r\n \r\n }\r\n {editable && !coordinatorView && member.askForEditPending &&\r\n \r\n \r\n \r\n }\r\n {editable && !coordinatorView && }\r\n \r\n )\r\n}\r\n\r\nTemplateMembersElementTitle.propTypes = {}\r\n\r\nexport default TemplateMembersElementTitle;","import Tr from \"translations/Translations\"\r\nexport const PurchasingGroupTemplateFieldType = {\r\n TEXT: \"TEXT\",\r\n DATE: \"DATE\",\r\n NUMBER: \"NUMBER\",\r\n PERCENTAGE: \"PERCENTAGE\",\r\n AGGREGATE: \"AGGREGATE\"\r\n}\r\nconst TR_PREFIX = \"template_field_\"\r\nexport const PurchasingGroupTemplateFieldTypeLabel = (type) => Tr(TR_PREFIX + type.toLowerCase());\r\n","import React from 'react'\r\nimport TextInput from \"components/TextInput\";\r\nimport {PurchasingGroupTemplateFieldType} from \"../../../../../templates/constants/PurchasingGroupTemplateFieldType\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Typography from \"components/Typography\";\r\nimport {Box} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport Tr from \"translations/Translations\";\r\nimport DatePicker from \"components/DatePicker\";\r\nimport moment from \"moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\n\r\nfunction TemplateMemberFormField(\r\n {\r\n formikProps,\r\n id,\r\n enabled,\r\n lastArchiveField,\r\n classes\r\n }) {\r\n const field = getObjectValue(id, formikProps.values, null);\r\n const createId = (key) => `${id}.${key}`\r\n\r\n const getInputType = () => {\r\n switch (field.type) {\r\n case PurchasingGroupTemplateFieldType.NUMBER:\r\n case PurchasingGroupTemplateFieldType.AGGREGATE:\r\n return INPUT_TYPE.NUMBER_DECIMAL\r\n case PurchasingGroupTemplateFieldType.PERCENTAGE:\r\n return INPUT_TYPE.NUMBER_POSITIVE_AMOUNT\r\n default:\r\n return undefined;\r\n }\r\n }\r\n\r\n const getReadonlyField = () => {\r\n const difference = !lastArchiveField ? false : (field.type === PurchasingGroupTemplateFieldType.TEXT || field.type === PurchasingGroupTemplateFieldType.DATE ?\r\n field.textValue !== lastArchiveField.textValue : field.decimalValue !== lastArchiveField.decimalValue)\r\n\r\n return (\r\n {!!lastArchiveField && getViewField(lastArchiveField)}\r\n {getViewField(field)}\r\n )\r\n }\r\n\r\n const getViewField = (field) => {\r\n return \r\n {field.name}\r\n {\r\n field.type === PurchasingGroupTemplateFieldType.TEXT || field.type === PurchasingGroupTemplateFieldType.DATE ?\r\n {!field.textValue ? Tr(\"empty_value\") :\r\n field.type === PurchasingGroupTemplateFieldType.DATE ? moment(field.textValue).format(DateFormats.DATE_FORMAT) : \"\"+field.textValue} :\r\n \r\n {field.decimalValue != null ? ((\"\" + field.decimalValue).replaceAll(\".\", \",\") +\r\n (field.type === PurchasingGroupTemplateFieldType.PERCENTAGE ? \" %\" : \"\"))\r\n : Tr(\"empty_value\")}\r\n \r\n }\r\n \r\n }\r\n\r\n return (\r\n enabled ?\r\n (field.type !== PurchasingGroupTemplateFieldType.AGGREGATE) &&\r\n <>\r\n {field.type === PurchasingGroupTemplateFieldType.DATE ?\r\n \r\n \r\n
:\r\n \r\n }\r\n > :\r\n getReadonlyField()\r\n )\r\n}\r\n\r\nTemplateMemberFormField.propTypes = {}\r\n\r\nexport default TemplateMemberFormField;","export const PurchasingGroupTemplateFormState = {\r\n NEW: \"NEW\",\r\n SENT: \"SENT\",\r\n VERIFIED: \"VERIFIED\",\r\n ASK_FOR_EDIT: \"ASK_FOR_EDIT\",\r\n EDIT: \"EDIT\"\r\n}","import Tr from \"translations/Translations\";\r\nimport {PurchasingGroupTemplateFieldType} from \"../../../../../templates/constants/PurchasingGroupTemplateFieldType\";\r\nimport moment from \"../../../../../../../../libs/moment\";\r\nimport DateFormats from \"../../../../../../../../constants/DateFormats\";\r\n\r\nexport default (form) => {\r\n const transformer = {\r\n purchaserName: {\r\n id: 'purchaserName',\r\n label: Tr('name')\r\n },\r\n }\r\n\r\n form.fieldValues.forEach((x, i) => {\r\n transformer[\"fieldValue_\" + x.identity] = {\r\n id: `fieldValues.${i}`,\r\n label: x.name,\r\n transform: (field) => {\r\n if (!field)\r\n return \"\";\r\n if (field.type === PurchasingGroupTemplateFieldType.TEXT) {\r\n return field.textValue || \"\";\r\n } else if(field.type === PurchasingGroupTemplateFieldType.DATE){\r\n return !!field.textValue ? moment(field.textValue).format(DateFormats.DATE_FORMAT) : \"\";\r\n } else {\r\n if (field.decimalValue != null) {\r\n return (\"\" + field.decimalValue).replace(\".\", \",\") + (field.type === PurchasingGroupTemplateFieldType.PERCENTAGE ? \" %\" : \"\")\r\n }\r\n }\r\n }\r\n }\r\n })\r\n return transformer;\r\n}\r\n\r\nexport const customParamTransformer = {\r\n decisionType: {\r\n id: \"decisionType\",\r\n label: Tr('decision'),\r\n showOnGrid: true,\r\n transform: (field) => {\r\n return field ? Tr(\"decision_type_\" + field.toLowerCase()) : null\r\n }\r\n }\r\n}\r\n","import React, {useEffect, useRef, useState} from 'react'\r\nimport {Box, makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport Tr from \"translations/Translations\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Form from \"components/Form\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport TemplateMemberFormField from \"./TemplateMemberFormField\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport {PurchasingGroupTemplateFieldType} from \"../../../../../templates/constants/PurchasingGroupTemplateFieldType\";\r\nimport {connect} from \"react-redux\";\r\nimport {PurchasingGroupTemplateFormState} from \"../constants/PurchasingGroupTemplateFormState\";\r\nimport clsx from \"clsx\";\r\nimport Typography from \"components/Typography\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport {PurchasingGroupRole} from \"../../../../constants/PurchasingGroupRole\";\r\nimport HistoryListPopup from \"components/popup/historyListPopup/HistoryListPopup\";\r\nimport HistoryButton from \"components/button/HistoryButton\";\r\nimport PurchasingGroupStage2Service from \"services/PurchasingGroupStage2Service\";\r\nimport propertyTransformer, {customParamTransformer} from \"../history/propertyTransformer\";\r\nimport moment from \"moment\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing()\r\n },\r\n\r\n\r\n fieldGrid: {\r\n paddingBottom: theme.spacing(),\r\n paddingTop: theme.spacing(2),\r\n borderBottom: \"solid 1px \" + theme.palette.border.dark\r\n },\r\n fieldBox: {\r\n paddingLeft: theme.spacing(),\r\n paddingRight: theme.spacing(),\r\n },\r\n fieldName: {\r\n fontSize: '0.75rem'\r\n },\r\n gridFieldComparing: {\r\n '&>.MuiGrid-item': {\r\n width: \"50%\"\r\n }\r\n },\r\n difference: {\r\n backgroundColor: theme.palette.warning.light\r\n },\r\n emptyValue: {\r\n color: theme.palette.action.disabled,\r\n fontStyle: \"italic\"\r\n }\r\n}))\r\n\r\nfunction TemplateMemberForm(\r\n {\r\n groupId,\r\n member,\r\n uxFormId,\r\n editable,\r\n coordinatorView,\r\n formWrapper,\r\n onDiscardChanges,\r\n onSubmit,\r\n formSubmit,\r\n purchasingGroupHeader\r\n }) {\r\n const classes = useStyle();\r\n const newForm = formWrapper.formId === 0;\r\n const formEditable = formWrapper.editable;\r\n const [submitter, setSubmitter] = useState(0);\r\n const [historyPopup, setHistoryPopup] = useState(false);\r\n const draftMode = useRef(false);\r\n\r\n const validationSchema = (allOptional) => {\r\n const getFieldVS = (field) => {\r\n switch (field.type) {\r\n case PurchasingGroupTemplateFieldType.NUMBER:\r\n return VS.object({decimalValue: allOptional || !field.required ? VS.bigDecimalOptional() : VS.bigDecimal()})\r\n case PurchasingGroupTemplateFieldType.PERCENTAGE:\r\n return VS.object({decimalValue: allOptional || !field.required ? VS.amountMax100Optional() : VS.amountMax100()})\r\n case PurchasingGroupTemplateFieldType.DATE:\r\n return VS.object({textValue: allOptional || !field.required ? VS.dateTimeNoReq() : VS.dateTimeValid()})\r\n case PurchasingGroupTemplateFieldType.TEXT:\r\n return VS.object({textValue: allOptional || !field.required ? VS.stringMaxNoRq(500) : VS.stringMax(500)})\r\n default:\r\n return VS.any();\r\n }\r\n }\r\n return VS.object({\r\n purchaserName: VS.stringMax(250),\r\n fieldValues: VS.arrayOf(VS.lazy((value) => {\r\n return getFieldVS(value)\r\n }))\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n if (submitter > 0)\r\n formSubmit[uxFormId]();\r\n // eslint-disable-next-line\r\n }, [submitter])\r\n\r\n const saveDraft = () => {\r\n draftMode.current = true;\r\n setSubmitter(submitter + 1);\r\n }\r\n\r\n const saveForm = () => {\r\n draftMode.current = false;\r\n setSubmitter(submitter + 1);\r\n }\r\n\r\n const getReadonlyNameField = () => {\r\n const difference = formWrapper.lastArchive ? formWrapper.form.purchaserName !== formWrapper.lastArchive.purchaserName : false;\r\n\r\n return (\r\n <>\r\n {\r\n formWrapper.lastArchive &&\r\n \r\n \r\n {Tr(\"change_before\")}\r\n \r\n \r\n {Tr(\"change_after\")}\r\n \r\n \r\n }\r\n \r\n {!!formWrapper.lastArchive && getViewNameField(formWrapper.lastArchive.purchaserName)}\r\n {getViewNameField(formWrapper.form.purchaserName)}\r\n \r\n >)\r\n }\r\n\r\n const getViewNameField = (value) => {\r\n return \r\n {Tr(\"name\")}\r\n {value}\r\n \r\n }\r\n const loadHistoryList = async () => {\r\n try {\r\n return await PurchasingGroupStage2Service.getArchiveList(groupId, member.memberId, formWrapper.formId)\r\n } catch (e) {\r\n setHistoryPopup(false);\r\n }\r\n }\r\n\r\n const loadHistoryElement = async (archiveId) => {\r\n return await PurchasingGroupStage2Service.getArchiveElement(groupId, member.memberId, formWrapper.formId, archiveId);\r\n }\r\n\r\n return (\r\n
\r\n {historyPopup &&
setHistoryPopup(false)}\r\n propertyTransformer={propertyTransformer(formWrapper.form)} customParamTransformer={customParamTransformer}/>}\r\n )\r\n}\r\n\r\nTemplateMemberForm.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n purchasingGroupHeader: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID],\r\n formSubmit: state.form\r\n}), {})(TemplateMemberForm);","import React, {useEffect, useState} from 'react'\r\nimport Loading from \"components/Loading\";\r\nimport {connect} from \"react-redux\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport PurchasingGroupStage2Service from \"services/PurchasingGroupStage2Service\";\r\nimport Tabs from \"components/Tabs\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Tr from \"translations/Translations\";\r\nimport AddIcon from '@material-ui/icons/AddBoxOutlined'\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport TemplateMemberForm from \"./TemplateMemberForm\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport HourglassEmptyIcon from '@material-ui/icons/HourglassEmpty';\r\nimport {Tooltip} from \"@material-ui/core\";\r\nimport {PurchasingGroupTemplateFormState} from \"../constants/PurchasingGroupTemplateFormState\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n },\r\n grid: {\r\n flexWrap: \"nowrap\",\r\n \"&>*:nth-child(2)\": {\r\n flexGrow: 1\r\n }\r\n },\r\n marginBottom: {\r\n marginBottom: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction TemplateMembersElementContent(\r\n {\r\n groupId,\r\n member,\r\n coordinatorView,\r\n editable,\r\n memberData,\r\n validationSection,\r\n stageSections,\r\n groupHeader,\r\n uxFormId,\r\n formValues,\r\n }) {\r\n const classes = useStyle();\r\n const [selectedFormId, setSelectedFormId] = useState(0);\r\n const [addFormWorking, setAddFormWorking] = useState(false);\r\n const [formWrapper, setFormWrapper] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage2Service.getTemplateMember(groupId, member.memberId).then((resp) => {\r\n if (resp && resp.formList.length > 0) {\r\n setSelectedFormId(resp.formList[0].formId)\r\n loadForm(resp.formList[0].formId)\r\n }\r\n });\r\n\r\n return () => {\r\n PurchasingGroupStage2Service.clearResources(PurchasingGroupStage2Service.PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID(member.memberId))\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const loadForm = (formId) => {\r\n setSelectedFormId(formId)\r\n setAddFormWorking(true);\r\n PurchasingGroupStage2Service.getTemplateMemberForm(groupId, member.memberId, formId).then(resp => {\r\n setFormWrapper(resp)\r\n }).finally(() => setAddFormWorking(false))\r\n }\r\n\r\n const checkFormDirty = (func) => {\r\n if (!!formValues[uxFormId + \"_dirty\"]) {\r\n simpleConfirm(\"modification_cancel_popup_text\", () => {\r\n func();\r\n })\r\n } else {\r\n func();\r\n }\r\n }\r\n\r\n const chooseForm = (formId) => {\r\n checkFormDirty(() => loadForm(formId))\r\n }\r\n\r\n const addForm = () => {\r\n checkFormDirty(() => loadForm(0))\r\n }\r\n\r\n const discardChanges = () => {\r\n checkFormDirty(() => doDiscardChanges())\r\n }\r\n\r\n const doDiscardChanges = () => {\r\n if (selectedFormId === 0) {\r\n if (memberData.formList.length > 0) {\r\n\r\n loadForm(memberData.formList[0].formId);\r\n } else {\r\n setFormWrapper(null)\r\n }\r\n } else {\r\n setFormWrapper(null);\r\n loadForm(selectedFormId);\r\n }\r\n }\r\n\r\n\r\n const onSubmit = (mode, values) => {\r\n let func;\r\n\r\n switch (mode) {\r\n case \"save\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberForm\r\n break;\r\n case \"draft\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberFormDraft\r\n break;\r\n case \"clearDraft\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberFormClearDraft\r\n break;\r\n case \"accept\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberFormAccept\r\n break;\r\n case \"reject\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberFormReject\r\n break;\r\n case \"askForEdit\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberFormAskForEdit\r\n break;\r\n case \"allowEdit\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberFormAllowEdit\r\n break;\r\n case \"rejectEdit\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberFormRejectEdit\r\n break;\r\n default:\r\n throw new Error(`Not supported mode: ${mode}`)\r\n }\r\n\r\n func(groupId, member.memberId, formWrapper.formId, values)\r\n .then(resp => {\r\n if (resp) {\r\n setFormWrapper(null);\r\n if (formWrapper.formId === 0) {\r\n setAddFormWorking(true)\r\n PurchasingGroupStage2Service.getTemplateMember(groupId, member.memberId).then(() => {\r\n loadForm(resp.formId)\r\n });\r\n } else {\r\n setTimeout(setFormWrapper, 100, resp)\r\n }\r\n if(\"accept\" === mode || \"allowEdit\" === mode) {\r\n enqueueSuccessSnackbar(\"😀 \" + Tr(\"confirmed\"))\r\n } else if(\"rejectEdit\" === mode || \"reject\" === mode) {\r\n enqueueSuccessSnackbar(\"😒 \" + Tr(\"rejected\") )\r\n } else if(\"askForEdit\" === mode) {\r\n enqueueSuccessSnackbar(\"🙏 \" + Tr(\"purchase_groups_form_ask_edit\") )\r\n } else {\r\n enqueueSuccessSnackbar(\"🫡 \" + Tr(\"saved\"))\r\n }\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n }\r\n })\r\n }\r\n\r\n const getIcon = (formListElement) => {\r\n switch (formListElement.state) {\r\n case PurchasingGroupTemplateFormState.ASK_FOR_EDIT:\r\n return \r\n \r\n \r\n case PurchasingGroupTemplateFormState.SENT:\r\n return \r\n \r\n \r\n default :\r\n return undefined;\r\n }\r\n }\r\n\r\n\r\n if (!memberData)\r\n return \r\n return (\r\n {coordinatorView &&
}\r\n {editable && validationSection.addTplAvailable && (!formWrapper || formWrapper.formId > 0) &&\r\n {Tr(\"purchase_groups_form_add\")}}\r\n\r\n {\r\n\r\n \r\n {\r\n !!selectedFormId && memberData.formList.length > 1 && (!formWrapper || formWrapper.formId > 0) ?\r\n ({\r\n label: x.purchaserName,\r\n value: x.formId,\r\n disabled: addFormWorking,\r\n icon: getIcon(x)\r\n }))}\r\n value={selectedFormId}\r\n onChange={chooseForm}\r\n vertical\r\n /> : \r\n }\r\n {addFormWorking && }\r\n {!addFormWorking && !!formWrapper &&\r\n \r\n }\r\n \r\n }\r\n\r\n )\r\n}\r\n\r\nTemplateMembersElementContent.propTypes = {}\r\n\r\nexport default connect((state, {member}) => ({\r\n memberData: state.resources[PurchasingGroupStage2Service.PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID(member.memberId)],\r\n stageSections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID],\r\n groupHeader: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID],\r\n formValues: state.formValues\r\n}), {})(TemplateMembersElementContent);","import React, {useState} from 'react'\r\nimport {Collapse, makeStyles} from \"@material-ui/core\";\r\nimport MembersElementTitle from \"./TemplateMembersElementTitle\";\r\nimport TemplateMembersElementContent from \"./TemplateMembersElementContent\";\r\nimport PropTypes from \"prop-types\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport {connect} from \"react-redux\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper,\r\n padding: `${theme.spacing()}px ${theme.spacing(2)}px`,\r\n marginBottom: theme.spacing()\r\n }\r\n}))\r\n\r\nfunction TemplateMembersElement(\r\n {\r\n index,\r\n groupId,\r\n member,\r\n coordinatorView,\r\n editable,\r\n search,\r\n validationSection,\r\n formIdPrefix,\r\n formValues\r\n }) {\r\n const classes = useStyle();\r\n const [open, setOpen] = useState(false);\r\n const FORM_ID = formIdPrefix + member.memberId;\r\n\r\n const toggleMember = () => {\r\n if (open && !!formValues[FORM_ID + \"_dirty\"]) {\r\n simpleConfirm(\"modification_cancel_popup_text\", () => {\r\n setOpen(!open)\r\n })\r\n } else {\r\n setOpen(!open)\r\n }\r\n }\r\n\r\n\r\n return ( -1} unmountOnExit={false}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nTemplateMembersElement.propTypes = {\r\n index: PropTypes.number,\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n member: PropTypes.shape({\r\n allFormsAccepted: PropTypes.bool.isRequired,\r\n memberId: PropTypes.number.isRequired,\r\n memberName: PropTypes.string.isRequired\r\n }),\r\n coordinatorView: PropTypes.bool.isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n search: PropTypes.shape({\r\n search: PropTypes.string\r\n }).isRequired,\r\n validationSection: PropTypes.object.isRequired,\r\n formIdPrefix: PropTypes.string.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formValues: state.formValues\r\n}), {})(TemplateMembersElement);","import React, {useState} from 'react'\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport TemplateMembersElement from \"./TemplateMembersElement\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n search: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction TemplateMembersList(\r\n {\r\n groupId,\r\n members,\r\n coordinatorView,\r\n editable,\r\n validationSection,\r\n formIdPrefix\r\n }) {\r\n const classes = useStyle();\r\n const [search, setSearch] = useState({});\r\n\r\n return (\r\n {!coordinatorView && }\r\n {\r\n members.map((x, i) => ())\r\n }\r\n
)\r\n}\r\n\r\nTemplateMembersList.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n members: PropTypes.array.isRequired,\r\n coordinatorView: PropTypes.bool.isRequired,\r\n editable: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default TemplateMembersList;","import React, {useEffect, useRef, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport Loading from \"components/Loading\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport scheduleReloadTimeout from \"../../../utils/scheduleReloadTimeout\";\r\nimport {PurchasingGroupStageSections} from \"../../../constants/PurchasingGroupStageSections\";\r\nimport UserService from \"services/UserService\";\r\nimport PurchasingGroupStage2Service from \"services/PurchasingGroupStage2Service\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Tr from \"translations/Translations\";\r\nimport SelectOrganization from \"components/popup/selectOrganization/SelectOrganization\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport TemplateMembersList from \"./components/TemplateMembersList\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport reduxStore from \"redux/store\"\r\nimport {PurchasingGroupRole} from \"../../../constants/PurchasingGroupRole\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage2Template(\r\n {\r\n panelRef,\r\n validationSection,\r\n template,\r\n purchasingGroupHeader,\r\n stageSections\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const groupId = params.id;\r\n const formIdPrefix = params.section;\r\n const [availableTemplates, setAvailableTemplates] = useState(null);\r\n const timeout = useRef(0);\r\n const coordinatorView = purchasingGroupHeader.userRole === PurchasingGroupRole.MEMBER;\r\n const editable = validationSection.editable;\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n useStepperStateCloseValidator(formIdPrefix, () => {\r\n const formValues = reduxStore.getState()?.formValues;\r\n const index = Object.keys(formValues).findIndex(formId => formId.startsWith(formIdPrefix) && formId.endsWith(\"_dirty\") && formValues[formId] === true);\r\n return index === -1;\r\n });\r\n\r\n\r\n const getTemplate = () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n PurchasingGroupStage2Service.getTemplate(groupId);\r\n\r\n const mainSection = stageSections[PurchasingGroupStageSections.STAGE_2_SECTION];\r\n if (mainSection && mainSection.schedule) {\r\n UserService.serverTime().then(serverTime => {\r\n let reloadTimeout = scheduleReloadTimeout(mainSection.schedule, serverTime);\r\n if (reloadTimeout) {\r\n timeout.current = setTimeout(() => {\r\n getTemplate();\r\n }, reloadTimeout)\r\n }\r\n })\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getTemplate();\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n return () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n PurchasingGroupStage2Service.clearResources(PurchasingGroupStage2Service.PURCHASING_GROUP_TEMPLATE_RESOURCE_ID)\r\n }\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n const loadAvailableTemplates = () => {\r\n PurchasingGroupStage2Service.getAvailableTemplates(groupId).then((resp) => setAvailableTemplates(resp))\r\n }\r\n const onTemplateSelect = (value) => {\r\n setAvailableTemplates(null);\r\n PurchasingGroupStage2Service.saveTemplate(groupId, {templateId: value.orgId, templateName: value.name})\r\n .then((resp) => {\r\n if (resp) {\r\n enqueueSuccessSnackbar(Tr(\"saved\"));\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n }\r\n });\r\n }\r\n\r\n if (!template) return \r\n\r\n return (\r\n \r\n {!coordinatorView && }\r\n {!coordinatorView && \r\n {template.canChooseTemplate &&\r\n {Tr(\"choose_template\")}\r\n }\r\n {template.templateId > 0 &&\r\n {Tr(\"chosen_template\")}: {template.templateName}\r\n }\r\n }\r\n\r\n \r\n\r\n\r\n {!!availableTemplates &&\r\n ({orgId: \"\" + x.templateId, name: x.templateName}))}\r\n onCancel={() => setAvailableTemplates(null)}\r\n onConfirm={onTemplateSelect}\r\n open\r\n title=\"choose_template\"\r\n />\r\n }\r\n
\r\n )\r\n}\r\n\r\nPurchasingGroupStage2Template.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n stageSections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID],\r\n template: state.resources[PurchasingGroupStage2Service.PURCHASING_GROUP_TEMPLATE_RESOURCE_ID],\r\n purchasingGroupHeader: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID]\r\n}), {})(PurchasingGroupStage2Template);","import React, {useEffect} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport DealingsService from \"services/DealingsService\";\r\nimport PositionAndPartsForm from \"../../../../../MyProcedure/scenes/part1/panels/dealings/PositionAndPartsForm\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {PurchasingGroupStageSections} from \"../../../constants/PurchasingGroupStageSections\";\r\n\r\nfunction PurchasingGroupStage2Dealing(\r\n {\r\n panelRef,\r\n validationSection,\r\n purchasingGroupHeader,\r\n }) {\r\n const params = useParams();\r\n const groupId = params.id;\r\n const section = params.section;\r\n\r\n useEffect(() => {\r\n DealingsService.getList(groupId);\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n return () => {\r\n DealingsService.clearResources('dealing');\r\n DealingsService.clearResources('dealingsList');\r\n }\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n const saveSuccessCallback = () => {\r\n PurchasingGroupSectionService.getSections(groupId, [validationSection.section, PurchasingGroupStageSections.FINISH]);\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {\r\n id: groupId,\r\n stage: 2\r\n }))\r\n }\r\n\r\n const saveErrorCallback = () => {\r\n\r\n }\r\n\r\n\r\n return ()\r\n}\r\n\r\nPurchasingGroupStage2Dealing.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n stageSections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID],\r\n purchasingGroupHeader: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID]\r\n}), {})(PurchasingGroupStage2Dealing);","import React, {useRef, useState} from 'react'\r\nimport ButtonGroup from '@material-ui/core/ButtonGroup';\r\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\r\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Popper from '@material-ui/core/Popper';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport MenuList from '@material-ui/core/MenuList';\r\nimport PropTypes from 'prop-types';\r\nimport Button from 'components/Button';\r\nimport {CircularProgress, withStyles} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n zindex: {\r\n zIndex: 100\r\n }\r\n})\r\n\r\nfunction SplitButton(\r\n {\r\n className,\r\n buttonClassName,\r\n classes,\r\n label= Tr('additional_actions'),\r\n variant = 'contained',\r\n color = 'primary',\r\n working,\r\n disabled,\r\n buttons,//created by createButton\r\n hideEmpty\r\n }) {\r\n\r\n const [open, setOpen] = useState(false);\r\n const anchorRef = useRef(null);\r\n\r\n const handleClick = (event, index) => {\r\n setOpen(false);\r\n buttons[index].onClick();\r\n };\r\n\r\n const handleToggle = () => {\r\n setOpen((prevOpen) => !prevOpen);\r\n };\r\n\r\n const handleClose = (event) => {\r\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n return;\r\n }\r\n setOpen(false);\r\n };\r\n\r\n\r\n return (\r\n buttons.length === 0 && !!hideEmpty ?\r\n null\r\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\nSplitButton.propTypes = {\r\n className: PropTypes.string,\r\n classes: PropTypes.any,\r\n buttonClassName: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n variant: PropTypes.oneOf([\"text\", \"outlined\", \"contained\"]),\r\n color: PropTypes.string,\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n buttons: PropTypes.array.isRequired,//created by createButton\r\n hideEmpty:PropTypes.bool,\r\n}\r\n\r\nSplitButton.defaultProps = {}\r\n\r\nexport const createButton = (label, onClick, disabled = false) => ({\r\n label,\r\n onClick,\r\n disabled\r\n});\r\n\r\n\r\nexport default withStyles(style)(SplitButton);","import React, {useEffect, useMemo, useState} from 'react'\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {useParams} from \"react-router\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport PurchasingGroupStage2Service from \"services/PurchasingGroupStage2Service\";\r\nimport Loading from \"components/Loading\";\r\nimport Tr from \"translations/Translations\";\r\nimport SplitButton, {createButton as createSplitButton} from \"components/popup/components/SplitButton\";\r\nimport {PurchasingGroupStageSections} from \"../../../constants/PurchasingGroupStageSections\";\r\nimport {ProcedureType, ProcedureTypeTr} from \"constants/ProcedureType\";\r\nimport {confirmComplex} from \"libs/ConfirmNotification\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {connect} from \"react-redux\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport Typography from \"components/Typography\";\r\nimport Button from \"components/Button\";\r\nimport RouterPath from \"../../../../../../../libs/RouterPath\";\r\nimport PurchasingGroupStage1Service from \"../../../../../../../services/PurchasingGroupStage1Service\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage2Finish(\r\n {\r\n panelRef,\r\n validationSection,\r\n stageSections\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const groupId = params.id;\r\n const editable = validationSection.editable;\r\n const [working, setWorking] = useState(false);\r\n const [finishData, setFinishData] = useState(null);\r\n const {enqueueSuccessSnackbar, enqueueErrorSnackbar} = useSnackbar();\r\n\r\n const getSectionData = async () => {\r\n await PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.FINISH)\r\n const section = await PurchasingGroupStage2Service.getFinish(groupId);\r\n if (section) {\r\n setFinishData(section);\r\n }\r\n return section;\r\n }\r\n\r\n useEffect(() => {\r\n getSectionData();\r\n // eslint-disable-next-line\r\n }, [groupId]);\r\n\r\n const createDemand = (type) => {\r\n\r\n confirmComplex({\r\n confirmText: Tr(\"create_new_procedure_confirm\"),\r\n confirmText2: ProcedureTypeTr[ProcedureType[type]],\r\n onConfirm: () => {\r\n setWorking(true);\r\n\r\n PurchasingGroupStage2Service.saveFinish(groupId, {item: type}).then((resp) => {\r\n if (resp) {\r\n PurchasingGroupStage2Service.createDemand(resp.result).then(() => {\r\n getSectionData().then(resp => {\r\n if(resp.demandId && resp.hasDemandPrivilege) {\r\n RouterPath.redirect(RouterPath.createPath(RouterPath.myProcedure.steps.MP_1_ID, {id: resp.demandId}));\r\n } else {\r\n PurchasingGroupStage1Service.getHeader(groupId);\r\n }\r\n }).finally((resp) => {\r\n setWorking(false);\r\n enqueueSuccessSnackbar(Tr(\"demand_created\"))\r\n });\r\n })\r\n }\r\n })\r\n },\r\n translateConfirmTexts: false\r\n })\r\n\r\n\r\n }\r\n\r\n const buttons = useMemo(() => finishData ? finishData.procedureTypes.map(x =>\r\n createSplitButton(ProcedureTypeTr[ProcedureType[x]], () => createDemand(x), !editable)) : [],\r\n // eslint-disable-next-line\r\n [finishData, editable])\r\n\r\n const sectionErrors = useMemo(() => {\r\n return Object.keys(stageSections).map(x => stageSections[x])\r\n .filter(x => x.section !== validationSection.section && (x.status === DemandValidationSectionStatus.ERROR || x.status === DemandValidationSectionStatus.DISABLED))\r\n .map(x => x.name)\r\n }, [stageSections, validationSection])\r\n\r\n const sendDealingsChangedNotification = () => {\r\n setWorking(true);\r\n PurchasingGroupStage2Service.sendDealingsChangedNotification(groupId).then(resp => {\r\n setWorking(false);\r\n if (resp && resp.result) {\r\n enqueueSuccessSnackbar(Tr(\"notification_sent\"));\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section);\r\n PurchasingGroupStage2Service.getFinish(groupId).then(section => {\r\n if (section) {\r\n setFinishData(section);\r\n }\r\n });\r\n } else {\r\n enqueueErrorSnackbar(Tr(\"unknown_error_message\"));\r\n }\r\n });\r\n }\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n {\r\n\r\n !finishData ? :\r\n <>\r\n {finishData.hasDemandCreated && {Tr(\"demand_created\")}}\r\n\r\n {\r\n sectionErrors.length > 0 ?\r\n {`${Tr(\"purchase_group_finish_missing_sections\")}: ${sectionErrors.join(\", \")}`}\r\n :\r\n \r\n }\r\n\r\n {finishData.canSendDealingsChangedNotification &&\r\n \r\n }\r\n >\r\n }\r\n \r\n
)\r\n}\r\n\r\nPurchasingGroupStage2Finish.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n stageSections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID]\r\n}))(PurchasingGroupStage2Finish);","import {kebabCase} from \"lodash/string\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport PurchasingGroupStage1BasicData from \"../stage1/panels/basicData/PurchasingGroupStage1BasicData\";\r\nimport PurchasingGroupStage1Commission from \"../stage1/panels/commission/PurchasingGroupStage1Commission\";\r\nimport PurchasingGroupStage1Schedule from \"../stage1/panels/schedule/PurchasingGroupStage1Schedule\";\r\nimport PurchasingGroupStage1Members from \"../stage1/panels/members/PurchasingGroupStage1Members\";\r\nimport PurchasingGroupStage1PapersGenerator from \"../stage1/panels/papersGenerator/PurchasingGroupStage1PapersGenerator\";\r\nimport PurchasingGroupStage1Opinion from \"../stage1/panels/opinion/PurchasingGroupStage1Opinion\";\r\nimport PurchasingGroupStage1FinishPreparing from \"../stage1/panels/finishPreparing/PurchasingGroupStage1FinishPreparing\";\r\nimport PurchasingGroupStage2Schedule from \"../stage2/panels/collectingSchedule/PurchasingGroupStage2Schedule\";\r\nimport PurchasingGroupStage2Template from \"../stage2/panels/template/PurchasingGroupStage2Template\";\r\nimport PurchasingGroupStage2Dealing from \"../stage2/panels/dealing/PurchasingGroupStage2Dealing\";\r\nimport PurchasingGroupStage2Finish from \"../stage2/panels/finish/PurchasingGroupStage2Finish\";\r\n\r\nexport const PurchasingGroupStageSections = {\r\n //STAGE 1 sections\r\n STAGE_1_SECTION: \"STAGE_1_SECTION\",\r\n BASIC_DATA: \"BASIC_DATA\",\r\n COMMISSION: \"COMMISSION\",\r\n MEMBERS: \"MEMBERS\",\r\n SCHEDULE: \"SCHEDULE\",\r\n OPINION: \"OPINION\",\r\n FINISH_PREPARING: \"FINISH_PREPARING\",\r\n PAPERS_GENERATOR: \"PAPERS_GENERATOR\",\r\n\r\n //STAGE 2 sections\r\n STAGE_2_SECTION: \"STAGE_2_SECTION\",\r\n SWZ: \"SWZ\",\r\n COLLECTING_SCHEDULE: \"COLLECTING_SCHEDULE\",\r\n OPINION_SWZ: \"OPINION_SWZ\",\r\n TEMPLATE: \"TEMPLATE\",\r\n DEALING: \"DEALING\",\r\n FINISH: \"FINISH\",\r\n COLLECTING_PAPERS_GENERATOR: \"COLLECTING_PAPERS_GENERATOR\"\r\n}\r\n\r\n\r\nexport const StageSectionNameToSectionParam = Object.keys(PurchasingGroupStageSections).reduce((prev, curr) => {\r\n prev[curr] = kebabCase(curr);\r\n return prev;\r\n}, {});\r\n\r\nexport const StageSectionParamToSectionName = Object.keys(PurchasingGroupStageSections).reduce((prev, curr) => {\r\n prev[kebabCase(curr)] = curr;\r\n return prev;\r\n}, {});\r\n\r\n\r\nexport const StageSectionsComponents = {\r\n\r\n BASIC_DATA: PurchasingGroupStage1BasicData,\r\n COMMISSION: PurchasingGroupStage1Commission,\r\n MEMBERS: PurchasingGroupStage1Members,\r\n SCHEDULE: PurchasingGroupStage1Schedule,\r\n OPINION: PurchasingGroupStage1Opinion,\r\n FINISH_PREPARING: PurchasingGroupStage1FinishPreparing,\r\n PAPERS_GENERATOR: PurchasingGroupStage1PapersGenerator,\r\n\r\n SWZ: PurchasingGroupStage1Members,\r\n COLLECTING_SCHEDULE: PurchasingGroupStage2Schedule,\r\n OPINION_SWZ: PurchasingGroupStage1Opinion,\r\n TEMPLATE: PurchasingGroupStage2Template,\r\n DEALING: PurchasingGroupStage2Dealing,\r\n FINISH: PurchasingGroupStage2Finish,\r\n COLLECTING_PAPERS_GENERATOR: PurchasingGroupStage1PapersGenerator\r\n}\r\n\r\nexport const getSectionVariant = (section) => section ? (section.status === DemandValidationSectionStatus.OK ? 'Done' : (section.status === DemandValidationSectionStatus.DISABLED ? 'Wait' : (section.status === DemandValidationSectionStatus.ERROR ? 'Required' : (section.required ? 'Required' : 'Optional')))) : \"Wait\";","import Endpoints from 'constants/Endpoints';\r\nimport {clearResource, setResource, setSaveStatusClosed, setSaveStatusError, setSaveStatusLoading} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport Tr from \"../translations/Translations\";\r\nimport applySearchParams from \"../libs/applySearchParams\";\r\nimport applySortParams from \"../libs/applySortParams\";\r\nimport downloadFileWithPreloadUrl from \"../libs/downloadFileWithPreloadUrl\";\r\nimport PurchasingGroupSectionService from \"./PurchasingGroupSectionService\";\r\nimport {PurchasingGroupStageSections} from \"../pages/purchaser/PurchasingGroup/stages/constants/PurchasingGroupStageSections\";\r\n\r\nconst PURCHASING_GROUP_HEADER_RESOURCE_ID = \"purchasingGroupHeader\";\r\nconst PURCHASING_GROUP_MEMBERS_RESOURCE_ID = \"purchasingGroupMembers\";\r\nconst PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID = \"purchasingGroupMembersDocuments\";\r\nconst PURCHASING_GROUP_OPINIONS_RESOURCE_ID = \"purchasingGroupOpinions\";\r\nconst PURCHASING_GROUP_MEMBER_RESOURCE_ID = (memberId) => `purchasingGroupMember_${memberId}`;\r\nconst PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID = (opinionId) => `purchasingGroupOpinion_${opinionId}`;\r\n\r\nconst __get = async (url, resourcesName) => {\r\n try {\r\n let res = await RestRequestGET(url)\r\n if (resourcesName) {\r\n reduxStore.dispatch(setResource(resourcesName, res))\r\n }\r\n return res;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst __save = async (url, values) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n const resp = await RestRequestPOST(url, values)\r\n isResponseValid(resp, (e) => {\r\n throw new Error(e);\r\n })\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n return resp;\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\n\r\nconst getHeader = async (groupId) => {\r\n await __get(Endpoints.PURCHASING_GROUP_HEADER(!groupId ? -1 : groupId), PURCHASING_GROUP_HEADER_RESOURCE_ID)\r\n}\r\nconst getRelatedObjects = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_RELATED_OBJECTS(groupId))\r\n}\r\n\r\nconst getPurchasingGroupList = async (searchData) => {\r\n const {pagination, search, sort} = searchData;\r\n\r\n let params = {\r\n ...pagination\r\n }\r\n params = applySearchParams(search, params);\r\n params = applySortParams(sort, params);\r\n return await RestRequestGET(Endpoints.PURCHASING_GROUP_LIST(), {params});\r\n};\r\n\r\nconst getPurchasingGroupListActions = () => {\r\n return __get(Endpoints.PURCHASING_GROUP_LIST_ACTIONS())\r\n}\r\n\r\nconst getPurchasingGroupMemberList = async (searchData) => {\r\n const {pagination, search, sort} = searchData;\r\n\r\n let params = {\r\n ...pagination\r\n }\r\n params = applySearchParams(search, params);\r\n params = applySortParams(sort, params);\r\n return await RestRequestGET(Endpoints.PURCHASING_GROUP_MEMBER_LIST(), {params});\r\n};\r\n\r\nconst getArchiveList = async (groupId, archiveType) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_ARCHIVE_LIST(groupId, archiveType))\r\n}\r\nconst getArchiveElement = async (groupId, archiveType, archiveId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_ARCHIVE_ID(groupId, archiveType, archiveId))\r\n}\r\n\r\n\r\nconst getBasicData = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_BASIC_DATA(!groupId ? -1 : groupId))\r\n}\r\nconst saveBasicData = async (groupId, values) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_BASIC_DATA(!groupId ? -1 : groupId), values)\r\n if (isResponseValid(resp, (e) => {\r\n reduxStore.dispatch(setSaveStatusError(e));\r\n })) {\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n return resp.result;\r\n }\r\n}\r\n\r\n\r\nconst getCommission = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COMMISSION(groupId))\r\n}\r\nconst saveCommission = async (groupId, values) => {\r\n return await __save(Endpoints.PURCHASING_GROUP_COMMISSION(groupId), values)\r\n}\r\nconst getCommissionHistory = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COMMISSION_HISTORY(groupId))\r\n}\r\n\r\n\r\nconst getSchedule = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_SCHEDULE(groupId))\r\n}\r\nconst saveSchedule = async (groupId, values) => {\r\n try {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_SCHEDULE(groupId), values);\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n return resp;\r\n } catch (e) {\r\n }\r\n}\r\n\r\n\r\nconst getMembers = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS(groupId), PURCHASING_GROUP_MEMBERS_RESOURCE_ID)\r\n}\r\nconst getMembersRow = async (groupId, memberId) => {\r\n const members = await __get(Endpoints.PURCHASING_GROUP_MEMBERS(groupId), PURCHASING_GROUP_MEMBERS_RESOURCE_ID);\r\n if (members.length === 1) {\r\n const member = members[0];\r\n const {resources} = reduxStore.getState();\r\n const res = resources[PURCHASING_GROUP_MEMBERS_RESOURCE_ID].map(x => x.identity === member.identity ? member : x)\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_RESOURCE_ID, res))\r\n }\r\n}\r\n\r\nconst updateMemberName = async (groupId, memberId, values) => {\r\n const resp = await RestRequestPUT(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID(groupId, memberId), values)\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = resources[PURCHASING_GROUP_MEMBERS_RESOURCE_ID].map(x => x.identity === resp.identity ? resp : x)\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_RESOURCE_ID, res))\r\n }\r\n}\r\n\r\nconst rejectMember = async (groupId, memberId) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_REJECT(groupId, memberId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = resources[PURCHASING_GROUP_MEMBERS_RESOURCE_ID].map(x => x.identity === resp.identity ? resp : x)\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_RESOURCE_ID, res))\r\n PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n }\r\n}\r\n\r\nconst restoreMember = async (groupId, memberId) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_RESTORE(groupId, memberId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = resources[PURCHASING_GROUP_MEMBERS_RESOURCE_ID].map(x => x.identity === resp.identity ? resp : x)\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_RESOURCE_ID, res))\r\n PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n }\r\n}\r\n\r\nconst withdrawParticipationMember = async (groupId, memberId) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_WITHDRAW_PARTICIPATION(groupId, memberId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {canConfirm, confirmationDate} = resp;\r\n const {resources} = reduxStore.getState();\r\n const member = resources[PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId)];\r\n if (member) {\r\n const res = {...member, canConfirm, confirmationDate}\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId), res))\r\n }\r\n }\r\n}\r\n\r\nconst confirmParticipationMember = async (groupId, memberId) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_CONFIRM_PARTICIPATION(groupId, memberId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {canConfirm, confirmationDate} = resp;\r\n const {resources} = reduxStore.getState();\r\n const member = resources[PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId)];\r\n if (member) {\r\n const res = {...member, canConfirm, confirmationDate}\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId), res))\r\n }\r\n }\r\n}\r\n\r\n\r\nconst resendInviteNotification = async (groupId, memberId) => {\r\n await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_RESEND_INVITE_NOTIFICATION(groupId, memberId))\r\n}\r\n\r\nconst deleteMember = async (groupId, memberId) => {\r\n const resp = await RestRequestDELETE(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID(groupId, memberId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = resources[PURCHASING_GROUP_MEMBERS_RESOURCE_ID].filter(x => x.identity !== memberId)\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_RESOURCE_ID, res))\r\n }\r\n}\r\n\r\nconst getMembersAvailableConcerns = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS_AVAILABLE_CONCERNS(groupId));\r\n}\r\n\r\nconst addMembers = async (groupId, values) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER(groupId), values)\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = [...resources[PURCHASING_GROUP_MEMBERS_RESOURCE_ID], ...resp.result]\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_RESOURCE_ID, res))\r\n return resp.result;\r\n }\r\n\r\n}\r\n\r\nconst getAllMembersDocuments = async (groupId, documentsApiPathType) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS(groupId, documentsApiPathType), PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID)\r\n}\r\nconst addAllMembersDocuments = async (groupId, documentsApiPathType, values) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS(groupId, documentsApiPathType), {documents: values})\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const noErrorsDocs = resp.filter(d => d.error === null);\r\n\r\n if (noErrorsDocs.length > 0) {\r\n const {resources} = reduxStore.getState();\r\n const res = {\r\n ...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID],\r\n documents: [...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID].documents, ...noErrorsDocs]\r\n }\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID, res))\r\n }\r\n return resp;\r\n }\r\n}\r\nconst generateGroupAgreementDocument = async (groupId) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS_GENERATE_GROUP_AGREEMENT(groupId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = {\r\n ...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID],\r\n documents: [...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID].documents, ...resp.result]\r\n }\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID, res))\r\n return resp.result;\r\n }\r\n}\r\n\r\nconst updateAllMembersDocument = async (groupId, {documentsApiPathType, documentId}, description) => {\r\n const resp = await RestRequestPUT(Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID(groupId, documentsApiPathType, documentId), {description})\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = {\r\n ...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID],\r\n documents: [...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID].documents.map(x => x.identity === resp.identity ? resp : x)]\r\n }\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID, res))\r\n }\r\n}\r\nconst publishAllMembersDocument = async (groupId, documentsApiPathType, documentId) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_PUBLISH(groupId, documentsApiPathType, documentId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = {\r\n ...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID],\r\n documents: [...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID].documents.map(x => x.identity === resp.result.identity ? resp.result : x)]\r\n }\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID, res))\r\n }\r\n}\r\nconst unpublishAllMembersDocument = async (groupId, documentsApiPathType, documentId) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_UNPUBLISH(groupId, documentsApiPathType, documentId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = {\r\n ...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID],\r\n documents: [...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID].documents.map(x => x.identity === resp.result.identity ? resp.result : x)]\r\n }\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID, res))\r\n }\r\n}\r\n\r\n\r\nconst deleteAllMembersDocument = async (groupId, documentsApiPathType, documentId) => {\r\n const resp = await RestRequestDELETE(Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID(groupId, documentsApiPathType, documentId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n\r\n const res = {\r\n ...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID],\r\n documents: resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID].documents.filter(x => x.identity !== documentId)\r\n }\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID, res))\r\n }\r\n}\r\n\r\nconst downloadAllMembersDocument = async (demandId, documentsApiPathType, identity, openInBrowser) => {\r\n await downloadFileWithPreloadUrl(\r\n Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_URL(demandId, documentsApiPathType, identity, openInBrowser),\r\n openInBrowser);\r\n}\r\n\r\nconst getMember = async (groupId, memberId) => {\r\n await __get(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID(groupId, memberId), PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId))\r\n}\r\nconst addMemberDocuments = async (groupId, memberId, values) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT(groupId, memberId), {documents: values})\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const noErrorsDocs = resp.filter(d => d.error === null);\r\n\r\n if (noErrorsDocs.length > 0) {\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId);\r\n const cur = resources[resourceId];\r\n const res = {\r\n ...cur,\r\n memberDocuments: {\r\n ...cur.memberDocuments,\r\n documents: [...cur.memberDocuments.documents, ...noErrorsDocs]\r\n }\r\n }\r\n reduxStore.dispatch(setResource(resourceId, res))\r\n }\r\n return resp;\r\n }\r\n}\r\n\r\nconst updateMemberDocument = async (groupId, {memberId, documentId}, description) => {\r\n const resp = await RestRequestPUT(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT_ID(groupId, memberId, documentId), {description})\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId);\r\n const cur = resources[resourceId];\r\n\r\n const res = {\r\n ...cur,\r\n memberDocuments: {\r\n ...cur.memberDocuments,\r\n documents: cur.memberDocuments.documents.map(x => x.identity === documentId ? resp : x)\r\n }\r\n }\r\n reduxStore.dispatch(setResource(resourceId, res))\r\n }\r\n}\r\nconst deleteMemberDocument = async (groupId, memberId, documentId) => {\r\n const resp = await RestRequestDELETE(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT_ID(groupId, memberId, documentId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId);\r\n const cur = resources[resourceId];\r\n\r\n const res = {\r\n ...cur,\r\n memberDocuments: {\r\n ...cur.memberDocuments,\r\n documents: cur.memberDocuments.documents.filter(x => x.identity !== documentId)\r\n }\r\n }\r\n reduxStore.dispatch(setResource(resourceId, res))\r\n\r\n }\r\n}\r\nconst downloadMemberDocument = async (demandId, memberId, documentId, openInBrowser) => {\r\n await downloadFileWithPreloadUrl(\r\n Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT_ID_URL(demandId, memberId, documentId, openInBrowser),\r\n openInBrowser);\r\n}\r\n\r\n\r\nconst getAvailableMemberUsers = async (groupId, memberId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_USER(groupId, memberId));\r\n}\r\nconst addMemberUser = async (groupId, memberId, userIds) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_USER(groupId, memberId), {list: userIds})\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId);\r\n const cur = resources[resourceId];\r\n const res = {\r\n ...cur,\r\n users: [...cur.users, ...resp]\r\n }\r\n reduxStore.dispatch(setResource(resourceId, res));\r\n await getMembersRow(groupId, memberId)\r\n }\r\n}\r\nconst deleteMemberUser = async (groupId, memberId, userId) => {\r\n const resp = await RestRequestDELETE(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_USER_ID(groupId, memberId, userId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId);\r\n const cur = resources[resourceId];\r\n\r\n const res = {\r\n ...cur,\r\n users: cur.users.filter(x => x.identity !== userId)\r\n }\r\n reduxStore.dispatch(setResource(resourceId, res))\r\n await getMembersRow(groupId, memberId)\r\n }\r\n}\r\n\r\n\r\n//opinion\r\n\r\nconst getOpinions = async (groupId, type) => {\r\n return __get(Endpoints.PURCHASING_GROUP_OPINION(groupId, type), PURCHASING_GROUP_OPINIONS_RESOURCE_ID)\r\n}\r\n\r\nconst getOpinionAvailableMembers = async (groupId, type) => {\r\n return __get(Endpoints.PURCHASING_GROUP_OPINION_AVAILABLE_MEMBERS(groupId, type))\r\n}\r\n\r\nconst addOpinionForMember = async (groupId, type, memberId) => {\r\n const newOpinion = await __save(Endpoints.PURCHASING_GROUP_OPINION_MEMBER_ID(groupId, type, memberId));\r\n if (newOpinion) {\r\n const {resources} = reduxStore.getState();\r\n const cur = resources[PURCHASING_GROUP_OPINIONS_RESOURCE_ID];\r\n\r\n const newRes = [\r\n ...cur,\r\n newOpinion\r\n ]\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_OPINIONS_RESOURCE_ID, newRes))\r\n return newOpinion;\r\n }\r\n}\r\n\r\nconst getOpinionMessages = async (groupId, type, opinionId, editable) => {\r\n if (opinionId > 0) {\r\n const messages = await __get(Endpoints.PURCHASING_GROUP_OPINION_ID(groupId, type, opinionId), PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID(opinionId));\r\n if (messages) {\r\n const ids = messages.filter(x => x.read === false).map(x => x.identity);\r\n if (ids.length > 0) {\r\n RestRequestPOST(Endpoints.PURCHASING_GROUP_OPINION_ID_MARK_AS_READ(groupId, type, opinionId), {list: ids}).then(() => {\r\n PurchasingGroupSectionService.getSections(groupId, type === \"AGREEMENT\" ? PurchasingGroupStageSections.OPINION : PurchasingGroupStageSections.OPINION_SWZ)\r\n })\r\n const {resources} = reduxStore.getState();\r\n const cur = resources[PURCHASING_GROUP_OPINIONS_RESOURCE_ID];\r\n const newRes = cur.map(x => x.identity === opinionId ? {...x, unreadCount: 0} : x)\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_OPINIONS_RESOURCE_ID, newRes))\r\n }\r\n }\r\n } else {\r\n await addEmptyOpinionMessage(groupId, type, opinionId, editable);\r\n }\r\n}\r\n\r\nconst saveOpinionMessage = async (groupId, type, opinionId, message) => {\r\n const newMessage = await RestRequestPOST(Endpoints.PURCHASING_GROUP_OPINION_ID(groupId, type, opinionId), message);\r\n if (newMessage) {\r\n\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID(opinionId);\r\n const cur = opinionId > 0 ? resources[resourceId] || [] : [];\r\n\r\n const res = message.identity === 0 ? [\r\n ...cur,\r\n newMessage\r\n ] : cur.map(x => x.identity === message.identity ? newMessage : x)\r\n reduxStore.dispatch(setResource(resourceId, res))\r\n\r\n return newMessage;\r\n }\r\n}\r\n\r\nconst addEmptyOpinionMessage = async (groupId, type, opinionId, editable) => {\r\n let newMessage;\r\n if (editable) {\r\n if (opinionId > 0) {\r\n newMessage = await RestRequestPOST(Endpoints.PURCHASING_GROUP_OPINION_ID_MESSAGE_NEW(groupId, type, opinionId));\r\n } else {\r\n newMessage = {\r\n identity: 0,\r\n memberMessage: true,\r\n author: null,\r\n contents: \"\",\r\n status: \"SAVED\",\r\n createDate: null,\r\n modifiedDate: null,\r\n sendDate: null,\r\n read: true\r\n }\r\n }\r\n }\r\n\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID(opinionId);\r\n const cur = resources[resourceId] || [];\r\n const res = [\r\n ...cur,\r\n ]\r\n if (newMessage) {\r\n res.push(newMessage)\r\n }\r\n\r\n reduxStore.dispatch(setResource(resourceId, res))\r\n}\r\n\r\nconst deleteOpinionMessage = async (groupId, type, opinionId, messageId) => {\r\n\r\n const resp = await RestRequestDELETE(Endpoints.PURCHASING_GROUP_OPINION_ID_MESSAGE_ID(groupId, type, opinionId, messageId));\r\n if (resp.success) {\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID(opinionId);\r\n const cur = resources[resourceId] || [];\r\n const res = cur.filter(x => x.identity !== messageId);\r\n reduxStore.dispatch(setResource(resourceId, res))\r\n }\r\n\r\n}\r\n\r\nconst canFinishPreparing = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_FINISH_PREPARING(groupId));\r\n}\r\n\r\nconst finishPreparingStage = async (groupId) => {\r\n return await __save(Endpoints.PURCHASING_GROUP_FINISH_PREPARING(groupId), null);\r\n}\r\n\r\n//papersGenerator\r\nconst getGzmManagementResolution = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_MANAGEMENT_RESOLUTION(groupId))\r\n}\r\nconst printGzmManagementResolution = async (groupId, data) => {\r\n return __print(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_MANAGEMENT_RESOLUTION(groupId), data);\r\n}\r\n\r\nconst getGzmLeadingDocument = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_LEADING_DOCUMENT(groupId))\r\n}\r\nconst printGzmLeadingDocument = async (groupId, data) => {\r\n return __print(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_LEADING_DOCUMENT(groupId), data)\r\n}\r\n\r\nconst getGzmDocumentToSign = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DOCUMENT_TO_SIGN(groupId))\r\n}\r\n\r\nconst printGzmDocumentToSign = async (groupId, data) => {\r\n return __print(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DOCUMENT_TO_SIGN(groupId), data)\r\n}\r\n\r\nconst getGzmDraftGroupAgreement = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DRAFT_GROUP_AGREEMENT(groupId))\r\n}\r\n\r\nconst printGzmDraftGroupAgreement = async (groupId, data) => {\r\n return __print(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DRAFT_GROUP_AGREEMENT(groupId), data)\r\n}\r\n\r\nconst __print = (url, data) => {\r\n return RestRequestBLOB(url, {data, method: 'post'});\r\n}\r\n\r\nconst clearResources = (resourceId) => reduxStore.dispatch(clearResource(resourceId))\r\n\r\n\r\nexport default {\r\n getHeader,\r\n getRelatedObjects,\r\n getPurchasingGroupList,\r\n getPurchasingGroupListActions,\r\n getPurchasingGroupMemberList,\r\n getArchiveList,\r\n getArchiveElement,\r\n\r\n //basic-data\r\n getBasicData,\r\n saveBasicData,\r\n\r\n //commission\r\n getCommission,\r\n saveCommission,\r\n getCommissionHistory,\r\n\r\n //schedule\r\n getSchedule,\r\n saveSchedule,\r\n\r\n //members\r\n getMembers,\r\n updateMemberName,\r\n rejectMember,\r\n restoreMember,\r\n confirmParticipationMember,\r\n withdrawParticipationMember,\r\n resendInviteNotification,\r\n deleteMember,\r\n getMembersAvailableConcerns,\r\n addMembers,\r\n //member dokumenty główne\r\n getAllMembersDocuments,\r\n addAllMembersDocuments,\r\n generateGroupAgreementDocument,\r\n updateAllMembersDocument,\r\n publishAllMembersDocument,\r\n unpublishAllMembersDocument,\r\n deleteAllMembersDocument,\r\n downloadAllMembersDocument,\r\n //member konkretny member\r\n getMember,\r\n addMemberDocuments,\r\n updateMemberDocument,\r\n deleteMemberDocument,\r\n downloadMemberDocument,\r\n getAvailableMemberUsers,\r\n addMemberUser,\r\n deleteMemberUser,\r\n\r\n //opinion\r\n getOpinions,\r\n getOpinionAvailableMembers,\r\n addOpinionForMember,\r\n getOpinionMessages,\r\n saveOpinionMessage,\r\n addEmptyOpinionMessage,\r\n deleteOpinionMessage,\r\n\r\n //finishPreparing\r\n canFinishPreparing,\r\n finishPreparingStage,\r\n\r\n //papersGenerator\r\n getGzmManagementResolution,\r\n printGzmManagementResolution,\r\n getGzmLeadingDocument,\r\n printGzmLeadingDocument,\r\n getGzmDocumentToSign,\r\n printGzmDocumentToSign,\r\n getGzmDraftGroupAgreement,\r\n printGzmDraftGroupAgreement,\r\n\r\n clearResources,\r\n PURCHASING_GROUP_HEADER_RESOURCE_ID,\r\n PURCHASING_GROUP_MEMBERS_RESOURCE_ID,\r\n PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID,\r\n PURCHASING_GROUP_MEMBER_RESOURCE_ID,\r\n PURCHASING_GROUP_OPINIONS_RESOURCE_ID,\r\n PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID,\r\n}","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport Loading from \"components/Loading\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport TextInput from \"components/TextInput\";\r\nimport DatePicker from \"components/DatePicker\";\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n wrap: {\r\n minWidth: 600,\r\n minHeight: 40\r\n }\r\n}));\r\n\r\n\r\nfunction PapersGeneratorGzmManagementResolution(\r\n {\r\n groupId,\r\n paper,\r\n onClose,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [initData, setInitData] = useState(null)\r\n const [working, setWorking] = useState(null)\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getGzmManagementResolution(groupId).then(resp => {\r\n if (resp) {\r\n setInitData(resp);\r\n } else {\r\n onClose();\r\n }\r\n });\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n const formId = useId();\r\n const onSubmit = (values) => {\r\n setWorking(true);\r\n PurchasingGroupStage1Service.printGzmManagementResolution(groupId, values).finally(onClose)\r\n }\r\n\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('generate_paper'), () => formSubmit[formId](), undefined, working, undefined, working));\r\n return ;\r\n }\r\n return (\r\n \r\n )\r\n}\r\n\r\nPapersGeneratorGzmManagementResolution.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(PapersGeneratorGzmManagementResolution);","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport Loading from \"components/Loading\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport TextInput from \"components/TextInput\";\r\nimport DatePicker from \"components/DatePicker\";\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport PartsTable from \"components/PartsTable\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n wrap: {\r\n minWidth: 600,\r\n minHeight: 40\r\n }\r\n}));\r\n\r\n\r\nfunction PapersGeneratorGzmLeadingDocument(\r\n {\r\n groupId,\r\n paper,\r\n onClose,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [initData, setInitData] = useState(null)\r\n const [working, setWorking] = useState(null)\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getGzmLeadingDocument(groupId).then(resp => {\r\n if (resp) {\r\n setInitData(resp);\r\n } else {\r\n onClose();\r\n }\r\n });\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n const formId = useId();\r\n const onSubmit = (values) => {\r\n setWorking(true);\r\n const data = {...values, memberIds: Object.keys(values.memberIds).filter(x => values.memberIds[x] === true).map(x => parseInt(x.substring(1)))}\r\n PurchasingGroupStage1Service.printGzmLeadingDocument(groupId, data).finally(onClose)\r\n }\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('generate_paper'), () => formSubmit[formId](), undefined, working, undefined, working));\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nPapersGeneratorGzmLeadingDocument.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(PapersGeneratorGzmLeadingDocument);","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport Loading from \"components/Loading\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport TextInput from \"components/TextInput\";\r\nimport DatePicker from \"components/DatePicker\";\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n wrap: {\r\n minWidth: 600,\r\n minHeight: 40\r\n }\r\n}));\r\n\r\n\r\nfunction PapersGeneratorGzmDraftGroupAgreement(\r\n {\r\n groupId,\r\n paper,\r\n onClose,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [initData, setInitData] = useState(null)\r\n const [working, setWorking] = useState(null)\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getGzmDraftGroupAgreement(groupId).then(resp => {\r\n if (resp) {\r\n setInitData(resp);\r\n } else {\r\n onClose();\r\n }\r\n });\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n const formId = useId();\r\n const onSubmit = (values) => {\r\n setWorking(true);\r\n PurchasingGroupStage1Service.printGzmDraftGroupAgreement(groupId, values).finally(onClose)\r\n }\r\n\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('generate_paper'), () => formSubmit[formId](), undefined, working, undefined, working));\r\n return ;\r\n }\r\n return (\r\n \r\n )\r\n}\r\n\r\nPapersGeneratorGzmDraftGroupAgreement.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(PapersGeneratorGzmDraftGroupAgreement);","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport Loading from \"components/Loading\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport TextInput from \"components/TextInput\";\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n wrap: {\r\n minWidth: 600,\r\n minHeight: 40\r\n }\r\n}));\r\n\r\n\r\nfunction PapersGeneratorGzmDocumentToSign(\r\n {\r\n groupId,\r\n paper,\r\n onClose,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [initData, setInitData] = useState(null)\r\n const [working, setWorking] = useState(null)\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getGzmDocumentToSign(groupId).then(resp => {\r\n if (resp) {\r\n setInitData(resp);\r\n } else {\r\n onClose();\r\n }\r\n });\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n const formId = useId();\r\n const onSubmit = (values) => {\r\n setWorking(true);\r\n PurchasingGroupStage1Service.printGzmDocumentToSign(groupId, values).finally(onClose)\r\n }\r\n\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('generate_paper'), () => formSubmit[formId](), undefined, working, undefined, working));\r\n return ;\r\n }\r\n return (\r\n \r\n )\r\n}\r\n\r\nPapersGeneratorGzmDocumentToSign.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(PapersGeneratorGzmDocumentToSign);","import reduxStore from 'redux/store'\r\nimport {setEzamowieniaOauth} from \"../redux/actions\";\r\n\r\n\r\nfunction useEzamowieniaOauth() {\r\n const authorizeEzamowienia = (successCallback, errorCallback, requiredGroups) => {\r\n reduxStore.dispatch(setEzamowieniaOauth({successCallback, errorCallback, requiredGroups}));\r\n }\r\n return {authorizeEzamowienia}\r\n\r\n}\r\n\r\nexport default useEzamowieniaOauth;","import React from 'react'\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\nfunction EZamowieniaIcon(props) {\r\n return (\r\n \r\n \r\n );\r\n}\r\n\r\nexport default EZamowieniaIcon;\r\n\r\n\r\n\r\n","import Endpoints from \"../constants/Endpoints\";\r\nimport {RestRequestGET, RestRequestPOST} from \"../libs/RestRequest\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {setSaveStatusError} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst showError = (message) => {\r\n reduxStore.dispatch(setSaveStatusError(message))\r\n}\r\n\r\nconst getAuthorizationStatus = async () => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.EZAMOWIENIA_AUTHORIZATION_STATUS);\r\n if (isResponseValid(resp, showError)) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n}\r\nconst revokeToken = async () => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.EZAMOWIENIA_REVOKE_TOKEN);\r\n isResponseValid(resp, showError)\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n}\r\n\r\nexport default {\r\n getAuthorizationStatus,\r\n revokeToken\r\n};\r\n\r\n","import React, {useReducer} from \"react\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport useEzamowieniaOauth from \"hooks/useEzamowieniaOauth\";\r\nimport Tr from \"translations/Translations\";\r\nimport Typography from \"components/Typography\";\r\nimport Button from \"components/Button\";\r\nimport EZamowieniaIcon from \"components/icon/EZamowieniaIcon\";\r\nimport previewFile from \"libs/previewFile\";\r\nimport EzamowieniaService from \"services/EzamowieniaService\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n marginBottom: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing()\r\n },\r\n}))\r\nconst PapersGeneratorXmpUzpPresidentPaperContent = (\r\n {\r\n demandId\r\n }) => {\r\n\r\n const classes = useStyle();\r\n const {authorizeEzamowienia} = useEzamowieniaOauth();\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n goto: false\r\n });\r\n\r\n const goTo = () => {\r\n authorizeEzamowienia(() => {\r\n dispatchIconWorks({type: 'download', works: true});\r\n EzamowieniaService.getAuthorizationStatus().then((resp) => {\r\n let ezamowieniaOrigin = \"https://ezamowienia.gov.pl\";\r\n if (resp) {\r\n ezamowieniaOrigin = resp.ezamowieniaOrigin;\r\n }\r\n previewFile({url: ezamowieniaOrigin + \"/pl/formularz/\"})\r\n }).finally(() => dispatchIconWorks({type: 'download', works: false}))\r\n })\r\n }\r\n\r\n const download = () => {\r\n dispatchIconWorks({type: 'download', works: true});\r\n PapersGeneratorService.downloadPaper(Endpoints.XMM_UZP_PRESIDENT_PAPER(demandId), () =>\r\n dispatchIconWorks({type: 'download', works: false}), () => dispatchIconWorks({type: 'download', works: false}))\r\n }\r\n\r\n\r\n return (<>\r\n {Tr(\"xmp_uzp_paper_title\")}\r\n\r\n {Tr(\"xmp_uzp_paper_steps\")}\r\n\r\n \r\n - \r\n \r\n {Tr(\"xmp_uzp_paper_step1\")}\r\n {Tr(\"download\") + \" XML\"}\r\n \r\n
\r\n - \r\n \r\n {Tr(\"xmp_uzp_paper_step2\")}\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n >)\r\n}\r\n\r\nexport default PapersGeneratorXmpUzpPresidentPaperContent;","import React from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport PapersGeneratorXmpUzpPresidentPaperContent from \"./PapersGeneratorXmpUzpPresidentPaperContent\";\r\n\r\nconst PapersGeneratorXmpUzpPresidentPaperPopup = (\r\n {\r\n onClose,\r\n demandId,\r\n }) => {\r\n\r\n return (}\r\n >\r\n \r\n )\r\n}\r\n\r\nexport default PapersGeneratorXmpUzpPresidentPaperPopup;","export const shareSystemsActive = (demandHeader) => {\r\n const arr = [];\r\n if (!!(demandHeader?.applicationClientSettings?.ezdpuwIntegration?.active)) {\r\n arr.push(\"ezdpuw\")\r\n }\r\n return arr;\r\n}\r\n\r\nexport const shareSystemsConnected = (demandHeader) => {\r\n const arr = [];\r\n if (!!(demandHeader?.applicationClientSettings?.ezdpuwIntegration?.connected)) {\r\n arr.push(\"ezdpuw\")\r\n }\r\n return arr;\r\n}","import React, {useMemo} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport {connect} from \"react-redux\";\r\nimport ShareIcon from \"@material-ui/icons/Share\";\r\nimport {shareSystemsActive, shareSystemsConnected} from \"libs/shareSystems\";\r\nimport PropTypes from \"prop-types\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport SendIcon from '@material-ui/icons/Send';\r\n\r\nexport const sharePopupData = (name, payload) => ({name, payload})\r\n\r\nconst ShareSelectPopup = (\r\n {\r\n data,\r\n onCancel,\r\n onChoose,\r\n demandHeader\r\n }) => {\r\n\r\n const activeShareSystems = useMemo(() => shareSystemsActive(demandHeader), [demandHeader])\r\n const connectedShareSystems = useMemo(() => shareSystemsConnected(demandHeader), [demandHeader])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel));\r\n return buttons;\r\n }\r\n return ()\r\n}\r\n\r\nShareSelectPopup.propTypes = {\r\n data: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n payload: PropTypes.object,\r\n }).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onChoose: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader\r\n}), {})(ShareSelectPopup)","import React, {useMemo, useState} from \"react\";\r\nimport {List} from \"@material-ui/core\";\r\nimport Loading from \"components/Loading\";\r\nimport {connect} from \"react-redux\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PaperLink from \"./PaperLink\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PapersGeneratorRfxInvitedSupplierWithOfferPopup from \"./customPopups/PapersGeneratorRfxInvitedSupplierWithOfferPopup\";\r\nimport PapersGeneratorRfxRequestPosition from \"./customPopups/PapersGeneratorRfxRequestPosition\";\r\nimport PapersGeneratorRfxInvitedSupplierPosition from \"./customPopups/PapersGeneratorRfxInvitedSupplierPosition\";\r\nimport ChooseSwzGeneratorOptions from \"./customPopups/swzGenerator/ChooseSwzGeneratorOptions\";\r\nimport PapersGeneratOfferFilesVerification from \"./customPopups/PapersGeneratOfferFilesVerification\";\r\nimport PapersGeneratorMessageFilesVerification from \"./customPopups/PapersGeneratorMessageFilesVerification\";\r\nimport reduxStore from \"redux/store\";\r\nimport {setSalesNotification} from \"redux/actions\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport Tr from \"translations/Translations\";\r\nimport PapersGeneratorGzmManagementResolution from \"./customPopups/gzm/PapersGeneratorGzmManagementResolution\";\r\nimport PapersGeneratorGzmLeadingDocument from \"./customPopups/gzm/PapersGeneratorGzmLeadingDocument\";\r\nimport PapersGeneratorGzmDraftGroupAgreement from \"./customPopups/gzm/PapersGeneratorGzmDraftGroupAgreement\";\r\nimport PapersGeneratorGzmDocumentToSign from \"./customPopups/gzm/PapersGeneratorGzmDocumentToSign\";\r\nimport PapersGeneratorXmpUzpPresidentPaperPopup from \"./customPopups/xmpUzpPresidentPaper/PapersGeneratorXmpUzpPresidentPaperPopup\";\r\nimport {shareSystemsActive} from \"libs/shareSystems\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport ShareSelectPopup, {sharePopupData} from \"components/popup/ShareSelectPopup\";\r\n\r\nconst DEF_CUSTOM_POPUP = {type: null, paper: null, shareSystem: null};\r\nconst PAPERS_SHARE_SUPPORTED_CUSTOM_POPUPS = [\"rfxInvitedSupplierWithOffer\", \"rfxInvitedSupplierPosition\", \"rfxRequestPosition\", \"swzParams\"]\r\nconst REPORT_SHARE_SUPPORTED_CUSTOM_POPUPS = [\"rfxMessageVerification\", \"operator_form_verification_popup\"]\r\n\r\nconst PapersGeneratorList = (\r\n {\r\n id,\r\n editable = true,\r\n papersGeneratorList,\r\n demandHeader,\r\n demandPrivileges = {}\r\n }) => {\r\n\r\n const [customPopup, setCustomPopup] = useState(DEF_CUSTOM_POPUP);\r\n const [paperWorking, setPaperWorking] = useState(null);\r\n const [sharePopupPaper, setSharePopupPaper] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const shareSystems = useMemo(() => shareSystemsActive(demandHeader), [demandHeader])\r\n\r\n const paperClick = (paper) => {\r\n if (paperWorking)\r\n return;\r\n\r\n if (!paper.available) {\r\n reduxStore.dispatch(setSalesNotification(paper.salesModule));\r\n return;\r\n }\r\n\r\n if (!paper.customPopup) {\r\n if (paper.dictionary === 'papersGenerator') {\r\n setPaperWorking(paper.paperId);\r\n PapersGeneratorService.downloadPaper(Endpoints.PAPERS_GENERATOR_PRINT(id, paper.paperId),\r\n () => setPaperWorking(null), () => setPaperWorking(null))\r\n } else if (paper.dictionary === 'reportsGenerator') {\r\n setPaperWorking(paper.paperId);\r\n let url\r\n if (paper.paperId === 'demandPrintProcessHistory')\r\n url = Endpoints.PAPERS_GENERATOR_DEMAND_PROCESS_HISTORY(id);\r\n else if (paper.paperId === \"purchasingGroupTemplateFormsReport\")\r\n url = Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_TEMPLATE_FORM_EXPORT(id);\r\n else\r\n url = Endpoints.PAPERS_GENERATOR_DEMAND_REPORT(id, paper.paperId);\r\n\r\n PapersGeneratorService.downloadPaper(url,\r\n () => setPaperWorking(null), () => setPaperWorking(null))\r\n }\r\n } else {\r\n setCustomPopup({paper: paper, type: paper.customPopup, share: false})\r\n }\r\n }\r\n\r\n const shareClick = (paper) => {\r\n setSharePopupPaper(sharePopupData(paper.name, paper));\r\n }\r\n\r\n const doShare = (paper, system) => {\r\n setSharePopupPaper(null);\r\n if (paperWorking)\r\n return;\r\n\r\n if (!paper.available) {\r\n reduxStore.dispatch(setSalesNotification(paper.salesModule));\r\n return;\r\n }\r\n if (!paper.customPopup) {\r\n if (paper.dictionary === 'papersGenerator') {\r\n setPaperWorking(paper.paperId);\r\n PapersGeneratorService.sharePaper(id, paper.paperId, system).then(resp => resp ? enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: system}, true)) : null).finally(() => setPaperWorking(null))\r\n } else if (paper.dictionary === 'reportsGenerator') {\r\n\r\n }\r\n } else {\r\n setCustomPopup({paper: paper, type: paper.customPopup, shareSystem: system})\r\n }\r\n }\r\n\r\n const showShare = (paper) => {\r\n return demandPrivileges.INTEGRATIONS_UPLOAD &&\r\n shareSystems.length > 0 && (!paper.customPopup || PAPERS_SHARE_SUPPORTED_CUSTOM_POPUPS.includes(paper.customPopup));\r\n }\r\n\r\n const showShareReport = (paper) => {\r\n return demandPrivileges.INTEGRATIONS_UPLOAD &&\r\n shareSystems.length > 0 && (REPORT_SHARE_SUPPORTED_CUSTOM_POPUPS.includes(paper.customPopup));\r\n }\r\n\r\n\r\n if (!papersGeneratorList) return \r\n return (\r\n <>\r\n {\r\n papersGeneratorList.modules.length > 0 && <>\r\n {Tr('papers_generator_modules')}\r\n \r\n {\r\n papersGeneratorList.modules.map(paper => (\r\n ))\r\n }\r\n\r\n
\r\n >\r\n }\r\n\r\n {Tr('papers_generator_papers')}\r\n \r\n {\r\n papersGeneratorList.papers.map(paper => (\r\n ))\r\n }\r\n
\r\n\r\n {\r\n papersGeneratorList.reports.length > 0 && <>\r\n {Tr('papers_generator_reports')}\r\n \r\n {\r\n papersGeneratorList.reports.map(paper => (\r\n ))\r\n }\r\n\r\n
\r\n >\r\n }\r\n\r\n {customPopup.type === 'rfxInvitedSupplierWithOffer' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}\r\n shareSystem={customPopup.shareSystem}/>}\r\n\r\n {customPopup.type === 'rfxRequestPosition' && \r\n setCustomPopup(DEF_CUSTOM_POPUP)} shareSystem={customPopup.shareSystem}/>}\r\n\r\n {customPopup.type === 'rfxInvitedSupplierPosition' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}\r\n shareSystem={customPopup.shareSystem}/>}\r\n\r\n {customPopup.type === 'swzParams' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {customPopup.type === 'operator_form_verification_popup' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {customPopup.type === 'rfxMessageVerification' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {customPopup.type === 'gzmManagementResolution' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {customPopup.type === 'gzmLeadingDocument' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {customPopup.type === 'gzmDraftGroupAgreement' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {customPopup.type === 'gzmDocumentToSign' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {customPopup.type === 'xml_uzp_president_popup' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {!!sharePopupPaper &&\r\n setSharePopupPaper(null)} onChoose={(paper, system) => doShare(paper, system)}/>}\r\n\r\n >)\r\n}\r\n\r\nexport default connect((state) => ({\r\n papersGeneratorList: state.resources[PapersGeneratorService.PAPERS_GENERATOR_LIST_RESOURCE_ID],\r\n demandHeader: state.resources.demandHeader,\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY],\r\n}), {})(PapersGeneratorList);\r\n","import React, {useEffect} from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidationKeys} from 'constants/DemandValidation';\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport PapersGeneratorList from \"components/complex/papersGenerator/PapersGeneratorList\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\n\r\nfunction PapersGenerator(\r\n {\r\n match\r\n }) {\r\n const FORM_ID = DemandValidationKeys.PAPERS_GENERATOR;\r\n const id = match.params.id;\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getAvailablePapers(id);\r\n return () => {\r\n PapersGeneratorService.clearResources(PapersGeneratorService.PAPERS_GENERATOR_LIST_RESOURCE_ID);\r\n }\r\n }, [id])\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nPapersGenerator.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withRouter(PapersGenerator);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport PapersGenerator from './PapersGenerator';\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n\r\n return (expanded && )\r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Index;","import {useState} from 'react';\r\n\r\nexport const getPaginationConfig = (page = 1, pageSize = 10) => ({\r\n page,\r\n pageSize\r\n});\r\n\r\n\r\nexport default ({pagination = getPaginationConfig(), search = {}, sort = {}} = {}) => {\r\n const [searchData, setSearchData] = useState({pagination, search, sort});\r\n const [totalCount, setTotalCount] = useState(0);\r\n const [contractorTotalCount, setContractorTotalCount] = useState(0);\r\n const setPaginationConfig = (config) => {\r\n setSearchData(searchData => ({...searchData, pagination: config}))\r\n };\r\n const setSearchConfig = (search, preservePagination) => {\r\n setSearchData(searchData => ({...searchData, pagination: preservePagination ? searchData.pagination : {...searchData.pagination, page: 1}, search: search}))\r\n };\r\n const setSortConfig = (sort) => {\r\n setSearchData(searchData => ({...searchData, pagination: {...searchData.pagination, page: 1}, sort: sort}))\r\n };\r\n return {searchData, totalCount, setTotalCount, contractorTotalCount, setContractorTotalCount, setPaginationConfig, setSearchConfig, setSortConfig};\r\n}\r\n\r\n","import React from 'react'\r\nimport {makeStyles, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Button from 'components/Button';\r\nimport GridBlock from 'components/GridBlock';\r\nimport {getPaginationConfig} from \"hooks/useSearch\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n info: {\r\n lineHeight: '2rem'\r\n }\r\n}))\r\n\r\nfunction MoreButton(\r\n {\r\n totalCount = 0,\r\n loadedCount = 0,\r\n setConfig = () => {\r\n },\r\n config = getPaginationConfig(),\r\n disabled = false,\r\n captionTrKey = 'showing_x_of_y_rows',\r\n label = Tr('load_more'),\r\n }) {\r\n const classes = useStyles();\r\n const handleChangePage = () => {\r\n setConfig({...config, page: config.page + 1});\r\n }\r\n\r\n return (\r\n \r\n \r\n {Tr(captionTrKey, {count: loadedCount, total: totalCount})}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nMoreButton.propTypes = {\r\n totalCount: PropTypes.number,\r\n loadedCount: PropTypes.number,\r\n setConfig: PropTypes.func,\r\n config: PropTypes.shape({\r\n page: PropTypes.number,\r\n pageSize: PropTypes.number\r\n }),\r\n disabled: PropTypes.bool,\r\n captionTrKey: PropTypes.string,\r\n label: PropTypes.string\r\n}\r\n\r\nexport default MoreButton;","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestBLOB, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport applySearchParams from \"libs/applySearchParams\";\r\n\r\nconst RESOURCE_ID_RFX_OFFER_LIST = 'rfxOfferList';\r\nconst RESOURCE_ID_RFX_OFFERS_ACTIONS = 'rfxOffersActions';\r\nconst RESOURCE_ID_RFX_OFFER_DECRYPTION_STATUS = 'rfxOfferDecryptionStatus';\r\nconst RESOURCE_ID_RFX_OFFER_PUBLIC_SESSION_STATUS = 'rfxOfferPublicSessionStatus';\r\nconst RESOURCE_ID_RFX_PUBLIC_SESSION_ONLINE_STATUS = 'rfxOfferPublicSessionOnlineStatus';\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n}\r\nconst getOffers = async (roundId, pagination, search) => {\r\n const params = {\r\n ...pagination\r\n }\r\n applySearchParams(search, params)\r\n\r\n try {\r\n const res = await RestRequestGET(Endpoints.RFX_OFFERS_LIST(roundId), {params});\r\n\r\n if (pagination.page > 1) {\r\n const state = reduxStore.getState();\r\n if (state.resources && state.resources[RESOURCE_ID_RFX_OFFER_LIST]) {\r\n const res2 = {\r\n ...res,\r\n items: [...state.resources[RESOURCE_ID_RFX_OFFER_LIST].items, ...res.items],\r\n }\r\n reduxStore.dispatch(setResource(RESOURCE_ID_RFX_OFFER_LIST, res2));\r\n return;\r\n }\r\n }\r\n reduxStore.dispatch(setResource(RESOURCE_ID_RFX_OFFER_LIST, res));\r\n\r\n } catch (error) {\r\n }\r\n}\r\nconst getAvailableActions = async (roundId) => {\r\n const res = await RestRequestGET(Endpoints.RFX_OFFERS_ACTIONS(roundId));\r\n reduxStore.dispatch(setResource(RESOURCE_ID_RFX_OFFERS_ACTIONS, res.actions));\r\n}\r\n\r\nconst getAdditionalRoundsOffers = async (roundId, supplierId) => {\r\n\r\n const res = await RestRequestGET(Endpoints.RFX_OFFERS_ADDITIONAL_ROUND_OFFERS(roundId, supplierId));\r\n _doAdditionalRoundsOffers(roundId, supplierId, res);\r\n}\r\nconst clearAdditionalRoundsOffers = async (roundId, supplierId) => {\r\n _doAdditionalRoundsOffers(roundId, supplierId, undefined);\r\n}\r\nconst _doAdditionalRoundsOffers = (roundId, supplierId, additionalOffers) => {\r\n\r\n const {resources} = reduxStore.getState();\r\n if (resources[RESOURCE_ID_RFX_OFFER_LIST]) {\r\n const curList = resources[RESOURCE_ID_RFX_OFFER_LIST];\r\n const res2 = {\r\n ...curList,\r\n items: curList.items.map(item => item.id !== supplierId ? item : {...item, additionalOffers}),\r\n }\r\n reduxStore.dispatch(setResource(RESOURCE_ID_RFX_OFFER_LIST, res2));\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nconst sendIvniteToOffers = async (roundId, emailsTab) => {\r\n const emails = {\r\n emails: emailsTab\r\n }\r\n const resp = await RestRequestPOST(Endpoints.RFX_OFFERS_SEND_INVITE(roundId), emails);\r\n return resp;\r\n}\r\n\r\nconst getOffersDecryptionStatus = async (roundId) => {\r\n const resp = await RestRequestGET(Endpoints.RFX_OFFERS_DECRYPTION_STATUS(roundId));\r\n reduxStore.dispatch(setResource(RESOURCE_ID_RFX_OFFER_DECRYPTION_STATUS, resp));\r\n return resp;\r\n}\r\n\r\nconst getOffersDecryptionProgress = async (roundId) => {\r\n return await RestRequestGET(Endpoints.RFX_OFFERS_DECRYPTION_PROGRESS(roundId));\r\n}\r\n\r\nconst startOffersDecryptionProcess = async (roundId) => {\r\n return await RestRequestPOST(Endpoints.RFX_OFFERS_DECRYPTION_START(roundId));\r\n}\r\n\r\nconst getOffersPublicSessionStatus = async (roundId) => {\r\n const resp = await RestRequestGET(Endpoints.RFX_OFFERS_PUBLIC_SESSION_STATUS(roundId));\r\n reduxStore.dispatch(setResource(RESOURCE_ID_RFX_OFFER_PUBLIC_SESSION_STATUS, resp));\r\n return resp;\r\n}\r\n\r\nconst getOffersPublicSessionProgress = async (roundId) => {\r\n return await RestRequestGET(Endpoints.RFX_OFFERS_PUBLIC_SESSION_PROGRESS(roundId));\r\n}\r\n\r\nconst startOffersPublicSessionProcess = async (roundId) => {\r\n return await RestRequestPOST(Endpoints.RFX_OFFERS_PUBLIC_SESSION_START(roundId));\r\n}\r\n\r\nconst getOffersPublicSessionOnlineStatus = async (roundId) => {\r\n const resp = await RestRequestGET(Endpoints.RFX_OFFERS_PUBLIC_SESSION_ONLINE_STATUS(roundId));\r\n reduxStore.dispatch(setResource(RESOURCE_ID_RFX_PUBLIC_SESSION_ONLINE_STATUS, resp));\r\n}\r\n\r\nconst saveOffersPublicSessionOnline = async (roundId, values) => {\r\n return await RestRequestPOST(Endpoints.RFX_OFFERS_PUBLIC_SESSION_ONLINE_SAVE(roundId), values);\r\n}\r\n\r\nconst downloadOffersAttachments = async (roundId, finallyCallback = () => {\r\n}) => {\r\n try {\r\n RestRequestBLOB(Endpoints.RFX_OFFERS_ATTACHMENTS(roundId))\r\n .finally(finallyCallback);\r\n } catch (error) {\r\n }\r\n}\r\nconst downloadOffersSummary = async (roundId, type, finallyCallback = () => {\r\n}) => {\r\n try {\r\n RestRequestBLOB(Endpoints.RFX_OFFERS_SUMMARY(roundId, type))\r\n .finally(finallyCallback);\r\n } catch (error) {\r\n }\r\n}\r\nconst saveEnvelope = async (roundId, envelope) => {\r\n return await RestRequestPOST(Endpoints.RFX_OFFERS_ENVELOPE(roundId), envelope);\r\n}\r\nconst getEnvelope = async (roundId, envelopeId) => {\r\n return await RestRequestGET(Endpoints.RFX_OFFERS_ENVELOPE_ID(roundId, envelopeId));\r\n}\r\n\r\n\r\nexport default {\r\n getOffers,\r\n sendIvniteToOffers,\r\n clearResources,\r\n getOffersDecryptionStatus,\r\n getOffersDecryptionProgress,\r\n startOffersDecryptionProcess,\r\n getOffersPublicSessionStatus,\r\n getOffersPublicSessionProgress,\r\n startOffersPublicSessionProcess,\r\n getOffersPublicSessionOnlineStatus,\r\n saveOffersPublicSessionOnline,\r\n downloadOffersAttachments,\r\n downloadOffersSummary,\r\n saveEnvelope,\r\n getEnvelope,\r\n getAvailableActions,\r\n getAdditionalRoundsOffers,\r\n clearAdditionalRoundsOffers,\r\n RESOURCE_ID_RFX_OFFER_LIST,\r\n RESOURCE_ID_RFX_OFFER_DECRYPTION_STATUS,\r\n RESOURCE_ID_RFX_OFFER_PUBLIC_SESSION_STATUS,\r\n RESOURCE_ID_RFX_PUBLIC_SESSION_ONLINE_STATUS,\r\n RESOURCE_ID_RFX_OFFERS_ACTIONS\r\n}","import Tr from 'translations/Translations';\r\n\r\nconst _TR_PREFIX = 'offer_status_';\r\n\r\nexport const OfferStatuses = {\r\n PLACED: 'placed',\r\n MODIFIED: 'modified',\r\n NO_OFFER: 'noOffer',\r\n MODIFIED_BY_OPERATOR: 'modifiedByOperator'\r\n}\r\n\r\nexport const OfferStatusLabel = (status) => (Tr(_TR_PREFIX + status));","import Tr from 'translations/Translations';\r\n\r\nconst _TR_PREFIX = 'offer_encryption_status_';\r\n\r\nexport const OfferEncryptionStatuses = {\r\n DECRYPTED: 'decrypted',\r\n ENCRYPTED: 'encrypted',\r\n PENDING: 'pending'\r\n}\r\n\r\nexport const OfferEncryptionStatusLabel = (status) => Tr(_TR_PREFIX + status);","import React from 'react'\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport PropTypes from 'prop-types';\r\nimport AcUnitIcon from '@material-ui/icons/AcUnit';\r\nimport clsx from 'clsx';\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n pointer: {\r\n cursor: 'pointer'\r\n }\r\n}))\r\n\r\nfunction TooltipIcon(\r\n {\r\n tooltip,\r\n placement = 'top',\r\n hideTooltip = false,\r\n Icon = AcUnitIcon,\r\n color,\r\n fontSize,\r\n onClick,\r\n tooltipClasses,\r\n iconClasses,\r\n ...otherProps\r\n }) {\r\n const classes = useStyles();\r\n if (hideTooltip || !tooltip) {\r\n return \r\n }\r\n return (\r\n \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n \r\n )\r\n}\r\n\r\nTooltipIcon.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default TooltipIcon;","import React from 'react'\r\nimport {makeStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport SimpleTable from 'components/complex/simpleTable/SimpleTable';\r\nimport moment from 'moment';\r\nimport {OfferStatusLabel} from \"constants/OfferStatus\";\r\nimport {OfferEncryptionStatuses, OfferEncryptionStatusLabel} from \"constants/OfferEncryptionStatus\";\r\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\r\nimport LockOpenOutlinedIcon from '@material-ui/icons/LockOpenOutlined';\r\nimport InsertDriveFileOutlinedIcon from '@material-ui/icons/InsertDriveFileOutlined';\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport TooltipIcon from \"components/icon/TooltipIcon\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n cell: {\r\n padding: theme.spacing(1)\r\n },\r\n dateColumn: {\r\n ...theme.components.table.buttonColumn,\r\n width: theme.components.table.dateColumn.width + theme.components.table.buttonColumn.width\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n statusColumn: {\r\n width: 200,\r\n paddingRight: theme.spacing(2)\r\n },\r\n}));\r\n\r\nfunction OfferAdditionalOffersTable(\r\n {\r\n additionalOffers,\r\n redirectToOffer\r\n }) {\r\n const classes = useStyles();\r\n\r\n const createItem = ({roundId, supplierId, name, encryptionStatus, status, offerDate, offerDetailsUrl, roundType}, i) => {\r\n let encIcon = encryptionStatus ? (encryptionStatus === OfferEncryptionStatuses.DECRYPTED ? LockOpenOutlinedIcon : LockOutlinedIcon) : InsertDriveFileOutlinedIcon;\r\n const dateStr = offerDate ? moment(offerDate).format(DateFormats.DATETIME_FORMAT) : '';\r\n\r\n return [\r\n name,\r\n <> {status ? OfferStatusLabel(status) : ''}>,\r\n dateStr,\r\n redirectToOffer(roundType, offerDate) : undefined}/>\r\n ]\r\n }\r\n\r\n\r\n return (\r\n \r\n {additionalOffers.length === 0 ?\r\n {Tr('additional_offer_collection_pending_info_message')}\r\n :\r\n [\r\n ...createItem(item, i)\r\n ])\r\n }\r\n columnClasses={[\r\n undefined,\r\n classes.statusColumn,\r\n classes.dateColumn,\r\n classes.buttonColumn\r\n ]}\r\n cellClassName={classes.cell}\r\n />}\r\n
\r\n )\r\n}\r\n\r\nOfferAdditionalOffersTable.propTypes = {\r\n additionalOffers: PropTypes.array.isRequired,\r\n}\r\n\r\nexport default OfferAdditionalOffersTable;\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestBLOB, RestRequestGET} from 'libs/RestRequest';\r\nimport reduxStore from 'redux/store'\r\nimport {clearResource, setResource} from \"../redux/actions\";\r\nimport downloadFileWithPreloadUrl from \"../libs/downloadFileWithPreloadUrl\";\r\n\r\n\r\nconst GENERAL_INFO_BASIC_DATA = \"generalInfoBasicData\";\r\nconst GENERAL_INFO_DOCUMENTS = \"generalInfoDocuments\";\r\nconst GENERAL_INFO_PUBLIC_ANSWERS = \"generalInfoPublicAnswers\";\r\n\r\n\r\nconst getContractorGeneralInfoBasicData = async (demandId, stageId, supplierId) => {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_BASIC_DATA(demandId, stageId, supplierId),{params});\r\n reduxStore.dispatch(setResource(GENERAL_INFO_BASIC_DATA, resp));\r\n}\r\nconst getContractorGeneralInfoDocuments = async (demandId, stageId, supplierId) => {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS(demandId, stageId, supplierId), {params});\r\n reduxStore.dispatch(setResource(GENERAL_INFO_DOCUMENTS, resp));\r\n}\r\nconst getContractorGeneralInfoPublicAnswers = async (demandId, stageId, supplierId) => {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_PUBLIC_ANSWERS(demandId, stageId, supplierId), {params});\r\n reduxStore.dispatch(setResource(GENERAL_INFO_PUBLIC_ANSWERS, resp));\r\n}\r\nconst getDownloadFile = async (demandId, stageId, type, documentId, supplierId) => {\r\n const params = {supplierId}\r\n await downloadFileWithPreloadUrl(\r\n Endpoints.DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS_DOWNLOAD_URL(demandId, stageId, type, documentId, supplierId),\r\n false, params);\r\n}\r\nconst downloadContractorGeneralInfoDocumentsZip = async (demandId, stageId, supplierId, finallyCallback = () => {\r\n}) => {\r\n const params = {supplierId}\r\n RestRequestBLOB(Endpoints.DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS_DOWNLOAD_ZIP(demandId, stageId, supplierId), {params})\r\n .finally(finallyCallback);\r\n}\r\nconst clearResources = (resId) => reduxStore.dispatch(clearResource(resId));\r\n\r\nexport default {\r\n getContractorGeneralInfoBasicData,\r\n getContractorGeneralInfoDocuments,\r\n getContractorGeneralInfoPublicAnswers,\r\n getDownloadFile,\r\n downloadContractorGeneralInfoDocumentsZip,\r\n clearResources,\r\n GENERAL_INFO_BASIC_DATA,\r\n GENERAL_INFO_DOCUMENTS,\r\n GENERAL_INFO_PUBLIC_ANSWERS\r\n}","import React from 'react'\r\nimport PropTypes from \"prop-types\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport ErrorOutlineOutlinedIcon from \"@material-ui/icons/ErrorOutlineOutlined\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n subject: {\r\n flexGrow: 1\r\n },\r\n unreadElements: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction GeneralInfoExpansionPanelTitle(\r\n {\r\n subject,\r\n unreadElements,\r\n expanded,\r\n toggleThread,\r\n }) {\r\n const classes = useStyle();\r\n\r\n const toggleThread2 = () => {\r\n toggleThread(!expanded);\r\n }\r\n return (\r\n \r\n \r\n {subject}\r\n {!!unreadElements &&\r\n \r\n }\r\n \r\n\r\n \r\n \r\n )\r\n}\r\n\r\nGeneralInfoExpansionPanelTitle.propTypes = {\r\n subject: PropTypes.string.isRequired,\r\n expanded: PropTypes.bool.isRequired,\r\n toggleThread: PropTypes.func.isRequired\r\n}\r\n\r\nexport default GeneralInfoExpansionPanelTitle;","import React, {useState} from 'react'\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PropTypes from \"prop-types\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Typography from \"components/Typography\";\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from \"clsx\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n borderBottom: \"solid 1px\",\r\n marginBottom: theme.spacing(3),\r\n paddingBottom: theme.spacing()\r\n },\r\n titleRoot: {\r\n '&>*:nth-child(1)': {\r\n flexGrow: 1\r\n }\r\n },\r\n titleCollapsible: {\r\n cursor: \"pointer\"\r\n },\r\n content: {\r\n marginLeft: theme.spacing(2),\r\n marginRight: theme.spacing(2)\r\n },\r\n label: {\r\n fontSize: '1.1rem'\r\n }\r\n\r\n}))\r\n\r\nfunction GeneralInfoEntry(\r\n {\r\n label,\r\n collapsible = false,\r\n defaultCollapsed,\r\n biggerLabel = false,\r\n children\r\n }) {\r\n const classes = useStyle();\r\n\r\n const [collapsed, setCollapsed] = useState(defaultCollapsed === undefined ? collapsible : defaultCollapsed);\r\n\r\n return \r\n
setCollapsed(x => !x) : undefined}>\r\n {label}\r\n {(collapsible) && {Tr(collapsed ? 'expand' : 'collapse')}}\r\n \r\n {!collapsed &&
{children}
}\r\n
\r\n\r\n}\r\n\r\nGeneralInfoEntry.propTypes = {\r\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\r\n collapsible: PropTypes.bool\r\n}\r\n\r\nexport default GeneralInfoEntry;","import React, { memo } from 'react'\r\nimport { Accordion, AccordionSummary, Typography, AccordionDetails, AccordionActions, Tooltip } from '@material-ui/core';\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles } from '@material-ui/styles';\r\nimport clsx from 'clsx';\r\nimport GridBlock from './GridBlock';\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n\ttitle: {\r\n\t},\r\n\thighlighted: {\r\n\t\tcolor: theme.palette.primary.main,\r\n\t},\r\n\ttitleGrid: {\r\n\t\t'&>*:last-child': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmarginLeft: theme.spacing(2),\r\n\t\t}\r\n\t},\r\n\tbottomButton: {\r\n\t\twidth: \"100%\",\r\n\t\theight: theme.spacing(4),\r\n\t\tcursor: \"pointer\",\r\n\t\tpaddingRight: theme.spacing(2),\r\n\t\t'&:hover': {\r\n\t\t\tbackground: theme.palette.background.appBarBackground,\r\n\t\t}\r\n\t},\r\n\thide: {\r\n\t\tdisplay: \"none\"\r\n\t}\r\n})\r\n\r\nfunction ExpansionPanel({\r\n\tpanelRef,\r\n\tchildren,\r\n\ttitle,\r\n\tclasses,\r\n\texpanded,\r\n\tonClick,\r\n\tonChange,\r\n\tdefaultExpanded = false,\r\n\thighlighted = false,\r\n\tsquare,\r\n\tclassesObj = {},\r\n\tdisabled = false,\r\n\ttitleAdornment,\r\n\tid,\r\n\thide = false\r\n}) {\r\n\r\n\tconst onCollapse = () => {\r\n\t\tonChange(null, false)\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{typeof title === \"string\" ?\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t: title}\r\n\r\n\t\t\t\t\t{titleAdornment}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nExpansionPanel.propTypes = {\r\n\ttitle: PropTypes.oneOfType([\r\n\t\tPropTypes.string,\r\n\t\tPropTypes.object\r\n\t]),\r\n\tchildren: PropTypes.any,\r\n\tdefaultExpanded: PropTypes.bool,\r\n\texpanded: PropTypes.bool,\r\n\tonClick: PropTypes.func,\r\n\thighlighted: PropTypes.bool,\r\n\twithPadding: PropTypes.bool,\r\n\tsquare: PropTypes.bool,\r\n\tpanelRef: PropTypes.any\r\n}\r\n\r\nexport default withStyles(style)(memo(ExpansionPanel));\r\n","const formatAmountNumber = (val, undefinedValue, fixed) => {\r\n if (val === null || val === undefinedValue) {\r\n return undefinedValue;\r\n }\r\n\r\n return Number.parseFloat(val).toFixed(2).replace(/[.]/, \",\");\r\n}\r\n\r\nexport default formatAmountNumber;","import React from 'react';\r\n\r\nconst OfferStageTranslationsContext = React.createContext(trKey => trKey);\r\nexport const OfferStageTranslationsContextProvider = OfferStageTranslationsContext.Provider;\r\nexport default OfferStageTranslationsContext;","import React, {useContext, useState} from 'react'\r\nimport PropTypes from \"prop-types\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport GeneralInfoExpansionPanelTitle from \"./GeneralInfoExpansionPanelTitle\";\r\nimport Tr from \"translations/Translations\";\r\nimport GeneralInfoEntry from \"./GeneralInfoEntry\";\r\nimport ExpansionPanel from \"components/ExpansionPanel\";\r\nimport {PriceTypeLabel} from \"constants/PriceTypes\";\r\nimport {isEuropeProcedure} from \"constants/ProcedureType\";\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\nimport moment from \"moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport {VALUES as ProcedureStatus} from \"constants/ProcedureStatus\";\r\nimport {jedzTranslations} from \"pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/fieldsOptions/jedz.values\";\r\nimport {PrimaryTenderVariantTr} from \"constants/PrimaryTenderVariant\";\r\nimport OfferStageTranslationsContext from \"../../../../../../../../../context/OfferStageTranslationsContext\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n textarea: {\r\n whiteSpace: 'pre-wrap'\r\n }\r\n}));\r\n\r\nfunction GeneralInfoBasicData(\r\n {\r\n panelsClassesObject,\r\n generalInfoBasicData,\r\n demandHeader\r\n }) {\r\n const classes = useStyles();\r\n const [expanded, setExpanded] = useState(false);\r\n const stageTr = useContext(OfferStageTranslationsContext);\r\n return (\r\n setExpanded(x => !x)}\r\n expanded={expanded}\r\n />\r\n }\r\n expanded={expanded}\r\n onChange={(e, isExpanded) => setExpanded(isExpanded)}\r\n\r\n >\r\n \r\n \r\n \r\n {generalInfoBasicData.contactPerson}\r\n
\r\n {generalInfoBasicData.purchaserEmail}\r\n
\r\n {generalInfoBasicData.contactPersonPhone}\r\n \r\n \r\n\r\n \r\n \r\n {generalInfoBasicData.procedureTypeTranslated}\r\n \r\n \r\n\r\n \r\n \r\n {generalInfoBasicData.realizationTypeTranslated}\r\n \r\n \r\n\r\n {!!generalInfoBasicData.description &&\r\n \r\n \r\n {generalInfoBasicData.description}\r\n \r\n \r\n }\r\n\r\n {!!generalInfoBasicData.primaryTenderVariant &&\r\n \r\n \r\n {PrimaryTenderVariantTr[generalInfoBasicData.primaryTenderVariant]}\r\n \r\n \r\n }\r\n\r\n {!!generalInfoBasicData.orderType &&\r\n \r\n \r\n {generalInfoBasicData.orderType}\r\n \r\n \r\n }\r\n\r\n {!generalInfoBasicData.passiveOfferForm &&\r\n \r\n \r\n {PriceTypeLabel(generalInfoBasicData.priceType)} (PLN)\r\n \r\n \r\n }\r\n\r\n {generalInfoBasicData.canCreateAuction !== null &&\r\n \r\n \r\n {Tr(generalInfoBasicData.canCreateAuction ? 'yes' : 'no')}\r\n \r\n \r\n }\r\n\r\n {generalInfoBasicData.digitalSign !== null &&\r\n \r\n \r\n {Tr(generalInfoBasicData.digitalSign ? 'yes' : 'no')}\r\n \r\n \r\n }\r\n\r\n {generalInfoBasicData.requiredJEDZ !== null &&\r\n \r\n \r\n {jedzTranslations(generalInfoBasicData.requiredJEDZ)}\r\n \r\n \r\n }\r\n\r\n {!generalInfoBasicData.passiveOfferForm &&\r\n 3}\r\n >\r\n\r\n {generalInfoBasicData.guaranteeList === null ?\r\n {Tr('guarantee_not_required')}\r\n :\r\n <>\r\n {generalInfoBasicData.dealingsCount === 1 ?\r\n <>\r\n {generalInfoBasicData.guaranteeList.length > 0 &&\r\n {formatAmountNumber(generalInfoBasicData.guaranteeList[0].value)} PLN}\r\n >\r\n :\r\n <>\r\n {generalInfoBasicData.guaranteeList.map(x => (\r\n {Tr(\"part_x\", {x: x.ordinalNumber})}: {formatAmountNumber(x.value)} PLN))}\r\n\r\n >\r\n }\r\n >\r\n }\r\n \r\n }\r\n\r\n\r\n \r\n \r\n {moment(generalInfoBasicData.procedureStartDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n \r\n\r\n \r\n {generalInfoBasicData.stageEndDate === null ?\r\n {Tr('offer_end_date_neg_dialog')}: {Tr('according_to_the_documentation')}\r\n :\r\n \r\n {Tr(\"offer_end_date\")}: {moment(generalInfoBasicData.stageEndDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n }\r\n \r\n {Tr(\"offer_open_date\")}: {generalInfoBasicData.openOfferDate === null ? Tr('according_to_the_documentation') : moment(generalInfoBasicData.openOfferDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n {generalInfoBasicData.stageSecondEndDate &&\r\n \r\n {Tr(\"offer_second_end_date\")}: {moment(generalInfoBasicData.stageSecondEndDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n }\r\n \r\n\r\n {generalInfoBasicData.demandFinishDate !== null &&\r\n \r\n {demandHeader.status === ProcedureStatus.CANCELLED ?\r\n {Tr('procedure_status_6')}\r\n :\r\n \r\n {moment(generalInfoBasicData.demandFinishDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n }\r\n \r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nGeneralInfoBasicData.propTypes = {\r\n generalInfoBasicData: PropTypes.object.isRequired,\r\n demandHeader: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default GeneralInfoBasicData;","import React from 'react'\r\nimport ForwardIcon from '@material-ui/icons/Forward';\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconForwardButton(\r\n {\r\n tooltip = Tr('enter'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconForwardButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconForwardButton;","import React, {useReducer} from 'react'\r\nimport {makeStyles, TableCell, TableRow} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport moment from \"moment\";\r\nimport WorkableIconDownloadButton from 'components/button/WorkableIconDownloadButton';\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport WorkableIconSearchButton from \"components/button/WorkableIconSearchButton\";\r\nimport DemandOffersGeneralInfoService from \"services/DemandOffersGeneralInfoService\";\r\nimport WorkableIconForwardButton from \"components/button/WorkableIconForwardButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n warnIcon: {\r\n padding: 0,\r\n color: `${theme.palette.secondary.main} !important`\r\n },\r\n descriptionTooltip: {\r\n whiteSpace: 'pre-line'\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n versionsCell: {\r\n background: theme.palette.background.default,\r\n paddingLeft: 0,\r\n paddingRight: 0\r\n }\r\n}));\r\n\r\nfunction GeneralInfoDocumentsFileTableRow(\r\n {\r\n demandId,\r\n stageId,\r\n supplierId,\r\n index,\r\n row,\r\n onEditDescriptionFile,\r\n\r\n }) {\r\n const classes = useStyle();\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n goto: false\r\n });\r\n\r\n const onDownload = () => {\r\n dispatchIconWorks({type: \"download\", works: true});\r\n DemandOffersGeneralInfoService.getDownloadFile(demandId, stageId, row.source, row.identity, supplierId)\r\n .finally(() => dispatchIconWorks({type: 'download', works: false}));\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n {index}\r\n \r\n {row.name}\r\n \r\n \r\n onEditDescriptionFile(row)}\r\n tooltip={row.description ? {row.description}
: {Tr('no_description')}}\r\n />\r\n \r\n {row.publishDate ? moment(row.publishDate).format(DateFormats.DATETIME_FORMAT) : null}\r\n \r\n {\r\n !!row.actions.goto &&\r\n {\r\n dispatchIconWorks({type: \"download\", works: true});\r\n window.location.href = row.actions.goto.url\r\n }\r\n }\r\n tooltip={Tr('go')}\r\n disabled={iconWorks.anyWorks}\r\n working={iconWorks.goto}/>\r\n }\r\n {\r\n !!row.actions.download &&\r\n onDownload(row)}\r\n hideTooltip={!row.actions.download}\r\n disabled={iconWorks.anyWorks}\r\n working={iconWorks.download}\r\n />\r\n }\r\n \r\n \r\n\r\n >\r\n )\r\n}\r\n\r\nGeneralInfoDocumentsFileTableRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n stageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n row: PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n source: PropTypes.string.isRequired\r\n }).isRequired,\r\n index: PropTypes.number.isRequired,\r\n onEditDescriptionFile: PropTypes.func.isRequired\r\n};\r\n\r\nexport default GeneralInfoDocumentsFileTableRow;","import React, {useState} from 'react'\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport EditDescriptionPopup, {createEditDescriptionFile} from \"components/popup/EditDescriptionPopup\";\r\nimport GeneralInfoDocumentsFileTableRow from \"./GeneralInfoDocumentsFileTableRow\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PropTypes from 'prop-types';\r\nimport WorkableIconDownloadButton from \"components/button/WorkableIconDownloadButton\";\r\nimport DemandOffersGeneralInfoService from \"services/DemandOffersGeneralInfoService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n}));\r\n\r\nfunction GeneralInfoDocumentsFileTable(\r\n {\r\n demandId,\r\n stageId,\r\n supplierId,\r\n generalInfoDocuments,\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [downloadZipWorking, setDownloadZipWorking] = useState(false);\r\n const [editDescriptionFile, setEditDescriptionFile] = useState(null);\r\n\r\n const openEditDescription = (row) => {\r\n setEditDescriptionFile(createEditDescriptionFile(demandId, row.identity, row.name, row.description, true));\r\n };\r\n\r\n return (\r\n {!generalInfoDocuments.length ?\r\n
{Tr('no_options')}\r\n :\r\n <>\r\n\r\n
\r\n \r\n \r\n {Tr(\"column_lp\")}\r\n {Tr(\"name\")}\r\n {Tr(\"description\")}\r\n {Tr(\"publish_data\")}\r\n \r\n {\r\n setDownloadZipWorking(true);\r\n DemandOffersGeneralInfoService.downloadContractorGeneralInfoDocumentsZip(demandId, stageId, supplierId, () => {\r\n setDownloadZipWorking(false);\r\n })\r\n }\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n generalInfoDocuments.map((doc, index) => (\r\n ))\r\n }\r\n \r\n
\r\n >\r\n }\r\n {Boolean(editDescriptionFile) &&\r\n
setEditDescriptionFile(null)}\r\n onClose={() => setEditDescriptionFile(null)}\r\n service={{\r\n updateDescription: () => {\r\n }\r\n }}\r\n />\r\n }\r\n )\r\n}\r\n\r\nGeneralInfoDocumentsFileTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n stageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n};\r\nexport default GeneralInfoDocumentsFileTable;","import React from 'react';\r\n\r\nconst PurchaserOfferContext = React.createContext();\r\nexport const PurchaserOfferContextProvider = PurchaserOfferContext.Provider;\r\nexport default PurchaserOfferContext;","import React, {useContext, useEffect, useState} from 'react'\r\nimport GeneralInfoExpansionPanelTitle from \"./GeneralInfoExpansionPanelTitle\";\r\nimport Tr from \"translations/Translations\";\r\nimport ExpansionPanel from \"components/ExpansionPanel\";\r\nimport DemandOffersGeneralInfoService from \"services/DemandOffersGeneralInfoService\";\r\nimport {withRouter} from \"react-router\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport GeneralInfoDocumentsFileTable from \"./GeneralInfoDocumentsFileTable\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport {StageSections} from \"../../../../constants/StageSections\";\r\n\r\nfunction GeneralInfoDocuments(\r\n {\r\n match,\r\n panelsClassesObject,\r\n generalInfoDocuments,\r\n demandStageSectionsList\r\n }) {\r\n const [expanded, setExpanded] = useState(false);\r\n const demandId = match.params.id;\r\n const stageId = match.params.stageId;\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n const unreadDemandDocuments = demandStageSectionsList[StageSections.GENERAL_INFO].unreadDemandDocuments;\r\n useEffect(() => {\r\n if (expanded && generalInfoDocuments === undefined)\r\n DemandOffersGeneralInfoService.getContractorGeneralInfoDocuments(demandId, stageId, purchaserOfferContext?.supplierId);\r\n return () => {\r\n DemandOffersGeneralInfoService.clearResources(DemandOffersGeneralInfoService.GENERAL_INFO_DOCUMENTS);\r\n }\r\n // eslint-disable-next-line\r\n }, [expanded])\r\n\r\n\r\n return (\r\n setExpanded(x => !x)}\r\n expanded={expanded}\r\n />\r\n }\r\n expanded={expanded}\r\n onChange={(e, isExpanded) => setExpanded(isExpanded)}\r\n\r\n >\r\n {\r\n !generalInfoDocuments ?\r\n \r\n :\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nGeneralInfoDocuments.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n generalInfoDocuments: state.resources[DemandOffersGeneralInfoService.GENERAL_INFO_DOCUMENTS],\r\n demandStageSectionsList: state.resources[DemandOffersService.DEMAND_STAGE_SECTIONS_LIST]\r\n}), {})(withRouter(GeneralInfoDocuments));","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport reduxStore from 'redux/store';\r\nimport {clearResource, setResource, setSaveStatusError} from 'redux/actions';\r\nimport applySearchParams from \"../libs/applySearchParams\";\r\nimport PrivilegeService from \"./PrivilegeService\";\r\nimport downloadFileWithPreloadUrl from \"../libs/downloadFileWithPreloadUrl\";\r\nimport Tr from \"translations/Translations\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\n\r\nconst CORRESPONDENCE_RES_PREFIX = 'correspondence';\r\nconst CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID = CORRESPONDENCE_RES_PREFIX + \"BeforeBiddingEndThreads\";\r\nconst CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID = CORRESPONDENCE_RES_PREFIX + \"AfterBiddingEndThreads\";\r\nconst CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID = CORRESPONDENCE_RES_PREFIX + \"NotSplicedThreads\";\r\nconst CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID = CORRESPONDENCE_RES_PREFIX + \"LastCheckTime\";\r\nconst CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID = CORRESPONDENCE_RES_PREFIX + \"SplitDate\";\r\n\r\nconst cleanupPrivileges = () => {\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.CORRESPONDENCE_PRIVILEGE_STORE_KEY);\r\n}\r\n\r\nconst cleanupThreadList = () => {\r\n reduxStore.dispatch(clearResource(CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID));\r\n reduxStore.dispatch(clearResource(CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID));\r\n reduxStore.dispatch(clearResource(CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID));\r\n reduxStore.dispatch(clearResource(CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID));\r\n reduxStore.dispatch(clearResource(CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID));\r\n};\r\n\r\nconst getContractorThreadList = async (roundId) => {\r\n const threadList = await RestRequestGET(Endpoints.CORRESPONDENCE_CONTRACTOR_THREAD_LIST(roundId));\r\n\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID, threadList.checkTime));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID, threadList.correspondenceSplitDate));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID, threadList.beforeBiddingEndThreads));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID, threadList.afterBiddingEndThreads));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID, threadList.notSplicedThreads));\r\n}\r\n\r\nconst getBuyerNewMessages = async (roundId) => {\r\n const state = reduxStore.getState();\r\n let params = applySearchParams({dateFrom: state.resources[CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID]})\r\n\r\n const response = await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_NEW_MESSAGES(roundId), {params});\r\n if (response.success !== false) {\r\n const unreadIds = _processNewMessagesUpdate(response);\r\n if (unreadIds.length > 0) {\r\n RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_MARK_AS_READ(roundId), {list: unreadIds});\r\n }\r\n }\r\n}\r\n\r\nconst _processNewMessagesUpdate = (response) => {\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID, response.checkTime));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID, response.correspondenceSplitDate));\r\n const state = reduxStore.getState();\r\n const newReadMessageIds = [];\r\n for (const listResourceId of [CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID, CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID, CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID]) {\r\n const reqResource = listResourceId.substring(CORRESPONDENCE_RES_PREFIX.length).charAt(0).toLowerCase() + listResourceId.substring(CORRESPONDENCE_RES_PREFIX.length).slice(1);\r\n if (response?.[reqResource]?.threads?.length) {\r\n const threadsObject = response[reqResource].threads.reduce(function (o, val) {\r\n o[val.threadId] = val;\r\n return o;\r\n }, {});\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = state.resources[listResourceId].threads.map(th => {\r\n if (threadsObject.hasOwnProperty(th.threadId)) {\r\n const reqThread = threadsObject[th.threadId];\r\n const {messages, unreadMessagesCount, ...others} = th;\r\n let newMessageList = null;\r\n if (messages) {\r\n let index = messages.findIndex(x => x.status === 'saved');\r\n if (index === -1) index = messages.length;\r\n newMessageList = [...messages];\r\n newMessageList.splice(index, 0, ...reqThread.messages);\r\n newReadMessageIds.push(...reqThread.messages.map(x => x.messageId));\r\n }\r\n delete threadsObject[th.threadId];\r\n return ({\r\n ...others,\r\n unreadMessagesCount: unreadMessagesCount + reqThread.messages.length,\r\n messages: newMessageList\r\n })\r\n }\r\n return th;\r\n });\r\n Object.values(threadsObject).forEach(x => threads.unshift({...x, messages: null}));\r\n\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n\r\n }\r\n }\r\n return newReadMessageIds;\r\n}\r\n\r\nconst getContractorNewMessages = async (roundId) => {\r\n const state = reduxStore.getState();\r\n let params = applySearchParams({dateFrom: state.resources[CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID]})\r\n\r\n const response = await RestRequestGET(Endpoints.CORRESPONDENCE_CONTRACTOR_NEW_MESSAGES(roundId), {params});\r\n if (response.success !== false) {\r\n const unreadIds = _processNewMessagesUpdate(response);\r\n if (unreadIds.length > 0) {\r\n RestRequestPOST(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_MARK_AS_READ(roundId), {list: unreadIds});\r\n }\r\n }\r\n}\r\n\r\nconst getBuyerThreadList = async (roundId) => {\r\n const threadList = await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_THREAD_LIST(roundId));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID, threadList.checkTime));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID, threadList.correspondenceSplitDate));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID, threadList.beforeBiddingEndThreads));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID, threadList.afterBiddingEndThreads));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID, threadList.notSplicedThreads));\r\n};\r\n\r\nconst getBuyerContractorInRoundList = async (roundId) => {\r\n return await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_CTR_IN_ROUND(roundId));\r\n};\r\n\r\nconst getBuyerThreadMessageList = async (roundId, threadId, listResourceId) => {\r\n const messages = await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_LIST(roundId, threadId));\r\n if (messages.success !== false) {\r\n const unreadIds = messages.filter(x => !x.read && (x.contractorUser || x.publicQuestion)).map(x => x.messageId);\r\n if (unreadIds.length > 0) {\r\n RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_MARK_AS_READ(roundId), {list: unreadIds});\r\n }\r\n _setMessagesInThread(threadId, messages, listResourceId);\r\n }\r\n}\r\n\r\nconst getBuyerMessageDelivery = async (roundId, messageId, type, identity) => {\r\n return await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_EMAIL_DELIVERY(roundId, messageId, type, identity));\r\n}\r\n\r\nconst getContractorThreadMessageList = async (roundId, threadId, listResourceId) => {\r\n const messages = await RestRequestGET(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_LIST(roundId, threadId));\r\n if (messages.success !== false) {\r\n const unreadIds = messages.filter(x => !x.read && x.buyerUser).map(x => x.messageId);\r\n if (unreadIds.length > 0) {\r\n RestRequestPOST(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_MARK_AS_READ(roundId), {list: unreadIds});\r\n }\r\n _setMessagesInThread(threadId, messages, listResourceId);\r\n }\r\n}\r\n\r\nconst _setMessagesInThread = (threadId, reqMessages, listResourceId) => {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = state.resources[listResourceId].threads.map(th => {\r\n if (th.threadId === threadId) {\r\n const {messages, ...others} = th;\r\n return ({\r\n ...others,\r\n messages: reqMessages\r\n })\r\n }\r\n return th;\r\n })\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n}\r\n\r\nconst _addThreadToList = (thread, listResourceId) => {\r\n if (thread.threadId) {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = [\r\n thread,\r\n ...state.resources[listResourceId].threads\r\n ]\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n }\r\n}\r\n\r\nconst addBuyerThread = async (roundId, thread, listResourceId) => {\r\n const response = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_THREAD_ADD(roundId), thread);\r\n if (response.success !== false) {\r\n _addThreadToList(response, listResourceId);\r\n }\r\n return response;\r\n}\r\n\r\nconst addContractorThread = async (roundId, thread, listResourceId) => {\r\n const response = await RestRequestPOST(Endpoints.CORRESPONDENCE_CONTRACTOR_THREAD_ADD(roundId), thread);\r\n if (response.success !== false) {\r\n _addThreadToList(response, listResourceId);\r\n }\r\n return response;\r\n}\r\nconst saveBuyerThreadAsContractor = async (roundId, thread, listResourceId) => {\r\n const response = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_THREAD_AS_CRT_SEND(roundId), thread);\r\n if (response.success !== false) {\r\n _addThreadToList(response, listResourceId);\r\n }\r\n return response;\r\n}\r\n\r\nconst _updateMessageInThread = (threadId, messageId, listResourceId, response) => {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = state.resources[listResourceId].threads.map(th => {\r\n if (th.threadId === threadId) {\r\n const {messages, ...other} = th;\r\n if (messages) {\r\n return ({\r\n ...other,\r\n messages: messages.map(msg => (msg.messageId === messageId ? response : msg))\r\n })\r\n }\r\n }\r\n return th;\r\n });\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n};\r\n\r\nconst clearThreadMessages = (threadId, listResourceId) => {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = state.resources[listResourceId].threads.map(th => {\r\n\r\n if (th.threadId === threadId) {\r\n const {messages, unreadMessagesCount, ...other} = th;\r\n if (messages) {\r\n return ({\r\n ...other,\r\n unreadMessagesCount: 0,\r\n messages: null\r\n })\r\n }\r\n }\r\n return th;\r\n\r\n });\r\n\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n};\r\n\r\nconst updateBuyerMessage = async (roundId, threadId, messageId, listResourceId, message) => {\r\n const resp = await RestRequestPUT(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_UPDATE(roundId, messageId), message);\r\n if (resp.success !== false) {\r\n _updateMessageInThread(threadId, messageId, listResourceId, resp);\r\n }\r\n return resp;\r\n}\r\n\r\nconst updateContractorMessage = async (roundId, threadId, messageId, listResourceId, message) => {\r\n const resp = await RestRequestPUT(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_UPDATE(roundId, messageId), message);\r\n if (resp.success !== false) {\r\n _updateMessageInThread(threadId, messageId, listResourceId, resp);\r\n }\r\n return resp;\r\n}\r\n\r\nconst sendBuyerMessage = async (roundId, threadId, messageId, listResourceId) => {\r\n const resp = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_SEND(roundId, messageId));\r\n if (resp.success !== false) {\r\n _updateMessageInThread(threadId, messageId, listResourceId, resp);\r\n }\r\n return resp;\r\n}\r\n\r\nconst sendContractorMessage = async (roundId, threadId, messageId, listResourceId) => {\r\n const resp = await RestRequestPOST(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_SEND(roundId, messageId));\r\n if (resp.success !== false) {\r\n _updateMessageInThread(threadId, messageId, listResourceId, resp);\r\n }\r\n return resp;\r\n}\r\n\r\nconst publishBuyerMessage = async (roundId, threadId, messageId, listResourceId) => {\r\n const resp = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_PUBLISH(roundId, messageId));\r\n if (resp.success !== false) {\r\n _updateMessagesInThreads(listResourceId, resp);\r\n }\r\n return resp;\r\n}\r\n\r\nconst deleteBuyerMessage = async (roundId, threadId, messageId, listResourceId) => {\r\n const resp = await RestRequestDELETE(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_DELETE(roundId, messageId));\r\n if (resp.success) {\r\n _removeMessagesFromThread(threadId, messageId, listResourceId);\r\n }\r\n return resp;\r\n}\r\n\r\nconst deleteContractorMessage = async (roundId, threadId, messageId, listResourceId) => {\r\n const resp = await RestRequestDELETE(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_DELETE(roundId, messageId));\r\n if (resp.success) {\r\n _removeMessagesFromThread(threadId, messageId, listResourceId);\r\n }\r\n return resp;\r\n}\r\n\r\nconst _removeMessagesFromThread = (threadId, messageId, listResourceId) => {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n let removedLast = false;\r\n let threads = state.resources[listResourceId].threads.map(th => {\r\n if (th.threadId === threadId) {\r\n\r\n const {messages, ...other} = th;\r\n const messagesFiltered = messages.filter(msg => (msg.messageId !== messageId));\r\n if (messagesFiltered.length === 0) {\r\n removedLast = true;\r\n }\r\n return ({\r\n ...other,\r\n messages: messagesFiltered\r\n })\r\n }\r\n return th;\r\n });\r\n if (removedLast) {\r\n threads = threads.filter(t => t.threadId !== threadId);\r\n }\r\n\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n};\r\n\r\nconst _updateMessagesInThreads = (listResourceId, response) => {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = state.resources[listResourceId].threads.map(th => {\r\n const respTh = response.find(x => x.threadId === th.threadId);\r\n if (respTh) {\r\n const mesMap = respTh.messages.reduce(function (acc, cur, i) {\r\n acc[cur.messageId] = cur;\r\n return acc;\r\n }, {});\r\n\r\n const {messages, ...other} = th;\r\n if (messages) {\r\n return ({\r\n ...other,\r\n messages: messages.map(msg => (mesMap.hasOwnProperty(msg.messageId) ? mesMap[msg.messageId] : msg))\r\n })\r\n }\r\n }\r\n return th;\r\n });\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n};\r\n\r\n\r\nconst _addMessagesToThreads = (listResourceId, threadList) => {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = state.resources[listResourceId].threads.map(th => {\r\n const respTh = threadList.find(x => x.threadId === th.threadId);\r\n if (respTh) {\r\n const {messages, ...other} = th;\r\n if (messages) {\r\n return ({\r\n ...other,\r\n messages: [...messages, ...respTh.messages]\r\n })\r\n }\r\n }\r\n return th;\r\n });\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n};\r\nconst sendBuyerBulkMessages = async (roundId, bulkMessages, listResourceId) => {\r\n const resp = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_BULK_MESSAGES_SEND(roundId), bulkMessages);\r\n if (resp.success !== false) {\r\n _addMessagesToThreads(listResourceId, resp);\r\n }\r\n return resp;\r\n}\r\n\r\nconst publishBuyerBulkMessages = async (roundId, bulkMessages, listResourceId) => {\r\n const resp = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_BULK_MESSAGES_PUBLISH(roundId), bulkMessages);\r\n if (resp.success !== false) {\r\n _addMessagesToThreads(listResourceId, resp);\r\n }\r\n return resp;\r\n}\r\n\r\nconst createBuyerMessage = async (roundId, threadId, listResourceId) => {\r\n const message = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_CREATE(roundId, threadId));\r\n _addMessagesToThreads(listResourceId, [{threadId, messages: [message]}]);\r\n return message;\r\n}\r\n\r\nconst createContractorMessage = async (roundId, threadId, listResourceId) => {\r\n const message = await RestRequestPOST(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_CREATE(roundId, threadId));\r\n _addMessagesToThreads(listResourceId, [{threadId, messages: [message]}]);\r\n return message;\r\n}\r\n\r\nconst _modifyFlag = (threadId, listResourceId, flag) => {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = state.resources[listResourceId].threads.map(x => (x.threadId !== threadId ? x : {...x, hasRedFlag: flag}));\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n}\r\n\r\nconst getContractorPrivileges = async (roundId) => {\r\n await PrivilegeService.getPrivileges(Endpoints.CORRESPONDENCE_CONTRACTOR_PRIVILEGES(roundId), PrivilegeService.CORRESPONDENCE_PRIVILEGE_STORE_KEY);\r\n}\r\n\r\nconst getBuyerPrivileges = async (roundId) => {\r\n await PrivilegeService.getPrivileges(Endpoints.CORRESPONDENCE_BUYER_PRIVILEGES(roundId), PrivilegeService.CORRESPONDENCE_PRIVILEGE_STORE_KEY);\r\n}\r\n\r\nconst sendBuyerFlagThread = async (roundId, threadId, listResourceId) => {\r\n return await _sendFlagUnflagThread(Endpoints.CORRESPONDENCE_BUYER_FLAG, roundId, threadId, listResourceId, true);\r\n}\r\n\r\nconst sendBuyerUnflagThread = async (roundId, threadId, listResourceId) => {\r\n return await _sendFlagUnflagThread(Endpoints.CORRESPONDENCE_BUYER_UNFLAG, roundId, threadId, listResourceId, false);\r\n}\r\n\r\nconst sendContractorFlagThread = async (roundId, threadId, listResourceId) => {\r\n return await _sendFlagUnflagThread(Endpoints.CORRESPONDENCE_CONTRACTOR_FLAG, roundId, threadId, listResourceId, true);\r\n}\r\n\r\nconst sendContractorUnflagThread = async (roundId, threadId, listResourceId) => {\r\n return await _sendFlagUnflagThread(Endpoints.CORRESPONDENCE_CONTRACTOR_UNFLAG, roundId, threadId, listResourceId, false);\r\n}\r\n\r\nconst _sendFlagUnflagThread = async (urlFn, roundId, threadId, listResourceId, flag) => {\r\n const resp = await RestRequestPOST(urlFn(roundId, threadId));\r\n if (resp.result) {\r\n _modifyFlag(threadId, listResourceId, flag);\r\n }\r\n}\r\n\r\nconst downloadBuyerMessageAttachmentsZip = async (roundId, messageId, finallyCallback = () => {\r\n}) => {\r\n try {\r\n RestRequestBLOB(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_ZIP(roundId, messageId))\r\n .finally(finallyCallback);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst downloadBuyerMessageAttachment = async (roundId, attachmentId, finallyCallback = () => {\r\n}) => {\r\n await downloadFileWithPreloadUrl(Endpoints.CORRESPONDENCE_BUYER_ATTACHMENT_URL(roundId, attachmentId), false)\r\n .finally(finallyCallback);\r\n}\r\n\r\nconst checkVerificationLimit = async (roundId, messageId) => {\r\n const resp = await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_CHECK_LIMIT(roundId, messageId));\r\n return resp;\r\n}\r\nconst printBuyerMessageAttachmentsVerification = async (roundId, messageId, finallyCallback = () => {\r\n}) => {\r\n RestRequestBLOB(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_VERIFY(roundId, messageId))\r\n .finally(finallyCallback);\r\n}\r\n\r\nconst downloadContractorMessageAttachmentsZip = async (roundId, messageId, finallyCallback = () => {\r\n}) => {\r\n RestRequestBLOB(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_ATTACHMENTS_ZIP(roundId, messageId))\r\n .finally(finallyCallback);\r\n}\r\n\r\nconst downloadContractorMessageAttachment = async (roundId, attachmentId, finallyCallback = () => {\r\n}) => {\r\n await downloadFileWithPreloadUrl(Endpoints.CORRESPONDENCE_CONTRACTOR_ATTACHMENT_URL(roundId, attachmentId), false)\r\n .finally(finallyCallback);\r\n}\r\n\r\nconst getContractorSearchResult = async (roundId, searchObject) => {\r\n return await getSearchResult(searchObject, Endpoints.CORRESPONDENCE_CONTRACTOR_SEARCH(roundId));\r\n}\r\n\r\nconst getBuyerSearchResult = async (roundId, searchObject) => {\r\n return await getSearchResult(searchObject, Endpoints.CORRESPONDENCE_BUYER_SEARCH(roundId));\r\n}\r\n\r\nconst getSearchResult = async (searchObject, url) => {\r\n //const state = reduxStore.getState();\r\n let params = applySearchParams(searchObject);\r\n\r\n const threadList = await RestRequestGET(url, {params});\r\n if (threadList.success !== false) {\r\n cleanupThreadList();\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID, threadList.checkTime));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID, threadList.correspondenceSplitDate));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID, threadList.beforeBiddingEndThreads));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID, threadList.afterBiddingEndThreads));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID, threadList.notSplicedThreads));\r\n }\r\n return threadList;\r\n}\r\n\r\nconst getBuyerPrint = async (roundId, type, before, threadIds) => {\r\n return print(Endpoints.CORRESPONDENCE_BUYER_PRINT(roundId, type, before), threadIds);\r\n}\r\n\r\nconst getContractorPrint = async (roundId, type, before, threadIds) => {\r\n return print(Endpoints.CORRESPONDENCE_CONTRACTOR_PRINT(roundId, type, before), threadIds);\r\n}\r\n\r\nconst getBuyerContractorEmailList = async (roundId, departmentId) => {\r\n return await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_CONTRACTOR_EMAIL_LIST(roundId, departmentId));\r\n}\r\n\r\nconst getBuyerThreadEmailList = async (roundId, threadId) => {\r\n return await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_THREAD_EMAIL_LIST(roundId, threadId));\r\n}\r\n\r\nconst print = (url, threadIds) => {\r\n let params = {\r\n threadIds: threadIds.join()\r\n }\r\n return RestRequestBLOB(url, {params});\r\n}\r\n\r\nconst shareCorrespondencePrint = async (roundId, type, before, threadIds, system) => {\r\n let params = {\r\n threadIds: threadIds.join()\r\n }\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_SHARE(roundId, type, before), {system}, {params});\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n return false;\r\n}\r\n\r\nexport default {\r\n getBuyerThreadList,\r\n getBuyerNewMessages,\r\n getBuyerSearchResult,\r\n getBuyerThreadMessageList,\r\n addBuyerThread,\r\n sendBuyerMessage,\r\n publishBuyerMessage,\r\n updateBuyerMessage,\r\n saveBuyerThreadAsContractor,\r\n createBuyerMessage,\r\n deleteBuyerMessage,\r\n sendBuyerBulkMessages,\r\n publishBuyerBulkMessages,\r\n getBuyerContractorInRoundList,\r\n getBuyerMessageDelivery,\r\n downloadBuyerMessageAttachmentsZip,\r\n downloadBuyerMessageAttachment,\r\n checkVerificationLimit,\r\n printBuyerMessageAttachmentsVerification,\r\n sendBuyerFlagThread,\r\n sendBuyerUnflagThread,\r\n getBuyerPrivileges,\r\n getBuyerPrint,\r\n getBuyerThreadEmailList,\r\n getBuyerContractorEmailList,\r\n shareCorrespondencePrint,\r\n\r\n cleanupThreadList,\r\n cleanupPrivileges,\r\n clearThreadMessages,\r\n\r\n getContractorThreadList,\r\n getContractorNewMessages,\r\n getContractorSearchResult,\r\n getContractorThreadMessageList,\r\n createContractorMessage,\r\n updateContractorMessage,\r\n sendContractorMessage,\r\n deleteContractorMessage,\r\n addContractorThread,\r\n downloadContractorMessageAttachmentsZip,\r\n downloadContractorMessageAttachment,\r\n sendContractorFlagThread,\r\n sendContractorUnflagThread,\r\n getContractorPrivileges,\r\n getContractorPrint,\r\n\r\n CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID,\r\n CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID,\r\n CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID,\r\n CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID,\r\n CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID\r\n}","import React, {useState} from 'react'\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from \"clsx\";\r\nimport {Badge, makeStyles, Typography} from \"@material-ui/core\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport moment from \"moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport FilesList from \"components/FilesList\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport GetAppIcon from \"@material-ui/icons/GetApp\";\r\nimport PropTypes from \"prop-types\";\r\nimport CorrespondenceService from \"services/CorrespondenceService\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n contentWrapper: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper,\r\n position: 'relative'\r\n },\r\n contentWrapperUnread: {\r\n borderWidth: 3\r\n },\r\n content: {\r\n padding: `${theme.spacing(1)}px ${theme.spacing(2)}px`\r\n },\r\n sendDate: {\r\n margin: `0 ${theme.spacing(1)}px`,\r\n minWidth: 110\r\n },\r\n message: {\r\n whiteSpace: 'pre-line',\r\n margin: `${theme.spacing(2)}px 0`\r\n },\r\n newBadge: {\r\n position: 'absolute',\r\n right: 0,\r\n top: 3\r\n },\r\n}));\r\n\r\nfunction GeneralInfoPublicAnswersMessage(\r\n {\r\n demandId,\r\n index,\r\n message,\r\n currentRfxRoundId,\r\n }) {\r\n\r\n const classes = useStyles();\r\n const [downloadZipWorking, setDownloadZipWorking] = useState(false);\r\n const unread = !message.read;\r\n\r\n const downloadZip = () => {\r\n setDownloadZipWorking(true);\r\n CorrespondenceService.downloadContractorMessageAttachmentsZip(currentRfxRoundId, message.messageId, () => setDownloadZipWorking(false));\r\n }\r\n\r\n const downloadAttachment = (attachment) => {\r\n CorrespondenceService.downloadContractorMessageAttachment(currentRfxRoundId, attachment.identity)\r\n }\r\n\r\n return (\r\n \r\n\r\n
\r\n
\r\n {unread && \r\n \r\n }\r\n \r\n {Tr(\"answer_date\")}:\r\n \r\n {message.publishDate ? moment(message.publishDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT) : ''}\r\n \r\n \r\n\r\n {message.contents}\r\n\r\n {!!message?.attachments?.length && <>\r\n {Tr('attachment')}\r\n \r\n }/>\r\n >}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nGeneralInfoPublicAnswersMessage.propTypes = {\r\n message: PropTypes.object.isRequired,\r\n currentRfxRoundId: PropTypes.number.isRequired\r\n}\r\n\r\nexport default GeneralInfoPublicAnswersMessage;\r\n","import React, {useContext, useEffect, useState} from 'react'\r\nimport GeneralInfoExpansionPanelTitle from \"./GeneralInfoExpansionPanelTitle\";\r\nimport Tr from \"translations/Translations\";\r\nimport ExpansionPanel from \"components/ExpansionPanel\";\r\nimport DemandOffersGeneralInfoService from \"services/DemandOffersGeneralInfoService\";\r\nimport {withRouter} from \"react-router\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport GeneralInfoPublicAnswersMessage from \"./GeneralInfoPublicAnswersMessage\";\r\nimport PropTypes from \"prop-types\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport {StageSections} from \"../../../../constants/StageSections\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n messagesDiv: {\r\n width: '90%'\r\n }\r\n}));\r\n\r\nfunction GeneralInfoPublicAnswers(\r\n {\r\n match,\r\n panelsClassesObject,\r\n currentRfxRoundId,\r\n generalInfoPublicAnswers,\r\n demandStageSectionsList\r\n }) {\r\n const classes = useStyles();\r\n const [expanded, setExpanded] = useState(false);\r\n const demandId = match.params.id;\r\n const stageId = match.params.stageId;\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n const unreadAnswers = demandStageSectionsList[StageSections.GENERAL_INFO].unreadRfxMessages;\r\n\r\n useEffect(() => {\r\n if (expanded && generalInfoPublicAnswers === undefined)\r\n DemandOffersGeneralInfoService.getContractorGeneralInfoPublicAnswers(demandId, stageId, purchaserOfferContext?.supplierId);\r\n return () => {\r\n DemandOffersGeneralInfoService.clearResources(DemandOffersGeneralInfoService.GENERAL_INFO_PUBLIC_ANSWERS);\r\n }\r\n // eslint-disable-next-line\r\n }, [expanded])\r\n\r\n\r\n return (\r\n setExpanded(x => !x)}\r\n expanded={expanded}\r\n />\r\n }\r\n expanded={expanded}\r\n onChange={(e, isExpanded) => setExpanded(isExpanded)}\r\n\r\n >\r\n {\r\n !generalInfoPublicAnswers ?\r\n \r\n :\r\n \r\n {\r\n generalInfoPublicAnswers.map((x, i ) => ())\r\n }\r\n
\r\n\r\n\r\n }\r\n \r\n )\r\n}\r\n\r\nGeneralInfoPublicAnswers.propTypes = {\r\n currentRfxRoundId: PropTypes.number.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n generalInfoPublicAnswers: state.resources[DemandOffersGeneralInfoService.GENERAL_INFO_PUBLIC_ANSWERS],\r\n demandStageSectionsList: state.resources[DemandOffersService.DEMAND_STAGE_SECTIONS_LIST]\r\n}), {})(withRouter(GeneralInfoPublicAnswers));","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET} from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\n\r\nconst DEMAND_STATISTICS_RESOURCE_ID = 'demandStatistics';\r\nconst CURRENT_RFX_RESOURCE_ID = 'currentRfxRound';\r\n\r\nconst clearStats = () => {\r\n reduxStore.dispatch(clearResource(DEMAND_STATISTICS_RESOURCE_ID));\r\n\r\n}\r\n\r\nconst getStats = async (demandId, roundId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.STATISTIC(demandId, roundId));\r\n reduxStore.dispatch(setResource(DEMAND_STATISTICS_RESOURCE_ID, res));\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst clearCurrentRound = () => {\r\n reduxStore.dispatch(clearResource(CURRENT_RFX_RESOURCE_ID));\r\n}\r\n\r\nconst getCurrentRound = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.STATISTIC_CURRENT_ROUND(demandId));\r\n reduxStore.dispatch(setResource(CURRENT_RFX_RESOURCE_ID, res));\r\n return res;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nexport default {\r\n getStats,\r\n clearStats,\r\n getCurrentRound,\r\n clearCurrentRound,\r\n CURRENT_RFX_RESOURCE_ID,\r\n DEMAND_STATISTICS_RESOURCE_ID\r\n}","import React, {useState} from 'react'\r\nimport PropTypes from \"prop-types\";\r\nimport GeneralInfoExpansionPanelTitle from \"./GeneralInfoExpansionPanelTitle\";\r\nimport Tr from \"translations/Translations\";\r\nimport ExpansionPanel from \"components/ExpansionPanel\";\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\nimport moment from \"moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n buttonRow: {\r\n marginTop: theme.spacing(2),\r\n textAlign: \"end\"\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n ipColumn: theme.components.table.ipColumn,\r\n dateColumn: theme.components.table.dateColumn\r\n}));\r\n\r\nfunction GeneralInfoRealizationAmount(\r\n {\r\n panelsClassesObject,\r\n generalInfoBasicData\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [expanded, setExpanded] = useState(false);\r\n\r\n\r\n\r\n return (\r\n (!!generalInfoBasicData.realizationList && generalInfoBasicData.realizationList.length > 0) ?\r\n setExpanded(x => !x)}\r\n expanded={expanded}\r\n />\r\n }\r\n expanded={expanded}\r\n onChange={(e, isExpanded) => setExpanded(isExpanded)}\r\n\r\n >\r\n [\r\n `${Tr('part_x', {x: item.ordinalNumber})}: ${item.name}`,\r\n `${formatAmountNumber(item.value)} PLN`,\r\n item.publishDate ? moment(item.publishDate).format(DateFormats.DATETIME_FORMAT) : ''\r\n ])}\r\n />\r\n \r\n :\r\n null\r\n )\r\n}\r\n\r\nGeneralInfoRealizationAmount.propTypes = {\r\n generalInfoBasicData: PropTypes.object.isRequired\r\n}\r\n\r\nexport default GeneralInfoRealizationAmount;","import React, {useContext, useEffect} from 'react'\r\nimport DemandOffersGeneralInfoService from \"services/DemandOffersGeneralInfoService\";\r\nimport {useParams} from \"react-router\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport GeneralInfoBasicData from \"./components/GeneralInfoBasicData\";\r\nimport {connect} from \"react-redux\";\r\nimport GeneralInfoDocuments from \"./components/GeneralInfoDocuments\";\r\nimport GeneralInfoPublicAnswers from \"./components/GeneralInfoPublicAnswers\";\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport GeneralInfoRealizationAmount from \"./components/GeneralInfoRealizationAmount\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport PropTypes from \"prop-types\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport {StageSections} from \"../../../constants/StageSections\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2),\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n },\r\n rootExpanded: {\r\n marginBottom: `${theme.spacing(2)}px !important`\r\n },\r\n title: {\r\n padding: 0,\r\n },\r\n details: {}\r\n}));\r\n\r\n\r\nfunction GeneralInfoPanel(\r\n {\r\n panelRef,\r\n sectionId,\r\n demandHeader,\r\n currentRfxRound,\r\n generalInfoBasicData,\r\n demandStageSectionsList\r\n }) {\r\n\r\n const classes = useStyles();\r\n const params = useParams();\r\n const demandId = params.id;\r\n const stageId = params.stageId;\r\n const section = params.section;\r\n const purchaserOfferContext = useContext(PurchaserOfferContext)\r\n const dataLoading = !generalInfoBasicData || !demandHeader || !currentRfxRound;\r\n useEffect(() => {\r\n if (!dataLoading) {\r\n setTimeout((elem) => scrollTo(elem), 100, panelRef.current);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n , [dataLoading])\r\n\r\n useEffect(() => {\r\n DemandOffersGeneralInfoService.getContractorGeneralInfoBasicData(demandId, stageId, purchaserOfferContext?.supplierId);\r\n StatisticsService.getCurrentRound(demandId);\r\n return () => {\r\n DemandOffersGeneralInfoService.clearResources(DemandOffersGeneralInfoService.GENERAL_INFO_BASIC_DATA);\r\n StatisticsService.clearCurrentRound();\r\n if (demandStageSectionsList[StageSections.GENERAL_INFO]?.unreadDemandDocuments || demandStageSectionsList[StageSections.GENERAL_INFO]?.unreadRfxMessages)\r\n DemandOffersService.getStageSection(demandId, stageId, StageSections.GENERAL_INFO, purchaserOfferContext?.supplierId);\r\n }\r\n // eslint-disable-next-line\r\n }, [demandId, stageId, section])\r\n\r\n\r\n const panelsClassesObject = {root: classes.root, expanded: classes.rootExpanded, title: classes.title, details: classes.details}\r\n\r\n return dataLoading ? :\r\n \r\n \r\n \r\n \r\n \r\n \r\n}\r\n\r\nGeneralInfoPanel.propTypes = {\r\n sectionId: PropTypes.string.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n generalInfoBasicData: state.resources[DemandOffersGeneralInfoService.GENERAL_INFO_BASIC_DATA],\r\n currentRfxRound: state.resources[StatisticsService.CURRENT_RFX_RESOURCE_ID],\r\n demandStageSectionsList: state.resources[DemandOffersService.DEMAND_STAGE_SECTIONS_LIST]\r\n}), {})(GeneralInfoPanel);","import DemandOffersService from \"../services/DemandOffersService\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {setSaveStatusError} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst isResponseValidWithStoredPasswordCheck = (\r\n response, passwordSetSuccessCallback, passwordSetErrorCallback, setErrors, skipShowError) => {\r\n\r\n if (response.success === true) {\r\n return true;\r\n } else {\r\n if (response.noValidPassword) {\r\n DemandOffersService.openContractorPasswordPopup(passwordSetSuccessCallback, passwordSetErrorCallback)\r\n } else if (!skipShowError) {\r\n if (response.errors && response.errors.length > 0)\r\n reduxStore.dispatch(setSaveStatusError(response.errors[0]));\r\n else\r\n reduxStore.dispatch(setSaveStatusError(Tr('bad_request_error')));\r\n }\r\n if (setErrors) {\r\n if(response.hasOwnProperty(\"offerErrors\")) {\r\n setErrors(response.offerErrors);\r\n } else if (!response.noValidPassword) {\r\n setErrors(response.errors);\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nexport default isResponseValidWithStoredPasswordCheck;","import React from 'react'\r\nimport {Avatar, makeStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport PriorityHighIcon from '@material-ui/icons/PriorityHigh'\r\nimport DoneIcon from '@material-ui/icons/Done'\r\nimport PlaylistAddIcon from '@material-ui/icons/PlaylistAdd';\r\nimport HourglassFullIcon from '@material-ui/icons/HourglassFull';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n Done: {backgroundColor: theme.palette.common.success},\r\n Finished: {backgroundColor: theme.palette.common.success},\r\n Required: {backgroundColor: theme.palette.common.error},\r\n Optional: {backgroundColor: theme.palette.common.info},\r\n Pending: {backgroundColor: theme.palette.common.info},\r\n Progress: {backgroundColor: theme.palette.common.info},\r\n Wait: {backgroundColor: theme.palette.action.disabled},\r\n avatar: {\r\n width: 30,\r\n height: 30,\r\n marginRight: theme.spacing(2)\r\n }\r\n}))\r\n\r\nconst icoTab = {\r\n Required: PriorityHighIcon,\r\n Done: DoneIcon,\r\n Optional: PlaylistAddIcon,\r\n Wait: HourglassFullIcon,\r\n Finished: CheckCircleIcon,\r\n Progress: EditIcon\r\n}\r\n\r\nexport const AvatarStatus = {\r\n Required: \"Required\",\r\n Done: \"Done\",\r\n Optional: \"Optional\",\r\n Wait: \"Wait\",\r\n Finished: \"Finished\",\r\n Progress: \"Progress\"\r\n}\r\n\r\nfunction ExpansionPanelTitleAvatar(\r\n {\r\n variant,\r\n title\r\n }) {\r\n const classes = useStyle();\r\n\r\n const Icon = icoTab[variant];\r\n const className = classes[variant];\r\n\r\n return ({Icon && })\r\n\r\n}\r\n\r\nExpansionPanelTitleAvatar.propTypes = {\r\n variant: PropTypes.oneOf(Object.keys(AvatarStatus)).isRequired,\r\n title: PropTypes.string\r\n}\r\n\r\nexport default ExpansionPanelTitleAvatar;","export const OfferMode = {\r\n EDIT: \"EDIT\",\r\n PLACED: \"PLACED\"\r\n}\r\n","import {AvatarStatus} from \"components/ExpansionPanelTitleAvatar\";\r\nimport {OfferMode} from \"./OfferMode\";\r\n\r\nexport const OfferPositionStatusType = {\r\n NO_OFFER: \"NO_OFFER\", //nieb\r\n INCOMPLETE: \"INCOMPLETE\", //dotkniety - nieskończony\r\n COMPLETED: \"COMPLETED\", //wypełniony - nieskończony\r\n PLACED: \"PLACED\", //złożony\r\n PLACED_INCOMPLETE: \"PLACED_INCOMPLETE\", //dotkniety - nieskończony\r\n PLACED_COMPLETED: \"PLACED_COMPLETED\", //wypełniony - nieskończony\r\n PLACED_OUT_OF_DATE: \"PLACED_OUT_OF_DATE\", //złożony - nieaktualny\r\n WITHDRAWN: \"WITHDRAWN\", //ziel\r\n WAITING_SIGNATURE: \"WAITING_SIGNATURE\", //ziel\r\n WAITING_WITHDRAW_SIGNATURE: \"WAITING_WITHDRAW_SIGNATURE\", //ziel\r\n WAITING_ADDITIONAL_OFFERS: \"WAITING_ADDITIONAL_OFFERS\" //ziel\r\n}\r\n\r\nexport const OfferPositionStatusToAvatar = (status, mode) => {\r\n switch (status) {\r\n case OfferPositionStatusType.NO_OFFER:\r\n return AvatarStatus.Optional;\r\n case OfferPositionStatusType.INCOMPLETE:\r\n return AvatarStatus.Progress;\r\n case OfferPositionStatusType.COMPLETED:\r\n return AvatarStatus.Finished;\r\n case OfferPositionStatusType.PLACED:\r\n return AvatarStatus.Done;\r\n case OfferPositionStatusType.PLACED_INCOMPLETE:\r\n return AvatarStatus.Progress;\r\n case OfferPositionStatusType.PLACED_COMPLETED:\r\n return mode === OfferMode.PLACED ? AvatarStatus.Done : AvatarStatus.Finished;\r\n case OfferPositionStatusType.PLACED_OUT_OF_DATE:\r\n return mode === OfferMode.PLACED ? AvatarStatus.Finished : AvatarStatus.Required;\r\n case OfferPositionStatusType.WITHDRAWN:\r\n return AvatarStatus.Finished;\r\n case OfferPositionStatusType.WAITING_SIGNATURE:\r\n return AvatarStatus.Finished;\r\n case OfferPositionStatusType.WAITING_WITHDRAW_SIGNATURE:\r\n return AvatarStatus.Done;\r\n case OfferPositionStatusType.WAITING_ADDITIONAL_OFFERS:\r\n return AvatarStatus.Finished;\r\n default:\r\n return AvatarStatus.Wait;\r\n\r\n }\r\n}\r\n\r\nexport const OfferPositionStatusesReadyToOffering = [OfferPositionStatusType.COMPLETED, OfferPositionStatusType.PLACED_COMPLETED, OfferPositionStatusType.WITHDRAWN]\r\nexport const OfferPositionStatusesReadyToOfferSign = [OfferPositionStatusType.WAITING_SIGNATURE]\r\nexport const OfferPositionStatusesReadyToWithdraw = [OfferPositionStatusType.PLACED, OfferPositionStatusType.PLACED_COMPLETED, OfferPositionStatusType.PLACED_INCOMPLETE]\r\nexport const OfferPositionStatusesReadyToWithdrawSign = [OfferPositionStatusType.WAITING_WITHDRAW_SIGNATURE]\r\nexport const OfferPositionStatusesReadyToDelete = [OfferPositionStatusType.INCOMPLETE, OfferPositionStatusType.COMPLETED]\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const SignatureType = {\r\n QUALIFIED: \"QUALIFIED\",\r\n PERSONAL_ID: \"PERSONAL_ID\",\r\n E_PUAP: \"E_PUAP\",\r\n UNKNOWN: \"UNKNOWN\"\r\n}\r\nconst _TR_PREFIX = 'signature_type_';\r\n\r\nexport const SignatureTypeLabel = (priceType) => (Tr(_TR_PREFIX + priceType.toLowerCase()));\r\n","export const OfferStatusType = {\r\n NORMAL: \"NORMAL\",\r\n WAITING_SIGNATURE: \"WAITING_SIGNATURE\",\r\n WAITING_WITHDRAW_SIGNATURE: \"WAITING_WITHDRAW_SIGNATURE\"\r\n}\r\n","import reduxStore from 'redux/store'\r\nimport {clearResource, setResource, setSaveStatusError, setSaveStatusInfo} from \"../redux/actions\";\r\nimport {RestRequestBLOB, RestRequestBLOBBase64Encoded, RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from \"../libs/RestRequest\";\r\nimport Endpoints from \"../constants/Endpoints\";\r\nimport RouterPath from \"../libs/RouterPath\";\r\nimport Tr from \"../translations/Translations\";\r\nimport isResponseValidWithStoredPasswordCheck from \"../libs/isResponseValidWithStoredPasswordCheck\";\r\nimport downloadFile from \"../libs/downloadFile\";\r\nimport {OfferPositionStatusType} from \"../pages/contractor/demand/scenes/offer/components/common/constants/OfferPositionStatusType\";\r\nimport {SignatureType} from \"../constants/SignatureType\";\r\nimport {OfferStatusType} from \"../pages/contractor/demand/scenes/offer/components/common/constants/OfferStatusType\";\r\nimport DemandOffersService from \"./DemandOffersService\";\r\nimport {StageSections} from \"../pages/contractor/demand/scenes/offer/constants/StageSections\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport saveStatusValues from \"../constants/status.save\";\r\nimport {OfferMode} from \"../pages/contractor/demand/scenes/offer/components/common/constants/OfferMode\";\r\n\r\n\r\nconst OFFER_EDIT = \"offerEdit\";\r\nconst OFFER_PLACED = \"offerPlaced\";\r\nconst OFFER_POSITIONS_LOADED = \"offerPositionsLoaded\";\r\n\r\nconst postSaveCommonData = async (demandId, stageId, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_STAGE_CONTRACTOR_OFFER(demandId, stageId, supplierId), data, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => postSaveCommonData(demandId, stageId, supplierId, data),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n reduxStore.dispatch(setResource(OFFER_EDIT, {...resources[OFFER_EDIT], commonData: resp.result}))\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst postSavePositionData = async (demandId, stageId, supplierId, mode, data) => {\r\n let errors;\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_POSITION(demandId, stageId, supplierId), data, {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => postSavePositionData(demandId, stageId, supplierId, mode, data),\r\n () => defErrorCallback(demandId, stageId, supplierId),\r\n (err) => {\r\n errors = err;\r\n }, true\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n const loaded = resources[OFFER_POSITIONS_LOADED] || {};\r\n const newLoaded = {\r\n ...loaded,\r\n [getLoadedPositionKey(data.positionId)]: {\r\n ...data,\r\n placingType: null\r\n }\r\n //[getPositionKey(positionId)]: {...resp.result, priceType: PriceType.NET_GROSS, criteriums: resp.result.criteriums.map(x => ({...x, vatType: \"OTHER\", vatValue: 7, currency: \"PLN\"}))}\r\n }\r\n reduxStore.dispatch(setResource(OFFER_POSITIONS_LOADED, newLoaded))\r\n\r\n let filesResp = null;\r\n if (data.placingType) {\r\n filesResp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_FILES(demandId, stageId, mode, supplierId), {params});\r\n }\r\n\r\n const curEdit = resources[OFFER_EDIT];\r\n\r\n const edit = {\r\n ...curEdit,\r\n positions: curEdit.positions.map(x => x.positionId === resp.result.positionId ? resp.result : x)\r\n }\r\n\r\n if (filesResp?.success) {\r\n edit.offerFiles = filesResp.result;\r\n }\r\n\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n await DemandOffersService.getStageSection(demandId, stageId, StageSections.OFFER_EDIT, supplierId);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n if (saveStatusValues.CLOSED === reduxStore.getState().store.saveStatus)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n if (Array.isArray(errors)) {\r\n if (errors.length > 0) {\r\n if (typeof errors[0] === 'string' || errors[0] instanceof String) {\r\n reduxStore.dispatch(setSaveStatusError(errors[0]))\r\n }\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n }\r\n return errors;\r\n}\r\n\r\nconst signEspdFile = async (demandId, stageId, fileId, data) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_ESPD_ID_SIGN_FILE(demandId, stageId, fileId), data);\r\n\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n await _processAddNewEspdFiles(demandId, stageId, undefined, resp);\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\n\r\nconst postOfferEspdFiles = async (demandId, stageId, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_ESPD(demandId, stageId, supplierId), {files: data}, {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => postOfferEspdFiles(demandId, stageId, supplierId, data),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n _processAddNewEspdFiles(demandId, stageId, supplierId, resp)\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\n\r\nconst _processAddNewEspdFiles = async (demandId, stageId, supplierId, resp) => {\r\n const {resources} = reduxStore.getState();\r\n const curEdit = resources[OFFER_EDIT];\r\n const touchedPositions = resp.result.map(x => x.positionId);\r\n\r\n const tmpEspdFiles = curEdit.espdFiles.map(of => {\r\n const updatedOf = resp.result.find(x => x.identity === of.identity);\r\n return updatedOf ? updatedOf : of;\r\n });\r\n resp.result.forEach(x => {\r\n if (!curEdit.espdFiles.find(o => o.identity === x.identity))\r\n tmpEspdFiles.push(x);\r\n });\r\n\r\n const edit = {\r\n ...curEdit,\r\n espdFiles: [\r\n ...tmpEspdFiles\r\n ],\r\n positions: curEdit.positions.map(x => touchedPositions.includes(x.positionId) && x.status === OfferPositionStatusType.NO_OFFER ? {\r\n ...x,\r\n status: OfferPositionStatusType.INCOMPLETE\r\n } : x)\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n await DemandOffersService.getStageSection(demandId, stageId, StageSections.OFFER_EDIT, supplierId);\r\n\r\n}\r\n\r\n\r\n\r\n\r\nconst placeOffer = async (demandId, stageId, supplierId, onePositionMode, data, stageTr) => {\r\n\r\n const params = {supplierId}\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_PLACE_OFFER(demandId, stageId, supplierId), data, {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => placeOffer(demandId, stageId, supplierId, onePositionMode, data, stageTr),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n if (resp.result.status === OfferStatusType.NORMAL)\r\n reduxStore.dispatch(setSaveStatusInfo(supplierId ? stageTr(\"offer_placed_successfully_operator\") : (onePositionMode ? stageTr(\"offer_placed_successfully\") :\r\n stageTr(\"offer_placed_successfully_on_parts_x\") + \": \" + resp.result.positions.map(x => x.order).join(\", \"))));\r\n else if (resp.result.status === OfferStatusType.WAITING_SIGNATURE)\r\n reduxStore.dispatch(setSaveStatusInfo(stageTr(\"offer_waiting_for_signatures_x\") + \": \" + resp.result.missingSignatures));\r\n await DemandOffersService.getStageSections(demandId, stageId, supplierId)\r\n defErrorCallback(demandId, stageId, supplierId);\r\n }\r\n\r\n}\r\nconst verifyBeforePlaceOffer = async (demandId, stageId, supplierId, positionIds) => {\r\n const params = {positionIds: positionIds ? positionIds.join(\",\") : undefined}\r\n return await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_VERIFICATION_BEFORE_PLACE(demandId, stageId, supplierId), {params});\r\n}\r\n\r\nconst getPreviewSection = async (demandId, stageId, supplierId, mode) => {\r\n return await RestRequestGET(Endpoints.DEMAND_PREVIEW_OFFER_MODE_SECTION(demandId, stageId, supplierId, mode));\r\n}\r\n\r\nconst deleteOffer = async (demandId, stageId, positionIds, stageTr) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_DELETE_OFFER(demandId, stageId), {list: positionIds});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => deleteOffer(demandId, stageId, positionIds, stageTr),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n await DemandOffersService.getStageSection(demandId, stageId, StageSections.OFFER_EDIT, null);\r\n defErrorCallback(demandId, stageId);\r\n reduxStore.dispatch(setSaveStatusInfo(stageTr(\"delete_offer_success\")));\r\n }\r\n}\r\n\r\nconst withdrawOffer = async (demandId, stageId, data, onePositionMode, stageTr) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_WITHDRAW_OFFER(demandId, stageId), data);\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => withdrawOffer(demandId, stageId, data, onePositionMode, stageTr),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n if (resp.result.status === OfferStatusType.NORMAL)\r\n reduxStore.dispatch(setSaveStatusInfo(onePositionMode ? stageTr(\"offer_withdrawn_successfully\") :\r\n stageTr(\"offer_withdrawn_successfully_on_parts_x\") + \": \" + resp.result.positions.map(x => x.order).join(\", \")));\r\n else if (resp.result.status === OfferStatusType.WAITING_WITHDRAW_SIGNATURE)\r\n reduxStore.dispatch(setSaveStatusInfo(stageTr(\"offer_withdrawn_waiting_for_signatures_x\") + \": \" + resp.result.missingSignatures));\r\n await DemandOffersService.getStageSections(demandId, stageId)\r\n defErrorCallback(demandId, stageId);\r\n }\r\n}\r\n\r\nconst signOffer = async (demandId, stageId, data, onePositionMode, stageTr) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_SIGN_OFFER(demandId, stageId), data);\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => signOffer(demandId, stageId, data, onePositionMode, stageTr),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n\r\n if (resp.result.status === OfferStatusType.NORMAL)\r\n reduxStore.dispatch(setSaveStatusInfo(onePositionMode ? stageTr(\"offer_placed_successfully\") :\r\n stageTr(\"offer_placed_successfully_on_parts_x\") + \": \" + resp.result.positions.map(x => x.order).join(\", \")));\r\n else if (resp.result.status === OfferStatusType.WAITING_SIGNATURE)\r\n reduxStore.dispatch(setSaveStatusInfo(stageTr(\"offer_waiting_for_signatures_x\") + \": \" + resp.result.missingSignatures));\r\n\r\n await DemandOffersService.getStageSections(demandId, stageId)\r\n defErrorCallback(demandId, stageId);\r\n }\r\n}\r\n\r\nconst signWithdraw = async (demandId, stageId, data, onePositionMode, stageTr) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_SIGN_WITHDRAW(demandId, stageId), data);\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => signWithdraw(demandId, stageId, data, onePositionMode, stageTr),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n if (resp.result.status === OfferStatusType.NORMAL)\r\n reduxStore.dispatch(setSaveStatusInfo(onePositionMode ? stageTr(\"offer_withdrawn_successfully\") :\r\n stageTr(\"offer_withdrawn_successfully_on_parts_x\") + \": \" + resp.result.positions.map(x => x.order).join(\", \")));\r\n else if (resp.result.status === OfferStatusType.WAITING_SIGNATURE)\r\n reduxStore.dispatch(setSaveStatusInfo(stageTr(\"offer_withdrawn_waiting_for_signatures_x\") + \": \" + resp.result.missingSignatures));\r\n await DemandOffersService.getStageSections(demandId, stageId)\r\n defErrorCallback(demandId, stageId);\r\n }\r\n}\r\n\r\nconst stopSigningOperation = async (demandId, stageId) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_STOP_SIGNING_OPERATION(demandId, stageId));\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => stopSigningOperation(demandId, stageId),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n await DemandOffersService.getStageSections(demandId, stageId)\r\n defErrorCallback(demandId, stageId);\r\n }\r\n}\r\n\r\nconst getDocumentToSign = async (demandId, stageId, data) => {\r\n try {\r\n if (data.signatureType === SignatureType.QUALIFIED || data.signatureType === SignatureType.PERSONAL_ID) {\r\n let resp = await RestRequestBLOBBase64Encoded(Endpoints.DEMAND_OFFERS_OFFER_DOC_TO_SIGN(demandId, stageId), {data, method: 'post'})\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => {\r\n },\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n } else {\r\n const resp = await RestRequestBLOB(Endpoints.DEMAND_OFFERS_OFFER_DOC_TO_SIGN(demandId, stageId), {data, method: 'post'})\r\n\r\n if (resp && isResponseValidWithStoredPasswordCheck(resp,\r\n () => getDocumentToSign(demandId, stageId, data),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n}\r\n\r\nconst getDocumentBase64EncodedToSignDocument = async (url) => {\r\n try {\r\n let resp = await RestRequestBLOBBase64Encoded(url, {method: 'get'})\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => void 0,\r\n () => void 0\r\n )) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n}\r\n\r\nconst getDocumentToWithdraw = async (demandId, stageId, data) => {\r\n try {\r\n if (data.signatureType === SignatureType.QUALIFIED || data.signatureType === SignatureType.PERSONAL_ID) {\r\n let resp = await RestRequestBLOBBase64Encoded(Endpoints.DEMAND_OFFERS_OFFER_WITHDRAW_DOC_TO_SIGN(demandId, stageId), {\r\n data,\r\n method: 'post'\r\n })\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => {\r\n },\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n } else {\r\n const resp = await RestRequestBLOB(Endpoints.DEMAND_OFFERS_OFFER_WITHDRAW_DOC_TO_SIGN(demandId, stageId), {data, method: 'post'})\r\n\r\n if (resp && isResponseValidWithStoredPasswordCheck(resp,\r\n () => getDocumentToSign(demandId, stageId, data),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n}\r\n\r\nconst getDownloadOfferFileUrl = async (demandId, stageId, mode, fileId, supplierId) => {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_FILE_DOWNLOAD_URL(demandId, stageId, mode, fileId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => {\r\n },\r\n () => {\r\n }\r\n )) {\r\n return resp.result;\r\n }\r\n}\r\n\r\nconst getDownloadOfferFile = async (demandId, stageId, mode, fileId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_FILE_DOWNLOAD_URL(demandId, stageId, mode, fileId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => getDownloadOfferFile(demandId, stageId, mode, fileId, supplierId),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n downloadFile({url: resp.result})\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getDownloadOfferFilesZip = async (demandId, stageId, supplierId) => {\r\n const params = {supplierId}\r\n await RestRequestBLOB(Endpoints.DEMAND_OFFERS_OFFER_MODE_FILE_DOWNLOAD_ZIP(demandId, stageId, supplierId), {params});\r\n}\r\n\r\nconst getDownloadEspdFileUrl = async (demandId, stageId, mode, fileId, supplierId) => {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_ESPD_DOWNLOAD_URL(demandId, stageId, mode, fileId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => {\r\n },\r\n () => {\r\n }\r\n )) {\r\n return resp.result;\r\n }\r\n}\r\n\r\nconst getDownloadEspdFile = async (demandId, stageId, mode, fileId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_ESPD_DOWNLOAD_URL(demandId, stageId, mode, fileId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => getDownloadEspdFile(demandId, stageId, mode, fileId, supplierId),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n downloadFile({url: resp.result})\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst signFile = async (demandId, stageId, fileId, data) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_FILE_ID_SIGN_FILE(demandId, stageId, fileId), data);\r\n\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n await _processAddNewFiles(demandId, stageId, OfferMode.EDIT, undefined, resp);\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst postOfferFiles = async (demandId, stageId, mode, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_FILE(demandId, stageId, supplierId), {files: data}, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => postOfferFiles(demandId, stageId, mode, supplierId, data),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n await _processAddNewFiles(demandId, stageId, mode, supplierId, resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst _processAddNewFiles = async (demandId, stageId, mode, supplierId, resp) => {\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[OFFER_EDIT];\r\n\r\n let touchedPositions;\r\n\r\n if (curEdit.passiveOfferForm) {\r\n touchedPositions = [curEdit.positions[0].positionId]\r\n } else {\r\n touchedPositions = [...new Set(resp.result.filter(x => !!x.positionId).map(x => x.positionId))];\r\n }\r\n\r\n let positions = [];\r\n if (touchedPositions.length > 0) {\r\n const params = {\r\n positionIds: touchedPositions.join(\",\"),\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n positions = resp.result;\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[OFFER_EDIT];\r\n }\r\n\r\n const tmpOfferFiles = curEdit.offerFiles.map(of => {\r\n const updatedOf = resp.result.find(x => x.identity === of.identity);\r\n return updatedOf ? updatedOf : of;\r\n });\r\n resp.result.forEach(x => {\r\n if (!curEdit.offerFiles.find(o => o.identity === x.identity))\r\n tmpOfferFiles.push(x);\r\n });\r\n const edit = {\r\n ...curEdit,\r\n offerFiles: [\r\n ...tmpOfferFiles\r\n ],\r\n positions: curEdit.positions.map(x => {\r\n const pos = positions.find(p => p.positionId === x.positionId);\r\n return pos ? pos : x;\r\n })\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n await DemandOffersService.getStageSection(demandId, stageId, StageSections.OFFER_EDIT, supplierId);\r\n}\r\n\r\nconst deleteOfferFile = async (demandId, stageId, mode, supplierId, fileId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestDELETE(Endpoints.DEMAND_OFFERS_OFFER_FILE_ID(demandId, stageId, fileId, supplierId), {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => deleteOfferFile(demandId, stageId, mode, supplierId, fileId),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[OFFER_EDIT];\r\n\r\n let positionId;\r\n if (curEdit.passiveOfferForm) {\r\n positionId = curEdit.positions[0].positionId;\r\n } else {\r\n const file = curEdit.offerFiles.find(x => x.identity === fileId);\r\n if (file) {\r\n positionId = file.positionId;\r\n }\r\n }\r\n\r\n let position;\r\n if (positionId) {\r\n const params = {\r\n positionIds: positionId,\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n position = resp.result[0];\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[OFFER_EDIT];\r\n }\r\n\r\n let tmpOfferFiles = curEdit.offerFiles.filter(x => x.identity !== fileId);\r\n if (!!resp.result) {\r\n tmpOfferFiles = tmpOfferFiles.map(x => {\r\n return x.identity === resp.result.identity ? resp.result : x;\r\n })\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n offerFiles: tmpOfferFiles,\r\n positions: curEdit.positions.map(x => position && position.identity === x.identity ? position : x)\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n await DemandOffersService.getStageSection(demandId, stageId, StageSections.OFFER_EDIT, supplierId);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\n\r\nconst editEspdFile = async (demandId, stageId, espdId, mode, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPUT(Endpoints.DEMAND_OFFERS_OFFER_ESPD_ID(demandId, stageId, espdId, supplierId), data, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => editEspdFile(demandId, stageId, espdId, mode, supplierId, data),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[OFFER_EDIT];\r\n\r\n let positionId;\r\n if (curEdit.passiveOfferForm) {\r\n positionId = curEdit.positions[0].positionId;\r\n } else {\r\n const file = curEdit.offerFiles.find(x => x.identity === espdId);\r\n if (file) {\r\n positionId = file.positionId;\r\n }\r\n }\r\n\r\n let position;\r\n if (positionId) {\r\n const params = {\r\n positionIds: positionId,\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n position = resp.result[0];\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[OFFER_EDIT];\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n espdFiles: curEdit.espdFiles.map(x => x.identity === resp.result.identity ? resp.result : x),\r\n positions: curEdit.positions.map(x => position && position.identity === x.identity ? position : x)\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst editEspdFiles = async (demandId, stageId, mode, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPUT(Endpoints.DEMAND_OFFERS_OFFER_ESPDS(demandId, stageId, supplierId), data, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => editEspdFiles(demandId, stageId, mode, supplierId, data),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[OFFER_EDIT];\r\n\r\n let touchedPositions;\r\n\r\n if (curEdit.passiveOfferForm) {\r\n touchedPositions = [curEdit.positions[0].positionId]\r\n } else {\r\n touchedPositions = [...new Set(resp.result.filter(x => !!x.positionId).map(x => x.positionId))];\r\n }\r\n\r\n let positions = [];\r\n if (touchedPositions.length > 0) {\r\n const params = {\r\n positionIds: touchedPositions.join(\",\"),\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n positions = resp.result;\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[OFFER_EDIT];\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n espdFiles: curEdit.espdFiles.map(x => resp.result.find(y => y.identity === x.identity) || x),\r\n positions: curEdit.positions.map(x => {\r\n const pos = positions.find(p => p.positionId === x.positionId);\r\n return pos ? pos : x;\r\n })\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst deleteEspdFile = async (demandId, stageId, espdId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestDELETE(Endpoints.DEMAND_OFFERS_OFFER_ESPD_ID(demandId, stageId, espdId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => deleteEspdFile(demandId, stageId, espdId, supplierId),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n const curEdit = resources[OFFER_EDIT];\r\n\r\n let tmpOfferFiles = curEdit.espdFiles.filter(x => x.identity !== espdId);\r\n if (!!resp.result) {\r\n tmpOfferFiles = tmpOfferFiles.map(x => {\r\n return x.identity === resp.result.identity ? resp.result : x;\r\n })\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n espdFiles: tmpOfferFiles\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst editOfferFile = async (demandId, stageId, fileId, mode, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPUT(Endpoints.DEMAND_OFFERS_OFFER_FILE_ID(demandId, stageId, fileId, supplierId), data, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => editOfferFile(demandId, stageId, fileId, mode, supplierId, data),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[OFFER_EDIT];\r\n\r\n let positionId;\r\n if (curEdit.passiveOfferForm) {\r\n positionId = curEdit.positions[0].positionId;\r\n } else {\r\n const file = curEdit.offerFiles.find(x => x.identity === fileId);\r\n if (file) {\r\n positionId = file.positionId;\r\n }\r\n }\r\n\r\n let position;\r\n if (positionId) {\r\n const params = {\r\n positionIds: positionId,\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n position = resp.result[0];\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[OFFER_EDIT];\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n offerFiles: curEdit.offerFiles.map(x => x.identity === resp.result.identity ? resp.result : x),\r\n positions: curEdit.positions.map(x => position && position.identity === x.identity ? position : x)\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\nconst editOfferFiles = async (demandId, stageId, mode, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPUT(Endpoints.DEMAND_OFFERS_OFFER_FILES(demandId, stageId, supplierId), data, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => editOfferFiles(demandId, stageId, mode, supplierId, data),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[OFFER_EDIT];\r\n\r\n let touchedPositions;\r\n\r\n if (curEdit.passiveOfferForm) {\r\n touchedPositions = [curEdit.positions[0].positionId]\r\n } else {\r\n touchedPositions = [...new Set(resp.result.filter(x => !!x.positionId).map(x => x.positionId))];\r\n }\r\n\r\n let positions = [];\r\n if (touchedPositions.length > 0) {\r\n const params = {\r\n positionIds: touchedPositions.join(\",\"),\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n positions = resp.result;\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[OFFER_EDIT];\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n offerFiles: curEdit.offerFiles.map(x => resp.result.find(y => y.identity === x.identity) || x),\r\n positions: curEdit.positions.map(x => {\r\n const pos = positions.find(p => p.positionId === x.positionId);\r\n return pos ? pos : x;\r\n })\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getOfferEdit = async (demandId, stageId, mode, supplierId, preview) => {\r\n try {\r\n const params = {supplierId}\r\n const endpoint = preview ? Endpoints.DEMAND_PREVIEW_OFFER_MODE : Endpoints.DEMAND_OFFERS_OFFER_MODE\r\n\r\n const resp = await RestRequestGET(endpoint(demandId, stageId, supplierId, mode), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => getOfferEdit(demandId, stageId, mode, supplierId, preview),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n reduxStore.dispatch(setResource(OFFER_EDIT, resp.result))\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getOfferPosition = async (demandId, stageId, mode, positionId, supplierId, preview) => {\r\n try {\r\n const params = {supplierId}\r\n const endpoint = preview ? Endpoints.DEMAND_PREVIEW_OFFER_MODE_POSITION_ID : Endpoints.DEMAND_OFFERS_OFFER_MODE_POSITION_ID;\r\n\r\n const resp = await RestRequestGET(endpoint(demandId, stageId, mode, positionId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => getOfferPosition(demandId, stageId, mode, positionId, supplierId, preview),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n const loaded = resources[OFFER_POSITIONS_LOADED] || {};\r\n\r\n const newLoaded = {\r\n ...loaded,\r\n [getLoadedPositionKey(positionId)]: resp.result\r\n //[getPositionKey(positionId)]: {...resp.result, priceType: PriceType.NET_GROSS, criteriums: resp.result.criteriums.map(x => ({...x, vatType: \"OTHER\", vatValue: 7, currency: \"PLN\"}))}\r\n }\r\n\r\n reduxStore.dispatch(setResource(OFFER_POSITIONS_LOADED, newLoaded))\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\nconst printOfferPosition = async (demandId, stageId, mode, positionId, supplierId, preview) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_PREVIEW_OFFER_MODE_POSITION_ID_PRINT(demandId, stageId, mode, positionId, supplierId), {params});\r\n if (isResponseValid(resp, (e) => {throw new Error(e)})\r\n ) {\r\n downloadFile({url: resp.result})\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst requireWithdrawEncryption = async (demandId, stageId, positionIds) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_REQUIRE_WITHDRAW_ENCRYPTION(demandId, stageId), {positionIds});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => defErrorCallback(demandId, stageId),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\n\r\nconst redirectContractorESPDMpAppUrl = async (demandId, stageId, positionId) => {\r\n try {\r\n const params = positionId ? {positionId} : {};\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_ESPD_MP_APP_URL(demandId, stageId), {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => redirectContractorESPDMpAppUrl(demandId, stageId, positionId),\r\n () => defErrorCallback(demandId, stageId))\r\n ) {\r\n const resp2 = await RestRequestGET(resp.result);\r\n if (resp2.code === 'ok') {\r\n window.location.href = resp2.url;\r\n } else\r\n throw new Error(resp2);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst downloadContractorESPDExportFile = async (demandId, stageId, positionId) => {\r\n\r\n try {\r\n const params = positionId ? {positionId} : {};\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_ESPD_EXPORT_FILE_URL(demandId, stageId), {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => downloadContractorESPDExportFile(demandId, stageId, positionId),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n await RestRequestBLOB(resp.result);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getSnapshots = async (demandId, stageId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_SNAPSHOTS(demandId, stageId, supplierId), {params});\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst downloadSnapshot = async (demandId, stageId, snapshotId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestBLOB(Endpoints.DEMAND_OFFERS_OFFER_SNAPSHOT_ID(demandId, stageId, snapshotId, supplierId), {params});\r\n\r\n if (resp && isResponseValidWithStoredPasswordCheck(resp,\r\n () => downloadSnapshot(demandId, stageId, snapshotId, supplierId),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n return true;\r\n\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\n\r\nconst getVerifications = async (demandId, stageId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_VERIFICATIONS(demandId, stageId, supplierId), {params});\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst downloadVerifications = async (demandId, stageId, supplierId, positionIds) => {\r\n const data = {\r\n list: positionIds\r\n }\r\n const params = {supplierId}\r\n await RestRequestBLOB(Endpoints.DEMAND_OFFERS_OFFER_VERIFICATIONS(demandId, stageId, supplierId), {data, params, method: 'post'})\r\n}\r\n\r\nconst getDownloadOfferTemplate = async (demandId, stageId, supplierId, mode) => {\r\n const params = {supplierId}\r\n await RestRequestBLOB(Endpoints.DEMAND_OFFERS_OFFER_MODE_TEMPLATE(demandId, stageId, mode, supplierId), {params});\r\n}\r\n\r\nconst defErrorCallback = (demandId, stageId, supplierId) => {\r\n if (supplierId) {\r\n const {resources} = reduxStore.getState()\r\n if (resources[DemandOffersService.DEMAND_STAGES_LIST]) {\r\n const stage = resources[DemandOffersService.DEMAND_STAGES_LIST].find(x => x.supplierId === supplierId);\r\n if (stage?.contractorDepartmentId) {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchaserDemand.PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID, {\r\n id: demandId,\r\n contractorDepartmentId: stage.contractorDepartmentId,\r\n stageId\r\n }));\r\n }\r\n }\r\n } else {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_OFFER_STAGE_ID, {\r\n id: demandId,\r\n stageId\r\n }));\r\n }\r\n\r\n\r\n}\r\n\r\nconst clearResources = (resId) => reduxStore.dispatch(clearResource(resId));\r\n\r\n//jeśli ID jest liczbą potrafią różne dziwne rzeczy się dziać\r\nconst getLoadedPositionKey = (positionId) => \"_\" + positionId;\r\n\r\nexport default {\r\n getLoadedPositionKey,\r\n getOfferEdit,\r\n postSaveCommonData,\r\n getDownloadOfferFile,\r\n getDownloadOfferFileUrl,\r\n getDownloadOfferFilesZip,\r\n postOfferFiles,\r\n deleteOfferFile,\r\n editOfferFile,\r\n signFile,\r\n editOfferFiles,\r\n redirectContractorESPDMpAppUrl,\r\n downloadContractorESPDExportFile,\r\n signEspdFile,\r\n postOfferEspdFiles,\r\n editEspdFile,\r\n editEspdFiles,\r\n deleteEspdFile,\r\n getDownloadEspdFileUrl,\r\n getDownloadEspdFile,\r\n getOfferPosition,\r\n printOfferPosition,\r\n postSavePositionData,\r\n placeOffer,\r\n withdrawOffer,\r\n signOffer,\r\n signWithdraw,\r\n getDocumentToSign,\r\n getDocumentBase64EncodedToSignDocument,\r\n getDocumentToWithdraw,\r\n stopSigningOperation,\r\n clearResources,\r\n requireWithdrawEncryption,\r\n deleteOffer,\r\n getSnapshots,\r\n downloadSnapshot,\r\n getVerifications,\r\n downloadVerifications,\r\n verifyBeforePlaceOffer,\r\n getPreviewSection,\r\n getDownloadOfferTemplate,\r\n OFFER_EDIT,\r\n OFFER_PLACED,\r\n OFFER_POSITIONS_LOADED\r\n}","import Tr from 'translations/Translations';\r\nimport {createSelectItem} from \"../components/Select\";\r\n\r\nexport const ContractorDocumentType = {\r\n PUBLIC: \"PUBLIC\",\r\n SECRET: \"SECRET\",\r\n RODO: \"RODO\"\r\n}\r\n\r\nexport const ContractorDocumentTypeSelectItems = (curVal) => Object.values(ContractorDocumentType)\r\n .filter((type) => type !== ContractorDocumentType.RODO || curVal === ContractorDocumentType.RODO).map(x => createSelectItem(x, ContractorDocumentTypeLabel(x)));\r\n\r\n\r\nconst _TR_PREFIX = 'contractor_document_type_';\r\nexport const ContractorDocumentTypeLabel = (type) => (Tr(_TR_PREFIX + type.toLowerCase()));\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const RoundType = {\r\n\tBASE: \"BASE\",\r\n\tADDITIONAL_OFFERS: \"ADDITIONAL_OFFERS\",\r\n\tAUCTION: \"AUCTION\"\r\n}\r\n\r\nconst _TR_PREFIX = 'additional_round_type_';\r\n\r\nexport const RoundTypeLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value = Tr(trKey)) => ({\r\n label: Tr(trKey),\r\n value,\r\n})\r\n\r\nexport const TRUE_FALSE_VALUE = {\r\n TRUE: 'true',\r\n FALSE: 'false'\r\n}\r\n\r\nexport default [\r\n createItem('yes', TRUE_FALSE_VALUE.TRUE),\r\n createItem('no', TRUE_FALSE_VALUE.FALSE)\r\n]\r\n\r\nexport const TrueFalseWithEmpty = [\r\n createItem('not_specified', '_'),\r\n createItem('yes', TRUE_FALSE_VALUE.TRUE),\r\n createItem('no', TRUE_FALSE_VALUE.FALSE)\r\n]","import React from 'react'\r\nimport {makeStyles, Typography} from '@material-ui/core';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport DoubleButton from 'components/popup/components/DoubleButton';\r\nimport Select, {createSelectItem} from 'components/Select';\r\nimport VS from 'constants/ValidationShema';\r\nimport PropTypes from \"prop-types\";\r\nimport {ContractorDocumentType, ContractorDocumentTypeSelectItems} from \"constants/ContractorDocumentType\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport {TrueFalseWithEmpty} from \"constants/TrueFalseItems\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n gridContainer: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n fileName: {\r\n width: 480,\r\n marginBottom: theme.spacing()\r\n },\r\n select: {\r\n width: 180\r\n },\r\n rodoSelect: {\r\n width: 200\r\n },\r\n typeSelect: {\r\n width: 230,\r\n }\r\n}));\r\n\r\nfunction SelectOfferFilesType(\r\n {\r\n items,\r\n onCancel,\r\n onSubmit,\r\n positions,\r\n onePositionMode,\r\n roundType,\r\n formSubmit,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const formId = useId();\r\n const typeId = 'type';\r\n const positionId = 'position';\r\n const containsRodoId = 'containsRodo';\r\n\r\n const getPositionItems = () => {\r\n const map = positions.map(x => createSelectItem(x.positionId, Tr(\"part_x\", {x: x.order})));\r\n if(roundType === RoundType.BASE) {\r\n map.unshift(createSelectItem(0, Tr(\"whole_demand\")));\r\n }\r\n return map;\r\n }\r\n\r\n const generateItems = (formikProps) => {\r\n if (items.length === 0) {\r\n return {Tr(\"file_extension_error\")}\r\n }\r\n return items.map((item, i) => {\r\n return (\r\n \r\n {item.name}\r\n\r\n \r\n\r\n \r\n\r\n {!onePositionMode && }\r\n\r\n \r\n )\r\n })\r\n };\r\n\r\n const submitForm = () => {\r\n formSubmit[formId]()\r\n };\r\n\r\n const handleSubmit = (values) => onSubmit(values, items)\r\n\r\n const generateInitialValues = () => {\r\n let obj = {};\r\n for (let i = 0; i < items.length; i++) {\r\n obj[typeId + i] = null;\r\n obj[containsRodoId + i] = '_';\r\n if (!onePositionMode)\r\n obj[positionId + i] = null;\r\n }\r\n return obj\r\n };\r\n\r\n const generateValidationSchema = () => {\r\n let obj = {};\r\n for (let i = 0; i < items.length; i++) {\r\n obj[typeId + i] = VS.stringNotOneOf([ContractorDocumentType.RODO], Tr('required_field'));\r\n obj[containsRodoId + i] = VS.any();\r\n if (!onePositionMode)\r\n obj[positionId + i] = VS.anyRequired();\r\n }\r\n return VS.object(obj)\r\n };\r\n\r\n if (items === undefined) return '';\r\n return (\r\n }\r\n >\r\n \r\n\r\n \r\n )\r\n}\r\n\r\nSelectOfferFilesType.propTypes = {\r\n items: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired\r\n })).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n positions: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n onePositionMode: PropTypes.bool.isRequired,\r\n roundType: PropTypes.oneOf(Object.keys(RoundType)).isRequired,\r\n};\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form,\r\n}), {})(SelectOfferFilesType);","import React from 'react'\r\nimport {connect} from 'react-redux'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport DescriptionIcon from '@material-ui/icons/Description';\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport PropTypes from 'prop-types'\r\nimport Select from \"components/Select\";\r\nimport {ContractorDocumentType, ContractorDocumentTypeSelectItems} from \"constants/ContractorDocumentType\";\r\nimport {TrueFalseWithEmpty} from \"constants/TrueFalseItems\"\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n disabledEmpty: {\r\n fontStyle: 'italic'\r\n },\r\n textField: {\r\n wordBreak: \"break-word\",\r\n whiteSpace: 'pre-line',\r\n marginBottom: theme.spacing(2)\r\n }\r\n}));\r\n\r\n\r\nfunction EditFilePopup(\r\n {\r\n file,\r\n onCancel,\r\n onUpdate,\r\n formSubmit,\r\n }) {\r\n\r\n const classes = useStyle();\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n return (\r\n }\r\n >\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nEditFilePopup.propTypes = {\r\n file: PropTypes.shape({\r\n file: PropTypes.shape({\r\n name: PropTypes.string.isRequired\r\n }).isRequired,\r\n identity: PropTypes.number.isRequired,\r\n documentType: PropTypes.string.isRequired,\r\n }).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onUpdate: PropTypes.func.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(EditFilePopup);","import reduxStore from 'redux/store'\r\nimport {clearResource, setResource, setSaveStatusError, setSaveStatusInfo} from \"../redux/actions\";\r\nimport {RestRequestBLOB, RestRequestBLOBBase64Encoded, RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from \"../libs/RestRequest\";\r\nimport Endpoints from \"../constants/Endpoints\";\r\nimport RouterPath from \"../libs/RouterPath\";\r\nimport Tr from \"../translations/Translations\";\r\nimport isResponseValidWithStoredPasswordCheck from \"../libs/isResponseValidWithStoredPasswordCheck\";\r\nimport downloadFile from \"../libs/downloadFile\";\r\nimport {SignatureType} from \"../constants/SignatureType\";\r\nimport {OfferStatusType} from \"../pages/contractor/demand/scenes/offer/components/common/constants/OfferStatusType\";\r\nimport DemandOffersService from \"./DemandOffersService\";\r\nimport {StageSections} from \"../pages/contractor/demand/scenes/offer/constants/StageSections\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport DemandOffersOfferService from \"./DemandOffersOfferService\";\r\nimport {OfferMode} from \"../pages/contractor/demand/scenes/offer/components/common/constants/OfferMode\";\r\n\r\n\r\nconst ADDITIONAL_OFFER_EDIT = \"additionalOfferEdit\";\r\nconst ADDITIONAL_OFFER_POSITIONS_LOADED = \"additionalOfferPositionsLoaded\";\r\n\r\nconst postSavePositionData = async (demandId, stageId, supplierId, mode, data) => {\r\n let errors;\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_POSITION(demandId, stageId, supplierId), data, {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => postSavePositionData(demandId, stageId, supplierId, mode, data),\r\n () => defErrorCallback(demandId, stageId, supplierId),\r\n (err) => {\r\n errors = err;\r\n },\r\n true\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n const loaded = resources[ADDITIONAL_OFFER_POSITIONS_LOADED] || {};\r\n const newLoaded = {\r\n ...loaded,\r\n [getLoadedPositionKey(data.positionId)]: {\r\n ...data,\r\n placingType: null\r\n }\r\n //[getPositionKey(positionId)]: {...resp.result, priceType: PriceType.NET_GROSS, criteriums: resp.result.criteriums.map(x => ({...x, vatType: \"OTHER\", vatValue: 7, currency: \"PLN\"}))}\r\n }\r\n reduxStore.dispatch(setResource(ADDITIONAL_OFFER_POSITIONS_LOADED, newLoaded))\r\n let filesResp = null;\r\n if (data.placingType) {\r\n filesResp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILES(demandId, stageId, mode, supplierId), {params});\r\n }\r\n\r\n const curEdit = resources[ADDITIONAL_OFFER_EDIT];\r\n const edit = {\r\n ...curEdit,\r\n positions: curEdit.positions.map(x => x.positionId === resp.result.positionId ? resp.result : x)\r\n }\r\n if (filesResp?.success) {\r\n edit.offerFiles = filesResp.result;\r\n }\r\n reduxStore.dispatch(setResource(ADDITIONAL_OFFER_EDIT, edit));\r\n await DemandOffersService.getStageSection(demandId, stageId, StageSections.ADDITIONAL_OFFER_EDIT, supplierId);\r\n await DemandOffersService.getStageSection(demandId, stageId, StageSections.ADDITIONAL_OFFER_EDIT_ALT, supplierId);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n if (Array.isArray(errors)) {\r\n if (errors.length > 0) {\r\n if (typeof errors[0] === 'string' || errors[0] instanceof String) {\r\n reduxStore.dispatch(setSaveStatusError(errors[0]))\r\n }\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n }\r\n return errors;\r\n}\r\n\r\nconst placeOffer = async (demandId, stageId, supplierId, onePositionMode, data, stageTr) => {\r\n const params = {supplierId}\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_PLACE_OFFER(demandId, stageId, supplierId), data, {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => placeOffer(demandId, stageId, supplierId, onePositionMode, data, stageTr),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n if (resp.result.status === OfferStatusType.NORMAL)\r\n reduxStore.dispatch(setSaveStatusInfo(supplierId ? stageTr(\"offer_placed_successfully_operator\") : (onePositionMode ? stageTr(\"offer_placed_successfully\") :\r\n stageTr(\"offer_placed_successfully_on_parts_x\") + \": \" + resp.result.positions.map(x => x.order).join(\", \"))));\r\n else if (resp.result.status === OfferStatusType.WAITING_SIGNATURE)\r\n reduxStore.dispatch(setSaveStatusInfo(stageTr(\"offer_waiting_for_signatures_x\") + \": \" + resp.result.missingSignatures));\r\n await DemandOffersService.getStageSections(demandId, stageId, supplierId)\r\n defErrorCallback(demandId, stageId, supplierId);\r\n }\r\n\r\n}\r\n\r\n\r\nconst verifyBeforePlaceOffer = async (demandId, stageId, supplierId, positionIds) => {\r\n const params = {positionIds: positionIds ? positionIds.join(\",\") : undefined}\r\n return await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_VERIFICATION_BEFORE_PLACE(demandId, stageId, supplierId), {params});\r\n}\r\n\r\nconst deleteOffer = async (demandId, stageId, positionIds) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_DELETE_OFFER(demandId, stageId), {list: positionIds});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => deleteOffer(demandId, stageId, positionIds),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n await DemandOffersService.getStageSections(demandId, stageId);\r\n defErrorCallback(demandId, stageId);\r\n }\r\n}\r\n\r\n\r\nconst withdrawOffer = async (demandId, stageId, data, onePositionMode, stageTr) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_WITHDRAW_OFFER(demandId, stageId), data);\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => withdrawOffer(demandId, stageId, data, onePositionMode, stageTr),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n if (resp.result.status === OfferStatusType.NORMAL)\r\n reduxStore.dispatch(setSaveStatusInfo(onePositionMode ? stageTr(\"offer_withdrawn_successfully\") :\r\n stageTr(\"offer_withdrawn_successfully_on_parts_x\") + \": \" + resp.result.positions.map(x => x.order).join(\", \")));\r\n else if (resp.result.status === OfferStatusType.WAITING_WITHDRAW_SIGNATURE)\r\n reduxStore.dispatch(setSaveStatusInfo(stageTr(\"offer_withdrawn_waiting_for_signatures_x\") + \": \" + resp.result.missingSignatures));\r\n await DemandOffersService.getStageSections(demandId, stageId)\r\n defErrorCallback(demandId, stageId);\r\n }\r\n}\r\n\r\nconst signOffer = async (demandId, stageId, data, onePositionMode, stageTr) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_SIGN_OFFER(demandId, stageId), data);\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => signOffer(demandId, stageId, data, onePositionMode, stageTr),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n\r\n if (resp.result.status === OfferStatusType.NORMAL)\r\n reduxStore.dispatch(setSaveStatusInfo(onePositionMode ? stageTr(\"offer_placed_successfully\") :\r\n stageTr(\"offer_placed_successfully_on_parts_x\") + \": \" + resp.result.positions.map(x => x.order).join(\", \")));\r\n else if (resp.result.status === OfferStatusType.WAITING_SIGNATURE)\r\n reduxStore.dispatch(setSaveStatusInfo(stageTr(\"offer_waiting_for_signatures_x\") + \": \" + resp.result.missingSignatures));\r\n\r\n await DemandOffersService.getStageSections(demandId, stageId)\r\n defErrorCallback(demandId, stageId);\r\n }\r\n}\r\n\r\nconst signWithdraw = async (demandId, stageId, data, onePositionMode, stageTr) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_SIGN_WITHDRAW(demandId, stageId), data);\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => signWithdraw(demandId, stageId, data, onePositionMode, stageTr),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n if (resp.result.status === OfferStatusType.NORMAL)\r\n reduxStore.dispatch(setSaveStatusInfo(onePositionMode ? stageTr(\"offer_withdrawn_successfully\") :\r\n stageTr(\"offer_withdrawn_successfully_on_parts_x\") + \": \" + resp.result.positions.map(x => x.order).join(\", \")));\r\n else if (resp.result.status === OfferStatusType.WAITING_SIGNATURE)\r\n reduxStore.dispatch(setSaveStatusInfo(stageTr(\"offer_withdrawn_waiting_for_signatures_x\") + \": \" + resp.result.missingSignatures));\r\n await DemandOffersService.getStageSections(demandId, stageId)\r\n defErrorCallback(demandId, stageId);\r\n }\r\n}\r\n\r\nconst stopSigningOperation = async (demandId, stageId, positionId) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_STOP_SIGNING_OPERATION(demandId, stageId, positionId));\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => stopSigningOperation(demandId, stageId, positionId),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n await DemandOffersService.getStageSections(demandId, stageId)\r\n defErrorCallback(demandId, stageId);\r\n }\r\n}\r\n\r\nconst getDocumentToSign = async (demandId, stageId, data) => {\r\n try {\r\n if (data.signatureType === SignatureType.QUALIFIED || data.signatureType === SignatureType.PERSONAL_ID) {\r\n let resp = await RestRequestBLOBBase64Encoded(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_DOC_TO_SIGN(demandId, stageId), {\r\n data,\r\n method: 'post'\r\n })\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => {\r\n },\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n } else {\r\n const resp = await RestRequestBLOB(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_DOC_TO_SIGN(demandId, stageId), {data, method: 'post'})\r\n\r\n if (resp && isResponseValidWithStoredPasswordCheck(resp,\r\n () => getDocumentToSign(demandId, stageId, data),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n}\r\n\r\nconst getDocumentToWithdraw = async (demandId, stageId, data) => {\r\n try {\r\n if (data.signatureType === SignatureType.QUALIFIED || data.signatureType === SignatureType.PERSONAL_ID) {\r\n const resp = await RestRequestBLOBBase64Encoded(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_WITHDRAW_DOC_TO_SIGN(demandId, stageId), {\r\n data,\r\n method: 'post'\r\n })\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => {\r\n },\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n } else {\r\n const resp = await RestRequestBLOB(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_WITHDRAW_DOC_TO_SIGN(demandId, stageId), {data, method: 'post'})\r\n\r\n if (resp && isResponseValidWithStoredPasswordCheck(resp,\r\n () => getDocumentToWithdraw(demandId, stageId, data),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n}\r\n\r\n\r\nconst getDownloadOfferFileUrl = async (demandId, stageId, mode, fileId, supplierId) => {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILE_DOWNLOAD_URL(demandId, stageId, mode, fileId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => {\r\n },\r\n () => {\r\n }\r\n )) {\r\n return resp.result;\r\n }\r\n}\r\n\r\nconst getDownloadOfferFile = async (demandId, stageId, mode, fileId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILE_DOWNLOAD_URL(demandId, stageId, mode, fileId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => getDownloadOfferFile(demandId, stageId, mode, fileId, supplierId),\r\n () => {\r\n }\r\n )) {\r\n downloadFile({url: resp.result})\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getDownloadOfferFilesZip = async (demandId, stageId, supplierId) => {\r\n const params = {supplierId}\r\n await RestRequestBLOB(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILE_DOWNLOAD_ZIP(demandId, stageId, supplierId), {params});\r\n}\r\n\r\nconst getDownloadEspdFile = async (demandId, stageId, mode, fileId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_ESPD_DOWNLOAD_URL(demandId, stageId, mode, fileId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => getDownloadEspdFile(demandId, stageId, mode, fileId, supplierId),\r\n () => {\r\n }\r\n )) {\r\n downloadFile({url: resp.result})\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\nconst signFile = async (demandId, stageId, fileId, data) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_FILE_ID_SIGN_FILE(demandId, stageId, fileId), data);\r\n\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n await _processAddNewFiles(demandId, stageId, OfferMode.EDIT, undefined, resp);\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst postOfferFiles = async (demandId, stageId, mode, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_FILE(demandId, stageId, supplierId), {files: data}, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => postOfferFiles(demandId, stageId, mode, supplierId, data),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n await _processAddNewFiles(demandId, stageId, mode, supplierId, resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst _processAddNewFiles = async (demandId, stageId, mode, supplierId, resp) => {\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[ADDITIONAL_OFFER_EDIT];\r\n let touchedPositions;\r\n\r\n if (curEdit.passiveOfferForm) {\r\n touchedPositions = [curEdit.positions[0].positionId]\r\n } else {\r\n touchedPositions = [...new Set(resp.result.filter(x => !!x.positionId).map(x => x.positionId))];\r\n }\r\n let positions = [];\r\n if (touchedPositions.length > 0) {\r\n const params = {\r\n positionIds: touchedPositions.join(\",\"),\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n positions = resp.result;\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[ADDITIONAL_OFFER_EDIT];\r\n }\r\n\r\n const tmpOfferFiles = curEdit.offerFiles.map(of => {\r\n const updatedOf = resp.result.find(x => x.identity === of.identity);\r\n return updatedOf ? updatedOf : of;\r\n });\r\n resp.result.forEach(x => {\r\n if (!curEdit.offerFiles.find(o => o.identity === x.identity))\r\n tmpOfferFiles.push(x);\r\n });\r\n\r\n const edit = {\r\n ...curEdit,\r\n offerFiles: [\r\n ...tmpOfferFiles\r\n ],\r\n positions: curEdit.positions.map(x => {\r\n const pos = positions.find(p => p.positionId === x.positionId);\r\n return pos ? pos : x;\r\n })\r\n }\r\n reduxStore.dispatch(setResource(ADDITIONAL_OFFER_EDIT, edit));\r\n await DemandOffersService.getStageSection(demandId, stageId, StageSections.ADDITIONAL_OFFER_EDIT, supplierId);\r\n}\r\n\r\nconst deleteOfferFile = async (demandId, stageId, mode, supplierId, fileId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestDELETE(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_FILE_ID(demandId, stageId, fileId, supplierId), {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => deleteOfferFile(demandId, stageId, mode, supplierId, fileId),\r\n () => {\r\n }\r\n )) {\r\n\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[ADDITIONAL_OFFER_EDIT];\r\n\r\n\r\n let positionId;\r\n if (curEdit.passiveOfferForm) {\r\n positionId = curEdit.positions[0].positionId;\r\n } else {\r\n const file = curEdit.offerFiles.find(x => x.identity === fileId);\r\n if (file) {\r\n positionId = file.positionId;\r\n }\r\n }\r\n\r\n let position;\r\n if (positionId) {\r\n const params = {\r\n positionIds: positionId,\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n position = resp.result[0];\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[ADDITIONAL_OFFER_EDIT];\r\n }\r\n\r\n let tmpOfferFiles = curEdit.offerFiles.filter(x => x.identity !== fileId);\r\n if (!!resp.result) {\r\n tmpOfferFiles = tmpOfferFiles.map(x => {\r\n return x.identity === resp.result.identity ? resp.result : x;\r\n })\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n offerFiles: tmpOfferFiles,\r\n positions: curEdit.positions.map(x => position && position.identity === x.identity ? position : x)\r\n }\r\n reduxStore.dispatch(setResource(ADDITIONAL_OFFER_EDIT, edit));\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst editOfferFile = async (demandId, stageId, fileId, mode, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPUT(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_FILE_ID(demandId, stageId, fileId, supplierId), data, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => editOfferFile(demandId, stageId, fileId, mode, supplierId, data),\r\n () => {\r\n }\r\n )) {\r\n\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[ADDITIONAL_OFFER_EDIT];\r\n\r\n\r\n let positionId;\r\n if (curEdit.passiveOfferForm) {\r\n positionId = curEdit.positions[0].positionId;\r\n } else {\r\n const file = curEdit.offerFiles.find(x => x.identity === fileId);\r\n if (file) {\r\n positionId = file.positionId;\r\n }\r\n }\r\n\r\n let position;\r\n if (positionId) {\r\n const params = {\r\n positionIds: positionId,\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n position = resp.result[0];\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[ADDITIONAL_OFFER_EDIT];\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n offerFiles: curEdit.offerFiles.map(x => x.identity === resp.result.identity ? resp.result : x),\r\n positions: curEdit.positions.map(x => position && position.identity === x.identity ? position : x)\r\n }\r\n reduxStore.dispatch(setResource(ADDITIONAL_OFFER_EDIT, edit));\r\n\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n\r\n}\r\n\r\nconst editOfferFiles = async (demandId, stageId, mode, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPUT(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_FILES(demandId, stageId, supplierId), data, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => editOfferFiles(demandId, stageId, mode, supplierId, data),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[ADDITIONAL_OFFER_EDIT];\r\n let touchedPositions;\r\n\r\n if (curEdit.passiveOfferForm) {\r\n touchedPositions = [curEdit.positions[0].positionId]\r\n } else {\r\n touchedPositions = [...new Set(resp.result.filter(x => !!x.positionId).map(x => x.positionId))];\r\n }\r\n let positions = [];\r\n if (touchedPositions.length > 0) {\r\n const params = {\r\n positionIds: touchedPositions.join(\",\"),\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n positions = resp.result;\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[ADDITIONAL_OFFER_EDIT];\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n offerFiles: curEdit.offerFiles.map(x => resp.result.find(y => y.identity === x.identity) || x),\r\n positions: curEdit.positions.map(x => {\r\n const pos = positions.find(p => p.positionId === x.positionId);\r\n return pos ? pos : x;\r\n })\r\n }\r\n reduxStore.dispatch(setResource(ADDITIONAL_OFFER_EDIT, edit));\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getOfferEdit = async (demandId, stageId, mode, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_MODE(demandId, stageId, mode, supplierId), {params});\r\n if (isResponseValid(resp,\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n reduxStore.dispatch(setResource(ADDITIONAL_OFFER_EDIT, resp.result))\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getOfferPosition = async (demandId, stageId, mode, positionId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_POSITION_ID(demandId, stageId, mode, positionId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => getOfferPosition(demandId, stageId, mode, positionId, supplierId),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n const loaded = resources[ADDITIONAL_OFFER_POSITIONS_LOADED] || {};\r\n\r\n const newLoaded = {\r\n ...loaded,\r\n [getLoadedPositionKey(positionId)]: resp.result\r\n //[getPositionKey(positionId)]: {...resp.result, priceType: PriceType.NET_GROSS, criteriums: resp.result.criteriums.map(x => ({...x, vatType: \"OTHER\", vatValue: 7, currency: \"PLN\"}))}\r\n }\r\n\r\n reduxStore.dispatch(setResource(ADDITIONAL_OFFER_POSITIONS_LOADED, newLoaded))\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst requireWithdrawEncryption = async (demandId, stageId, positionIds) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_REQUIRE_WITHDRAW_ENCRYPTION(demandId, stageId), {positionIds});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => defErrorCallback(demandId, stageId),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getSnapshots = async (demandId, stageId, positionId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_SNAPSHOTS(demandId, stageId, positionId, supplierId), {params});\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst downloadSnapshot = async (demandId, stageId, positionId, snapshotId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestBLOB(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_SNAPSHOT_ID(demandId, stageId, positionId, snapshotId, supplierId), {params});\r\n if (resp && isResponseValidWithStoredPasswordCheck(resp,\r\n () => downloadSnapshot(demandId, stageId, positionId, snapshotId, supplierId),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n return true;\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getVerifications = async (demandId, stageId, positionId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_VERIFICATIONS(demandId, stageId, positionId, supplierId), {params});\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst downloadVerifications = async (demandId, stageId, positionId, supplierId, positionIds) => {\r\n const data = {\r\n list: positionIds\r\n }\r\n const params = {supplierId}\r\n await RestRequestBLOB(Endpoints.DEMAND_ADDITIONAL_OFFERS_OFFER_VERIFICATIONS(demandId, stageId, positionId, supplierId), {data, params, method: 'post'})\r\n}\r\n\r\nconst defErrorCallback = (demandId, stageId, supplierId) => {\r\n\r\n if (supplierId) {\r\n const {resources} = reduxStore.getState()\r\n if (resources[DemandOffersService.DEMAND_STAGES_LIST]) {\r\n const stage = resources[DemandOffersService.DEMAND_STAGES_LIST].find(x => x.supplierId === supplierId);\r\n if (stage?.contractorDepartmentId) {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchaserDemand.PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID, {\r\n id: demandId,\r\n contractorDepartmentId: stage.contractorDepartmentId,\r\n stageId\r\n }));\r\n }\r\n }\r\n } else {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_OFFER_STAGE_ID, {\r\n id: demandId,\r\n stageId\r\n }));\r\n }\r\n}\r\nconst clearResources = (resId) => reduxStore.dispatch(clearResource(resId));\r\n\r\nconst getLoadedPositionKey = DemandOffersOfferService.getLoadedPositionKey;\r\n\r\nexport default {\r\n getOfferEdit,\r\n getDownloadOfferFile,\r\n getDownloadOfferFileUrl,\r\n getDownloadOfferFilesZip,\r\n signFile,\r\n postOfferFiles,\r\n deleteOfferFile,\r\n editOfferFile,\r\n editOfferFiles,\r\n getDownloadEspdFile,\r\n getOfferPosition,\r\n postSavePositionData,\r\n placeOffer,\r\n withdrawOffer,\r\n signOffer,\r\n signWithdraw,\r\n getDocumentToSign,\r\n getDocumentToWithdraw,\r\n stopSigningOperation,\r\n clearResources,\r\n requireWithdrawEncryption,\r\n deleteOffer,\r\n getSnapshots,\r\n downloadSnapshot,\r\n getVerifications,\r\n downloadVerifications,\r\n verifyBeforePlaceOffer,\r\n ADDITIONAL_OFFER_EDIT,\r\n ADDITIONAL_OFFER_POSITIONS_LOADED\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestBLOB, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport reduxStore from 'redux/store'\r\nimport {clearResource, setResource, setSaveStatusError} from \"../redux/actions\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport Tr from \"../translations/Translations\";\r\nimport RouterPath from \"../libs/RouterPath\";\r\nimport isResponseValidWithStoredPasswordCheck from \"../libs/isResponseValidWithStoredPasswordCheck\";\r\nimport downloadFile from \"../libs/downloadFile\";\r\nimport DemandOffersService from \"./DemandOffersService\";\r\nimport DemandOffersOfferService from \"./DemandOffersOfferService\";\r\nimport {StageSections} from \"../pages/contractor/demand/scenes/offer/constants/StageSections\";\r\n\r\n\r\nconst OFFER_AUCTIONS_LIST_DATA = \"offerAuctionsListData\";\r\nconst AUCTIONS_OFFER_EDIT = \"auctionOfferEdit\";\r\nconst AUCTIONS_OFFER_POSITIONS_LOADED = \"auctionOfferPositionsLoaded\";\r\n\r\nconst getOfferAuctionsList = async (demandId, stageId) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_AUCTIONS_OFFER_AUCTIONS(demandId, stageId));\r\n if (isResponseValid(resp,\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n reduxStore.dispatch(setResource(OFFER_AUCTIONS_LIST_DATA, resp.result));\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n\r\n\r\n}\r\n\r\nconst assignToAuction = async (demandId, stageId, auctionId) => {\r\n try {\r\n return await RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_AUCTIONS_OFFER_AUCTIONS_ASSIGN(demandId, stageId, auctionId));\r\n } catch (e) {\r\n console.error(e);\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getOfferEdit = async (demandId, stageId, mode, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE(demandId, stageId, mode, supplierId), {params});\r\n if (isResponseValid(resp,\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n reduxStore.dispatch(setResource(AUCTIONS_OFFER_EDIT, resp.result))\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getDownloadEspdFile = async (demandId, stageId, mode, fileId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_ESPD_DOWNLOAD_URL(demandId, stageId, mode, fileId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => getDownloadEspdFile(demandId, stageId, mode, fileId, supplierId),\r\n () => {\r\n }\r\n )) {\r\n downloadFile({url: resp.result})\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\nconst getDownloadOfferFile = async (demandId, stageId, mode, fileId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_FILE_DOWNLOAD_URL(demandId, stageId, mode, fileId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => getDownloadOfferFile(demandId, stageId, mode, fileId, supplierId),\r\n () => {\r\n }\r\n )) {\r\n downloadFile({url: resp.result})\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\n\r\nconst getOfferPosition = async (demandId, stageId, mode, positionId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_POSITION_ID(demandId, stageId, mode, positionId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => getOfferPosition(demandId, stageId, mode, positionId, supplierId),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n const loaded = resources[AUCTIONS_OFFER_POSITIONS_LOADED] || {};\r\n\r\n const newLoaded = {\r\n ...loaded,\r\n [getLoadedPositionKey(positionId)]: resp.result\r\n }\r\n\r\n reduxStore.dispatch(setResource(AUCTIONS_OFFER_POSITIONS_LOADED, newLoaded))\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst postSavePositionData = async (demandId, stageId, supplierId, mode, data) => {\r\n let errors;\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_AUCTIONS_OFFER_POSITION(demandId, stageId, supplierId), data, {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => postSavePositionData(demandId, stageId, supplierId, mode, data),\r\n () => defErrorCallback(demandId, stageId, supplierId),\r\n (err) => {\r\n errors = err;\r\n }, true\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n const loaded = resources[AUCTIONS_OFFER_POSITIONS_LOADED] || {};\r\n const newLoaded = {\r\n ...loaded,\r\n [getLoadedPositionKey(data.positionId)]: {\r\n ...data,\r\n placingType: null\r\n }\r\n }\r\n reduxStore.dispatch(setResource(AUCTIONS_OFFER_POSITIONS_LOADED, newLoaded))\r\n let filesResp = null;\r\n if (data.placingType) {\r\n filesResp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_FILES(demandId, stageId, mode, supplierId), {params});\r\n }\r\n\r\n const curEdit = resources[AUCTIONS_OFFER_EDIT];\r\n const edit = {\r\n ...curEdit,\r\n positions: curEdit.positions.map(x => x.positionId === resp.result.positionId ? resp.result : x)\r\n }\r\n if (filesResp?.success) {\r\n edit.offerFiles = filesResp.result;\r\n }\r\n reduxStore.dispatch(setResource(AUCTIONS_OFFER_EDIT, edit));\r\n await DemandOffersService.getStageSection(demandId, stageId, StageSections.AUCTION_OFFER_PLACED, supplierId);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n if(Array.isArray(errors)) {\r\n if(errors.length > 0) {\r\n if(typeof errors[0] === 'string' || errors[0] instanceof String) {\r\n reduxStore.dispatch(setSaveStatusError(errors[0]))\r\n }\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n }\r\n return errors;\r\n}\r\n\r\nconst getSnapshots = async (demandId, stageId, positionId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_AUCTIONS_OFFER_SNAPSHOTS(demandId, stageId, positionId, supplierId), {params});\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst downloadSnapshot = async (demandId, stageId, positionId, snapshotId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestBLOB(Endpoints.DEMAND_ADDITIONAL_AUCTIONS_OFFER_SNAPSHOT_ID(demandId, stageId, positionId, snapshotId, supplierId), {params});\r\n\r\n if (resp && isResponseValidWithStoredPasswordCheck(resp,\r\n () => downloadSnapshot(demandId, stageId, positionId, snapshotId, supplierId),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n return true;\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst defErrorCallback = (demandId, stageId, supplierId) => {\r\n\r\n if (supplierId) {\r\n const {resources} = reduxStore.getState()\r\n if (resources[DemandOffersService.DEMAND_STAGES_LIST]) {\r\n const stage = resources[DemandOffersService.DEMAND_STAGES_LIST].find(x => x.supplierId === supplierId);\r\n if (stage?.contractorDepartmentId) {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchaserDemand.PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID, {\r\n id: demandId,\r\n contractorDepartmentId: stage.contractorDepartmentId,\r\n stageId\r\n }));\r\n }\r\n }\r\n } else {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_OFFER_STAGE_ID, {\r\n id: demandId,\r\n stageId\r\n }));\r\n }\r\n}\r\n\r\nconst getLoadedPositionKey = DemandOffersOfferService.getLoadedPositionKey;\r\n\r\nconst clearResources = (resId) => reduxStore.dispatch(clearResource(resId));\r\n\r\nexport default {\r\n getOfferAuctionsList,\r\n assignToAuction,\r\n\r\n getOfferEdit,\r\n getDownloadEspdFile,\r\n getDownloadOfferFile,\r\n getOfferPosition,\r\n postSavePositionData,\r\n getSnapshots,\r\n downloadSnapshot,\r\n getLoadedPositionKey,\r\n clearResources,\r\n OFFER_AUCTIONS_LIST_DATA,\r\n AUCTIONS_OFFER_EDIT,\r\n AUCTIONS_OFFER_POSITIONS_LOADED\r\n}","import React from 'react';\r\n\r\nconst OfferSectionContext = React.createContext(null);\r\nexport const OfferSectionProvider = OfferSectionContext.Provider;\r\nexport default OfferSectionContext;","import React from 'react'\r\nimport SvgIcon from '@material-ui/core/SvgIcon';\r\n\r\nfunction SignatureIcon(props) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SignatureIcon;","export const OfferFileSignStatus = {\r\n NOT_SIGNED: \"NOT_SIGNED\",\r\n SIGNED: \"SIGNED\",\r\n WRONG_SIGN: \"WRONG_SIGN\",\r\n SIGNATURE_FILE: \"SIGNATURE_FILE\"\r\n}","import React from \"react\"\r\nimport {OfferFileSignStatus} from \"../../../../common/constants/OfferFileSignStatus\";\r\nimport {makeStyles, Tooltip} from \"@material-ui/core\";\r\nimport Tr from \"../../../../../../../../../../translations/Translations\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport CheckCircleOutlineIcon from \"@material-ui/icons/CheckCircleOutline\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n signature_file: {color: theme.palette.action.disabled},\r\n not_signed: {color: theme.palette.primary.main},\r\n signed: {color: theme.palette.common.success},\r\n wrong_sign_type: {color: theme.palette.common.error},\r\n}))\r\n\r\nfunction OfferFilesTableSignStatus(\r\n {row}) {\r\n const classes = useStyle();\r\n\r\n return <>\r\n {OfferFileSignStatus.NOT_SIGNED === row.signState &&\r\n }\r\n {OfferFileSignStatus.SIGNED === row.signState &&\r\n }\r\n {OfferFileSignStatus.SIGNATURE_FILE === row.signState &&\r\n }\r\n {OfferFileSignStatus.WRONG_SIGN === row.signState && }\r\n >\r\n}\r\n\r\nexport default OfferFilesTableSignStatus;","import React from 'react';\r\n\r\nconst SupportModeContext = React.createContext(false);\r\nexport const SupportModeContextProvider = SupportModeContext.Provider;\r\nexport default SupportModeContext;","import React, {useContext, useReducer, useState} from 'react'\r\nimport {TableCell, TableRow} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport moment from \"moment\";\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport WorkableIconDownloadButton from 'components/button/WorkableIconDownloadButton';\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport {ContractorDocumentTypeLabel, ContractorDocumentTypeSelectItems} from \"constants/ContractorDocumentType\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport {useParams} from \"react-router\";\r\nimport EditFilePopup from \"./EditFilePopup\";\r\nimport DemandAdditionalOffersOfferService from \"services/DemandAdditionalOffersOfferService\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport Select from \"components/Select\";\r\nimport {OfferMode} from \"../../../../common/constants/OfferMode\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport DemandOffersAuctionService from \"services/DemandOffersAuctionService\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport OfferSectionContext from \"context/OfferSectionContext\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport SignatureIcon from \"components/icon/SignatureIcon\";\r\nimport OfferFilesTableSignStatus from \"./OfferFilesTableSignStatus\";\r\nimport SupportModeContext from \"context/SupportModeContext\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport {TrueFalseWithEmpty} from \"constants/TrueFalseItems\"\r\nimport HelpComponent from \"../../../../../../../../../../components/HelpComponent\";\r\n\r\nfunction OfferFilesTableRow(\r\n {\r\n formikProps,\r\n index,\r\n row,\r\n disabled,\r\n onePositionMode,\r\n positionIdToOrderMap,\r\n mode,\r\n classes,\r\n roundType,\r\n bulkEdit,\r\n passiveOfferForm,\r\n signFileAvailable,\r\n onSignDocument\r\n }) {\r\n const params = useParams();\r\n const [editFile, setEditFile] = useState(null);\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n const supportMode = useContext(SupportModeContext);\r\n const contextSection = useContext(OfferSectionContext);\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n edit: false,\r\n delete: false,\r\n });\r\n\r\n const onDownload = () => {\r\n dispatchIconWorks({type: 'download', works: true});\r\n let promise;\r\n switch (roundType) {\r\n case RoundType.BASE:\r\n promise = DemandOffersOfferService.getDownloadOfferFile(params.id, params.stageId, mode, row.identity, purchaserOfferContext?.supplierId)\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n promise = DemandAdditionalOffersOfferService.getDownloadOfferFile(params.id, params.stageId, mode, row.identity, purchaserOfferContext?.supplierId)\r\n break;\r\n case RoundType.AUCTION:\r\n promise = DemandOffersAuctionService.getDownloadOfferFile(params.id, params.stageId, mode, row.identity, purchaserOfferContext?.supplierId)\r\n break;\r\n default:\r\n throw new Error(\"Unknown roundType: \" + roundType)\r\n }\r\n promise.finally(() => {\r\n dispatchIconWorks({type: 'download', works: false});\r\n })\r\n }\r\n\r\n const onDelete = () => {\r\n simpleConfirm(\"confirm_delete_file\", doDelete)\r\n }\r\n const doDelete = () => {\r\n dispatchIconWorks({type: 'delete', works: true});\r\n let promise;\r\n switch (roundType) {\r\n case RoundType.BASE:\r\n promise = DemandOffersOfferService.deleteOfferFile(params.id, params.stageId, mode, purchaserOfferContext?.supplierId, row.identity)\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n promise = DemandAdditionalOffersOfferService.deleteOfferFile(params.id, params.stageId, mode, purchaserOfferContext?.supplierId, row.identity)\r\n break;\r\n default:\r\n throw new Error(\"Unknown roundType: \" + roundType)\r\n }\r\n promise.finally(() => dispatchIconWorks({type: 'delete', works: false}));\r\n }\r\n\r\n const updateFile = (data) => {\r\n dispatchIconWorks({type: 'edit', works: true});\r\n let promise;\r\n switch (roundType) {\r\n case RoundType.BASE:\r\n promise = DemandOffersOfferService.editOfferFile(params.id, params.stageId, row.identity, mode, purchaserOfferContext?.supplierId, data)\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n promise = DemandAdditionalOffersOfferService.editOfferFile(params.id, params.stageId, row.identity, mode, purchaserOfferContext?.supplierId, data)\r\n break;\r\n default:\r\n throw new Error(\"Unknown roundType: \" + roundType)\r\n }\r\n promise.finally(() => dispatchIconWorks({type: 'edit', works: false}));\r\n setEditFile(null);\r\n }\r\n\r\n\r\n return (\r\n {row.file.name}\r\n {moment(row.file.insertDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n {bulkEdit ?\r\n \r\n : TrueFalseWithEmpty.find(x => x.value === row.containsRodo).label}\r\n \r\n \r\n {bulkEdit ?\r\n \r\n : ContractorDocumentTypeLabel(row.documentType)}\r\n \r\n \r\n {!onePositionMode &&\r\n {row.positionId ? Tr(passiveOfferForm ? 'round_additional_x' : 'part_x', {x: positionIdToOrderMap[`positionId_${row.positionId}`]}) : Tr(\"whole_demand\")}}\r\n {(!purchaserOfferContext && (!!contextSection.digitalSign || passiveOfferForm)) && \r\n \r\n }\r\n {\r\n !purchaserOfferContext && signFileAvailable && \r\n {!!row.signatureConfiguration &&\r\n onSignDocument(row)}\r\n disabled={supportMode}\r\n />\r\n }\r\n \r\n }\r\n\r\n \r\n {!row.inaccessible && }\r\n \r\n\r\n {!disabled && (!purchaserOfferContext || mode === OfferMode.EDIT) && \r\n {!row.inaccessible && setEditFile(row)}\r\n />}\r\n {!!editFile &&\r\n setEditFile(null)}\r\n onUpdate={(data) => updateFile(data)}\r\n />\r\n }\r\n }\r\n\r\n {!disabled && (!purchaserOfferContext || mode === OfferMode.EDIT) && \r\n {!row.inaccessible && }\r\n }\r\n )\r\n}\r\n\r\nOfferFilesTableRow.propTypes = {};\r\n\r\nexport default OfferFilesTableRow;","import reduxStore from 'redux/store'\r\nimport {clearSignature, setSignature} from \"../redux/actions\";\r\n\r\nexport default () => {\r\n\r\n const doSignDocContent = (signatureTypes, docContentFunc, successCallback, errorCallback, cancelCallback, getEncryptionRoundId, makeTaskListConfig) => {\r\n reduxStore.dispatch(setSignature(\"config\", {\r\n signatureTypes,\r\n docContentFunc,\r\n successCallback,\r\n errorCallback,\r\n cancelCallback,\r\n getEncryptionRoundId,\r\n makeTaskListConfig\r\n }))\r\n }\r\n\r\n const breakSigning = () => {\r\n reduxStore.dispatch(clearSignature(\"config\"));\r\n }\r\n\r\n return {doSignDocContent, breakSigning};\r\n}\r\n\r\n","import reduxStore from 'redux/store'\r\nimport {setLoadingScreen} from \"../redux/actions\";\r\n\r\nexport default () => {\r\n const showLoadingScreen = () => setLoadingScreenShow(true);\r\n const hideLoadingScreen = () => setLoadingScreenShow(undefined);\r\n const setLoadingScreenShow = (show) => {\r\n reduxStore.dispatch(setLoadingScreen(!show ? undefined : true));\r\n }\r\n\r\n return {setLoadingScreenShow, hideLoadingScreen, showLoadingScreen};\r\n}\r\n","import reduxStore from 'redux/store'\r\nimport {setAlertNotifications} from \"../redux/actions\";\r\n\r\n\r\nexport const simpleAlert = (confirmText, translateTexts = true, onClose) => alertComplex({confirmText, translateTexts, onClose})\r\nexport const alertComplex = ({confirmText, confirmText2, onClose, title, maxWidth, buttonText, translateTexts = true}) => {\r\n reduxStore.dispatch(setAlertNotifications({\r\n confirmText,\r\n confirmText2,\r\n onClose,\r\n title,\r\n maxWidth,\r\n buttonText,\r\n translateTexts\r\n }))\r\n}\r\n","import React, {useContext, useMemo, useReducer, useRef, useState} from 'react'\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PropTypes from 'prop-types';\r\nimport OfferFilesTableRow from \"./OfferFilesTableRow\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport Form from \"components/Form\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport {useParams} from \"react-router\";\r\nimport DemandAdditionalOffersOfferService from \"services/DemandAdditionalOffersOfferService\";\r\nimport {OfferMode} from \"../../../../common/constants/OfferMode\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport WorkableIconDownloadButton from \"components/button/WorkableIconDownloadButton\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport OfferSectionContext from \"context/OfferSectionContext\";\r\nimport useSignature from \"hooks/useSignature\";\r\nimport useLoadingScreen from \"hooks/useLoadingScreen\";\r\nimport {simpleAlert} from \"libs/AlertNotification\";\r\nimport {SignatureType} from \"constants/SignatureType\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n lpColumn: theme.components.table.lpColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n dateTimeColumn: theme.components.table.dateTimeColumn,\r\n typeColumn: {\r\n width: 180,\r\n '& .MuiFormHelperText-root': {\r\n display: 'none'\r\n }\r\n }\r\n}));\r\n\r\nexport const CONTRACTOR_OFFER_EDIT_FILES_FORM_ID = \"cont_offer_edit_files\";\r\n\r\nfunction OfferFilesTable(\r\n {\r\n disabled,\r\n mode,\r\n section,\r\n offerEdit,\r\n roundType,\r\n\r\n }) {\r\n\r\n const classes = useStyle();\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n const [bulkEdit, setBulkEdit] = useState(false);\r\n const [bulkEditWorking, setBulkEditWorking] = useState(false);\r\n const params = useParams();\r\n const realOnePositionMode = section.onePositionMode || (offerEdit.positions.length === 1 && !(roundType === RoundType.ADDITIONAL_OFFERS || mode === OfferMode.PLACED))\r\n const contextSection = useContext(OfferSectionContext);\r\n const signFileRef = useRef(null);\r\n const {doSignDocContent, breakSigning} = useSignature();\r\n const {hideLoadingScreen, showLoadingScreen} = useLoadingScreen();\r\n\r\n const positionIdToOrderMap = useMemo(() => offerEdit.positions.reduce((prev, cur) => {\r\n prev[`positionId_${cur.positionId}`] = cur.order;\r\n return prev;\r\n }, {}), [offerEdit.positions]);\r\n\r\n const signFileAvailable = useMemo(() => !purchaserOfferContext && offerEdit.offerFiles.some(x => x.signatureConfiguration !== null), [offerEdit.offerFiles, purchaserOfferContext]);\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n });\r\n\r\n const onDownloadZip = () => {\r\n dispatchIconWorks({type: 'download', works: true});\r\n let promise;\r\n switch (roundType) {\r\n case RoundType.BASE:\r\n promise = DemandOffersOfferService.getDownloadOfferFilesZip(params.id, params.stageId, purchaserOfferContext?.supplierId)\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n promise = DemandAdditionalOffersOfferService.getDownloadOfferFilesZip(params.id, params.stageId, purchaserOfferContext?.supplierId)\r\n break;\r\n // case RoundType.AUCTION:\r\n // promise = DemandOffersAuctionService.getDownloadOfferFile(params.id, params.stageId, mode, row.identity, purchaserOfferContext?.supplierId)\r\n // break;\r\n default:\r\n throw new Error(\"Unknown roundType: \" + roundType)\r\n }\r\n promise.finally(() => {\r\n dispatchIconWorks({type: 'download', works: false});\r\n })\r\n }\r\n\r\n const onBulkSubmit = ({form}, actions) => {\r\n setBulkEditWorking(true);\r\n const filtered = form.filter((x, i) => offerEdit.offerFiles[i].documentType !== x.documentType || offerEdit.offerFiles[i].containsRodo !== x.containsRodo).map(x => ({\r\n fileId: x.identity,\r\n documentType: x.documentType,\r\n containsRodo: x.containsRodo\r\n }))\r\n\r\n if (filtered.length > 0) {\r\n let promise;\r\n switch (roundType) {\r\n case RoundType.BASE:\r\n promise = DemandOffersOfferService.editOfferFiles(params.id, params.stageId, mode, purchaserOfferContext?.supplierId, {files: filtered})\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n promise = DemandAdditionalOffersOfferService.editOfferFiles(params.id, params.stageId, mode, purchaserOfferContext?.supplierId, {files: filtered})\r\n break;\r\n default:\r\n throw new Error(\"Unsupported roundType: \" + roundType)\r\n }\r\n\r\n promise.finally(() => {\r\n setBulkEdit(false);\r\n setBulkEditWorking(false);\r\n })\r\n } else {\r\n setBulkEdit(false);\r\n setBulkEditWorking(false);\r\n }\r\n }\r\n\r\n const doBreakSigning = () => {\r\n signFileRef.current = null;\r\n breakSigning();\r\n }\r\n\r\n const onSignDocument = (row) => {\r\n if (signFileRef.current != null) {\r\n return;\r\n }\r\n signFileRef.current = row;\r\n\r\n doSignDocContent(\r\n section.signatureTypes.filter(x => [SignatureType.QUALIFIED, SignatureType.PERSONAL_ID].includes(x)),\r\n async (sigType) => {\r\n let fileUrl;\r\n if (roundType === RoundType.BASE) {\r\n fileUrl = await DemandOffersOfferService.getDownloadOfferFileUrl(params.id, params.stageId, mode, row.identity, purchaserOfferContext?.supplierId);\r\n } else if (roundType === RoundType.ADDITIONAL_OFFERS) {\r\n fileUrl = await DemandAdditionalOffersOfferService.getDownloadOfferFileUrl(params.id, params.stageId, mode, row.identity, purchaserOfferContext?.supplierId);\r\n } else {\r\n console.error(\"Sign document unavilable for roundType: +\" + roundType)\r\n }\r\n if (!fileUrl) {\r\n breakSigning();\r\n return;\r\n }\r\n const result = await DemandOffersOfferService.getDocumentBase64EncodedToSignDocument(fileUrl);\r\n if (!result)\r\n doBreakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature) => {\r\n doBreakSigning();\r\n showLoadingScreen();\r\n const data = {signatureType, signature}\r\n if (roundType === RoundType.BASE) {\r\n DemandOffersOfferService.signFile(params.id, params.stageId, row.identity, data)\r\n .then((resp) => {if(resp === true) simpleAlert(\"sign_document_completed\")}).finally(hideLoadingScreen);\r\n } else if (roundType === RoundType.ADDITIONAL_OFFERS) {\r\n DemandAdditionalOffersOfferService.signFile(params.id, params.stageId, row.identity, data)\r\n .then((resp) => {if(resp === true) simpleAlert(\"sign_document_completed\")}).finally(hideLoadingScreen);\r\n }\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n doBreakSigning();\r\n },\r\n () => {\r\n doBreakSigning();\r\n },\r\n async () => contextSection.encryptionEnabled ? contextSection.roundId : null,\r\n row.signatureConfiguration\r\n )\r\n }\r\n\r\n const getButtons = (formikProps) => {\r\n const buttons = [];\r\n if (bulkEdit) {\r\n buttons.push(createButton(Tr('discard_changes'), () => {\r\n formikProps.resetForm();\r\n setBulkEdit(false);\r\n }, \"outlined\", bulkEditWorking, undefined, false, undefined));\r\n\r\n buttons.push(createButton(Tr('operator.modify.update_files'), () => formikProps.submitForm(),\r\n undefined, bulkEditWorking, undefined, bulkEditWorking, SaveIcon));\r\n\r\n } else {\r\n buttons.push(createButton(Tr('change_files_type'), () => setBulkEdit(true),\r\n undefined, disabled || bulkEdit, undefined, false, EditIcon));\r\n }\r\n return buttons;\r\n\r\n }\r\n\r\n return (\r\n {!offerEdit.offerFiles.length ?\r\n
{Tr('no_options')}\r\n :\r\n <>\r\n\r\n
\r\n >\r\n }\r\n
)\r\n}\r\n\r\nOfferFilesTable.propTypes = {\r\n offerEdit: PropTypes.shape({\r\n offerFiles: PropTypes.array.isRequired,\r\n positions: PropTypes.array.isRequired\r\n }).isRequired,\r\n roundType: PropTypes.oneOf(Object.keys(RoundType)).isRequired\r\n};\r\nexport default OfferFilesTable;","import React, {useContext, useState} from 'react'\r\nimport UploadFile from 'components/UploadFile';\r\nimport SelectOfferFilesType from \"./SelectOfferFilesType\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport {useParams} from \"react-router\";\r\nimport OfferFilesTable from \"./OfferFilesTable\";\r\nimport PropTypes from \"prop-types\";\r\nimport {OfferMode} from \"../../../../common/constants/OfferMode\";\r\nimport DemandAdditionalOffersOfferService from \"services/DemandAdditionalOffersOfferService\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport SupportModeContext from \"context/SupportModeContext\";\r\n\r\nfunction OfferFiles(\r\n {\r\n offerEdit,\r\n section,\r\n disabled,\r\n mode,\r\n roundType,\r\n }) {\r\n const params = useParams();\r\n const [selectedFiles, setSelectedFiles] = useState(null);\r\n const [configuredFiles, setConfiguredFiles] = useState(null);\r\n const purchaserOfferContext = useContext(PurchaserOfferContext)\r\n const supportMode = useContext(SupportModeContext)\r\n const realOnePositionMode = section.onePositionMode || offerEdit.passiveOfferForm || offerEdit.positions.length === 1\r\n const [portFilesWorking, setPostFilesWorking] = useState(false);\r\n\r\n const handleSendFiles = (uploadedFiles, config) => {\r\n setConfiguredFiles(null);\r\n if(uploadedFiles.length) {\r\n const tab = uploadedFiles.map((x, i) => ({\r\n identity: -1,\r\n supplierId: offerEdit.supplierId,\r\n positionId: realOnePositionMode ? offerEdit.positions[0].positionId : (config[`position${x.originalIndex}`] === 0 ? null : config[`position${x.originalIndex}`]),\r\n documentType: config[`type${x.originalIndex}`],\r\n containsRodo: config[`containsRodo${x.originalIndex}`],\r\n file: x\r\n }));\r\n\r\n switch (roundType) {\r\n case RoundType.BASE:\r\n setPostFilesWorking(true);\r\n DemandOffersOfferService.postOfferFiles(params.id, params.stageId, mode, purchaserOfferContext?.supplierId, tab).finally(()=> setPostFilesWorking(false))\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n setPostFilesWorking(true);\r\n DemandAdditionalOffersOfferService.postOfferFiles(params.id, params.stageId, mode, purchaserOfferContext?.supplierId, tab).finally(()=> setPostFilesWorking(false))\r\n break;\r\n default:\r\n throw new Error(\"Unknown roundType: \" + roundType)\r\n }\r\n\r\n }\r\n };\r\n\r\n const handleSubmitSelectDocumentTypes = (values) => {\r\n setConfiguredFiles({files: selectedFiles, config: values})\r\n setSelectedFiles(null);\r\n };\r\n\r\n return (\r\n <>\r\n\r\n {!disabled && mode === OfferMode.EDIT &&\r\n setSelectedFiles(files)}\r\n configuredFiles={configuredFiles}\r\n onUploadPopupClosed={handleSendFiles}\r\n encryptRoundId={section.encryptionEnabled ? section.roundId : undefined}\r\n disabled={supportMode || purchaserOfferContext?.preview}\r\n working={portFilesWorking}\r\n />\r\n }\r\n\r\n \r\n\r\n {!!selectedFiles && setSelectedFiles(null)}\r\n onSubmit={handleSubmitSelectDocumentTypes}\r\n\r\n isPublished={false}\r\n positions={offerEdit.positions}\r\n onePositionMode={realOnePositionMode}\r\n roundType={roundType}\r\n />}\r\n >\r\n )\r\n}\r\n\r\nOfferFiles.propTypes = {\r\n disabled: PropTypes.bool.isRequired,\r\n roundType: PropTypes.oneOf(Object.keys(RoundType)).isRequired,\r\n mode: PropTypes.oneOf(Object.keys(OfferMode)).isRequired,\r\n section: PropTypes.shape({\r\n onePositionMode: PropTypes.bool.isRequired,\r\n digitalSign: PropTypes.bool.isRequired\r\n }).isRequired\r\n};\r\n\r\nexport default OfferFiles;","import Tr from 'translations/Translations';\r\n\r\nexport const OfferEspdType = {\r\n EXTERNAL: \"EXTERNAL\",\r\n INTERNAL: \"INTERNAL\"\r\n}\r\nconst _TR_PREFIX = 'offer_espd_type_';\r\nexport const OfferEspdTypeLabel = (type) => (Tr(_TR_PREFIX + type.toLowerCase()));\r\n","import React from \"react\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport ToggleButtonGroup from \"@material-ui/lab/ToggleButtonGroup\";\r\nimport ToggleButton from \"@material-ui/lab/ToggleButton\";\r\nimport PropTypes from \"prop-types\";\r\nimport {OfferEspdType, OfferEspdTypeLabel} from \"./constants/OfferEspdType\";\r\nimport clsx from \"clsx\";\r\nimport Tr from \"translations/Translations\";\r\nimport HelpTooltip from \"components/HelpTooltip\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginTop: theme.spacing(2),\r\n marginBottom: theme.spacing(2)\r\n },\r\n button: {\r\n width: 560,\r\n },\r\n help: {\r\n position: 'absolute',\r\n right: 70,\r\n color: theme.palette.text.button\r\n },\r\n helpNotSelected: {\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nfunction OfferEspdTypeSwitch(\r\n {\r\n espdType,\r\n setEspdType,\r\n disabled\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const onChange = (event, newEspdProcedure) => {\r\n if (newEspdProcedure)\r\n setEspdType(newEspdProcedure);\r\n };\r\n\r\n return (\r\n \r\n \r\n {OfferEspdTypeLabel(OfferEspdType.INTERNAL)}\r\n \r\n \r\n \r\n {OfferEspdTypeLabel(OfferEspdType.EXTERNAL)}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nOfferEspdTypeSwitch.propTypes = {\r\n espdType: PropTypes.string.isRequired,\r\n setEspdType: PropTypes.func.isRequired,\r\n disabled: PropTypes.bool\r\n}\r\n\r\nexport default OfferEspdTypeSwitch;\r\n\r\n","import React, {useMemo, useState} from 'react'\r\nimport {CircularProgress, makeStyles, MenuItem, TextField} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from \"clsx\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n progress: {\r\n position: 'absolute',\r\n right: 2,\r\n top: 'calc(50% - 10px)'\r\n },\r\n root: {\r\n position: 'relative'\r\n },\r\n item: {\r\n minHeight: theme.spacing(4)\r\n }\r\n}));\r\n\r\nfunction SimpleSelect(\r\n {\r\n className,\r\n menuItemClassName,\r\n items,\r\n value = '',\r\n onChange = () => {\r\n },\r\n label,\r\n disabled,\r\n working,\r\n error\r\n }) {\r\n const classes = useStyles();\r\n const getItemProps = (item) => {\r\n const isStr = typeof item === 'string';\r\n const value = isStr ? item : item.value;\r\n const label = isStr ? item : item.label;\r\n return {value, label};\r\n }\r\n // eslint-disable-next-line\r\n const [fieldValue, setFieldValue] = useState(value);\r\n\r\n const fieldValueInput = useMemo(() => {\r\n const elem = items.find(x => {\r\n const isStr = typeof x === 'string';\r\n const xVal = isStr ? x : x.value;\r\n return value === xVal;\r\n });\r\n return elem ? getItemProps(elem).value : (items.length > 0 ? getItemProps(items[0]).value : null);\r\n }, [value, items]);\r\n const handleChange = event => {\r\n setFieldValue(event.target.value)\r\n onChange(event)\r\n }\r\n\r\n return (\r\n \r\n \r\n {items.map((item, i) => {\r\n const {value, label} = getItemProps(item);\r\n return (\r\n \r\n )\r\n })}\r\n\r\n \r\n {working && }\r\n
\r\n )\r\n}\r\n\r\nSimpleSelect.propTypes = {\r\n classes: PropTypes.any,\r\n items: PropTypes.arrayOf(\r\n PropTypes.oneOfType([\r\n PropTypes.shape({\r\n value: PropTypes.any.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }),\r\n PropTypes.string.isRequired,\r\n ])\r\n ),\r\n onChange: PropTypes.func,\r\n label: PropTypes.string,\r\n error: PropTypes.string\r\n}\r\n\r\nSimpleSelect.defaultProps = {}\r\n\r\nexport default SimpleSelect;","import React, {useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport Tr from \"translations/Translations\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Typography from \"components/Typography\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from \"prop-types\";\r\nimport TitledComponent from \"../../../../../../../../../../components/TitledComponent\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n hidden: {\r\n display: \"none\"\r\n },\r\n select: {\r\n width: 400,\r\n },\r\n menuItemClassName: {\r\n whiteSpace: 'normal'\r\n },\r\n column: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flex: 1,\r\n flexBasis: '100%',\r\n padding: theme.spacing(2)\r\n },\r\n button: {\r\n marginTop: theme.spacing(1),\r\n marginLeft: theme.spacing(2),\r\n }\r\n}))\r\n\r\nfunction OfferEspdInternal(\r\n {\r\n offerEdit,\r\n disabled,\r\n positionItems,\r\n visible\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const [positionId, setPositionId] = useState(\"\");\r\n const [error, setError] = useState();\r\n const [working, setWorking] = useState(false);\r\n\r\n const goToEspd = () => {\r\n if (offerEdit.espdOnPositions && positionId === \"\") {\r\n setError(Tr(\"choose_position\"))\r\n return;\r\n }\r\n setWorking(true);\r\n DemandOffersOfferService.redirectContractorESPDMpAppUrl(params.id, params.stageId, positionId).finally(() => setWorking(false));\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n {Tr('offer_espd_type_internal_help')}\r\n
\r\n \r\n \r\n {\r\n offerEdit.espdOnPositions &&\r\n {\r\n setError()\r\n setPositionId(e.target.value)\r\n }}\r\n error={error}\r\n disabled={disabled || working}\r\n />\r\n }\r\n {Tr(\"go\")}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nOfferEspdInternal.propTypes = {\r\n visible: PropTypes.bool.isRequired\r\n};\r\n\r\nexport default OfferEspdInternal;","import React from 'react'\r\nimport {makeStyles, Typography} from '@material-ui/core';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport DoubleButton from 'components/popup/components/DoubleButton';\r\nimport Select from 'components/Select';\r\nimport VS from 'constants/ValidationShema';\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n text: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n gridContainer: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n fileName: {\r\n width: 300\r\n },\r\n select: {\r\n width: 200,\r\n marginLeft: theme.spacing(2)\r\n },\r\n parentSelect: {\r\n width: 200,\r\n }\r\n}));\r\n\r\nfunction OfferEspdExternalUploadFileTypes(\r\n {\r\n items,\r\n onCancel,\r\n onSubmit,\r\n formSubmit,\r\n positionItems,\r\n dealingId\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const formId = useId();\r\n const positionId = 'position';\r\n\r\n const generateItems = (formikProps) => {\r\n if (items.length === 0) {\r\n return {Tr(\"file_extension_error\")}\r\n }\r\n return items.map((item, i) => {\r\n return (\r\n \r\n {item.name}\r\n\r\n \r\n\r\n \r\n )\r\n })\r\n };\r\n\r\n const submitForm = () => {\r\n formSubmit[formId]()\r\n };\r\n\r\n const handleSubmit = (values, items) => onSubmit(values, items);\r\n\r\n const generateInitialValues = () => {\r\n let obj = {};\r\n for (let i = 0; i < items.length; i++) {\r\n obj[positionId + i] = dealingId;\r\n }\r\n return obj\r\n };\r\n\r\n const generateValidationSchema = () => {\r\n let obj = {};\r\n for (let i = 0; i < items.length; i++) {\r\n obj[positionId + i] = VS.number();\r\n }\r\n\r\n return VS.object(obj)\r\n };\r\n\r\n if (items === undefined) return '';\r\n return (\r\n }\r\n >\r\n \r\n\r\n \r\n )\r\n}\r\n\r\nOfferEspdExternalUploadFileTypes.propTypes = {\r\n items: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired\r\n })).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired\r\n};\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form,\r\n}), {})(OfferEspdExternalUploadFileTypes);","import React, {useContext, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport PropTypes from \"prop-types\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport OfferEspdExternalUploadFileTypes from \"./OfferEspdExternalUploadFileTypes\";\r\nimport Tr from \"translations/Translations\";\r\nimport OfferSectionContext from \"context/OfferSectionContext\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\n\r\n\r\nfunction OfferEspdExternalUploadFile(\r\n {\r\n dealingId,\r\n positionItems,\r\n offerEdit,\r\n disabled\r\n }) {\r\n const params = useParams();\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n const [selectedFiles, setSelectedFiles] = useState(null);\r\n const [configuredFiles, setConfiguredFiles] = useState(null);\r\n const [portFilesWorking, setPostFilesWorking] = useState(false);\r\n\r\n const section = useContext(OfferSectionContext);\r\n\r\n const handleSendFiles = (uploadedFiles, config) => {\r\n setConfiguredFiles(null);\r\n if (uploadedFiles.length) {\r\n const tab = uploadedFiles.map((x, i) => ({\r\n positionId: !config || !config[`position${x.originalIndex}`] ? null : config[`position${x.originalIndex}`],\r\n file: x\r\n }));\r\n setPostFilesWorking(true);\r\n DemandOffersOfferService.postOfferEspdFiles(params.id, params.stageId, purchaserOfferContext?.supplierId, tab)\r\n .finally(()=> setPostFilesWorking(false));\r\n }\r\n }\r\n\r\n const handleSubmitSelectDocumentTypes = (values) => {\r\n setConfiguredFiles({files: selectedFiles, config: values})\r\n setSelectedFiles(null);\r\n };\r\n\r\n return (\r\n <>\r\n {\r\n offerEdit.espdOnPositions ?\r\n setSelectedFiles(files)}\r\n configuredFiles={configuredFiles}\r\n onUploadPopupClosed={handleSendFiles}\r\n encryptRoundId={section.encryptionEnabled ? section.roundId : undefined}\r\n disabled={disabled}\r\n working={portFilesWorking}\r\n /> :\r\n \r\n }\r\n\r\n {!!selectedFiles && setSelectedFiles(null)}\r\n onSubmit={handleSubmitSelectDocumentTypes}\r\n isPublished={false}\r\n positionItems={positionItems}\r\n dealingId={dealingId}\r\n />}\r\n >\r\n )\r\n}\r\n\r\nOfferEspdExternalUploadFile.propTypes = {\r\n positionItems: PropTypes.arrayOf(PropTypes.shape({\r\n label: PropTypes.string.isRequired,\r\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired\r\n })).isRequired,\r\n};\r\n\r\nexport default OfferEspdExternalUploadFile;","import React, {useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Typography from \"components/Typography\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport Tr from \"translations/Translations\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport PropTypes from \"prop-types\";\r\nimport clsx from \"clsx\";\r\nimport OfferEspdExternalUploadFile from \"./OfferEspdExternalUploadFile\";\r\nimport TitledComponent from \"components/TitledComponent\";\r\nimport {Link} from \"@material-ui/core\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n hidden: {\r\n display: \"none\"\r\n },\r\n select: {\r\n width: 400,\r\n marginBottom: theme.spacing(2),\r\n },\r\n menuItemClassName: {\r\n whiteSpace: 'normal'\r\n },\r\n column: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n flex: 1,\r\n flexBasis: '100%',\r\n padding: theme.spacing(2)\r\n },\r\n button: {\r\n marginBottom: theme.spacing(2),\r\n marginTop: theme.spacing(1),\r\n marginLeft: theme.spacing(2),\r\n }\r\n}))\r\n\r\nfunction OfferEspdExternal(\r\n {\r\n offerEdit,\r\n disabled,\r\n positionItems,\r\n visible\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const [positionId, setPositionId] = useState(\"\");\r\n const [error, setError] = useState();\r\n const [working, setWorking] = useState(false);\r\n\r\n\r\n const downloadEspd = () => {\r\n if (offerEdit.espdOnPositions && positionId === \"\") {\r\n setError(Tr(\"choose_position\"))\r\n return\r\n }\r\n setWorking(true);\r\n DemandOffersOfferService.downloadContractorESPDExportFile(params.id, params.stageId, positionId).finally(() => setWorking(false));\r\n }\r\n\r\n return (\r\n \r\n {Tr('offer_espd_type_external_help')}\r\n {Tr('offer_espd_type_external_help2')}\r\n https://espd.uzp.gov.pl/filter?lang=pl\r\n \r\n\r\n
\r\n \r\n \r\n \r\n {\r\n offerEdit.espdOnPositions &&\r\n {\r\n setError()\r\n setPositionId(e.target.value)\r\n }}\r\n error={error}\r\n disabled={disabled || working}\r\n />\r\n }\r\n {Tr(\"download\")}\r\n \r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nOfferEspdExternal.propTypes = {\r\n visible: PropTypes.bool.isRequired\r\n};\r\n\r\nexport default OfferEspdExternal;","import React, {useContext, useReducer, useState} from 'react'\r\nimport {TableCell, TableRow} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport moment from \"moment\";\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport WorkableIconDownloadButton from 'components/button/WorkableIconDownloadButton';\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport {useParams} from \"react-router\";\r\nimport DemandAdditionalOffersOfferService from \"services/DemandAdditionalOffersOfferService\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport DemandOffersAuctionService from \"services/DemandOffersAuctionService\";\r\nimport OfferFilesTableSignStatus from \"../files/OfferFilesTableSignStatus\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport SignatureIcon from \"components/icon/SignatureIcon\";\r\nimport OfferSectionContext from \"context/OfferSectionContext\";\r\nimport SupportModeContext from \"context/SupportModeContext\";\r\nimport {ContractorDocumentTypeLabel, ContractorDocumentTypeSelectItems} from \"constants/ContractorDocumentType\";\r\nimport {OfferMode} from \"../../../../common/constants/OfferMode\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport EditFilePopup from \"../files/EditFilePopup\";\r\nimport Select from \"components/Select\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport {TrueFalseWithEmpty} from \"constants/TrueFalseItems\";\r\nimport HelpComponent from \"../../../../../../../../../../components/HelpComponent\";\r\n\r\nfunction OfferEspdTableRow(\r\n {\r\n row,\r\n disabled,\r\n espdOnPositions,\r\n positionIdToOrderMap,\r\n mode,\r\n classes,\r\n roundType,\r\n passiveOfferForm,\r\n signFileAvailable,\r\n onSignDocument,\r\n bulkEdit,\r\n formikProps,\r\n index\r\n }) {\r\n const params = useParams();\r\n const purchaserOfferContext = useContext(PurchaserOfferContext)\r\n const contextSection = useContext(OfferSectionContext);\r\n const supportMode = useContext(SupportModeContext);\r\n const [editFile, setEditFile] = useState(null);\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n edit: false,\r\n delete: false,\r\n });\r\n\r\n\r\n const onDownload = () => {\r\n dispatchIconWorks({type: 'download', works: true});\r\n let promise;\r\n\r\n\r\n switch (roundType) {\r\n case RoundType.BASE:\r\n promise = DemandOffersOfferService.getDownloadEspdFile(params.id, params.stageId, mode, row.identity, purchaserOfferContext?.supplierId);\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n promise = DemandAdditionalOffersOfferService.getDownloadEspdFile(params.id, params.stageId, mode, row.identity, purchaserOfferContext?.supplierId);\r\n break;\r\n case RoundType.AUCTION:\r\n promise = DemandOffersAuctionService.getDownloadEspdFile(params.id, params.stageId, mode, row.identity, purchaserOfferContext?.supplierId);\r\n break;\r\n default:\r\n throw new Error(\"Unknown roundType: \" + roundType)\r\n }\r\n\r\n promise.finally(() => {\r\n dispatchIconWorks({type: 'download', works: false});\r\n })\r\n }\r\n\r\n const onDelete = () => {\r\n dispatchIconWorks({type: 'delete', works: true});\r\n DemandOffersOfferService.deleteEspdFile(params.id, params.stageId, row.identity, purchaserOfferContext?.supplierId)\r\n .catch(() => dispatchIconWorks({type: 'delete', works: false}));\r\n }\r\n\r\n const updateFile = (data) => {\r\n dispatchIconWorks({type: 'edit', works: true});\r\n let promise;\r\n switch (roundType) {\r\n case RoundType.BASE:\r\n promise = DemandOffersOfferService.editEspdFile(params.id, params.stageId, row.identity, mode, purchaserOfferContext?.supplierId, data)\r\n break;\r\n default:\r\n throw new Error(\"Unknown roundType: \" + roundType)\r\n }\r\n promise.finally(() => dispatchIconWorks({type: 'edit', works: false}));\r\n setEditFile(null);\r\n }\r\n\r\n return (\r\n {row.file.name}\r\n {moment(row.file.insertDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n {bulkEdit ?\r\n \r\n : TrueFalseWithEmpty.find(x => x.value === row.containsRodo).label}\r\n \r\n {bulkEdit ?\r\n \r\n : ContractorDocumentTypeLabel(row.documentType)}\r\n \r\n \r\n {espdOnPositions &&\r\n {Tr('part_x', {x: positionIdToOrderMap[`positionId_${row.positionId}`]})}}\r\n\r\n {(!purchaserOfferContext && (!!contextSection.digitalSign || passiveOfferForm)) && \r\n \r\n }\r\n {\r\n signFileAvailable && \r\n {!!row.signatureConfiguration &&\r\n onSignDocument(row)}\r\n disabled={supportMode}\r\n />\r\n }\r\n \r\n }\r\n\r\n \r\n {!row.inaccessible && onDownload()}\r\n disabled={iconWorks.anyWorks || supportMode}\r\n working={iconWorks.download}\r\n />}\r\n \r\n {!(disabled || mode === OfferMode.PLACED) && (!purchaserOfferContext || mode === OfferMode.EDIT) && \r\n {!row.inaccessible && setEditFile(row)}\r\n />}\r\n {!!editFile &&\r\n setEditFile(null)}\r\n onUpdate={(data) => updateFile(data)}\r\n />\r\n }\r\n }\r\n {!(disabled || mode === OfferMode.PLACED) && \r\n {!row.inaccessible && }\r\n }\r\n )\r\n}\r\n\r\nOfferEspdTableRow.propTypes = {};\r\n\r\nexport default OfferEspdTableRow;","import React, {useContext, useMemo, useRef, useState} from 'react'\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PropTypes from 'prop-types';\r\nimport OfferEspdTableRow from \"./OfferEspdTableRow\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport OfferSectionContext from \"context/OfferSectionContext\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport {SignatureType} from \"constants/SignatureType\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport {simpleAlert} from \"libs/AlertNotification\";\r\nimport useSignature from \"hooks/useSignature\";\r\nimport useLoadingScreen from \"hooks/useLoadingScreen\";\r\nimport {useParams} from \"react-router\";\r\nimport {OfferMode} from \"../../../../common/constants/OfferMode\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Form from \"components/Form\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n typeColumn: {\r\n width: 180,\r\n '& .MuiFormHelperText-root': {\r\n display: 'none'\r\n }\r\n }\r\n}));\r\n\r\nexport const CONTRACTOR_OFFER_EDIT_ESPD_FILES_FORM_ID = \"cont_offer_edit_espd_files\";\r\n\r\nfunction OfferEspdTable(\r\n {\r\n disabled,\r\n mode,\r\n section,\r\n offerEdit,\r\n roundType,\r\n }) {\r\n\r\n const classes = useStyle();\r\n const contextSection = useContext(OfferSectionContext);\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n const signFileRef = useRef(null);\r\n const params = useParams();\r\n const {doSignDocContent, breakSigning} = useSignature();\r\n const {hideLoadingScreen, showLoadingScreen} = useLoadingScreen();\r\n const [bulkEdit, setBulkEdit] = useState(false);\r\n const [bulkEditWorking, setBulkEditWorking] = useState(false);\r\n const positionIdToOrderMap = useMemo(() => offerEdit.positions.reduce((prev, cur) => {\r\n prev[`positionId_${cur.positionId}`] = cur.order;\r\n return prev;\r\n }, {}), [offerEdit.positions]);\r\n\r\n const signFileAvailable = useMemo(() => !purchaserOfferContext && offerEdit.espdFiles.some(x => x.signatureConfiguration !== null), [offerEdit.espdFiles, purchaserOfferContext]);\r\n\r\n const doBreakSigning = () => {\r\n signFileRef.current = null;\r\n breakSigning();\r\n }\r\n\r\n const onSignDocument = (row) => {\r\n if (signFileRef.current != null) {\r\n return;\r\n }\r\n signFileRef.current = row;\r\n\r\n doSignDocContent(\r\n section.signatureTypes.filter(x => [SignatureType.QUALIFIED, SignatureType.PERSONAL_ID].includes(x)),\r\n async (sigType) => {\r\n let fileUrl;\r\n if (roundType === RoundType.BASE) {\r\n fileUrl = await DemandOffersOfferService.getDownloadEspdFileUrl(params.id, params.stageId, mode, row.identity, purchaserOfferContext?.supplierId);\r\n } else {\r\n console.error(\"Sign document unavilable for roundType: +\" + roundType)\r\n }\r\n if (!fileUrl) {\r\n breakSigning();\r\n return;\r\n }\r\n const result = await DemandOffersOfferService.getDocumentBase64EncodedToSignDocument(fileUrl);\r\n if (!result)\r\n doBreakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature) => {\r\n doBreakSigning();\r\n showLoadingScreen();\r\n const data = {signatureType, signature}\r\n if (roundType === RoundType.BASE) {\r\n DemandOffersOfferService.signEspdFile(params.id, params.stageId, row.identity, data)\r\n .then((resp) => {\r\n if (resp === true) simpleAlert(\"sign_document_completed\")\r\n }).finally(hideLoadingScreen);\r\n }\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n doBreakSigning();\r\n },\r\n () => {\r\n doBreakSigning();\r\n },\r\n async () => contextSection.encryptionEnabled ? contextSection.roundId : null,\r\n row.signatureConfiguration\r\n )\r\n }\r\n\r\n const onBulkSubmit = ({form}, actions) => {\r\n setBulkEditWorking(true);\r\n const filtered = form.filter((x, i) => offerEdit.espdFiles[i].documentType !== x.documentType || offerEdit.espdFiles[i].containsRodo !== x.containsRodo).map(x => ({\r\n fileId: x.identity,\r\n documentType: x.documentType,\r\n containsRodo: x.containsRodo\r\n }))\r\n\r\n if (filtered.length > 0) {\r\n let promise;\r\n switch (roundType) {\r\n case RoundType.BASE:\r\n promise = DemandOffersOfferService.editEspdFiles(params.id, params.stageId, mode, purchaserOfferContext?.supplierId, {files: filtered})\r\n break;\r\n default:\r\n throw new Error(\"Unsupported roundType: \" + roundType)\r\n }\r\n\r\n promise.finally(() => {\r\n setBulkEdit(false);\r\n setBulkEditWorking(false);\r\n })\r\n } else {\r\n setBulkEdit(false);\r\n setBulkEditWorking(false);\r\n }\r\n }\r\n\r\n const getButtons = (formikProps) => {\r\n const buttons = [];\r\n if (bulkEdit) {\r\n buttons.push(createButton(Tr('discard_changes'), () => {\r\n formikProps.resetForm();\r\n setBulkEdit(false);\r\n }, \"outlined\", bulkEditWorking, undefined, false, undefined));\r\n\r\n buttons.push(createButton(Tr('operator.modify.update_files'), () => formikProps.submitForm(),\r\n undefined, bulkEditWorking, undefined, bulkEditWorking, SaveIcon));\r\n\r\n } else {\r\n buttons.push(createButton(Tr('change_files_type'), () => setBulkEdit(true),\r\n undefined, disabled || bulkEdit, undefined, false, EditIcon));\r\n }\r\n return buttons;\r\n }\r\n\r\n return (\r\n {!offerEdit.espdFiles.length ?\r\n
{Tr('no_options')}\r\n :\r\n
\r\n }\r\n
)\r\n}\r\n\r\nOfferEspdTable.propTypes = {\r\n offerEdit: PropTypes.shape({\r\n offerFiles: PropTypes.array.isRequired,\r\n positions: PropTypes.array.isRequired\r\n }).isRequired,\r\n roundType: PropTypes.oneOf(Object.keys(RoundType)).isRequired\r\n};\r\nexport default OfferEspdTable;","import React, {useContext, useMemo, useState} from 'react'\r\nimport OfferEspdTypeSwitch from \"./OfferEspdTypeSwitch\";\r\nimport {OfferEspdType} from \"./constants/OfferEspdType\";\r\nimport OfferEspdInternal from \"./OfferEspdInternal\";\r\nimport OfferEspdExternal from \"./OfferEspdExternal\";\r\nimport {createSelectItem} from \"components/Select\";\r\nimport Tr from \"translations/Translations\";\r\nimport OfferEspdTable from \"./OfferEspdTable\";\r\nimport PropTypes from \"prop-types\";\r\nimport {OfferMode} from \"../../../../common/constants/OfferMode\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport SupportModeContext from \"context/SupportModeContext\";\r\n\r\nfunction OfferEspd(\r\n {\r\n offerEdit,\r\n mode,\r\n disabled,\r\n roundType,\r\n section,\r\n }) {\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n const supportMode = useContext(SupportModeContext);\r\n const [espdType, setEspdType] = useState(offerEdit.envelopeOffer ? OfferEspdType.EXTERNAL : OfferEspdType.INTERNAL);\r\n const modifyDisabled = disabled || mode === OfferMode.PLACED;\r\n\r\n const positionItems = useMemo(() => {\r\n const pos = offerEdit.espdOnPositions ? offerEdit.positions.map(x => createSelectItem(x.positionId, Tr(\"part_x\", {x: x.order}) + ': ' + x.name)) : [];\r\n pos.unshift(createSelectItem(\"\", \"\"));\r\n return pos;\r\n }, [offerEdit.positions, offerEdit.espdOnPositions]);\r\n\r\n return (\r\n <>\r\n {\r\n !modifyDisabled && <>\r\n \r\n \r\n \r\n >\r\n }\r\n\r\n \r\n >\r\n )\r\n}\r\n\r\nOfferEspd.propTypes = {\r\n disabled: PropTypes.bool.isRequired,\r\n mode: PropTypes.oneOf(Object.keys(OfferMode)).isRequired,\r\n roundType: PropTypes.oneOf(Object.keys(RoundType)).isRequired\r\n};\r\n\r\nexport default OfferEspd;","export const ContractorOfferEspdType = {\r\n NO: \"NO\",\r\n OPTIONAL: \"OPTIONAL\",\r\n YES: \"YES\"\r\n}\r\n","import VS from 'constants/ValidationShema';\r\nimport {VARIANT_CODE} from \"components/popup/newCriteria/constants/criteria.variants\";\r\nimport {PriceType} from \"constants/PriceTypes\";\r\nimport VatType from \"constants/VatType\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst criterionValidation = (criterion, priceType, criterions) => {\r\n if (criterion.criterium.disabled)\r\n return VS.any();\r\n let shape = {};\r\n switch (criterion.criterium.uiType) {\r\n case VARIANT_CODE.NUMBER:\r\n case VARIANT_CODE.INTERVAL:\r\n shape.value = VS.string();\r\n break;\r\n case VARIANT_CODE.PRICE: {\r\n\r\n switch (priceType) {\r\n case PriceType.NET:\r\n case PriceType.NET_VAT:\r\n shape.value = VS.string().test('more_than_0', Tr('v_number_min_0'), () => {\r\n return parseFloat(criterion.value) > 0\r\n })\r\n break;\r\n case PriceType.NET_GROSS:\r\n shape.value = VS.string().test('more_than_0', Tr('v_number_min_0'), () => {\r\n return parseFloat(criterion.value) > 0\r\n })\r\n shape.grossValue = VS.any().when(\"vatType\",\r\n {\r\n is: (vatType) => vatType === VatType.MIXED,\r\n then: VS.any().test('gross_less', Tr('gross_less'), () => {\r\n const gVal = parseFloat(criterion.grossValue);\r\n return gVal > 0 && gVal>= parseFloat(criterion.value)\r\n }),\r\n otherwise: VS.any()\r\n }\r\n )\r\n break;\r\n case PriceType.GROSS:\r\n case PriceType.GROSS_VAT:\r\n shape.grossValue = VS.string().test('more_than_0', Tr('v_number_min_0'), () => {\r\n return parseFloat(criterion.grossValue) > 0\r\n })\r\n break;\r\n default:\r\n }\r\n\r\n switch (priceType) {\r\n case PriceType.NET_VAT:\r\n case PriceType.NET_GROSS:\r\n case PriceType.GROSS_VAT:\r\n\r\n shape.vatType = VS.string()\r\n shape.vatValue = VS.any().when('vatType',\r\n {\r\n is: (val) => (val === VatType.OTHER || val === VatType.STANDARD),\r\n then: VS.decimalNumber(\"\")\r\n }\r\n )\r\n break;\r\n default:\r\n }\r\n\r\n if (criterion.quantity !== null && criterion.quantity !== undefined) {\r\n const quantityShape = {\r\n value: VS.numberMin0(),\r\n uom: VS.string()\r\n };\r\n if (!!criterion.criterium.baseItemId) {\r\n quantityShape.uom = VS.string().test('offer_option_uom_must_match_base_item', Tr('offer_option_uom_must_match_base_item'), () => {\r\n const baseCriterion = criterions.filter(c => c.criterium.identity === criterion.criterium.baseItemId)[0];\r\n const quantity = !!baseCriterion.quantity ? baseCriterion.quantity : baseCriterion.criterium.quantity;\r\n return quantity.uom === criterion.quantity.uom;\r\n });\r\n } else if (!!criterion.criterium.optionalItemId) {\r\n quantityShape.uom = VS.string().test('offer_base_uom_must_match_option_item', Tr('offer_base_uom_must_match_option_item'), () => {\r\n const optionCriterion = criterions.filter(c => c.criterium.identity === criterion.criterium.optionalItemId)[0];\r\n const quantity = !!optionCriterion.quantity ? optionCriterion.quantity : optionCriterion.criterium.quantity;\r\n return quantity.uom === criterion.quantity.uom;\r\n });\r\n }\r\n shape.quantity = VS.object(quantityShape);\r\n }\r\n\r\n shape.parameterOffers = VS.arrayOf(VS.object({offerValue: VS.string()}))\r\n\r\n break;\r\n }\r\n case VARIANT_CODE.YESNO:\r\n case VARIANT_CODE.LIST:\r\n case VARIANT_CODE.TEXT:\r\n default:\r\n shape.value = VS.string();\r\n }\r\n\r\n if (criterion.criterium.showComment) {\r\n shape.comment = VS.string()\r\n }\r\n\r\n\r\n return VS.object(shape)\r\n}\r\n\r\n\r\nexport const offerValidation = VS.lazy(form => {\r\n return VS.object({\r\n consorciants: form.consorciumOnPosition ? VS.arrayRequired(\"consorciant_required\") : VS.any(),\r\n conditions: VS.arrayOf(VS.lazy(criterion => criterionValidation(criterion, form.priceType))),\r\n criteriums: VS.arrayOf(VS.lazy(criterion => criterionValidation(criterion, form.priceType))),\r\n parameters: VS.arrayOf(VS.lazy(criterion => criterionValidation(criterion, form.priceType))),\r\n itemOffers: VS.arrayOf(VS.lazy(criterion => criterionValidation(criterion, form.priceType, form.itemOffers)))\r\n })\r\n});\r\n","import React from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport Select, {createSelectItem} from \"components/Select\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: 200\r\n }\r\n}))\r\n\r\n\r\nconst YESNO_ITEMS = [\r\n createSelectItem('yes', Tr('yes')),\r\n createSelectItem('no', Tr('no')),\r\n]\r\n\r\nfunction OfferYesNoInput(\r\n {\r\n id,\r\n formikProps,\r\n disabled\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n return (\r\n \r\n )\r\n\r\n\r\n}\r\n\r\nOfferYesNoInput.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n disabled: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default OfferYesNoInput;","import React from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport TextInput from \"components/TextInput\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: 800\r\n }\r\n}))\r\n\r\n\r\nfunction OfferTextInput(\r\n {\r\n id,\r\n formikProps,\r\n disabled\r\n }) {\r\n\r\n const classes = useStyle();\r\n return (\r\n \r\n )\r\n\r\n\r\n}\r\n\r\nOfferTextInput.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n disabled: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default OfferTextInput;","import React from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport TextInput from \"components/TextInput\";\r\nimport INPUT_TYPE from \"../../../../../../../../../constants/INPUT_TYPE\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: 300\r\n }\r\n}))\r\n\r\n\r\nfunction OfferNumberInput(\r\n {\r\n id,\r\n formikProps,\r\n disabled\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n return (\r\n \r\n )\r\n\r\n\r\n}\r\n\r\nOfferNumberInput.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n disabled: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default OfferNumberInput;","import React, {useMemo} from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport TextInput from \"components/TextInput\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport {SELECT_VALUE} from \"constants/VATItems\";\r\nimport {InputAdornment} from \"@material-ui/core\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport {createSelectItem} from \"components/Select\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport {NetSumPriceVisible, PriceType, PriceTypeGrossFieldVisible, PriceTypeNetFieldVisible, PriceTypeVatFieldVisible} from \"constants/PriceTypes\";\r\nimport VatType from \"constants/VatType\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport useDebouncedEffect from \"hooks/useDebouncedEffect\";\r\nimport ImportExportIcon from '@material-ui/icons/ImportExport';\r\nimport IconButton from \"components/button/IconButton\";\r\nimport clsx from \"clsx\";\r\nimport {simpleConfirm} from \"../../../../../../../../../libs/ConfirmNotification\";\r\nimport toNumberType from \"../../../../../../../../../libs/toNumberType\";\r\nimport HelpComponent from \"../../../../../../../../../components/HelpComponent\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n netValue: {\r\n width: 230,\r\n marginRight: theme.spacing(2)\r\n },\r\n vat: {\r\n width: 200,\r\n },\r\n grossValue: {\r\n width: 200,\r\n marginRight: theme.spacing(2)\r\n },\r\n currency: {\r\n width: 70\r\n },\r\n marginRight: {\r\n marginRight: theme.spacing(2)\r\n },\r\n text: {\r\n width: 250,\r\n marginLeft: theme.spacing(2)\r\n },\r\n gridBlock: {\r\n justifyContent: 'end'\r\n },\r\n marginTop: {\r\n marginTop: theme.spacing(1)\r\n }\r\n}))\r\n\r\n\r\nconst VAT_TYPE_ITEMS = [\r\n createSelectItem(\"\", Tr('select')),\r\n createSelectItem(VatType.NOT_APPLICABLE, Tr('not_applicable')),\r\n createSelectItem(VatType.EXEMPTED, Tr('released')),\r\n createSelectItem(VatType.REVERSED, Tr('reversed')),\r\n createSelectItem(VatType.STANDARD + \"_0\", \"0%\"),\r\n createSelectItem(VatType.STANDARD + \"_3\", \"3%\"),\r\n createSelectItem(VatType.STANDARD + \"_5\", \"5%\"),\r\n createSelectItem(VatType.STANDARD + \"_7\", \"7%\"),\r\n createSelectItem(VatType.STANDARD + \"_8\", \"8%\"),\r\n createSelectItem(VatType.STANDARD + \"_23\", \"23%\"),\r\n createSelectItem(VatType.MIXED, Tr('different_vat_rates')),\r\n createSelectItem(VatType.OTHER, Tr('other_vat_value')),\r\n]\r\n\r\nconst calculateGrossValue = (values) => {\r\n let newGrossValue = null;\r\n if (!!values.netValue && !!values.vatType) {\r\n const netValue = parseFloat(values.netValue);\r\n if (!isNaN(netValue)) {\r\n switch (values.vatType) {\r\n case VatType.STANDARD:\r\n case VatType.OTHER:\r\n if (values.vatValue != null) {\r\n const vatValue = parseFloat(values.vatValue);\r\n let vatMultipler = vatValue / 100\r\n let newGross = netValue + netValue * vatMultipler;\r\n if (!isNaN(newGross))\r\n newGrossValue = newGross;\r\n }\r\n break\r\n case VatType.MIXED:\r\n break;\r\n default:\r\n newGrossValue = values.netValue;\r\n }\r\n }\r\n }\r\n return newGrossValue;\r\n}\r\n\r\nexport const calcNetGros = (values, quantity, priceType) => {\r\n let sumNet = null;\r\n let sumGross = null;\r\n switch (priceType) {\r\n case PriceType.NET:\r\n if (values.netValue)\r\n sumNet = parseFloat(values.netValue) * quantity.value;\r\n break;\r\n case PriceType.NET_VAT:\r\n if (values.netValue) {\r\n sumNet = parseFloat(values.netValue) * quantity.value;\r\n if (values.vatType) {\r\n const gross = calculateGrossValue(values);\r\n if (gross != null) {\r\n sumGross = gross * quantity.value;\r\n }\r\n }\r\n }\r\n break;\r\n case PriceType.NET_GROSS:\r\n if (values.vatType === VatType.MIXED) {\r\n if (values.grossValue != null) {\r\n sumGross = parseFloat(values.grossValue) * quantity.value;\r\n }\r\n if (values.netValue != null) {\r\n sumNet = parseFloat(values.netValue) * quantity.value;\r\n }\r\n } else {\r\n if (values.netValue != null) {\r\n sumNet = parseFloat(values.netValue) * quantity.value;\r\n if (values.vatType) {\r\n const gross = calculateGrossValue(values);\r\n if (gross != null) {\r\n sumGross = gross * quantity.value;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n case PriceType.GROSS_VAT:\r\n case PriceType.GROSS:\r\n if (values.grossValue != null) {\r\n sumGross = parseFloat(values.grossValue) * quantity.value;\r\n }\r\n break;\r\n default:\r\n }\r\n let roundedGross = null;\r\n if (sumGross !== null) {\r\n roundedGross = (Math.round(sumGross * 100) / 100);\r\n }\r\n let roundedNet = null;\r\n if (sumNet !== null) {\r\n roundedNet = (Math.round(sumNet * 100) / 100);\r\n }\r\n return [roundedNet, roundedGross];\r\n}\r\n\r\n\r\nfunction OfferPriceInput(\r\n {\r\n id,\r\n formikProps,\r\n criterium,\r\n priceType,\r\n quantity,\r\n disabled\r\n }) {\r\n const classes = useStyle();\r\n const parsedQuantity = !!quantity ? { value: Number(toNumberType(quantity.value)), uom: quantity.uom } : null;\r\n\r\n const show = useMemo(() => ({\r\n netField: PriceTypeNetFieldVisible(priceType),\r\n grossField: PriceTypeGrossFieldVisible(priceType),\r\n vatField: PriceTypeVatFieldVisible(priceType),\r\n quantity: !!quantity,\r\n copyVat: PriceTypeVatFieldVisible(priceType) && id.startsWith(\"itemOffers\") && formikProps.values.itemOffers.length > 1\r\n // eslint-disable-next-line\r\n }), [priceType, quantity, id])\r\n\r\n const keys = useMemo(() => ({\r\n netValue: id + \".value\",\r\n grossValue: id + \".grossValue\",\r\n vatType: id + \".vatType\",\r\n vatValue: id + \".vatValue\",\r\n totalGross: id + \".totalGross\",\r\n totalNet: id + \".totalNet\",\r\n parameterOffers: id + \".parameterOffers\",\r\n quantityDisabled: id + \".quantityDisabled\"\r\n }), [id]);\r\n\r\n const values = {\r\n netValue: show.netField ? getObjectValue(keys.netValue, formikProps.values, null) : null,\r\n grossValue: show.grossField ? getObjectValue(keys.grossValue, formikProps.values, null) : null,\r\n vatType: show.vatField ? getObjectValue(keys.vatType, formikProps.values, null) : null,\r\n vatValue: show.vatField ? getObjectValue(keys.vatValue, formikProps.values, null) : null,\r\n parameterOffers: getObjectValue(keys.parameterOffers, formikProps.values, null),\r\n quantityDisabled: getObjectValue(keys.quantityDisabled, formikProps.values, false)\r\n }\r\n\r\n\r\n useDebouncedEffect(() => {\r\n const offer = getObjectValue(id, formikProps.values);\r\n let grossValue = offer.grossValue;\r\n let totalGross = offer.totalGross;\r\n let totalNet = offer.totalNet;\r\n if (priceType === PriceType.NET_GROSS) {\r\n grossValue = calculateGrossValue(values);\r\n if (grossValue)\r\n grossValue = Math.round(grossValue * 100) / 100;\r\n }\r\n if (show.quantity) {\r\n const [roundedNet, roundedGross] = calcNetGros(values, parsedQuantity, priceType);\r\n totalGross = roundedGross;\r\n totalNet = roundedNet;\r\n }\r\n formikProps.setFieldValue(id, {\r\n ...offer,\r\n grossValue,\r\n totalGross,\r\n totalNet\r\n }, false);\r\n\r\n if (!!criterium.optionalItemId) {\r\n const formikValues = formikProps.values;\r\n const optionalItemIndex = formikValues.itemOffers.map(x => x.criterium.identity).indexOf(criterium.optionalItemId);\r\n const optionalItemId = `itemOffers.${optionalItemIndex}`;\r\n\r\n const optionalItem = getObjectValue(optionalItemId, formikProps.values, null);\r\n if (optionalItem) {\r\n formikProps.setFieldValue(optionalItemId, {\r\n ...optionalItem,\r\n value: values.netValue,\r\n vatType: values.vatType,\r\n vatValue: values.vatValue,\r\n grossValue: values.grossValue\r\n });\r\n }\r\n }\r\n\r\n }, {timeout: 500, ignoreInitialCall: true}, [values.netValue, values.vatValue, values.vatType, quantity])\r\n\r\n useDebouncedEffect(() => {\r\n const offer = getObjectValue(id, formikProps.values);\r\n if ((priceType === PriceType.GROSS || priceType === PriceType.GROSS_VAT || (priceType === PriceType.NET_GROSS && offer.vatType === VatType.MIXED)) && show.quantity) {\r\n const netAndGross = calcNetGros(values, parsedQuantity, priceType);\r\n const totalGross = netAndGross[1];\r\n formikProps.setFieldValue(id, {\r\n ...offer,\r\n totalGross\r\n }, false);\r\n\r\n if (!!criterium.optionalItemId && offer.grossValue) {\r\n const formikValues = formikProps.values;\r\n const optionalItemIndex = formikValues.itemOffers.map(x => x.criterium.identity).indexOf(criterium.optionalItemId);\r\n const optionalItemId = `itemOffers.${optionalItemIndex}`;\r\n\r\n const optionalItem = getObjectValue(optionalItemId, formikProps.values, null);\r\n if (optionalItem) {\r\n formikProps.setFieldValue(optionalItemId, {\r\n ...optionalItem,\r\n grossValue: values.grossValue\r\n });\r\n }\r\n }\r\n }\r\n }, {timeout: show.quantity ? 500 : 10000000, ignoreInitialCall: true}, [values.grossValue])\r\n\r\n useDebouncedEffect(() => {\r\n if (!!criterium.optionalItemId) {\r\n const formikValues = formikProps.values;\r\n const optionalItemIndex = formikValues.itemOffers.map(x => x.criterium.identity).indexOf(criterium.optionalItemId);\r\n const optionalItemId = `itemOffers.${optionalItemIndex}`;\r\n\r\n const optionalItem = getObjectValue(optionalItemId, formikProps.values, null);\r\n if (optionalItem) {\r\n const parameterOffers = optionalItem.parameterOffers;\r\n formikProps.setFieldValue(`${optionalItemId}.parameterOffers`, parameterOffers.map(x => {\r\n const baseParameterOffer = values.parameterOffers.filter(o => o.parameterId === x.parameterId)[0];\r\n return {\r\n ...x,\r\n offerValue: baseParameterOffer.offerValue\r\n }\r\n }));\r\n }\r\n }\r\n\r\n }, {timeout: show.quantity ? 500 : 10000000, ignoreInitialCall: true}, [values.parameterOffers])\r\n\r\n const vatError = getObjectValue(keys.vatType, formikProps.touched, false) ? getObjectValue(keys.vatType, formikProps.errors, null) : null;\r\n\r\n const closeTextInput = () => {\r\n formikProps.setFieldValue(keys.vatValue, null);\r\n formikProps.setFieldValue(keys.vatType, null);\r\n }\r\n\r\n const handleVatTypeChange = (e) => {\r\n const selValue = e.target.value;\r\n if (selValue === \"\") {\r\n formikProps.setFieldValue(keys.vatType, null);\r\n formikProps.setFieldValue(keys.vatValue, null);\r\n } else if (selValue.startsWith(VatType.STANDARD)) {\r\n formikProps.setFieldValue(keys.vatType, VatType.STANDARD);\r\n formikProps.setFieldValue(keys.vatValue, selValue.substring(VatType.STANDARD.length + 1));\r\n } else {\r\n formikProps.setFieldValue(keys.vatType, selValue);\r\n formikProps.setFieldValue(keys.vatValue, null);\r\n }\r\n }\r\n\r\n const getSelectValue = () => {\r\n let val = \"\";\r\n if (values.vatType === VatType.STANDARD || values.vatType === VatType.OTHER) {\r\n if (values.vatValue !== null) {\r\n val = values.vatType + \"_\" + values.vatValue\r\n }\r\n } else {\r\n val = values.vatType;\r\n }\r\n return val;\r\n }\r\n\r\n const copyVats = () => {\r\n const values = formikProps.values;\r\n const vatValue = getObjectValue(keys.vatValue, values, null);\r\n const vatType = getObjectValue(keys.vatType, values, null);\r\n formikProps.setValues({\r\n ...values,\r\n itemOffers: values.itemOffers.map(x => {\r\n if (x.criterium.offerVatPredefined)\r\n return x;\r\n else\r\n return {...x, vatValue, vatType};\r\n })\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {\r\n show.netField && \r\n }\r\n\r\n {show.vatField && <>\r\n {\r\n values.vatType === SELECT_VALUE.OTHER ?\r\n \r\n %\r\n {!criterium.offerVatPredefined && }\r\n \r\n }\r\n disabled={disabled || criterium.offerVatPredefined}\r\n />\r\n :\r\n \r\n }\r\n >}\r\n\r\n {show.copyVat &&\r\n simpleConfirm(\"vat_copy_to_items_confirm\", copyVats)}\r\n disabled={criterium.offerVatPredefined}\r\n />\r\n }\r\n\r\n {\r\n show.grossField && \r\n }\r\n\r\n {\r\n show.quantity &&\r\n \r\n }\r\n\r\n \r\n \r\n {getObjectValue(`${keys.parameterOffers}`, formikProps.values, []).length > 0 &&\r\n \r\n {getObjectValue(`${keys.parameterOffers}`, formikProps.values, []).map((po, index) => {\r\n return (\r\n \r\n \r\n )\r\n }\r\n )}\r\n \r\n }\r\n >\r\n )\r\n\r\n\r\n}\r\n\r\nOfferPriceInput.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n disabled: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default OfferPriceInput;","import React from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport Select from \"components/Select\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: 300\r\n }\r\n}))\r\n\r\nfunction OfferListInput(\r\n {\r\n id,\r\n formikProps,\r\n listValues,\r\n disabled\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n return (\r\n \r\n )\r\n\r\n\r\n}\r\n\r\nOfferListInput.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n listValues: PropTypes.arrayOf(PropTypes.string.isRequired).isRequired,\r\n disabled: PropTypes.bool.isRequired\r\n\r\n}\r\n\r\nexport default OfferListInput;","import React, {useEffect, useState} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport TextInput from 'components/TextInput';\r\nimport Select from 'components/Select';\r\nimport GridBlock from 'components/GridBlock';\r\nimport MeasureUnitService from 'services/MeasureUnitService';\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE';\r\nimport Loading from \"components/Loading\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*': {\r\n marginLeft: theme.spacing(2)\r\n }\r\n },\r\n})\r\n\r\nfunction OfferUnits({\r\n classes,\r\n formikProps,\r\n id,\r\n disabled\r\n}) {\r\n const quantityId = `${id}.quantity.value`;\r\n const unitId = `${id}.quantity.uom`;\r\n const [measureUnits, setMeasureUnits] = useState(null);\r\n\r\n useEffect(() => {\r\n MeasureUnitService.getRequired().then((resp) => setMeasureUnits(resp));\r\n }, []);\r\n\r\n if (!measureUnits) {\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}\r\n\r\nOfferUnits.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(OfferUnits);","import React, {useMemo} from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport VatType from \"constants/VatType\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Typography from \"components/Typography\";\r\nimport {VARIANT_CODE} from \"components/popup/newCriteria/constants/criteria.variants\";\r\nimport OfferYesNoInput from \"./OfferYesNoInput\";\r\nimport OfferTextInput from \"./OfferTextInput\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport OfferNumberInput from \"./OfferNumberInput\";\r\nimport OfferPriceInput from \"./OfferPriceInput\";\r\nimport {PriceType} from \"constants/PriceTypes\";\r\nimport OfferListInput from \"./OfferListInput\";\r\nimport TextInput from \"components/TextInput\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport OfferUnits from \"./OfferUnits\"\r\nimport clsx from \"clsx\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n border: `solid 2px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper,\r\n padding: theme.spacing(2),\r\n marginTop: theme.spacing()\r\n },\r\n marginTop1: {\r\n marginTop: theme.spacing(1)\r\n },\r\n marginTop2: {\r\n marginTop: theme.spacing(2)\r\n },\r\n text: {\r\n width: 800\r\n }\r\n}))\r\n\r\nconst offerInput = (uiType) => {\r\n switch (uiType) {\r\n case VARIANT_CODE.YESNO:\r\n return OfferYesNoInput;\r\n case VARIANT_CODE.NUMBER:\r\n case VARIANT_CODE.INTERVAL:\r\n return OfferNumberInput;\r\n case VARIANT_CODE.PRICE:\r\n return OfferPriceInput;\r\n case VARIANT_CODE.LIST:\r\n return OfferListInput;\r\n default:\r\n return OfferTextInput;\r\n }\r\n}\r\n\r\n\r\nfunction OfferInput(\r\n {\r\n id,\r\n criterion,\r\n priceType,\r\n formikProps,\r\n disabled,\r\n }) {\r\n\r\n const classes = useStyle();\r\n const customQuantity = getObjectValue(id + \".quantity\", formikProps.values, null) !== null;\r\n\r\n const Input = offerInput(criterion.criterium.uiType);\r\n const inpDisabled = useMemo(() => disabled || getObjectValue(id + \".disabled\", formikProps.initialValues, false), [id, formikProps.initialValues, disabled])\r\n const quantityDisabled = useMemo(() => getObjectValue(id + \".quantityDisabled\", formikProps.initialValues, false), [id, formikProps.initialValues])\r\n const canEditQuantity = useMemo(() => getObjectValue(id + \".criterium.allowQuantityEditInOffer\", formikProps.initialValues, false), [id, formikProps.initialValues])\r\n\r\n const turnOnEditQuantity = () => {\r\n formikProps.setFieldValue(id + '.quantity', {\r\n value: getObjectValue(id + '.criterium.quantity.value', formikProps.values, null),\r\n uom: getObjectValue(id + \".criterium.quantity.uom\", formikProps.values, null)\r\n });\r\n }\r\n\r\n const turnOffEditQuantity = () => {\r\n formikProps.setFieldValue(id + '.quantity', null);\r\n }\r\n\r\n return (\r\n {criterion.criterium.name}\r\n {!!criterion.criterium.description && {criterion.criterium.description}}\r\n\r\n\r\n {!!criterion.criterium.quantity && !customQuantity &&\r\n \r\n {`${Tr('quantity')}: ${criterion.criterium.quantity.value} ${criterion.criterium.uom}`}\r\n {!disabled && canEditQuantity && turnOnEditQuantity()}/>}\r\n }\r\n\r\n {!!criterion.criterium.quantity && customQuantity &&\r\n \r\n \r\n {`${Tr('quantity')}: `}\r\n \r\n \r\n {!inpDisabled && !quantityDisabled && turnOffEditQuantity()}/>}\r\n \r\n }\r\n\r\n\r\n {criterion.criterium.weight !== null && {`${Tr('weight')}: ${criterion.criterium.weight}`}}\r\n {!!criterion.criterium.uom && !criterion.criterium.quantity && {`${Tr('measure_unit')}: ${criterion.criterium.uom}`}}\r\n {!!criterion.criterium.baseItemId && {Tr('position_type.optional.offer')}}\r\n {!!criterion.criterium.offerValuesPredefined && {Tr('offerSourceType.initiator.offer')}}\r\n {!criterion.criterium.offerValuesPredefined && !!criterion.criterium.offerVatPredefined && {Tr('offerVatPredefined.offer')}}\r\n \r\n \r\n \r\n {\r\n criterion.criterium.showComment &&\r\n \r\n \r\n \r\n }\r\n
)\r\n\r\n\r\n}\r\n\r\nOfferInput.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n priceType: PropTypes.oneOf(Object.values(PriceType)).isRequired,\r\n criterion: PropTypes.shape({\r\n criterium: PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n description: PropTypes.string,\r\n uiType: PropTypes.string.isRequired,\r\n uom: PropTypes.string,\r\n listValues: PropTypes.arrayOf(PropTypes.string.isRequired),\r\n weight: PropTypes.number,\r\n showComment: PropTypes.bool.isRequired,\r\n quantity: PropTypes.shape({\r\n value: PropTypes.number.isRequired,\r\n uom: PropTypes.string.isRequired\r\n })\r\n }),\r\n value: PropTypes.any,\r\n vatType: PropTypes.oneOf(Object.values(VatType)),\r\n vatValue: PropTypes.any,\r\n grossValue: PropTypes.any,\r\n comment: PropTypes.string,\r\n quantity: PropTypes.shape({\r\n value: PropTypes.any,\r\n uom: PropTypes.string\r\n })\r\n })\r\n\r\n}\r\n\r\nexport default OfferInput;","import React from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport GeneralInfoEntry from \"../../panels/generalInfo/components/GeneralInfoEntry\";\r\nimport Typography from \"components/Typography\";\r\nimport OfferInput from \"./inputs/OfferInput\";\r\n\r\n\r\nfunction OfferPositionConditions(\r\n {\r\n formikProps,\r\n conditions,\r\n priceType,\r\n disabled\r\n }) {\r\n\r\n return (\r\n \r\n {\r\n conditions.length === 0 ?\r\n {Tr('conditions_specifed_in_SIWZ_offer_form')}\r\n :\r\n conditions.map((condition, index) => (\r\n \r\n ))}\r\n )\r\n\r\n}\r\n\r\nOfferPositionConditions.propTypes = {\r\n conditions: PropTypes.array.isRequired\r\n}\r\n\r\nexport default OfferPositionConditions;","import React from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport GeneralInfoEntry from \"../../panels/generalInfo/components/GeneralInfoEntry\";\r\nimport OfferInput from \"./inputs/OfferInput\";\r\n\r\n\r\nfunction OfferPositionCriteriums(\r\n {\r\n formikProps,\r\n criteriums,\r\n priceType,\r\n disabled\r\n }) {\r\n\r\n if (criteriums.length === 0)\r\n return null;\r\n\r\n return (\r\n \r\n {\r\n criteriums.map((criterion, index) => (\r\n \r\n ))}\r\n )\r\n\r\n}\r\n\r\nOfferPositionCriteriums.propTypes = {\r\n criteriums: PropTypes.array.isRequired\r\n}\r\n\r\nexport default OfferPositionCriteriums;","import React, {useEffect, useRef} from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport GeneralInfoEntry from \"../../panels/generalInfo/components/GeneralInfoEntry\";\r\nimport OfferInput from \"./inputs/OfferInput\";\r\nimport {TotalPriceTypeGrossFieldVisible, TotalPriceTypeNetFieldVisible} from \"constants/PriceTypes\";\r\nimport Typography from \"components/Typography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport TextInput from \"components/TextInput\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport {OfferMode} from \"../constants/OfferMode\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n sum: {\r\n marginTop: theme.spacing(2),\r\n },\r\n sumElem: {\r\n margin: theme.spacing(1, 2, 1, 0)\r\n }\r\n}))\r\n\r\n\r\nfunction OfferPositionItems(\r\n {\r\n formikProps,\r\n itemOffers,\r\n priceType,\r\n disabled,\r\n mode\r\n }) {\r\n\r\n const classes = useStyle();\r\n //const [sum, setSum] = useState({net: 0, gross: 0});\r\n const semaphore = useRef(false);\r\n const showOptionSumValues = itemOffers.filter(i => !!i.criterium.baseItemId).length > 0;\r\n\r\n useEffect(() => {\r\n if (semaphore.current) {\r\n const totalValues = {\r\n positionOfferValue: null,\r\n positionOfferGrossValue: null,\r\n positionOptionOfferValue: null,\r\n positionOptionOfferGrossValue: null,\r\n positionTotalOfferValue: null,\r\n positionTotalOfferGrossValue: null\r\n };\r\n const newSum = formikProps.values.itemOffers.filter(i => !i.criterium.baseItemId).reduce((prev, crit) => {\r\n if (crit.totalNet !== null)\r\n prev.net += parseFloat(crit.totalNet);\r\n if (crit.totalGross !== null)\r\n prev.gross += parseFloat(crit.totalGross);\r\n return prev;\r\n }, {net: 0, gross: 0});\r\n totalValues.positionOfferValue = newSum.net;\r\n totalValues.positionOfferGrossValue = newSum.gross;\r\n\r\n if (showOptionSumValues) {\r\n const newOptionSum = formikProps.values.itemOffers.filter(i => !!i.criterium.baseItemId).reduce((prev, crit) => {\r\n if (crit.totalNet !== null)\r\n prev.net += parseFloat(crit.totalNet);\r\n if (crit.totalGross !== null)\r\n prev.gross += parseFloat(crit.totalGross);\r\n return prev;\r\n }, {net: 0, gross: 0});\r\n totalValues.positionOptionOfferValue = newOptionSum.net;\r\n totalValues.positionOptionOfferGrossValue = newOptionSum.gross;\r\n\r\n totalValues.positionTotalOfferValue = newSum.net + newOptionSum.net;\r\n totalValues.positionTotalOfferGrossValue = newSum.gross + newOptionSum.gross;\r\n }\r\n\r\n formikProps.setFieldValue(\"totalValues\", totalValues);\r\n } else {\r\n semaphore.current = true;\r\n }\r\n // eslint-disable-next-line\r\n }, [formikProps.values.itemOffers, showOptionSumValues])\r\n\r\n if (itemOffers.length === 0)\r\n return null;\r\n\r\n return (\r\n \r\n {\r\n itemOffers.map((item, index) => (\r\n \r\n ))\r\n }\r\n {\r\n \r\n {Tr(\"sum\")}: \r\n \r\n {\r\n TotalPriceTypeNetFieldVisible(priceType) && <>\r\n {\r\n mode === OfferMode.EDIT || !formikProps.values.placingType ?\r\n {`${Tr('offer_value_net')}: ${formikProps.values.totalValues.positionOfferValue != null ? parseFloat(formikProps.values.totalValues.positionOfferValue).toFixed(2).replace(\".\", \",\") : \"_\"} PLN`}\r\n : \r\n {`${Tr('offer_value_net')}: `}\r\n PLN}\r\n disabled={disabled}\r\n type={INPUT_TYPE.NUMBER_19}\r\n />\r\n \r\n }\r\n >\r\n }\r\n {\r\n TotalPriceTypeGrossFieldVisible(priceType) && <>\r\n {\r\n mode === OfferMode.EDIT || !formikProps.values.placingType ?\r\n {`${Tr('offer_value_gross')}: ${formikProps.values.totalValues.positionOfferGrossValue != null ? parseFloat(formikProps.values.totalValues.positionOfferGrossValue).toFixed(2).replace(\".\", \",\") : \"_\"} PLN`}\r\n : \r\n {`${Tr('offer_value_gross')}: `}\r\n PLN}\r\n formikProps={formikProps}\r\n type={INPUT_TYPE.NUMBER_19}\r\n />\r\n \r\n }\r\n >\r\n }\r\n {showOptionSumValues && TotalPriceTypeNetFieldVisible(priceType) &&\r\n <>\r\n {\r\n mode === OfferMode.EDIT || !formikProps.values.placingType ?\r\n {`${Tr('offer_option_value_net')}: ${formikProps.values.totalValues.positionOptionOfferValue != null ? parseFloat(formikProps.values.totalValues.positionOptionOfferValue).toFixed(2).replace(\".\", \",\") : \"_\"} PLN`}\r\n : \r\n {`${Tr('offer_option_value_net')}: `}\r\n PLN}\r\n disabled={disabled}\r\n type={INPUT_TYPE.NUMBER_19}\r\n />\r\n \r\n }\r\n >\r\n }\r\n {showOptionSumValues && TotalPriceTypeGrossFieldVisible(priceType) &&\r\n <>\r\n {\r\n mode === OfferMode.EDIT || !formikProps.values.placingType ?\r\n {`${Tr('offer_option_value_gross')}: ${formikProps.values.totalValues.positionOptionOfferGrossValue != null ? parseFloat(formikProps.values.totalValues.positionOptionOfferGrossValue).toFixed(2).replace(\".\", \",\") : \"_\"} PLN`}\r\n : \r\n {`${Tr('offer_option_value_gross')}: `}\r\n PLN}\r\n disabled={disabled}\r\n type={INPUT_TYPE.NUMBER_19}\r\n />\r\n \r\n }\r\n >\r\n }\r\n {showOptionSumValues && TotalPriceTypeNetFieldVisible(priceType) &&\r\n <>\r\n {`${Tr('offer_total_value_net')}: ${formikProps.values.totalValues.positionTotalOfferValue != null ? parseFloat(formikProps.values.totalValues.positionTotalOfferValue).toFixed(2).replace(\".\", \",\") : \"_\"} PLN`}\r\n >\r\n }\r\n {showOptionSumValues && TotalPriceTypeGrossFieldVisible(priceType) &&\r\n <>\r\n {`${Tr('offer_total_value_gross')}: ${formikProps.values.totalValues.positionTotalOfferGrossValue != null ? parseFloat(formikProps.values.totalValues.positionTotalOfferGrossValue).toFixed(2).replace(\".\", \",\") : \"_\"} PLN`}\r\n >\r\n }\r\n
\r\n \r\n }\r\n\r\n )\r\n\r\n}\r\n\r\nOfferPositionItems.propTypes = {\r\n itemOffers: PropTypes.array.isRequired\r\n}\r\n\r\nexport default OfferPositionItems;","import React from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport GeneralInfoEntry from \"../../panels/generalInfo/components/GeneralInfoEntry\";\r\nimport OfferInput from \"./inputs/OfferInput\";\r\n\r\n\r\nfunction OfferPositionParameters(\r\n {\r\n formikProps,\r\n parameters,\r\n priceType,\r\n disabled\r\n }) {\r\n\r\n if (parameters.length === 0)\r\n return null;\r\n\r\n return (\r\n \r\n {\r\n parameters.map((parameter, index) => (\r\n \r\n ))}\r\n )\r\n\r\n}\r\n\r\nOfferPositionParameters.propTypes = {\r\n parameters: PropTypes.array.isRequired\r\n}\r\n\r\nexport default OfferPositionParameters;","import Tr from 'translations/Translations';\r\n\r\nexport const ContractorConsorciumTypesOnePosition = {\r\n NONE: \"NONE\",\r\n ALL:\"ALL\"\r\n}\r\nexport const ContractorConsorciumTypes = {\r\n NONE: \"NONE\",\r\n ALL:\"ALL\",\r\n POSITION:\"POSITION\"\r\n}\r\n\r\nconst _TR_PREFIX = 'contractor_consorcium_type_';\r\nexport const ContractorConsorciumTypesLabel = (type) => (Tr(_TR_PREFIX + type.toLowerCase()));\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const ContractorCompanySize = {\r\n MICRO: \"MICRO\",\r\n SMALL: \"SMALL\",\r\n MEDIUM: \"MEDIUM\",\r\n SELFTRADER: \"SELFTRADER\",\r\n NONBUSINESSINDIVIDUAL: \"NONBUSINESSINDIVIDUAL\",\r\n OTHERSIZE: \"OTHERSIZE\",\r\n LARGE: \"LARGE\",\r\n IGNORE: \"IGNORE\",\r\n}\r\n\r\nconst _TR_PREFIX = 'contractor_company_size_';\r\nexport const ContractorCompanySizeLabel = (size) => (Tr(_TR_PREFIX + size.toLowerCase()));\r\n","import Endpoints from 'constants/Endpoints';\r\nimport { RestRequestPOST, RestRequestGET } from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport { DemandValidation } from 'constants/DemandValidation';\r\nimport { setSaveStatusLoading, setSaveStatusDialog } from 'redux/actions'\r\nimport validateSection from './helpers/validateSection';\r\n\r\nconst CONTRACTOR_LIST_ID = 'contractorList';\r\nconst CONTRACTOR_ONE_PLACE_ID = 'onePlaceContractor';\r\nconst NIP_LIST_RESOURCE_ID = 'nipList';\r\n\r\nconst __get = async (url, reduxId) => {\r\n\ttry {\r\n\t\tconst res = await RestRequestGET(url)\r\n\t\treduxStore.dispatch(setResource(reduxId, res))\r\n\t} catch (error) { }\r\n}\r\n\r\nconst getList = async (id) => {\r\n\tconst url = Endpoints.CONTRACTOR_GET_LIST(id);\r\n\tawait __get(url, CONTRACTOR_LIST_ID)\r\n}\r\n\r\nconst getContractorDetails = async (id, contractorDepartmentId) => {\r\n\treturn await RestRequestGET(Endpoints.CONTRACTOR_GET_DETAILS(id, contractorDepartmentId))\r\n}\r\n\r\nconst getOnePlace = async (id) => {\r\n\tconst url = Endpoints.CONTRACTOR_ONEPLACE(id);\r\n\tawait __get(url, CONTRACTOR_ONE_PLACE_ID)\r\n}\r\n\r\nconst __appendContractors = (list) => {\r\n\tconst { resources } = reduxStore.getState();\r\n\tconst { items } = resources[CONTRACTOR_LIST_ID];\r\n\r\n\treduxStore.dispatch(setResource(CONTRACTOR_LIST_ID, {\r\n\t\titems: [\r\n\t\t\t...items,\r\n\t\t\t...list,\r\n\t\t]\r\n\t}))\r\n}\r\n\r\nconst __removeContractor = (element) => {\r\n\tconst { resources } = reduxStore.getState();\r\n\tconst { items } = resources[CONTRACTOR_LIST_ID];\r\n\treduxStore.dispatch(setResource(CONTRACTOR_LIST_ID, {\r\n\t\titems: items.filter(x => x.contractor.identity !== element.contractor.identity)\r\n\t}))\r\n}\r\n\r\nconst sendTabContractor = async (id, data) => {\r\n\tconst url = Endpoints.CONTRACTOR_ADD(id);\r\n\ttry {\r\n\t\tconst res = await RestRequestPOST(url, data);\r\n\t\t__appendContractors(res.contractors);\r\n\t\tawait validateSection(DemandValidation.CONTRACTOR, id, false)\r\n\t} catch (error) { }\r\n}\r\n\r\nconst invite = async (id, values) => {\r\n\ttry {\r\n\t\tconst res = await RestRequestPOST(Endpoints.CONTRACTOR_INVITE(id), values)\r\n\t\t__appendContractors(res.contractors);\r\n\t\tawait validateSection(DemandValidation.CONTRACTOR, id, false);\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nconst deleteUser = async (id, data) => {\r\n\tconst url = Endpoints.CONTRACTOR_REMOVE(id);\r\n\ttry {\r\n\t\tconst res = await RestRequestPOST(url, data);\r\n\t\tif (res.success) {\r\n\t\t\t__removeContractor(data)\r\n\t\t\tawait validateSection(DemandValidation.CONTRACTOR, id,false);\r\n\t\t} else {\r\n\t\t\tawait getList(id)\r\n\t\t}\r\n\t} catch (error) { }\r\n}\r\n\r\nconst save = async (demandId) => {\r\n\treduxStore.dispatch(setSaveStatusLoading());\r\n\r\n\ttry {\r\n\t\treduxStore.dispatch(setSaveStatusDialog());\r\n\t\tawait validateSection(DemandValidation.CONTRACTOR, demandId);\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nconst validate = async (id) => {\r\n\treturn RestRequestGET(Endpoints.CONTRACTOR_VALIDATE(id));\r\n}\r\n\r\nconst getNipList = async (demandId) => {\r\n\ttry {\r\n\t\tconst res = await RestRequestGET(\r\n\t\t\tEndpoints.CONTRACTOR_GET_NIP_LIST(demandId)\r\n\t\t)\r\n\t\treduxStore.dispatch(setResource(NIP_LIST_RESOURCE_ID, res))\r\n\t} catch (error) {\r\n\t}\r\n}\r\nconst check = async (demandId, prefix, number) => {\r\n\tconst params = {\r\n\t\tprefix, number\r\n\t}\r\n\treturn await RestRequestGET(Endpoints.CONTRACTOR_CHECK(demandId), {params});\r\n}\r\n\r\nconst clearResources = (resource) => {\r\n\treduxStore.dispatch(clearResource(resource));\r\n}\r\n\r\nexport default {\r\n\tgetList,\r\n\tgetOnePlace,\r\n\tsendTabContractor,\r\n\tinvite,\r\n\tgetNipList,\r\n\tdeleteUser,\r\n\tsave,\r\n\tvalidate,\r\n\tclearResources,\r\n\tgetContractorDetails,\r\n\tCONTRACTOR_ONE_PLACE_ID,\r\n\tNIP_LIST_RESOURCE_ID,\r\n\tCONTRACTOR_LIST_ID,\r\n\tcheck\r\n}","import React, {memo, useMemo} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Select from 'components/Select';\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport {connect} from 'react-redux'\r\nimport ContractorService from \"services/ContractorService\";\r\n\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*:last-child': {\r\n flexGrow: 1,\r\n marginLeft: theme.spacing(2),\r\n }\r\n },\r\n})\r\n\r\nfunction NipRow(\r\n {\r\n classes,\r\n formikProps,\r\n limit,\r\n defaultValue,\r\n nipList,\r\n prefix,\r\n required = true,\r\n onBlur\r\n }) {\r\n\r\n const listSorted = useMemo(()=> {\r\n const list = [...nipList]\r\n list.sort((a, b) => {\r\n\r\n if (a === \"PL\" || a < b) {\r\n return -1;\r\n }\r\n if ( a > b) {\r\n return 1;\r\n }\r\n return 0;\r\n })\r\n return list;\r\n }, [nipList])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nNipRow.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n nipList: state.resources[ContractorService.NIP_LIST_RESOURCE_ID]\r\n}), {})(withStyles(style)(memo(NipRow)))","\r\nimport React, { memo } from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport InputMask from 'react-input-mask';\r\nimport getObjectValue from 'libs/getObjectValue'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t}\r\n})\r\n\r\nfunction MaskedTextInput({\r\n\tchildren,\r\n\tformikProps,\r\n\tid,\r\n\tmask,\r\n}) {\r\n\tconst value = getObjectValue(id, formikProps.values, '')\r\n\treturn (\r\n\t\t\r\n\t\t\t{() => children}\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default withStyles(style)(memo(MaskedTextInput, (prevProps, nextProps) => {\r\n\tconst prevFormikProps = prevProps.formikProps;\r\n\tconst nextFormikProps = nextProps.formikProps;\r\n\tif (JSON.stringify(getObjectValue(prevProps.id, prevFormikProps.values)) !==\r\n\t\tJSON.stringify(getObjectValue(nextProps.id, nextFormikProps.values))\r\n\t) return false;\r\n\tif (JSON.stringify(getObjectValue(prevProps.id, prevFormikProps.errors)) !==\r\n\t\tJSON.stringify(getObjectValue(nextProps.id, nextFormikProps.errors))\r\n\t) return false;\r\n\tif (JSON.stringify(getObjectValue(prevProps.id, prevFormikProps.touched)) !==\r\n\t\tJSON.stringify(getObjectValue(nextProps.id, nextFormikProps.touched))\r\n\t) return false;\r\n\treturn true\r\n}))","import React, { useEffect } from 'react'\r\nimport MaskedTextInput from 'components/MaskedTextInput';\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\n\r\n\r\nfunction PostCodeRow({\r\n\tdefaultValue,\r\n\tformikProps,\r\n\tlimits,\r\n\trequired,\r\n\tprefix\r\n}) {\r\n\tconst postCodeId = `postCode`\r\n\tconst postCodeValue = formikProps.values.postCode;\r\n\r\n\tuseEffect(() => {\r\n\t\tif (prefix === defaultValue) {\r\n\t\t\tif (postCodeValue.includes('-')) {\r\n\t\t\t\tconst newValue = postCodeValue.slice(0,6)\r\n\t\t\t\tformikProps.setFieldValue(postCodeId, newValue)\r\n\t\t\t} else {\r\n\t\t\t\tconst FirstPart = postCodeValue.substr(0, 2)\r\n\t\t\t\tconst SecondPart = postCodeValue.substr(2, 3)\r\n\r\n\t\t\t\tif (postCodeValue.length > 0) {\r\n\t\t\t\t\tformikProps.setFieldValue(postCodeId, `${FirstPart}-${SecondPart}`)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t//eslint-disable-next-line\r\n\t}, [prefix])\r\n\r\n\treturn prefix === defaultValue ?\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t:\r\n\t\t\r\n}\r\n\r\nexport default PostCodeRow","import React, {memo, useState} from 'react'\r\nimport {withStyles, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport NipRow from './components/NipRow';\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport * as Yup from 'yup'\r\nimport validation from 'constants/ValidationShema'\r\nimport InputLimits from 'constants/InputLimits';\r\nimport PostCodeRow from './components/PostCodeRow';\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport ContractorService from \"services/ContractorService\";\r\nimport Select, {createSelectItem} from \"../../Select\";\r\nimport {ContractorCompanySize, ContractorCompanySizeLabel} from \"../../../constants/ContractorCompanySize\";\r\n\r\nconst limits = InputLimits.procedure.contractor\r\n\r\nconst style = theme => ({\r\n nameExist: {\r\n fontSize: '0.75rem'\r\n }\r\n})\r\n\r\nconst PL_PREFIX = \"PL\"\r\n\r\nconst translationsMap = {\r\n \"vatin\": \"pesel_exist\",\r\n \"email\": \"email_exist\",\r\n \"postCode\": \"post_code_exist\"\r\n}\r\n\r\nfunction InviteContactorForm(\r\n {\r\n classes,\r\n onSubmit,\r\n id,\r\n contractorList,\r\n defaultValues = {},\r\n collectPostCode,\r\n collectAddress,\r\n addressRequired = true,\r\n collectCity,\r\n cityRequired = true,\r\n collectRegon,\r\n collectCompanySize,\r\n collectIdentity,\r\n checkForExistingVatins,\r\n demandId\r\n }) {\r\n const handleSubmit = (value) => onSubmit(value);\r\n\r\n const [ctrMap, setCtrMap] = useState({});\r\n\r\n const onBlurNip = (e,formikProps) => {\r\n const number = getObjectValue('vatin.number', formikProps.values, '');\r\n const prefix = getObjectValue('vatin.prefix', formikProps.values, 'PL');\r\n const key = prefix + number;\r\n\r\n if(ctrMap[key] === undefined) {\r\n if(number && number.length >= limits.NIP_MIN && number.length <= limits.NIP_MAX) {\r\n ContractorService.check(demandId, prefix, number).then((resp) => {\r\n if(resp.success) {\r\n setCtrMap(x => ({...x, [key]: resp.result}))\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nInviteContactorForm.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(memo(InviteContactorForm));","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport InviteContactorForm from './InviteContactorForm';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport ContractorService from 'services/ContractorService';\r\nimport Loading from \"../../Loading\";\r\n\r\nfunction InviteContactor(\r\n {\r\n demandId,\r\n onClose = () => {\r\n },\r\n open = false,\r\n handleInvite = () => {\r\n },\r\n collectPostCode = false,\r\n collectAddress = false,\r\n addressRequired = true,\r\n collectCity = false,\r\n cityRequired = true,\r\n collectRegon = false,\r\n collectCompanySize = false,\r\n collectIdentity = false,\r\n checkForExistingVatins = true,\r\n defaultValues = {},\r\n title,\r\n formSubmit,\r\n contractorList,\r\n submitButtonLabel = 'add'\r\n }) {\r\n\r\n const formId = useId();\r\n\r\n const [loading, setLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n ContractorService.getNipList(demandId).then(() => setLoading(false));\r\n return () => ContractorService.clearResources(ContractorService.NIP_LIST_RESOURCE_ID)\r\n }, [demandId])\r\n\r\n\r\n const handleClose = () => {\r\n onClose();\r\n }\r\n\r\n const handleSubmit = () => {\r\n formSubmit[formId]()\r\n }\r\n\r\n\r\n return (\r\n }\r\n >\r\n {loading ? :\r\n }\r\n \r\n )\r\n}\r\n\r\nInviteContactor.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func,\r\n open: PropTypes.bool,\r\n handleInvite: PropTypes.func,\r\n collectPostCode: PropTypes.bool,\r\n collectAddress: PropTypes.bool,\r\n collectCity: PropTypes.bool,\r\n collectRegon: PropTypes.bool,\r\n collectCompanySize: PropTypes.bool,\r\n collectIdentity: PropTypes.bool,\r\n checkForExistingVatins: PropTypes.bool,\r\n defaultValues: PropTypes.object,\r\n title: PropTypes.string,\r\n contractorList: PropTypes.object,\r\n submitButtonLabel: PropTypes.string,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(InviteContactor);","import React, {useState} from \"react\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableContainer, TableHead, TableRow} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport {ContractorCompanySizeLabel} from \"constants/ContractorCompanySize\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport Typography from \"components/Typography\";\r\nimport InviteContactor from \"components/popup/inviteContactor/InviteContactor\";\r\nimport Button from \"components/Button\";\r\nimport {useParams} from \"react-router\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n tableLayout: 'fixed',\r\n\r\n '& td, th': {\r\n overflow: 'hidden',\r\n }\r\n },\r\n cell: {\r\n padding: theme.spacing(1)\r\n },\r\n emailColumn: theme.components.table.emailColumn,\r\n commonColumn: theme.components.table.dateColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n addButton: {\r\n marginTop: theme.spacing(),\r\n marginBottom: theme.spacing(2),\r\n }\r\n}));\r\n\r\nfunction ConsorciumTable(\r\n {\r\n id,\r\n formikProps,\r\n contractor,\r\n companySize,\r\n disabled\r\n }) {\r\n\r\n const classes = useStyles();\r\n const params = useParams();\r\n const [invitePopup, setInvitePopup] = useState(null);\r\n\r\n const handleInvite = (formikProps, data) => {\r\n if (!data.identity) {\r\n let identity = -1;\r\n if (Array.isArray(formikProps.values.consorciants) && formikProps.values.consorciants.length > 0) {\r\n const lastId = formikProps.values.consorciants[formikProps.values.consorciants.length - 1].identity;\r\n if (lastId < 0) {\r\n identity = lastId - 1;\r\n }\r\n }\r\n\r\n formikProps.setFieldValue(\"consorciants\", [...(formikProps.values.consorciants || []), {\r\n ...data,\r\n identity: identity,\r\n supplierId: 0,\r\n positionId: null,\r\n status: \"NEW\"\r\n }])\r\n } else\r\n formikProps.setFieldValue(\"consorciants\", formikProps.values.consorciants.map(x => data.identity === x.identity ? {...x, ...data} : x))\r\n setInvitePopup(null);\r\n }\r\n\r\n\r\n const removeContractor = (c) => {\r\n formikProps.setFieldValue(id, formikProps.values[id].filter(x => x.identity !== c.identity))\r\n }\r\n\r\n const error = getObjectValue(id, formikProps.errors, null);\r\n\r\n return (<>\r\n\r\n \r\n \r\n \r\n \r\n {Tr(\"consorciant_name\")}\r\n {Tr(\"address\")}\r\n {Tr(\"nip_pesel\")}\r\n {Tr(\"regon\")}\r\n {Tr(\"contractor_company_size\")}\r\n {Tr(\"email\")}\r\n {!disabled && }\r\n {!disabled && }\r\n \r\n \r\n \r\n \r\n {contractor.name}\r\n \r\n {contractor.address}
\r\n {contractor.postCode} {contractor.city}\r\n \r\n \r\n {contractor.vatin?.prefix} {contractor.vatin?.number}\r\n \r\n \r\n {contractor.regon}\r\n \r\n \r\n {!!companySize && ContractorCompanySizeLabel(companySize)}\r\n \r\n \r\n {contractor.email}\r\n \r\n {!disabled && \r\n \r\n }\r\n {!disabled && \r\n \r\n }\r\n \r\n {!!formikProps.values[id] && formikProps.values[id].map(c => (\r\n {c.name}\r\n \r\n {c.address}
\r\n {c.postCode} {c.city}\r\n \r\n \r\n {c.vatin.prefix} {c.vatin.number}\r\n \r\n \r\n {c.regon}\r\n \r\n \r\n {!!c.companySize && ContractorCompanySizeLabel(c.companySize)}\r\n \r\n \r\n {c.email}\r\n \r\n {!disabled && \r\n setInvitePopup(c)}/>\r\n }\r\n {!disabled && \r\n removeContractor(c)}/>\r\n }\r\n ))\r\n }\r\n \r\n
\r\n {!!error && {error}}\r\n \r\n {!disabled && }\r\n {!!invitePopup && setInvitePopup(null)}\r\n handleInvite={(data) => handleInvite(formikProps, data)}\r\n defaultValues={invitePopup}\r\n checkForExistingVatins={false}\r\n collectCity\r\n collectAddress\r\n collectRegon\r\n collectCompanySize\r\n collectPostCode\r\n collectIdentity\r\n contractorList={{\r\n items: formikProps.values.consorciants ? formikProps.values.consorciants.map(x => ({\r\n id: x.identity,\r\n contractor: {\r\n ...x\r\n }\r\n })) : []\r\n }}\r\n submitButtonLabel={!invitePopup.identity ? 'add' : 'zapisz'}\r\n title={Tr('consorcium')}\r\n />}\r\n >\r\n )\r\n}\r\n\r\nConsorciumTable.propTypes = {\r\n id: PropTypes.string.isRequired,\r\n formikProps: PropTypes.object.isRequired,\r\n contractor: PropTypes.object.isRequired,\r\n disabled: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default ConsorciumTable\r\n// memo(ConsorciumTable, (prevProps, nextProps) => {\r\n// if (prevProps.formikProps.values !== nextProps.formikProps.values) return false;\r\n// if (prevProps.formikProps.errors !== nextProps.formikProps.errors) return false;\r\n// return true;\r\n// })","import React from 'react'\r\nimport {FormControl, FormHelperText, FormLabel} from '@material-ui/core';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport Tr from 'translations/Translations';\r\nimport ToggleButton from \"@material-ui/lab/ToggleButton\";\r\nimport ToggleButtonGroup from \"@material-ui/lab/ToggleButtonGroup\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n button: {\r\n width: 150\r\n },\r\n toggle: {\r\n marginTop: theme.spacing()\r\n }\r\n}))\r\n\r\nfunction YesNo(\r\n {\r\n formikProps,\r\n id,\r\n label,\r\n disabled,\r\n className,\r\n required,\r\n noError,\r\n onChange = () => {\r\n },\r\n skipCheckTouched\r\n }) {\r\n const classes = useStyle();\r\n const value = getObjectValue(id, formikProps.values, null)\r\n const errorValue = getObjectValue(id, formikProps.errors, '')\r\n const touched = getObjectValue(id, formikProps.touched, !!skipCheckTouched)\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const isError = !noError && (!!errorValue && touched)\r\n\r\n const helperText = (isError && errorValue) || ' ';\r\n\r\n let _label = label;\r\n if (required) _label += '*';\r\n\r\n return \r\n \r\n {_label}\r\n {\r\n formikProps.setFieldValue(id, newProcedure)\r\n onChange(newProcedure)\r\n }}>\r\n \r\n {Tr('yes')}\r\n \r\n \r\n {Tr('no')}\r\n \r\n \r\n {helperText}\r\n \r\n
\r\n\r\n}\r\n\r\nexport default YesNo\r\n","import React from \"react\"\r\nimport Tr from \"translations/Translations\";\r\nimport GeneralInfoEntry from \"../../panels/generalInfo/components/GeneralInfoEntry\";\r\nimport {ContractorConsorciumTypes, ContractorConsorciumTypesLabel} from \"constants/ContractorConsorciumTypes\";\r\nimport ConsorciumTable from \"../commonData/ConsorciumTable\";\r\nimport YesNo from \"components/YesNo\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyle = makeStyles(theme=> ({\r\n marginTop: {\r\n marginTop: theme.spacing()\r\n }\r\n}))\r\n\r\nfunction OfferPositionConsorciants(\r\n {\r\n formikProps,\r\n disabled,\r\n offerEdit\r\n }) {\r\n const classes = useStyle();\r\n\r\n useDidUpdateEffect(() => {\r\n if (offerEdit.commonData.consorciumType !== ContractorConsorciumTypes.POSITION) {\r\n formikProps.setFieldValue(\"consorciumOnPosition\", false);\r\n formikProps.setFieldValue(\"consorciants\", null);\r\n }\r\n }, [offerEdit.commonData.consorciumType])\r\n\r\n const consorciumEnabled = !!getObjectValue(\"consorciumOnPosition\", formikProps.values, false);\r\n return (\r\n \r\n {\r\n offerEdit.commonData.consorciumType === ContractorConsorciumTypes.POSITION && <>\r\n \r\n\r\n {consorciumEnabled &&\r\n \r\n }\r\n >\r\n }\r\n )\r\n\r\n}\r\n\r\nOfferPositionConsorciants.propTypes = {\r\n\r\n}\r\n\r\nexport default OfferPositionConsorciants;","export const APIOfferPlacingType = {\r\n UPDATE: \"UPDATE\",\r\n CORRECTION: \"CORRECTION\"\r\n}","import React, {useContext, useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations'\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport Loading from \"components/Loading\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport moment from \"moment/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport SingleButton from \"components/popup/components/SingleButton\";\r\nimport {getUserFullNameWithEmailAndDeputy} from \"libs/userNameGetter\";\r\nimport WorkableIconDownloadButton from \"components/button/WorkableIconDownloadButton\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport {Typography} from \"@material-ui/core\";\r\nimport DemandAdditionalOffersOfferService from \"services/DemandAdditionalOffersOfferService\";\r\nimport DemandOffersAuctionService from \"services/DemandOffersAuctionService\";\r\nimport OfferStageTranslationsContext from \"context/OfferStageTranslationsContext\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n lpColumn: {\r\n width: 200\r\n },\r\n dateColumn: theme.components.table.dateTimeColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n}))\r\n\r\nexport const getConfig = (demandId, stageId, supplierId, roundType, positionId) => ({demandId, stageId, supplierId, roundType, positionId})\r\n\r\nfunction SnapshotListPopup(\r\n {\r\n onClose,\r\n config\r\n }) {\r\n const classes = useStyle();\r\n const [snapshotList, setSnapshotList] = useState(null);\r\n const [workingId, setWorkingId] = useState(null);\r\n const stageTr = useContext(OfferStageTranslationsContext);\r\n\r\n useEffect(() => {\r\n let promise;\r\n switch (config.roundType) {\r\n case RoundType.BASE:\r\n promise = DemandOffersOfferService.getSnapshots(config.demandId, config.stageId, config.supplierId);\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n promise = DemandAdditionalOffersOfferService.getSnapshots(config.demandId, config.stageId, config.positionId, config.supplierId);\r\n break;\r\n case RoundType.AUCTION:\r\n promise = DemandOffersAuctionService.getSnapshots(config.demandId, config.stageId, config.positionId, config.supplierId);\r\n break;\r\n default:\r\n throw new Error(\"Unknown roundType: \" + config.roundType);\r\n }\r\n promise.then((resp) => {\r\n if (resp)\r\n setSnapshotList(resp);\r\n else\r\n onClose();\r\n })\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n const downloadSnapshot = (snapshotId) => {\r\n setWorkingId(snapshotId);\r\n\r\n let promise;\r\n switch (config.roundType) {\r\n case RoundType.BASE:\r\n promise = DemandOffersOfferService.downloadSnapshot(config.demandId, config.stageId, snapshotId, config.supplierId)\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n promise = DemandAdditionalOffersOfferService.downloadSnapshot(config.demandId, config.stageId, config.positionId, snapshotId, config.supplierId);\r\n break;\r\n case RoundType.AUCTION:\r\n promise = DemandOffersAuctionService.downloadSnapshot(config.demandId, config.stageId, config.positionId, snapshotId, config.supplierId);\r\n break;\r\n default:\r\n throw new Error(\"Unknown roundType: \" + config.roundType);\r\n }\r\n promise.finally(() => setWorkingId(null))\r\n }\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nSnapshotListPopup.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n config: PropTypes.shape({\r\n demandId: PropTypes.string.isRequired,\r\n stageId: PropTypes.string.isRequired,\r\n supplierId: PropTypes.number,\r\n roundType: PropTypes.oneOf(Object.keys(RoundType)).isRequired,\r\n positionId: PropTypes.number,\r\n })\r\n}\r\n\r\nexport default SnapshotListPopup;\r\n","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations'\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport DemandAdditionalOffersOfferService from \"services/DemandAdditionalOffersOfferService\";\r\nimport Form from \"components/Form\";\r\nimport PartsTable from \"components/PartsTable\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport useId from \"hooks/useId\";\r\nimport * as Yup from \"yup\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport {connect} from \"react-redux\";\r\nimport Typography from \"components/Typography\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport moment from \"libs/moment\";\r\nimport useDebouncedEffect from \"hooks/useDebouncedEffect\";\r\nimport TextField from \"@material-ui/core/TextField/TextField\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n verificationDate: {\r\n marginLeft: theme.spacing(2),\r\n fontStyle: \"italic\"\r\n },\r\n search: {\r\n width: '90%'\r\n },\r\n}))\r\n\r\nexport const getVerificationConfig = (demandId, stageId, supplierId, roundType, positionId) => ({demandId, stageId, supplierId, roundType, positionId})\r\n\r\nfunction VerificationsPopup(\r\n {\r\n onClose,\r\n config,\r\n formSubmit\r\n }) {\r\n const classes = useStyle();\r\n const [verificationsList, setVerificationsList] = useState(null);\r\n const [verificationsListFiltered, setVerificationsListFiltered] = useState(null);\r\n const formId = useId();\r\n const [working, setWorking] = useState(false);\r\n const [searchText, setSearchText] = useState(\"\");\r\n\r\n const fillFilteredList = (verificationsList) => {\r\n if (!searchText || searchText === \"\") {\r\n if (verificationsList !== verificationsListFiltered) {\r\n setVerificationsListFiltered(verificationsList);\r\n }\r\n } else {\r\n const reg = new RegExp(searchText.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"i\");\r\n setVerificationsListFiltered(verificationsList.filter(pos => pos.search.search(reg) > -1));\r\n }\r\n }\r\n\r\n const getVerifications = () => {\r\n let promise;\r\n switch (config.roundType) {\r\n case RoundType.BASE:\r\n promise = DemandOffersOfferService.getVerifications(config.demandId, config.stageId, config.supplierId);\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n promise = DemandAdditionalOffersOfferService.getVerifications(config.demandId, config.stageId, config.positionId, config.supplierId);\r\n break;\r\n default:\r\n throw new Error(\"Unknown roundType: \" + config.roundType);\r\n }\r\n promise.then((resp) => {\r\n if (resp) {\r\n const respMapped = resp.map((x, i) => ({\r\n ...x,\r\n identity: \"_\" + i,\r\n name: <>{x.positionName}\r\n {x.verificationDate && \r\n {Tr(\"verification_date\")}: {moment(x.verificationDate).format(DateFormats.DATETIME_FORMAT)}\r\n }\r\n >,\r\n search: x.positionName,\r\n }))\r\n setVerificationsList(respMapped);\r\n fillFilteredList(respMapped);\r\n } else\r\n onClose();\r\n }).finally(() => setWorking(false))\r\n }\r\n useEffect(() => {\r\n getVerifications();\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n useDebouncedEffect(() => {\r\n fillFilteredList(verificationsList);\r\n }, {timeout: 800, ignoreInitialCall: true}, [searchText])\r\n\r\n const downloadVerifications = (positionIds) => {\r\n setWorking(true);\r\n\r\n let promise;\r\n switch (config.roundType) {\r\n case RoundType.BASE:\r\n promise = DemandOffersOfferService.downloadVerifications(config.demandId, config.stageId, config.supplierId, positionIds)\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n promise = DemandAdditionalOffersOfferService.downloadVerifications(config.demandId, config.stageId, config.positionId, config.supplierId, positionIds);\r\n break;\r\n default:\r\n throw new Error(\"Unknown roundType: \" + config.roundType);\r\n }\r\n promise.finally(() => {\r\n getVerifications();\r\n })\r\n }\r\n\r\n const onSubmit = (values) => {\r\n let posIds = verificationsList.filter(x => values.list[x.identity]).map(x => x.positionId)\r\n downloadVerifications(posIds)\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nVerificationsPopup.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n config: PropTypes.shape({\r\n demandId: PropTypes.string.isRequired,\r\n stageId: PropTypes.string.isRequired,\r\n supplierId: PropTypes.number,\r\n roundType: PropTypes.oneOf(Object.keys(RoundType)).isRequired,\r\n positionId: PropTypes.number,\r\n })\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(VerificationsPopup);\r\n","import reduxStore from 'redux/store'\r\nimport {setSalesNotification} from \"../redux/actions\";\r\n\r\nfunction useSalesNotification(functionality, successCallback) {\r\n return () => {\r\n const state = reduxStore.getState();\r\n if (state.resources?.demandHeader?.applicationClientSettings?.[functionality]) {\r\n if (state.resources.demandHeader.applicationClientSettings[functionality].active) {\r\n successCallback();\r\n } else {\r\n reduxStore.dispatch(setSalesNotification(state.resources.demandHeader.applicationClientSettings[functionality].functionalityName));\r\n }\r\n } else {\r\n console.error(`state.resources.demandHeader.applicationClientSettings.${functionality} not found`)\r\n }\r\n }\r\n}\r\n\r\nexport default useSalesNotification;","const values = {\r\n PAPERS_GENERATOR: 'papersGenerator',\r\n SIGNATURE_VERIFICATOR: 'signatureVerificator'\r\n}\r\n\r\nexport default values;","import React, {useContext, useEffect, useState} from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport {useParams} from \"react-router\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport Loading from \"components/Loading\";\r\nimport Form from \"components/Form\";\r\nimport {offerValidation} from \"../constants/validation.form\";\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport OfferPositionConditions from \"../../../../../common/positions/OfferPositionConditions\";\r\nimport OfferPositionCriteriums from \"../../../../../common/positions/OfferPositionCriteriums\";\r\nimport OfferPositionItems from \"../../../../../common/positions/OfferPositionItems\";\r\nimport OfferPositionParameters from \"../../../../../common/positions/OfferPositionParameters\";\r\nimport OfferPositionConsorciants from \"../../../../../common/positions/OfferPositionConsorciants\";\r\nimport DemandAdditionalOffersOfferService from \"services/DemandAdditionalOffersOfferService\";\r\nimport {ContractorConsorciumTypes} from \"constants/ContractorConsorciumTypes\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Tr from \"translations/Translations\";\r\nimport {APIOfferPlacingType} from \"../constants/APIOfferPlacingType\";\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport SpellcheckIcon from '@material-ui/icons/Spellcheck';\r\nimport {OfferMode} from \"../../../../../common/constants/OfferMode\";\r\nimport DemandOffersAuctionService from \"services/DemandOffersAuctionService\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport SnapshotListPopup, {getConfig} from \"../../SnapshotListPopup\";\r\nimport HistoryIcon from \"@material-ui/icons/History\";\r\nimport VerificationsPopup, {getVerificationConfig} from \"../../VerificationsPopup\";\r\nimport SignatureIcon from \"components/icon/SignatureIcon\";\r\nimport OfferSectionContext from \"context/OfferSectionContext\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport useSalesNotification from \"hooks/useSalesNotification\";\r\nimport salesNotificationKeys from \"components/popup/salesNotification/constants/salesNotification.keys\";\r\nimport VatType from \"constants/VatType\";\r\nimport {PriceTypeGrossFieldVisible, PriceTypeNetFieldVisible, PriceTypeVatFieldVisible} from \"constants/PriceTypes\";\r\nimport {calcNetGros} from \"../../../../../common/positions/inputs/OfferPriceInput\";\r\n\r\nfunction OfferPositionForm(\r\n {\r\n position,\r\n loadedPosition,\r\n expanded,\r\n setExpanded,\r\n working,\r\n setWorking,\r\n disabled,\r\n formId,\r\n mode,\r\n roundType,\r\n offerEdit\r\n }) {\r\n\r\n const params = useParams();\r\n const demandId = params.id;\r\n const stageId = params.stageId;\r\n const [loadedPositionCounted, setLoadedPositionCounted] = useState(null);\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n const contextSection = useContext(OfferSectionContext);\r\n const [chooseSnapshotPopup, setChooseSnapshotPopup] = useState(null);\r\n const [verifyPopup, setVerifyPopup] = useState(null);\r\n\r\n const getOfferPosition = () => {\r\n switch (roundType) {\r\n case RoundType.BASE:\r\n DemandOffersOfferService.getOfferPosition(demandId, stageId, mode, position.positionId, purchaserOfferContext?.supplierId, purchaserOfferContext?.preview);\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n DemandAdditionalOffersOfferService.getOfferPosition(demandId, stageId, mode, position.positionId, purchaserOfferContext?.supplierId);\r\n break;\r\n case RoundType.AUCTION:\r\n DemandOffersAuctionService.getOfferPosition(demandId, stageId, mode, position.positionId, purchaserOfferContext?.supplierId);\r\n break;\r\n default:\r\n throw new Error(\"Unknown roundType: \" + roundType)\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (expanded && !loadedPosition) {\r\n getOfferPosition();\r\n }\r\n // eslint-disable-next-line\r\n }, [expanded, loadedPosition, position, demandId, stageId, mode, roundType, purchaserOfferContext])\r\n\r\n const handleSubmit = (values, actions) => {\r\n setWorking(true);\r\n let promise;\r\n switch (roundType) {\r\n case RoundType.BASE:\r\n promise = DemandOffersOfferService.postSavePositionData(demandId, stageId, purchaserOfferContext?.supplierId, mode, values)\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n promise = DemandAdditionalOffersOfferService.postSavePositionData(demandId, stageId, purchaserOfferContext?.supplierId, mode, values)\r\n break;\r\n case RoundType.AUCTION:\r\n promise = DemandOffersAuctionService.postSavePositionData(demandId, stageId, purchaserOfferContext?.supplierId, mode, values)\r\n break;\r\n default:\r\n throw new Error(\"Unknown roundType: \" + roundType)\r\n }\r\n\r\n promise.then((errors) => {\r\n if (errors) {\r\n Object.keys(errors).forEach((key) => {\r\n actions.setFieldError(key.replaceAll(\"[\", \".\").replaceAll(\"]\", \"\"), errors[key]);\r\n })\r\n setTimeout((formId) => scrollTo(\"#\" + formId + \" .MuiFormHelperText-root.Mui-error\", 200), 100, formId);\r\n } else {\r\n setLoadedPositionCounted(null)\r\n getOfferPosition();\r\n setExpanded(false);\r\n setTimeout((formId) => scrollTo(\"#wrap_\" + formId, 0), 100, formId);\r\n }\r\n }).finally(() => setWorking(false))\r\n }\r\n\r\n useEffect(() => {\r\n if (!!loadedPosition) {\r\n\r\n const show = {\r\n netField: PriceTypeNetFieldVisible(loadedPosition.priceType),\r\n grossField: PriceTypeGrossFieldVisible(loadedPosition.priceType),\r\n vatField: PriceTypeVatFieldVisible(loadedPosition.priceType),\r\n }\r\n\r\n\r\n\r\n\r\n const counted = {\r\n ...loadedPosition,\r\n consorciumOnPosition: !!loadedPosition.consorciumOnPosition,\r\n itemOffers: loadedPosition.itemOffers.map((x, i) => {\r\n const values = {\r\n netValue: show.netField ? x.value : null,\r\n grossValue: show.grossField ? x.grossValue : null,\r\n vatType: show.vatField ? x.vatType : null,\r\n vatValue: show.vatField ? x.vatValue : null\r\n }\r\n const [roundedNet, roundedGross] = calcNetGros(values, !!x.quantity ? x.quantity : x.criterium.quantity, loadedPosition.priceType);\r\n\r\n return {\r\n ...x,\r\n vatType: x.vatType === VatType.STANDARD && x.vatValue === null ? null : x.vatType,\r\n totalNet: roundedNet,\r\n totalGross: roundedGross\r\n }\r\n }),\r\n criteriums: loadedPosition.criteriums.map(x => ({\r\n ...x,\r\n vatType: x.vatType === VatType.STANDARD && x.vatValue === null ? null : x.vatType\r\n }))\r\n }\r\n setLoadedPositionCounted(counted);\r\n }\r\n }, [loadedPosition])\r\n const printVerificationSalesCheck = useSalesNotification(salesNotificationKeys.SIGNATURE_VERIFICATOR, () => setVerifyPopup(getVerificationConfig(demandId, stageId, purchaserOfferContext?.supplierId, RoundType.ADDITIONAL_OFFERS, position.positionId)));\r\n const getButtons = (formikProps) => {\r\n const buttons = [];\r\n if (!!purchaserOfferContext && mode === OfferMode.PLACED && !offerEdit.passiveOfferForm && !!loadedPosition && !loadedPosition.disabled) {\r\n buttons.push(createButton(Tr('operator.modify.correct'), () => formikProps.setFieldValue(\"placingType\", APIOfferPlacingType.CORRECTION, false),\r\n undefined, working || disabled || !!formikProps.values.placingType, undefined, false, SpellcheckIcon));\r\n buttons.push(createButton(Tr('operator.modify.update'), () => formikProps.setFieldValue(\"placingType\", APIOfferPlacingType.UPDATE, false),\r\n undefined, working || disabled || !!formikProps.values.placingType, undefined, false, EditIcon));\r\n }\r\n\r\n if (!contextSection.additionalOfferAltMode) {\r\n if (!!purchaserOfferContext && mode === OfferMode.PLACED && roundType !== RoundType.BASE) {\r\n buttons.push(createButton(Tr(\"verify_documents\"), printVerificationSalesCheck, undefined, false, undefined, false, SignatureIcon));\r\n }\r\n if (roundType !== RoundType.BASE) {\r\n buttons.push(createButton(Tr(\"change_history\"), () => setChooseSnapshotPopup(getConfig(demandId, stageId, purchaserOfferContext?.supplierId, RoundType.ADDITIONAL_OFFERS, position.positionId)),\r\n \"outlined\", false, undefined, false, HistoryIcon));\r\n }\r\n\r\n }\r\n return buttons;\r\n }\r\n\r\n return (<>\r\n {\r\n !loadedPositionCounted ?\r\n \r\n :\r\n \r\n }\r\n\r\n >)\r\n\r\n\r\n}\r\n\r\nOfferPositionForm.propTypes = {\r\n position: PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n positionId: PropTypes.number.isRequired\r\n }),\r\n expanded: PropTypes.bool.isRequired,\r\n setExpanded: PropTypes.func.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n setWorking: PropTypes.func.isRequired,\r\n formId: PropTypes.string.isRequired,\r\n roundType: PropTypes.oneOf(Object.keys(RoundType)).isRequired,\r\n offerEdit: PropTypes.shape({\r\n contractor: PropTypes.shape({}),\r\n commonData: PropTypes.shape({\r\n consorciumType: PropTypes.oneOf(Object.keys(ContractorConsorciumTypes)).isRequired\r\n }).isRequired\r\n }).isRequired\r\n}\r\n\r\nexport default OfferPositionForm;","import React, {useContext, useRef, useState} from 'react'\r\nimport {makeStyles, Tooltip, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ExpansionPanel from 'components/ExpansionPanel';\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowUp'\r\nimport clsx from 'clsx';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport ExpansionPanelTitleAvatar from \"components/ExpansionPanelTitleAvatar\";\r\nimport OfferPositionForm from \"./components/OfferPositionForm\";\r\nimport {connect} from \"react-redux\";\r\nimport Button from \"components/Button\";\r\nimport {OfferPositionStatusToAvatar} from \"../../../../common/constants/OfferPositionStatusType\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport {OfferMode} from \"../../../../common/constants/OfferMode\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport SupportModeContext from \"context/SupportModeContext\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport {useParams} from \"react-router\";\r\nimport PrintIcon from '@material-ui/icons/Print';\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n // backgroundColor: theme.palette.background.default,\r\n marginBottom: theme.spacing(),\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n '&.MuiAccordion-rounded:first-child .MuiAccordionSummary-root': {\r\n borderRadius: theme.spacing(1.5, 1.5, 0, 0)\r\n },\r\n '&.MuiAccordion-rounded:last-child ': {\r\n marginBottom: 0,\r\n },\r\n '&.MuiAccordion-rounded:last-child .MuiAccordionSummary-root': {\r\n borderRadius: theme.spacing(0, 0, 1.5, 1.5)\r\n },\r\n '&.MuiAccordion-rounded:only-child .MuiAccordionSummary-root': {\r\n borderRadius: theme.spacing(1.5)\r\n }\r\n },\r\n rotate: {\r\n transform: 'rotate(180deg)'\r\n },\r\n rootGrid: {\r\n '&>*:last-child': {\r\n flexGrow: 1,\r\n }\r\n },\r\n adornmentGrid: {\r\n '&>*:first-child': {\r\n flexGrow: 1,\r\n marginRight: theme.spacing(2)\r\n }\r\n },\r\n title: {\r\n top: 105,\r\n zIndex: theme.zIndex.appBar - 2,\r\n position: \"sticky\",\r\n background: theme.palette.background.default,\r\n },\r\n titleGrid: {\r\n '&>*:first-child': {\r\n flexGrow: 10000,\r\n }\r\n },\r\n discardButton: {\r\n marginRight: theme.spacing(2),\r\n whiteSpace: \"nowrap\"\r\n\r\n }\r\n}))\r\n\r\nfunction OfferMultiPositions(\r\n {\r\n position,\r\n positionsLoaded,\r\n mode,\r\n disabled,\r\n formValues,\r\n formSubmit,\r\n roundType,\r\n offerEdit,\r\n hide,\r\n }) {\r\n const classes = useStyle();\r\n const panelRef = useRef();\r\n const FORM_ID = \"offerPositionForm_\" + position.positionId\r\n const [expanded, setExpanded] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n const supportMode = useContext(SupportModeContext);\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n const params = useParams();\r\n\r\n const handleClick = position => {\r\n setExpanded(x => !x)\r\n }\r\n\r\n const printOfferPosition = () => {\r\n DemandOffersOfferService.printOfferPosition(params.id, params.stageId, mode, position.positionId, purchaserOfferContext?.supplierId, purchaserOfferContext?.preview)\r\n }\r\n\r\n const createTitle = (variant, label, position) => {\r\n return (\r\n\r\n
\r\n \r\n \r\n \r\n {label}\r\n \r\n \r\n\r\n \r\n {!disabled && !offerEdit.passiveOfferForm && \r\n {\r\n purchaserOfferContext?.preview && {\r\n e.stopPropagation();\r\n printOfferPosition();\r\n }} Icon={PrintIcon} working={working}>{Tr('download_print')}\r\n }\r\n\r\n\r\n {formValues[FORM_ID + \"_dirty\"] &&\r\n }\r\n\r\n {\r\n e.stopPropagation();\r\n formSubmit[FORM_ID]()\r\n\r\n setTimeout((formId) => scrollTo(\"#\" + formId + \" .MuiFormHelperText-root.Mui-error\", 200), 100, FORM_ID);\r\n }} disabled={working || !expanded || (!formValues[FORM_ID + \"_dirty\"] && positionsLoaded[DemandOffersOfferService.getLoadedPositionKey(position.positionId)]?.status !== 'PLACED_OUT_OF_DATE') || supportMode || purchaserOfferContext?.preview}\r\n working={working}>{Tr('save')}\r\n\r\n\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n {(!!position.endDate || !!position.offerTmpDate || !!position.offerDate) &&\r\n
\r\n {!!position.endDate && \r\n {Tr(RoundType.AUCTION === roundType ? 'additional_round_end_date_auction' : 'additional_round_end_date')}: {moment(position.endDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n }\r\n {(mode === OfferMode.EDIT) && !!position.offerTmpDate && \r\n {Tr('offer_tmp_date_additional')}: {moment(position.offerTmpDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}\r\n \r\n }\r\n {(mode === OfferMode.PLACED) && !!position.offerDate && \r\n {Tr(RoundType.AUCTION === roundType ? 'offer_date_additional_auction' : 'offer_date_additional')}: {moment(position.offerDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}\r\n \r\n }\r\n \r\n }\r\n\r\n
\r\n )\r\n }\r\n\r\n\r\n const variant = OfferPositionStatusToAvatar(position.status, mode);\r\n const _label = position.name;\r\n return (\r\n handleClick(position)}\r\n >\r\n \r\n \r\n\r\n )\r\n\r\n}\r\n\r\nOfferMultiPositions.propTypes = {\r\n position: PropTypes.any,\r\n positionsLoaded: PropTypes.object.isRequired,\r\n mode: PropTypes.oneOf(Object.keys(OfferMode)).isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n roundType: PropTypes.oneOf(Object.keys(RoundType)).isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formValues: state.formValues,\r\n formSubmit: state.form,\r\n}), {})(OfferMultiPositions);","import React, {useContext, useState} from 'react'\r\nimport PropTypes from \"prop-types\";\r\nimport OfferPositionForm from \"./components/OfferPositionForm\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport {connect} from \"react-redux\";\r\nimport {OfferMode} from \"../../../../common/constants/OfferMode\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Tr from \"translations/Translations\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport SupportModeContext from \"context/SupportModeContext\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n title: {\r\n top: 105,\r\n zIndex: theme.zIndex.appBar - 2,\r\n position: \"sticky\",\r\n background: theme.palette.background.default,\r\n borderRadius: theme.spacing(1.5, 1.5, 0, 0),\r\n padding: theme.spacing(2, 0, 2, 0),\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n borderBottom: \"none\"\r\n },\r\n content: {\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n padding: theme.spacing(2),\r\n borderTop: \"none\",\r\n marginTop: 0,\r\n borderRadius: theme.spacing(0, 0, 1.5, 1.5),\r\n }\r\n}))\r\n\r\nfunction OfferSinglePosition(\r\n {\r\n position,\r\n positionsLoaded,\r\n mode,\r\n formValues,\r\n formSubmit,\r\n disabled,\r\n roundType,\r\n offerEdit,\r\n }) {\r\n const classes = useStyle();\r\n const FORM_ID = \"offerPositionForm_\" + position.positionId\r\n const [working, setWorking] = useState(false);\r\n const supportMode = useContext(SupportModeContext);\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n if (formValues[FORM_ID + \"_dirty\"]) {\r\n buttons.push(createButton(Tr('discard_changes'), () => simpleConfirm(\"discard_changes_confirm\", formSubmit[FORM_ID + \"_reset\"]), \"outlined\", working))\r\n }\r\n if (!offerEdit.disabled) {\r\n buttons.push(createButton(Tr('save'), (e) => {\r\n e.stopPropagation();\r\n formSubmit[FORM_ID]()\r\n\r\n setTimeout((formId) => scrollTo(\"#\" + formId + \" .MuiFormHelperText-root.Mui-error\", 210), 100, FORM_ID);\r\n }, undefined, working || (!formValues[FORM_ID + \"_dirty\"] && positionsLoaded[DemandOffersOfferService.getLoadedPositionKey(position.positionId)]?.status !== 'PLACED_OUT_OF_DATE') || supportMode || purchaserOfferContext?.preview, undefined, working))\r\n }\r\n return buttons;\r\n }\r\n\r\n return (<>\r\n \r\n \r\n false}\r\n working={working}\r\n setWorking={setWorking}\r\n position={position}\r\n loadedPosition={positionsLoaded[DemandOffersOfferService.getLoadedPositionKey(position.positionId)]}\r\n formId={FORM_ID}\r\n mode={mode}\r\n roundType={roundType}\r\n offerEdit={offerEdit}\r\n disabled={disabled}\r\n />\r\n
\r\n >)\r\n\r\n}\r\n\r\nOfferSinglePosition.propTypes = {\r\n positionsLoaded: PropTypes.object.isRequired,\r\n mode: PropTypes.oneOf(Object.keys(OfferMode)).isRequired,\r\n roundType: PropTypes.oneOf(Object.keys(RoundType)).isRequired,\r\n};\r\n\r\nexport default connect((state) => ({\r\n formValues: state.formValues,\r\n formSubmit: state.form,\r\n}), {})(OfferSinglePosition);","import React, {useContext, useEffect, useRef, useState} from 'react'\r\nimport OfferMultiPositions from \"./OfferMultiPositions\";\r\nimport OfferSinglePosition from \"./OfferSinglePosition\";\r\nimport TitledComponent from \"components/TitledComponent\";\r\nimport {connect} from \"react-redux\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport {makeStyles, TextField} from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\nimport {OfferMode} from \"../../../../common/constants/OfferMode\";\r\nimport DemandAdditionalOffersOfferService from \"services/DemandAdditionalOffersOfferService\";\r\nimport OfferSectionContext from \"context/OfferSectionContext\";\r\nimport DemandOffersAuctionService from \"services/DemandOffersAuctionService\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport Tr from \"translations/Translations\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport purchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport {Visibility, VisibilityOff} from '@material-ui/icons';\r\nimport {OfferPositionStatusType} from \"../../../../common/constants/OfferPositionStatusType\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n height: '100%',\r\n // '&>*:not(:first-child)': {\r\n // marginTop: theme.spacing(2)\r\n // }\r\n },\r\n floatingMenu: {\r\n position: 'sticky',\r\n zIndex: theme.zIndex.appBar - 1,\r\n bottom: 0\r\n },\r\n menuBarPaper: {\r\n background: theme.palette.background.default,\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n },\r\n search: {\r\n marginBottom: theme.spacing(2),\r\n width: 470,\r\n }\r\n}))\r\n\r\n\r\nfunction OfferPositions(\r\n {\r\n offerEdit,\r\n positionsLoaded = {},\r\n disabled,\r\n mode,\r\n positionsRef,\r\n roundType\r\n }) {\r\n\r\n const classes = useStyle();\r\n const contextSection = useContext(OfferSectionContext);\r\n const [searchReg, setSearchReg] = useState(null);\r\n const [hideNoOfferPositionsOperator, setHideNoOfferPositionsOperator] = useState(purchaserOfferContext && mode === OfferMode.PLACED);\r\n const searchText = useRef();\r\n\r\n useEffect(() => {\r\n return () => {\r\n switch (roundType) {\r\n case RoundType.BASE:\r\n DemandOffersOfferService.clearResources(DemandOffersOfferService.OFFER_POSITIONS_LOADED);\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n DemandAdditionalOffersOfferService.clearResources(DemandAdditionalOffersOfferService.ADDITIONAL_OFFER_POSITIONS_LOADED);\r\n break;\r\n case RoundType.AUCTION:\r\n DemandOffersAuctionService.clearResources(DemandOffersAuctionService.AUCTIONS_OFFER_POSITIONS_LOADED)\r\n break;\r\n default:\r\n throw new Error(\"Unknown roundType: \" + roundType)\r\n }\r\n\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const handleKeyUp = (e) => {\r\n if (e.key === 'Enter') {\r\n handleSubmit()\r\n }\r\n }\r\n\r\n const handleSubmit = (clear) => {\r\n if (clear) {\r\n searchText.current.value = \"\"\r\n }\r\n if (searchText.current.value && searchText.current.value !== \"\") {\r\n setSearchReg(new RegExp(searchText.current.value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"i\"));\r\n } else {\r\n setSearchReg(null)\r\n }\r\n }\r\n\r\n return (\r\n\r\n {!contextSection.onePositionMode ? <>\r\n {\r\n offerEdit.positions.length > 1 && \r\n\r\n \r\n\r\n\r\n \r\n handleSubmit()} tooltip={Tr('search')}/>\r\n handleSubmit(true)}/>\r\n {\r\n purchaserOfferContext && mode === OfferMode.PLACED && offerEdit.positions.some(x => x.status === OfferPositionStatusType.NO_OFFER) &&\r\n setHideNoOfferPositionsOperator(x => !x)}\r\n tooltip={hideNoOfferPositionsOperator ? Tr(\"show_no_offer_parts\") : Tr(\"hide_no_offer_parts\")}/>\r\n }\r\n
\r\n\r\n \r\n }\r\n \r\n {\r\n offerEdit.positions.map(x => ())\r\n }\r\n
\r\n >\r\n : \r\n }\r\n\r\n )\r\n}\r\n\r\nOfferPositions.propTypes = {\r\n mode: PropTypes.oneOf(Object.keys(OfferMode)).isRequired,\r\n roundType: PropTypes.oneOf(Object.keys(RoundType)).isRequired,\r\n};\r\n\r\nexport default connect((state, ownProps) => ({\r\n positionsLoaded: state.resources[ownProps.roundType === RoundType.BASE ? DemandOffersOfferService.OFFER_POSITIONS_LOADED : (ownProps.roundType === RoundType.ADDITIONAL_OFFERS ? DemandAdditionalOffersOfferService.ADDITIONAL_OFFER_POSITIONS_LOADED : DemandOffersAuctionService.AUCTIONS_OFFER_POSITIONS_LOADED)],\r\n}), {})(OfferPositions);","import React, {useMemo} from 'react'\r\nimport {Grid, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types'\r\nimport Button from 'components/Button';\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*': {\r\n flexShrink: 0,\r\n }\r\n },\r\n separator: {\r\n flexGrow: 1,\r\n },\r\n button: {\r\n width: theme.components.progressBar.buttons.width\r\n },\r\n buttonList: {\r\n marginRight: theme.spacing(2)\r\n },\r\n buttonListLeft: {\r\n marginLeft: theme.spacing(2)\r\n },\r\n icon: {\r\n marginRight: theme.spacing(1),\r\n }\r\n})\r\n\r\nconst getButtons = (buttons) => {\r\n const bb = {\r\n before: [],\r\n after: []\r\n }\r\n\r\n if (buttons)\r\n buttons.forEach((b) => {\r\n (b.toLeft ? bb.before : bb.after).push(b);\r\n })\r\n\r\n return bb;\r\n};\r\n\r\nfunction ButtonsBar(\r\n {\r\n classes,\r\n buttons\r\n }) {\r\n\r\n const button = ({variant, label, onClick, Icon, color, disabled, toLeft}) => (\r\n \r\n \r\n \r\n )\r\n\r\n const memoButtons = useMemo(() => getButtons(buttons), [buttons]);\r\n\r\n return (\r\n \r\n {\r\n memoButtons.before.length ? memoButtons.before.map(b => button(b)) : undefined\r\n }\r\n \r\n \r\n {\r\n memoButtons.after.length ? memoButtons.after.map(b => button(b)) : undefined\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nButtonsBar.propTypes = {\r\n className: PropTypes.string,\r\n buttons: PropTypes.arrayOf(PropTypes.shape({\r\n label: PropTypes.string.isRequired,\r\n onClick: PropTypes.func,\r\n variant: PropTypes.oneOf(['outlined', 'contained', 'text'])\r\n }))\r\n}\r\n\r\nButtonsBar.propDefault = {}\r\n\r\nexport default withStyles(style)(ButtonsBar)\r\n","import React from 'react'\r\nimport {Grid, makeStyles, Paper} from '@material-ui/core';\r\nimport PropTypes from 'prop-types'\r\nimport ButtonsBar from './ButtonsBar';\r\nimport clsx from 'clsx';\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n paper: {\r\n padding: theme.spacing(1)\r\n },\r\n}));\r\n\r\nfunction NavigationBar(\r\n {\r\n classesObj = {},\r\n buttons\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n\r\n return buttons && buttons.length > 0 ?\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n}\r\n\r\nNavigationBar.propTypes = {\r\n classesObj: PropTypes.object,\r\n buttons: PropTypes.arrayOf(PropTypes.shape({\r\n label: PropTypes.string.isRequired,\r\n onClick: PropTypes.func,\r\n variant: PropTypes.oneOf(['outlined', 'contained', 'text'])\r\n }))\r\n}\r\n\r\nNavigationBar.propDefault = {}\r\n\r\nexport default NavigationBar;\r\n","import Tr from 'translations/Translations';\r\nimport { redirect } from 'libs/RouterPath';\r\nimport reduxStore from 'redux/store'\r\nimport {setStepperState} from \"redux/actions\";\r\n\r\nexport const createButton = (trKey, onClick, variant, Icon, color, disabled = false, toLeft = false, translateLabel = true) => ({\r\n\tlabel: translateLabel === true ? Tr(trKey) : trKey,\r\n\tonClick,\r\n\tvariant,\r\n\tIcon,\r\n\tcolor,\r\n\tdisabled,\r\n\ttoLeft\r\n})\r\n\r\nexport const createHrefButton = (trKey, href, variant, Icon, color) => (\r\n\tcreateButton(\r\n\t\ttrKey,\r\n\t\t() => { redirect(href) },\r\n\t\tvariant,\r\n\t\tIcon,\r\n\t\tcolor\r\n\t)\r\n)\r\n\r\nexport const createSubmitFormButton = (trKey, variant, Icon, color, disabled, isSaveButton) => {\r\n\tconst { form, stepper } = reduxStore.getState();\r\n\tconst formId = stepper.state;\r\n\tconst func = isSaveButton ? form[formId] : ()=>reduxStore.dispatch(setStepperState());\r\n\r\n\treturn createButton(\r\n\t\ttrKey,\r\n\t\t() => func ? func() : {},\r\n\t\tvariant,\r\n\t\tIcon,\r\n\t\tcolor,\r\n\t\tdisabled || !func\r\n\t)\r\n}\r\n\r\n\r\nexport default createButton;","import React from 'react'\r\nimport {RadioGroup as RadioGroupUI, FormHelperText, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport SimpleTable from 'components/complex/simpleTable/SimpleTable';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport clsx from \"clsx\";\r\nimport RadioGroupElement from \"./RadioGroupElement\";\r\n\r\n\r\nconst style = theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n textBold: {\r\n fontWeight: theme.typography.fontWeightBold,\r\n marginBottom: theme.spacing()\r\n },\r\n samllColumn: theme.components.table.lpColumn,\r\n orderColumn: theme.components.table.ipColumn,\r\n checkboxColumn: {\r\n width: theme.spacing(),\r\n paddingTop: 0,\r\n paddingBottom: 0\r\n },\r\n nameColumn: {\r\n paddingTop: theme.spacing(),\r\n paddingBottom: theme.spacing(),\r\n },\r\n checkbox: {\r\n padding: 0,\r\n },\r\n cursor: {\r\n cursor: \"pointer\"\r\n }\r\n})\r\n\r\nfunction PartsRadioTable(\r\n {\r\n classes,\r\n className,\r\n formikProps,\r\n id,\r\n elementList = [],\r\n label,\r\n orderLabel = \"part_number\",\r\n editable = true,\r\n required = true,\r\n disabled\r\n }) {\r\n const value = getObjectValue(id, formikProps.values, null);\r\n const errorValue = getObjectValue(id, formikProps.errors, '');\r\n const touched = getObjectValue(id, formikProps.touched, false);\r\n\r\n const isError = editable && !!errorValue && Boolean(touched);\r\n const helperText = errorValue || ' ';\r\n const hasOrder = !!(elementList?.[0]?.order);\r\n return (\r\n \r\n \r\n {label ? label : Tr('assign_to_part')}{required ? '*' : ''}\r\n \r\n {\r\n formikProps.handleChange(event);\r\n }}\r\n onBlur={formikProps.handleBlur}\r\n value={value}\r\n >\r\n {\r\n return [\r\n ,\r\n ,\r\n ,\r\n ]\r\n })}\r\n columnClasses={[\r\n classes.checkboxColumn,\r\n hasOrder ? classes.orderColumn : classes.samllColumn,\r\n classes.nameColumn\r\n ]}\r\n />\r\n \r\n {isError && {helperText}}\r\n \r\n )\r\n}\r\n\r\nPartsRadioTable.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(PartsRadioTable);\r\n","import React, {useContext, useMemo, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport {connect} from \"react-redux\";\r\nimport PartsTable from \"components/PartsTable\";\r\nimport {\r\n OfferPositionStatusesReadyToDelete,\r\n OfferPositionStatusesReadyToOffering,\r\n OfferPositionStatusesReadyToOfferSign,\r\n OfferPositionStatusesReadyToWithdraw,\r\n OfferPositionStatusesReadyToWithdrawSign\r\n} from \"./constants/OfferPositionStatusType\";\r\nimport * as Yup from \"yup\";\r\nimport Typography from \"components/Typography\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport {OfferStatusType} from \"./constants/OfferStatusType\";\r\nimport TextField from \"@material-ui/core/TextField/TextField\";\r\nimport useDebouncedEffect from \"hooks/useDebouncedEffect\";\r\nimport OfferStageTranslationsContext from \"context/OfferStageTranslationsContext\";\r\nimport PartsRadioTable from \"components/PartsRadioTable\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n info: {\r\n fontSize: \"small\",\r\n fontWeight: \"bold\",\r\n textAlign: \"center\",\r\n marginTop: theme.spacing()\r\n },\r\n search: {\r\n width: \"90%\"\r\n },\r\n}))\r\n\r\nexport const POPUP_MODE = {\r\n OFFER: \"OFFER\",\r\n OFFER_SIGN: \"OFFER_SIGN\",\r\n OFFER_BREAK: \"OFFER_BREAK\",\r\n WITHDRAW: \"WITHDRAW\",\r\n WITHDRAW_SIGN: \"WITHDRAW_SIGN\",\r\n WITHDRAW_BREAK: \"WITHDRAW_BREAK\",\r\n OPERATOR_PLACE: \"OPERATOR_PLACE\",\r\n DELETE_OFFER: \"DELETE_OFFER\",\r\n}\r\n\r\nconst isSupported = (mode, position) => {\r\n switch (mode) {\r\n case POPUP_MODE.OFFER:\r\n case POPUP_MODE.OPERATOR_PLACE:\r\n return OfferPositionStatusesReadyToOffering.includes(position.status)\r\n case POPUP_MODE.OFFER_SIGN:\r\n case POPUP_MODE.OFFER_BREAK:\r\n return OfferPositionStatusesReadyToOfferSign.includes(position.status);\r\n case POPUP_MODE.WITHDRAW:\r\n return OfferPositionStatusesReadyToWithdraw.includes(position.status);\r\n case POPUP_MODE.WITHDRAW_SIGN:\r\n case POPUP_MODE.WITHDRAW_BREAK:\r\n return OfferPositionStatusesReadyToWithdrawSign.includes(position.status);\r\n case POPUP_MODE.DELETE_OFFER:\r\n return (!position.contractorOfferStatus && OfferPositionStatusesReadyToDelete.includes(position.status))\r\n || (position.contractorOfferStatus === OfferStatusType.NORMAL && position.offerDate === null && position.offerTmpDate !== null)\r\n default:\r\n throw new Error(\"Unknown PopupMode: \" + mode)\r\n }\r\n\r\n}\r\nconst getButtonText = (mode, digitalSign, stageTr) => {\r\n switch (mode) {\r\n case POPUP_MODE.OFFER:\r\n case POPUP_MODE.OFFER_SIGN:\r\n return stageTr(digitalSign ? \"sign_offer_form\" : \"place_offer\")\r\n case POPUP_MODE.OPERATOR_PLACE:\r\n return stageTr(\"place_offer_operator\")\r\n case POPUP_MODE.OFFER_BREAK:\r\n return stageTr(\"sign_offer_form_stop\")\r\n case POPUP_MODE.WITHDRAW:\r\n case POPUP_MODE.WITHDRAW_SIGN:\r\n return stageTr(digitalSign ? \"sign_withdraw_form\" : \"withdraw_offer\")\r\n case POPUP_MODE.WITHDRAW_BREAK:\r\n return stageTr(\"sign_withdraw_form_stop\")\r\n case POPUP_MODE.DELETE_OFFER:\r\n return stageTr(\"delete_offer\")\r\n default:\r\n throw new Error(\"Unknown PopupMode: \" + mode)\r\n }\r\n}\r\nconst getListText = (mode, stageTr) => {\r\n switch (mode) {\r\n case POPUP_MODE.OFFER:\r\n case POPUP_MODE.OFFER_SIGN:\r\n return stageTr(\"choose_positions_to_offer\")\r\n case POPUP_MODE.OPERATOR_PLACE:\r\n return stageTr(\"choose_positions_to_offer_operator\")\r\n case POPUP_MODE.WITHDRAW:\r\n case POPUP_MODE.WITHDRAW_SIGN:\r\n return stageTr(\"choose_positions_to_withdraw\")\r\n case POPUP_MODE.OFFER_BREAK:\r\n case POPUP_MODE.WITHDRAW_BREAK:\r\n case POPUP_MODE.DELETE_OFFER:\r\n return Tr(\"choose_position\")\r\n default:\r\n throw new Error(\"Unknown PopupMode: \" + mode)\r\n }\r\n}\r\n\r\n\r\nconst OfferPositionsSelectPopup = (\r\n {\r\n onCancel,\r\n onSuccess,\r\n offerEdit,\r\n popupMode,\r\n additionalOffers = false,\r\n digitalSign,\r\n formSubmit\r\n }) => {\r\n const classes = useStyle();\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n const stageTr = useContext(OfferStageTranslationsContext);\r\n const positions = useMemo(() => offerEdit.positions.filter(x => isSupported(popupMode, x))\r\n .map(x => ({\r\n ...x,\r\n value: \"_\" + x.identity,\r\n label: Tr(\"part_x\", {x: x.order}) + \": \" + x.name,\r\n search: Tr(\"part_x\", {x: x.order}) + \": \" + x.name,\r\n })), [offerEdit, popupMode]);\r\n\r\n const [positionsFiltered, setPositionsFiltered] = useState(positions);\r\n const [searchText, setSearchText] = useState(\"\");\r\n\r\n const onSubmit = (values) => {\r\n let posIds;\r\n if (additionalOffers) {\r\n posIds = positions.filter(x => x.value === values.part).map(x => x.positionId)\r\n } else {\r\n posIds = positions.filter(x => values.parts[x.identity]).map(x => x.positionId)\r\n }\r\n onSuccess(posIds);\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr(\"cancel\"), onCancel, \"outlined\"));\r\n buttons.push(createButton(getButtonText(popupMode, digitalSign, stageTr), handleSubmit, undefined, !positions.length));\r\n return buttons;\r\n }\r\n\r\n const validationSchema = Yup.object().shape({\r\n parts: !additionalOffers ? VS.any().test(\"partSelected\", Tr(\"choose_at_least_one_position\"), (e) => {\r\n const selIndex = Object.keys(e).findIndex(x => e[x] === true);\r\n return selIndex > -1;\r\n }) : VS.any(),\r\n part: additionalOffers ? VS.string(undefined, \"choose_position\") : VS.any()\r\n })\r\n\r\n useDebouncedEffect(() => {\r\n if (!searchText || searchText === \"\") {\r\n if (positions !== positionsFiltered) {\r\n setPositionsFiltered(positions);\r\n }\r\n } else {\r\n const reg = new RegExp(searchText.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"), \"i\");\r\n setPositionsFiltered(positions.filter(pos => pos.search.search(reg) > -1));\r\n }\r\n }, {timeout: 800, ignoreInitialCall: true}, [searchText])\r\n\r\n\r\n return (\r\n )\r\n}\r\n\r\nOfferPositionsSelectPopup.propTypes = {\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n offerEdit: PropTypes.shape({\r\n positions: PropTypes.arrayOf(PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n positionId: PropTypes.number.isRequired,\r\n order: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n })).isRequired\r\n }).isRequired,\r\n digitalSign: PropTypes.bool.isRequired,\r\n popupMode: PropTypes.oneOf(Object.keys(POPUP_MODE)),\r\n additionalOffers: PropTypes.bool\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(OfferPositionsSelectPopup)","import React, {useContext} from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Form from \"components/Form\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport Tr from \"translations/Translations\";\r\nimport Select, {createSelectItem} from \"components/Select\";\r\nimport {ContractorConsorciumTypes, ContractorConsorciumTypesLabel, ContractorConsorciumTypesOnePosition} from \"constants/ContractorConsorciumTypes\";\r\nimport ConsorciumTable from \"./ConsorciumTable\";\r\nimport {ContractorCompanySize, ContractorCompanySizeLabel} from \"constants/ContractorCompanySize\";\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport TextInput from \"components/TextInput\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport {connect} from \"react-redux\";\r\nimport Typography from \"components/Typography\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport SupportModeContext from \"context/SupportModeContext\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\n\r\nfunction OfferCommonDataForm(\r\n {\r\n offerEdit,\r\n section,\r\n onSubmit,\r\n formId,\r\n working,\r\n disabled,\r\n formSubmit\r\n }) {\r\n\r\n const handleSubmit = () => formSubmit[formId]();\r\n const supportMode = useContext(SupportModeContext);\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n\r\n const validationSchema = () => VS.lazy((value) => {\r\n\r\n const shape = {\r\n consorciumType: VS.string(),\r\n companySize: VS.string(),\r\n }\r\n\r\n if (value.consorciumType === ContractorConsorciumTypes.ALL) {\r\n shape.consorciants = VS.arrayRequired(\"consorciant_required\")\r\n }\r\n\r\n if (section.digitalSign)\r\n shape.requiredSignatures = VS.integerMinMax(1, 99)\r\n return VS.object(shape);\r\n })\r\n\r\n\r\n return ()\r\n\r\n}\r\n\r\nOfferCommonDataForm.propTypes = {\r\n offerEdit: PropTypes.shape({\r\n commonData: PropTypes.shape({\r\n consorciumType: PropTypes.string.isRequired,\r\n consorciants: PropTypes.array,\r\n companySize: PropTypes.string,\r\n requiredSignatures: PropTypes.number\r\n })\r\n }),\r\n section: PropTypes.shape({\r\n onePositionMode: PropTypes.bool.isRequired,\r\n digitalSign: PropTypes.bool.isRequired\r\n }).isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n formId: PropTypes.string.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n}\r\nexport default connect((state) => ({\r\n formSubmit: state.form,\r\n}), {})(OfferCommonDataForm);","import React, {useContext, useState} from \"react\"\r\nimport {useParams} from \"react-router\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport OfferCommonDataForm from \"../../../../common/commonData/OfferCommonDataForm\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport {ContractorConsorciumTypes} from \"constants/ContractorConsorciumTypes\";\r\nimport {simpleAlert} from \"libs/AlertNotification\";\r\nimport OfferStageTranslationsContext from \"context/OfferStageTranslationsContext\";\r\nimport scrollTo from \"libs/scrollTo\";\r\n\r\nexport const CONTRACTOR_OFFER_EDIT_COMMON_DATA_FORM_ID = \"cont_offer_edit_common_data\";\r\n\r\nfunction OfferCommonData(\r\n {\r\n offerEdit,\r\n disabled,\r\n section\r\n }) {\r\n const params = useParams();\r\n const [working, setWorking] = useState(false)\r\n const purchaserOfferContext = useContext(PurchaserOfferContext)\r\n const stageTr = useContext(OfferStageTranslationsContext);\r\n\r\n\r\n const onSubmit = (values, actions) => {\r\n setWorking(true);\r\n\r\n DemandOffersOfferService.postSaveCommonData(params.id, params.stageId, purchaserOfferContext?.supplierId, values).then((resp) => {\r\n if (resp) {\r\n if (offerEdit.commonData.consorciumType !== ContractorConsorciumTypes.POSITION && values.consorciumType === ContractorConsorciumTypes.POSITION) {\r\n simpleAlert(stageTr(\"consorcium_on_position_info\"), false);\r\n scrollTo(\"#wrap_offerPositionForm_\" + offerEdit.positions[0].positionId, 60);\r\n }\r\n\r\n actions.resetForm({\r\n values: values\r\n });\r\n }\r\n }).finally(() => setWorking(false))\r\n\r\n\r\n }\r\n\r\n return \r\n}\r\n\r\nOfferCommonData.propTypes = {}\r\nexport default OfferCommonData;","import React from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport {connect} from \"react-redux\";\r\nimport Typography from \"components/Typography\";\r\n\r\nfunction OfferContractorData(\r\n {\r\n offerEdit\r\n }) {\r\n return (<>\r\n {Tr(\"name\")}: {offerEdit.contractor.name}\r\n {Tr(\"contractor_address\")}: {offerEdit.contractor.address ? offerEdit.contractor.address + ',' : ''} {offerEdit.contractor.postCode} {offerEdit.contractor.city}\r\n \r\n {Tr(\"contractor_nip\")}: {offerEdit.contractor.vatin?.prefix} {offerEdit.contractor.vatin?.number}\r\n \r\n {Tr(\"email\")}: {offerEdit.contractor.email}\r\n >)\r\n\r\n}\r\n\r\nOfferContractorData.propTypes = {\r\n offerEdit: PropTypes.shape({\r\n contractor: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n address: PropTypes.string.isRequired,\r\n postCode: PropTypes.string.isRequired,\r\n city: PropTypes.string.isRequired,\r\n email: PropTypes.string.isRequired,\r\n vatin: PropTypes.shape({\r\n prefix: PropTypes.string.isRequired,\r\n number: PropTypes.string.isRequired,\r\n }).isRequired\r\n }).isRequired\r\n }),\r\n}\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(OfferContractorData);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations'\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport {Table, TableBody, TableCell, TableHead, TableRow, Typography} from \"@material-ui/core\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n headColumn: {\r\n borderBottomColor: \"none\",\r\n paddingBottom: 0,\r\n fontSize: \"1.1rem\",\r\n backgroundColor: theme.palette.background.greyBackground,\r\n },\r\n column: {\r\n backgroundColor: theme.palette.background.greyBackground,\r\n width: \"50%\",\r\n padding: theme.spacing(0.5, 2, 0.5, 2),\r\n fontSize: \"0.9rem\",\r\n }\r\n}))\r\n\r\nexport const getVerificationBeforePlaceOfferPopupConfig = (list, positionIds) => ({list, positionIds})\r\n\r\nfunction VerificationBeforePlaceOfferPopup(\r\n {\r\n onCancel,\r\n onConfirm,\r\n config\r\n }) {\r\n const classes = useStyle();\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nVerificationBeforePlaceOfferPopup.propTypes = {\r\n onCancel: PropTypes.func.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n config: PropTypes.shape({\r\n list: PropTypes.array.isRequired,\r\n positionIds: PropTypes.any\r\n })\r\n}\r\n\r\nexport default VerificationBeforePlaceOfferPopup;\r\n","import React, {useReducer, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations'\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport {useParams} from \"react-router\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport {OfferMode} from \"../../../common/constants/OfferMode\";\r\nimport Dropzone from \"components/Dropzone\";\r\nimport UploadService from \"services/UploadService\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport Typography from \"components/Typography\";\r\nimport SingleButton from \"components/popup/components/SingleButton\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport {Table, TableBody, TableCell, TableContainer, TableRow} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport BoldTypography from \"../../../../../../../../../components/BoldTypography\";\r\nimport RouterPath from \"../../../../../../../../../libs/RouterPath\";\r\nimport {StageSections} from \"../../../../constants/StageSections\";\r\nimport DemandOffersService from \"../../../../../../../../../services/DemandOffersService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n\r\n\r\n partColumn: {\r\n width: 70,\r\n padding: theme.spacing(0.5, 2, 0.5, 2),\r\n borderTop: \"solid 2px #333\",\r\n borderBottom: \"none\",\r\n },\r\n nameColumn: {\r\n width: \"50%\",\r\n padding: theme.spacing(0.5, 2, 0.5, 2),\r\n borderTop: \"solid 2px #333\"\r\n },\r\n errorColumn: {\r\n padding: theme.spacing(0.5, 2, 0.5, 2),\r\n borderTop: \"solid 2px #333\",\r\n },\r\n\r\n entryLpColumn: {\r\n borderBottom: \"none\"\r\n },\r\n entryColumn: {\r\n padding: theme.spacing(0.5, 2, 0.5, 2),\r\n },\r\n\r\n step: {\r\n marginTop: theme.spacing(2)\r\n },\r\n fontSize: {\r\n fontSize: \"0.9rem\",\r\n },\r\n bold: {\r\n fontWeight: \"bold\",\r\n },\r\n success: {color: theme.palette.common.success},\r\n error: {color: theme.palette.error.main},\r\n}))\r\n\r\nfunction ImportOfferFormPopup(\r\n {\r\n onClose,\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const [result, setResult] = useState();\r\n const {enqueueErrorSnackbar, enqueueWarningSnackbar, enqueueSuccessSnackbar} = useSnackbar();\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n upload: false\r\n });\r\n\r\n const downloadTemplate = () => {\r\n dispatchIconWorks({type: 'download', works: true})\r\n DemandOffersOfferService.getDownloadOfferTemplate(params.id, params.stageId, undefined, OfferMode.EDIT)\r\n .finally(() => dispatchIconWorks({type: 'download', works: false}))\r\n }\r\n\r\n const handleBrowserFileSelect = (selectedFiles) => {\r\n dispatchIconWorks({type: 'upload', works: true})\r\n setResult(null)\r\n UploadService.upload(selectedFiles[0], () => {\r\n }, Endpoints.DEMAND_OFFERS_OFFER_MODE_TEMPLATE(params.id, params.stageId, OfferMode.EDIT, undefined)).then(response => {\r\n if (isResponseValid(response, enqueueErrorSnackbar)) {\r\n const data = response.result;\r\n if (data.length > 0) {\r\n if (data.some(x => !x.success)) {\r\n setResult(data)\r\n } else {\r\n enqueueSuccessSnackbar(Tr(\"offer_form_import_export_success\"));\r\n DemandOffersService.getStageSection(params.id, params.stageId, StageSections.OFFER_EDIT)\r\n onClose();\r\n const href = RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_OFFER_STAGE_ID, {\r\n id: params.id,\r\n stageId: params.stageId\r\n });\r\n RouterPath.redirectWithoutHistory(href);\r\n }\r\n } else {\r\n enqueueWarningSnackbar(Tr(\"fill_at_least_one_position\"));\r\n }\r\n }\r\n }).catch((e) => {\r\n console.error(e);\r\n }).finally(() => dispatchIconWorks({type: 'upload', works: false}))\r\n\r\n }\r\n\r\n return (\r\n }\r\n >\r\n \r\n\r\n \r\n\r\n {Tr(\"offer_form_download\")}\r\n \r\n \r\n\r\n \r\n\r\n {\r\n !!result && \r\n {Tr(\"offer_form_import_export_summary\")}\r\n \r\n \r\n {\r\n result.map(pos => {\r\n const errors = [];\r\n if (!pos.success && pos.errors) {\r\n Object.keys(pos.errors).forEach(sectionName => {\r\n const section = pos.errors[sectionName];\r\n Object.keys(section).forEach((critName) => {\r\n section[critName].forEach((err) => errors.push({\r\n ...err,\r\n name: critName\r\n }))\r\n })\r\n })\r\n }\r\n return (<>\r\n \r\n {Tr(\"part_x\", {x: pos.ordinalNumber})}\r\n {pos.positionName}\r\n {pos.status}\r\n \r\n {\r\n errors.length > 0 && errors.map(error => (\r\n \r\n \r\n {Tr(\"excel_cell\")}: {error.cellAddress} - {error.name}\r\n \r\n \r\n {error.error}\r\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\nImportOfferFormPopup.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default ImportOfferFormPopup;\r\n","import React, {useContext, useEffect, useRef, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {connect} from \"react-redux\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport GeneralInfoEntry from \"../generalInfo/components/GeneralInfoEntry\";\r\nimport Tr from 'translations/Translations'\r\nimport OfferFiles from \"./components/files/OfferFiles\";\r\nimport OfferEspd from \"./components/espd/OfferEspd\";\r\nimport {ContractorOfferEspdType} from \"constants/ContractorOfferEspdType\";\r\nimport OfferPositions from \"./components/positions/OfferPositions\";\r\nimport NavigationBar from \"components/complex/floatingMenu/NavigationBar\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport createButton from \"components/complex/floatingMenu/createButton\";\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport {\r\n OfferPositionStatusesReadyToDelete,\r\n OfferPositionStatusesReadyToOffering,\r\n OfferPositionStatusesReadyToWithdraw\r\n} from \"../../common/constants/OfferPositionStatusType\";\r\nimport OfferPositionsSelectPopup, {POPUP_MODE} from \"../../common/OfferPositionsSelectPopup\";\r\nimport useSignature from \"hooks/useSignature\";\r\nimport {OfferStatusType} from \"../../common/constants/OfferStatusType\";\r\nimport SignatureIcon from \"components/icon/SignatureIcon\";\r\nimport PropTypes from \"prop-types\";\r\nimport {StageSectionsUrlParams} from \"../../../constants/StageSections\";\r\nimport {OfferMode} from \"../../common/constants/OfferMode\";\r\nimport OfferSectionContext from \"context/OfferSectionContext\";\r\nimport useLoadingScreen from \"hooks/useLoadingScreen\";\r\nimport {simpleAlert} from \"libs/AlertNotification\";\r\nimport {simpleConfirmNoTranslate} from \"libs/ConfirmNotification\";\r\nimport OfferCommonData, {CONTRACTOR_OFFER_EDIT_COMMON_DATA_FORM_ID} from \"./components/commonData/OfferCommonData\";\r\nimport OfferContractorData from \"../../common/contractorData/OfferContractorData\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport SnapshotListPopup, {getConfig} from \"./components/SnapshotListPopup\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport VerificationsPopup, {getVerificationConfig} from \"./components/VerificationsPopup\";\r\nimport MultiButton, {createButton as createMultiButton} from \"components/popup/components/MultiButton\";\r\nimport HistoryIcon from \"@material-ui/icons/History\";\r\nimport useSalesNotification from \"hooks/useSalesNotification\";\r\nimport salesNotificationKeys from \"components/popup/salesNotification/constants/salesNotification.keys\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport HelpTooltip from \"components/HelpTooltip\";\r\nimport VerificationBeforePlaceOfferPopup, {getVerificationBeforePlaceOfferPopupConfig} from \"./components/VerificationBeforePlaceOfferPopup\";\r\nimport OfferStageTranslationsContext from \"context/OfferStageTranslationsContext\";\r\nimport SupportModeContext from \"context/SupportModeContext\";\r\nimport ImportExportIcon from '@material-ui/icons/ImportExport';\r\nimport ImportOfferFormPopup from \"./components/ImportOfferFormPopup\";\r\nimport PrintIcon from '@material-ui/icons/Print';\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n floatingMenu: {\r\n position: 'sticky',\r\n zIndex: theme.zIndex.appBar - 1,\r\n bottom: 0,\r\n marginTop: theme.spacing()\r\n },\r\n menuBarPaper: {\r\n background: theme.palette.background.default,\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction OfferEditPanel(\r\n {\r\n panelRef,\r\n demandHeader,\r\n offerEdit,\r\n formSubmit,\r\n formValues,\r\n }) {\r\n\r\n\r\n const classes = useStyle();\r\n const params = useParams();\r\n const demandId = params.id;\r\n const stageId = params.stageId;\r\n const section = params.section;\r\n const mode = section === StageSectionsUrlParams.OFFER_EDIT ? OfferMode.EDIT : OfferMode.PLACED;\r\n const contextSection = useContext(OfferSectionContext);\r\n const supportMode = useContext(SupportModeContext);\r\n const stageTr = useContext(OfferStageTranslationsContext);\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n const disabled = offerEdit ? offerEdit.disabled : true;\r\n const dataLoading = !offerEdit || !demandHeader;\r\n const positionsRef = useRef();\r\n const {showLoadingScreen, hideLoadingScreen} = useLoadingScreen();\r\n const [choosePositionPopup, setChoosePositionPopup] = useState(null);\r\n const [chooseSnapshotPopup, setChooseSnapshotPopup] = useState(null);\r\n const [importTemplatePopup, setImportTemplatePopup] = useState(false);\r\n const [verifyPopup, setVerifyPopup] = useState(null);\r\n const [verifyBeforePlacePopup, setVerifyBeforePlacePopup] = useState(null);\r\n\r\n useStepperStateCloseValidator(CONTRACTOR_OFFER_EDIT_COMMON_DATA_FORM_ID, () => {\r\n return !(formValues[CONTRACTOR_OFFER_EDIT_COMMON_DATA_FORM_ID + \"_dirty\"] || offerEdit.positions.findIndex(x => !!formValues[\"offerPositionForm_\" + x.positionId + \"_dirty\"]) > -1)\r\n\r\n })\r\n\r\n const {doSignDocContent, breakSigning} = useSignature()\r\n\r\n useEffect(() => {\r\n if (!dataLoading) {\r\n setTimeout((elem) => scrollTo(elem), 100, panelRef.current);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n , [dataLoading])\r\n\r\n useEffect(() => {\r\n DemandOffersOfferService.getOfferEdit(demandId, stageId, mode, purchaserOfferContext?.supplierId, purchaserOfferContext?.preview);\r\n return () => {\r\n DemandOffersOfferService.clearResources(DemandOffersOfferService.OFFER_EDIT);\r\n }\r\n // eslint-disable-next-line\r\n }, [demandId, stageId, section])\r\n\r\n\r\n const placeOffer = () => {\r\n if (formValues[CONTRACTOR_OFFER_EDIT_COMMON_DATA_FORM_ID + \"_dirty\"]) {\r\n simpleAlert(Tr(\"save_form_x\", {name: 'contractor_company_data'}, true), false)\r\n scrollTo(panelRef.current);\r\n } else if (offerEdit.commonData.status !== DemandValidationSectionStatus.OK) {\r\n simpleAlert(Tr(\"fill_missing_data_x\", {name: 'contractor_company_data'}, true), false);\r\n scrollTo(panelRef.current);\r\n } else {\r\n const unsavedPos = offerEdit.positions.find(x => !!formValues[\"offerPositionForm_\" + x.positionId + \"_dirty\"])\r\n if (unsavedPos) {\r\n simpleAlert(Tr(\"save_form_x\", {name: Tr(\"part_x\", {x: unsavedPos.order}) + \": \" + unsavedPos.name}), false)\r\n scrollTo(\"#offerPositionForm_\" + unsavedPos.positionId, 60);\r\n } else {\r\n\r\n const readyPositions = offerEdit.positions.filter(x => OfferPositionStatusesReadyToOffering.includes(x.status));\r\n if (readyPositions.length === 0) {\r\n simpleAlert(\"fill_at_least_one_position\");\r\n scrollTo(positionsRef.current);\r\n } else {\r\n if (contextSection.onePositionMode) {\r\n simpleConfirmNoTranslate(stageTr(!purchaserOfferContext ? \"place_offer_confirm\" : \"place_offer_confirm_operator\"), () => submitChoosePositions([readyPositions[0].positionId]))\r\n } else {\r\n setChoosePositionPopup(purchaserOfferContext ? POPUP_MODE.OPERATOR_PLACE : POPUP_MODE.OFFER);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const withdrawOffer = () => {\r\n if (contextSection.onePositionMode) {\r\n simpleConfirmNoTranslate(stageTr(\"withdraw_offer_confirm\"), () => submitChoosePositionsWithdraw([offerEdit.positions[0].positionId]))\r\n } else {\r\n setChoosePositionPopup(POPUP_MODE.WITHDRAW);\r\n }\r\n }\r\n\r\n const deleteOffer = () => {\r\n if (contextSection.onePositionMode) {\r\n simpleConfirmNoTranslate(stageTr(\"delete_offer_confirm\"), () => submitDeleteOffer([offerEdit.positions[0].positionId]))\r\n } else {\r\n setChoosePositionPopup(POPUP_MODE.DELETE_OFFER);\r\n }\r\n }\r\n\r\n const submitChoosePositions = (positionIds) => {\r\n //walidacja dodania espd\r\n let espdComplete = true;\r\n if (offerEdit.offerEspdType === ContractorOfferEspdType.YES) {\r\n if (offerEdit.espdOnPositions) {\r\n const missing = positionIds.filter(posId => offerEdit.espdFiles.findIndex(f => f.positionId === posId) < 0);\r\n if (missing.length > 0) {\r\n espdComplete = false;\r\n const missingPos = offerEdit.positions.find(x => x.positionId === missing[0]) || {};\r\n simpleAlert(Tr(\"save_espd_form_x\", {name: Tr(\"part_x\", {x: missingPos.order}) + \": \" + missingPos.name}), false)\r\n }\r\n } else {\r\n const espd = offerEdit.espdFiles.findIndex(x => !x.positionId);\r\n if (espd < 0) {\r\n espdComplete = false;\r\n simpleAlert(\"save_espd_form\")\r\n }\r\n }\r\n }\r\n if (espdComplete) {\r\n if (!purchaserOfferContext && contextSection.digitalSign) {\r\n DemandOffersOfferService.verifyBeforePlaceOffer(demandId, stageId, undefined, positionIds).then((resp) => {\r\n if (resp.success && resp.result.length > 0) {\r\n setVerifyBeforePlacePopup(getVerificationBeforePlaceOfferPopupConfig(resp.result, positionIds))\r\n } else {\r\n doSubmitChoosePositions(positionIds)\r\n }\r\n }).catch((e) => {\r\n doSubmitChoosePositions(positionIds);\r\n console.error(e)\r\n })\r\n\r\n } else {\r\n doSubmitChoosePositions(positionIds)\r\n }\r\n }\r\n }\r\n\r\n const doSubmitChoosePositions = (positionIds) => {\r\n if (!purchaserOfferContext && contextSection.digitalSign) {\r\n doSignDocContent(\r\n contextSection.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandOffersOfferService.getDocumentToSign(demandId, stageId, {positionIds, signatureType: sigType});\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n submitPlaceOffer(positionIds, signatureType, signature, signatureFileId)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => contextSection.encryptionEnabled ? contextSection.roundId : null,\r\n )\r\n } else {\r\n submitPlaceOffer(positionIds);\r\n }\r\n\r\n }\r\n\r\n const submitChoosePositionsWithdraw = (positionIds) => {\r\n if (contextSection.digitalSign) {\r\n doSignDocContent(\r\n contextSection.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandOffersOfferService.getDocumentToWithdraw(demandId, stageId, {positionIds, signatureType: sigType});\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n submitWithdrawOffer(positionIds, signatureType, signature, signatureFileId)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => {\r\n const result = await DemandOffersOfferService.requireWithdrawEncryption(demandId, stageId, positionIds);\r\n if (!result) {\r\n breakSigning();\r\n } else if (result.requireEncryption) {\r\n return result.roundId;\r\n } else {\r\n return null;\r\n }\r\n }\r\n )\r\n } else {\r\n submitWithdrawOffer(positionIds);\r\n }\r\n }\r\n\r\n const signOffer = () => {\r\n doSignDocContent(\r\n contextSection.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandOffersOfferService.getDocumentToSign(demandId, stageId, {positionIds: null, signatureType: sigType});\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n showLoadingScreen();\r\n DemandOffersOfferService.signOffer(demandId, stageId, {\r\n positionIds: null,\r\n signatureType,\r\n signature,\r\n signatureFileId\r\n }, contextSection.onePositionMode, stageTr).finally(hideLoadingScreen)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => contextSection.encryptionEnabled ? contextSection.roundId : null,\r\n )\r\n }\r\n\r\n const printOfferPosition = () => {\r\n DemandOffersOfferService.printOfferPosition(demandId, stageId, mode, offerEdit.positions[0].positionId, purchaserOfferContext?.supplierId, purchaserOfferContext?.preview)\r\n }\r\n const signWithdrawOffer = () => {\r\n doSignDocContent(\r\n contextSection.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandOffersOfferService.getDocumentToWithdraw(demandId, stageId, {positionIds: null, signatureType: sigType});\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n showLoadingScreen()\r\n DemandOffersOfferService.signWithdraw(demandId, stageId, {\r\n positionIds: null,\r\n signatureType,\r\n signature,\r\n signatureFileId\r\n }, contextSection.onePositionMode, stageTr)\r\n .finally(hideLoadingScreen)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => {\r\n const result = await DemandOffersOfferService.requireWithdrawEncryption(demandId, stageId, null);\r\n if (!result) {\r\n breakSigning();\r\n } else if (result.requireEncryption) {\r\n return result.roundId;\r\n } else {\r\n return null;\r\n }\r\n }\r\n )\r\n }\r\n\r\n\r\n const submitPlaceOffer = (positionIds, signatureType, signature, signatureFileId) => {\r\n showLoadingScreen();\r\n DemandOffersOfferService.placeOffer(demandId, stageId, purchaserOfferContext?.supplierId, contextSection.onePositionMode, {\r\n positions: positionIds ? positionIds.map(positionId => ({\r\n positionId\r\n })) : null,\r\n signatureType,\r\n signature,\r\n signatureFileId\r\n }, stageTr).finally(hideLoadingScreen)\r\n }\r\n\r\n const submitWithdrawOffer = (positionIds, signatureType, signature, signatureFileId) => {\r\n showLoadingScreen()\r\n DemandOffersOfferService.withdrawOffer(demandId, stageId, {\r\n positions: positionIds ? positionIds.map(positionId => ({\r\n positionId\r\n })) : null,\r\n signatureType,\r\n signature,\r\n signatureFileId\r\n },\r\n contextSection.onePositionMode, stageTr).finally(hideLoadingScreen)\r\n }\r\n\r\n const submitDeleteOffer = (positionIds) => {\r\n showLoadingScreen()\r\n DemandOffersOfferService.deleteOffer(demandId, stageId, positionIds, stageTr).finally(hideLoadingScreen)\r\n }\r\n\r\n const stopSigningOperation = (placingOffer) => {\r\n simpleConfirmNoTranslate(stageTr(placingOffer ? \"sign_offer_form_stop_confirm\" : \"sign_withdraw_form_stop_confirm\"), () => {\r\n showLoadingScreen();\r\n DemandOffersOfferService.stopSigningOperation(demandId, stageId).finally(hideLoadingScreen)\r\n }\r\n )\r\n }\r\n\r\n const navigationBarButtons = () => {\r\n const buttons = [];\r\n if (!disabled && offerEdit.offerStatus === OfferStatusType.NORMAL) {\r\n if (!purchaserOfferContext && !contextSection.onePositionMode && offerEdit.positions.findIndex(x => OfferPositionStatusesReadyToDelete.includes(x.status)) > -1) {\r\n buttons.push(createButton(stageTr(\"delete_offer_position\"), deleteOffer, 'outlined', HighlightOffIcon, undefined, supportMode, false, false));\r\n }\r\n if (!purchaserOfferContext && offerEdit.positions.findIndex(x => OfferPositionStatusesReadyToWithdraw.includes(x.status)) > -1) {\r\n buttons.push(createButton(stageTr(\"withdraw_offer_position\"), withdrawOffer, 'outlined', HighlightOffIcon, undefined, supportMode, false, false));\r\n }\r\n buttons.push(createButton(stageTr(!purchaserOfferContext ? \"place_offer\" : \"place_offer_operator\"), placeOffer, undefined, CheckCircleIcon, 'primary', supportMode || purchaserOfferContext?.preview, false, false));\r\n }\r\n\r\n if (offerEdit.offerStatus === OfferStatusType.WAITING_SIGNATURE) {\r\n buttons.push(createButton(stageTr(\"sign_offer_form_stop\"), () => stopSigningOperation(true), 'outlined', CancelIcon, undefined, supportMode, false, false));\r\n buttons.push(createButton(stageTr(\"sign_offer_form\"), signOffer, undefined, SignatureIcon, 'primary', supportMode, false, false));\r\n\r\n }\r\n if (offerEdit.offerStatus === OfferStatusType.WAITING_WITHDRAW_SIGNATURE) {\r\n buttons.push(createButton(stageTr(\"sign_withdraw_form_stop\"), () => stopSigningOperation(false), \"outlined\", CancelIcon, 'primary', supportMode, false, false));\r\n buttons.push(createButton(stageTr(\"sign_withdraw_form\"), signWithdrawOffer, undefined, SignatureIcon, 'primary', supportMode, false, false));\r\n }\r\n if(purchaserOfferContext?.preview && !offerEdit.passiveOfferForm && offerEdit.positions.length === 1) {\r\n buttons.push(createButton(\"download_print\", printOfferPosition, undefined, PrintIcon, 'primary', false, true, true));\r\n }\r\n\r\n return buttons;\r\n }\r\n\r\n const successPositionsSelectPopup = (positionIds) => {\r\n ((mode, posIds) => {\r\n setChoosePositionPopup(null)\r\n switch (mode) {\r\n case POPUP_MODE.OFFER:\r\n case POPUP_MODE.OPERATOR_PLACE:\r\n submitChoosePositions(posIds);\r\n break;\r\n case POPUP_MODE.WITHDRAW:\r\n submitChoosePositionsWithdraw(posIds);\r\n break;\r\n case POPUP_MODE.DELETE_OFFER:\r\n submitDeleteOffer(posIds);\r\n break;\r\n default:\r\n throw new Error(\"Unsupported popup mode: \" + mode);\r\n\r\n }\r\n })(choosePositionPopup, positionIds)\r\n }\r\n const printVerificationSalesCheck = useSalesNotification(salesNotificationKeys.SIGNATURE_VERIFICATOR, () => setVerifyPopup(getVerificationConfig(demandId, stageId, purchaserOfferContext?.supplierId, RoundType.BASE)));\r\n const getButtons = () => {\r\n const buttons = [];\r\n if (!purchaserOfferContext?.preview) {\r\n if (!!purchaserOfferContext && mode === OfferMode.PLACED) {\r\n buttons.push(createMultiButton(Tr(\"verify_documents\"), printVerificationSalesCheck, undefined, false, undefined, false, SignatureIcon));\r\n }\r\n\r\n if(!purchaserOfferContext && mode === OfferMode.EDIT && !offerEdit.passiveOfferForm) {\r\n buttons.push(createMultiButton(Tr(\"offer_form_import_export\"), () => setImportTemplatePopup(true),\r\n undefined, disabled, undefined, false, ImportExportIcon));\r\n }\r\n\r\n buttons.push(createMultiButton(Tr(\"change_history\"), () => setChooseSnapshotPopup(getConfig(demandId, stageId, purchaserOfferContext?.supplierId, RoundType.BASE)),\r\n \"outlined\", false, undefined, false, HistoryIcon));\r\n\r\n }\r\n return buttons;\r\n }\r\n\r\n return dataLoading ? :\r\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 offerEdit.offerEspdType !== ContractorOfferEspdType.NO &&\r\n \r\n \r\n \r\n }\r\n\r\n \r\n {stageTr(\"offer_documents\")}\r\n {(offerEdit.passiveOfferForm || contextSection.digitalSign) &&\r\n }\r\n >}>\r\n \r\n \r\n\r\n {\r\n !offerEdit.passiveOfferForm &&\r\n \r\n }\r\n\r\n \r\n\r\n {\r\n (!purchaserOfferContext || mode === OfferMode.EDIT) &&
\r\n \r\n
\r\n }\r\n {\r\n !!choosePositionPopup &&
setChoosePositionPopup(null)}\r\n onSuccess={successPositionsSelectPopup}\r\n digitalSign={contextSection.digitalSign}\r\n />\r\n }\r\n {\r\n !!chooseSnapshotPopup && setChooseSnapshotPopup(null)}\r\n config={chooseSnapshotPopup}\r\n />\r\n }\r\n {\r\n !!verifyPopup && setVerifyPopup(null)}\r\n config={verifyPopup}\r\n />\r\n }\r\n {\r\n !!verifyBeforePlacePopup && setVerifyBeforePlacePopup(null)}\r\n onConfirm={(positionIds) => {\r\n setVerifyBeforePlacePopup(null);\r\n doSubmitChoosePositions(positionIds);\r\n }}\r\n config={verifyBeforePlacePopup}\r\n />\r\n }\r\n {\r\n !!importTemplatePopup && setImportTemplatePopup(false)}\r\n />\r\n }\r\n \r\n}\r\n\r\nOfferEditPanel.propTypes = {\r\n sectionId: PropTypes.string.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n offerEdit: state.resources[DemandOffersOfferService.OFFER_EDIT],\r\n formSubmit: state.form,\r\n formValues: state.formValues,\r\n}), {})(OfferEditPanel);","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport ExpansionPanelTitleAvatar from \"components/ExpansionPanelTitleAvatar\";\r\nimport {getSectionVariant} from \"../../constants/StageSections\";\r\n\r\n\r\nfunction OfferExpansionSectionTitle(\r\n {\r\n section\r\n }) {\r\n\r\n return (\r\n \r\n \r\n \r\n {section.name}\r\n \r\n \r\n )\r\n\r\n}\r\n\r\nOfferExpansionSectionTitle.propTypes = {\r\n expanded: PropTypes.bool.isRequired,\r\n section: PropTypes.shape({\r\n section: PropTypes.string.isRequired\r\n }).isRequired\r\n}\r\n\r\nexport default OfferExpansionSectionTitle;","import React, {useContext} from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport ExpansionPanelTitleAvatar from \"components/ExpansionPanelTitleAvatar\";\r\nimport {getSectionVariant} from \"../../../../constants/StageSections\";\r\nimport SignatureIcon from \"components/icon/SignatureIcon\";\r\nimport Button from \"components/Button\";\r\nimport {OfferStatusType} from \"../../../common/constants/OfferStatusType\";\r\nimport CancelIcon from \"@material-ui/icons/Cancel\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport {useParams} from \"react-router\";\r\nimport useLoadingScreen from \"hooks/useLoadingScreen\";\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport {ContractorPasswordState} from \"constants/ContractorPasswordState\";\r\nimport useSignature from \"hooks/useSignature\";\r\nimport {simpleAlert} from \"libs/AlertNotification\";\r\nimport {simpleConfirmNoTranslate} from \"libs/ConfirmNotification\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport OfferStageTranslationsContext from \"context/OfferStageTranslationsContext\";\r\nimport SupportModeContext from \"context/SupportModeContext\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n marginRight: {\r\n marginRight: theme.spacing(2)\r\n },\r\n offerDate: {\r\n marginLeft: theme.spacing(4),\r\n fontStyle: \"italic\"\r\n }\r\n}))\r\n\r\n\r\nfunction OfferEditSectionTitle(\r\n {\r\n section,\r\n expanded\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const demandId = params.id;\r\n const stageId = params.stageId;\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n const supportMode = useContext(SupportModeContext);\r\n const stageTr = useContext(OfferStageTranslationsContext);\r\n const {hideLoadingScreen, showLoadingScreen} = useLoadingScreen();\r\n const {doSignDocContent, breakSigning} = useSignature();\r\n const stopSigningOperation = (e) => {\r\n e.stopPropagation();\r\n simpleConfirmNoTranslate(stageTr(\"sign_offer_form_stop_confirm\"), () => {\r\n showLoadingScreen();\r\n DemandOffersOfferService.stopSigningOperation(demandId, stageId).finally(hideLoadingScreen);\r\n }\r\n )\r\n }\r\n const deleteOffer = (e) => {\r\n e.stopPropagation();\r\n simpleConfirmNoTranslate(stageTr(\"delete_offer_confirm\"), () => {\r\n showLoadingScreen();\r\n DemandOffersOfferService.deleteOffer(demandId, stageId, undefined, stageTr).finally(hideLoadingScreen);\r\n }\r\n )\r\n }\r\n\r\n const signPlaceOffer = (e) => {\r\n e.stopPropagation();\r\n\r\n (async () => {\r\n try {\r\n const passResp = await DemandOffersService.getPasswordStatus(demandId, stageId);\r\n if (isResponseValid((passResp))) {\r\n if (passResp.result.state === ContractorPasswordState.HAS_PASSWORD_STORED) {\r\n signOffer();\r\n } else {\r\n DemandOffersService.openContractorPasswordPopup(() => signOffer, () => null)\r\n }\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n hideLoadingScreen();\r\n })();\r\n\r\n }\r\n\r\n const signOffer = () => {\r\n doSignDocContent(\r\n section.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandOffersOfferService.getDocumentToSign(demandId, stageId, {positionIds: null, signatureType: sigType});\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n showLoadingScreen();\r\n DemandOffersOfferService.signOffer(demandId, stageId, {\r\n positionIds: null,\r\n signatureType,\r\n signature,\r\n signatureFileId\r\n }, section.onePositionMode, stageTr)\r\n .finally(hideLoadingScreen)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => section.roundId\r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {section.name}\r\n \r\n {!!section.offerTmpDate &&\r\n \r\n {stageTr(\"offer_tmp_date\")}: {moment(section.offerTmpDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}\r\n \r\n }\r\n \r\n\r\n {\r\n (!purchaserOfferContext && section.contractorOfferStatus === OfferStatusType.NORMAL && section.offerDate === null && section.offerTmpDate !== null && section.editable) &&\r\n \r\n }\r\n\r\n {(!expanded && section.contractorOfferStatus === OfferStatusType.WAITING_SIGNATURE) &&\r\n \r\n \r\n \r\n
\r\n }\r\n \r\n )\r\n\r\n}\r\n\r\nOfferEditSectionTitle.propTypes = {\r\n expanded: PropTypes.bool.isRequired,\r\n section: PropTypes.shape({\r\n section: PropTypes.string.isRequired\r\n }).isRequired\r\n}\r\n\r\nexport default OfferEditSectionTitle;","import React from 'react'\r\nimport OfferEditPanel from \"../offerEdit/OfferEditPanel\";\r\n\r\nfunction OfferPlacedPanel(\r\n {\r\n panelRef,\r\n sectionId\r\n }) {\r\n return \r\n}\r\n\r\nexport default OfferPlacedPanel;","import React, {useContext} from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport ExpansionPanelTitleAvatar from \"components/ExpansionPanelTitleAvatar\";\r\nimport SignatureIcon from \"components/icon/SignatureIcon\";\r\nimport Button from \"components/Button\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport {useParams} from \"react-router\";\r\nimport useSignature from \"hooks/useSignature\";\r\nimport {getSectionVariant} from \"../../../../constants/StageSections\";\r\nimport {OfferStatusType} from \"../../../common/constants/OfferStatusType\";\r\nimport HighlightOffIcon from \"@material-ui/icons/HighlightOff\";\r\nimport CancelIcon from \"@material-ui/icons/Cancel\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport useLoadingScreen from \"hooks/useLoadingScreen\";\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport {ContractorPasswordState} from \"constants/ContractorPasswordState\";\r\nimport {simpleAlert} from \"libs/AlertNotification\";\r\nimport {simpleConfirmNoTranslate} from \"libs/ConfirmNotification\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport OfferStageTranslationsContext from \"context/OfferStageTranslationsContext\";\r\nimport SupportModeContext from \"context/SupportModeContext\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n marginRight: {\r\n marginRight: theme.spacing(2)\r\n },\r\n offerDate: {\r\n marginLeft: theme.spacing(4),\r\n fontStyle: \"italic\"\r\n }\r\n}))\r\n\r\nfunction OfferPlacedSectionTitle(\r\n {\r\n section,\r\n expanded,\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const demandId = params.id;\r\n const stageId = params.stageId;\r\n const stageTr = useContext(OfferStageTranslationsContext);\r\n const supportMode = useContext(SupportModeContext);\r\n const {doSignDocContent, breakSigning} = useSignature();\r\n const {hideLoadingScreen, showLoadingScreen} = useLoadingScreen();\r\n\r\n const withdrawWholeOffer = (e) => {\r\n e.stopPropagation();\r\n if (section.digitalSign) {\r\n doSignDocContent(\r\n section.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandOffersOfferService.getDocumentToWithdraw(demandId, stageId, {positionIds: null, signatureType: sigType});\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n submitWithdrawOffer(null, signatureType, signature, signatureFileId)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => {\r\n const result = await DemandOffersOfferService.requireWithdrawEncryption(demandId, stageId, null);\r\n if (!result) {\r\n breakSigning();\r\n } else if (result.requireEncryption) {\r\n return result.roundId;\r\n } else {\r\n return null;\r\n }\r\n }\r\n )\r\n } else {\r\n simpleConfirmNoTranslate(stageTr(\"withdraw_offer_confirm\"), submitWithdrawOffer)\r\n\r\n }\r\n }\r\n\r\n const submitWithdrawOffer = (positionIds, signatureType, signature, signatureFileId) => {\r\n showLoadingScreen();\r\n DemandOffersOfferService.withdrawOffer(demandId, stageId, {positionIds, signatureType, signature, signatureFileId}, section.onePositionMode, stageTr)\r\n .finally(hideLoadingScreen)\r\n }\r\n\r\n const stopSigningOperation = (e) => {\r\n e.stopPropagation();\r\n simpleConfirmNoTranslate(stageTr(\"sign_withdraw_form_stop_confirm\"), () => {\r\n showLoadingScreen();\r\n DemandOffersOfferService.stopSigningOperation(demandId, stageId).finally(hideLoadingScreen)\r\n }\r\n )\r\n }\r\n\r\n const signWithdrawOffer = (e) => {\r\n e.stopPropagation();\r\n\r\n (async () => {\r\n showLoadingScreen();\r\n const result = await DemandOffersOfferService.requireWithdrawEncryption(demandId, stageId, null);\r\n if (!result) {\r\n hideLoadingScreen();\r\n } else if (result.requireEncryption) {\r\n try {\r\n const passResp = await DemandOffersService.getPasswordStatus(demandId, stageId);\r\n if (isResponseValid((passResp))) {\r\n if (passResp.result.state === ContractorPasswordState.HAS_PASSWORD_STORED) {\r\n submitSignWithdrawOffer(result.roundId);\r\n } else {\r\n DemandOffersService.openContractorPasswordPopup(() => submitSignWithdrawOffer(result.roundId), () => null)\r\n }\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n hideLoadingScreen();\r\n } else {\r\n submitSignWithdrawOffer(null);\r\n hideLoadingScreen();\r\n }\r\n\r\n\r\n })()\r\n }\r\n\r\n const submitSignWithdrawOffer = (encryptionRoundId) => {\r\n\r\n doSignDocContent(\r\n section.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandOffersOfferService.getDocumentToWithdraw(demandId, stageId, {positionIds: null, signatureType: sigType});\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n showLoadingScreen()\r\n DemandOffersOfferService.signWithdraw(demandId, stageId, {\r\n positionIds: null,\r\n signatureType,\r\n signature,\r\n signatureFileId\r\n }, section.onePositionMode, stageTr)\r\n .finally(hideLoadingScreen)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => encryptionRoundId\r\n )\r\n\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {section.name}\r\n \r\n {!!section.offerDate &&\r\n \r\n {stageTr(\"offer_date\")}: {moment(section.offerDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}\r\n \r\n }\r\n \r\n {(section.status !== DemandValidationSectionStatus.DISABLED && !section.offerCollectionEnded && section.contractorOfferStatus === OfferStatusType.WAITING_WITHDRAW_SIGNATURE) && <>\r\n \r\n \r\n >\r\n }\r\n {(section.status !== DemandValidationSectionStatus.DISABLED && !section.offerCollectionEnded && section.contractorOfferStatus === OfferStatusType.NORMAL) &&\r\n \r\n }\r\n \r\n )\r\n\r\n}\r\n\r\nOfferPlacedSectionTitle.propTypes = {\r\n expanded: PropTypes.bool.isRequired,\r\n section: PropTypes.shape({\r\n section: PropTypes.string.isRequired\r\n }).isRequired\r\n}\r\n\r\nexport default OfferPlacedSectionTitle;","import React from \"react\"\r\nimport OfferCommonDataForm from \"../../../../common/commonData/OfferCommonDataForm\";\r\n\r\nconst CONTRACTOR_ADDITIONAL_OFFER_EDIT_COMMON_DATA_FORM_ID = \"cont_additional_offer_edit_common_data\";\r\n\r\nfunction AdditionalOfferCommonData(\r\n {\r\n offerEdit,\r\n section\r\n }) {\r\n\r\n return void 0}\r\n formId={CONTRACTOR_ADDITIONAL_OFFER_EDIT_COMMON_DATA_FORM_ID}\r\n working={false}\r\n disabled\r\n />\r\n}\r\n\r\nAdditionalOfferCommonData.propTypes = {}\r\nexport default AdditionalOfferCommonData;","import React from 'react'\r\nimport {connect} from 'react-redux'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport PropTypes from 'prop-types'\r\nimport moment from \"libs/moment\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport DateFormats from \"constants/DateFormats\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n disabledEmpty: {\r\n fontStyle: 'italic'\r\n },\r\n textField: {\r\n wordBreak: \"break-word\",\r\n whiteSpace: 'pre-line',\r\n marginBottom: theme.spacing(2)\r\n }\r\n}));\r\n\r\n\r\nfunction EnvelopeOfferDatePopup(\r\n {\r\n positions,\r\n onCancel,\r\n onSubmit,\r\n formSubmit,\r\n }) {\r\n\r\n const classes = useStyle();\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n return (\r\n }\r\n >\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nEnvelopeOfferDatePopup.propTypes = {\r\n positions: PropTypes.arrayOf(PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n endDate: PropTypes.string.isRequired,\r\n startDate: PropTypes.string.isRequired,\r\n offerDate: PropTypes.string.isRequired,\r\n })).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(EnvelopeOfferDatePopup);","import React, {useContext, useEffect, useRef, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {connect} from \"react-redux\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport GeneralInfoEntry from \"../generalInfo/components/GeneralInfoEntry\";\r\nimport Tr from 'translations/Translations'\r\nimport {ContractorOfferEspdType} from \"constants/ContractorOfferEspdType\";\r\nimport NavigationBar from \"components/complex/floatingMenu/NavigationBar\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport createButton from \"components/complex/floatingMenu/createButton\";\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport {OfferPositionStatusesReadyToOffering, OfferPositionStatusType} from \"../../common/constants/OfferPositionStatusType\";\r\nimport OfferPositionsSelectPopup, {POPUP_MODE} from \"../../common/OfferPositionsSelectPopup\";\r\nimport useSignature from \"hooks/useSignature\";\r\nimport SignatureIcon from \"components/icon/SignatureIcon\";\r\nimport {StageSectionsUrlParams} from \"../../../constants/StageSections\";\r\nimport {OfferMode} from \"../../common/constants/OfferMode\";\r\nimport OfferSectionContext from \"context/OfferSectionContext\";\r\nimport useLoadingScreen from \"hooks/useLoadingScreen\";\r\nimport {simpleAlert} from \"libs/AlertNotification\";\r\nimport {simpleConfirmNoTranslate} from \"libs/ConfirmNotification\";\r\nimport DemandAdditionalOffersOfferService from \"services/DemandAdditionalOffersOfferService\";\r\nimport AdditionalOfferCommonData from \"./components/commonData/AdditionalOfferCommonData\";\r\nimport OfferPositions from \"../offerEdit/components/positions/OfferPositions\";\r\nimport OfferEspd from \"../offerEdit/components/espd/OfferEspd\";\r\nimport OfferFiles from \"../offerEdit/components/files/OfferFiles\";\r\nimport OfferContractorData from \"../../common/contractorData/OfferContractorData\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport EnvelopeOfferDatePopup from \"./components/EnvelopeOfferDatePopup\";\r\nimport {OfferStatusType} from \"../../common/constants/OfferStatusType\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport MultiButton, {createButton as createMultiButton} from \"components/popup/components/MultiButton\";\r\nimport SnapshotListPopup, {getConfig} from \"../offerEdit/components/SnapshotListPopup\";\r\nimport HistoryIcon from \"@material-ui/icons/History\";\r\nimport VerificationsPopup, {getVerificationConfig} from \"../offerEdit/components/VerificationsPopup\";\r\nimport useSalesNotification from \"hooks/useSalesNotification\";\r\nimport salesNotificationKeys from \"components/popup/salesNotification/constants/salesNotification.keys\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport {CONTRACTOR_OFFER_EDIT_COMMON_DATA_FORM_ID} from \"../offerEdit/components/commonData/OfferCommonData\";\r\nimport HelpTooltip from \"components/HelpTooltip\";\r\nimport VerificationBeforePlaceOfferPopup, {getVerificationBeforePlaceOfferPopupConfig} from \"../offerEdit/components/VerificationBeforePlaceOfferPopup\";\r\nimport OfferStageTranslationsContext from \"context/OfferStageTranslationsContext\";\r\nimport SupportModeContext from \"context/SupportModeContext\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n floatingMenu: {\r\n position: 'sticky',\r\n zIndex: theme.zIndex.appBar - 1,\r\n bottom: 0,\r\n marginTop: theme.spacing()\r\n },\r\n menuBarPaper: {\r\n background: theme.palette.background.default,\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction AdditionalOfferEditPanel(\r\n {\r\n panelRef,\r\n demandHeader,\r\n additionalOfferEdit,\r\n formSubmit,\r\n formValues,\r\n }) {\r\n\r\n const classes = useStyle();\r\n const params = useParams();\r\n const demandId = params.id;\r\n const stageId = params.stageId;\r\n const section = params.section;\r\n const mode = section === StageSectionsUrlParams.ADDITIONAL_OFFER_EDIT ? OfferMode.EDIT : OfferMode.PLACED;\r\n const contextSection = useContext(OfferSectionContext);\r\n const supportMode = useContext(SupportModeContext);\r\n const stageTr = useContext(OfferStageTranslationsContext);\r\n const realOnePositionMode = contextSection.onePositionMode || !additionalOfferEdit || additionalOfferEdit.positions.length === 1;\r\n const purchaserOfferContext = useContext(PurchaserOfferContext)\r\n const disabled = additionalOfferEdit ? additionalOfferEdit.disabled : true;\r\n const dataLoading = !additionalOfferEdit || !demandHeader;\r\n const positionsRef = useRef();\r\n const {showLoadingScreen, hideLoadingScreen} = useLoadingScreen();\r\n const [choosePositionPopup, setChoosePositionPopup] = useState(null);\r\n const [chooseEnvelopeOfferDatePopup, setChooseEnvelopeOfferDatePopup] = useState(null);\r\n const [chooseSnapshotPopup, setChooseSnapshotPopup] = useState(null);\r\n const [verifyPopup, setVerifyPopup] = useState(null);\r\n const [verifyBeforePlacePopup, setVerifyBeforePlacePopup] = useState(null);\r\n\r\n const {doSignDocContent, breakSigning} = useSignature();\r\n\r\n useStepperStateCloseValidator(CONTRACTOR_OFFER_EDIT_COMMON_DATA_FORM_ID, () => {\r\n return !(additionalOfferEdit.positions.findIndex(x => !!formValues[\"offerPositionForm_\" + x.positionId + \"_dirty\"]) > -1)\r\n })\r\n\r\n useEffect(() => {\r\n if (!dataLoading) {\r\n setTimeout((elem) => scrollTo(elem), 100, panelRef.current);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n , [dataLoading])\r\n\r\n useEffect(() => {\r\n DemandAdditionalOffersOfferService.getOfferEdit(demandId, stageId, mode, purchaserOfferContext?.supplierId);\r\n return () => {\r\n DemandAdditionalOffersOfferService.clearResources(DemandAdditionalOffersOfferService.ADDITIONAL_OFFER_EDIT);\r\n }\r\n // eslint-disable-next-line\r\n }, [demandId, stageId, section])\r\n\r\n\r\n const placeOffer = () => {\r\n if (additionalOfferEdit.commonData.status !== DemandValidationSectionStatus.OK) {\r\n simpleAlert(Tr(\"fill_missing_data_x\", {name: 'contractor_company_data'}, true), false);\r\n scrollTo(panelRef.current);\r\n } else {\r\n const unsavedPos = additionalOfferEdit.positions.find(x => !!formValues[\"offerPositionForm_\" + x.positionId + \"_dirty\"])\r\n if (unsavedPos) {\r\n simpleAlert(Tr(\"save_form_x\", {name: Tr(\"part_x\", {x: unsavedPos.order}) + \": \" + unsavedPos.name}), false)\r\n scrollTo(\"#offerPositionForm_\" + unsavedPos.positionId, 60);\r\n } else {\r\n\r\n const readyPositions = additionalOfferEdit.positions.filter(x => OfferPositionStatusesReadyToOffering.includes(x.status));\r\n if (readyPositions.length === 0) {\r\n simpleAlert(\"fill_at_least_one_position\");\r\n scrollTo(positionsRef.current);\r\n } else {\r\n if (realOnePositionMode) {\r\n simpleConfirmNoTranslate(stageTr(!purchaserOfferContext ? \"place_offer_confirm\" : \"place_offer_confirm_operator\"), () => submitChoosePositions([readyPositions[0].positionId]))\r\n } else {\r\n setChoosePositionPopup(purchaserOfferContext ? POPUP_MODE.OPERATOR_PLACE : POPUP_MODE.OFFER);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const withdrawOffer = () => {\r\n if (realOnePositionMode) {\r\n simpleConfirmNoTranslate(stageTr(\"withdraw_offer_confirm\"), () => submitChoosePositionsWithdraw([additionalOfferEdit.positions[0].positionId]))\r\n } else {\r\n setChoosePositionPopup(POPUP_MODE.WITHDRAW);\r\n }\r\n }\r\n\r\n const submitChoosePositions = (positionIds) => {\r\n if (!purchaserOfferContext && contextSection.digitalSign) {\r\n DemandAdditionalOffersOfferService.verifyBeforePlaceOffer(demandId, stageId, undefined, positionIds).then((resp) => {\r\n if (resp.success && resp.result.length > 0) {\r\n setVerifyBeforePlacePopup(getVerificationBeforePlaceOfferPopupConfig(resp.result, positionIds))\r\n } else {\r\n doSubmitChoosePositions(positionIds)\r\n }\r\n }).catch((e) => {\r\n doSubmitChoosePositions(positionIds);\r\n console.error(e)\r\n })\r\n\r\n } else {\r\n doSubmitChoosePositions(positionIds)\r\n }\r\n }\r\n const doSubmitChoosePositions = (positionIds) => {\r\n if (!purchaserOfferContext && contextSection.digitalSign) {\r\n doSignDocContent(\r\n contextSection.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandAdditionalOffersOfferService.getDocumentToSign(demandId, stageId, {positionIds, signatureType: sigType});\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n submitPlaceOffer(positionIds[0], signatureType, signature, signatureFileId)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => contextSection.encryptionEnabled ? contextSection.roundId : null,\r\n )\r\n } else {\r\n submitPlaceOffer(positionIds[0]);\r\n }\r\n }\r\n\r\n const submitChoosePositionsWithdraw = (positionIds) => {\r\n if (contextSection.digitalSign) {\r\n doSignDocContent(\r\n contextSection.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandAdditionalOffersOfferService.getDocumentToWithdraw(demandId, stageId, {positionIds, signatureType: sigType});\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n submitWithdrawOffer(positionIds, signatureType, signature, signatureFileId)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => {\r\n const result = await DemandAdditionalOffersOfferService.requireWithdrawEncryption(demandId, stageId, positionIds);\r\n if (!result) {\r\n breakSigning();\r\n } else if (result.requireEncryption) {\r\n return result.roundId;\r\n } else {\r\n return null;\r\n }\r\n }\r\n )\r\n } else {\r\n submitWithdrawOffer(positionIds);\r\n }\r\n }\r\n\r\n const signOffer = () => {\r\n if (realOnePositionMode) {\r\n doSignOffer([additionalOfferEdit.positions[0].positionId])\r\n } else {\r\n setChoosePositionPopup(POPUP_MODE.OFFER_SIGN);\r\n }\r\n }\r\n\r\n const doSignOffer = (positionIds) => {\r\n doSignDocContent(\r\n contextSection.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandAdditionalOffersOfferService.getDocumentToSign(demandId, stageId, {\r\n positionIds: positionIds,\r\n signatureType: sigType\r\n });\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n showLoadingScreen();\r\n DemandAdditionalOffersOfferService.signOffer(demandId, stageId, {\r\n positions: [{positionId: positionIds[0]}],\r\n signatureType,\r\n signature,\r\n signatureFileId\r\n }, realOnePositionMode, stageTr).finally(hideLoadingScreen)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => contextSection.encryptionEnabled ? contextSection.roundId : null,\r\n )\r\n }\r\n\r\n\r\n const deleteOffer = () => {\r\n if (realOnePositionMode) {\r\n doDeleteOffer([additionalOfferEdit.positions[0].positionId])\r\n } else {\r\n setChoosePositionPopup(POPUP_MODE.DELETE_OFFER)\r\n }\r\n\r\n }\r\n\r\n const doDeleteOffer = (positionId) => {\r\n simpleConfirmNoTranslate(stageTr(\"delete_offer_confirm\"), () => {\r\n showLoadingScreen();\r\n DemandAdditionalOffersOfferService.deleteOffer(demandId, stageId, positionId).finally(hideLoadingScreen)\r\n }\r\n )\r\n }\r\n\r\n\r\n const signWithdrawOffer = () => {\r\n if (realOnePositionMode) {\r\n doSignWithdrawOffer([additionalOfferEdit.positions[0].positionId])\r\n } else {\r\n setChoosePositionPopup(POPUP_MODE.WITHDRAW_SIGN)\r\n }\r\n\r\n }\r\n\r\n const doSignWithdrawOffer = (positionIds) => {\r\n\r\n doSignDocContent(\r\n contextSection.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandAdditionalOffersOfferService.getDocumentToWithdraw(demandId, stageId, {\r\n positionIds: positionIds,\r\n signatureType: sigType\r\n });\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n showLoadingScreen()\r\n DemandAdditionalOffersOfferService.signWithdraw(demandId, stageId, {\r\n positions: [{positionId: positionIds[0]}],\r\n signatureType,\r\n signature,\r\n signatureFileId\r\n }, realOnePositionMode, stageTr)\r\n .finally(hideLoadingScreen)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => {\r\n const result = await DemandAdditionalOffersOfferService.requireWithdrawEncryption(demandId, stageId, null);\r\n if (!result) {\r\n breakSigning();\r\n } else if (result.requireEncryption) {\r\n return result.roundId;\r\n } else {\r\n return null;\r\n }\r\n }\r\n )\r\n }\r\n\r\n\r\n const submitPlaceOffer = (positionId, signatureType, signature, signatureFileId, envelopeOfferDate) => {\r\n\r\n if (purchaserOfferContext && additionalOfferEdit.envelopeOffer && !envelopeOfferDate) {\r\n setChooseEnvelopeOfferDatePopup({\r\n positionId, signatureType, signature, signatureFileId,\r\n position: additionalOfferEdit.positions.find(x => x.positionId === positionId)\r\n })\r\n return;\r\n }\r\n showLoadingScreen();\r\n DemandAdditionalOffersOfferService.placeOffer(demandId, stageId, purchaserOfferContext?.supplierId, realOnePositionMode, {\r\n positions: [{positionId, envelopeOfferDate}],\r\n signatureType,\r\n signature,\r\n signatureFileId\r\n }, stageTr).finally(hideLoadingScreen)\r\n }\r\n\r\n const submitWithdrawOffer = (positionIds, signatureType, signature, signatureFileId) => {\r\n showLoadingScreen()\r\n DemandAdditionalOffersOfferService.withdrawOffer(demandId, stageId, {\r\n positions: positionIds.map(positionId => ({positionId})),\r\n signatureType,\r\n signature,\r\n signatureFileId\r\n }, realOnePositionMode, stageTr).catch(() => {\r\n })\r\n .finally(hideLoadingScreen)\r\n }\r\n\r\n\r\n const stopSigningOperation = (placingOffer) => {\r\n if (realOnePositionMode) {\r\n doStopSigningOperation(placingOffer, [additionalOfferEdit.positions[0].positionId])\r\n } else if (placingOffer) {\r\n setChoosePositionPopup(POPUP_MODE.OFFER_BREAK);\r\n } else {\r\n setChoosePositionPopup(POPUP_MODE.WITHDRAW_BREAK);\r\n }\r\n }\r\n\r\n const doStopSigningOperation = (placingOffer, positionId) => {\r\n simpleConfirmNoTranslate(stageTr(placingOffer ? \"sign_offer_form_stop_confirm\" : \"sign_withdraw_form_stop_confirm\"), () => {\r\n showLoadingScreen();\r\n DemandAdditionalOffersOfferService.stopSigningOperation(demandId, stageId, positionId).finally(hideLoadingScreen)\r\n }\r\n )\r\n }\r\n\r\n const navigationBarButtons = () => {\r\n const buttons = [];\r\n\r\n if (!purchaserOfferContext && additionalOfferEdit.positions.findIndex(x => x.contractorOfferStatus === OfferStatusType.NORMAL && x.offerDate === null && x.offerTmpDate !== null) > -1) {\r\n buttons.push(createButton(stageTr(\"delete_offer\"), deleteOffer, \"outlined\", DeleteIcon, 'primary', supportMode, false, false));\r\n }\r\n\r\n if (!purchaserOfferContext && !(additionalOfferEdit.passiveOfferForm && mode === OfferMode.PLACED) && additionalOfferEdit.positions.findIndex(x => x.status === OfferPositionStatusType.PLACED) > -1) {\r\n buttons.push(createButton(stageTr(\"withdraw_offer_position\"), withdrawOffer, undefined, HighlightOffIcon, 'primary', supportMode, false, false));\r\n }\r\n\r\n if (!disabled) {\r\n buttons.push(createButton(stageTr(!purchaserOfferContext ? \"place_offer\" : \"place_offer_operator\"), placeOffer, undefined, CheckCircleIcon, 'primary', supportMode, false, false));\r\n }\r\n\r\n if (additionalOfferEdit.positions.findIndex(x => x.status === OfferPositionStatusType.WAITING_SIGNATURE) > -1) {\r\n buttons.push(createButton(stageTr(\"sign_offer_form_stop\"), () => stopSigningOperation(true), 'outlined', CancelIcon, undefined, supportMode, false, false));\r\n buttons.push(createButton(stageTr(\"sign_offer_form\"), signOffer, undefined, SignatureIcon, 'primary', supportMode, false, false));\r\n\r\n }\r\n if (additionalOfferEdit.positions.findIndex(x => x.status === OfferPositionStatusType.WAITING_WITHDRAW_SIGNATURE) > -1) {\r\n buttons.push(createButton(stageTr(\"sign_withdraw_form_stop\"), () => stopSigningOperation(false), \"outlined\", CancelIcon, 'primary', supportMode, false, false));\r\n buttons.push(createButton(stageTr(\"sign_withdraw_form\"), signWithdrawOffer, undefined, SignatureIcon, 'primary', supportMode, false, false));\r\n }\r\n\r\n\r\n return buttons;\r\n }\r\n\r\n const successPositionsSelectPopup = (positionIds) => {\r\n ((mode, posIds) => {\r\n setChoosePositionPopup(null)\r\n switch (mode) {\r\n case POPUP_MODE.OFFER:\r\n case POPUP_MODE.OPERATOR_PLACE:\r\n submitChoosePositions(posIds);\r\n break;\r\n case POPUP_MODE.OFFER_SIGN:\r\n doSignOffer(posIds);\r\n break;\r\n case POPUP_MODE.OFFER_BREAK:\r\n doStopSigningOperation(true, posIds);\r\n break;\r\n case POPUP_MODE.WITHDRAW:\r\n submitChoosePositionsWithdraw(posIds);\r\n break;\r\n case POPUP_MODE.WITHDRAW_SIGN:\r\n doSignWithdrawOffer(posIds);\r\n break;\r\n case POPUP_MODE.WITHDRAW_BREAK:\r\n doStopSigningOperation(false, posIds);\r\n break;\r\n case POPUP_MODE.DELETE_OFFER:\r\n doDeleteOffer(posIds);\r\n break;\r\n default:\r\n throw new Error(\"Unsupported popup mode: \" + mode);\r\n\r\n }\r\n })(choosePositionPopup, positionIds)\r\n }\r\n const printVerificationSalesCheck = useSalesNotification(salesNotificationKeys.SIGNATURE_VERIFICATOR, () => setVerifyPopup(getVerificationConfig(demandId, stageId, purchaserOfferContext?.supplierId, RoundType.ADDITIONAL_OFFERS, additionalOfferEdit.positions[0].positionId)));\r\n const getButtons = () => {\r\n const buttons = [];\r\n if (contextSection.additionalOfferAltMode) {\r\n if (!!purchaserOfferContext && mode === OfferMode.PLACED) {\r\n buttons.push(createMultiButton(Tr(\"verify_documents\"), printVerificationSalesCheck,\r\n undefined, false, undefined, false, SignatureIcon));\r\n }\r\n buttons.push(createMultiButton(Tr(\"change_history\"), () => setChooseSnapshotPopup(getConfig(demandId, stageId, purchaserOfferContext?.supplierId, RoundType.ADDITIONAL_OFFERS, additionalOfferEdit.positions[0].positionId)),\r\n \"outlined\", false, undefined, false, HistoryIcon));\r\n }\r\n return buttons;\r\n }\r\n\r\n return dataLoading ? : additionalOfferEdit.positions.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 additionalOfferEdit.offerEspdType !== ContractorOfferEspdType.NO &&\r\n \r\n \r\n \r\n }\r\n\r\n {\r\n (!purchaserOfferContext && mode === OfferMode.EDIT) &&\r\n {Tr(\"additional_offer_supplier_info\")}\r\n }\r\n\r\n \r\n {stageTr(\"offer_documents\")}\r\n { (additionalOfferEdit.passiveOfferForm || contextSection.digitalSign) && }\r\n >}>\r\n \r\n \r\n\r\n {!(additionalOfferEdit.passiveOfferForm && mode === OfferMode.EDIT) &&\r\n \r\n }\r\n\r\n \r\n {\r\n (!purchaserOfferContext || mode === OfferMode.EDIT) &&\r\n
\r\n \r\n
\r\n }\r\n {\r\n !!choosePositionPopup &&
setChoosePositionPopup(null)}\r\n onSuccess={successPositionsSelectPopup}\r\n digitalSign={contextSection.digitalSign}\r\n additionalOffers={!contextSection.additionalOfferAltMode}\r\n />\r\n }\r\n {\r\n !!chooseEnvelopeOfferDatePopup && setChooseEnvelopeOfferDatePopup(null)}\r\n onSubmit={(values) => {\r\n setChooseEnvelopeOfferDatePopup(null);\r\n submitPlaceOffer(chooseEnvelopeOfferDatePopup.positionId, chooseEnvelopeOfferDatePopup.signatureType, chooseEnvelopeOfferDatePopup.signature, chooseEnvelopeOfferDatePopup.signatureFileId, values.envelopeOfferDate)\r\n }}\r\n />\r\n }\r\n {\r\n !!chooseSnapshotPopup && setChooseSnapshotPopup(null)}\r\n config={chooseSnapshotPopup}\r\n />\r\n }\r\n {\r\n !!verifyPopup && setVerifyPopup(null)}\r\n config={verifyPopup}\r\n />\r\n }\r\n {\r\n !!verifyBeforePlacePopup && setVerifyBeforePlacePopup(null)}\r\n onConfirm={(positionIds) => {\r\n setVerifyBeforePlacePopup(null);\r\n doSubmitChoosePositions(positionIds);\r\n }}\r\n config={verifyBeforePlacePopup}\r\n />\r\n }\r\n \r\n}\r\n\r\nAdditionalOfferEditPanel.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n additionalOfferEdit: state.resources[DemandAdditionalOffersOfferService.ADDITIONAL_OFFER_EDIT],\r\n formSubmit: state.form,\r\n formValues: state.formValues,\r\n}), {})(AdditionalOfferEditPanel);","import React from 'react'\r\nimport AdditionalOfferEditPanel from \"../additionalOfferEdit/AdditionalOfferEditPanel\";\r\n\r\nfunction AdditionalOfferPlacedPanel(\r\n {\r\n panelRef,\r\n sectionId\r\n }) {\r\n return \r\n}\r\n\r\nexport default AdditionalOfferPlacedPanel;","import Tr from 'translations/Translations';\r\nimport {createSelectItem} from \"components/Select\";\r\n\r\nexport const AuctionRule = {\r\n ENGLISH: \"eng\",\r\n DYNAMIC: \"dyn\",\r\n JAPANESE: \"jap\",\r\n DUTCH: \"den\"\r\n}\r\nconst _TR_PREFIX = 'auction_rule_';\r\n\r\nexport const AuctionRuleLabel = (status) => (Tr(_TR_PREFIX + status));\r\n\r\nexport const AuctionTypeRuleItems = (available) => available.map(rule => createSelectItem(rule, AuctionRuleLabel(rule)));\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const AuctionStatus = {\r\n INCOMPLETE: \"INCOMPLETE\",\r\n PENDING: \"PENDING\",\r\n OPEN: \"OPEN\",\r\n PAUSED: \"PAUSED\",\r\n FINISHED: \"FINISHED\",\r\n ACCEPTED: \"ACCEPTED\",\r\n CANCELLED: \"CANCELLED\"\r\n}\r\nconst _TR_PREFIX = 'auction_status_';\r\n\r\nexport const AuctionStatusLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n","import Tr from 'translations/Translations';\r\nimport {createSelectItem} from \"components/Select\";\r\n\r\nexport const AuctionType = {\r\n TEST: \"TEST\",\r\n PROD: \"PROD\"\r\n}\r\nconst _TR_PREFIX = 'auction_type_';\r\n\r\nexport const AuctionTypeLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n\r\nexport const AuctionTypeItems = [\r\n createSelectItem(AuctionType.PROD, AuctionTypeLabel(AuctionType.PROD)),\r\n createSelectItem(AuctionType.TEST, AuctionTypeLabel(AuctionType.TEST))\r\n]\r\n\r\n","import previewFile from \"./previewFile\";\r\n\r\nexport default (url) => previewFile({url});","import React, {useState} from \"react\";\r\nimport {TableCell, TableRow, Typography} from \"@material-ui/core\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport WorkableIconForwardButton from \"components/button/WorkableIconForwardButton\";\r\nimport WorkableIconConfirmButton from \"components/button/WorkableIconConfirmButton\";\r\nimport HelpOutlineIcon from '@material-ui/icons/HelpOutline';\r\nimport {AuctionRule, AuctionRuleLabel} from \"constants/AuctionRule\";\r\nimport {AuctionStatusLabel} from \"constants/AuctionStatus\";\r\nimport {AuctionTypeLabel} from \"constants/AuctionType\";\r\nimport TooltipIcon from \"components/icon/TooltipIcon\";\r\nimport Tr from \"translations/Translations\";\r\nimport {getUserFullNameWithEmail} from \"libs/userNameGetter\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport openInNewTab from \"libs/openInNewTab\";\r\n\r\n\r\nfunction TooltipRow(\r\n {\r\n label,\r\n value\r\n }) {\r\n return {Tr(label)}: {value}\r\n}\r\n\r\n\r\nfunction AuctionRow(\r\n {\r\n auction,\r\n handleAssignToAuction,\r\n classes,\r\n }) {\r\n\r\n const [confirmOpened, setConfirmOpened] = useState(false);\r\n\r\n return (\r\n {auction.auctionId}\r\n {auction.name}\r\n {AuctionTypeLabel(auction.type)}\r\n {getUserFullNameWithEmail(auction.user)}\r\n {moment(auction.startDate).format(DateFormats.DATETIME_FORMAT)}\r\n {AuctionStatusLabel(auction.status)}\r\n \r\n \r\n \r\n \r\n \r\n {[AuctionRule.JAPANESE, AuctionRule.DUTCH].includes(auction.rule) && }\r\n \r\n >}>\r\n \r\n \r\n {!!auction.user && !!auction.url &&\r\n openInNewTab(auction.url)}/>\r\n }\r\n {!auction.user &&\r\n setConfirmOpened(true)}/>\r\n }\r\n {!auction.user &&\r\n setConfirmOpened(false)}\r\n onConfirm={() => handleAssignToAuction(auction.auctionId)}\r\n open={confirmOpened}\r\n />\r\n }\r\n \r\n )\r\n}\r\n\r\nAuctionRow.propTypes = {};\r\n\r\nexport default AuctionRow;\r\n\r\n","import React from \"react\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableContainer, TableHead, TableRow} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport AuctionRow from \"./AuctionRow\";\r\nimport {AuctionType} from \"constants/AuctionType\";\r\nimport {AuctionStatus} from \"constants/AuctionStatus\";\r\nimport DemandOffersAuctionService from \"services/DemandOffersAuctionService\";\r\nimport reduxStore from \"redux/store\";\r\nimport {setResource, setSaveStatusInfo, setSaveStatusError} from \"redux/actions\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n idColumn: {\r\n width: 100,\r\n },\r\n userColumn: {\r\n width: 200,\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n customWidth: {\r\n maxWidth: 500\r\n }\r\n}));\r\n\r\nfunction AuctionsTable(\r\n {\r\n demandId,\r\n stageId,\r\n auctions\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const assignToAuction = (auctionId) => {\r\n DemandOffersAuctionService.assignToAuction(demandId, stageId, auctionId).then(resp => {\r\n const {resources} = reduxStore.getState();\r\n const auctionWrapper = resources[DemandOffersAuctionService.OFFER_AUCTIONS_LIST_DATA]\r\n const edit = {\r\n ...auctionWrapper,\r\n auctions: auctionWrapper.auctions.map(x => x.auctionId === resp.result.auctionId ? resp.result : x)\r\n }\r\n reduxStore.dispatch(setResource(DemandOffersAuctionService.OFFER_AUCTIONS_LIST_DATA, edit));\r\n\r\n if (resp.success) {\r\n reduxStore.dispatch(setSaveStatusInfo(Tr(\"auction_assign_to_auction_success\")))\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(Tr(\"auction_assign_to_auction_error\")))\r\n }\r\n });\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {Tr(\"id\")}\r\n {Tr(\"auction_name\")}\r\n {Tr(\"auction_type\")}\r\n {Tr(\"auction_user\")}\r\n {Tr(\"auction_start_date\")}\r\n {Tr(\"status\")}\r\n \r\n \r\n \r\n \r\n \r\n {auctions.map((auction) =>\r\n \r\n )}\r\n \r\n
\r\n )\r\n}\r\n\r\nAuctionsTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n auctions: PropTypes.arrayOf(PropTypes.shape({\r\n auctionId: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n url: PropTypes.string.isRequired,\r\n status: PropTypes.oneOf(Object.keys(AuctionStatus)).isRequired,\r\n type: PropTypes.oneOf(Object.keys(AuctionType)).isRequired\r\n })).isRequired\r\n}\r\n\r\nexport default AuctionsTable;\r\n\r\n","import React, {useEffect} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {connect} from \"react-redux\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport PropTypes from \"prop-types\";\r\nimport DemandOffersAuctionService from \"services/DemandOffersAuctionService\";\r\nimport {StageSectionsUrlParams} from \"../../../constants/StageSections\";\r\nimport {OfferMode} from \"../../common/constants/OfferMode\";\r\nimport GeneralInfoEntry from \"../generalInfo/components/GeneralInfoEntry\";\r\nimport Tr from \"translations/Translations\";\r\nimport OfferContractorData from \"../../common/contractorData/OfferContractorData\";\r\nimport AuctionsTable from \"./components/AuctionsTable\";\r\n\r\n\r\nfunction AuctionOfferEditPanel(\r\n {\r\n panelRef,\r\n sectionId,\r\n demandHeader,\r\n offerAuctionsListData\r\n }) {\r\n\r\n const params = useParams();\r\n const demandId = params.id;\r\n const stageId = params.stageId;\r\n const section = params.section;\r\n const mode = section === StageSectionsUrlParams.AUCTION_OFFER_EDIT ? OfferMode.EDIT : OfferMode.PLACED;\r\n\r\n const dataLoading = !offerAuctionsListData || !demandHeader;\r\n useEffect(() => {\r\n if (!dataLoading) {\r\n setTimeout((elem) => scrollTo(elem), 100, panelRef.current);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n , [dataLoading])\r\n\r\n useEffect(() => {\r\n DemandOffersAuctionService.getOfferAuctionsList(demandId, stageId, mode)\r\n return () => {\r\n DemandOffersAuctionService.clearResources(DemandOffersAuctionService.OFFER_AUCTIONS_LIST_DATA);\r\n }\r\n }, [demandId, stageId, section, mode])\r\n\r\n\r\n return dataLoading ? :\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n}\r\n\r\nAuctionOfferEditPanel.propTypes = {\r\n sectionId: PropTypes.string.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n offerAuctionsListData: state.resources[DemandOffersAuctionService.OFFER_AUCTIONS_LIST_DATA],\r\n}), {})(AuctionOfferEditPanel);","import React, {useContext, useEffect, useRef} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {connect} from \"react-redux\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport GeneralInfoEntry from \"../generalInfo/components/GeneralInfoEntry\";\r\nimport Tr from 'translations/Translations'\r\nimport {ContractorOfferEspdType} from \"constants/ContractorOfferEspdType\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport {StageSectionsUrlParams} from \"../../../constants/StageSections\";\r\nimport {OfferMode} from \"../../common/constants/OfferMode\";\r\nimport OfferSectionContext from \"context/OfferSectionContext\";\r\nimport OfferPositions from \"../offerEdit/components/positions/OfferPositions\";\r\nimport OfferEspd from \"../offerEdit/components/espd/OfferEspd\";\r\nimport OfferFiles from \"../offerEdit/components/files/OfferFiles\";\r\nimport OfferContractorData from \"../../common/contractorData/OfferContractorData\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport DemandOffersAuctionService from \"services/DemandOffersAuctionService\";\r\nimport AdditionalOfferCommonData from \"../additionalOfferEdit/components/commonData/AdditionalOfferCommonData\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport HelpTooltip from \"components/HelpTooltip\";\r\nimport OfferStageTranslationsContext from \"context/OfferStageTranslationsContext\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n floatingMenu: {\r\n position: 'sticky',\r\n zIndex: theme.zIndex.appBar - 1,\r\n bottom: 0,\r\n marginTop: theme.spacing()\r\n },\r\n menuBarPaper: {\r\n background: theme.palette.background.default,\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction AuctionOfferPlacedPanel(\r\n {\r\n panelRef,\r\n demandHeader,\r\n offerEdit,\r\n formSubmit,\r\n formValues\r\n }) {\r\n\r\n const classes = useStyle();\r\n const params = useParams();\r\n const demandId = params.id;\r\n const stageId = params.stageId;\r\n const section = params.section;\r\n const mode = section === StageSectionsUrlParams.ADDITIONAL_OFFER_EDIT ? OfferMode.EDIT : OfferMode.PLACED;\r\n const contextSection = useContext(OfferSectionContext);\r\n const stageTr = useContext(OfferStageTranslationsContext);\r\n const purchaserOfferContext = useContext(PurchaserOfferContext)\r\n const disabled = offerEdit ? offerEdit.disabled : true;\r\n const dataLoading = !offerEdit || !demandHeader;\r\n const positionsRef = useRef();\r\n\r\n useEffect(() => {\r\n if (!dataLoading) {\r\n setTimeout((elem) => scrollTo(elem), 100, panelRef.current);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n , [dataLoading])\r\n\r\n useEffect(() => {\r\n DemandOffersAuctionService.getOfferEdit(demandId, stageId, mode, purchaserOfferContext?.supplierId);\r\n return () => {\r\n DemandOffersAuctionService.clearResources(DemandOffersAuctionService.AUCTIONS_OFFER_EDIT);\r\n }\r\n // eslint-disable-next-line\r\n }, [demandId, stageId, section])\r\n\r\n\r\n return dataLoading ? : offerEdit.positions.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 offerEdit.offerEspdType !== ContractorOfferEspdType.NO &&\r\n \r\n \r\n \r\n }\r\n\r\n \r\n {stageTr(\"offer_documents\")}\r\n { (offerEdit.passiveOfferForm || contextSection.digitalSign) && }\r\n >}>\r\n \r\n \r\n\r\n {!offerEdit.passiveOfferForm &&\r\n \r\n }\r\n\r\n \r\n\r\n
\r\n}\r\n\r\nAuctionOfferPlacedPanel.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n offerEdit: state.resources[DemandOffersAuctionService.AUCTIONS_OFFER_EDIT],\r\n formSubmit: state.form,\r\n formValues: state.formValues\r\n}), {})(AuctionOfferPlacedPanel);","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport ExpansionPanelTitleAvatar from \"components/ExpansionPanelTitleAvatar\";\r\nimport Tr from \"translations/Translations\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport {getSectionVariant} from \"../../../../constants/StageSections\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n offerDate: {\r\n marginLeft: theme.spacing(5),\r\n fontStyle: \"italic\"\r\n }\r\n}))\r\n\r\nfunction AdditionalOfferPlacedSectionTitle(\r\n {\r\n section\r\n }) {\r\n const classes = useStyle();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {section.name}\r\n \r\n \r\n \r\n {!!section.endDate &&\r\n \r\n {Tr('additional_round_end_date')}: {moment(section.endDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n }\r\n {!!section.offerDate &&\r\n \r\n {Tr('offer_date_additional')}: {moment(section.offerDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}\r\n \r\n }\r\n \r\n
\r\n )\r\n\r\n}\r\n\r\nAdditionalOfferPlacedSectionTitle.propTypes = {\r\n expanded: PropTypes.bool.isRequired,\r\n section: PropTypes.shape({\r\n section: PropTypes.string.isRequired\r\n }).isRequired\r\n}\r\n\r\nexport default AdditionalOfferPlacedSectionTitle;","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport ExpansionPanelTitleAvatar from \"components/ExpansionPanelTitleAvatar\";\r\nimport Tr from \"translations/Translations\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport {getSectionVariant} from \"../../../../constants/StageSections\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n offerDate: {\r\n marginLeft: theme.spacing(5),\r\n fontStyle: \"italic\"\r\n }\r\n}))\r\n\r\nfunction AdditionalOfferEditSectionTitle(\r\n {\r\n section\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n return (\r\n \r\n \r\n \r\n {section.name}\r\n \r\n \r\n \r\n {!!section.endDate &&\r\n \r\n {Tr('additional_round_end_date')}: {moment(section.endDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n }\r\n {!!section.offerTmpDate &&\r\n \r\n {Tr('offer_tmp_date_additional')}: {moment(section.offerTmpDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}\r\n \r\n }\r\n\r\n \r\n
\r\n )\r\n\r\n}\r\n\r\nAdditionalOfferEditSectionTitle.propTypes = {\r\n expanded: PropTypes.bool.isRequired,\r\n section: PropTypes.shape({\r\n section: PropTypes.string.isRequired\r\n }).isRequired\r\n}\r\n\r\nexport default AdditionalOfferEditSectionTitle;","import React, {useContext, useEffect, useRef, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {connect} from \"react-redux\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport GeneralInfoEntry from \"../generalInfo/components/GeneralInfoEntry\";\r\nimport Tr from 'translations/Translations'\r\nimport {ContractorOfferEspdType} from \"constants/ContractorOfferEspdType\";\r\nimport NavigationBar from \"components/complex/floatingMenu/NavigationBar\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport createButton from \"components/complex/floatingMenu/createButton\";\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport {\r\n OfferPositionStatusesReadyToOffering,\r\n OfferPositionStatusesReadyToWithdraw,\r\n OfferPositionStatusType\r\n} from \"../../common/constants/OfferPositionStatusType\";\r\nimport OfferPositionsSelectPopup, {POPUP_MODE} from \"../../common/OfferPositionsSelectPopup\";\r\nimport useSignature from \"hooks/useSignature\";\r\nimport SignatureIcon from \"components/icon/SignatureIcon\";\r\nimport {StageSectionsUrlParams} from \"../../../constants/StageSections\";\r\nimport {OfferMode} from \"../../common/constants/OfferMode\";\r\nimport OfferSectionContext from \"context/OfferSectionContext\";\r\nimport useLoadingScreen from \"hooks/useLoadingScreen\";\r\nimport {simpleAlert} from \"libs/AlertNotification\";\r\nimport {simpleConfirmNoTranslate} from \"libs/ConfirmNotification\";\r\nimport DemandAdditionalOffersOfferService from \"services/DemandAdditionalOffersOfferService\";\r\nimport OfferPositions from \"../offerEdit/components/positions/OfferPositions\";\r\nimport OfferEspd from \"../offerEdit/components/espd/OfferEspd\";\r\nimport OfferFiles from \"../offerEdit/components/files/OfferFiles\";\r\nimport OfferContractorData from \"../../common/contractorData/OfferContractorData\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport {OfferStatusType} from \"../../common/constants/OfferStatusType\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport AdditionalOfferCommonData from \"../additionalOfferEdit/components/commonData/AdditionalOfferCommonData\";\r\nimport EnvelopeOfferDatePopup from \"../additionalOfferEdit/components/EnvelopeOfferDatePopup\";\r\nimport MultiButton, {createButton as createMultiButton} from \"components/popup/components/MultiButton\";\r\nimport SnapshotListPopup, {getConfig} from \"../offerEdit/components/SnapshotListPopup\";\r\nimport HistoryIcon from \"@material-ui/icons/History\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport {CONTRACTOR_OFFER_EDIT_COMMON_DATA_FORM_ID} from \"../offerEdit/components/commonData/OfferCommonData\";\r\nimport HelpTooltip from \"components/HelpTooltip\";\r\nimport VerificationBeforePlaceOfferPopup, {getVerificationBeforePlaceOfferPopupConfig} from \"../offerEdit/components/VerificationBeforePlaceOfferPopup\";\r\nimport OfferStageTranslationsContext from \"context/OfferStageTranslationsContext\";\r\nimport SupportModeContext from \"context/SupportModeContext\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n floatingMenu: {\r\n position: 'sticky',\r\n zIndex: theme.zIndex.appBar - 1,\r\n bottom: 0,\r\n marginTop: theme.spacing()\r\n },\r\n menuBarPaper: {\r\n background: theme.palette.background.default,\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction AdditionalOfferEditAltPanel(\r\n {\r\n panelRef,\r\n demandHeader,\r\n additionalOfferEdit,\r\n formSubmit,\r\n formValues,\r\n }) {\r\n\r\n const classes = useStyle();\r\n const params = useParams();\r\n const demandId = params.id;\r\n const stageId = params.stageId;\r\n const section = params.section;\r\n const mode = section === StageSectionsUrlParams.ADDITIONAL_OFFER_EDIT_ALT ? OfferMode.EDIT : OfferMode.PLACED;\r\n const contextSection = useContext(OfferSectionContext);\r\n const supportMode = useContext(SupportModeContext);\r\n const realOnePositionMode = contextSection.onePositionMode || !additionalOfferEdit || additionalOfferEdit.positions.length === 1;\r\n const purchaserOfferContext = useContext(PurchaserOfferContext)\r\n const stageTr = useContext(OfferStageTranslationsContext);\r\n const disabled = additionalOfferEdit ? additionalOfferEdit.disabled : true;\r\n const dataLoading = !additionalOfferEdit || !demandHeader;\r\n const positionsRef = useRef();\r\n const {showLoadingScreen, hideLoadingScreen} = useLoadingScreen();\r\n const [choosePositionPopup, setChoosePositionPopup] = useState(null);\r\n const [chooseEnvelopeOfferDatePopup, setChooseEnvelopeOfferDatePopup] = useState(null);\r\n const [chooseSnapshotPopup, setChooseSnapshotPopup] = useState(null);\r\n const [verifyBeforePlacePopup, setVerifyBeforePlacePopup] = useState(null);\r\n\r\n const {doSignDocContent, breakSigning} = useSignature();\r\n\r\n useStepperStateCloseValidator(CONTRACTOR_OFFER_EDIT_COMMON_DATA_FORM_ID, () => {\r\n return !(additionalOfferEdit.positions.findIndex(x => !!formValues[\"offerPositionForm_\" + x.positionId + \"_dirty\"]) > -1)\r\n })\r\n\r\n useEffect(() => {\r\n if (!dataLoading) {\r\n setTimeout((elem) => scrollTo(elem), 100, panelRef.current);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n , [dataLoading])\r\n\r\n useEffect(() => {\r\n DemandAdditionalOffersOfferService.getOfferEdit(demandId, stageId, mode, purchaserOfferContext?.supplierId);\r\n return () => {\r\n DemandAdditionalOffersOfferService.clearResources(DemandAdditionalOffersOfferService.ADDITIONAL_OFFER_EDIT);\r\n }\r\n // eslint-disable-next-line\r\n }, [demandId, stageId, section])\r\n\r\n\r\n const placeOffer = () => {\r\n if (additionalOfferEdit.commonData.status !== DemandValidationSectionStatus.OK) {\r\n simpleAlert(Tr(\"fill_missing_data_x\", {name: 'contractor_company_data'}, true), false);\r\n scrollTo(panelRef.current);\r\n } else {\r\n const unsavedPos = additionalOfferEdit.positions.find(x => !!formValues[\"offerPositionForm_\" + x.positionId + \"_dirty\"])\r\n if (unsavedPos) {\r\n simpleAlert(Tr(\"save_form_x\", {name: Tr(\"part_x\", {x: unsavedPos.order}) + \": \" + unsavedPos.name}), false)\r\n scrollTo(\"#offerPositionForm_\" + unsavedPos.positionId, 60);\r\n } else {\r\n\r\n const readyPositions = additionalOfferEdit.positions.filter(x => OfferPositionStatusesReadyToOffering.includes(x.status));\r\n if (readyPositions.length === 0) {\r\n simpleAlert(\"fill_at_least_one_position\");\r\n scrollTo(positionsRef.current);\r\n } else {\r\n if (realOnePositionMode) {\r\n simpleConfirmNoTranslate(stageTr(!purchaserOfferContext ? \"place_offer_confirm\" : \"place_offer_confirm_operator\"), () => submitChoosePositions([readyPositions[0].positionId]))\r\n } else {\r\n setChoosePositionPopup(purchaserOfferContext ? POPUP_MODE.OPERATOR_PLACE : POPUP_MODE.OFFER);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const withdrawOffer = () => {\r\n if (realOnePositionMode) {\r\n simpleConfirmNoTranslate(stageTr(\"withdraw_offer_confirm\"), () => submitChoosePositionsWithdraw([additionalOfferEdit.positions[0].positionId]))\r\n } else {\r\n setChoosePositionPopup(POPUP_MODE.WITHDRAW);\r\n }\r\n }\r\n\r\n const submitChoosePositions = (positionIds) => {\r\n if (!purchaserOfferContext && contextSection.digitalSign) {\r\n DemandAdditionalOffersOfferService.verifyBeforePlaceOffer(demandId, stageId, undefined, positionIds).then((resp) => {\r\n if (resp.success && resp.result.length > 0) {\r\n setVerifyBeforePlacePopup(getVerificationBeforePlaceOfferPopupConfig(resp.result, positionIds))\r\n } else {\r\n doSubmitChoosePositions(positionIds)\r\n }\r\n }).catch((e) => {\r\n doSubmitChoosePositions(positionIds);\r\n console.error(e)\r\n })\r\n\r\n } else {\r\n doSubmitChoosePositions(positionIds)\r\n }\r\n }\r\n\r\n const doSubmitChoosePositions = (positionIds) => {\r\n if (!purchaserOfferContext && contextSection.digitalSign) {\r\n doSignDocContent(\r\n contextSection.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandAdditionalOffersOfferService.getDocumentToSign(demandId, stageId, {positionIds, signatureType: sigType});\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n submitPlaceOffer(positionIds, signatureType, signature, signatureFileId)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => contextSection.encryptionEnabled ? contextSection.roundId : null,\r\n )\r\n } else {\r\n submitPlaceOffer(positionIds);\r\n }\r\n }\r\n\r\n const submitChoosePositionsWithdraw = (positionIds) => {\r\n if (contextSection.digitalSign) {\r\n doSignDocContent(\r\n contextSection.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandAdditionalOffersOfferService.getDocumentToWithdraw(demandId, stageId, {positionIds, signatureType: sigType});\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n submitWithdrawOffer(positionIds, signatureType, signature, signatureFileId)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => {\r\n const result = await DemandAdditionalOffersOfferService.requireWithdrawEncryption(demandId, stageId, positionIds);\r\n if (!result) {\r\n breakSigning();\r\n } else if (result.requireEncryption) {\r\n return result.roundId;\r\n } else {\r\n return null;\r\n }\r\n }\r\n )\r\n } else {\r\n submitWithdrawOffer(positionIds);\r\n }\r\n }\r\n\r\n const signOffer = () => {\r\n const positionIds = additionalOfferEdit.positions.filter(x => x.status === OfferPositionStatusType.WAITING_SIGNATURE).map(x => x.positionId);\r\n doSignDocContent(\r\n contextSection.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandAdditionalOffersOfferService.getDocumentToSign(demandId, stageId, {\r\n positionIds,\r\n signatureType: sigType\r\n });\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n showLoadingScreen();\r\n DemandAdditionalOffersOfferService.signOffer(demandId, stageId, {\r\n positions: positionIds.map(x => ({positionId: x})),\r\n signatureType,\r\n signature,\r\n signatureFileId\r\n }, realOnePositionMode, stageTr).finally(hideLoadingScreen)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => contextSection.encryptionEnabled ? contextSection.roundId : null,\r\n )\r\n }\r\n\r\n\r\n const deleteOffer = () => {\r\n if (realOnePositionMode) {\r\n doDeleteOffer([additionalOfferEdit.positions[0].positionId])\r\n } else {\r\n setChoosePositionPopup(POPUP_MODE.DELETE_OFFER)\r\n }\r\n\r\n }\r\n\r\n const doDeleteOffer = (positionIds) => {\r\n simpleConfirmNoTranslate(stageTr(\"delete_offer_confirm\"), () => {\r\n showLoadingScreen();\r\n DemandAdditionalOffersOfferService.deleteOffer(demandId, stageId, positionIds).finally(hideLoadingScreen)\r\n }\r\n )\r\n }\r\n\r\n const signWithdrawOffer = () => {\r\n const positionIds = additionalOfferEdit.positions.filter(x => x.status === OfferPositionStatusType.WAITING_WITHDRAW_SIGNATURE).map(x => x.positionId);\r\n doSignDocContent(\r\n contextSection.signatureTypes,\r\n async (sigType) => {\r\n const result = await DemandAdditionalOffersOfferService.getDocumentToWithdraw(demandId, stageId, {\r\n positionIds: positionIds,\r\n signatureType: sigType\r\n });\r\n if (!result)\r\n breakSigning();\r\n return result;\r\n\r\n },\r\n (signatureType, signature, signatureFileId) => {\r\n breakSigning();\r\n showLoadingScreen()\r\n DemandAdditionalOffersOfferService.signWithdraw(demandId, stageId, {\r\n positions: positionIds.map(x => ({positionId: x})),\r\n signatureType,\r\n signature,\r\n signatureFileId\r\n }, contextSection.onePositionMode, stageTr)\r\n .finally(hideLoadingScreen)\r\n },\r\n (error) => {\r\n console.error(error)\r\n simpleAlert(\"signature_error\");\r\n breakSigning();\r\n },\r\n () => {\r\n breakSigning();\r\n },\r\n async () => {\r\n const result = await DemandAdditionalOffersOfferService.requireWithdrawEncryption(demandId, stageId, positionIds);\r\n if (!result) {\r\n breakSigning();\r\n } else if (result.requireEncryption) {\r\n return result.roundId;\r\n } else {\r\n return null;\r\n }\r\n }\r\n )\r\n }\r\n\r\n\r\n const submitPlaceOffer = (positionIds, signatureType, signature, signatureFileId, envelopeOfferDate) => {\r\n\r\n if (purchaserOfferContext && additionalOfferEdit.envelopeOffer && !envelopeOfferDate) {\r\n setChooseEnvelopeOfferDatePopup({\r\n positionIds, signatureType, signature, signatureFileId,\r\n positions: additionalOfferEdit.positions.filter(x => positionIds.includes(x.positionId))\r\n })\r\n return;\r\n }\r\n showLoadingScreen();\r\n DemandAdditionalOffersOfferService.placeOffer(demandId, stageId, purchaserOfferContext?.supplierId, contextSection.onePositionMode, {\r\n positions: positionIds.map(x => ({positionId: x, envelopeOfferDate})),\r\n signatureType,\r\n signature,\r\n signatureFileId\r\n }, stageTr).finally(hideLoadingScreen)\r\n }\r\n\r\n const submitWithdrawOffer = (positionIds, signatureType, signature, signatureFileId) => {\r\n showLoadingScreen()\r\n DemandAdditionalOffersOfferService.withdrawOffer(demandId, stageId, {\r\n positions: positionIds.map(positionId => ({positionId})),\r\n signatureType,\r\n signature,\r\n signatureFileId\r\n }, contextSection.onePositionMode, stageTr).catch(() => {\r\n })\r\n .finally(hideLoadingScreen)\r\n }\r\n\r\n const stopSigningOperation = (placingOffer) => {\r\n const positionId = additionalOfferEdit.positions.filter(x => (placingOffer && x.status === OfferPositionStatusType.WAITING_SIGNATURE) || (!placingOffer && x.status === OfferPositionStatusType.WAITING_WITHDRAW_SIGNATURE))[0].positionId;\r\n simpleConfirmNoTranslate(stageTr(placingOffer ? \"sign_offer_form_stop_confirm\" : \"sign_withdraw_form_stop_confirm\"), () => {\r\n showLoadingScreen();\r\n DemandAdditionalOffersOfferService.stopSigningOperation(demandId, stageId, positionId).finally(hideLoadingScreen)\r\n }\r\n )\r\n }\r\n\r\n const navigationBarButtons = () => {\r\n const buttons = [];\r\n if (!disabled && additionalOfferEdit.offerStatus === OfferStatusType.NORMAL) {\r\n\r\n if (!purchaserOfferContext && additionalOfferEdit.positions.findIndex(x => x.contractorOfferStatus === OfferStatusType.NORMAL && x.offerDate === null && x.offerTmpDate !== null) > -1) {\r\n buttons.push(createButton(stageTr(\"delete_offer\"), deleteOffer, \"outlined\", DeleteIcon, 'primary', supportMode, false, false));\r\n }\r\n\r\n if (!purchaserOfferContext && !(additionalOfferEdit.passiveOfferForm && mode === OfferMode.PLACED) && additionalOfferEdit.positions.findIndex(x => OfferPositionStatusesReadyToWithdraw.includes(x.status)) > -1) {\r\n buttons.push(createButton(stageTr(\"withdraw_offer_position\"), withdrawOffer, undefined, HighlightOffIcon, 'primary', supportMode, false, false));\r\n }\r\n buttons.push(createButton(stageTr(!purchaserOfferContext ? \"place_offer\" : \"place_offer_operator\"), placeOffer, undefined, CheckCircleIcon, 'primary', supportMode, false, false));\r\n\r\n }\r\n\r\n if (additionalOfferEdit.offerStatus === OfferStatusType.WAITING_SIGNATURE) {\r\n buttons.push(createButton(stageTr(\"sign_offer_form_stop\"), () => stopSigningOperation(true), 'outlined', CancelIcon, undefined, supportMode, false, false));\r\n buttons.push(createButton(stageTr(\"sign_offer_form\"), signOffer, undefined, SignatureIcon, 'primary', supportMode, false, false));\r\n }\r\n if (additionalOfferEdit.offerStatus === OfferStatusType.WAITING_WITHDRAW_SIGNATURE) {\r\n buttons.push(createButton(stageTr(\"sign_withdraw_form_stop\"), () => stopSigningOperation(false), \"outlined\", CancelIcon, 'primary', supportMode, false, false));\r\n buttons.push(createButton(stageTr(\"sign_withdraw_form\"), signWithdrawOffer, undefined, SignatureIcon, 'primary', supportMode, false, false));\r\n }\r\n return buttons;\r\n }\r\n\r\n const successPositionsSelectPopup = (positionIds) => {\r\n ((mode, posIds) => {\r\n setChoosePositionPopup(null)\r\n switch (mode) {\r\n case POPUP_MODE.OFFER:\r\n case POPUP_MODE.OPERATOR_PLACE:\r\n submitChoosePositions(posIds);\r\n break;\r\n case POPUP_MODE.WITHDRAW:\r\n submitChoosePositionsWithdraw(posIds);\r\n break;\r\n case POPUP_MODE.DELETE_OFFER:\r\n doDeleteOffer(posIds);\r\n break;\r\n default:\r\n throw new Error(\"Unsupported popup mode: \" + mode);\r\n\r\n }\r\n })(choosePositionPopup, positionIds)\r\n }\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createMultiButton(Tr(\"change_history\"), () => setChooseSnapshotPopup(getConfig(demandId, stageId, purchaserOfferContext?.supplierId, RoundType.ADDITIONAL_OFFERS, additionalOfferEdit.positions[0].positionId)),\r\n \"outlined\", false, undefined, false, HistoryIcon));\r\n return buttons;\r\n }\r\n\r\n return dataLoading ? : additionalOfferEdit.positions.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 additionalOfferEdit.offerEspdType !== ContractorOfferEspdType.NO &&\r\n \r\n \r\n \r\n }\r\n\r\n {\r\n (!purchaserOfferContext && mode === OfferMode.EDIT) &&\r\n {Tr(\"additional_offer_supplier_info\")}\r\n }\r\n\r\n \r\n {stageTr(\"offer_documents\")}\r\n { (additionalOfferEdit.passiveOfferForm || contextSection.digitalSign) && }\r\n >}>\r\n \r\n \r\n\r\n {!additionalOfferEdit.passiveOfferForm &&\r\n \r\n }\r\n\r\n \r\n {\r\n (!purchaserOfferContext || mode === OfferMode.EDIT) &&\r\n
\r\n \r\n
\r\n }\r\n {\r\n !!choosePositionPopup &&
setChoosePositionPopup(null)}\r\n onSuccess={successPositionsSelectPopup}\r\n digitalSign={contextSection.digitalSign}\r\n />\r\n }\r\n {\r\n !!chooseEnvelopeOfferDatePopup && setChooseEnvelopeOfferDatePopup(null)}\r\n onSubmit={(values) => {\r\n setChooseEnvelopeOfferDatePopup(null);\r\n submitPlaceOffer(chooseEnvelopeOfferDatePopup.positionIds, chooseEnvelopeOfferDatePopup.signatureType,\r\n chooseEnvelopeOfferDatePopup.signature, chooseEnvelopeOfferDatePopup.signatureFileId, values.envelopeOfferDate)\r\n }}\r\n />\r\n }\r\n {\r\n !!chooseSnapshotPopup && setChooseSnapshotPopup(null)}\r\n config={chooseSnapshotPopup}\r\n />\r\n }\r\n {\r\n !!verifyBeforePlacePopup && setVerifyBeforePlacePopup(null)}\r\n onConfirm={(positionIds) => {\r\n setVerifyBeforePlacePopup(null);\r\n doSubmitChoosePositions(positionIds);\r\n }}\r\n config={verifyBeforePlacePopup}\r\n />\r\n }\r\n \r\n}\r\n\r\nAdditionalOfferEditAltPanel.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n additionalOfferEdit: state.resources[DemandAdditionalOffersOfferService.ADDITIONAL_OFFER_EDIT],\r\n formSubmit: state.form,\r\n formValues: state.formValues,\r\n}), {})(AdditionalOfferEditAltPanel);","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport ExpansionPanelTitleAvatar from \"components/ExpansionPanelTitleAvatar\";\r\nimport {getSectionVariant} from \"../../../../constants/StageSections\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport ErrorOutlineOutlinedIcon from '@material-ui/icons/ErrorOutlineOutlined';\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n unreadElements: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction GeneralInfoSectionTitle(\r\n {\r\n section\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n return (\r\n \r\n \r\n \r\n {section.name}\r\n \r\n {(!!section.unreadDemandDocuments || !!section.unreadRfxMessages) && \r\n \r\n
\r\n }\r\n \r\n )\r\n\r\n}\r\n\r\nGeneralInfoSectionTitle.propTypes = {\r\n expanded: PropTypes.bool.isRequired,\r\n section: PropTypes.shape({\r\n section: PropTypes.string.isRequired\r\n }).isRequired\r\n}\r\n\r\nexport default GeneralInfoSectionTitle;","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport ExpansionPanelTitleAvatar from \"components/ExpansionPanelTitleAvatar\";\r\nimport Tr from \"translations/Translations\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport {getSectionVariant} from \"../../../../constants/StageSections\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n offerDate: {\r\n marginLeft: theme.spacing(5),\r\n fontStyle: \"italic\"\r\n }\r\n}))\r\n\r\nfunction AuctionOfferPlacedSectionTitle(\r\n {\r\n section\r\n }) {\r\n const classes = useStyle();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {section.name}\r\n \r\n \r\n \r\n {!!section.endDate &&\r\n \r\n {Tr('additional_round_end_date_auction')}: {moment(section.endDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n }\r\n {!!section.offerDate &&\r\n \r\n {Tr('offer_date_additional_auction')}: {moment(section.offerDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}\r\n \r\n }\r\n \r\n
\r\n )\r\n\r\n}\r\n\r\nAuctionOfferPlacedSectionTitle.propTypes = {\r\n expanded: PropTypes.bool.isRequired,\r\n section: PropTypes.shape({\r\n section: PropTypes.string.isRequired\r\n }).isRequired\r\n}\r\n\r\nexport default AuctionOfferPlacedSectionTitle;","import GeneralInfoPanel from \"../components/panels/generalInfo/GeneralInfoPanel\";\r\nimport OfferEditPanel from \"../components/panels/offerEdit/OfferEditPanel\";\r\nimport OfferExpansionSectionTitle from \"../components/common/OfferExpansionSectionTitle\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport OfferEditSectionTitle from \"../components/panels/offerEdit/components/OfferEditSectionTitle\";\r\nimport OfferPlacedPanel from \"../components/panels/offerPlaced/OfferPlacedPanel\";\r\nimport OfferPlacedSectionTitle from \"../components/panels/offerPlaced/components/OfferPlacedSectionTitle\";\r\nimport AdditionalOfferEditPanel from \"../components/panels/additionalOfferEdit/AdditionalOfferEditPanel\";\r\nimport AdditionalOfferPlacedPanel from \"../components/panels/additionalOfferPlaced/AdditionalOfferPlacedPanel\";\r\nimport AuctionOfferEditPanel from \"../components/panels/auctionOfferEdit/AuctionOfferEditPanel\";\r\nimport AuctionOfferPlacedPanel from \"../components/panels/auctionOfferPlaced/AuctionOfferPlacedPanel\";\r\nimport AdditionalOfferPlacedSectionTitle from \"../components/panels/additionalOfferPlaced/components/AdditionalOfferPlacedSectionTitle\";\r\nimport AdditionalOfferEditSectionTitle from \"../components/panels/additionalOfferEdit/components/AdditionalOfferEditSectionTitle\";\r\nimport AdditionalOfferEditAltPanel from \"../components/panels/additionalOfferEditAlt/AdditionalOfferEditAltPanel\";\r\nimport GeneralInfoSectionTitle from \"../components/panels/generalInfo/components/DeneralInfoSectionTitle\";\r\nimport AuctionOfferPlacedSectionTitle from \"../components/panels/auctionOfferPlaced/components/AuctionOfferPlacedSectionTitle\";\r\n\r\nexport const StageSectionsOrder = [\"GENERAL_INFO\", \"OFFER_EDIT\", \"OFFER_PLACED\", \"ADDITIONAL_OFFER_EDIT\", \"ADDITIONAL_OFFER_EDIT_ALT\", \"ADDITIONAL_OFFER_PLACED\",\r\n \"AUCTION_OFFER_EDIT\", \"AUCTION_OFFER_PLACED\"];\r\n\r\nexport const StageSections = {\r\n GENERAL_INFO: \"GENERAL_INFO\",\r\n OFFER_EDIT: \"OFFER_EDIT\",\r\n OFFER_PLACED: \"OFFER_PLACED\",\r\n ADDITIONAL_OFFER_EDIT: \"ADDITIONAL_OFFER_EDIT\",\r\n ADDITIONAL_OFFER_EDIT_ALT: \"ADDITIONAL_OFFER_EDIT_ALT\",\r\n ADDITIONAL_OFFER_PLACED: \"ADDITIONAL_OFFER_PLACED\",\r\n AUCTION_OFFER_EDIT: \"AUCTION_OFFER_EDIT\",\r\n AUCTION_OFFER_PLACED: \"AUCTION_OFFER_PLACED\",\r\n DASHBOARD: \"DASHBOARD\"\r\n}\r\n\r\nexport const StageSectionParamToSectionName = {\r\n \"general-info\": \"GENERAL_INFO\",\r\n \"offer-edit\": \"OFFER_EDIT\",\r\n \"offer-placed\": \"OFFER_PLACED\",\r\n \"additional-offer-edit\": \"ADDITIONAL_OFFER_EDIT\",\r\n \"additional-offer-edit-alt\": \"ADDITIONAL_OFFER_EDIT_ALT\",\r\n \"additional-offer-placed\": \"ADDITIONAL_OFFER_PLACED\",\r\n \"auction-offer-edit\": \"AUCTION_OFFER_EDIT\",\r\n \"auction-offer-placed\": \"AUCTION_OFFER_PLACED\"\r\n}\r\n\r\nexport const StageSectionsUrlParams = {\r\n GENERAL_INFO: \"general-info\",\r\n OFFER_EDIT: \"offer-edit\",\r\n OFFER_PLACED: \"offer-placed\",\r\n ADDITIONAL_OFFER_EDIT: \"additional-offer-edit\",\r\n ADDITIONAL_OFFER_EDIT_ALT: \"additional-offer-edit-alt\",\r\n ADDITIONAL_OFFER_PLACED: \"additional-offer-placed\",\r\n AUCTION_OFFER_EDIT: \"auction-offer-edit\",\r\n AUCTION_OFFER_PLACED: \"auction-offer-placed\"\r\n}\r\n\r\nexport const StageSectionsComponents = {\r\n GENERAL_INFO: GeneralInfoPanel,\r\n OFFER_EDIT: OfferEditPanel,\r\n OFFER_PLACED: OfferPlacedPanel,\r\n ADDITIONAL_OFFER_EDIT: AdditionalOfferEditPanel,\r\n ADDITIONAL_OFFER_EDIT_ALT: AdditionalOfferEditAltPanel,\r\n ADDITIONAL_OFFER_PLACED: AdditionalOfferPlacedPanel,\r\n AUCTION_OFFER_EDIT: AuctionOfferEditPanel,\r\n AUCTION_OFFER_PLACED: AuctionOfferPlacedPanel\r\n}\r\n\r\nexport const StageSectionsTitles = {\r\n GENERAL_INFO: GeneralInfoSectionTitle,\r\n OFFER_EDIT: OfferEditSectionTitle,\r\n OFFER_PLACED: OfferPlacedSectionTitle,\r\n ADDITIONAL_OFFER_EDIT: AdditionalOfferEditSectionTitle,\r\n ADDITIONAL_OFFER_EDIT_ALT: AdditionalOfferEditSectionTitle,\r\n ADDITIONAL_OFFER_PLACED: AdditionalOfferPlacedSectionTitle,\r\n AUCTION_OFFER_EDIT: OfferExpansionSectionTitle,\r\n AUCTION_OFFER_PLACED: AuctionOfferPlacedSectionTitle\r\n}\r\n\r\nexport const getSectionVariant = (section) => section ? (section.status === DemandValidationSectionStatus.OK ? 'Done' : (section.status === DemandValidationSectionStatus.DISABLED ? 'Wait' : (section.status === DemandValidationSectionStatus.ERROR ? 'Required' : (section.required ? 'Required' : 'Optional')))) : \"Wait\";","import React, {useReducer} from 'react'\r\nimport {makeStyles, TableCell, TableRow} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport moment from 'moment';\r\nimport {OfferStatusLabel} from \"constants/OfferStatus\";\r\nimport {OfferEncryptionStatuses, OfferEncryptionStatusLabel} from \"constants/OfferEncryptionStatus\";\r\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\r\nimport LockOpenOutlinedIcon from '@material-ui/icons/LockOpenOutlined';\r\nimport InsertDriveFileOutlinedIcon from '@material-ui/icons/InsertDriveFileOutlined';\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport TooltipIcon from \"components/icon/TooltipIcon\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\nimport OfferAdditionalOffersTable from \"./OfferAdditionalOffersTable\";\r\nimport {getUserFullNameWithEmailAndDeputy} from \"libs/userNameGetter\";\r\nimport RouterPath from \"../../../../libs/RouterPath\";\r\nimport {StageSectionsUrlParams} from \"../../../../pages/contractor/demand/scenes/offer/constants/StageSections\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport WarningRoundedIcon from \"@material-ui/icons/WarningRounded\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n cell: {\r\n padding: theme.spacing(1)\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n versionsCell: {\r\n background: theme.palette.background.default,\r\n paddingLeft: 0,\r\n paddingRight: 0\r\n },\r\n warnIcon: {\r\n padding: 0,\r\n color: `${theme.palette.secondary.main} !important`\r\n }\r\n}));\r\n\r\nfunction OfferTableRow(\r\n {\r\n demandId,\r\n currentRfxRound,\r\n index,\r\n offer,\r\n openEnvelopeEdit,\r\n collectionFinished,\r\n demandHeader\r\n }) {\r\n const classes = useStyles();\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n addLoading: false\r\n });\r\n const {\r\n id, contractorName, offerUser, contractorAddress, contractorDepartmentId, encryptionStatus, status, offerDate, envelopeId, dateOfEnvelopeReceipt,\r\n offerDetailsUrl, hasAdditionalRounds, additionalOffers, consorciumOffer, outOfDateOffer\r\n } = offer;\r\n let encIcon = encryptionStatus ? (encryptionStatus === OfferEncryptionStatuses.DECRYPTED ? LockOpenOutlinedIcon : LockOutlinedIcon) : InsertDriveFileOutlinedIcon;\r\n\r\n const dateStr = offerDate ? moment(offerDate).format(DateFormats.DATETIME_FORMAT) : (dateOfEnvelopeReceipt ? moment(dateOfEnvelopeReceipt).format(DateFormats.DATETIME_FORMAT) : '');\r\n\r\n const onAdditionalOffersExpand = () => {\r\n dispatchIconWorks({type: 'addLoading', works: true});\r\n\r\n let func;\r\n if (!additionalOffers) {\r\n func = RfxOfferService.getAdditionalRoundsOffers;\r\n } else {\r\n func = RfxOfferService.clearAdditionalRoundsOffers;\r\n }\r\n\r\n func(currentRfxRound.id, id).finally(() => {\r\n dispatchIconWorks({type: 'addLoading', works: false});\r\n })\r\n\r\n\r\n }\r\n\r\n const redirectToOffer = (roundType, offerDate) => {\r\n if (demandHeader && !demandHeader.apiOffers) {\r\n window.location.href = offerDetailsUrl;\r\n } else {\r\n\r\n let section;\r\n switch (roundType) {\r\n case RoundType.BASE:\r\n section = offerDate ? StageSectionsUrlParams.OFFER_PLACED : StageSectionsUrlParams.OFFER_EDIT;\r\n break;\r\n case RoundType.ADDITIONAL_OFFERS:\r\n section = offerDate ? StageSectionsUrlParams.ADDITIONAL_OFFER_PLACED : StageSectionsUrlParams.ADDITIONAL_OFFER_EDIT;\r\n break;\r\n case RoundType.AUCTION:\r\n section = StageSectionsUrlParams.AUCTION_OFFER_PLACED;\r\n break;\r\n default:\r\n console.error(\"Unknown type: \" + roundType);\r\n section = StageSectionsUrlParams.OFFER_PLACED;\r\n }\r\n\r\n RouterPath.redirect(RouterPath.createPath(RouterPath.purchaserDemand.PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID_SECTION,\r\n {id: demandId, contractorDepartmentId, stageId: currentRfxRound.stageId, section}));\r\n }\r\n }\r\n\r\n\r\n return (<>\r\n \r\n {index + 1}\r\n {consorciumOffer ? Tr('consorcium_with_name', {name: contractorName}) : contractorName}\r\n {getUserFullNameWithEmailAndDeputy(offerUser)}\r\n {contractorAddress}\r\n \r\n {status ? OfferStatusLabel(status) : ''}\r\n {outOfDateOffer && }\r\n \r\n {dateStr}{!!envelopeId && openEnvelopeEdit(envelopeId)}/>}\r\n \r\n redirectToOffer(RoundType.BASE, offerDate) : undefined}\r\n />\r\n \r\n {collectionFinished && \r\n \r\n }\r\n \r\n {!!additionalOffers &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >)\r\n}\r\n\r\nOfferTableRow.propTypes = {\r\n index: PropTypes.number.isRequired,\r\n offer: PropTypes.object.isRequired,\r\n openEnvelopeEdit: PropTypes.func.isRequired,\r\n collectionFinished: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default OfferTableRow;\r\n","import React, {useMemo} from 'react'\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport OfferTableRow from \"./OfferTableRow\";\r\nimport {isDemandFinishing, isDemandFinished, isDemandOfferEvaluation} from \"../../../../libs/getDemandStatus\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n table: {\r\n border: `solid 3px ${theme.palette.background.paper}`,\r\n \"& .MuiTableCell-root\": {\r\n padding: theme.spacing()\r\n }\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n dateColumn: {\r\n ...theme.components.table.buttonColumn,\r\n width: theme.components.table.dateTimeColumn.width + theme.components.table.buttonColumn.width\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n supplierColumn: {\r\n paddingRight: theme.spacing(2),\r\n \"word-break\": \"break-all\"\r\n },\r\n authorColumn: {\r\n width: 250\r\n },\r\n addressColumn: {\r\n width: 160,\r\n paddingRight: theme.spacing(2),\r\n whiteSpace: \"pre-line\"\r\n },\r\n statusColumn: {\r\n width: 200,\r\n paddingRight: theme.spacing(2)\r\n },\r\n}));\r\n\r\nfunction OfferTable(\r\n {\r\n demandId,\r\n currentRfxRound,\r\n offers,\r\n openEnvelopeEdit,\r\n demandHeader\r\n }) {\r\n const classes = useStyle();\r\n const collectionFinished = useMemo(()=> isDemandOfferEvaluation() || isDemandFinishing() || isDemandFinished(), []);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {Tr(\"column_lp\")}\r\n {Tr(\"contractor\")}\r\n {Tr(\"author\")}\r\n {Tr(\"adres\")}\r\n {Tr(\"status\")}\r\n {Tr(\"date_of_receipt\")}\r\n \r\n {collectionFinished && }\r\n \r\n \r\n \r\n {\r\n offers.items.map((item, i) => )\r\n }\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nOfferTable.propTypes = {\r\n currentRfxRound: PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n processId: PropTypes.number.isRequired,\r\n stageId: PropTypes.number.isRequired,\r\n offerCollectionEnded: PropTypes.bool.isRequired\r\n }).isRequired,\r\n offers: PropTypes.object.isRequired,\r\n openEnvelopeEdit: PropTypes.func.isRequired\r\n}\r\n\r\nexport default OfferTable;\r\n","import {useEffect} from 'react'\r\n\r\nexport default (id, addContractorsTab, onclose) => {\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"message\", receiveMessage, false);\r\n return () => {\r\n window.removeEventListener(\"message\", receiveMessage)\r\n };\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n function receiveMessage(event) {\r\n if (event.data.action && (typeof event.data.action === 'string' || event.data.action instanceof String)) {\r\n if (event.data.action === \"refreshSuppliers\") addContractorsTab(event.data)\r\n }\r\n if (event.data.action === \"closeSupplierSearch\") closeSupplierSearch()\r\n }\r\n\r\n\r\n function closeSupplierSearch() {\r\n onclose();\r\n }\r\n\r\n}\r\n\r\n","import React, {useEffect} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport {connect} from 'react-redux'\r\nimport contractorImport from 'libs/contractorImport'\r\nimport ContractorService from \"../../../services/ContractorService\";\r\nimport Loading from \"../../Loading\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n dialog: {\r\n padding: 0\r\n },\r\n iframe: {\r\n border: \"unset\",\r\n width: \"100%\",\r\n height: \"65vh\"\r\n }\r\n})\r\n\r\nfunction AddContactor(\r\n {\r\n classes,\r\n onClose = () => {\r\n },\r\n\t\taddContractorsTab = ()=> {},\r\n demandId,\r\n onePlaceContractor\r\n }) {\r\n\r\n\r\n useEffect(() => {\r\n ContractorService.getOnePlace(demandId);\r\n return () => ContractorService.clearResources(ContractorService.CONTRACTOR_ONE_PLACE_ID);\r\n }, [demandId])\r\n\r\n\r\n return (\r\n <>\r\n \r\n {contractorImport(demandId, addContractorsTab, onClose)}\r\n >\r\n )\r\n}\r\n\r\nAddContactor.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n onePlaceContractor: state.resources.onePlaceContractor,\r\n}), {})(withStyles(style)(AddContactor));","import React, {useState} from 'react'\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Loading from \"components/Loading\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport AddContactor from \"components/popup/addContactor/AddContactor\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport InviteContactor from \"components/popup/inviteContactor/InviteContactor\";\r\nimport Chip from \"components/Chip\";\r\nimport ContractorService from \"services/ContractorService\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n inlineBlock: {\r\n display: 'inline-block',\r\n marginRight: theme.spacing(2)\r\n },\r\n loading: {\r\n width: '98%'\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n },\r\n uploadFile: {\r\n marginBottom: 20\r\n },\r\n nameError: {\r\n fontSize: '0.75rem'\r\n }\r\n}));\r\n\r\nfunction RegisterEnvelopeForm(\r\n {\r\n demandId,\r\n working,\r\n error,\r\n formikProps,\r\n newEnvelope\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [addPopup, setAddPopup] = useState(false);\r\n const [invitePopup, setInvitePopup] = useState(false);\r\n\r\n const getFormButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('add_contractor'), () => setAddPopup(true), undefined, working));\r\n buttons.push(createButton(Tr('suggest_contractor'), () => setInvitePopup(true), undefined, working));\r\n return buttons;\r\n }\r\n\r\n const getInviteDefaultValues = () => ({\r\n name: getObjectValue('name', formikProps.values, ''),\r\n email: getObjectValue('email', formikProps.values, ''),\r\n postCode: getObjectValue('postCode', formikProps.values, ''),\r\n city: getObjectValue('city', formikProps.values, ''),\r\n address: getObjectValue('address', formikProps.values, ''),\r\n vatin: {\r\n number: getObjectValue('vatin.number', formikProps.values, ''),\r\n prefix: getObjectValue('vatin.prefix', formikProps.values, 'PL'),\r\n }\r\n }\r\n )\r\n\r\n\r\n const handleClearContractor = () => {\r\n\r\n const values = {\r\n ...formikProps.values,\r\n contractorDepartmentId: 0,\r\n suggestContractor: false,\r\n contractorName: null,\r\n name: '',\r\n email: '',\r\n postCode: '',\r\n city: '',\r\n address: '',\r\n vatin: {\r\n number: '',\r\n prefix: \"PL\"\r\n }\r\n };\r\n formikProps.setValues(values);\r\n }\r\n\r\n const handleChipClick = () => {\r\n if (getObjectValue('suggestContractor', formikProps.values, false)) {\r\n setInvitePopup(true);\r\n } else {\r\n setAddPopup(true);\r\n }\r\n\r\n }\r\n const handleAddContractors = (data) => {\r\n\r\n if (data && data.platformAdded.length > 0) {\r\n ContractorService.getContractorDetails(demandId, data.platformAdded[0]).then((resp) => {\r\n handleClearContractor();\r\n formikProps.setFieldValue(\"contractorDepartmentId\", data.platformAdded[0]);\r\n formikProps.setFieldValue(\"contractorName\", resp.name);\r\n }).finally(() => setAddPopup(false));\r\n } else {\r\n setAddPopup(false);\r\n }\r\n }\r\n\r\n const handleInvite = (data) => {\r\n const values = {\r\n ...formikProps.values,\r\n suggestContractor: true,\r\n contractorDepartmentId: 0,\r\n contractorName: data.name,\r\n ...data\r\n };\r\n formikProps.setValues(values);\r\n setInvitePopup(false);\r\n }\r\n\r\n const contractorName = getObjectValue('contractorName', formikProps.values, false);\r\n const contractorNameError = getObjectValue('contractorName', formikProps.errors, '');\r\n\r\n return (\r\n {working && }\r\n\r\n {newEnvelope && }\r\n\r\n \r\n {Tr('offer_supplier')}*:\r\n {!!contractorName && }\r\n {!!contractorNameError && {contractorNameError}}\r\n
\r\n\r\n {error && {error}}\r\n\r\n \r\n\r\n\r\n {addPopup && setAddPopup(false)}\r\n addContractorsTab={handleAddContractors}\r\n />}\r\n\r\n {invitePopup && setInvitePopup(false)}\r\n handleInvite={handleInvite}\r\n defaultValues={getInviteDefaultValues()}\r\n collectPostCode\r\n collectAddress\r\n collectCity\r\n />}\r\n\r\n )\r\n}\r\n\r\nexport default RegisterEnvelopeForm;","import React, {useEffect, useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport VS from \"constants/ValidationShema\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport RegisterEnvelopeForm from \"./RegisterEnvelopeForm\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\nimport Loading from \"components/Loading\";\r\nimport PropTypes from 'prop-types';\r\nimport moment from \"libs/moment\";\r\n\r\nfunction RegisterEnvelopePopup(\r\n {\r\n demandId,\r\n rfxRoundId,\r\n onClose,\r\n envelopeId,\r\n formSubmit,\r\n }) {\r\n\r\n const newEnvelope = envelopeId === -1;\r\n const [error, setError] = useState('');\r\n const [working, setWorking] = useState(false);\r\n const [loading, setLoading] = useState(true);\r\n const [loadedEnvelope, setLoadedEnvelope] = useState({});\r\n const formId = useId();\r\n\r\n useEffect(() => {\r\n if (newEnvelope) {\r\n setLoading(false);\r\n } else {\r\n RfxOfferService.getEnvelope(rfxRoundId, envelopeId).then((resp) => {\r\n setLoadedEnvelope(resp);\r\n }).finally(() => setLoading(false))\r\n }\r\n }, [envelopeId, newEnvelope, rfxRoundId])\r\n const handleSubmit = () => {\r\n setError('');\r\n formSubmit[formId]();\r\n }\r\n\r\n const handleSaveResponse = (response) => {\r\n if (isResponseValid(response, setError)) {\r\n onClose();\r\n }\r\n }\r\n\r\n const onSubmit = (envelope) => {\r\n setWorking(true);\r\n\r\n const req = {\r\n identity: envelopeId,\r\n dateOfReceipt: envelope.offerDate.format(),\r\n roundId: rfxRoundId\r\n }\r\n if (envelope.suggestContractor) {\r\n req.invitation = {\r\n name: envelope.name,\r\n address: envelope.address,\r\n postCode: envelope.postCode,\r\n city: envelope.city,\r\n vatin: {...envelope.vatin},\r\n email: envelope.email\r\n }\r\n } else {\r\n req.contractor = {\r\n identity: envelope.contractorDepartmentId\r\n }\r\n }\r\n RfxOfferService.saveEnvelope(rfxRoundId, req).then((resp) => handleSaveResponse(resp)).finally(() => setWorking(false));\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), () => onClose(true), 'outlined', working));\r\n buttons.push(createButton(Tr('save'), handleSubmit, undefined, working || loading));\r\n return buttons;\r\n }\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\n\r\nRegisterEnvelopePopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n rfxRoundId: PropTypes.number.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n envelopeId: PropTypes.number.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(RegisterEnvelopePopup);","import React, {useEffect, useState} from 'react'\r\nimport Loading from 'components/Loading';\r\nimport MoreButton from \"components/button/MoreButton\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\nimport OfferTable from \"./components/OfferTable\";\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport useSearch, {getPaginationConfig} from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport GridBlock from \"../../GridBlock\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Tr from \"translations/Translations\";\r\nimport RegisterEnvelopePopup from \"./components/envelope/RegisterEnvelopePopup\";\r\nimport {connect} from \"react-redux\";\r\nimport PropTypes from 'prop-types'\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport SplitButton, {createButton as createSplitButton} from \"../../popup/components/SplitButton\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {}\r\n}));\r\n\r\nfunction Offers(\r\n {\r\n demandId,\r\n demandStatistics,\r\n currentRfxRound,\r\n offers,\r\n offersActions,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [offerLoading, setOfferLoading] = useState(true);\r\n const [registerEnvelopePopupOpened, setRegisterEnvelopePopupOpened] = useState(0);\r\n const [downloadWorking, setDownloadWorking] = useState(false);\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig} = useSearch();\r\n\r\n const refreshCurrentRows = () => {\r\n setOfferLoading(true);\r\n const loadedRows = offers.items.length;\r\n const {pagination} = searchData;\r\n let curPageSize = loadedRows < pagination.pageSize ? pagination.pageSize : loadedRows;\r\n RfxOfferService.getOffers(currentRfxRound.id, getPaginationConfig(1, curPageSize)).then(() => setOfferLoading(false));\r\n }\r\n\r\n useEffect(() => {\r\n if (!!offers && !!demandStatistics) {\r\n if (offers.totalCount !== demandStatistics.numberOfOffers) {\r\n refreshCurrentRows();\r\n }\r\n }\r\n //na 2 etapie ma wczytywać gdy zmieni się liczba ofert, na 3 etapie to nie powinno się odpalać.\r\n // eslint-disable-next-line\r\n }, [demandStatistics])\r\n\r\n\r\n useEffect(() => {\r\n if (currentRfxRound?.id)\r\n RfxOfferService.getAvailableActions(currentRfxRound.id);\r\n return () => {\r\n RfxOfferService.clearResources(RfxOfferService.RESOURCE_ID_RFX_OFFER_LIST)\r\n RfxOfferService.clearResources(RfxOfferService.RESOURCE_ID_RFX_OFFERS_ACTIONS)\r\n }\r\n }, [demandId, currentRfxRound?.id])\r\n\r\n useEffect(() => {\r\n if (currentRfxRound?.id) {\r\n setOfferLoading(true);\r\n const {pagination, search} = searchData;\r\n RfxOfferService.getOffers(currentRfxRound.id, pagination, search).then(() => (setOfferLoading(false)));\r\n }\r\n // eslint-disable-next-line\r\n }, [searchData, currentRfxRound?.id])\r\n\r\n useDidUpdateEffect(() => {\r\n if (offers?.totalCount !== undefined) {\r\n setTotalCount(offers.totalCount)\r\n }\r\n }, [offers?.totalCount]);\r\n\r\n\r\n const runDownload = (type) => {\r\n setDownloadWorking(true);\r\n if (type === 'attachments')\r\n RfxOfferService.downloadOffersAttachments(currentRfxRound.id, () => setDownloadWorking(false))\r\n else\r\n RfxOfferService.downloadOffersSummary(currentRfxRound.id, type, () => setDownloadWorking(false))\r\n }\r\n\r\n const getAdditionalButtons = () => {\r\n const buttons = [];\r\n if (offersActions.attachments)\r\n buttons.push(createSplitButton(offersActions.attachments.name, () => runDownload('attachments'), downloadWorking));\r\n if (offersActions.itemSummaryXls)\r\n buttons.push(createSplitButton(offersActions.itemSummaryXls.name, () => runDownload('item'), downloadWorking));\r\n if (offersActions.itemParametersXls)\r\n buttons.push(createSplitButton(offersActions.itemParametersXls.name, () => runDownload('itemParameters'), downloadWorking));\r\n if (offersActions.summaryXls)\r\n buttons.push(createSplitButton(offersActions.summaryXls.name, () => runDownload('xls'), downloadWorking));\r\n if (offersActions.summaryPdf)\r\n buttons.push(createSplitButton(offersActions.summaryPdf.name, () => runDownload('pdf'), downloadWorking));\r\n return ()\r\n }\r\n\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n if (offersActions.envelope)\r\n buttons.push(createButton(offersActions.envelope.name, () => setRegisterEnvelopePopupOpened(-1), undefined));\r\n return ()\r\n };\r\n\r\n if (!offers || !offersActions || !currentRfxRound) return \r\n\r\n return (\r\n <>\r\n \r\n \r\n {getButtons()}\r\n \r\n\r\n\r\n setRegisterEnvelopePopupOpened(envelopeId)}\r\n demandHeader={demandHeader}\r\n />\r\n\r\n \r\n\r\n {!!registerEnvelopePopupOpened &&\r\n {\r\n if (!cancel)\r\n refreshCurrentRows();\r\n setRegisterEnvelopePopupOpened(0);\r\n }}/>}\r\n >\r\n )\r\n}\r\n\r\nOffers.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n downloadOffers: PropTypes.bool,\r\n registerEnvelope: PropTypes.bool\r\n}\r\n\r\nexport default connect((state) => ({\r\n offers: state.resources[RfxOfferService.RESOURCE_ID_RFX_OFFER_LIST],\r\n offersActions: state.resources[RfxOfferService.RESOURCE_ID_RFX_OFFERS_ACTIONS],\r\n demandStatistics: state.resources[StatisticsService.DEMAND_STATISTICS_RESOURCE_ID],\r\n currentRfxRound: state.resources[StatisticsService.CURRENT_RFX_RESOURCE_ID],\r\n demandHeader: state.resources.demandHeader,\r\n}), {})(Offers);","import React, {useEffect} from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport Offers from \"components/complex/offer/Offers\";\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport {connect} from \"react-redux\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport validateSection from \"services/helpers/validateSection\";\r\n\r\nfunction OffersPanel(\r\n {\r\n match,\r\n demandValidation\r\n }) {\r\n const curDemandValidation = DemandValidation.OFFERS;\r\n const id = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n\r\n useEffect(() => {\r\n StatisticsService.getCurrentRound(id);\r\n validateSection(curDemandValidation, id, false);\r\n return () => StatisticsService.clearCurrentRound();\r\n },[curDemandValidation, id])\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(OffersPanel));","import React from 'react'\r\nimport OffersPanel from \"./OffersPanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import {ProcedureType} from \"constants/ProcedureType\";\r\n\r\nconst PROCEDURE_TYPES = [ProcedureType.PUBLIC, ProcedureType.SOCIALSERVICES, ProcedureType.NATIONAL_SOCIAL_SERVICES, ProcedureType.NATIONAL_PUBLIC];\r\nexport default (demandHeader) => {\r\n return demandHeader && demandHeader.noticeOjsType === false && demandHeader.noticeBzpType === false && PROCEDURE_TYPES.includes(demandHeader.procedureType);\r\n}\r\n","import React, {useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport {isDemandPreparing} from \"libs/getDemandStatus\";\r\nimport Loading from \"components/Loading\";\r\nimport Button from \"components/Button\";\r\nimport DemandService from \"services/DemandService\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n loading: {\r\n width: '98%'\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n }\r\n}));\r\n\r\nfunction AddBzpNoticePopup(\r\n {\r\n demandId,\r\n onClose,\r\n formSubmit,\r\n siwzTypes,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const [working, setWorking] = useState(false);\r\n const [errorText, setErrorText] = useState();\r\n const [downloadSuccess, setDownloadSuccess] = useState(false);\r\n\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const processResponse = async (resp) => {\r\n if (resp.success) {\r\n await DemandService.getValidate(demandId, false)\r\n await SiwzService.getList(demandId);\r\n setDownloadSuccess(true);\r\n } else {\r\n setErrorText(resp.errors.shift());\r\n }\r\n\r\n }\r\n\r\n const onSubmit = ({bzpNoticeId}) => {\r\n setWorking(true);\r\n setErrorText();\r\n const bzpSiwzType = Object.keys(siwzTypes).find(x => \"notice_changed\" === x || \"noticeAttachments\" === x);\r\n SiwzService.addBzpNotice(demandId, bzpNoticeId.trim(), bzpSiwzType).then(processResponse).catch(() => {\r\n }).finally(() => {\r\n setWorking(false);\r\n });\r\n }\r\n\r\n\r\n if(downloadSuccess) {\r\n return (\r\n )\r\n }\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nAddBzpNoticePopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired\r\n};\r\n\r\nexport default connect((state) => ({\r\n siwzTypes: state.resources[SiwzService.SIWZ_TYPE_LIST_RESOURCE_ID],\r\n formSubmit: state.form\r\n}), {})(AddBzpNoticePopup);","import React from 'react'\r\nimport {makeStyles, Typography} from '@material-ui/core';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport DoubleButton from 'components/popup/components/DoubleButton';\r\nimport Select from 'components/Select';\r\nimport VS from 'constants/ValidationShema';\r\nimport BooleanItems from \"constants/BooleanItems\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport {SiwzSourceType} from \"./constants/SiwzSourceType\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n text: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n gridContainer: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n fileName: {\r\n width: 300\r\n },\r\n select: {\r\n width: 200,\r\n marginLeft: theme.spacing(2)\r\n },\r\n parentSelect: {\r\n width: 200,\r\n }\r\n}));\r\n\r\nfunction SelectSiwzDocumentType(\r\n {\r\n items,\r\n onCancel,\r\n onSubmit,\r\n pickAutopublish,\r\n pickParent,\r\n formSubmit,\r\n types,\r\n siwzList\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const formId = useId();\r\n const selectId = 'item';\r\n const parentId = 'parent';\r\n const autopublishId = 'autopublish';\r\n\r\n const createSelectTab = () => {\r\n if (types === undefined) return '';\r\n return Object.keys(types).map(x => ({value: x, label: types[x]}));\r\n }\r\n\r\n const createParentSelectTab = () => {\r\n if (siwzList === undefined) return '';\r\n const tab = [];\r\n tab.push({\r\n label: Tr('new'),\r\n value: 0\r\n });\r\n siwzList.filter(x => x.source === SiwzSourceType.SIWZ).forEach((x) => {\r\n tab.push({\r\n label: x.name,\r\n value: x.identity\r\n })\r\n })\r\n\r\n return tab\r\n }\r\n\r\n const generateItems = (formikProps) => {\r\n if (items.length === 0) {\r\n return {Tr(\"file_extension_error\")}\r\n }\r\n return items.map((item, i) => {\r\n return (\r\n \r\n {item.name}\r\n\r\n {pickParent && {if(event.target.value !== 0) formikProps.setFieldValue(selectId + i, '') }}\r\n />}\r\n\r\n \r\n\r\n {pickAutopublish && }\r\n\r\n \r\n )\r\n })\r\n };\r\n\r\n const submitForm = () => {\r\n formSubmit[formId]()\r\n };\r\n\r\n const generateInitialValues = () => {\r\n let obj = {};\r\n for (let i = 0; i < items.length; i++) {\r\n obj[selectId + i] = \"\";\r\n obj[parentId + i] = 0;\r\n obj[autopublishId + i] = false;\r\n }\r\n return obj\r\n };\r\n\r\n const generateValidationSchema = () => {\r\n let obj = {};\r\n for (let i = 0; i < items.length; i++) {\r\n obj[selectId + i] = VS.stringMaxNoRq(2048)\r\n .when( parentId+i, (other, schema) => other === 0 ? VS.string() : schema)\r\n }\r\n\r\n return VS.object(obj)\r\n };\r\n\r\n const handleSubmit = (values) => onSubmit(values, items)\r\n\r\n if (items === undefined) return '';\r\n return (\r\n \r\n )\r\n}\r\n\r\nSelectSiwzDocumentType.propTypes = {\r\n items: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired\r\n })).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n pickAutopublish: PropTypes.bool.isRequired,\r\n pickParent: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form,\r\n types: state.resources[SiwzService.SIWZ_TYPE_LIST_RESOURCE_ID],\r\n siwzList: state.resources[SiwzService.SIWZ_LIST_RESOURCE_ID],\r\n}), {})(SelectSiwzDocumentType);","import React, {useEffect, useState} from 'react';\r\nimport Dialog from \"components/Dialog\";\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport Loading from \"components/Loading\";\r\nimport moment from 'moment';\r\nimport MoreButton from \"components/button/MoreButton\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport SingleButton from \"components/popup/components/SingleButton\";\r\nimport PropTypes from 'prop-types';\r\nimport useSearch from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n buttonRow: {\r\n marginTop: theme.spacing(2),\r\n textAlign: \"end\"\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n ipColumn: theme.components.table.ipColumn,\r\n dateColumn: theme.components.table.dateColumn\r\n}));\r\n\r\nexport const createDownloadHistoryFile = (fileName, demandId, fileId) => ({fileName, demandId, fileId})\r\n\r\nconst DownloadHistoryPopup = (\r\n {\r\n downloadHistoryFile,\r\n service,\r\n onClose\r\n }) => {\r\n\r\n const classes = useStyle({});\r\n\r\n const [downloadHistory, setDownloadHistory] = useState(null);\r\n const [historyLoading, setHistoryLoading] = useState(false);\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig} = useSearch();\r\n\r\n useEffect(() => {\r\n setHistoryLoading(true);\r\n const {pagination} = searchData;\r\n service.getDownloadHistory(downloadHistoryFile.demandId, downloadHistoryFile.fileId, pagination).then(handleHistoryLoad);\r\n // eslint-disable-next-line\r\n }, [searchData, downloadHistoryFile])\r\n\r\n useDidUpdateEffect(() => {\r\n if (downloadHistory?.totalCount !== undefined) {\r\n setTotalCount(downloadHistory.totalCount)\r\n }\r\n }, [downloadHistory?.totalCount]);\r\n\r\n\r\n const handleHistoryLoad = (resp) => {\r\n if (resp.paginator.page > 1) {\r\n setDownloadHistory((curState) => {\r\n return {\r\n ...resp,\r\n items: [...curState.items, ...resp.items]\r\n }\r\n });\r\n } else {\r\n setDownloadHistory(resp);\r\n }\r\n setHistoryLoading(false);\r\n }\r\n\r\n return (\r\n }\r\n >\r\n\r\n {!downloadHistory && }\r\n\r\n {downloadHistory && <>\r\n \r\n {downloadHistoryFile.fileName}\r\n \r\n \r\n {Tr('download_count_x', {downloadCount: downloadHistory.contractorTotalCount})}\r\n \r\n [\r\n (index + 1),\r\n item.downloadUserFullName === 'download.history.list.notloggeduser' ? Tr(item.downloadUserFullName) : item.downloadUserFullName,\r\n item.ipAddress,\r\n item.downloadDate ? moment(item.downloadDate).format(DateFormats.DATETIME_FORMAT) : ''\r\n ])}\r\n />\r\n\r\n {historyLoading && }\r\n \r\n\r\n >}\r\n \r\n );\r\n}\r\n\r\n\r\nDownloadHistoryPopup.propTypes = {\r\n downloadHistoryFile: PropTypes.shape({\r\n fileName: PropTypes.string.isRequired,\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n fileId: PropTypes.oneOfType([PropTypes.number, PropTypes.object]).isRequired\r\n }),\r\n service: PropTypes.shape({\r\n getDownloadHistory: PropTypes.func.isRequired\r\n }),\r\n onClose: PropTypes.func.isRequired\r\n};\r\n\r\nexport default DownloadHistoryPopup;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport CloudDoneIcon from '@material-ui/icons/CloudDone';\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction WorkableIconDownloadCountButton(\r\n {\r\n tooltip = Tr('download_count'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconDownloadCountButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconDownloadCountButton;","import React from 'react'\r\nimport IconButton from './IconButton';\r\nimport WarningRoundedIcon from '@material-ui/icons/WarningRounded'\r\nimport clsx from 'clsx';\r\n\r\n\r\nfunction WarningRoundedButton(\r\n {\r\n tooltip,\r\n className,\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nexport default WarningRoundedButton;","import React from 'react';\r\n\r\nconst DemandValidationContext = React.createContext(null);\r\nexport const DemandValidationProvider = DemandValidationContext.Provider;\r\nexport default DemandValidationContext;","import React, {useReducer, useState} from 'react'\r\nimport {makeStyles, TableCell, TableRow} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport moment from \"libs/moment\";\r\nimport WorkableIconDownloadButton from 'components/button/WorkableIconDownloadButton';\r\nimport WorkableIconUnpublishButton from \"components/button/WorkableIconUnpublishButton\";\r\nimport WorkableIconPublishButton from \"components/button/WorkableIconPublishButton\";\r\nimport WorkableIconDownloadCountButton from \"components/button/WorkableIconDownloadCountButton\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport WorkableIconSearchButton from \"components/button/WorkableIconSearchButton\";\r\nimport {getPublishDateCellValue} from \"./SiwzFileTableRow\";\r\nimport clsx from \"clsx\";\r\nimport WorkableIconShareButton from \"components/button/WorkableIconShareButton\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport ShareSelectPopup, {sharePopupData} from \"components/popup/ShareSelectPopup\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n cell: {\r\n padding: theme.spacing(1),\r\n },\r\n buttonColumn: theme.components.table.buttonColumn\r\n}));\r\n\r\nfunction SiwzVersionsTableRow(\r\n {\r\n demandId,\r\n rootRowIdentity,\r\n row,\r\n onOpenDownloadHistory,\r\n onEditDescriptionFile,\r\n showShare,\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [shareFilePopup, setShareFilePopup] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n preview: false,\r\n download: false,\r\n publish: false,\r\n share: false,\r\n downloadCount: false\r\n });\r\n\r\n const onDownload = () => {\r\n dispatchIconWorks({type: 'download', works: true});\r\n SiwzService.getDownloadFile(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source, rootRowIdentity), false)\r\n .finally(() => dispatchIconWorks({type: 'download', works: false}));\r\n }\r\n\r\n const onPublish = () => {\r\n dispatchIconWorks({type: 'publish', works: true});\r\n SiwzService.publish(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source, rootRowIdentity))\r\n .finally(() => dispatchIconWorks({type: 'publish', works: false}));\r\n };\r\n\r\n const onUnpublish = () => {\r\n dispatchIconWorks({type: 'publish', works: true});\r\n SiwzService.unpublish(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source, rootRowIdentity))\r\n .finally(() => dispatchIconWorks({type: 'publish', works: false}));\r\n };\r\n\r\n const onShareFile = (row) => setShareFilePopup(sharePopupData(row.name, row));\r\n\r\n const doShare = (row, system) => {\r\n setShareFilePopup(null);\r\n dispatchIconWorks({type: 'share', works: true});\r\n SiwzService.shareSiwz(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source, rootRowIdentity), system).then((resp) => {\r\n if (resp)\r\n enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: system}, true))\r\n }).finally(() => {\r\n dispatchIconWorks({type: 'share', works: false})\r\n });\r\n }\r\n\r\n return (\r\n {row.name}\r\n \r\n onEditDescriptionFile(row, rootRowIdentity)}\r\n tooltip={row.description ? {row.description}
: {Tr('no_description')}}\r\n disabled={iconWorks.anyWorks}\r\n />\r\n \r\n {row.typeTranslated}\r\n {row.version}\r\n {moment(row.createDate).format(DateFormats.DATETIME_FORMAT)}\r\n {getPublishDateCellValue(row)}\r\n \r\n onDownload(row)}\r\n disabled={iconWorks.anyWorks || !row.actions.download}\r\n hideTooltip={!row.actions.download}\r\n working={iconWorks.download}\r\n />\r\n \r\n {showShare && \r\n onShareFile(row)}\r\n disabled={iconWorks.anyWorks || !row.actions.download}\r\n working={iconWorks.share}\r\n />\r\n {!!shareFilePopup && setShareFilePopup(null)}\r\n onChoose={doShare}\r\n />}\r\n }\r\n \r\n {!!row.actions.unpublish ?\r\n onUnpublish(row)}\r\n disabled={iconWorks.anyWorks || !row.actions.unpublish}\r\n working={iconWorks.publish}\r\n /> :\r\n onPublish(row)}\r\n disabled={iconWorks.anyWorks || !row.actions.publish}\r\n hideTooltip={!row.actions.publish}\r\n working={iconWorks.publish}\r\n />\r\n }\r\n \r\n \r\n onOpenDownloadHistory(row, rootRowIdentity)}\r\n disabled={!row.actions.downloadDetails}\r\n hideTooltip={!row.actions.downloadDetails}\r\n />\r\n \r\n )\r\n}\r\n\r\nSiwzVersionsTableRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n rootRowIdentity: PropTypes.number.isRequired,\r\n row: PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n source: PropTypes.string.isRequired\r\n }).isRequired,\r\n onOpenDownloadHistory: PropTypes.func.isRequired,\r\n onEditDescriptionFile: PropTypes.func.isRequired,\r\n showShare: PropTypes.bool.isRequired\r\n};\r\n\r\nexport default SiwzVersionsTableRow;","import React from 'react'\r\nimport {makeStyles, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport clsx from \"clsx\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport SiwzVersionsTableRow from \"./SiwzVersionsTableRow\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n cell: {\r\n padding: theme.spacing(1),\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n versionColumn: {\r\n width: 70\r\n },\r\n typeColumn: {\r\n width: 180\r\n }\r\n}));\r\n\r\nfunction SiwzVersionsTable(\r\n {\r\n demandId,\r\n rootRowIdentity,\r\n versions,\r\n onOpenDownloadHistory,\r\n onEditDescriptionFile,\r\n showShare,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n return (\r\n \r\n \r\n \r\n {Tr(\"name\")}\r\n {Tr(\"description\")}\r\n {Tr(\"type\")}\r\n {Tr(\"version\")}\r\n {Tr(\"add_data\")}\r\n {Tr(\"publish_data\")}\r\n \r\n {showShare && }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n versions.map((doc) => (\r\n \r\n ))\r\n }\r\n \r\n\r\n
\r\n )\r\n}\r\n\r\nSiwzVersionsTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n rootRowIdentity: PropTypes.number.isRequired,\r\n versions: PropTypes.arrayOf(PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n source: PropTypes.string.isRequired\r\n })).isRequired,\r\n onOpenDownloadHistory: PropTypes.func.isRequired,\r\n onEditDescriptionFile: PropTypes.func.isRequired,\r\n showShare: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SiwzVersionsTable;","import React, {useContext, useMemo, useReducer, useState} from 'react'\r\nimport {makeStyles, TableCell, TableRow} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport moment from \"libs/moment\";\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport WorkableIconDownloadButton from 'components/button/WorkableIconDownloadButton';\r\nimport WorkableIconDownloadCountButton from \"components/button/WorkableIconDownloadCountButton\";\r\nimport WarningRoundedButton from \"components/button/WarningRoundedButton\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport DemandValidationContext from \"context/DemandValidationContext\";\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport WorkableIconUnpublishButton from \"components/button/WorkableIconUnpublishButton\";\r\nimport WorkableIconPublishButton from \"components/button/WorkableIconPublishButton\";\r\nimport WorkableIconSearchButton from \"components/button/WorkableIconSearchButton\";\r\nimport SiwzVersionsTable from \"./SiwzVersionsTable\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\nimport reduxStore from 'redux/store'\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\nimport validateSection from \"services/helpers/validateSection\";\r\nimport WorkableIconShareButton from \"components/button/WorkableIconShareButton\";\r\nimport ShareSelectPopup, {sharePopupData} from \"components/popup/ShareSelectPopup\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport HelpComponent from \"../../../HelpComponent\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n warnIcon: {\r\n padding: 0,\r\n color: `${theme.palette.secondary.main} !important`\r\n },\r\n descriptionTooltip: {\r\n whiteSpace: 'pre-line'\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n versionsCell: {\r\n background: theme.palette.background.default,\r\n paddingLeft: 0,\r\n paddingRight: 0\r\n }\r\n}));\r\n\r\nexport const getPublishDateCellValue = (row) => {\r\n switch (row.status) {\r\n case 'uploaded':\r\n return Tr('new');\r\n case 'unpublished':\r\n return Tr('unpublished');\r\n default:\r\n return row.publishDate ? moment(row.publishDate).format(DateFormats.DATETIME_FORMAT) : null\r\n }\r\n};\r\n\r\nfunction SiwzFileTableRow(\r\n {\r\n demandId,\r\n index,\r\n row,\r\n isPublished,\r\n disabled,\r\n onOpenDownloadHistory,\r\n onEditDescriptionFile,\r\n showShare,\r\n }) {\r\n const classes = useStyle();\r\n const currentDemandValidation = useContext(DemandValidationContext);\r\n const [shareFilePopup, setShareFilePopup] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n publish: false,\r\n delete: false,\r\n expand: false,\r\n share: false,\r\n });\r\n\r\n const hasVersions = useMemo(() => row.version && row.version > 1, [row]);\r\n\r\n const onVersionsExpand = () => {\r\n dispatchIconWorks({type: 'expand', works: true});\r\n var func;\r\n if (!row.versions)\r\n func = SiwzService.getVersions\r\n else\r\n func = SiwzService.clearVersions\r\n\r\n func(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source))\r\n .finally(() => dispatchIconWorks({type: 'expand', works: false}));\r\n }\r\n\r\n const onDownload = () => {\r\n dispatchIconWorks({type: 'download', works: true});\r\n SiwzService.getDownloadFile(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source), false)\r\n .finally(() => dispatchIconWorks({type: 'download', works: false}));\r\n }\r\n\r\n const checkRealizationAmountValue = async () => {\r\n //demand validation nie ma na II etapie\r\n if (!currentDemandValidation && row.type === \"x.realizationAmountValue\") {\r\n const {resources} = reduxStore.getState();\r\n const currentRfxRound = resources[StatisticsService.CURRENT_RFX_RESOURCE_ID];\r\n if (Boolean(currentRfxRound)) {\r\n RfxOfferService.getOffersDecryptionStatus(currentRfxRound.id);\r\n }\r\n } else if (currentDemandValidation === DemandValidation.DOCUMENTS && row.type.startsWith('x.openOffers')) {\r\n await validateSection(DemandValidation.CONTRACTOR_VERIFICATION, demandId, false)\r\n await validateSection(DemandValidation.OFFERS_EVALUATION, demandId, false)\r\n await validateSection(DemandValidation.OFFER_CHOICE, demandId, false)\r\n }\r\n }\r\n\r\n const onPublish = () => {\r\n dispatchIconWorks({type: 'publish', works: true});\r\n SiwzService.publish(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source), currentDemandValidation)\r\n .then(checkRealizationAmountValue).finally(() => dispatchIconWorks({type: 'publish', works: false}));\r\n };\r\n\r\n const onUnpublish = () => {\r\n dispatchIconWorks({type: 'publish', works: true});\r\n SiwzService.unpublish(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source), currentDemandValidation)\r\n .then(checkRealizationAmountValue).finally(() => dispatchIconWorks({type: 'publish', works: false}));\r\n };\r\n\r\n const onDelete = () => {\r\n dispatchIconWorks({type: 'delete', works: true});\r\n SiwzService.deleteItem(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source), currentDemandValidation)\r\n .finally(() => {\r\n dispatchIconWorks({type: 'delete', works: false})\r\n });\r\n }\r\n\r\n const onShareFile = (row) => setShareFilePopup(sharePopupData(row.name, row));\r\n\r\n const doShare = (row, system) => {\r\n setShareFilePopup(null);\r\n dispatchIconWorks({type: 'share', works: true});\r\n SiwzService.shareSiwz(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source), system).then((resp) => {\r\n if (resp)\r\n enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: system}, true))\r\n }).finally(() => {\r\n dispatchIconWorks({type: 'share', works: false})\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {index}\r\n \r\n {(isPublished && row.status !== 'published' && row.status !== 'accepted') &&\r\n \r\n } {row.name}\r\n \r\n \r\n onEditDescriptionFile(row)}\r\n tooltip={row.description ? {row.description}
: {Tr('no_description')}}\r\n />\r\n \r\n {row.typeTranslated}\r\n \r\n \r\n \r\n {moment(row.createDate).format(DateFormats.DATETIME_FORMAT)}\r\n {isPublished && {getPublishDateCellValue(row)}}\r\n \r\n onDownload(row.actions.download, row.name)}\r\n disabled={iconWorks.anyWorks || !row.actions.download}\r\n working={iconWorks.download}\r\n />\r\n \r\n {\r\n showShare &&\r\n \r\n onShareFile(row)}\r\n hideTooltip={!row.actions.download}\r\n disabled={iconWorks.anyWorks || !row.actions.download}\r\n working={iconWorks.share}\r\n />\r\n\r\n {!!shareFilePopup && setShareFilePopup(null)}\r\n onChoose={doShare}\r\n />}\r\n \r\n }\r\n {isPublished && \r\n\r\n {row.status === \"published\" || row.status === \"accepted\" ?\r\n \r\n :\r\n \r\n }\r\n \r\n }\r\n {isPublished && \r\n onOpenDownloadHistory(row)}\r\n hideTooltip={!row.actions.downloadDetails}\r\n disabled={iconWorks.anyWorks || !row.actions.downloadDetails}\r\n />\r\n \r\n }\r\n \r\n \r\n \r\n\r\n {isPublished && \r\n \r\n \r\n }\r\n \r\n\r\n {!!row.versions &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n )\r\n}\r\n\r\nSiwzFileTableRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n row: PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n source: PropTypes.string.isRequired\r\n }).isRequired,\r\n index: PropTypes.number.isRequired,\r\n isPublished: PropTypes.bool.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n onOpenDownloadHistory: PropTypes.func.isRequired,\r\n onEditDescriptionFile: PropTypes.func.isRequired,\r\n showShare: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SiwzFileTableRow;","import React, {useContext, useMemo, useState} from 'react'\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport DownloadHistoryPopup, {createDownloadHistoryFile} from \"components/popup/DownloadHistoryPopup\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport EditDescriptionPopup, {createEditDescriptionFile} from \"components/popup/EditDescriptionPopup\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport SiwzFileTableRow from \"./SiwzFileTableRow\";\r\nimport DemandValidationContext from \"context/DemandValidationContext\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PropTypes from 'prop-types';\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport {shareSystemsActive} from \"libs/shareSystems\";\r\nimport {connect} from \"react-redux\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n lpColumn: theme.components.table.lpColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n typeColumn: {\r\n width: 180\r\n }\r\n}));\r\n\r\nfunction SiwzFileTable(\r\n {\r\n demandId,\r\n isPublished,\r\n disabled,\r\n siwzList,\r\n demandPrivileges = {},\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [downloadHistory, setDownloadHistory] = useState(null);\r\n const [openConfirmDeleteAll, setOpenConfirmDeleteAll] = useState(false);\r\n const [editDescriptionFile, setEditDescriptionFile] = useState(null);\r\n const currentDemandValidation = useContext(DemandValidationContext);\r\n\r\n const showShare = useMemo(() => demandPrivileges.INTEGRATIONS_UPLOAD && shareSystemsActive(demandHeader).length > 0, [demandHeader, demandPrivileges])\r\n\r\n const onDeleteAll = () => {\r\n setOpenConfirmDeleteAll(false);\r\n SiwzService.deleteAll(demandId, currentDemandValidation);\r\n };\r\n\r\n const onDownloadHistoryDialogClose = () => {\r\n setDownloadHistory(null);\r\n }\r\n\r\n const openDownloadHistory = (row, parentRowIdentity) => {\r\n setDownloadHistory(createDownloadHistoryFile(row.name, demandId, SiwzService.buildSiwzIdentity(row.identity, row.source, parentRowIdentity)));\r\n };\r\n\r\n const openEditDescription = (row, parentRowIdentity) => {\r\n setEditDescriptionFile(createEditDescriptionFile(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source, parentRowIdentity),\r\n row.name, row.description, !row.actions.editDescription));\r\n };\r\n\r\n return (<>\r\n {!!siwzList && \r\n {!siwzList.length ?\r\n
{Tr('no_options')}\r\n :\r\n <>\r\n\r\n
\r\n \r\n \r\n {Tr(\"column_lp\")}\r\n {Tr(\"name\")}\r\n {Tr(\"description\")}\r\n {Tr(\"type\")}\r\n {Tr(\"size\")}\r\n {Tr(\"add_data\")}\r\n {isPublished && {Tr(\"publish_data\")}}\r\n \r\n {showShare && }\r\n {isPublished && }\r\n {isPublished && }\r\n \r\n {!isPublished && setOpenConfirmDeleteAll(true)}\r\n tooltip={Tr('delete_all')}\r\n disabled={disabled}\r\n />}\r\n \r\n {isPublished && }\r\n \r\n \r\n \r\n {\r\n siwzList.map((doc, index) => (\r\n ))\r\n }\r\n \r\n
\r\n\r\n {downloadHistory &&\r\n
\r\n }\r\n\r\n {Boolean(editDescriptionFile) &&\r\n setEditDescriptionFile(null)}\r\n onClose={() => setEditDescriptionFile(null)}\r\n service={SiwzService}\r\n />\r\n }\r\n\r\n setOpenConfirmDeleteAll(false)}\r\n confirmText=\"confirm_delete_all\"\r\n />\r\n >\r\n }\r\n \r\n }\r\n >)\r\n}\r\n\r\nSiwzFileTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n isPublished: PropTypes.bool.isRequired,\r\n disabled: PropTypes.bool.isRequired\r\n};\r\nexport default connect((state) => ({\r\n siwzList: state.resources[SiwzService.SIWZ_LIST_RESOURCE_ID],\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY],\r\n demandHeader: state.resources.demandHeader\r\n}), {})(SiwzFileTable);","import React, {useContext, useState} from 'react'\r\nimport UploadFile from 'components/UploadFile';\r\nimport TitledComponent from 'components/TitledComponent';\r\nimport SelectSiwzDocumentType from \"./SelectSiwzDocumentType\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport SiwzFileTable from \"./SiwzFileTable\";\r\nimport DemandValidationContext from \"context/DemandValidationContext\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction SelectSiwzDocument(\r\n {\r\n demandId,\r\n disabled,\r\n isPublished,\r\n }) {\r\n\r\n const currentDemandValidation = useContext(DemandValidationContext);\r\n const [portFilesWorking, setPostFilesWorking] = useState(false);\r\n const [selectedFiles, setSelectedFiles] = useState(null);\r\n const [configuredFiles, setConfiguredFiles] = useState(null);\r\n\r\n\r\n const handleSendFiles = (uploadedFiles, config) => {\r\n setConfiguredFiles(null);\r\n if(uploadedFiles.length) {\r\n const tab = uploadedFiles.map((x, i) => ({\r\n ...x,\r\n type: config[`item${x.originalIndex}`],\r\n parent: config[`parent${x.originalIndex}`],\r\n autopublish: config[`autopublish${x.originalIndex}`],\r\n }));\r\n setPostFilesWorking(true)\r\n SiwzService.send(demandId, tab, currentDemandValidation).finally(()=> setPostFilesWorking(false));\r\n }\r\n };\r\n\r\n const handleSubmitSelectDocumentTypes = (values) => {\r\n setConfiguredFiles({files: selectedFiles, config: values})\r\n setSelectedFiles(null);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n\r\n {!disabled &&\r\n setSelectedFiles(files)}\r\n configuredFiles={configuredFiles}\r\n working={portFilesWorking}\r\n />\r\n }\r\n\r\n \r\n \r\n\r\n {!!selectedFiles && setSelectedFiles(null)}\r\n onSubmit={handleSubmitSelectDocumentTypes}\r\n pickAutopublish={isPublished}\r\n pickParent={isPublished}\r\n />}\r\n >\r\n )\r\n}\r\n\r\nSelectSiwzDocument.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n isPublished: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SelectSiwzDocument;","import React, {useMemo, useState} from 'react'\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport {isDemandModification, isDemandOfferCollection, wasEverPublished} from \"libs/getDemandStatus\";\r\nimport downloadFile from \"libs/downloadFile\";\r\nimport ChooseSwzGeneratorOptions from \"components/complex/papersGenerator/customPopups/swzGenerator/ChooseSwzGeneratorOptions\";\r\nimport isBzpAttachmentNoticeType from \"libs/isBzpAttachmentNoticeType\";\r\nimport {connect} from \"react-redux\";\r\nimport {withRouter} from \"react-router\";\r\nimport AddBzpNoticePopup from \"./AddBzpNoticePopup\";\r\nimport SelectSiwzDocument from \"./SelectSiwzDocument\";\r\nimport PropTypes from \"prop-types\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n topButtons: {\r\n marginBottom: theme.spacing(1)\r\n }\r\n}));\r\n\r\nfunction SiwzDocuments(\r\n {\r\n demandId,\r\n editable,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [addBzpNoticePopupOpened, setAddBzpNoticePopupOpened] = useState(false);\r\n const [swzParamsOpen, setSwzParamsOpen] = useState(false);\r\n\r\n const isBzpAttachmentNotice = useMemo(() => isBzpAttachmentNoticeType(demandHeader), [demandHeader]);\r\n const isPublished = useMemo(() => demandHeader ? wasEverPublished() : undefined, [demandHeader]);\r\n const isOfferCollectionOrModification = useMemo(() => demandHeader ? isDemandOfferCollection() || isDemandModification() : undefined, [demandHeader]);\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n if (isBzpAttachmentNotice && editable && (!isPublished || isOfferCollectionOrModification)) {\r\n buttons.push(createButton(Tr(isPublished ? \"add_bzp_notice_update\" : \"add_bzp_notice\"), () => setAddBzpNoticePopupOpened(true)))\r\n }\r\n\r\n if (demandHeader && editable) {\r\n if(!isPublished || isOfferCollectionOrModification) {\r\n if (demandHeader.applicationClientSettings.papersGenerator.active) {\r\n buttons.push(createButton(Tr('swz_button'), () => setSwzParamsOpen(true)))\r\n } else {\r\n buttons.push(createButton(Tr('swz_button'), () => downloadFile({url: Endpoints.PAPERS_GENERATOR_PRINT(demandId, 'swz_generator')})))\r\n }\r\n }\r\n }\r\n\r\n if (buttons.length)\r\n return \r\n }\r\n\r\n return (\r\n \r\n {getButtons()}\r\n\r\n \r\n\r\n {addBzpNoticePopupOpened && setAddBzpNoticePopupOpened(false)}/>}\r\n {swzParamsOpen && setSwzParamsOpen(false)}/>}\r\n\r\n \r\n )\r\n}\r\n\r\nSiwzDocuments.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n editable: PropTypes.bool\r\n};\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader\r\n}), {})(withRouter(SiwzDocuments));","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport { withStyles } from '@material-ui/core';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport DoubleButton from '../../../popup/components/DoubleButton';\r\nimport TextInput from 'components/TextInput';\r\nimport * as Yup from 'yup';\r\nimport validationShema from 'constants/ValidationShema';\r\nimport useId from 'hooks/useId';\r\nimport { connect } from 'react-redux'\r\nimport RepoService from 'services/RepoService';\r\nimport InputLimits from \"constants/InputLimits\";\r\n\r\nconst style = theme => ({\r\n\tpadding: {\r\n\t\tmarginTop: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction CreateFolderPopup({\r\n\topen,\r\n\tonClose,\r\n\tclasses,\r\n\tformSubmit,\r\n\tdemandId\r\n}) {\r\n\r\n\tconst formId = useId();\r\n\r\n\tconst handleSubmit = () => formSubmit[formId]()\r\n\tconst onAdd = (values) => {\r\n\t\tRepoService.addFolder(demandId,values)\r\n\t\tonClose()\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tformSubmit: state.form\r\n}), {})(withStyles(style)(CreateFolderPopup));","import React from 'react'\r\nimport {List, ListItem, ListItemIcon, ListItemText} from '@material-ui/core';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport FolderIcon from '@material-ui/icons/Folder';\r\nimport RepoFolderTypes from \"constants/RepoFolderTypes\";\r\nimport PropTypes from \"prop-types\";\r\nimport SingleButton from \"components/popup/components/SingleButton\";\r\n\r\n\r\nfunction SelectFolderPopup(\r\n {\r\n onCancel,\r\n onSubmit,\r\n folderList,\r\n }) {\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nSelectFolderPopup.propTypes = {\r\n onCancel: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n folderList: PropTypes.arrayOf(PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n type: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired\r\n })).isRequired\r\n}\r\n\r\nexport default SelectFolderPopup;\r\n","import React, {useEffect, useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport Select from \"components/Select\";\r\nimport DescriptionIcon from '@material-ui/icons/Description';\r\nimport FolderIcon from '@material-ui/icons/Folder';\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport moment from \"libs/moment\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport RepoService from \"services/RepoService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n }\r\n}));\r\n\r\nfunction ChangeRepoVisibilityPopup(\r\n {\r\n onClose = () => {\r\n },\r\n demandId,\r\n repoVisibility,\r\n formSubmit,\r\n repoVisibilityTypes\r\n }) {\r\n\r\n\r\n const {fileId, folderId, name, visibilityStatus, visibilityEndDate} = repoVisibility;\r\n const isFile = !!fileId;\r\n const classes = useStyle();\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const [visibilityTypes, setVisibilityTypes] = useState([]);\r\n\r\n useEffect(() => {\r\n const types = [];\r\n Object.keys(repoVisibilityTypes).forEach((x) => types.push({label: repoVisibilityTypes[x], value: x}));\r\n setVisibilityTypes(types);\r\n }, [repoVisibilityTypes]);\r\n\r\n\r\n const onSubmit = (values) => {\r\n let promise;\r\n if (isFile) {\r\n promise = RepoService.changeFileVisibility(demandId, folderId, fileId, values);\r\n } else {\r\n promise = RepoService.changeFolderFilesVisibility(demandId, folderId, values);\r\n }\r\n promise.then(onClose);\r\n\r\n }\r\n\r\n const validationSchema = VS.lazy((value) => {\r\n\r\n let objShape = {\r\n visibility: VS.string(),\r\n }\r\n\r\n if (value.visibility !== 'STATUS_INTERNAL') {\r\n objShape['visibilityEndDate'] = VS.dateTimeNoReq()\r\n }\r\n\r\n return Yup.object().shape(objShape)\r\n })\r\n\r\n return (\r\n }\r\n >\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form,\r\n repoVisibilityTypes: state.resources.repoVisibilityTypes\r\n}), {})(ChangeRepoVisibilityPopup);","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport GetAppIcon from '@material-ui/icons/Eject';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconEjectButton(\r\n {\r\n tooltip = Tr('eject'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconEjectButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconEjectButton;","import React, {useReducer, useState} from 'react'\r\nimport {makeStyles, TableCell, TableRow} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport moment from \"libs/moment\";\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport WorkableIconDownloadButton from 'components/button/WorkableIconDownloadButton';\r\nimport WorkableIconDownloadCountButton from \"components/button/WorkableIconDownloadCountButton\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport WorkableIconUnpublishButton from \"components/button/WorkableIconUnpublishButton\";\r\nimport WorkableIconPublishButton from \"components/button/WorkableIconPublishButton\";\r\nimport WorkableIconSearchButton from \"components/button/WorkableIconSearchButton\";\r\nimport RepoService from \"services/RepoService\";\r\nimport ShareSelectPopup, {sharePopupData} from \"components/popup/ShareSelectPopup\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport WorkableIconShareButton from \"components/button/WorkableIconShareButton\";\r\nimport WorkableIconEjectButton from \"components/button/WorkableIconEjectButton\";\r\nimport HelpComponent from \"../../../HelpComponent\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n descriptionTooltip: {\r\n whiteSpace: 'pre-line'\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n}));\r\n\r\nfunction RepoFileTableRow(\r\n {\r\n demandId,\r\n index,\r\n row,\r\n isPublished,\r\n onOpenDownloadHistory,\r\n onEditDescriptionFile,\r\n onSetRepoVisibility,\r\n showShare,\r\n onMoveToSiwz\r\n }) {\r\n const classes = useStyle();\r\n const [shareFilePopup, setShareFilePopup] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n delete: false,\r\n share: false,\r\n });\r\n\r\n const onDownload = () => {\r\n dispatchIconWorks({type: 'download', works: true});\r\n RepoService.getDownloadFile(demandId, row.identity, false)\r\n .finally(() => dispatchIconWorks({type: 'download', works: false}));\r\n }\r\n\r\n const onDelete = () => {\r\n dispatchIconWorks({type: 'delete', works: true});\r\n RepoService.deleteItem(demandId, row.identity)\r\n .finally(() => {\r\n dispatchIconWorks({type: 'delete', works: false})\r\n });\r\n }\r\n\r\n const onShareFile = (row) => setShareFilePopup(sharePopupData(row.name, row));\r\n\r\n const doShare = (row, system) => {\r\n setShareFilePopup(null);\r\n dispatchIconWorks({type: 'share', works: true});\r\n RepoService.shareRepo(demandId, row.identity, system).then((resp) => {\r\n if (resp)\r\n enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: system}, true))\r\n }).finally(() => {\r\n dispatchIconWorks({type: 'share', works: false})\r\n });\r\n }\r\n\r\n return (\r\n \r\n {index}\r\n \r\n {row.name}\r\n \r\n \r\n onEditDescriptionFile(row)}\r\n tooltip={row.description ? {row.description}
: {Tr('no_description')}}\r\n disabled={iconWorks.anyWorks}\r\n />\r\n \r\n {Tr(`repo.visibility.${row.visibilityStatus}`)}\r\n \r\n {moment(row.createDate).format(DateFormats.DATETIME_FORMAT)}\r\n {isPublished && {row.publishDate ? moment(row.publishDate).format(DateFormats.DATETIME_FORMAT) : null}}\r\n \r\n onDownload(row.actions.download, row.name)}\r\n hideTooltip={!row.actions.download}\r\n disabled={iconWorks.anyWorks || !row.actions.download}\r\n working={iconWorks.download}\r\n />\r\n \r\n \r\n onMoveToSiwz([{identity: row.identity, name: row.name}])}\r\n hideTooltip={!row.actions.moveToSiwz}\r\n disabled={iconWorks.anyWorks || !row.actions.moveToSiwz}\r\n />\r\n \r\n {showShare &&\r\n \r\n onShareFile(row)}\r\n hideTooltip={!row.actions.download}\r\n disabled={iconWorks.anyWorks || !row.actions.download}\r\n working={iconWorks.share}\r\n />\r\n {!!shareFilePopup && setShareFilePopup(null)}\r\n onChoose={doShare}\r\n />}\r\n \r\n }\r\n\r\n \r\n {row.visibilityStatus === 'STATUS_INTERNAL' ?\r\n onSetRepoVisibility(row)}\r\n hideTooltip={!row.actions.changeVisibility}\r\n disabled={iconWorks.anyWorks || !row.actions.changeVisibility}\r\n />\r\n :\r\n onSetRepoVisibility(row)}\r\n hideTooltip={!row.actions.changeVisibility}\r\n disabled={iconWorks.anyWorks || !row.actions.changeVisibility}\r\n />\r\n\r\n }\r\n \r\n\r\n {isPublished && \r\n onOpenDownloadHistory(row)}\r\n hideTooltip={!row.actions.downloadDetails}\r\n disabled={iconWorks.anyWorks || !row.actions.downloadDetails}\r\n />\r\n \r\n }\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nRepoFileTableRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n row: PropTypes.shape({\r\n identity: PropTypes.number.isRequired\r\n }).isRequired,\r\n index: PropTypes.number.isRequired,\r\n isPublished: PropTypes.bool.isRequired,\r\n onOpenDownloadHistory: PropTypes.func.isRequired,\r\n onEditDescriptionFile: PropTypes.func.isRequired,\r\n onSetRepoVisibility: PropTypes.func.isRequired,\r\n showShare: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default RepoFileTableRow;","import React, {useReducer, useState} from 'react'\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport DownloadHistoryPopup, {createDownloadHistoryFile} from \"components/popup/DownloadHistoryPopup\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport EditDescriptionPopup, {createEditDescriptionFile} from \"components/popup/EditDescriptionPopup\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PropTypes from 'prop-types';\r\nimport WorkableIconPublishButton from \"components/button/WorkableIconPublishButton\";\r\nimport ChangeRepoVisibilityPopup from \"./ChangeRepoVisibilityPopup\";\r\nimport RepoService from \"services/RepoService\";\r\nimport RepoFileTableRow from \"./RepoFileTableRow\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport WorkableIconEjectButton from \"../../../button/WorkableIconEjectButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n lpColumn: theme.components.table.lpColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n typeColumn: {\r\n width: 180\r\n },\r\n visibilityColumn: {\r\n width: 120\r\n },\r\n sizeColumn: {\r\n width: 80\r\n }\r\n}));\r\n\r\nfunction RepoFileTable(\r\n {\r\n demandId,\r\n isPublished,\r\n folder,\r\n disabled,\r\n showShare,\r\n onMoveToSiwz\r\n }) {\r\n const classes = useStyle();\r\n const [downloadHistory, setDownloadHistory] = useState(null);\r\n const [openConfirmDeleteAll, setOpenConfirmDeleteAll] = useState(false);\r\n const [editDescriptionFile, setEditDescriptionFile] = useState(null);\r\n const [repoVisibility, setRepoVisibility] = useState(null);\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n delete: false,\r\n });\r\n\r\n disabled = disabled || iconWorks.anyWorks;\r\n\r\n const onDeleteAll = () => {\r\n dispatchIconWorks({type: 'delete', works: true})\r\n setOpenConfirmDeleteAll(false);\r\n RepoService.deleteAll(demandId, folder.identity).finally(() => dispatchIconWorks({type: 'delete', works: false}))\r\n };\r\n\r\n\r\n const openDownloadHistory = (row) => {\r\n setDownloadHistory(createDownloadHistoryFile(row.name, demandId, row.identity));\r\n };\r\n\r\n const openEditDescription = (row) => {\r\n setEditDescriptionFile(createEditDescriptionFile(demandId, RepoService.buildIdentity(row.identity, folder.identity),\r\n row.name, row.description, !row.actions.editDescription));\r\n };\r\n\r\n const onChangeVisibilityAll = () => {\r\n const visibilityStatus = folder.files.length > 0 ? folder.files[0].visibilityStatus : null;\r\n const visibilityEndDate = folder.files.length > 0 ? folder.files[0].visibilityEndDate : null;\r\n setRepoVisibility({folderId: folder.identity, folderType: folder.type, name: folder.name, visibilityStatus, visibilityEndDate});\r\n };\r\n\r\n const onSetRepoVisibility = (row) => {\r\n setRepoVisibility({\r\n fileId: row.identity,\r\n folderId: row.folderId,\r\n folderType: folder.type,\r\n name: row.name,\r\n visibilityStatus: row.visibilityStatus,\r\n visibilityEndDate: row.visibilityEndDate\r\n })\r\n }\r\n\r\n const onSelectFileToMoveToSiwz = (files) => {\r\n onMoveToSiwz(folder, files);\r\n }\r\n\r\n return (<>\r\n {!!folder.files && \r\n {!folder.files.length ?\r\n
{Tr('no_files_in_directory')}\r\n :\r\n <>\r\n\r\n
\r\n \r\n \r\n {Tr(\"column_lp\")}\r\n {Tr(\"name\")}\r\n {Tr(\"description\")}\r\n {Tr(\"repo_visibility_type\")}\r\n {Tr(\"size\")}\r\n {Tr(\"add_data\")}\r\n {isPublished && {Tr(\"publish_data\")}}\r\n \r\n \r\n onSelectFileToMoveToSiwz(folder.files.map((doc, index) => ({identity: doc.identity, name: doc.name})))}\r\n hideTooltip={!folder.actions.moveToSiwz}\r\n disabled={disabled || !folder.actions.moveToSiwz}\r\n />\r\n \r\n {showShare && }\r\n \r\n \r\n \r\n {isPublished && }\r\n \r\n {!!folder.actions.deleteFolderFiles &&\r\n setOpenConfirmDeleteAll(true)}\r\n tooltip={Tr('delete_all_unpublished')}\r\n working={iconWorks.delete}\r\n disabled={disabled}\r\n />}\r\n \r\n \r\n \r\n \r\n {\r\n folder.files.map((doc, index) => (\r\n ))\r\n }\r\n \r\n
\r\n\r\n {downloadHistory &&\r\n
setDownloadHistory(null)} service={RepoService}/>\r\n }\r\n\r\n {repoVisibility &&\r\n setRepoVisibility(null)} demandId={demandId}/>\r\n }\r\n\r\n {Boolean(editDescriptionFile) &&\r\n setEditDescriptionFile(null)}\r\n onClose={() => setEditDescriptionFile(null)}\r\n service={RepoService}\r\n />\r\n }\r\n\r\n setOpenConfirmDeleteAll(false)}\r\n confirmText=\"confirm_delete_all\"\r\n />\r\n >\r\n }\r\n \r\n }\r\n >)\r\n}\r\n\r\nRepoFileTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n isPublished: PropTypes.bool.isRequired,\r\n folder: PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n type: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n description: PropTypes.string,\r\n actions: PropTypes.object.isRequired,\r\n files: PropTypes.array.isRequired\r\n }).isRequired,\r\n disabled: PropTypes.bool,\r\n showShare: PropTypes.bool.isRequired\r\n};\r\n\r\nexport default RepoFileTable;","import React, {useMemo, useReducer, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport FolderIcon from \"@material-ui/icons/Folder\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Form from \"components/Form\";\r\nimport * as Yup from \"yup\";\r\nimport useId from 'hooks/useId';\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport InputLimits from \"constants/InputLimits\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport RepoService from \"services/RepoService\";\r\nimport RepoFileTable from \"./RepoFileTable\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport WorkableIconConfirmButton from \"components/button/WorkableIconConfirmButton\";\r\nimport WorkableIconSearchButton from \"../../../button/WorkableIconSearchButton\";\r\nimport EditDescriptionPopup, {createEditDescriptionFile} from \"components/popup/EditDescriptionPopup\";\r\nimport {connect} from \"react-redux\";\r\nimport WorkableIconShareButton from \"../../../button/WorkableIconShareButton\";\r\nimport PrivilegeService from \"../../../../services/PrivilegeService\";\r\nimport {shareSystemsActive} from \"../../../../libs/shareSystems\";\r\nimport ShareSelectPopup, {sharePopupData} from \"../../../popup/ShareSelectPopup\";\r\nimport useSnackbar from \"../../../../hooks/useSnackbar\";\r\nimport RepoFolderTypes from \"../../../../constants/RepoFolderTypes\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n headTable: {\r\n background: theme.palette.background.default,\r\n marginTop: theme.spacing(5)\r\n },\r\n cell: {\r\n padding: `${theme.spacing(1)}px ${theme.spacing(1)}px 0`,\r\n border: 'none'\r\n },\r\n icon: {\r\n marginRight: theme.spacing()\r\n },\r\n nameCell: {\r\n fontWeight: 700\r\n },\r\n descriptionCell: {\r\n fontStyle: 'italic',\r\n whiteSpace: 'pre-line'\r\n },\r\n buttonColumn: {\r\n ...theme.components.table.buttonColumn,\r\n verticalAlign: 'top'\r\n },\r\n iconColumn: {\r\n width: 25,\r\n '& .MuiSvgIcon-root': {\r\n fontSize: '2rem'\r\n }\r\n },\r\n\r\n}));\r\n\r\nconst RepoFolder = (\r\n {\r\n demandId,\r\n folder,\r\n isPublished,\r\n disabled,\r\n formSubmit,\r\n demandHeader,\r\n demandPrivileges,\r\n onMoveToSiwz\r\n }) => {\r\n\r\n const classes = useStyles();\r\n\r\n const [nameEdited, setNameEdited] = useState(false);\r\n const [openConfirmDeleteFolder, setOpenConfirmDeleteFolder] = useState(false);\r\n const [editDescriptionFile, setEditDescriptionFile] = useState(null);\r\n const [shareFilePopup, setShareFilePopup] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const showShare = useMemo(() => demandPrivileges.INTEGRATIONS_UPLOAD && shareSystemsActive(demandHeader).length > 0, [demandHeader, demandPrivileges])\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n name: false,\r\n delete: false,\r\n share: false,\r\n });\r\n const curDisabled = disabled || iconWorks.anyWorks;\r\n const nameFormId = useId();\r\n\r\n const handleSubmit = () => {\r\n formSubmit[nameFormId]();\r\n }\r\n\r\n const onSubmit = (values) => {\r\n dispatchIconWorks({type: 'name', works: true});\r\n RepoService.updateFolderName(demandId, folder.identity, values.name).then(() => {\r\n dispatchIconWorks({type: 'name', works: false});\r\n setNameEdited(false);\r\n });\r\n };\r\n\r\n\r\n const handleDeleteFolder = () => {\r\n dispatchIconWorks({type: 'delete', works: true});\r\n setOpenConfirmDeleteFolder(false);\r\n RepoService.deleteFolder(demandId, folder.identity).catch(() => dispatchIconWorks({type: 'delete', works: false}));\r\n };\r\n\r\n const openEditDescription = () => {\r\n setEditDescriptionFile(createEditDescriptionFile(demandId, folder.identity,\r\n folder.name, folder.description, curDisabled, false, true));\r\n };\r\n\r\n const onShareFolder = () => {\r\n setShareFilePopup(sharePopupData(folder.name, folder));\r\n }\r\n\r\n const doShareFolder = (row, system) => {\r\n setShareFilePopup(null);\r\n dispatchIconWorks({type: 'share', works: true});\r\n RepoService.shareRepoFolder(demandId, row.identity, system).then((resp) => {\r\n if (resp)\r\n enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: system}, true))\r\n }).finally(() => {\r\n dispatchIconWorks({type: 'share', works: false})\r\n });\r\n }\r\n\r\n const getItems = () => {\r\n\r\n const actions = folder.actions || {};\r\n\r\n\r\n const rows = [];\r\n rows.push([\r\n ,\r\n {\r\n value: nameEdited ?\r\n \r\n : folder.name,\r\n className: classes.nameCell\r\n },\r\n showShare && folder.type !== RepoFolderTypes.Z_TRASH ? : null,\r\n {folder.description}
: {Tr('no_description')}}\r\n />,\r\n nameEdited ?\r\n handleSubmit(\"name\")}\r\n disabled={curDisabled}\r\n working={iconWorks.name}\r\n /> :\r\n setNameEdited(true)}\r\n disabled={!actions.updateFolderName || curDisabled}\r\n hideTooltip={!actions.updateFolderName}\r\n />,\r\n setOpenConfirmDeleteFolder(true)}\r\n disabled={!actions.deleteFolder || curDisabled}\r\n working={iconWorks.delete}\r\n />\r\n ]);\r\n return rows;\r\n };\r\n return (\r\n <>\r\n \r\n\r\n \r\n\r\n {Boolean(editDescriptionFile) &&\r\n setEditDescriptionFile(null)}\r\n onClose={() => setEditDescriptionFile(null)}\r\n service={{updateDescription: RepoService.updateFolderDescription}}\r\n />\r\n }\r\n {!!shareFilePopup && setShareFilePopup(null)}\r\n onChoose={doShareFolder}\r\n />}\r\n\r\n handleDeleteFolder()}\r\n onCancel={() => setOpenConfirmDeleteFolder(false)}\r\n confirmText=\"confirm_delete_folder\"\r\n />\r\n >\r\n\r\n );\r\n};\r\nRepoFolder.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n isPublished: PropTypes.bool.isRequired,\r\n disabled: PropTypes.bool,\r\n folder: PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n type: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n description: PropTypes.string,\r\n actions: PropTypes.object.isRequired,\r\n files: PropTypes.array.isRequired\r\n }).isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form,\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY],\r\n demandHeader: state.resources.demandHeader\r\n}), {})(RepoFolder);","import React, {useContext, useState} from 'react'\r\nimport UploadFile from 'components/UploadFile';\r\nimport {makeStyles} from '@material-ui/core/styles';\r\nimport TitledComponent from 'components/TitledComponent';\r\nimport {Typography} from '@material-ui/core';\r\nimport CreateNewFolderIcon from '@material-ui/icons/CreateNewFolder';\r\nimport CreateFolderPopup from 'components/complex/documentsTables/repo/CreateFolderPopup';\r\nimport Tr from 'translations/Translations';\r\nimport SelectFolderPopup from 'components/complex/documentsTables/repo/SelectFolderPopup';\r\nimport RepoFolder from \"./RepoFolder\";\r\nimport RepoService from \"services/RepoService\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport SelectSiwzDocumentType from \"../swz/SelectSiwzDocumentType\";\r\nimport SiwzService from \"../../../../services/SiwzService\";\r\nimport DemandValidationContext from \"../../../../context/DemandValidationContext\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n title: {\r\n fontWeight: \"bold\"\r\n },\r\n margin: {\r\n '&>*:first-child, &>*:nth-child(2)': {\r\n marginLeft: theme.spacing(2),\r\n marginBottom: theme.spacing()\r\n },\r\n '&>*:nth-child(3)': {\r\n margin: `0 ${theme.spacing(4)}px`\r\n }\r\n },\r\n buttonRow: {\r\n marginBottom: theme.spacing(1),\r\n marginTop: theme.spacing(1)\r\n }\r\n}));\r\n\r\nfunction SelectRepoDocument(\r\n {\r\n demandId,\r\n disabled,\r\n isPublished,\r\n folderList\r\n }) {\r\n\r\n const classes = useStyles();\r\n const currentDemandValidation = useContext(DemandValidationContext);\r\n const [portFilesWorking, setPostFilesWorking] = useState(false);\r\n const [selectedFiles, setSelectedFiles] = useState(null);\r\n const [configuredFiles, setConfiguredFiles] = useState(null);\r\n const [moveToSiwzFolderAndFile, setMoveToSiwzFolderAndFile] = useState(null);\r\n\r\n const [openFolderPopup, setOpenFolderPopup] = useState(false);\r\n\r\n const handleSendFiles = (uploadedFiles, config) => {\r\n setConfiguredFiles(null);\r\n if(uploadedFiles.length) {\r\n setPostFilesWorking(true);\r\n RepoService.addFiles(demandId, config, uploadedFiles).finally(() => setPostFilesWorking(false));\r\n }\r\n };\r\n\r\n const handleSubmitSelectFolder = (values) => {\r\n setConfiguredFiles({files: selectedFiles, config: values})\r\n setSelectedFiles(null);\r\n };\r\n\r\n const getButtons = () => {\r\n if (!disabled) {\r\n const buttons = [];\r\n buttons.push(createButton(Tr(\"create_folder\"), () => setOpenFolderPopup(true), undefined, undefined,\r\n undefined, undefined, CreateNewFolderIcon));\r\n\r\n if (buttons.length)\r\n return \r\n }\r\n }\r\n\r\n const onMoveToSiwz = (folder, files) => {\r\n setMoveToSiwzFolderAndFile({folder: folder, files: files});\r\n }\r\n\r\n const doMoveToSiwz = (values, items) => {\r\n const folder = moveToSiwzFolderAndFile.folder;\r\n setMoveToSiwzFolderAndFile(null);\r\n if (items.length) {\r\n const tab = items.map((x, i) => ({\r\n ...x,\r\n type: values[`item${i}`],\r\n parent: values[`parent${i}`],\r\n autopublish: values[`autopublish${i}`],\r\n }));\r\n setPostFilesWorking(true)\r\n SiwzService.moveFromRepo(demandId, tab, currentDemandValidation).finally(() => {\r\n RepoService.refreshFolder(demandId, folder.identity).finally(() => setPostFilesWorking(false));\r\n });\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n\r\n {!disabled && <>\r\n\r\n {getButtons()}\r\n\r\n {!!folderList && folderList.length < 2 ?\r\n {Tr('add_folder_before_file')}\r\n : setSelectedFiles(files)}\r\n configuredFiles={configuredFiles}\r\n onUploadPopupClosed={handleSendFiles}\r\n working={portFilesWorking}\r\n />\r\n }\r\n >\r\n }\r\n\r\n {\r\n folderList.map(x => (\r\n \r\n ))\r\n }\r\n\r\n \r\n\r\n setOpenFolderPopup(false)}\r\n />\r\n\r\n {!!selectedFiles && setSelectedFiles(null)}\r\n onSubmit={handleSubmitSelectFolder}\r\n folderList={folderList}\r\n />}\r\n\r\n {!!moveToSiwzFolderAndFile && setMoveToSiwzFolderAndFile(null)}\r\n onSubmit={doMoveToSiwz}\r\n pickAutopublish={isPublished}\r\n pickParent={isPublished}\r\n />}\r\n\r\n >\r\n )\r\n}\r\n\r\nexport default SelectRepoDocument;","import React, {useMemo, useState} from 'react'\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport {makeStyles} from '@material-ui/core/styles';\r\nimport Button from 'components/Button';\r\nimport {wasEverPublished} from \"libs/getDemandStatus\";\r\nimport RepoService from \"services/RepoService\";\r\nimport {connect} from \"react-redux\";\r\nimport SelectRepoDocument from \"./SelectRepoDocument\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n firstTable: {\r\n marginTop: theme.spacing(5)\r\n }\r\n}));\r\n\r\nfunction RepoDocuments(\r\n {\r\n demandId,\r\n editable,\r\n folderList,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const [showInternalDocuments, setShowInternalDocuments] = useState(()=> folderList.length > 1 || (folderList.length === 1 && folderList[0].files.length > 0));\r\n const isPublished = useMemo(() => demandHeader ? wasEverPublished() : undefined, [demandHeader]);\r\n\r\n return (\r\n \r\n {showInternalDocuments ?\r\n \r\n :\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n folderList: state.resources[RepoService.FOLDER_LIST_RESOURCE_ID],\r\n demandHeader: state.resources.demandHeader\r\n}), {})(RepoDocuments);","import React, {useEffect, useState} from 'react'\r\nimport {withRouter} from \"react-router\";\r\nimport SiwzDocuments from \"./swz/SiwzDocuments\";\r\nimport RepoDocuments from \"./repo/RepoDocuments\";\r\nimport RepoService from \"services/RepoService\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport Loading from \"components/Loading\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction DocumentsTables(\r\n {\r\n demandId,\r\n siwzEditable,\r\n repoEditable\r\n }) {\r\n\r\n const [documentsLoading, setDocumentsLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n const siwzListPromise = SiwzService.getList(demandId);\r\n const siwzTypesPromise = SiwzService.getTypes(demandId);\r\n const repoFolderListPromise = RepoService.getList(demandId);\r\n const repoVsibilityTypesPromise = RepoService.getVisibilityTypes(demandId);\r\n Promise.all([siwzListPromise, siwzTypesPromise, repoFolderListPromise, repoVsibilityTypesPromise])\r\n .then(() => setDocumentsLoading(false));\r\n\r\n return () => {\r\n RepoService.clearResources(RepoService.FOLDER_LIST_RESOURCE_ID);\r\n RepoService.clearResources(RepoService.VISIBILITY_TYPES_RESOURCE_ID);\r\n SiwzService.clearResources(SiwzService.SIWZ_LIST_RESOURCE_ID);\r\n SiwzService.clearResources(SiwzService.SIWZ_TYPE_LIST_RESOURCE_ID);\r\n }\r\n }, [demandId]);\r\n\r\n if (documentsLoading) return \r\n return (<>\r\n \r\n \r\n >)\r\n}\r\n\r\nDocumentsTables.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n siwzEditable: PropTypes.bool.isRequired,\r\n repoEditable: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default withRouter(DocumentsTables);","import React from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {connect} from \"react-redux\";\r\nimport DocumentsTables from \"components/complex/documentsTables/DocumentsTables\";\r\nimport {DemandValidationProvider} from \"context/DemandValidationContext\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n }\r\n}));\r\n\r\nfunction DocumentsPanel(\r\n {\r\n match,\r\n demandValidation\r\n }) {\r\n\r\n const classes = useStyles();\r\n const demandId = match.params.id;\r\n\r\n const currentDemandValidation = DemandValidation.DOCUMENTS;\r\n const section = demandValidation.find(x => x.section === currentDemandValidation);\r\n const siwzEditable = section ? !!section.siwzEditable : false;\r\n const repoEditable = section ? !!section.repoEditable : false;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(DocumentsPanel));\r\n\r\n","import React from 'react'\r\nimport DocumentsPanel from \"./DocumentsPanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import Tr from 'translations/Translations';\r\n\r\nexport const ContractorVerificationProcedureType = {\r\n CLASSIC: \"CLASSIC\",\r\n REVERSE: \"REVERSE\"\r\n}\r\nconst _TR_PREFIX = 'contractor_verification_';\r\nexport const ContractorVerificationProcedureTypeLabel = (type) => (Tr(_TR_PREFIX + type.toLowerCase()));\r\n","import React, {useState} from \"react\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Tr from \"translations/Translations\";\r\nimport ToggleButtonGroup from \"@material-ui/lab/ToggleButtonGroup\";\r\nimport ToggleButton from \"@material-ui/lab/ToggleButton\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport HelpTooltip from \"components/HelpTooltip\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from \"prop-types\";\r\nimport {ContractorVerificationProcedureType, ContractorVerificationProcedureTypeLabel} from \"constants/ContractorVerificationProcedureType\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n button: {\r\n width: 560,\r\n },\r\n help: {\r\n position: 'absolute',\r\n right: 70,\r\n color: theme.palette.text.button\r\n },\r\n helpNotSelected: {\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nfunction VerificationProcedureType(\r\n {\r\n className,\r\n contractorVerificationProcedure,\r\n handleProcedureChange,\r\n editable\r\n }) {\r\n\r\n const classes = useStyles();\r\n const [confirmOpened, setConfirmOpened] = useState(false);\r\n\r\n const handleProcedureChangeConfirm = () => {\r\n setConfirmOpened(false);\r\n handleProcedureChange(contractorVerificationProcedure.verificationProcedure === ContractorVerificationProcedureType.CLASSIC ?\r\n ContractorVerificationProcedureType.REVERSE : ContractorVerificationProcedureType.CLASSIC);\r\n };\r\n\r\n const handleToggleClick = (event, newProcedure) => {\r\n if (editable && newProcedure !== null) {\r\n setConfirmOpened(true)\r\n }\r\n };\r\n const proc = contractorVerificationProcedure.verificationProcedure;\r\n\r\n return (\r\n \r\n \r\n \r\n {ContractorVerificationProcedureTypeLabel(ContractorVerificationProcedureType.CLASSIC)}\r\n \r\n \r\n \r\n {ContractorVerificationProcedureTypeLabel(ContractorVerificationProcedureType.REVERSE)}\r\n \r\n \r\n \r\n \r\n\r\n setConfirmOpened(false)}\r\n confirmText=\"contractor_verification_procedure_change_confirm\"\r\n />\r\n \r\n )\r\n}\r\n\r\nVerificationProcedureType.propTypes = {\r\n contractorVerificationProcedure: PropTypes.shape({\r\n verificationProcedure: PropTypes.string\r\n }),\r\n handleProcedureChange: PropTypes.func,\r\n editable: PropTypes.bool\r\n}\r\n\r\nexport default VerificationProcedureType;\r\n\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const ContractorVerificationOfferStatus = {\r\n ALLOWED: \"ALLOWED\",\r\n ALLOWED_PARTIALLY: \"ALLOWED_PARTIALLY\",\r\n EXCLUDED: \"EXCLUDED\",\r\n REVERSE_PROCEDURE: \"REVERSE_PROCEDURE\",\r\n OFFER_REJECTED: \"OFFER_REJECTED\",\r\n NOT_SCORED: \"NOT_SCORED\",\r\n NOT_VERIFIED: \"NOT_VERIFIED\"\r\n}\r\nconst _TR_PREFIX = 'contractor_verification_offer_status_';\r\n\r\nexport const ContractorVerificationOfferStatusLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport applySearchParams from \"libs/applySearchParams\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\n\r\nconst CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID = 'contractorVerificationList';\r\nconst CONTRACTOR_VERIFICATION_PROCEDURE_RESOURCE_ID = 'contractorVerificationProcedure';\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n}\r\n\r\nconst getContractors = async (roundId, pagination, search) => {\r\n const params = {\r\n ...pagination\r\n };\r\n applySearchParams(search, params);\r\n try {\r\n const res = await RestRequestGET(Endpoints.CONTRACTOR_VERIFICATION_LIST(roundId), {params});\r\n let res2;\r\n if (pagination.page > 1) {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID]?.items) {\r\n res2 = {\r\n ...res,\r\n items: [...state.resources[CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID].items, ...res.items],\r\n };\r\n }\r\n } else {\r\n res2 = res;\r\n }\r\n reduxStore.dispatch(setResource(CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID, res2));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst updateContractorStatus = async (demandId, contractor, status) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.CONTRACTOR_VERIFICATION_STATUS(demandId), {contractor, status});\r\n if (resp.success) {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID]?.items) {\r\n const curRes = state.resources[CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID];\r\n const res = {\r\n ...curRes,\r\n items: curRes.items.map(x => x.contractor.identity === contractor.identity ? {...x, status} : x)\r\n }\r\n reduxStore.dispatch(setResource(CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID, res))\r\n }\r\n await validateSection(DemandValidation.CONTRACTOR_VERIFICATION, demandId, false);\r\n await validateSection(DemandValidation.OFFERS_EVALUATION, demandId, false);\r\n await validateSection(DemandValidation.OFFER_CHOICE, demandId, false);\r\n }\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getProcedure = async (id) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.CONTRACTOR_VERIFICATION_PROCEDURE(id));\r\n reduxStore.dispatch(setResource(CONTRACTOR_VERIFICATION_PROCEDURE_RESOURCE_ID, resp));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst updateProcedure = async (demandId, verificationProcedure) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.CONTRACTOR_VERIFICATION_PROCEDURE(demandId), {verificationProcedure});\r\n reduxStore.dispatch(setResource(CONTRACTOR_VERIFICATION_PROCEDURE_RESOURCE_ID, resp));\r\n await validateSection(DemandValidation.CONTRACTOR_VERIFICATION, demandId, false);\r\n await validateSection(DemandValidation.OFFERS_EVALUATION, demandId, false);\r\n await validateSection(DemandValidation.OFFER_CHOICE, demandId, false);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.CONTRACTOR_VERIFICATION_VALIDATE(id));\r\n}\r\n\r\nexport default {\r\n getContractors,\r\n updateContractorStatus,\r\n getProcedure,\r\n updateProcedure,\r\n validate,\r\n clearResources,\r\n CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID,\r\n CONTRACTOR_VERIFICATION_PROCEDURE_RESOURCE_ID\r\n}","import React, {useMemo, useState} from \"react\";\r\nimport {makeStyles, TableCell, TableRow} from \"@material-ui/core\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport {ContractorVerificationOfferStatus, ContractorVerificationOfferStatusLabel} from \"constants/ContractorVerificationOfferStatus\";\r\nimport PropTypes from \"prop-types\";\r\nimport ContractorVerificationService from \"services/ContractorVerificationService\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n statusCell: {\r\n paddingTop: theme.spacing(),\r\n paddingBottom: theme.spacing(),\r\n }\r\n}));\r\n\r\nfunction ContractorVerificationRow(\r\n {\r\n index,\r\n contractorVerificationProcedure,\r\n contractorElem,\r\n working,\r\n editable,\r\n demandId\r\n }) {\r\n\r\n const classes = useStyles();\r\n const [rowWorking, setRowWorking] = useState(false);\r\n const [confirmOpened, setConfirmOpened] = useState(false);\r\n const [statusToConfirm, setStatusToConfirm] = useState(null)\r\n const statusesList = useMemo(()=> Object.keys(ContractorVerificationOfferStatus).filter(x => !!contractorVerificationProcedure.changeable || x !== ContractorVerificationOfferStatus.REVERSE_PROCEDURE).map(key => ({label: ContractorVerificationOfferStatusLabel(key), value: key})), [contractorVerificationProcedure]);\r\n\r\n const updateContractorStatus = (newStatus, confirmed) => {\r\n\r\n if (!confirmed && newStatus === ContractorVerificationOfferStatus.OFFER_REJECTED) {\r\n setConfirmOpened(true);\r\n setStatusToConfirm(ContractorVerificationOfferStatus.OFFER_REJECTED);\r\n } else if (!confirmed && newStatus === ContractorVerificationOfferStatus.NOT_SCORED) {\r\n setConfirmOpened(true);\r\n setStatusToConfirm(ContractorVerificationOfferStatus.NOT_SCORED);\r\n } else {\r\n setRowWorking(true);\r\n ContractorVerificationService.updateContractorStatus(demandId, contractorElem.contractor, newStatus).finally(() => setRowWorking(false))\r\n }\r\n }\r\n\r\n return (\r\n {index + 1}.\r\n {contractorElem.contractor.consorciumOffer ? Tr('consorcium_with_name', {name: contractorElem.contractor.name}) : contractorElem.contractor.name}\r\n \r\n {\r\n updateContractorStatus(e.target.value)\r\n }}\r\n working={rowWorking}\r\n />\r\n { setConfirmOpened(false)}\r\n onConfirm={() => {\r\n setConfirmOpened(false);\r\n updateContractorStatus(statusToConfirm, true)\r\n }}\r\n open={confirmOpened}\r\n translateConfirmTexts\r\n />}\r\n \r\n )\r\n}\r\n\r\nContractorVerificationRow.propTypes = {\r\n index: PropTypes.number,\r\n contractor: PropTypes.shape({\r\n contractor: PropTypes.shape({\r\n identity: PropTypes.number,\r\n name: PropTypes.string\r\n }),\r\n status: PropTypes.string\r\n }),\r\n working: PropTypes.bool,\r\n editable: PropTypes.bool,\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n};\r\n\r\nexport default ContractorVerificationRow;\r\n\r\n","import React from \"react\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableContainer, TableHead, TableRow} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport Tr from 'translations/Translations';\r\nimport ContractorVerificationRow from \"./ContractorVerificationRow\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n tableLayout: 'fixed',\r\n\r\n '& td, th': {\r\n overflow: 'hidden',\r\n }\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n statusColumn: {\r\n width: 300,\r\n paddingRight: theme.spacing(2)\r\n },\r\n}));\r\n\r\nfunction ContractorVerificationTable(\r\n {\r\n contractorList,\r\n contractorVerificationProcedure,\r\n working,\r\n editable,\r\n demandId\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n {Tr(\"column_lp\")}\r\n {Tr(\"contractor\")}\r\n {Tr(\"contractor_status\")}\r\n \r\n \r\n \r\n {contractorList.items.map((contractorElem, index) =>\r\n \r\n )}\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default ContractorVerificationTable;\r\n\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {connect} from \"react-redux\";\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport VerificationProcedureType from \"./components/VerificationProcedureType\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport Loading from \"components/Loading\";\r\nimport MoreButton from \"components/button/MoreButton\";\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport ContractorVerificationTable from \"./components/ContractorVerificationTable\";\r\nimport ContractorVerificationService from \"services/ContractorVerificationService\";\r\nimport Tr from \"translations/Translations\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport Link from \"@material-ui/core/Link\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n marginBottom: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n marginBottomItalic: {\r\n marginBottom: theme.spacing(2),\r\n fontStyle: 'italic'\r\n }\r\n}));\r\n\r\nfunction ContractorVerification(\r\n {\r\n match,\r\n contractorVerificationList,\r\n contractorVerificationProcedure,\r\n demandValidation\r\n }) {\r\n const classes = useStyles();\r\n\r\n const FORM_ID = DemandValidation.CONTRACTOR_VERIFICATION;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === FORM_ID);\r\n const editable = section ? section.editable : false;\r\n\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig, setSortConfig} = useSearch();\r\n const [working, setWorking] = useState(true);\r\n\r\n useEffect(() => {\r\n ContractorVerificationService.getProcedure(demandId);\r\n return () => {\r\n ContractorVerificationService.clearResources(ContractorVerificationService.CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID);\r\n ContractorVerificationService.clearResources(ContractorVerificationService.CONTRACTOR_VERIFICATION_PROCEDURE_RESOURCE_ID);\r\n }\r\n }, [demandId])\r\n\r\n useEffect(() => {\r\n setWorking(true);\r\n const {pagination, search} = searchData;\r\n ContractorVerificationService.getContractors(demandId, pagination, search).then(() => (setWorking(false)));\r\n // eslint-disable-next-line\r\n }, [searchData, demandId])\r\n\r\n useDidUpdateEffect(() => {\r\n if (contractorVerificationList?.totalCount !== undefined) {\r\n setTotalCount(contractorVerificationList.totalCount)\r\n }\r\n }, [contractorVerificationList?.totalCount]);\r\n\r\n const handleProcedureChange = (newProcedure) => {\r\n ContractorVerificationService.clearResources(ContractorVerificationService.CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID);\r\n ContractorVerificationService.updateProcedure(demandId, newProcedure).then(() => {\r\n setSortConfig(null);\r\n })\r\n }\r\n\r\n if (!contractorVerificationList || !contractorVerificationProcedure) return ;\r\n\r\n return (\r\n \r\n \r\n {Tr('contractor.sanction.check.info')}\r\n \r\n LINK\r\n \r\n \r\n { !!contractorVerificationProcedure.changeable && \r\n }\r\n\r\n \r\n\r\n \r\n\r\n \r\n
)\r\n}\r\n\r\nexport default connect((state) => ({\r\n contractorVerificationList: state.resources[ContractorVerificationService.CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID],\r\n contractorVerificationProcedure: state.resources[ContractorVerificationService.CONTRACTOR_VERIFICATION_PROCEDURE_RESOURCE_ID],\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(ContractorVerification));\r\n\r\n","import React from 'react'\r\nimport ContractorVerification from \"./ContractorVerification\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport applySearchParams from \"libs/applySearchParams\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\n\r\nconst OFFER_EVALUATION_LIST_RESOURCE_ID = 'offerEvaluationList';\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n}\r\n\r\nconst getOffers = async (demandId, pagination, search, mode, roundType) => {\r\n const params = {\r\n ...pagination\r\n };\r\n applySearchParams(search, params);\r\n try {\r\n const resp = await RestRequestGET(Endpoints.OFFER_EVALUATION_LIST(demandId, mode, roundType), {params});\r\n //const resp = {...lsit(pagination, search, mode)};\r\n reduxStore.dispatch(setResource(OFFER_EVALUATION_LIST_RESOURCE_ID, resp));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst handleUpdate = async (response, mode, offerItem, rowItem, status) => {\r\n if (response.success) {\r\n const result = response.result;\r\n const changeType = result.changeType;\r\n const {resources} = reduxStore.getState();\r\n\r\n switch (changeType) {\r\n case AVAILABLE_CHANGE_TYPES.STATUS:\r\n const list = resources[OFFER_EVALUATION_LIST_RESOURCE_ID];\r\n const newList = {\r\n ...list,\r\n items: list.items.map(offer => {\r\n if (offer.identity === offerItem.identity) {\r\n offer.offerEvaluations = offer.offerEvaluations.map(row => {\r\n if (row.identity === rowItem.identity) {\r\n row.status = status;\r\n }\r\n return row;\r\n })\r\n }\r\n return offer;\r\n })\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EVALUATION_LIST_RESOURCE_ID, newList));\r\n break;\r\n case AVAILABLE_CHANGE_TYPES.ROW:\r\n const list2 = resources[OFFER_EVALUATION_LIST_RESOURCE_ID];\r\n const newList2 = {\r\n ...list2,\r\n items: list2.items.map(offer => {\r\n\r\n if (offer.identity === offerItem.identity) {\r\n offer.offerEvaluations = offer.offerEvaluations.map(row => {\r\n if (row.identity === rowItem.identity) {\r\n return result.offerEvaluation;\r\n }\r\n return row;\r\n })\r\n }\r\n return offer;\r\n })\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EVALUATION_LIST_RESOURCE_ID, newList2));\r\n break;\r\n case AVAILABLE_CHANGE_TYPES.ALL:\r\n break;\r\n default:\r\n throw new Error(\"Unsupported change type: \" + changeType);\r\n }\r\n\r\n return changeType;\r\n }\r\n}\r\n\r\nconst updateStatus = async (demandId, mode, roundType, offerItem, row, status) => {\r\n const data = {\r\n identity: offerItem.identity,\r\n mode,\r\n offerEvaluation: {\r\n identity: row.identity,\r\n status\r\n }\r\n }\r\n const resp = await RestRequestPOST(Endpoints.OFFER_EVALUATION_LIST_UPDATE_STATUS(demandId, mode, roundType), data);\r\n await validateSection(DemandValidation.OFFERS_EVALUATION, demandId, false);\r\n return handleUpdate(resp, mode, offerItem, row, status);\r\n};\r\n\r\nconst updateScore = async (demandId, mode, roundType, offerItem, row, criterion, score) => {\r\n const data = {\r\n identity: offerItem.identity,\r\n mode,\r\n offerEvaluation: {\r\n identity: row.identity,\r\n criteriaEvaluation: {\r\n identity: criterion.identity,\r\n score\r\n }\r\n }\r\n }\r\n\r\n const resp = await RestRequestPOST(Endpoints.OFFER_EVALUATION_LIST_UPDATE_SCORE(demandId, mode, roundType), data);\r\n await validateSection(DemandValidation.OFFERS_EVALUATION, demandId, false);\r\n return handleUpdate(resp, mode, offerItem, row);\r\n};\r\n\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.OFFER_EVALUATION_VALIDATE(id));\r\n}\r\n\r\nconst AVAILABLE_CHANGE_TYPES = {\r\n STATUS: \"STATUS\",\r\n ROW: \"ROW\",\r\n ALL: \"ALL\"\r\n}\r\n\r\nexport default {\r\n getOffers,\r\n updateStatus,\r\n updateScore,\r\n validate,\r\n clearResources,\r\n OFFER_EVALUATION_LIST_RESOURCE_ID,\r\n AVAILABLE_CHANGE_TYPES\r\n}","const OfferEvaluationViewMode = {\r\n POSITION: \"POSITION\",\r\n SUPPLIER: \"SUPPLIER\"\r\n}\r\n\r\nexport default OfferEvaluationViewMode;","import Tr from 'translations/Translations';\r\n\r\nexport const OfferEvaluationPositionStatus = {\r\n ALLOWED: \"ALLOWED\",\r\n EXCLUDED: \"EXCLUDED\",\r\n EXTREMELY_LOW: \"EXTREMELY_LOW\",\r\n NOT_SCORED: \"NOT_SCORED\",\r\n OUT_OF_DATE: \"OUT_OF_DATE\",\r\n EXCLUDED_FROM_CONTRACT: \"EXCLUDED_FROM_CONTRACT\"\r\n}\r\nconst _TR_PREFIX = 'offer_evaluation_position_status_';\r\n\r\nexport const OfferEvaluationPositionStatusLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {makeStyles, TextField, Tooltip, Typography} from \"@material-ui/core\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PropTypes from \"prop-types\";\r\nimport DoneIcon from '@material-ui/icons/Done'\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport Tr from \"translations/Translations\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n edit: {\r\n width: 'auto'\r\n },\r\n error: {\r\n fontSize: '0.8em'\r\n }\r\n}));\r\n\r\nconst scoreRegex = /^((([0-9]{1,2}?)([,][0-9]{0,2})?)|100|)$/;\r\nconst emptyRegex = /^$/\r\nconst emptyEditMode = {enabled: false, value: \"\", error: false, working: false}\r\nfunction OffersEvaluationScoreColumn(\r\n {\r\n editable,\r\n offerEvaluationRow,\r\n offerEvaluationCriterion,\r\n updateScore\r\n }) {\r\n\r\n const classes = useStyles();\r\n const [editMode, setEditMode] = useState(emptyEditMode);\r\n\r\n useEffect(() => {\r\n if (editMode)\r\n setEditMode(emptyEditMode);\r\n // eslint-disable-next-line\r\n }, [offerEvaluationRow])\r\n\r\n const onScoreClick = () => {\r\n const value = editMode.value;\r\n if (emptyRegex.test(value)) {\r\n setEditMode(emptyEditMode);\r\n } else if (scoreRegex.test(value)) {\r\n const number = parseFloat(value.replace(/[,]/, \".\"));\r\n if(number <= offerEvaluationCriterion.weight) {\r\n setEditMode(x => ({...x, working: true}))\r\n updateScore(number, offerEvaluationCriterion).finally(()=> setEditMode(emptyEditMode));\r\n }\r\n }\r\n }\r\n\r\n const handleKeyPress = (e) => {\r\n if (!editMode.error && e.key === 'Enter') {\r\n onScoreClick();\r\n }\r\n }\r\n\r\n const handleChange = (e) => {\r\n const value = e.target.value.replace(/[.]/, \",\");\r\n if (emptyRegex.test(value) || scoreRegex.test(value)) {\r\n const number = parseFloat(value.replace(/[,]/, \".\"));\r\n const error = number > offerEvaluationCriterion.weight;\r\n setEditMode(x => ({...x, value, error}))\r\n }\r\n }\r\n\r\n return (\r\n \r\n {editMode.enabled ?\r\n \r\n handleChange(e)}\r\n onKeyUp={handleKeyPress}\r\n fullWidth\r\n disabled={!editable}\r\n value={editMode.value}\r\n error={editMode.error}\r\n /> :\r\n {formatAmountNumber(offerEvaluationCriterion.score, '-')}\r\n }\r\n {offerEvaluationCriterion.editable && <>\r\n {editMode.enabled ?\r\n :\r\n {\r\n setEditMode({enabled: true, value: formatAmountNumber(offerEvaluationCriterion.score, '-'), error: (offerEvaluationCriterion.score > offerEvaluationCriterion.weight), working: false});\r\n }}\r\n color='primary'\r\n disabled={!editable}\r\n />}\r\n >\r\n }\r\n\r\n \r\n {editMode.error && {Tr(\"score_exceed_weight\", {value: formatAmountNumber(offerEvaluationCriterion.weight, '-')})}}\r\n )\r\n}\r\n\r\nOffersEvaluationScoreColumn.propTypes = {\r\n editable: PropTypes.bool.isRequired,\r\n offerEvaluationRow: PropTypes.object.isRequired,\r\n offerEvaluationCriterion: PropTypes.object.isRequired,\r\n updateScore: PropTypes.func.isRequired\r\n}\r\n\r\nexport default OffersEvaluationScoreColumn;\r\n\r\n","import React, {useState} from \"react\";\r\nimport {makeStyles, TableCell, TableRow, Typography} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from \"clsx\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport {OfferEvaluationPositionStatus, OfferEvaluationPositionStatusLabel} from \"../constants/OfferEvaluationPositionStatus\";\r\nimport PropTypes from \"prop-types\";\r\nimport ViewMode from \"../constants/OfferEvaluationViewMode\";\r\nimport OffersEvaluationScoreColumn from \"./OffersEvaluationScoreColumn\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n italic: {\r\n fontStyle: 'italic',\r\n userSelect: 'none'\r\n },\r\n evenRow: {\r\n backgroundColor: theme.palette.background.default\r\n },\r\n lastRow: {\r\n borderBottom: `solid 2px ${theme.palette.primary.main}`\r\n },\r\n scoreColumn: {\r\n padding: '4px 4px 4px 8px !important'\r\n },\r\n statusSelect: {\r\n width: 170,\r\n \"& .MuiSelect-selectMenu\": {\r\n whiteSpace: \"normal\"\r\n }\r\n }\r\n}));\r\n\r\nconst statusesList = Object.keys(OfferEvaluationPositionStatus).map(key => ({label: OfferEvaluationPositionStatusLabel(key), value: key}));\r\n\r\n\r\nfunction OffersEvaluationRow(\r\n {\r\n editable,\r\n offerEvaluationRow,\r\n mode,\r\n rowNumber,\r\n updateScore,\r\n updateStatus\r\n }) {\r\n\r\n const classes = useStyles();\r\n const even = rowNumber % 2 === 1;\r\n const [statusWorking, setStatusWorking] = useState(false);\r\n const [scoreWorking, setScoreWorking] = useState(false);\r\n const [confirmOpened, setConfirmOpened] = useState(false);\r\n\r\n const onUpdateScore = async (score, criterion) => {\r\n setScoreWorking(true);\r\n try {\r\n await updateScore(score, criterion, offerEvaluationRow);\r\n } finally {\r\n setScoreWorking(false);\r\n }\r\n }\r\n\r\n const onUpdateStatus = (newStatus, confirmed) => {\r\n\r\n if (!confirmed && newStatus === OfferEvaluationPositionStatus.ALLOWED && offerEvaluationRow.status === OfferEvaluationPositionStatus.EXTREMELY_LOW) {\r\n setConfirmOpened(true);\r\n } else {\r\n setStatusWorking(true);\r\n updateStatus(newStatus, offerEvaluationRow).finally(() => setStatusWorking(false));\r\n }\r\n\r\n }\r\n\r\n return (offerEvaluationRow.criteriaEvaluation.map((element, index, array) => {\r\n const first = index === 0;\r\n const last = index === array.length - 1;\r\n\r\n const rowSpan = offerEvaluationRow.criteriaEvaluation.length;\r\n return (\r\n {first && \r\n \r\n {Tr(`offer_evaluation_mode_title_${mode === ViewMode.SUPPLIER ? ViewMode.POSITION.toLowerCase() : ViewMode.SUPPLIER.toLowerCase()}`, {value: offerEvaluationRow.order})}\r\n \r\n {mode === ViewMode.POSITION ?\r\n \r\n {offerEvaluationRow.consorciumOffer ? Tr('consorcium_with_name', {name: offerEvaluationRow.name}) : offerEvaluationRow.name}\r\n \r\n : <>\r\n \r\n {offerEvaluationRow.name}\r\n \r\n {offerEvaluationRow.consorciumOffer && \r\n ({Tr('consorcium_offer')})\r\n }\r\n >\r\n\r\n }\r\n }\r\n {element.name}\r\n {formatAmountNumber(element.weight, '-')}\r\n {element.value}\r\n \r\n \r\n \r\n\r\n {first && {formatAmountNumber(offerEvaluationRow.score)}}\r\n {first && \r\n onUpdateStatus(event.target.value)}\r\n working={statusWorking}\r\n />\r\n { setConfirmOpened(false)}\r\n onConfirm={() => {\r\n setConfirmOpened(false);\r\n onUpdateStatus(OfferEvaluationPositionStatus.ALLOWED, true)\r\n }}\r\n open={confirmOpened}\r\n />}\r\n }\r\n )\r\n }))\r\n}\r\n\r\nOffersEvaluationRow.propTypes = {\r\n editable: PropTypes.bool.isRequired,\r\n offerEvaluationRow: PropTypes.object.isRequired,\r\n mode: PropTypes.oneOf([ViewMode.POSITION, ViewMode.SUPPLIER]).isRequired,\r\n rowNumber: PropTypes.number.isRequired,\r\n updateScore: PropTypes.func.isRequired,\r\n updateStatus: PropTypes.func.isRequired\r\n}\r\n\r\nexport default OffersEvaluationRow;\r\n\r\n","import React from \"react\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport ViewMode from \"../constants/OfferEvaluationViewMode\";\r\nimport OffersEvaluationRow from \"./OffersEvaluationRow\";\r\nimport PropTypes from \"prop-types\";\r\nimport BoldTypography from \"../../../../../../../../components/BoldTypography\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n border: `solid 3px ${theme.palette.background.paper}`,\r\n \"& .MuiTableCell-root\": {\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n padding: theme.spacing()\r\n }\r\n },\r\n headRow: {\r\n \"&>.MuiTableCell-head\": {\r\n textAlign: \"center\",\r\n borderBottom: `solid 2px ${theme.palette.primary.main}`\r\n }\r\n },\r\n critColumn: {},\r\n weightColumn: {\r\n width: 40\r\n },\r\n valueColumn: {\r\n width: '15%'\r\n },\r\n scoreColumn: {\r\n width: 100\r\n },\r\n scoreTotalColumn: {\r\n width: 50\r\n },\r\n statusColumn: {\r\n width: 170\r\n },\r\n\r\n}));\r\n\r\nfunction OffersEvaluationTable(\r\n {\r\n editable,\r\n offerEvaluationItem,\r\n updateScore,\r\n updateStatus\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const mode = offerEvaluationItem?.mode;\r\n\r\n const onUpdateScore = async (score, criterion, row) => {\r\n await updateScore(score, criterion, row, offerEvaluationItem, mode);\r\n }\r\n\r\n const onUpdateStatus = async (status, row) => {\r\n await updateStatus(status, row, offerEvaluationItem, mode);\r\n }\r\n\r\n return (\r\n \r\n \r\n {Tr(mode === ViewMode.SUPPLIER ? \"part\" : \"offer\")}\r\n {Tr(\"criteria\")}\r\n {Tr(\"weight\")}\r\n {Tr(\"value\")}\r\n {Tr(\"score\")}\r\n {Tr(\"score_total\")}\r\n {Tr(\"status\")}\r\n \r\n \r\n \r\n {\r\n offerEvaluationItem.offerEvaluations.length ?\r\n offerEvaluationItem.offerEvaluations.map((x, index) =>\r\n )\r\n :\r\n \r\n \r\n {Tr('no_options')}\r\n \r\n \r\n }\r\n \r\n
)\r\n}\r\n\r\nOffersEvaluationTable.propTypes = {\r\n editable: PropTypes.bool.isRequired,\r\n offerEvaluationItem: PropTypes.object.isRequired,\r\n updateScore: PropTypes.func.isRequired,\r\n updateStatus: PropTypes.func.isRequired\r\n}\r\n\r\nexport default OffersEvaluationTable;\r\n\r\n","import React, {useEffect, useState} from 'react'\r\nimport Pagination from '@material-ui/lab/Pagination';\r\nimport PropTypes from 'prop-types';\r\nimport {getPaginationConfig} from \"hooks/useSearch\";\r\nimport GridBlock from \"./GridBlock\";\r\nimport {makeStyles, TextField} from \"@material-ui/core\";\r\nimport Typography from \"./Typography\";\r\nimport IconButton from \"./button/IconButton\";\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowRight'\r\nimport Tr from 'translations/Translations'\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginTop: theme.spacing()\r\n },\r\n pageInputInput: {\r\n \"&>input\": {\r\n textAlign: 'center'\r\n }\r\n },\r\n pageInput: {\r\n width: theme.components.input.criteria.width,\r\n marginLeft: theme.spacing()\r\n },\r\n emptyWidth: {\r\n width: 200\r\n },\r\n goToPage: {\r\n userSelect: 'none'\r\n }\r\n}));\r\n\r\nfunction DottedPagination(\r\n {\r\n config = getPaginationConfig(1, 10),\r\n setConfig = () => {\r\n },\r\n totalCount = 0,\r\n disabled,\r\n showManualInputField = true\r\n }) {\r\n\r\n const classes = useStyles();\r\n const [pageValue, setPageValue] = useState(\"\");\r\n const handleChangePage = (event, newPage) => {\r\n setConfig({...config, page: newPage});\r\n }\r\n\r\n useEffect(() => {\r\n setPageValue((\"\"))\r\n }, [config])\r\n\r\n const changePage = (e) => {\r\n let value = e.target.value;\r\n if (/^\\d+$/.test(value)) {\r\n const intVal = parseInt(value);\r\n if (intVal >= 1 && intVal <= totalCount) {\r\n setPageValue(value);\r\n }\r\n } else if (value === \"\") {\r\n setPageValue(value);\r\n }\r\n }\r\n\r\n const handleKeyUp = (e) => {\r\n if (e.key === 'Enter') {\r\n handleConfirmPageValue();\r\n }\r\n }\r\n\r\n const handleConfirmPageValue = () => {\r\n if (pageValue !== \"\") {\r\n setConfig({...config, page: parseInt(pageValue)});\r\n }\r\n }\r\n\r\n return (\r\n \r\n {showManualInputField && }\r\n \r\n {showManualInputField && \r\n {Tr('go_to_page')}:\r\n \r\n \r\n }\r\n \r\n\r\n )\r\n}\r\n\r\nDottedPagination.propTypes = {\r\n config: PropTypes.shape({\r\n page: PropTypes.number,\r\n pageSize: PropTypes.number\r\n }),\r\n setConfig: PropTypes.func,\r\n totalCount: PropTypes.number,\r\n disabled: PropTypes.bool,\r\n showCustomInput: PropTypes.bool\r\n}\r\n\r\nexport default DottedPagination;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport ArrowIconRight from '@material-ui/icons/KeyboardArrowRight'\r\nimport Tr from 'translations/Translations'\r\nimport Button from \"./Button\";\r\nimport ArrowIconLeft from '@material-ui/icons/KeyboardArrowLeft'\r\n\r\nexport const Types = {\r\n PREV: \"prev\",\r\n NEXT: \"next\"\r\n}\r\n\r\nfunction PaginationButton(\r\n {\r\n type = Types.NEXT,\r\n config,\r\n setConfig = () => {\r\n },\r\n totalCount = 0,\r\n disabled\r\n }) {\r\n\r\n\r\n const changePage = () => {\r\n if (type === Types.NEXT) {\r\n const newPage = config.page + 1;\r\n if(totalCount >= newPage)\r\n setConfig({...config, page: newPage});\r\n }\r\n if (type ===Types.PREV) {\r\n const newPage = config.page - 1;\r\n if(newPage >= 1 && totalCount >= newPage )\r\n setConfig({...config, page: newPage});\r\n }\r\n }\r\n\r\n const variantDisabled = disabled || (type === Types.NEXT && config.page >= totalCount) || (type === Types.PREV && config.page <= 1)\r\n\r\n\r\n return (\r\n \r\n\r\n )\r\n}\r\n\r\nPaginationButton.propTypes = {\r\n config: PropTypes.shape({\r\n page: PropTypes.number,\r\n pageSize: PropTypes.number\r\n }),\r\n setConfig: PropTypes.func,\r\n totalCount: PropTypes.number,\r\n disabled: PropTypes.bool,\r\n type: PropTypes.oneOf([Types.PREV, Types.NEXT])\r\n}\r\n\r\nexport default PaginationButton;\r\n","import Tr from \"translations/Translations\";\r\n\r\nexport const OfferEvaluationRoundType = {\r\n BASE: \"base\",\r\n ADDITIONAL_OFFERS: \"additional_offers\",\r\n AUCTION: \"auction\"\r\n}\r\nconst _TR_PREFIX = 'offer_evaluation_round_type_';\r\n\r\nexport const OfferEvaluationRoundTypeLabel = (type) => (Tr(_TR_PREFIX + type));\r\n","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport {TextField} from \"@material-ui/core\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport {OfferEvaluationRoundType, OfferEvaluationRoundTypeLabel} from \"../constants/OfferEvaluationRoundType\";\r\nimport ViewMode from \"../constants/OfferEvaluationViewMode\";\r\nimport {useDidUpdateEffect} from \"../../../../../../../../hooks/useDidUpdateEffect\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2),\r\n '&>*:not(:first-child):not(:last-child)': {\r\n marginLeft: theme.spacing(4),\r\n }\r\n },\r\n roundType: {\r\n width: 285,\r\n },\r\n search: {\r\n width: 250,\r\n }\r\n}));\r\n\r\nconst EMPTY_SEARCH_OBJECT = {roundType: OfferEvaluationRoundType.BASE, search: ''}\r\nconst MAX_SEARCH_LENGTH = 100;\r\n\r\nconst decisionsList =\r\n [OfferEvaluationRoundType.BASE, OfferEvaluationRoundType.ADDITIONAL_OFFERS, OfferEvaluationRoundType.AUCTION].map(key => ({\r\n label: OfferEvaluationRoundTypeLabel(key),\r\n value: key\r\n }))\r\n\r\nfunction OfferEvaluationSearch(\r\n {\r\n searchInProgress,\r\n doSearch,\r\n viewMode\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [value, setValue] = useState({...EMPTY_SEARCH_OBJECT});\r\n const [submitState, setSubmitState] = useState({counter: 0, paginationClear:true});\r\n\r\n useEffect(() => {\r\n if (submitState && !searchInProgress) {\r\n const valueFiltered = Object.keys(value)\r\n .filter((k) => value[k])\r\n .reduce((a, k) => ({...a, [k]: value[k]}), {});\r\n doSearch(valueFiltered, submitState.paginationClear);\r\n }\r\n // eslint-disable-next-line\r\n }, [submitState]);\r\n\r\n useDidUpdateEffect(()=> {\r\n doClearSearch();\r\n }, [viewMode]);\r\n\r\n\r\n const handleChange = (id, e) => {\r\n setValue({...value, [id]: e.target.value});\r\n }\r\n\r\n const handleSubmit = (paginationClear=true) => {\r\n setSubmitState(x => ({counter: x.counter + 1, paginationClear}))\r\n };\r\n\r\n\r\n const handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n handleSubmit()\r\n }\r\n }\r\n\r\n const doClearSearch = () => {\r\n setValue({...value, search: \"\"});\r\n handleSubmit();\r\n }\r\n\r\n return (\r\n <>\r\n {Tr('search_box')}\r\n \r\n {\r\n handleChange(\"roundType\", e);\r\n handleSubmit(false);\r\n }}\r\n />\r\n\r\n handleChange('search', e)}\r\n onKeyUp={handleKeyPress}\r\n fullWidth\r\n value={value.search}\r\n inputProps={{maxLength: MAX_SEARCH_LENGTH}}\r\n />\r\n\r\n \r\n \r\n \r\n
\r\n \r\n >\r\n )\r\n}\r\n\r\nOfferEvaluationSearch.propTypes = {\r\n doSearch: PropTypes.func.isRequired,\r\n searchInProgress: PropTypes.bool,\r\n viewMode: PropTypes.oneOf([ViewMode.POSITION, ViewMode.SUPPLIER]).isRequired\r\n}\r\n\r\n\r\nexport default OfferEvaluationSearch;","import React, {useEffect, useState} from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {connect} from \"react-redux\";\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport useSearch, {getPaginationConfig} from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport Loading from \"components/Loading\";\r\nimport OfferEvaluationService from \"services/OfferEvaluationService\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport ViewMode from \"./constants/OfferEvaluationViewMode\";\r\nimport OffersEvaluationTable from \"./components/OffersEvaluationTable\";\r\nimport DottedPagination from \"components/DottedPagination\";\r\nimport Tr from \"translations/Translations\";\r\nimport PaginationButton, {Types as PaginationButtonTypes} from \"components/PaginationButton\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport OfferEvaluationSearch from \"./components/OfferEvaluationSearch\";\r\nimport {OfferEvaluationRoundType} from \"./constants/OfferEvaluationRoundType\";\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n italic: {\r\n fontStyle: 'italic',\r\n userSelect: 'none'\r\n },\r\n center: {\r\n textAlign: 'center',\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n marginBottom: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n name: {\r\n marginTop: theme.spacing(2),\r\n marginBottom: theme.spacing(2)\r\n }\r\n}));\r\n\r\n\r\nfunction OffersEvaluation(\r\n {\r\n match,\r\n offerEvaluationList,\r\n demandValidation\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const curDemandValidation = DemandValidation.OFFERS_EVALUATION;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig} =\r\n useSearch({pagination: getPaginationConfig(1, 1), search: {roundType: OfferEvaluationRoundType.BASE}});\r\n const [offerLoading, setOfferLoading] = useState(true);\r\n const [mode, setMode] = useState(ViewMode.POSITION);\r\n\r\n useEffect(() => {\r\n return () => {\r\n OfferEvaluationService.clearResources(OfferEvaluationService.OFFER_EVALUATION_LIST_RESOURCE_ID);\r\n }\r\n }, [demandId])\r\n\r\n useEffect(() => {\r\n setOfferLoading(true);\r\n const pagination = searchData.pagination;\r\n const search = {...searchData.search};\r\n const roundType = search.roundType;\r\n delete search.roundType;\r\n OfferEvaluationService.getOffers(demandId, pagination, search, mode, roundType).then(() => (setOfferLoading(false)));\r\n // eslint-disable-next-line\r\n }, [searchData, demandId])\r\n\r\n useDidUpdateEffect(() => {\r\n if (offerEvaluationList?.totalCount !== undefined) {\r\n setTotalCount(offerEvaluationList.totalCount)\r\n }\r\n }, [offerEvaluationList?.totalCount]);\r\n\r\n const updateStatus = async (status, row, offerItem, mode) => {\r\n try {\r\n const changeType = await OfferEvaluationService.updateStatus(demandId, mode, searchData.search.roundType, offerItem, row, status);\r\n if (changeType === OfferEvaluationService.AVAILABLE_CHANGE_TYPES.ALL) {\r\n setPaginationConfig({...searchData.pagination});\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n const updateScore = async (score, criterion, row, offerItem, mode) => {\r\n try {\r\n const changeType = await OfferEvaluationService.updateScore(demandId, mode, searchData.search.roundType, offerItem, row, criterion, score)\r\n if (changeType === OfferEvaluationService.AVAILABLE_CHANGE_TYPES.ALL) {\r\n setPaginationConfig({...searchData.pagination});\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n const doSearch = (searchOb, paginationClear) => {\r\n setSearchConfig(searchOb, !paginationClear);\r\n };\r\n\r\n if (!offerEvaluationList) return ;\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {!offerEvaluationList.items[0] ?\r\n {Tr('no_options')}\r\n :\r\n <>\r\n \r\n \r\n \r\n {Tr(`offer_evaluation_mode_title_${mode.toLowerCase()}`, {value: offerEvaluationList.items[0].order})} - \r\n {offerEvaluationList.items[0].name}\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 connect((state) => ({\r\n offerEvaluationList: state.resources[OfferEvaluationService.OFFER_EVALUATION_LIST_RESOURCE_ID],\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(OffersEvaluation));\r\n\r\n","import React from 'react'\r\nimport OffersEvaluation from \"./OffersEvaluation\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource, setSaveStatusError} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport applySearchParams from \"libs/applySearchParams\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport DemandSectionsService from \"./DemandSectionsService\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst OFFER_CHOICE_LIST_RESOURCE_ID = 'offerChoiceList';\r\nconst OFFER_CHOICE_JUSTIFICATIONS = 'choiceJustificationBasis';\r\n\r\nconst getChoiceList = async (demandId, pagination, search) => {\r\n const params = {\r\n ...pagination\r\n };\r\n applySearchParams(search, params);\r\n try {\r\n const resp = await RestRequestGET(Endpoints.OFFER_CHOICE(demandId), {params});\r\n reduxStore.dispatch(setResource(OFFER_CHOICE_LIST_RESOURCE_ID, resp));\r\n } catch (error) {\r\n }\r\n};\r\nconst getPositionAuctions = async (demandId, positionId) => {\r\n return await RestRequestGET(Endpoints.OFFER_CHOICE_PREPARE_AUCTION_INFO(demandId, positionId));\r\n};\r\n\r\nconst updatePosition = async (demandId, positionId, sectionsToRefresh) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.OFFER_CHOICE_GET_POSITION(demandId, positionId));\r\n if (isResponseValid(resp)) {\r\n _doUpdatePosition(resp);\r\n await callSectionsValidation(demandId, sectionsToRefresh)\r\n }\r\n } catch (error) {\r\n }\r\n};\r\n\r\nlet updateInProgress = false;\r\nconst callSectionsValidation = async (demandId, sectionsToRefresh) => {\r\n if (!updateInProgress && Array.isArray(sectionsToRefresh)) {\r\n updateInProgress = true;\r\n try {\r\n for (const demandValidation of sectionsToRefresh)\r\n await validateSection(demandValidation, demandId, false);\r\n\r\n } finally {\r\n updateInProgress = false;\r\n }\r\n }\r\n}\r\n\r\nconst addAuctionToAdditionalRoundInfo = (positionId, auction) => {\r\n _doUpdateAuction(positionId, auction, \"ADD\")\r\n}\r\nconst removeAuctionFromAdditionalRoundInfo = (positionId, auction) => {\r\n _doUpdateAuction(positionId, auction, \"DELETE\")\r\n}\r\nconst updateAuctionInAdditionalRoundInfo = (positionId, auction) => {\r\n _doUpdateAuction(positionId, auction, \"UPDATE\")\r\n}\r\n\r\n\r\nconst _doUpdatePosition = (newPos) => {\r\n const {resources} = reduxStore.getState();\r\n\r\n const curList = resources[OFFER_CHOICE_LIST_RESOURCE_ID];\r\n if (curList) {\r\n const newList = {\r\n ...curList,\r\n items: curList.items.map(pos => pos.identity !== newPos.identity ? pos : newPos)\r\n }\r\n reduxStore.dispatch(setResource(OFFER_CHOICE_LIST_RESOURCE_ID, newList));\r\n }\r\n}\r\n\r\nconst _doUpdateAuction = (positionId, auction, mode) => {\r\n const {resources} = reduxStore.getState();\r\n\r\n const curList = resources[OFFER_CHOICE_LIST_RESOURCE_ID];\r\n if (curList) {\r\n const newList = {\r\n ...curList,\r\n items: curList.items.map(pos =>\r\n pos.identity !== positionId ? pos : {\r\n ...pos,\r\n currentAdditionalRoundInfo: {\r\n ...pos.currentAdditionalRoundInfo,\r\n auctions: mode === \"ADD\" ? [...pos.currentAdditionalRoundInfo.auctions, auction] :\r\n (mode === \"UPDATE\" ?\r\n pos.currentAdditionalRoundInfo.auctions.map(auc => auc.auctionId !== auction.auctionId ? auc : auction) :\r\n pos.currentAdditionalRoundInfo.auctions.filter(auc => auc.auctionId !== auction.auctionId)\r\n )\r\n }\r\n }\r\n )\r\n }\r\n reduxStore.dispatch(setResource(OFFER_CHOICE_LIST_RESOURCE_ID, newList));\r\n }\r\n}\r\n\r\n\r\nconst getChoiceJustificationBasis = async (demandId) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.OFFER_CHOICE_JUSTIFICATIONS(demandId));\r\n reduxStore.dispatch(setResource(OFFER_CHOICE_JUSTIFICATIONS, resp));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst getPositionsWithNoOffer = async (demandId) => {\r\n try {\r\n return await RestRequestGET(Endpoints.OFFER_CHOICE_POSITIONS_WITH_NO_OFFER(demandId));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst prepareAdditionalRound = async (demandId, roundType) => {\r\n try {\r\n return await RestRequestGET(Endpoints.OFFER_CHOICE_PREPARE_ADDITIONAL_ROUND(demandId, roundType));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst cancelPositionsWithNoOffer = async (demandId, values) => {\r\n\r\n const data = {\r\n ...values,\r\n offerChoiceDate: values.offerChoiceDate.format()\r\n }\r\n\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE_CANCEL_WHERE_NO_OFFERS(demandId), data);\r\n if (resp.success !== true) {\r\n throw new Error(resp)\r\n }\r\n await validateSection(DemandValidation.OFFER_CHOICE, demandId, false);\r\n await validateSection(DemandValidation.OFFERS_CHOICE_RESULT, demandId, false);\r\n return resp;\r\n};\r\n\r\nconst createAdditionalRound = async (demandId, values, roundType) => {\r\n const data = {\r\n \"endDate\": values.endDate ? values.endDate.format() : null,\r\n \"openOfferDate\": values.openOfferDate ? values.openOfferDate.format() : null,\r\n \"positions\": Object.keys(values.parts).filter(x => values.parts[x].checked === true).map(x => {\r\n const filteredContractors = Object.keys(values.parts[x].contractors).filter(c => values.parts[x].contractors[c] === true);\r\n return {\r\n positionId: x.substring(1),\r\n departmentIds: !!filteredContractors ? filteredContractors.map(c => c.substring(1)) : []\r\n }\r\n }),\r\n \"roundType\": roundType\r\n }\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE_CREATE_ADDITIONAL_ROUND(demandId), data);\r\n await validateSection(DemandValidation.OFFER_CHOICE, demandId, false);\r\n return resp;\r\n};\r\n\r\nconst modifyChoice = async (demandId, positionId) => {\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE_REVOKE(demandId, positionId));\r\n if (!(resp.success && resp.result)) {\r\n throw new Error();\r\n }\r\n await validateSection(DemandValidation.OFFER_CHOICE, demandId, false);\r\n await validateSection(DemandValidation.OFFERS_CHOICE_RESULT, demandId, false);\r\n _doUpdatePosition(resp.result)\r\n}\r\n\r\nconst saveOfferChoice = async (demandId, positionId, canceled, chosenSupplierIds, offerChoiceDate, offerChoiceJustification) => {\r\n const data = {\r\n identity: positionId,\r\n offerChoiceDate: offerChoiceDate.format(),\r\n offerChoiceJustification,\r\n canceled\r\n };\r\n\r\n if (!canceled) {\r\n data.chosenSupplierIds = [...chosenSupplierIds]\r\n }\r\n\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE(demandId), data);\r\n\r\n if (!(resp.success && resp.result)) {\r\n throw new Error();\r\n }\r\n await validateSection(DemandValidation.OFFER_CHOICE, demandId, false);\r\n await validateSection(DemandValidation.OFFERS_CHOICE_RESULT, demandId, false);\r\n _doUpdatePosition(resp.result)\r\n}\r\n\r\n\r\nconst checkForPrimaryTenderChoiceOptions = async (demandId) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.OFFER_CHOICE_PRIMARY_CHECK(demandId));\r\n return resp;\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\nconst postPrimaryTenderDoNegotiations = async (demandId) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE_PRIMARY_DO_NEGOTIATIONS(demandId));\r\n if (isResponseValid(resp, (e) => {throw new Error(e)}))\r\n await DemandSectionsService.getEvaluationSections(demandId, true)\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n};\r\nconst postPrimaryTenderDoOfferChoice = async (demandId) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE_PRIMARY_DO_OFFER_CHOICE(demandId));\r\n if (isResponseValid(resp, (e) => {throw new Error(e)}))\r\n await DemandSectionsService.getEvaluationSections(demandId, true)\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n};\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.OFFER_CHOICE_VALIDATE(id));\r\n}\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n};\r\n\r\nexport default {\r\n getChoiceList,\r\n getPositionsWithNoOffer,\r\n getChoiceJustificationBasis,\r\n createAdditionalRound,\r\n prepareAdditionalRound,\r\n cancelPositionsWithNoOffer,\r\n saveOfferChoice,\r\n updateAuctionInAdditionalRoundInfo,\r\n addAuctionToAdditionalRoundInfo,\r\n removeAuctionFromAdditionalRoundInfo,\r\n updatePosition,\r\n modifyChoice,\r\n getPositionAuctions,\r\n checkForPrimaryTenderChoiceOptions,\r\n postPrimaryTenderDoOfferChoice,\r\n postPrimaryTenderDoNegotiations,\r\n validate,\r\n callSectionsValidation,\r\n clearResources,\r\n OFFER_CHOICE_JUSTIFICATIONS,\r\n OFFER_CHOICE_LIST_RESOURCE_ID\r\n}","import React from 'react'\r\nimport {TablePagination} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport {getPaginationConfig} from \"hooks/useSearch\";\r\n\r\nfunction Pagination(\r\n {\r\n config = getPaginationConfig(1, 10),\r\n setConfig = () => {\r\n },\r\n rowsPerPageOptions = [1, 2, 5, 10, 25, 50],\r\n totalCount = 0,\r\n disabled\r\n }) {\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setConfig({...config, page: newPage + 1});\r\n }\r\n\r\n const handleChangeRowsPerPage = (event) => {\r\n setConfig({...config, page: 1, pageSize: parseInt(event.target.value, 10)});\r\n }\r\n\r\n return (\r\n `${from}-${to === -1 ? count : to} ${Tr('of')} ${count}`}\r\n SelectProps={{\r\n disabled: disabled\r\n }}\r\n backIconButtonProps={\r\n disabled\r\n ? {\r\n disabled: disabled\r\n }\r\n : undefined\r\n }\r\n nextIconButtonProps={\r\n disabled\r\n ? {\r\n disabled: disabled\r\n }\r\n : undefined\r\n }\r\n />\r\n )\r\n}\r\n\r\nPagination.propTypes = {\r\n config: PropTypes.shape({\r\n page: PropTypes.number,\r\n pageSize: PropTypes.number\r\n }),\r\n setConfig: PropTypes.func,\r\n rowsPerPageOptions: PropTypes.arrayOf(PropTypes.number),\r\n totalCount: PropTypes.number,\r\n disabled: PropTypes.bool\r\n}\r\n\r\nexport default Pagination;","import React from \"react\";\r\nimport {makeStyles, TableCell, Tooltip} from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from 'translations/Translations'\r\nimport {CheckBox as CheckBoxIcon, CheckBoxOutlineBlank as CheckBoxOutlineBlankIcon, IndeterminateCheckBox as IndeterminateCheckBoxIcon} from '@material-ui/icons';\r\nimport IconButton from \"components/button/IconButton\";\r\nimport clsx from \"clsx\";\r\nimport Filter1Icon from '@material-ui/icons/Filter1';\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n italic: {\r\n fontStyle: 'italic',\r\n userSelect: 'none'\r\n },\r\n evenRow: {\r\n backgroundColor: theme.palette.background.default\r\n },\r\n lastRow: {\r\n borderBottom: `solid 2px ${theme.palette.primary.main}`\r\n },\r\n statusSelect: {\r\n width: 170,\r\n \"& .MuiSelect-selectMenu\": {\r\n whiteSpace: \"normal\"\r\n }\r\n },\r\n iconColumn: {\r\n padding: '0 !important'\r\n },\r\n columnChecked: {\r\n backgroundColor: theme.palette.secondary.light\r\n },\r\n unavailable: {\r\n color: theme.palette.text.secondary\r\n },\r\n maxPoints: {\r\n fontWeight: theme.typography.fontWeightBold,\r\n textDecoration: 'underline'\r\n },\r\n iconMax: {\r\n fontSize: 'medium'\r\n }\r\n}));\r\n\r\n\r\nfunction OfferChoiceContractorRowPart(\r\n {\r\n editable,\r\n chosen,\r\n chooseSupplierCountReached,\r\n offerChoiceContractor,\r\n offerChoiceRow,\r\n chooseSupplier,\r\n maxPartScore\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n\r\n const getTooltip = () => {\r\n if (editable && !chosen) {\r\n if (offerChoiceContractor.available) {\r\n if (chooseSupplierCountReached)\r\n return Tr('choose_supplier_max_tooltip', {max: offerChoiceRow.maxOfferChoiceCount})\r\n } else {\r\n return offerChoiceContractor.unavailableReason ? offerChoiceContractor.unavailableReason : Tr('choose_supplier_unavilable');\r\n }\r\n }\r\n return null;\r\n }\r\n const maxScore = maxPartScore === offerChoiceContractor.offerScore;\r\n const className =clsx({\r\n [classes.columnChecked]: chosen,\r\n [classes.unavailable]: !offerChoiceContractor.available,\r\n [classes.maxPoints]: offerChoiceContractor.available && maxScore});\r\n return (<>\r\n {maxScore &&}\r\n {offerChoiceContractor.consorciumOffer ? Tr('consorcium_with_name', {name: offerChoiceContractor.name}) : offerChoiceContractor.name}\r\n {offerChoiceContractor.offerValue}\r\n {formatAmountNumber(offerChoiceContractor.offerScore)}\r\n \r\n chooseSupplier(offerChoiceContractor)}\r\n Icon={offerChoiceContractor.available ? (chosen ? CheckBoxIcon : CheckBoxOutlineBlankIcon) : IndeterminateCheckBoxIcon}\r\n color={ offerChoiceContractor.available ? 'primary' : undefined}\r\n />\r\n \r\n >\r\n )\r\n}\r\n\r\nOfferChoiceContractorRowPart.propTypes = {\r\n editable: PropTypes.bool.isRequired,\r\n chosen: PropTypes.bool.isRequired,\r\n chooseSupplierCountReached: PropTypes.bool.isRequired,\r\n offerChoiceContractor: PropTypes.object.isRequired,\r\n offerChoiceRow: PropTypes.object.isRequired,\r\n chooseSupplier: PropTypes.func.isRequired,\r\n maxPartScore: PropTypes.number.isRequired\r\n}\r\n\r\nexport default OfferChoiceContractorRowPart;\r\n\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport Tr from 'translations/Translations';\r\nimport {AuctionType} from \"constants/AuctionType\";\r\nimport Typography from \"components/Typography\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport {AuctionStatusLabel} from \"constants/AuctionStatus\";\r\n\r\nfunction AuctionTypeList(\r\n {\r\n auctionType,\r\n auctions\r\n }) {\r\n\r\n return (<>\r\n {Tr(auctionType === AuctionType.PROD ? 'auctions_prod' : 'auctions_test')}\r\n {Tr('auction_numbers')}:\r\n {auctions.length === 0 ?\r\n {Tr('auctions_empty')}\r\n :\r\n auctions.map((x, i) => (\r\n \r\n {x.auctionId + \" (\" + AuctionStatusLabel(x.status) + \")\"}\r\n \r\n {(i < auctions.length - 1 && auctions.length > 1) && '; '}\r\n \r\n ))\r\n }\r\n \r\n >\r\n )\r\n}\r\n\r\nAuctionTypeList.propTypes = {\r\n auctions: PropTypes.array.isRequired,\r\n auctionType: PropTypes.string.isRequired,\r\n}\r\n\r\nexport default AuctionTypeList;\r\n","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport {AuctionType} from \"constants/AuctionType\";\r\nimport AuctionTypeList from \"./AuctionTypeList\";\r\n\r\nconst AuctionHistoryPopup = (\r\n {\r\n demandId,\r\n positionId,\r\n onClose\r\n }) => {\r\n\r\n\r\n const [auctions, setAuctions] = useState(null);\r\n\r\n useEffect(() => {\r\n OfferChoiceService.getPositionAuctions(demandId, positionId).then((resp) => {\r\n const {prod, test} = resp.auctions.reduce((prev, cur) => {\r\n if (cur.type === AuctionType.PROD)\r\n prev.prod.push(cur);\r\n else\r\n prev.test.push(cur);\r\n return prev;\r\n }, {prod: [], test: []});\r\n\r\n setAuctions({prod, test})\r\n }).catch(() => setAuctions({}))\r\n }, [demandId, positionId])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('close'), onClose, undefined, !auctions));\r\n return buttons;\r\n }\r\n\r\n return (\r\n )\r\n}\r\n\r\nAuctionHistoryPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n positionId: PropTypes.number.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default AuctionHistoryPopup","import {useMemo, useState} from \"react\";\r\nimport {makeStyles, TextField} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from \"prop-types\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {KeyboardDatePicker} from \"@material-ui/pickers\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport moment from \"libs/moment\";\r\nimport Button from \"components/Button\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport {createSelectItem} from \"components/Select\";\r\nimport {connect} from \"react-redux\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport AuctionHistoryPopup from \"./auction/AuctionHistoryPopup\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n choiceSize: {\r\n \"& .MuiInput-root\": {\r\n fontSize: theme.typography.body2.fontSize,\r\n color: theme.palette.text.primary\r\n }\r\n },\r\n choiceStatus: {\r\n marginBottom: theme.spacing()\r\n },\r\n choiceControls: {\r\n marginTop: theme.spacing(2),\r\n textAlign: 'center'\r\n },\r\n choiceControlsEnd: {\r\n textAlign: 'end'\r\n },\r\n offerChoiceJustification: {\r\n width: 300,\r\n marginTop: theme.spacing(2)\r\n },\r\n menuItemClassName: {\r\n whiteSpace: 'normal'\r\n },\r\n auctionHistory: {\r\n float: 'right',\r\n }\r\n}));\r\n\r\nfunction OfferChoiceSummaryCell(\r\n {\r\n demandId,\r\n editable,\r\n rowWorking,\r\n working,\r\n offerChoiceRow,\r\n chosenStatusDone,\r\n setChosenStatusDone,\r\n chosenSuppliers,\r\n updateStatus,\r\n modifyChoice,\r\n offerChoiceJustifications\r\n }) {\r\n const classes = useStyles();\r\n const [auctionHistoryPopup, setAuctionHistoryPopup] = useState(false);\r\n const [offerChoiceDateError, setOfferChoiceDateError] = useState(false);\r\n const [modifyConfirmOpen, setModifyConfirmOpen] = useState(false);\r\n const [offerChoiceJustification, setOfferChoiceJustification] = useState(offerChoiceRow.offerChoiceJustification || '');\r\n const [offerChoiceDate, setOfferChoiceDate] = useState(offerChoiceRow.offerChoiceDate ? moment(offerChoiceRow.offerChoiceDate) : null);\r\n\r\n const handleChangeDate = (date) => {\r\n const dateValue = date ? date : null;\r\n setOfferChoiceDateError(!dateValue);\r\n setOfferChoiceDate(dateValue)\r\n }\r\n\r\n const onUpdateStatus = () => {\r\n\r\n if (!offerChoiceDate || !moment.isMoment(offerChoiceDate) || !offerChoiceDate.isValid()) {\r\n setOfferChoiceDateError(true);\r\n return;\r\n }\r\n\r\n const canceled = chosenSuppliers.length === 0;\r\n updateStatus(offerChoiceRow.identity, canceled, canceled ? null : chosenSuppliers, offerChoiceDate, offerChoiceJustification).then(() => {\r\n setChosenStatusDone(true);\r\n }).catch((e) => console.error(e));\r\n\r\n };\r\n\r\n const disabledInputs = working || chosenStatusDone || !editable;\r\n\r\n const auctionHistoryVisible = useMemo(() => offerChoiceRow.currentAdditionalRoundInfo\r\n && offerChoiceRow.currentAdditionalRoundInfo.type === RoundType.AUCTION, [offerChoiceRow.currentAdditionalRoundInfo]);\r\n\r\n return (\r\n \r\n {auctionHistoryVisible &&\r\n \r\n }\r\n\r\n {chosenStatusDone &&\r\n {offerChoiceRow.canceled ? Tr('offer_choice_cancelled') : Tr('offer_choice_chosen')}\r\n }\r\n\r\n \r\n {!chosenStatusDone && chosenSuppliers.length === 0 &&\r\n createSelectItem(x, offerChoiceJustifications[x]))]}\r\n onChange={(event) => setOfferChoiceJustification(event.target.value === \"empty\" ? \"\" : offerChoiceJustifications[event.target.value])}\r\n value={\"empty\"}\r\n />}\r\n\r\n setOfferChoiceJustification(e.target.value))}\r\n />\r\n\r\n {\r\n editable &&\r\n \r\n {chosenStatusDone ?\r\n setModifyConfirmOpen(true)}>\r\n {Tr('choose_modify')}\r\n :\r\n {chosenSuppliers.length > 0 ? Tr('confirm') : Tr('invalidate')}\r\n }\r\n
\r\n }\r\n\r\n {auctionHistoryPopup && setAuctionHistoryPopup(false)}\r\n positionId={offerChoiceRow.identity}\r\n demandId={demandId}\r\n />}\r\n\r\n setModifyConfirmOpen(false)}\r\n onConfirm={() => {\r\n setModifyConfirmOpen(false);\r\n modifyChoice(offerChoiceRow.identity);\r\n }}\r\n open={modifyConfirmOpen}\r\n translateConfirmTexts={false}\r\n />\r\n )\r\n}\r\n\r\nOfferChoiceSummaryCell.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n rowWorking: PropTypes.bool.isRequired,\r\n offerChoiceRow: PropTypes.object.isRequired,\r\n chosenStatusDone: PropTypes.bool.isRequired,\r\n setChosenStatusDone: PropTypes.func.isRequired,\r\n chosenSuppliers: PropTypes.array.isRequired,\r\n updateStatus: PropTypes.func.isRequired,\r\n modifyChoice: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n offerChoiceJustifications: state.resources[OfferChoiceService.OFFER_CHOICE_JUSTIFICATIONS]\r\n}), {})(OfferChoiceSummaryCell);\r\n;\r\n\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const AdditionalRoundStatus = {\r\n OFFER_COLLECTION: 'OFFER_COLLECTION',\r\n OFFER_DECRYPTION: 'OFFER_DECRYPTION',\r\n OFFER_EVALUATION: 'OFFER_EVALUATION',\r\n CANCELLED: 'CANCELLED',\r\n FINISHED: 'FINISHED'\r\n}\r\n\r\nexport const LABELS = {\r\n [AdditionalRoundStatus.OFFER_COLLECTION]: Tr('procedure_status_2'),\r\n [AdditionalRoundStatus.OFFER_DECRYPTION]: Tr('procedure_status_4_0'),\r\n [AdditionalRoundStatus.OFFER_EVALUATION]: Tr('procedure_status_4'),\r\n [AdditionalRoundStatus.FINISHED]: Tr('procedure_status_7'),\r\n [AdditionalRoundStatus.CANCELLED]: Tr('procedure_status_6'),\r\n}\r\n\r\nexport const AdditionalRoundStatusLabel = (status) => (LABELS[status]);\r\n\r\nexport const AdditionalRoundStatusesPending = [AdditionalRoundStatus.OFFER_COLLECTION, AdditionalRoundStatus.OFFER_DECRYPTION]\r\n","import Tr from \"translations/Translations\";\r\nconst MINUTE_SECONDS = 60;\r\nconst HOUR_SECONDS = 60 * MINUTE_SECONDS;\r\nconst DAY_SECONDS = 24 * HOUR_SECONDS;\r\nconst zeroTable = [0, 0, 0, 0];\r\n\r\n\r\nexport const getDays = (sec) => {\r\n return Math.floor(sec / DAY_SECONDS);\r\n}\r\n\r\nexport const getDaysHoursMinutesSeconds = (sec, zeroValue = zeroTable) => {\r\n if (sec <= 0) {\r\n return zeroValue;\r\n }\r\n\r\n let secLeft = sec;\r\n const days = Math.floor(sec / DAY_SECONDS);\r\n\r\n secLeft = secLeft - (days * DAY_SECONDS);\r\n const hours = Math.floor(secLeft / HOUR_SECONDS);\r\n\r\n secLeft = secLeft - (hours * HOUR_SECONDS);\r\n const minutes = Math.floor(secLeft / MINUTE_SECONDS);\r\n\r\n secLeft = secLeft - (minutes * MINUTE_SECONDS)\r\n const seconds = secLeft;\r\n return [days, hours, minutes, seconds];\r\n}\r\n\r\nexport const formatDaysHoursMinutesSeconds = (table) => {\r\n\r\n if(!table || table.length !== 4) {\r\n return \"\";\r\n }\r\n let ret = '';\r\n if(table[0] > 0) {\r\n ret += table[0] + ' ' + Tr('day')\r\n }\r\n if(table[1] > 0) {\r\n ret += \" \" + table[1] + ' ' + Tr('hours')\r\n }\r\n if(table[2] > 0) {\r\n ret += \" \" + table[2] + ' ' + Tr('min')\r\n }\r\n if(table[3] > 0) {\r\n ret += \" \" + table[3] + ' ' + Tr('seconds')\r\n }\r\n return ret;\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\n\r\n\r\nconst changeDates = async (demandId, {roundId, endDate, openOfferDate}) => {\r\n const data = {\r\n roundId,\r\n endDate: endDate.format(),\r\n openOfferDate: openOfferDate.format()\r\n\r\n }\r\n return await RestRequestPOST(Endpoints.ADDITIONAL_ROUND_CHANGE_DATES(demandId), data);\r\n};\r\n\r\nconst getOffersDecryptionStatus = async (roundId) => {\r\n return await RestRequestGET(Endpoints.RFX_OFFERS_DECRYPTION_STATUS_LIGHT(roundId));\r\n}\r\n\r\nconst getOffersDecryptionProgress = async (roundId) => {\r\n return await RestRequestGET(Endpoints.RFX_OFFERS_DECRYPTION_PROGRESS(roundId));\r\n}\r\n\r\nconst startOffersDecryptionProcess = async (roundId) => {\r\n return await RestRequestPOST(Endpoints.RFX_OFFERS_DECRYPTION_START(roundId));\r\n}\r\n\r\nexport default {\r\n startOffersDecryptionProcess,\r\n getOffersDecryptionStatus,\r\n getOffersDecryptionProgress,\r\n changeDates\r\n}","import React, {useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport * as Yup from \"yup\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport moment from \"libs/moment\";\r\nimport AdditionalRoundService from \"services/AdditionalRoundService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n dateTimePicker: {\r\n width: 350\r\n },\r\n marginBottom: {\r\n marginBottom: theme.spacing(2)\r\n }\r\n}));\r\n\r\nconst OfferChoiceEditAdditionalRoundsDatesPopup = (\r\n {\r\n demandId,\r\n roundName,\r\n additionalRoundId,\r\n additionalRoundStatus,\r\n additionalRoundEndDate,\r\n additionalRoundOpenOfferDate,\r\n onCancel,\r\n onSuccess,\r\n formSubmit\r\n }) => {\r\n const classes = useStyle();\r\n const [working, setWorking] = useState(false);\r\n const [error, setError] = useState(false);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = (values) => {\r\n setError(false);\r\n setWorking(true);\r\n AdditionalRoundService.changeDates(demandId, values).then(() => onSuccess(values)).catch(() => {\r\n setError(true);\r\n setWorking(false);\r\n })\r\n }\r\n\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n buttons.push(createButton(Tr('change_dates'), handleSubmit, undefined, working));\r\n return buttons;\r\n }\r\n\r\n const handleEndDate = (formikProps, value) => {\r\n formikProps.setFieldValue('openOfferDate', value);\r\n }\r\n\r\n return (\r\n )\r\n}\r\n\r\nOfferChoiceEditAdditionalRoundsDatesPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n roundName: PropTypes.string.isRequired,\r\n additionalRoundId: PropTypes.number.isRequired,\r\n additionalRoundStatus: PropTypes.string.isRequired,\r\n additionalRoundEndDate: PropTypes.string.isRequired,\r\n additionalRoundOpenOfferDate: PropTypes.string.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(OfferChoiceEditAdditionalRoundsDatesPopup)","export default {\r\n UNAVAILABLE: \"UNAVAILABLE\",\r\n CAN_START: \"CAN_START\",\r\n IN_PROGRESS: \"IN_PROGRESS\",\r\n PROCESSED: \"PROCESSED\",\r\n ERROR: \"ERROR\"\r\n}","import {makeStyles, Typography} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport React, {useCallback, useEffect, useRef, useState} from \"react\";\r\nimport moment from \"libs/moment\";\r\nimport {formatDaysHoursMinutesSeconds, getDaysHoursMinutesSeconds} from \"libs/durations\";\r\nimport {AdditionalRoundStatus} from \"constants/AdditionalRoundStatus\";\r\nimport OfferChoiceEditAdditionalRoundsDatesPopup from \"./OfferChoiceEditAdditionalRoundsDatesPopup\";\r\nimport AdditionalRoundService from \"services/AdditionalRoundService\";\r\nimport ProgressStatus from \"constants/ProgressStatus\";\r\nimport ProgressBar from \"components/ProgressBar\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n buttons: {\r\n marginTop: theme.spacing(2)\r\n },\r\n button: {\r\n marginLeft: theme.spacing()\r\n }\r\n}));\r\n\r\nconst countTimeFunction = (endTime, serverBrowserTimeDiffSeconds, setLeftTable, timerInterval, endTimeCallback) => {\r\n const end = moment(endTime);\r\n const nowBrowserTime = moment();\r\n const secondsDiff = end.diff(nowBrowserTime, \"s\") - serverBrowserTimeDiffSeconds.current;\r\n if (secondsDiff <= 0) {\r\n if (timerInterval.current)\r\n clearInterval(timerInterval.current);\r\n endTimeCallback();\r\n }\r\n setLeftTable(getDaysHoursMinutesSeconds(secondsDiff, null));\r\n}\r\n\r\n//to widzimy tylko w statusie OFFER_COLLECTION i OFFER_DECRYPTION\r\nfunction OfferChoiceSummaryCellAdditionalRound(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n rowWorking,\r\n setRowWorking,\r\n refreshRow,\r\n serverBrowserTimeDiff,\r\n roundName,\r\n additionalRoundId,\r\n additionalRoundStatus,\r\n additionalRoundEndDate,\r\n additionalRoundOpenOfferDate,\r\n\r\n }) {\r\n const classes = useStyles();\r\n\r\n const [leftTableToOfferEnd, setLeftTableToOfferEnd] = useState(null);\r\n const [leftTableToOpenOffer, setLeftTableToOpenOffer] = useState(null);\r\n const [editDatesOpened, setEditDatesOpened] = useState(false);\r\n const [decryptionStatus, setDecryptionStatus] = useState(null);\r\n const [decryptionProgress, setDecryptionProgress] = useState([-1, 0]);\r\n const decryptionInterval = useRef(0);\r\n const timerInterval = useRef(0);\r\n const decryptionFinished = useRef(false);\r\n\r\n const endTimeCallback = useCallback(() => {\r\n setTimeout(refreshRow, 3000);\r\n }, [refreshRow]);\r\n\r\n useEffect(() => {\r\n setDecryptionStatus(null);\r\n\r\n\r\n if (additionalRoundStatus === AdditionalRoundStatus.OFFER_COLLECTION) {\r\n const nowBrowserTime = moment();\r\n const end = moment(additionalRoundEndDate);\r\n const secondsLeftToOfferEnd = moment(end).diff(nowBrowserTime, 's') - serverBrowserTimeDiff.current;\r\n setLeftTableToOfferEnd(getDaysHoursMinutesSeconds(secondsLeftToOfferEnd, null));\r\n //trwa zbieranie\r\n if (secondsLeftToOfferEnd > 0) {\r\n timerInterval.current = setInterval(countTimeFunction, 250,\r\n additionalRoundEndDate,\r\n serverBrowserTimeDiff,\r\n setLeftTableToOfferEnd,\r\n timerInterval,\r\n endTimeCallback);\r\n //zakończono zbieranie\r\n } else {\r\n const openOffer = moment(additionalRoundOpenOfferDate);\r\n const secondsLeftToOpenOffer = moment(openOffer).diff(nowBrowserTime, 's') - serverBrowserTimeDiff.current;\r\n //minął termin otwarcia ofert\r\n if (secondsLeftToOpenOffer > 0) {\r\n timerInterval.current = setInterval(countTimeFunction, 250,\r\n additionalRoundOpenOfferDate,\r\n serverBrowserTimeDiff,\r\n setLeftTableToOpenOffer,\r\n timerInterval,\r\n endTimeCallback);\r\n } else {\r\n AdditionalRoundService.getOffersDecryptionStatus(additionalRoundId)\r\n .then(resp => setDecryptionStatus(resp));\r\n }\r\n }\r\n } else if (additionalRoundStatus === AdditionalRoundStatus.OFFER_DECRYPTION) {\r\n AdditionalRoundService.getOffersDecryptionStatus(additionalRoundId).then((resp) => {\r\n setDecryptionStatus(resp);\r\n })\r\n }\r\n\r\n return () => {\r\n if (timerInterval.current) {\r\n clearInterval(timerInterval.current);\r\n timerInterval.current = 0;\r\n }\r\n if (decryptionInterval.current) {\r\n clearInterval(decryptionInterval.current);\r\n decryptionInterval.current = 0;\r\n\r\n }\r\n }\r\n }, [additionalRoundEndDate, additionalRoundId, additionalRoundOpenOfferDate, additionalRoundStatus, endTimeCallback, serverBrowserTimeDiff]);\r\n\r\n useEffect(() => {\r\n if (decryptionStatus && decryptionStatus.status === ProgressStatus.IN_PROGRESS && !decryptionInterval.current) {\r\n decryptionInterval.current = setInterval(async () => {\r\n const resp = await AdditionalRoundService.getOffersDecryptionProgress(additionalRoundId);\r\n setDecryptionProgress(resp.result);\r\n if (resp.result[0] === 100) {\r\n clearInterval(decryptionInterval.current);\r\n decryptionInterval.current = setInterval(async () => {\r\n const resp = await AdditionalRoundService.getOffersDecryptionStatus(additionalRoundId);\r\n setDecryptionStatus(resp);\r\n if (resp.status === ProgressStatus.PROCESSED) {\r\n clearInterval(decryptionInterval.current);\r\n decryptionInterval.current = 0;\r\n }\r\n }, 2000)\r\n }\r\n }, 3000);\r\n } else if (decryptionStatus && decryptionStatus.status === ProgressStatus.PROCESSED && !decryptionFinished.current) {\r\n refreshRow([DemandValidation.DOCUMENTS, DemandValidation.CONTRACTOR_VERIFICATION, DemandValidation.OFFERS_EVALUATION, DemandValidation.OFFER_CHOICE]);\r\n decryptionFinished.current = true;\r\n }\r\n // eslint-disable-next-line\r\n }, [decryptionStatus]);\r\n\r\n\r\n const onDecryptionStart = () => {\r\n setRowWorking(true);\r\n AdditionalRoundService.startOffersDecryptionProcess(additionalRoundId)\r\n .finally(refreshRow);\r\n };\r\n\r\n return (\r\n {\r\n additionalRoundStatus === AdditionalRoundStatus.OFFER_COLLECTION &&\r\n <>\r\n {leftTableToOfferEnd !== null ?\r\n <>\r\n {Tr('additional_offer_collection_pending')}\r\n {Tr('additional_offer_collection_left')}: {formatDaysHoursMinutesSeconds(leftTableToOfferEnd)}\r\n > : <>\r\n {Tr('additional_offer_collection_finished')}\r\n {leftTableToOpenOffer !== null &&\r\n {Tr('additional_offer_open_time_left')}: {formatDaysHoursMinutesSeconds(leftTableToOpenOffer)}\r\n }\r\n >\r\n }\r\n >\r\n }\r\n {\r\n additionalRoundStatus === AdditionalRoundStatus.OFFER_DECRYPTION &&\r\n <>\r\n {Tr('additional_offer_decryption')}\r\n {decryptionProgress[0] <= 0 && decryptionProgress[1] > 0 && {decryptionProgress[1] + ' ' + Tr('in_queue')}}\r\n {(decryptionProgress[0] > 0 || decryptionProgress[1] === 0) && }\r\n >\r\n }\r\n\r\n \r\n {additionalRoundStatus === AdditionalRoundStatus.OFFER_COLLECTION &&\r\n <>\r\n \r\n {leftTableToOfferEnd === null &&\r\n \r\n }\r\n >\r\n }\r\n \r\n\r\n {editDatesOpened &&\r\n setEditDatesOpened(false)}\r\n onSuccess={() => {\r\n refreshRow().then(() => setEditDatesOpened(false));\r\n }}\r\n />}\r\n )\r\n}\r\n\r\nOfferChoiceSummaryCellAdditionalRound.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n rowWorking: PropTypes.bool.isRequired,\r\n roundName: PropTypes.string.isRequired,\r\n additionalRoundId: PropTypes.number.isRequired,\r\n additionalRoundStatus: PropTypes.string.isRequired,\r\n additionalRoundEndDate: PropTypes.string.isRequired,\r\n additionalRoundOpenOfferDate: PropTypes.string.isRequired,\r\n refreshRow: PropTypes.func.isRequired,\r\n setRowWorking: PropTypes.func.isRequired,\r\n serverBrowserTimeDiff: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default OfferChoiceSummaryCellAdditionalRound;\r\n\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\n\r\nconst formatValues = (values) => {\r\n return ({\r\n ...values,\r\n startDate: values.startDate.format(),\r\n endDate: values.endDate ? values.endDate.format() : null\r\n })\r\n}\r\n\r\nconst create = async (demandId, roundId, values) => {\r\n return await RestRequestPOST(Endpoints.AUCTION_CREATE(demandId, roundId), formatValues(values));\r\n};\r\n\r\nconst editDates = async (demandId, roundId, values) => {\r\n return await RestRequestPOST(Endpoints.AUCTION_EDIT_DATES(demandId, roundId), formatValues(values));\r\n};\r\n\r\nconst publish = async (demandId, roundId, values) => {\r\n return await RestRequestPOST(Endpoints.AUCTION_PUBLISH(demandId, roundId), values);\r\n};\r\n\r\nconst unpublish = async (demandId, roundId, values) => {\r\n return await RestRequestPOST(Endpoints.AUCTION_UNPUBLISH(demandId, roundId), values);\r\n};\r\n\r\nconst pause = async (demandId, roundId, values) => {\r\n return await RestRequestPOST(Endpoints.AUCTION_PAUSE(demandId, roundId), values);\r\n};\r\nconst resume = async (demandId, roundId, values) => {\r\n return await RestRequestPOST(Endpoints.AUCTION_RESUME(demandId, roundId), values);\r\n};\r\n\r\nconst cancel = async (demandId, roundId, values) => {\r\n return await RestRequestPOST(Endpoints.AUCTION_CANCEL(demandId, roundId), values);\r\n};\r\n\r\nconst remove = async (demandId, roundId, values) => {\r\n return await RestRequestDELETE(Endpoints.AUCTION_DELETE(demandId, roundId), {data: values});\r\n};\r\n\r\nconst prepare = async (demandId, roundId, netOverGross) => {\r\n return await RestRequestGET(Endpoints.AUCTION_PREPARE(demandId, roundId) + (netOverGross != null ? '?useNetOverGross=' + netOverGross : ''));\r\n};\r\nconst accept = async (demandId, roundId, auctionId) => {\r\n return await RestRequestGET(Endpoints.AUCTION_ACCEPT(demandId, roundId, auctionId));\r\n};\r\n\r\nconst details = async (demandId, roundId, auctionId) => {\r\n return await RestRequestGET(Endpoints.AUCTION_DETAILS(demandId, roundId, auctionId));\r\n};\r\n\r\nconst downloadAuctionInvitation = async (demandId, roundId, finallyCallback = () => {\r\n}) => {\r\n try {\r\n RestRequestBLOB(Endpoints.AUCTION_DOWNLOAD_INVITATION(demandId, roundId))\r\n .finally(finallyCallback);\r\n } catch (error) {\r\n }\r\n};\r\n\r\nexport default {\r\n prepare,\r\n create,\r\n cancel,\r\n remove,\r\n editDates,\r\n publish,\r\n unpublish,\r\n pause,\r\n resume,\r\n accept,\r\n details,\r\n downloadAuctionInvitation\r\n}","import Tr from 'translations/Translations';\r\nimport {createSelectItem} from \"components/Select\";\r\nimport {AuctionRule} from \"constants/AuctionRule\";\r\n\r\nexport const AuctionItemBidType = {\r\n\r\n\r\n RFX_CRITERIUM_VALUE: \"RFX_CRITERIUM_VALUE\",//domyślaa prezentuje wszystkie kryteria zwrócone, bez itemsów\r\n /**\r\n * (tylko dla japońskich, gdy jest jedna pozycja (items=1))\r\n */\r\n RFX_CRITERIUM_PRICE: \"RFX_CRITERIUM_PRICE\", //(tutaj itemsy), bez kryterium typ price, reszta kryt. tak\r\n /**\r\n * (tylko dla aukcji angielskich i dynamicznych)\r\n */\r\n RFX_ITEM_VALUE: \"RFX_ITEM_VALUE\" //(tutaj itemsy), bez kryterium typ price, reszta kryt. tak\r\n}\r\nconst _TR_PREFIX = 'auction_item_bid_type_';\r\n\r\nexport const AuctionItemBidTypeLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n\r\nexport const AuctionItemBidTypeItems = (auctionRule, allowQuantityEditInOffer, fixedOfferVat) => {\r\n const arr = [createSelectItem(AuctionItemBidType.RFX_CRITERIUM_VALUE, AuctionItemBidTypeLabel(AuctionItemBidType.RFX_CRITERIUM_VALUE))]\r\n if ((auctionRule === AuctionRule.ENGLISH || auctionRule === AuctionRule.DYNAMIC) && !allowQuantityEditInOffer && !fixedOfferVat) {\r\n arr.push(createSelectItem(AuctionItemBidType.RFX_ITEM_VALUE, AuctionItemBidTypeLabel(AuctionItemBidType.RFX_ITEM_VALUE)))\r\n }\r\n return arr;\r\n}","import React, {useMemo} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport {FormHelperText, makeStyles} from \"@material-ui/core\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport {AuctionItemBidType} from \"../../constants/AuctionItemBidType\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Typography from \"components/Typography\";\r\nimport TextInput from \"components/TextInput\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport Checkbox from \"components/Checkbox\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n checkboxColumn: {\r\n width: 70\r\n },\r\n inputColumn: {\r\n width: 100\r\n },\r\n boundaryColumn: {\r\n width: 320\r\n }\r\n}));\r\n\r\n\r\nconst OfferChoiceCreateAuctionTable = (\r\n {\r\n demandId,\r\n items,\r\n working,\r\n formikProps\r\n\r\n }) => {\r\n\r\n const classes = useStyle();\r\n const isCriterion = items === 'criterias'\r\n\r\n const headers = useMemo(() => (isCriterion ? [\r\n Tr('criterion_name'),\r\n Tr('auction_biddable'),\r\n Tr('auction_step'),\r\n Tr('auction_value_min'),\r\n Tr('auction_value_max'),\r\n Tr('auction_boundary_values'),\r\n ] : [\r\n Tr('position_name'),\r\n Tr('auction_step'),\r\n Tr('auction_value_min'),\r\n Tr('auction_value_max'),\r\n Tr('auction_boundary_values'),\r\n ]), [isCriterion]);\r\n\r\n const tableItems = () => {\r\n let table = undefined;\r\n if (isCriterion) {\r\n table = formikProps.values.positions[0].criterias.map((x, index) => {\r\n if (formikProps.values.positions[0].bidType !== AuctionItemBidType.RFX_CRITERIUM_VALUE && x.type === 'price')\r\n return null;\r\n const nameError = getObjectValue(`positions.0.criterias.${index}.name`, formikProps.errors, null)\r\n return ([\r\n <>\r\n {x.name}\r\n {!!nameError && {nameError}}\r\n >,\r\n \r\n ,\r\n <>\r\n {x.type !== 'text' && x.type !== 'list' && x.type !== 'yesNo' && x.biddable &&\r\n \r\n }\r\n >,\r\n <>\r\n {x.type !== 'text' && x.type !== 'list' && x.type !== 'yesNo' && x.biddable &&\r\n \r\n }\r\n >,\r\n <>\r\n {x.type !== 'text' && x.type !== 'list' && x.type !== 'yesNo' && x.biddable &&\r\n \r\n }\r\n >,\r\n <>\r\n {!!x.minOfferValue && {Tr('auction_criterion_min_value')}: {x.minOfferValue.toFixed(2).replace(/[.]/, \",\")}{x.type === 'price' ? ' PLN' : (!!x.measureUnit ? ` (${x.measureUnit})` : '')}}\r\n {!!x.maxOfferValue && {Tr('auction_criterion_max_value')}: {x.maxOfferValue.toFixed(2).replace(/[.]/, \",\")}{x.type === 'price' ? ' PLN' : (!!x.measureUnit ? ` (${x.measureUnit})` : '')}}\r\n {(x.type === 'text' || x.type === 'list' || x.type === 'yesNo') && {Tr(`auction_criterion_type_${x.type}`)}}\r\n >\r\n ])\r\n\r\n });\r\n } else {\r\n table = formikProps.values.positions[0].items.map((x, index) => {\r\n const nameError = getObjectValue(`positions.0.items.${index}.name`, formikProps.errors, null)\r\n return ([\r\n <>\r\n {x.name}\r\n {!!nameError && {nameError}}\r\n >,\r\n ,\r\n ,\r\n ,\r\n <>\r\n {Tr('auction_criterion_min_price')}: {x.minOfferPrice.toFixed(2).replace(/[.]/, \",\")} PLN\r\n {Tr('auction_criterion_max_price')}: {x.maxOfferPrice.toFixed(2).replace(/[.]/, \",\")} PLN\r\n >\r\n ])\r\n });\r\n }\r\n return table;\r\n }\r\n\r\n const shouldShow = isCriterion || formikProps.values.positions[0].bidType === AuctionItemBidType.RFX_ITEM_VALUE\r\n || formikProps.values.positions[0].bidType === AuctionItemBidType.RFX_CRITERIUM_PRICE;\r\n\r\n return (shouldShow && <>\r\n {Tr(isCriterion ? 'auction_criterias_table_title' : 'auction_items_table_title')}\r\n \r\n >)\r\n}\r\n\r\nOfferChoiceCreateAuctionTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n items: PropTypes.oneOf(['criterias', 'items']),\r\n working: PropTypes.bool.isRequired,\r\n formikProps: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default OfferChoiceCreateAuctionTable;","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport AuctionService from \"services/AuctionService\";\r\nimport Select, {createSelectItem} from \"components/Select\";\r\nimport {AuctionTypeItems} from \"constants/AuctionType\";\r\nimport {AuctionRule, AuctionTypeRuleItems} from \"constants/AuctionRule\";\r\nimport TextInput from \"components/TextInput\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport {PriceType, PriceTypeItems, PriceTypeItemsForAuction} from \"constants/PriceTypes\";\r\nimport BooleanItems from \"constants/BooleanItems\";\r\nimport Typography from \"components/Typography\";\r\nimport moment from \"libs/moment\";\r\nimport {AuctionItemBidType, AuctionItemBidTypeItems} from \"../../constants/AuctionItemBidType\";\r\nimport OfferChoiceCreateAuctionTable from \"./OfferChoiceCreateAuctionTable\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport getObjectValue from 'libs/getObjectValue';\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n title: {\r\n marginTop: 0\r\n },\r\n italic: {\r\n fontStyle: 'italic'\r\n },\r\n bold: {\r\n fontWeight: theme.typography.fontWeightBold\r\n },\r\n formElement: {\r\n width: 400\r\n },\r\n dd: {\r\n whiteSpace: \"pre-line\",\r\n fontSize: 9\r\n }\r\n\r\n}));\r\n\r\n\r\nconst OfferChoiceCreateAuctionPopup = (\r\n {\r\n demandId,\r\n onCancel,\r\n onSuccess,\r\n roundId,\r\n auctionType,\r\n formSubmit,\r\n }) => {\r\n\r\n const classes = useStyle();\r\n\r\n const [preparedAuction, setPreparedAuction] = useState(null);\r\n const [working, setWorking] = useState(true);\r\n const [error, setError] = useState(null);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = (values) => {\r\n setError(null);\r\n setWorking(true);\r\n AuctionService.create(demandId, roundId, values).then((resp) => {\r\n if (isResponseValid(resp, setError)) {\r\n onSuccess(resp);\r\n } else {\r\n setWorking(false);\r\n }\r\n }).catch(() => {\r\n setError(Tr('unknown_error_message'));\r\n setWorking(false);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n AuctionService.prepare(demandId, roundId)\r\n .then(resp => {\r\n resp.type = auctionType;\r\n resp.startDate = moment(resp.startDate);\r\n resp.endDate = moment(resp.endDate);\r\n resp.positions[0].bidType = AuctionItemBidType.RFX_CRITERIUM_VALUE;\r\n setPreparedAuction(resp);\r\n }).finally(() => setWorking(false));\r\n }, [demandId, roundId, auctionType]);\r\n\r\n const handleUseNetOverGrossChange = (formikProps, value) => {\r\n AuctionService.prepare(demandId, roundId, value.target.value)\r\n .then(resp => {\r\n resp.type = getObjectValue('type', formikProps.values, \"\");\r\n resp.rule = getObjectValue('rule', formikProps.values, \"\");\r\n resp.startDate = getObjectValue('startDate', formikProps.values, \"\");\r\n resp.decisionTime = getObjectValue('decisionTime', formikProps.values, \"\");\r\n resp.endDate = getObjectValue('endDate', formikProps.values, \"\");\r\n const position = getObjectValue('positions', formikProps.values, \"\");\r\n resp.positions[0].bidType = getObjectValue('bidType', position[0], \"\");\r\n resp.digitalSign = getObjectValue('digitalSign', formikProps.values, \"\");\r\n resp.overtimeCount = getObjectValue('overtimeCount', formikProps.values, \"\");\r\n resp.overtime = getObjectValue('overtime', formikProps.values, \"\");\r\n setPreparedAuction(resp);\r\n }).finally(() => setWorking(false));\r\n }\r\n\r\n const handleEndDate = (formikProps, value) => {\r\n formikProps.setFieldValue('endDate', value);\r\n formikProps.setFieldTouched('endDate', true);\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n buttons.push(createButton(Tr('auction_create_button'), handleSubmit, undefined, working));\r\n return buttons;\r\n }\r\n\r\n\r\n const validationSchema = VS.lazy((value) => {\r\n\r\n const rule = value.rule;\r\n const overtimeCount = value.overtimeCount;\r\n const bidType = value.positions[0].bidType;\r\n\r\n const shape = {\r\n rule: VS.string(),\r\n startDate: VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past')),\r\n type: VS.string(),\r\n\r\n }\r\n\r\n if (AuctionRule.JAPANESE !== rule) {\r\n shape.endDate = VS.dateTimeValid()\r\n .when('startDate', (startDate, schema) => {\r\n return schema.test('EndDateLessStartDate', Tr(\"EndDateLessStartDate\"), (endDate) => {\r\n if (startDate && endDate) {\r\n return endDate.isAfter(startDate);\r\n }\r\n return false;\r\n })\r\n });\r\n shape.overtimeCount = VS.integerMinMax(0, 999);\r\n shape.overtime = overtimeCount === '0' ? VS.integerMinMax(0, 60) : VS.integerMax(60);\r\n } else {\r\n shape.decisionTime = VS.integerMax(99999)\r\n }\r\n\r\n shape.positions = VS.arrayOf(VS.object({\r\n criterias: VS.arrayOf(VS.lazy(criterion => {\r\n if (bidType !== AuctionItemBidType.RFX_CRITERIUM_VALUE && criterion.type === 'price') {\r\n return VS.any();\r\n } else {\r\n const textYesNoOrList = criterion.type === 'text' || criterion.type === 'list' || criterion.type === 'yesNo';\r\n const critShape = {\r\n step: textYesNoOrList || !criterion.biddable ? VS.any() : VS.numberPositiveNoZero(),\r\n min: textYesNoOrList || !criterion.biddable ? VS.any() : VS.numberMin0(),\r\n max: textYesNoOrList || !criterion.biddable ? VS.any() : VS.numberMin(criterion.min, 'max_value_min_value')\r\n };\r\n if (AuctionRule.JAPANESE === rule) {\r\n critShape.name = VS.string().test('maxSubMinDivStep', Tr('difference_between_max_and_min_value_is_not_multiple_of_step'),\r\n () => {\r\n return criterion.max == null || criterion.min == null || criterion.step == null ||\r\n ((criterion.max - criterion.min) / criterion.step) === Math.floor((criterion.max - criterion.min) / criterion.step);\r\n })\r\n }\r\n return VS.object(critShape)\r\n }\r\n })),\r\n items: VS.arrayOf(VS.lazy(item => {\r\n if (bidType === AuctionItemBidType.RFX_CRITERIUM_VALUE) {\r\n return VS.any();\r\n\r\n } else {\r\n const itemShape = {\r\n step: VS.numberPositiveNoZero(),\r\n min: VS.numberMin0(),\r\n max: VS.numberMin(item.min, 'max_value_min_value')\r\n }\r\n if (AuctionRule.JAPANESE === rule) {\r\n itemShape.name = VS.string().test('maxSubMinDivStep', Tr('difference_between_max_and_min_value_is_not_multiple_of_step'),\r\n () => {\r\n return item.max == null || item.min == null || item.step == null ||\r\n ((item.max - item.min) / item.step) === Math.floor((item.max - item.min) / item.step);\r\n })\r\n }\r\n return VS.object(itemShape)\r\n }\r\n }))\r\n }));\r\n return VS.object(shape);\r\n })\r\n\r\n const title = useMemo(() => (<>\r\n {Tr('auction_create_popup_title')} \r\n {preparedAuction && <>\r\n {Tr('part_x', {x: preparedAuction.positions[0].order})}:\r\n {preparedAuction.positions[0].name}\r\n >}\r\n >),\r\n // eslint-disable-next-line\r\n [preparedAuction]);\r\n\r\n return (\r\n )\r\n}\r\n\r\nOfferChoiceCreateAuctionPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n roundId: PropTypes.number.isRequired,\r\n auctionType: PropTypes.string.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(OfferChoiceCreateAuctionPopup)","import PropTypes from \"prop-types\";\r\nimport React, {useEffect, useMemo, useRef} from \"react\";\r\nimport Tr from 'translations/Translations';\r\nimport {AuctionType} from \"constants/AuctionType\";\r\nimport {AuctionStatus} from \"constants/AuctionStatus\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport {AuctionRule} from \"constants/AuctionRule\";\r\nimport moment from \"libs/moment\";\r\nimport AuctionTypeList from \"./AuctionTypeList\";\r\n\r\n//to widzimy tylko w statusie OFFER_COLLECTION i OFFER_DECRYPTION\r\nfunction AuctionTypePart(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n auctionType,\r\n auctions,\r\n buttonWorks,\r\n setCreatePopupOpened,\r\n deleteAuction,\r\n editAuction,\r\n publishAuction,\r\n unpublishAuction,\r\n cancelAuction,\r\n pauseAuction,\r\n acceptAuction,\r\n resumeAuction,\r\n auctionDetails,\r\n serverBrowserTimeDiff,\r\n prodAuctionStatus\r\n }) {\r\n\r\n const timeout = useRef(0);\r\n\r\n useEffect(() => {\r\n const auction = auctions.length > 0 ? auctions[auctions.length - 1] : null;\r\n if (auction != null) {\r\n if (auction.status === AuctionStatus.PENDING) {\r\n const secondsLeftToStart = moment(auction.startDate).diff(moment(), 's') - serverBrowserTimeDiff.current;\r\n timeout.current = setTimeout(auctionDetails, (secondsLeftToStart + 2) * 1000, auction)\r\n } else if (auction.status === AuctionStatus.OPEN || auction.status === AuctionStatus.PAUSED) {\r\n if (auction.rule === AuctionRule.JAPANESE) {\r\n const secondsFromStart = moment().diff(moment(auction.startDate), 's') - serverBrowserTimeDiff.current;\r\n const secondsToWindowEnd = Math.ceil(secondsFromStart / auction.decisionTime) + 2;\r\n timeout.current = setTimeout(auctionDetails, secondsToWindowEnd * 1000, auction)\r\n } else {\r\n const secondsLeftToEnd = moment(auction.endDate).diff(moment(), 's') - serverBrowserTimeDiff.current;\r\n timeout.current = setTimeout(auctionDetails, (secondsLeftToEnd + 2) * 1000, auction)\r\n }\r\n }\r\n }\r\n return () => {\r\n if (timeout.current)\r\n clearTimeout(timeout.current)\r\n }\r\n }, [auctions, auctionDetails, serverBrowserTimeDiff])\r\n\r\n\r\n const getButtons = () => {\r\n const btns = [];\r\n const disabled = !editable || working || buttonWorks.anyWorks;\r\n if (auctions.length > 0) {\r\n const auction = auctions[auctions.length - 1];\r\n switch (auction.status) {\r\n case AuctionStatus.INCOMPLETE:\r\n if (auctionType === AuctionType.PROD) {\r\n btns.push(createButton(Tr('cancel'), () => cancelAuction(auction), 'outlined', disabled, undefined, buttonWorks.cancel))\r\n } else {\r\n btns.push(createButton(Tr('delete'), () => deleteAuction(auction), 'outlined', disabled, undefined, buttonWorks.remove))\r\n }\r\n btns.push(createButton(Tr('edit'), () => editAuction(auction), 'outlined', disabled))\r\n btns.push(createButton(Tr('publish'), () => publishAuction(auction), 'contained', disabled, undefined, buttonWorks.publish))\r\n break;\r\n case AuctionStatus.PENDING:\r\n btns.push(createButton(Tr('unpublish'), () => unpublishAuction(auction), 'outlined', disabled, undefined, buttonWorks.unpublish))\r\n break;\r\n case AuctionStatus.OPEN:\r\n if (auction.rule !== AuctionRule.JAPANESE) {\r\n btns.push(createButton(Tr('pause'), () => pauseAuction(auction), 'outlined', disabled, undefined, buttonWorks.pause))\r\n }\r\n break;\r\n case AuctionStatus.PAUSED:\r\n btns.push(createButton(Tr('cancel'), () => cancelAuction(auction), 'outlined', disabled, undefined, buttonWorks.cancel))\r\n btns.push(createButton(Tr('edit'), () => editAuction(auction), 'outlined', disabled))\r\n btns.push(createButton(Tr('resume'), () => resumeAuction(auction), 'contained', disabled, undefined, buttonWorks.resume))\r\n break;\r\n case AuctionStatus.FINISHED:\r\n if (auctionType === AuctionType.PROD) {\r\n btns.push(createButton(Tr('cancel'), () => cancelAuction(auction), 'outlined', disabled, undefined, buttonWorks.cancel))\r\n btns.push(createButton(Tr('auction_accept'), () => acceptAuction(auction), 'contained', disabled, undefined, buttonWorks.accept))\r\n } else {\r\n if (!prodAuctionStatus || prodAuctionStatus === AuctionStatus.CANCELLED) {\r\n btns.push(createButton(Tr('auction_create_button'), () => setCreatePopupOpened(auctionType), 'contained', disabled))\r\n }\r\n }\r\n break;\r\n case AuctionStatus.CANCELLED:\r\n if (auctionType === AuctionType.PROD || (!prodAuctionStatus || prodAuctionStatus === AuctionStatus.CANCELLED)) {\r\n btns.push(createButton(Tr('auction_create_button'), () => setCreatePopupOpened(auctionType), 'contained', disabled));\r\n }\r\n break;\r\n default:\r\n }\r\n } else {\r\n if (auctionType === AuctionType.PROD || (!prodAuctionStatus || prodAuctionStatus === AuctionStatus.CANCELLED)) {\r\n btns.push(createButton(Tr('auction_create_button'), () => setCreatePopupOpened(auctionType), 'contained', disabled))\r\n }\r\n }\r\n return btns;\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const buttons = useMemo(getButtons, [editable, working, auctionType, auctions, buttonWorks]);\r\n\r\n return (\r\n )\r\n}\r\n\r\nAuctionTypePart.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n auctionType: PropTypes.string.isRequired,\r\n auctions: PropTypes.array.isRequired,\r\n buttonWorks: PropTypes.object.isRequired,\r\n setCreatePopupOpened: PropTypes.func.isRequired,\r\n deleteAuction: PropTypes.func.isRequired,\r\n editAuction: PropTypes.func.isRequired,\r\n publishAuction: PropTypes.func.isRequired,\r\n unpublishAuction: PropTypes.func.isRequired,\r\n cancelAuction: PropTypes.func.isRequired,\r\n pauseAuction: PropTypes.func.isRequired,\r\n resumeAuction: PropTypes.func.isRequired,\r\n auctionDetails: PropTypes.func.isRequired,\r\n acceptAuction: function (props, propName, componentName) {\r\n if ((props['auctionType'] === AuctionType.PROD && (props[propName] === undefined || typeof (props[propName]) !== 'function'))) {\r\n return new Error('Please provide a acceptAuction function!');\r\n }\r\n },\r\n serverBrowserTimeDiff: PropTypes.object.isRequired,\r\n prodAuctionStatus: function (props, propName, componentName) {\r\n if ((props['auctionType'] === AuctionType.TEST && (props[propName] !== undefined && typeof (props[propName]) !== 'string'))) {\r\n return new Error('Please provide a valid prodAuctionStatus string');\r\n }\r\n },\r\n\r\n}\r\n\r\nexport default AuctionTypePart;\r\n","import React, {useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport AuctionService from \"services/AuctionService\";\r\nimport {AuctionRule} from \"constants/AuctionRule\";\r\nimport TextInput from \"components/TextInput\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport moment from \"libs/moment\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport {AuctionStatus} from \"constants/AuctionStatus\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n title: {\r\n marginTop: 0\r\n },\r\n italic: {\r\n fontStyle: 'italic'\r\n },\r\n bold: {\r\n fontWeight: theme.typography.fontWeightBold\r\n },\r\n formElement: {\r\n width: 400\r\n },\r\n}));\r\n\r\n\r\nconst EditDatesAuctionPopup = (\r\n {\r\n demandId,\r\n offerChoiceRow,\r\n onCancel,\r\n onSuccess,\r\n roundId,\r\n auction,\r\n formSubmit,\r\n }) => {\r\n\r\n const classes = useStyle();\r\n\r\n const [working, setWorking] = useState(false);\r\n const [error, setError] = useState(null);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = (values) => {\r\n setError(null);\r\n setWorking(true);\r\n AuctionService.editDates(demandId, roundId, values).then((resp) => {\r\n if(isResponseValid(resp, setError)) {\r\n OfferChoiceService.updateAuctionInAdditionalRoundInfo(offerChoiceRow.identity, resp.result);\r\n onSuccess();\r\n } else {\r\n setWorking(false);\r\n }\r\n }).catch(() => {\r\n setError(Tr('unknown_error_message'));\r\n setWorking(false);\r\n })\r\n }\r\n\r\n const handleEndDate = (formikProps, value) => {\r\n formikProps.setFieldValue('endDate', value);\r\n formikProps.setFieldTouched('endDate', true);\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n buttons.push(createButton(Tr('auction_update_dates_button'), handleSubmit, undefined, working));\r\n return buttons;\r\n }\r\n\r\n\r\n const validationSchema = VS.lazy((value) => {\r\n const shape = {\r\n }\r\n if(value.status !== AuctionStatus.PAUSED) {\r\n shape.startDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'))\r\n }\r\n\r\n if (AuctionRule.JAPANESE !== value.rule) {\r\n shape.endDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'))\r\n .when('startDate', (startDate, schema) => {\r\n return schema.test('EndDateLessStartDate', Tr(\"EndDateLessStartDate\"), (endDate) => {\r\n if (startDate && endDate) {\r\n return endDate.isAfter(startDate);\r\n }\r\n return false;\r\n })\r\n })\r\n } else {\r\n shape.decisionTime = VS.integerMax(99999)\r\n }\r\n return VS.object(shape);\r\n })\r\n\r\n\r\n return (\r\n )\r\n}\r\n\r\nEditDatesAuctionPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n offerChoiceRow: PropTypes.object.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n roundId: PropTypes.number.isRequired,\r\n auction: PropTypes.object.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(EditDatesAuctionPopup)","import React, {useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport DoubleButton from 'components/popup/components/DoubleButton';\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport BooleanItems from \"constants/BooleanItems\";\r\nimport Typography from \"components/Typography\";\r\nimport BoldTypography from \"../../../../../../../../../components/BoldTypography\";\r\n\r\nexport const createConfirmAuctionCfg = (auction, sendEmail, onConfirm, message, confirmButtonLabel) => ({\r\n auction, sendEmail, onConfirm, message, confirmButtonLabel\r\n})\r\n\r\nfunction ConfirmAuction(\r\n {\r\n cfg,\r\n onCancel\r\n }) {\r\n\r\n const [sendEmail, setSendEmail] = useState(cfg.sendEmail);\r\n\r\n const onConfirm = () => {\r\n const data= {\r\n auctionId: cfg.auction.auctionId,\r\n }\r\n if(sendEmail !== undefined)\r\n data.sendEmail = sendEmail;\r\n\r\n cfg.onConfirm(data)\r\n }\r\n\r\n return (\r\n }\r\n >\r\n {Tr(cfg.message)}\r\n {\r\n sendEmail !== undefined && <>\r\n
\r\n {Tr('auction_send_email_label')}\r\n setSendEmail(event.target.value)}\r\n items={BooleanItems}\r\n value={sendEmail}\r\n />\r\n >\r\n }\r\n\r\n\r\n \r\n )\r\n}\r\n\r\nConfirmAuction.propTypes = {\r\n onCancel: PropTypes.func.isRequired,\r\n cfg: PropTypes.shape({\r\n auction: PropTypes.object.isRequired,\r\n sendEmail: PropTypes.bool,\r\n onConfirm: PropTypes.func.isRequired,\r\n message: PropTypes.string.isRequired,\r\n confirmButtonLabel: PropTypes.string.isRequired,\r\n })\r\n}\r\n\r\nexport default ConfirmAuction;","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport Title from 'components/Title';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Button from 'components/Button';\r\nimport clsx from 'clsx';\r\nimport Dialog from 'components/Dialog';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t},\r\n\ticon: {\r\n\t\tfontSize: theme.components.icon.fontSize,\r\n\t},\r\n\tpadding: {\r\n\t\tpaddingTop: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction SaveDialogBase({\r\n\tclasses,\r\n\tonClose,\r\n\tchildren,\r\n\ttitle,\r\n\tIcon,\r\n\ticonClassName,\r\n}) {\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nSaveDialogBase.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tonClose: PropTypes.func,\r\n}\r\n\r\nSaveDialogBase.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(SaveDialogBase);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport Typography from \"components/Typography\";\r\nimport HighlightOffIcon from \"@material-ui/icons/HighlightOff\";\r\nimport SaveDialogBase from \"components/popup/save/SaveDialogBase\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n icon: {\r\n color: theme.palette.common.error,\r\n }\r\n}))\r\n\r\nfunction AuctionSaveError(\r\n {\r\n message,\r\n onClose\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n return (\r\n \r\n \r\n {message}\r\n \r\n \r\n )\r\n}\r\n\r\nAuctionSaveError.propTypes = {\r\n message: PropTypes.string.isRequired,\r\n onClose: PropTypes.func.isRequired\r\n}\r\n\r\nexport default AuctionSaveError;","import PropTypes from \"prop-types\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport React, {useCallback, useMemo, useReducer, useState} from \"react\";\r\nimport OfferChoiceCreateAuctionPopup from \"./OfferChoiceCreateAuctionPopup\";\r\nimport {AuctionType} from \"constants/AuctionType\";\r\nimport AuctionTypePart from \"./AuctionTypePart\";\r\nimport EditDatesAuctionPopup from \"./EditDatesAuctionPopup\";\r\nimport AuctionService from \"services/AuctionService\";\r\nimport ConfirmAuction, {createConfirmAuctionCfg} from \"./ConfirmAuction\";\r\nimport AuctionSaveError from \"./AuctionSaveError\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport redirectUsingPOST from \"libs/redirectUsingPOST\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n inviteButton: {\r\n float: 'right',\r\n marginTop: theme.spacing()\r\n }\r\n}));\r\n\r\n//to widzimy tylko w statusie OFFER_COLLECTION i OFFER_DECRYPTION\r\nfunction OfferChoiceSummaryCellAuction(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n rowWorking,\r\n offerChoiceRow,\r\n refreshRow,\r\n serverBrowserTimeDiff\r\n }) {\r\n const classes = useStyles();\r\n const currentAdditionalRoundInfo = useMemo(() => offerChoiceRow.currentAdditionalRoundInfo, [offerChoiceRow]);\r\n const [createPopupAuctionType, setCreatePopupAuctionType] = useState(null);\r\n const [editPopupAuction, setEditPopupAuction] = useState(null);\r\n const [auctionError, setAuctionError] = useState(null);\r\n const [confirmCfg, setConfirmCfg] = useState(null);\r\n const [downloadInvitationWorking, setDownloadInvitationWorking] = useState(null);\r\n\r\n const [prodButtonWorks, dispatchProdButtonWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n publish: false,\r\n unpublish: false,\r\n remove: false,\r\n cancel: false,\r\n pause: false,\r\n accept: false,\r\n resume: false\r\n });\r\n const [testButtonWorks, dispatchTestButtonWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n publish: false,\r\n unpublish: false,\r\n remove: false,\r\n cancel: false,\r\n pause: false,\r\n accept: false,\r\n resume: false\r\n });\r\n\r\n const dispatchButtonWorks = (auction, type, works) => {\r\n if (auction.type === AuctionType.PROD) {\r\n dispatchProdButtonWorks({type, works})\r\n } else {\r\n dispatchTestButtonWorks({type, works})\r\n }\r\n }\r\n\r\n const {prod, test} = useMemo(() => currentAdditionalRoundInfo.auctions.reduce((prev, cur) => {\r\n if (cur.type === AuctionType.PROD)\r\n prev.prod.push(cur);\r\n else\r\n prev.test.push(cur);\r\n return prev;\r\n }, {prod: [], test: []}), [currentAdditionalRoundInfo]);\r\n\r\n\r\n const deleteAuction = useCallback((auction, confirmed, values) => {\r\n if (confirmed) {\r\n dispatchButtonWorks(auction, 'remove', true)\r\n setConfirmCfg(null);\r\n AuctionService.remove(demandId, currentAdditionalRoundInfo.roundId, values).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n OfferChoiceService.removeAuctionFromAdditionalRoundInfo(offerChoiceRow.identity, auction);\r\n }\r\n }).finally(() => dispatchButtonWorks(auction, 'remove', false));\r\n } else {\r\n const callback = (auction, confirmed) => (values) => deleteAuction(auction, confirmed, values)\r\n setConfirmCfg(createConfirmAuctionCfg(auction, undefined, callback(auction, true), \"auction_delete_confirm\", \"delete\"));\r\n }\r\n }, [demandId, currentAdditionalRoundInfo, offerChoiceRow]);\r\n\r\n const editAuction = useCallback((auction) => {\r\n setEditPopupAuction(auction);\r\n }, []);\r\n\r\n const publishAuction = useCallback((auction, confirmed, values) => {\r\n if (confirmed) {\r\n dispatchButtonWorks(auction, 'publish', true)\r\n setConfirmCfg(null);\r\n AuctionService.publish(demandId, currentAdditionalRoundInfo.roundId, values).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n OfferChoiceService.updateAuctionInAdditionalRoundInfo(offerChoiceRow.identity, resp.result);\r\n }\r\n }).finally(() => dispatchButtonWorks(auction, 'publish', false));\r\n } else {\r\n const callback = (auction, confirmed) => (values) => publishAuction(auction, confirmed, values)\r\n setConfirmCfg(createConfirmAuctionCfg(auction, true, callback(auction, true), \"auction_publish_confirm\", \"publish\"));\r\n }\r\n }, [demandId, currentAdditionalRoundInfo, offerChoiceRow]);\r\n\r\n const resumeAuction = useCallback((auction, confirmed, values) => {\r\n if (confirmed) {\r\n dispatchButtonWorks(auction, 'resume', true)\r\n setConfirmCfg(null);\r\n AuctionService.resume(demandId, currentAdditionalRoundInfo.roundId, values).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n OfferChoiceService.updateAuctionInAdditionalRoundInfo(offerChoiceRow.identity, resp.result);\r\n }\r\n }).finally(() => dispatchButtonWorks(auction, 'resume', false));\r\n } else {\r\n const callback = (auction, confirmed) => (values) => resumeAuction(auction, confirmed, values)\r\n setConfirmCfg(createConfirmAuctionCfg(auction, true, callback(auction, true), \"auction_resume_confirm\", \"resume\"));\r\n }\r\n }, [demandId, currentAdditionalRoundInfo, offerChoiceRow]);\r\n\r\n const unpublishAuction = useCallback((auction, confirmed, values) => {\r\n if (confirmed) {\r\n dispatchButtonWorks(auction, 'unpublish', true)\r\n setConfirmCfg(null);\r\n AuctionService.unpublish(demandId, currentAdditionalRoundInfo.roundId, values).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n OfferChoiceService.updateAuctionInAdditionalRoundInfo(offerChoiceRow.identity, resp.result);\r\n }\r\n }).finally(() => dispatchButtonWorks(auction, 'unpublish', false));\r\n } else {\r\n const callback = (auction, confirmed) => (values) => unpublishAuction(auction, confirmed, values)\r\n setConfirmCfg(createConfirmAuctionCfg(auction, true, callback(auction, true), \"auction_unpublish_confirm\", \"unpublish\"));\r\n }\r\n }, [demandId, currentAdditionalRoundInfo, offerChoiceRow]);\r\n\r\n const cancelAuction = useCallback((auction, confirmed, values) => {\r\n if (confirmed) {\r\n dispatchButtonWorks(auction, 'cancel', true)\r\n setConfirmCfg(null);\r\n AuctionService.cancel(demandId, currentAdditionalRoundInfo.roundId, values).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n OfferChoiceService.updateAuctionInAdditionalRoundInfo(offerChoiceRow.identity, resp.result);\r\n }\r\n }).finally(() => dispatchButtonWorks(auction, 'cancel', false));\r\n } else {\r\n const callback = (auction, confirmed) => (values) => cancelAuction(auction, confirmed, values)\r\n setConfirmCfg(createConfirmAuctionCfg(auction, undefined, callback(auction, true), \"auction_cancel_confirm\", \"auction_cancel\"));\r\n }\r\n }, [demandId, currentAdditionalRoundInfo, offerChoiceRow]);\r\n\r\n const pauseAuction = useCallback((auction, confirmed, values) => {\r\n if (confirmed) {\r\n dispatchButtonWorks(auction, 'pause', true)\r\n setConfirmCfg(null);\r\n AuctionService.pause(demandId, currentAdditionalRoundInfo.roundId, values).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n OfferChoiceService.updateAuctionInAdditionalRoundInfo(offerChoiceRow.identity, resp.result);\r\n }\r\n }).finally(() => dispatchButtonWorks(auction, 'pause', false));\r\n } else {\r\n const callback = (auction, confirmed) => (values) => pauseAuction(auction, confirmed, values)\r\n setConfirmCfg(createConfirmAuctionCfg(auction, true, callback(auction, true), \"auction_pause_confirm\", \"pause\"));\r\n }\r\n }, [demandId, currentAdditionalRoundInfo, offerChoiceRow]);\r\n\r\n const acceptAuction = useCallback((auction) => {\r\n\r\n dispatchButtonWorks(auction, 'accept', true);\r\n AuctionService.accept(demandId, currentAdditionalRoundInfo.roundId, auction.auctionId).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n redirectUsingPOST(resp.result);\r\n }\r\n }).finally(() => dispatchButtonWorks(auction, 'accept', false));\r\n\r\n\r\n }, [demandId, currentAdditionalRoundInfo]);\r\n\r\n const auctionDetails = useCallback((auction) => {\r\n AuctionService.details(demandId, currentAdditionalRoundInfo.roundId, auction.auctionId).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n OfferChoiceService.updateAuctionInAdditionalRoundInfo(offerChoiceRow.identity, resp.result);\r\n }\r\n })\r\n }, [demandId, currentAdditionalRoundInfo, offerChoiceRow]);\r\n\r\n const downloadAuctionInvitation = () => {\r\n setDownloadInvitationWorking(true);\r\n AuctionService.downloadAuctionInvitation(demandId, currentAdditionalRoundInfo.roundId, () => setDownloadInvitationWorking(false));\r\n }\r\n\r\n\r\n return (\r\n \r\n
\r\n 0 ? prod[prod.length - 1].status : undefined}\r\n />\r\n\r\n {editable && prod.filter(a => a.status === 'INCOMPLETE').length > 0 && {Tr('auction_invitation_button')}\r\n }\r\n\r\n {\r\n !!createPopupAuctionType && {\r\n OfferChoiceService.addAuctionToAdditionalRoundInfo(offerChoiceRow.identity, auction);\r\n setCreatePopupAuctionType(null);\r\n }}\r\n onCancel={() => setCreatePopupAuctionType(null)}\r\n auctionType={createPopupAuctionType}\r\n roundId={currentAdditionalRoundInfo.roundId}\r\n />\r\n }\r\n {\r\n !!editPopupAuction && setEditPopupAuction(null)}\r\n onCancel={() => setEditPopupAuction(null)}\r\n auction={editPopupAuction}\r\n />\r\n }\r\n {\r\n !!confirmCfg && setConfirmCfg(null)} cfg={confirmCfg}/>\r\n }\r\n {\r\n !!auctionError && setAuctionError(null)} message={auctionError}/>\r\n }\r\n\r\n )\r\n}\r\n\r\nOfferChoiceSummaryCellAuction.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n rowWorking: PropTypes.bool.isRequired,\r\n offerChoiceRow: PropTypes.object.isRequired,\r\n refreshRow: PropTypes.func.isRequired,\r\n serverBrowserTimeDiff: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default OfferChoiceSummaryCellAuction;\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const OfferChoiceState = {\r\n NEW: \"NEW\",\r\n PENDING: \"PENDING\",\r\n ACCEPTED: \"ACCEPTED\",\r\n REJECTED: \"REJECTED\"\r\n}\r\nconst _TR_PREFIX = 'offer_choice_state_';\r\n\r\nexport const OfferChoiceStateLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\nconst _DECISION_STATES = [OfferChoiceState.ACCEPTED, OfferChoiceState.PENDING];\r\nexport const isOfferChoiceStateWithDecision = (status) => (_DECISION_STATES.indexOf(status) > -1);\r\n","import {useMemo, useRef, useState} from \"react\";\r\nimport {makeStyles, TableCell, TableRow, Typography} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from \"clsx\";\r\nimport OfferChoiceContractorRowPart from \"./OfferChoiceContractorRowPart\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport OfferChoiceSummaryCell from \"./OfferChoiceSummaryCell\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport {AdditionalRoundStatusesPending} from \"constants/AdditionalRoundStatus\";\r\nimport OfferChoiceSummaryCellAdditionalRound from \"./additionalRound/OfferChoiceSummaryCellAdditionalRound\";\r\nimport PropTypes from 'prop-types';\r\nimport OfferChoiceSummaryCellAuction from \"./auction/OfferChoiceSummaryCellAuction\";\r\nimport moment from \"libs/moment\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport {isOfferChoiceStateWithDecision} from \"../constants/OfferChoiceState\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n italic: {\r\n fontStyle: 'italic',\r\n userSelect: 'none'\r\n },\r\n evenRow: {\r\n backgroundColor: theme.palette.background.default\r\n },\r\n lastRow: {\r\n borderBottom: `solid 3px ${theme.palette.primary.main}`\r\n },\r\n choiceSize: {\r\n \"& .MuiInput-root\": {\r\n fontSize: theme.typography.body2.fontSize,\r\n color: theme.palette.text.primary\r\n }\r\n },\r\n choiceStatus: {\r\n marginBottom: theme.spacing()\r\n },\r\n choiceControls: {\r\n marginTop: theme.spacing(2),\r\n textAlign: 'center'\r\n },\r\n choiceControlsEnd: {\r\n textAlign: 'end'\r\n },\r\n noOffer: {\r\n textAlign: 'center',\r\n fontSize: '1.5rem'\r\n }\r\n}));\r\n\r\nfunction OfferChoiceRow(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n offerChoiceRow,\r\n rowNumber,\r\n updateStatus,\r\n modifyChoice,\r\n\r\n }) {\r\n\r\n const classes = useStyles();\r\n const even = rowNumber % 2 === 1;\r\n const serverBrowserTimeDiff = useRef(moment(offerChoiceRow.serverTime).diff(moment(), \"s\"));\r\n\r\n const [chosenSuppliers, setChosenSuppliers] = useState(offerChoiceRow.offerChoices.filter(x => x.chosen).map(x => x.identity));\r\n const [chosenStatusDone, setChosenStatusDone] = useState(isOfferChoiceStateWithDecision(offerChoiceRow.state));\r\n const [curWorking, setCurWorking] = useState(false);\r\n const maxPartScore = useMemo(() => offerChoiceRow.offerChoices.reduce((prev, cur) => prev < cur.offerScore ? cur.offerScore : prev, 0), [offerChoiceRow]);\r\n\r\n const refreshRow = async (sectionsToRefresh) => {\r\n setCurWorking(true);\r\n await OfferChoiceService.updatePosition(demandId, offerChoiceRow.identity, sectionsToRefresh).finally(() => setCurWorking(false));\r\n };\r\n\r\n const chooseSupplier = (supplier) => {\r\n const index = chosenSuppliers.indexOf(supplier.identity);\r\n if (index > -1) {\r\n setChosenSuppliers(chosenSuppliers.filter(x => x !== supplier.identity));\r\n } else {\r\n if (chosenSuppliers.length < offerChoiceRow.maxOfferChoiceCount) {\r\n setChosenSuppliers([...chosenSuppliers, supplier.identity]);\r\n }\r\n }\r\n }\r\n\r\n const doUpdateStatus = async (positionId, canceled, chosenSupplierIds, offerChoiceDate, offerChoiceJustification) => {\r\n setCurWorking(true);\r\n try {\r\n await updateStatus(positionId, canceled, chosenSupplierIds, offerChoiceDate, offerChoiceJustification);\r\n\r\n } finally {\r\n setCurWorking(false);\r\n }\r\n }\r\n\r\n const doModifyChoice = async (positionId) => {\r\n setCurWorking(true);\r\n try {\r\n await modifyChoice(positionId);\r\n } finally {\r\n setCurWorking(false);\r\n }\r\n }\r\n\r\n const isAdditionalOffers = useMemo(() => !!offerChoiceRow.currentAdditionalRoundInfo &&\r\n offerChoiceRow.currentAdditionalRoundInfo.type === RoundType.ADDITIONAL_OFFERS &&\r\n AdditionalRoundStatusesPending.indexOf(offerChoiceRow.currentAdditionalRoundInfo.status) > -1\r\n , [offerChoiceRow]);\r\n\r\n const isAuction = useMemo(() => !!offerChoiceRow.currentAdditionalRoundInfo &&\r\n offerChoiceRow.currentAdditionalRoundInfo.type === RoundType.AUCTION &&\r\n AdditionalRoundStatusesPending.indexOf(offerChoiceRow.currentAdditionalRoundInfo.status) > -1\r\n , [offerChoiceRow]);\r\n\r\n const disabledInputs = working || chosenStatusDone || !editable || curWorking || isAdditionalOffers || isAuction;\r\n\r\n const getRow = (element, index, array) => {\r\n const noOffer = element.identity === -1;\r\n const first = index === 0;\r\n const last = index >= array.length - 1;\r\n\r\n const rowSpan = noOffer ? 1 : array.length;\r\n return (\r\n {first && \r\n \r\n {Tr(`offer_evaluation_mode_title_position`, {value: offerChoiceRow.order})}\r\n \r\n \r\n {offerChoiceRow.name}\r\n \r\n }\r\n\r\n {noOffer ?\r\n \r\n {Tr('offer_status_noOffer')}\r\n \r\n :\r\n -1}\r\n chooseSupplierCountReached={chosenSuppliers.length >= offerChoiceRow.maxOfferChoiceCount}\r\n offerChoiceContractor={element}\r\n offerChoiceRow={offerChoiceRow}\r\n chooseSupplier={chooseSupplier}\r\n maxPartScore={maxPartScore}\r\n />}\r\n\r\n {first &&\r\n \r\n\r\n\r\n {isAdditionalOffers && }\r\n\r\n {isAuction && }\r\n\r\n {!isAdditionalOffers && !isAuction && }\r\n \r\n }\r\n )\r\n }\r\n\r\n\r\n return (offerChoiceRow.offerChoices.length > 0 ?\r\n offerChoiceRow.offerChoices.map((element, index, array) => getRow(element, index, array))\r\n :\r\n getRow({identity: -1}, 0, [])\r\n )\r\n}\r\n\r\nOfferChoiceRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n offerChoiceRow: PropTypes.object.isRequired,\r\n rowNumber: PropTypes.number.isRequired,\r\n updateStatus: PropTypes.func.isRequired,\r\n modifyChoice: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default OfferChoiceRow;\r\n\r\n","import React from \"react\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport OfferChoiceRow from \"./OfferChoiceRow\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n border: `solid 3px ${theme.palette.background.paper}`,\r\n \"& .MuiTableCell-root\": {\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n padding: theme.spacing()\r\n }\r\n },\r\n headRow: {\r\n \"&>.MuiTableCell-head\": {\r\n textAlign: \"center\",\r\n borderBottom: `solid 3px ${theme.palette.primary.main}`\r\n }\r\n },\r\n partColumn: {\r\n width: 200\r\n },\r\n contractorColumn: {\r\n width: 250\r\n },\r\n valueColumn: {\r\n width: 105\r\n },\r\n scoreColumn: {\r\n width: 100\r\n },\r\n checkColumn: {\r\n width: 20\r\n }\r\n\r\n}));\r\n\r\nfunction OfferChoiceTable(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n offerChoiceList,\r\n updateStatus,\r\n modifyChoice,\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {Tr(\"part\")}\r\n {Tr(\"contractor\")}\r\n {Tr(\"offer_value\")}\r\n {Tr(\"score\")}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n offerChoiceList.items.map((element, index) => {\r\n const key = \"\" + element.identity + element.canceled + element.editable;\r\n return \r\n })\r\n }\r\n \r\n
)\r\n}\r\n\r\nOfferChoiceTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n offerChoiceList: PropTypes.object.isRequired,\r\n updateStatus: PropTypes.func.isRequired,\r\n modifyChoice: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default OfferChoiceTable;\r\n\r\n","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport SingleButton from \"../components/SingleButton\";\r\n\r\nfunction Alert(\r\n {\r\n title = 'attention',\r\n open,\r\n confirmText,\r\n confirmText2,\r\n maxWidth= 'xs',\r\n onClose,\r\n buttonText = Tr('close'),\r\n translateTexts = false\r\n }) {\r\n\r\n return (\r\n }\r\n >\r\n {!!confirmText && \r\n {translateTexts ? Tr(confirmText) : confirmText}\r\n }\r\n {!!confirmText2 && \r\n {translateTexts ? Tr(confirmText2) : confirmText2}\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nAlert.propTypes = {\r\n classes: PropTypes.any,\r\n open: PropTypes.bool.isRequired,\r\n confirmText: PropTypes.string.isRequired,\r\n confirmText2: PropTypes.string,\r\n onClose: PropTypes.func.isRequired,\r\n buttonText: PropTypes.string,\r\n translateTexts: PropTypes.bool\r\n}\r\n\r\nexport default Alert;","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport * as Yup from \"yup\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport DatePicker from 'components/DatePicker';\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n cells: {\r\n padding: theme.spacing()\r\n },\r\n partColumn: {\r\n width: 75\r\n }\r\n}));\r\n\r\n\r\nconst OfferChoiceCancelWhereNoOffersPopup = (\r\n {\r\n demandId,\r\n onCancel,\r\n onSuccess,\r\n formSubmit\r\n }) => {\r\n\r\n const classes = useStyle();\r\n\r\n const [positionsWithNoOffer, setPositionsWithNoOffer] = useState(null);\r\n const [working, setWorking] = useState(true);\r\n const [error, setError] = useState(false);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = (values) => {\r\n setError(false);\r\n setWorking(true);\r\n OfferChoiceService.cancelPositionsWithNoOffer(demandId, values).then(onSuccess).catch(() => {\r\n setError(true);\r\n setWorking(false);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n OfferChoiceService.getPositionsWithNoOffer(demandId).then(resp => setPositionsWithNoOffer(resp)).finally(() => setWorking(false));\r\n }, [demandId])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n buttons.push(createButton(Tr('invalidate_parts'), handleSubmit, undefined, working || !positionsWithNoOffer?.positions.length));\r\n return buttons;\r\n }\r\n\r\n\r\n return (\r\n )\r\n}\r\n\r\nOfferChoiceCancelWhereNoOffersPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(OfferChoiceCancelWhereNoOffersPopup)","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport {TextField} from \"@material-ui/core\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport {OfferChoiceDecision, OfferChoiceDecisionLabel} from \"../constants/OfferChoiceDecision\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2),\r\n '&>*:not(:first-child):not(:last-child)': {\r\n marginLeft: theme.spacing(4),\r\n }\r\n },\r\n decision: {\r\n width: 182,\r\n },\r\n positionName: {\r\n width: 250,\r\n }\r\n}));\r\n\r\nconst EMPTY_SEARCH_OBJECT = {decision: \"\", positionName: ''}\r\nconst MAX_SEARCH_LENGTH = 100;\r\n\r\nconst decisionsList = [{label: Tr('procedure_status_0'), value: \"\"}, ...Object.keys(OfferChoiceDecision).map(key => ({\r\n label: OfferChoiceDecisionLabel(key),\r\n value: key\r\n}))];\r\n\r\nfunction OfferChoiceSearch(\r\n {\r\n searchInProgress,\r\n doSearch\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [value, setValue] = useState({...EMPTY_SEARCH_OBJECT});\r\n const [submitState, setSubmitState] = useState(0);\r\n\r\n useEffect(() => {\r\n if (submitState && !searchInProgress) {\r\n const valueFiltered = Object.keys(value)\r\n .filter((k) => value[k])\r\n .reduce((a, k) => ({...a, [k]: value[k]}), {});\r\n doSearch(valueFiltered);\r\n }\r\n // eslint-disable-next-line\r\n }, [submitState]);\r\n\r\n const handleChange = (id, e) => {\r\n setValue({...value, [id]: e.target.value});\r\n }\r\n\r\n const handleSubmit = () => {\r\n setSubmitState(x => x + 1)\r\n };\r\n\r\n\r\n const handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n handleSubmit()\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {Tr('search_box')}\r\n \r\n {\r\n handleChange(\"decision\", e);\r\n handleSubmit();\r\n }}\r\n />\r\n\r\n handleChange('positionName', e)}\r\n onKeyUp={handleKeyPress}\r\n fullWidth\r\n value={value.positionName}\r\n inputProps={{maxLength: MAX_SEARCH_LENGTH}}\r\n />\r\n\r\n \r\n \r\n {\r\n setValue(EMPTY_SEARCH_OBJECT);\r\n handleSubmit()\r\n }}/>\r\n
\r\n \r\n >\r\n )\r\n}\r\n\r\nOfferChoiceSearch.propTypes = {\r\n doSearch: PropTypes.func.isRequired,\r\n searchInProgress: PropTypes.bool\r\n}\r\n\r\n\r\nexport default OfferChoiceSearch;","import Tr from 'translations/Translations';\r\n\r\nexport const OfferChoiceDecision = {\r\n NONE: \"NONE\",\r\n OFFER_CHOSEN: \"OFFER_CHOSEN\",\r\n CANCELED: \"CANCELED\"\r\n}\r\nconst _TR_PREFIX = 'offer_choice_decision_';\r\n\r\nexport const OfferChoiceDecisionLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n","import React from 'react'\r\nimport {Checkbox as MuiCheckbox, FormHelperText, Table, TableCell, TableHead, TableBody, TableRow, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport Checkbox from 'components/Checkbox';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport clsx from \"clsx\";\r\n\r\n\r\nconst style = theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n textBold: {\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n smallColumn: theme.components.table.lpColumn,\r\n orderColumn: theme.components.table.ipColumn,\r\n checkboxColumn: {\r\n width: theme.spacing()\r\n },\r\n cells: {\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n },\r\n checkbox: {\r\n padding: 0,\r\n },\r\n cursor: {\r\n cursor: \"pointer\"\r\n },\r\n table: {\r\n tableLayout: 'fixed',\r\n\r\n '& td, th': {\r\n overflow: 'hidden',\r\n }\r\n },\r\n contractorsTable: {\r\n '& tr:last-child td': {\r\n borderBottom: 'none'\r\n }\r\n },\r\n rowHidden: {\r\n visibility: 'collapse'\r\n },\r\n divHidden: {\r\n maxHeight: '0px !important'\r\n },\r\n divOpen: {\r\n maxHeight: '2000px'\r\n },\r\n elemTransition: {\r\n transition: 'all 0.8s'\r\n }\r\n})\r\n\r\nfunction CreateAdditionalRoundTable(\r\n {\r\n classes,\r\n className,\r\n formikProps,\r\n id,\r\n elementList = [],\r\n showContractors,\r\n label,\r\n editable = true,\r\n required = true,\r\n disabled\r\n }) {\r\n const elements = getObjectValue(id, formikProps.values, []);\r\n const errorValue = getObjectValue(id, formikProps.errors, '');\r\n const touched = getObjectValue(id, formikProps.touched, false);\r\n const isAllChecked = elementList.length > 0 && !elementList.find(x => elements[x.identity].checked !== true)\r\n\r\n const handleHeadCheckboxChange = (e, value) => {\r\n elementList.forEach(x => formikProps.setFieldValue(id + '.' + x.identity + '.checked', value));\r\n }\r\n\r\n const handleContractorsHeadCheckboxChange = (e, value, elemId) => {\r\n const position = elementList.find(x => x.identity === elemId);\r\n position.contractors.forEach(c => formikProps.setFieldValue(id + '.' + position.identity + '.contractors.' + c.identity, value));\r\n }\r\n\r\n const isError = editable && !!errorValue && Boolean(touched);\r\n const helperText = errorValue || ' ';\r\n return (\r\n \r\n \r\n {label ? label : Tr('assign_to_part')}{required ? '*' : ''}\r\n \r\n \r\n \r\n \r\n \r\n {Tr('part_number')}\r\n {Tr('name')}\r\n \r\n \r\n \r\n {elementList.map((x, i) => {\r\n const positionChecked = elements[x.identity].checked;\r\n const allContractorsChecked = !!elements[x.identity].contractors && !Object.keys(elements[x.identity].contractors).find(c => elements[x.identity].contractors[c] !== true);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {showContractors &&\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n handleContractorsHeadCheckboxChange(e, value, x.identity)}\r\n checked={allContractorsChecked}\r\n disabled={disabled}\r\n />\r\n {Tr('column_lp')}\r\n {Tr('contractor')}\r\n \r\n \r\n \r\n {x.contractors.map((c, i) => {\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 {isError && {helperText}}\r\n \r\n )\r\n}\r\n\r\nCreateAdditionalRoundTable.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(CreateAdditionalRoundTable);\r\n","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport * as Yup from \"yup\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport CreateAdditionalRoundTable from \"./CreateAdditionalRoundTable\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n cells: {\r\n padding: theme.spacing()\r\n },\r\n partColumn: {\r\n width: 75\r\n },\r\n dateTimePicker: {\r\n width: 350\r\n }\r\n}));\r\n\r\n\r\nconst OfferChoiceCreateAdditionalRoundPopup = (\r\n {\r\n demandId,\r\n onCancel,\r\n onSuccess,\r\n roundType,\r\n formSubmit\r\n }) => {\r\n\r\n const isAuction = roundType === RoundType.AUCTION;\r\n const classes = useStyle();\r\n\r\n const [rounds, setRounds] = useState(null);\r\n const [showContractors, setShowContractors] = useState(false);\r\n const [working, setWorking] = useState(true);\r\n const [error, setError] = useState(false);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = (values) => {\r\n setError(false);\r\n setWorking(true);\r\n OfferChoiceService.createAdditionalRound(demandId, values, roundType).then(onSuccess).catch(() => {\r\n setError(true);\r\n setWorking(false);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n OfferChoiceService.prepareAdditionalRound(demandId, roundType).then(resp => {\r\n setRounds({...resp, positions: resp.positions.map(x => ({...x, identity: \"_\" + x.identity, contractors: !!x.contractors ? x.contractors.map(c => ({...c, identity: \"_\" + c.identity})) : []}))})\r\n setShowContractors(resp.showContractors);\r\n }).finally(() => setWorking(false));\r\n }, [demandId, roundType])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n buttons.push(createButton(Tr(isAuction ? 'additional_round_create_auction_begin_button' : 'additional_round_create_additional_offers_begin_button'), handleSubmit, undefined, working || !rounds?.positions.length));\r\n return buttons;\r\n }\r\n const handleEndDate = (formikProps, value) => {\r\n formikProps.setFieldValue('openOfferDate', value);\r\n }\r\n\r\n const validationSchema = () => {\r\n const shape = {\r\n parts: VS.any().test('partSelected', Tr('choose_at_least_one_position'), (e) => {\r\n const selIndex = Object.keys(e).findIndex(x => e[x].checked === true);\r\n return selIndex > -1;\r\n }).test('contractorSelected', Tr('choose_at_least_one_contractor'), (e) => {\r\n return showContractors ? Object.keys(e).filter(x => e[x].checked === true).every(x => Object.keys(e[x].contractors).findIndex(c => e[x].contractors[c] === true) > -1) : true;\r\n })\r\n }\r\n if (!isAuction) {\r\n shape.endDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'));\r\n shape.openOfferDate = VS.dateTimeValid()\r\n .when('endDate', (endDate, schema) => {\r\n return schema.test('EndDateLessOpenDate', Tr(\"EndDateLessOpenDate\"), (offerOpenDate) => {\r\n if (endDate && offerOpenDate) {\r\n return !offerOpenDate.isBefore(endDate);\r\n }\r\n return false;\r\n })\r\n })\r\n }\r\n return Yup.object().shape(shape)\r\n }\r\n\r\n return (\r\n )\r\n}\r\n\r\nOfferChoiceCreateAdditionalRoundPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n roundType: PropTypes.oneOf([RoundType.AUCTION, RoundType.ADDITIONAL_OFFERS]).isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(OfferChoiceCreateAdditionalRoundPopup)","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {Grid, Typography, withStyles} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport TextInput from \"components/TextInput\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport Form from \"components/Form\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n limit: {\r\n position: 'absolute',\r\n bottom: 0,\r\n right: 0,\r\n color: theme.palette.text.secondary,\r\n },\r\n relative: {\r\n position: 'relative'\r\n }\r\n})\r\n\r\nfunction RealizationAmountForm(\r\n {\r\n formId,\r\n realizationValues,\r\n required,\r\n editable,\r\n onSubmit,\r\n classes\r\n }) {\r\n\r\n\r\n const getInitValues = () => {\r\n const init = {\r\n dealings: realizationValues.dealings.map(({realizationGrossValue, identity}) => ({\r\n realizationGrossValue,\r\n identity\r\n }))\r\n };\r\n return init;\r\n }\r\n\r\n const getValidationSchema = () => {\r\n const shape = {\r\n realizationGrossValue: required ? VS.amount(0, true) : VS.amountOptional(0, true)\r\n }\r\n\r\n return VS.object({\r\n dealings: VS.lazy(x => {\r\n return VS.arrayOfShape(shape)\r\n })\r\n })\r\n }\r\n\r\n const formatPublishDate = (publishDate) => {\r\n return moment(publishDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT);\r\n }\r\n\r\n return ()\r\n}\r\n\r\nRealizationAmountForm.propTypes = {\r\n formId: PropTypes.string.isRequired,\r\n realizationValues: PropTypes.shape({\r\n dealings: PropTypes.array.isRequired,\r\n realizationValuePublished: PropTypes.bool\r\n }).isRequired,\r\n required: PropTypes.bool.isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default withStyles(style)(RealizationAmountForm);","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport useId from \"hooks/useId\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport DealingsService from \"services/DealingsService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport RealizationAmountForm from \"components/complex/realizationAmount/RealizationAmountForm\";\r\n\r\n\r\nconst FinalRealizationValuePopup = (\r\n {\r\n demandId,\r\n onCancel,\r\n onSuccess,\r\n editable,\r\n formSubmit,\r\n }) => {\r\n\r\n\r\n const [realizationValues, setRealizationValues] = useState(null);\r\n const [working, setWorking] = useState(true);\r\n const [error, setError] = useState(null);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = ({dealings}) => {\r\n setError(false);\r\n setWorking(true);\r\n\r\n const toCompare = realizationValues.dealings;\r\n\r\n const touched = dealings.filter((el, i) => {\r\n return el.realizationGrossValue !== toCompare[i].realizationGrossValue\r\n });\r\n\r\n DealingsService.saveFinalRealizationValues(demandId, {dealings: touched}).then(onSuccess).catch(() => {\r\n setError(Tr('unknown_error_message'));\r\n setWorking(false);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n DealingsService.getFinalRealizationValues(demandId).then(resp => {\r\n if (isResponseValid(resp, setError))\r\n setRealizationValues(resp)\r\n }).finally(() => setWorking(false))\r\n }, [demandId])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n buttons.push(createButton(Tr('realization_value_update'), handleSubmit, undefined, working || !editable));\r\n return buttons;\r\n }\r\n\r\n\r\n return (\r\n )\r\n}\r\n\r\nFinalRealizationValuePopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(FinalRealizationValuePopup)","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {connect} from \"react-redux\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Tr from \"translations/Translations\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport Pagination from \"components/Pagination\";\r\nimport OfferChoiceTable from \"./components/OfferChoiceTable\";\r\nimport Alert from \"components/popup/alert/Alert\";\r\nimport OfferChoiceCancelWhereNoOffersPopup from \"./components/OfferChoiceCancelWhereNoOffersPopup\";\r\nimport OfferChoiceSearch from \"./components/OfferChoiceSearch\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport OfferChoiceCreateAdditionalRoundPopup from \"./components/additionalRound/OfferChoiceCreateAdditionalRoundPopup\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport FinalRealizationValuePopup from \"./components/FinalRealizationValuePopup\";\r\nimport SplitButton, {createButton as createSplitButton} from \"components/popup/components/SplitButton\";\r\nimport MultiButton from \"components/popup/components/MultiButton\";\r\n\r\n\r\nfunction OfferChoice(\r\n {\r\n match,\r\n offerChoiceList,\r\n offerChoiceJustification,\r\n demandValidation\r\n }) {\r\n\r\n const curDemandValidation = DemandValidation.OFFER_CHOICE;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig} = useSearch();\r\n const [working, setWorking] = useState(true);\r\n const [errorDialogOpen, setErrorDialogOpen] = useState(false);\r\n const [realizationDialogOpen, setRealizationDialogOpen] = useState(false);\r\n const [cancelWhereNoOffersPopupOpen, setCancelWhereNoOffersPopupOpen] = useState(false);\r\n const [createPopupType, setCreatePopupType] = useState(null);\r\n\r\n const updateStatus = async (positionId, canceled, chosenSupplierIds, offerChoiceDate, offerChoiceJustification) => {\r\n setWorking(true);\r\n try {\r\n await OfferChoiceService.saveOfferChoice(demandId, positionId, canceled, chosenSupplierIds, offerChoiceDate, offerChoiceJustification);\r\n } catch (e) {\r\n setErrorDialogOpen(true);\r\n throw e;\r\n } finally {\r\n setWorking(false);\r\n }\r\n }\r\n\r\n const modifyChoice = async (positionId) => {\r\n setWorking(true);\r\n try {\r\n await OfferChoiceService.modifyChoice(demandId, positionId);\r\n } catch (e) {\r\n setErrorDialogOpen(true);\r\n throw e;\r\n } finally {\r\n setWorking(false);\r\n }\r\n }\r\n\r\n const refreshData = () => setSearchConfig({...searchData.search});\r\n\r\n useEffect(() => {\r\n OfferChoiceService.getChoiceJustificationBasis(demandId);\r\n return () => {\r\n OfferChoiceService.clearResources(OfferChoiceService.OFFER_CHOICE_LIST_RESOURCE_ID);\r\n OfferChoiceService.clearResources(OfferChoiceService.OFFER_CHOICE_JUSTIFICATIONS);\r\n }\r\n }, [demandId])\r\n\r\n useEffect(() => {\r\n setWorking(true);\r\n const {pagination, search} = searchData;\r\n OfferChoiceService.getChoiceList(demandId, pagination, search).then(() => (setWorking(false)));\r\n // eslint-disable-next-line\r\n }, [searchData, demandId])\r\n\r\n useDidUpdateEffect(() => {\r\n if (offerChoiceList?.totalCount !== undefined) {\r\n setTotalCount(offerChoiceList.totalCount)\r\n }\r\n }, [offerChoiceList?.totalCount]);\r\n\r\n\r\n const createRoundButton = useMemo(() => {\r\n const buttons = [];\r\n buttons.push(createSplitButton(Tr('additional_round_create_additional_offers_button'), () => setCreatePopupType(RoundType.ADDITIONAL_OFFERS), !editable || working));\r\n buttons.push(createSplitButton(Tr('additional_round_create_auction_button'), () => setCreatePopupType(RoundType.AUCTION), !editable || working));\r\n return ()\r\n }, [editable, working])\r\n\r\n const additionalActionsButton = useMemo(() => {\r\n const buttons = [];\r\n buttons.push(createSplitButton(Tr('invalidate_parts_no_offers'), () => setCancelWhereNoOffersPopupOpen(true), !editable || working));\r\n buttons.push(createSplitButton(Tr('realization_value_update'), () => setRealizationDialogOpen(true), working));\r\n return ()\r\n }, [editable, working])\r\n\r\n if (!offerChoiceList || !offerChoiceJustification) return ;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {!offerChoiceList?.items.length ?\r\n {Tr('no_options')}\r\n :\r\n <>\r\n \r\n \r\n setErrorDialogOpen(false)}/>\r\n >}\r\n {\r\n cancelWhereNoOffersPopupOpen &&\r\n setCancelWhereNoOffersPopupOpen(false)}\r\n onSuccess={() => {\r\n refreshData();\r\n setCancelWhereNoOffersPopupOpen(false);\r\n }}\r\n />\r\n }\r\n {\r\n !!createPopupType &&\r\n setCreatePopupType(null)}\r\n onSuccess={() => {\r\n refreshData();\r\n setCreatePopupType(null);\r\n }}\r\n roundType={createPopupType}\r\n />\r\n }\r\n {\r\n !!realizationDialogOpen &&\r\n setRealizationDialogOpen(false)}\r\n onSuccess={() => {\r\n refreshData();\r\n setRealizationDialogOpen(false);\r\n }}\r\n editable={editable}\r\n />\r\n }\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n offerChoiceList: state.resources[OfferChoiceService.OFFER_CHOICE_LIST_RESOURCE_ID],\r\n offerChoiceJustification: state.resources[OfferChoiceService.OFFER_CHOICE_JUSTIFICATIONS],\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(OfferChoice));\r\n\r\n","import React from 'react'\r\nimport OfferChoice from \"./OfferChoice\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport {clearResource, setResource, setSaveStatusError} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport applySearchParams from \"libs/applySearchParams\";\r\nimport Tr from \"../translations/Translations\";\r\nimport downloadFileWithPreloadUrl from \"../libs/downloadFileWithPreloadUrl\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\nimport moment from \"libs/moment\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\n\r\nconst OFFER_CHOICE_RESULT_LIST_RESOURCE_ID = 'offerChoiceResultList';\r\n\r\nconst getChoiceResultList = async (demandId, pagination, search) => {\r\n const params = {\r\n ...pagination\r\n };\r\n applySearchParams(search, params);\r\n try {\r\n const resp = await RestRequestGET(Endpoints.OFFER_CHOICE_RESULT(demandId), {params});\r\n reduxStore.dispatch(setResource(OFFER_CHOICE_RESULT_LIST_RESOURCE_ID, resp));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst setChoiceResult = (roundResult) => {\r\n const {resources} = reduxStore.getState();\r\n const curList = resources?.[OFFER_CHOICE_RESULT_LIST_RESOURCE_ID];\r\n if (curList) {\r\n const newList = {\r\n ...curList,\r\n items: curList.items.map(x => x.identity === roundResult.identity ? roundResult : x)\r\n }\r\n reduxStore.dispatch(setResource(OFFER_CHOICE_RESULT_LIST_RESOURCE_ID, newList));\r\n }\r\n};\r\n\r\nconst getChoiceResultFilesList = async (demandId, roundResultId) => {\r\n try {\r\n return await RestRequestGET(Endpoints.OFFER_CHOICE_RESULT_FILE(demandId, roundResultId));\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n};\r\n\r\nconst getChoiceResultPrint = async (demandId, roundResultId) => {\r\n try {\r\n await RestRequestBLOB(Endpoints.OFFER_CHOICE_RESULT_PRINT(demandId, roundResultId));\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n};\r\n\r\nconst shareChoiceResultPrint = async (demandId, roundResultId, system) => {\r\n\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE_RESULT_SHARE(demandId, roundResultId), {system});\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n return false;\r\n};\r\n\r\nconst updatePublishUntilDate = async (demandId, roundResultId, values) => {\r\n try {\r\n const data = {\r\n date: values.publishUntilDate ? moment(values.publishUntilDate) : null\r\n };\r\n const resp = await RestRequestPUT(Endpoints.OFFER_CHOICE_RESULT_PUBLISH_UNTIL_DATE(demandId, roundResultId), data);\r\n if (resp.success) {\r\n const result = resp.result;\r\n const {resources} = reduxStore.getState();\r\n const list = resources[OFFER_CHOICE_RESULT_LIST_RESOURCE_ID];\r\n if (list) {\r\n\r\n const newList = {\r\n ...list,\r\n items: list.items.map(x => x.identity === result.identity ? {...result, positionOrders: x.positionOrders} : x)\r\n }\r\n reduxStore.dispatch(setResource(OFFER_CHOICE_RESULT_LIST_RESOURCE_ID, newList));\r\n }\r\n } else {\r\n throw new Error(resp)\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n};\r\n\r\nconst addChoiceResultFilesList = async (demandId, roundResultId, repositoryFiles) => {\r\n const data = {\r\n repositoryIds: repositoryFiles.map(x => x.identity)\r\n }\r\n\r\n try {\r\n return await RestRequestPOST(Endpoints.OFFER_CHOICE_RESULT_FILE(demandId, roundResultId), data);\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n};\r\n\r\nconst getDownloadFile = async (demandId, roundResultId, resultFileId) => {\r\n await downloadFileWithPreloadUrl(\r\n Endpoints.OFFER_CHOICE_RESULT_FILE_DOWNLOAD_URL(demandId, roundResultId, resultFileId, false),\r\n false);\r\n}\r\n\r\nconst deleteFile = async (demandId, roundResultId, resultFileId) => {\r\n try {\r\n const resp = await RestRequestDELETE(Endpoints.OFFER_CHOICE_RESULT_FILE_DELETE(demandId, roundResultId, resultFileId));\r\n if (resp?.success && resp?.result) {\r\n return resp.result;\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\nconst publishFile = async (demandId, roundResultId, resultFileId) => {\r\n try {\r\n const resp = await RestRequestPUT(Endpoints.OFFER_CHOICE_RESULT_FILE_PUBLISH(demandId, roundResultId, resultFileId));\r\n validateSection(DemandValidation.OFFERS_CHOICE_RESULT, demandId, false);\r\n return resp;\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\nconst unpublishFile = async (demandId, roundResultId, resultFileId) => {\r\n try {\r\n const resp = await RestRequestPUT(Endpoints.OFFER_CHOICE_RESULT_FILE_UNPUBLISH(demandId, roundResultId, resultFileId));\r\n validateSection(DemandValidation.OFFERS_CHOICE_RESULT, demandId, false);\r\n return resp;\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\nconst shareFile = async (demandId, roundResultId, resultFileId, system) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE_RESULT_FILE_SHARE(demandId, roundResultId, resultFileId), {system});\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n return false;\r\n\r\n}\r\n\r\nconst getDownloadHistory = async (demandId, resultNoticeId, resultFileId, pagination) => {\r\n\r\n const params = {\r\n ...pagination\r\n }\r\n\r\n const siwzDownloadHistory = await RestRequestGET(Endpoints.OFFER_CHOICE_RESULT_FILE_DOWNLOAD_HISTORY(demandId, resultNoticeId, resultFileId, params), {params});\r\n return siwzDownloadHistory;\r\n}\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.OFFER_CHOICE_RESULT_VALIDATE(id));\r\n}\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n};\r\n\r\nexport default {\r\n getChoiceResultList,\r\n setChoiceResult,\r\n getChoiceResultFilesList,\r\n updatePublishUntilDate,\r\n addChoiceResultFilesList,\r\n getDownloadFile,\r\n getChoiceResultPrint,\r\n shareChoiceResultPrint,\r\n deleteFile,\r\n publishFile,\r\n unpublishFile,\r\n getDownloadHistory,\r\n validate,\r\n clearResources,\r\n shareFile,\r\n OFFER_CHOICE_RESULT_LIST_RESOURCE_ID\r\n}","import Tr from 'translations/Translations';\r\n\r\nexport const OfferChoiceResultFileState = {\r\n NEW: \"NEW\",\r\n PUBLISHED: \"PUBLISHED\",\r\n WITHDRAWN: \"WITHDRAWN\"\r\n}\r\nconst _TR_PREFIX = 'offer_choice_result_file_state_';\r\n\r\nexport const OfferChoiceResultFileStateLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n","import {makeStyles, TableCell, TableRow} from \"@material-ui/core\";\r\nimport {Delete as DeleteIcon} from \"@material-ui/icons\";\r\nimport moment from \"libs/moment\";\r\nimport PropTypes from \"prop-types\";\r\nimport React, {useReducer, useState} from \"react\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport OffersChoiceResultService from \"services/OffersChoiceResultService\";\r\nimport {OfferChoiceResultFileState, OfferChoiceResultFileStateLabel} from \"../constants/OfferChoiceResultFileState\";\r\nimport WorkableIconUnpublishButton from \"components/button/WorkableIconUnpublishButton\";\r\nimport WorkableIconPublishButton from \"components/button/WorkableIconPublishButton\";\r\nimport WorkableIconDownloadCountButton from \"components/button/WorkableIconDownloadCountButton\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport WorkableIconDownloadButton from \"components/button/WorkableIconDownloadButton\";\r\nimport DownloadHistoryPopup, {createDownloadHistoryFile} from \"components/popup/DownloadHistoryPopup\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport ShareSelectPopup, {sharePopupData} from \"components/popup/ShareSelectPopup\";\r\nimport Tr from \"translations/Translations\";\r\nimport WorkableIconShareButton from \"components/button/WorkableIconShareButton\";\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n buttonCell: {\r\n padding: 0\r\n }\r\n}));\r\n\r\nfunction OfferChoiceResultFilesTableRow(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n offerChoiceResultItem,\r\n onDeleteFile,\r\n onUpdateFile,\r\n file,\r\n showShare\r\n }) {\r\n const classes = useStyles();\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n publish: false,\r\n delete: false,\r\n share: false,\r\n });\r\n const [downloadHistory, setDownloadHistory] = useState(null);\r\n const [shareFilePopup, setShareFilePopup] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const onDownloadCount = () => {\r\n setDownloadHistory(createDownloadHistoryFile(file.name, demandId, file.identity));\r\n };\r\n\r\n const onDownloadDialogClose = () => {\r\n setDownloadHistory(null);\r\n };\r\n\r\n const downloadFile = (file) => {\r\n dispatchIconWorks({type: 'download', works: true})\r\n OffersChoiceResultService.getDownloadFile(demandId, offerChoiceResultItem.identity, file.identity)\r\n .catch(() => {\r\n }).finally(() => dispatchIconWorks({type: 'download', works: false}));\r\n };\r\n\r\n const deleteFile = (file) => {\r\n dispatchIconWorks({type: 'delete', works: true})\r\n OffersChoiceResultService.deleteFile(demandId, offerChoiceResultItem.identity, file.identity)\r\n .then(() => {\r\n onDeleteFile(file)\r\n })\r\n .catch(() => dispatchIconWorks({type: 'delete', works: false}));\r\n };\r\n\r\n const publishFile = (file) => {\r\n dispatchIconWorks({type: 'publish', works: true});\r\n const promise = OffersChoiceResultService.publishFile(demandId, offerChoiceResultItem.identity, file.identity);\r\n doPublishChange(promise);\r\n };\r\n\r\n const unpublishFile = (file) => {\r\n dispatchIconWorks({type: 'publish', works: true});\r\n const promise = OffersChoiceResultService.unpublishFile(demandId, offerChoiceResultItem.identity, file.identity);\r\n doPublishChange(promise);\r\n };\r\n\r\n const doPublishChange = (promise) => {\r\n promise\r\n .then((resp) => {\r\n if (resp?.file) {\r\n onUpdateFile(resp.file);\r\n }\r\n if (resp?.info) {\r\n OffersChoiceResultService.setChoiceResult(resp.info)\r\n }\r\n })\r\n .finally(() => dispatchIconWorks({type: 'publish', works: false}));\r\n };\r\n\r\n\r\n const onShareFile = (row) => setShareFilePopup(sharePopupData(row.name, row));\r\n\r\n const doShare = (row, system) => {\r\n setShareFilePopup(null);\r\n dispatchIconWorks({type: 'share', works: true});\r\n OffersChoiceResultService.shareFile(demandId, offerChoiceResultItem.identity, row.identity, system).then((resp) => {\r\n if (resp)\r\n enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: system}, true))\r\n }).finally(() => {\r\n dispatchIconWorks({type: 'share', works: false})\r\n });\r\n }\r\n\r\n return (\r\n \r\n {file.name}\r\n {OfferChoiceResultFileStateLabel(file.state)}\r\n {file.datePublished ? moment(file.datePublished).format(DateFormats.DATETIME_FORMAT) : null}\r\n \r\n downloadFile(file)}/>\r\n \r\n {\r\n showShare &&\r\n \r\n onShareFile(file)}\r\n disabled={iconWorks.anyWorks}\r\n working={iconWorks.share}\r\n />\r\n\r\n {!!shareFilePopup && setShareFilePopup(null)}\r\n onChoose={doShare}\r\n />}\r\n \r\n }\r\n \r\n {\r\n file.state === OfferChoiceResultFileState.PUBLISHED ?\r\n unpublishFile(file)}\r\n /> :\r\n publishFile(file)}\r\n />\r\n }\r\n \r\n \r\n \r\n {downloadHistory &&\r\n {\r\n return await OffersChoiceResultService.getDownloadHistory(demandId, offerChoiceResultItem.identity, fileId, pagination)\r\n }\r\n }}\r\n onClose={onDownloadDialogClose}\r\n />\r\n }\r\n \r\n \r\n deleteFile(file)}\r\n />\r\n \r\n \r\n )\r\n}\r\n\r\nOfferChoiceResultFilesTableRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n offerChoiceResultItem: PropTypes.object.isRequired,\r\n onDeleteFile: PropTypes.func.isRequired,\r\n onUpdateFile: PropTypes.func.isRequired,\r\n file: PropTypes.object.isRequired,\r\n showShare: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default OfferChoiceResultFilesTableRow;\r\n\r\n","import {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport OfferChoiceResultFilesTableRow from \"./OfferChoiceResultFilesTableRow\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n statusColumn: theme.components.table.emailColumn,\r\n dateTimeColumn: {\r\n width: 248\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n}));\r\n\r\nfunction OfferChoiceResultFilesTable(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n offerChoiceResultItem,\r\n files,\r\n setFiles,\r\n showShare\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const onDeleteFile = (fileToDelete) => {\r\n setFiles(state => state.filter(f => f.identity !== fileToDelete.identity));\r\n }\r\n\r\n const onUpdateFile = (fileToUpdate) => {\r\n setFiles(state => state.map(f => f.identity === fileToUpdate.identity ? fileToUpdate : f));\r\n }\r\n\r\n if (!files) return null;\r\n return (\r\n \r\n \r\n {Tr(\"name\")}\r\n {Tr(\"status\")}\r\n {Tr(\"publish_data\")}\r\n \r\n {showShare && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {files.map(file => (\r\n \r\n ))}\r\n \r\n
)\r\n\r\n\r\n}\r\n\r\nOfferChoiceResultFilesTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n offerChoiceResultItem: PropTypes.object.isRequired,\r\n files: PropTypes.array.isRequired,\r\n setFiles: PropTypes.func.isRequired\r\n}\r\n\r\nexport default OfferChoiceResultFilesTable;\r\n\r\n","import {TableCell, TableRow} from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\nimport React, {useState} from \"react\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport OffersChoiceResultService from \"services/OffersChoiceResultService\";\r\nimport Tr from \"translations/Translations\";\r\nimport OfferChoiceResultFilesTable from \"./OfferChoiceResultFilesTable\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\n\r\nfunction OfferChoiceResultFiles(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n offerChoiceResultItem,\r\n files,\r\n setFiles,\r\n showShare\r\n }) {\r\n\r\n const [filesWorking, setFilesWorking] = useState(false);\r\n\r\n\r\n const handleSendFiles = (files) => {\r\n if (files.length) {\r\n setFilesWorking(true);\r\n OffersChoiceResultService.addChoiceResultFilesList(demandId, offerChoiceResultItem.identity, files)\r\n .then((resp) => {\r\n if (resp)\r\n setFiles(state => [...state, ...resp.files]);\r\n })\r\n .finally(() => setFilesWorking(false));\r\n }\r\n }\r\n\r\n\r\n if (!files) return null;\r\n return (\r\n \r\n {editable && files && \r\n }\r\n {\r\n !files.length ?\r\n {Tr('no_options')}\r\n :\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nOfferChoiceResultFiles.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n offerChoiceResultItem: PropTypes.object.isRequired,\r\n files: PropTypes.arrayOf(PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n state: PropTypes.string.isRequired,\r\n datePublished: PropTypes.string\r\n })),\r\n setFiles: PropTypes.func.isRequired\r\n}\r\n\r\nexport default OfferChoiceResultFiles;\r\n\r\n","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport PrintIcon from '@material-ui/icons/Print';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nfunction WorkableIconPrintButton(\r\n {\r\n tooltip = Tr('download_print'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconPrintButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconPrintButton;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport DescriptionIcon from '@material-ui/icons/Description';\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport moment from \"libs/moment\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction OfferChoiceResultFilePublishPopup(\r\n {\r\n onClose,\r\n onSubmit,\r\n offerChoiceResultItem,\r\n formSubmit,\r\n }) {\r\n\r\n const {publishUntilDate} = offerChoiceResultItem;\r\n\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n return (\r\n }\r\n >\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nOfferChoiceResultFilePublishPopup.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n offerChoiceResultItem: PropTypes.shape({\r\n modification: PropTypes.bool.isRequired,\r\n publishUntilDate: PropTypes.string,\r\n positionOrders: PropTypes.arrayOf(PropTypes.number).isRequired\r\n })\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form,\r\n}), {})(OfferChoiceResultFilePublishPopup);","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport EventIcon from '@material-ui/icons/Event'\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconCalendarButton(\r\n {\r\n tooltip = Tr('choose_date'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconCalendarButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconCalendarButton;","import PropTypes from \"prop-types\";\r\nimport React, {useReducer, useState} from \"react\";\r\nimport OffersChoiceResultService from \"services/OffersChoiceResultService\";\r\nimport {makeStyles, TableCell, TableRow} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport {KeyboardArrowDown as ArrowDownIcon, KeyboardArrowUp as ArrowUpIcon} from \"@material-ui/icons\";\r\nimport OfferChoiceResultFiles from \"./OfferChoiceResultFiles\";\r\nimport clsx from \"clsx\";\r\nimport {OfferChoiceResultStateLabel} from \"../constants/OfferChoiceResultState\";\r\nimport WorkableIconPrintButton from \"components/button/WorkableIconPrintButton\";\r\nimport OfferChoiceResultFilePublishPopup from \"./OfferChoiceResultFilePublishPopup\";\r\nimport WorkableIconCalendarButton from \"components/button/WorkableIconCalendarButton\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport WorkableIconShareButton from \"components/button/WorkableIconShareButton\";\r\nimport ShareSelectPopup, {sharePopupData} from \"components/popup/ShareSelectPopup\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n openFilesCell: {\r\n borderBottom: \"none\"\r\n },\r\n buttonCell: {\r\n padding: 0\r\n }\r\n}));\r\n\r\nfunction OfferChoiceResultRow(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n offerChoiceResultItem,\r\n showShare\r\n }) {\r\n\r\n const classes = useStyles();\r\n const [publishPopupOpened, setPublishPopupOpened] = useState(false);\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n load: false,\r\n print: false,\r\n publish: false,\r\n share: false\r\n });\r\n const [shareFilePopup, setShareFilePopup] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const [files, setFiles] = useState(null);\r\n\r\n const onPrintClick = () => {\r\n if (!iconWorks.anyWorks) {\r\n dispatchIconWorks({type: 'print', works: true})\r\n OffersChoiceResultService.getChoiceResultPrint(demandId, offerChoiceResultItem.identity).finally(() => dispatchIconWorks({\r\n type: 'print',\r\n works: false\r\n }));\r\n }\r\n }\r\n\r\n const onUpdatePublishUntilDate = (values) => {\r\n dispatchIconWorks({type: 'publish', works: true})\r\n setPublishPopupOpened(false);\r\n OffersChoiceResultService.updatePublishUntilDate(demandId, offerChoiceResultItem.identity, values)\r\n .finally(() => dispatchIconWorks({type: 'publish', works: false}));\r\n }\r\n\r\n const onLoadButtonClick = () => {\r\n if (!iconWorks.anyWorks) {\r\n if (files === null) {\r\n dispatchIconWorks({type: 'load', works: true})\r\n OffersChoiceResultService.getChoiceResultFilesList(demandId, offerChoiceResultItem.identity).then((resp) => {\r\n if (resp !== undefined)\r\n setFiles(resp.files);\r\n }).finally(() => dispatchIconWorks({type: 'load', works: false}));\r\n } else {\r\n setFiles(null);\r\n }\r\n }\r\n }\r\n const name = `${Tr(offerChoiceResultItem.modification ? 'offers_choice_modification_result_applies_parts' : 'offers_choice_result_applies_parts')}: ${offerChoiceResultItem.positionOrders.join(\", \")}`;\r\n\r\n const onShareFile = () => setShareFilePopup(sharePopupData(name));\r\n\r\n const doShare = (row, system) => {\r\n setShareFilePopup(null);\r\n dispatchIconWorks({type: 'share', works: true});\r\n OffersChoiceResultService.shareChoiceResultPrint(demandId, offerChoiceResultItem.identity, system).then((resp) => {\r\n if (resp)\r\n enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: system}, true))\r\n }).finally(() => {\r\n dispatchIconWorks({type: 'share', works: false})\r\n });\r\n }\r\n\r\n const filesLoaded = files !== null;\r\n return (<>\r\n \r\n \r\n {name}\r\n \r\n \r\n {OfferChoiceResultStateLabel(offerChoiceResultItem.state)}\r\n \r\n \r\n {offerChoiceResultItem.publishDate ? moment(offerChoiceResultItem.publishDate).format(DateFormats.DATETIME_FORMAT) : null}\r\n \r\n \r\n {offerChoiceResultItem.publishUntilDate ? moment(offerChoiceResultItem.publishUntilDate).format(DateFormats.DATETIME_FORMAT) : null}\r\n \r\n \r\n setPublishPopupOpened(true)}\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n showShare && \r\n \r\n {!!shareFilePopup && setShareFilePopup(null)}\r\n onChoose={doShare}\r\n />}\r\n\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n publishPopupOpened &&\r\n setPublishPopupOpened(false)}\r\n onSubmit={onUpdatePublishUntilDate}\r\n />\r\n }\r\n >)\r\n}\r\n\r\nOfferChoiceResultRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool,\r\n offerChoiceResultItem: PropTypes.shape({\r\n positionOrders: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n publishDate: PropTypes.string,\r\n state: PropTypes.string,\r\n }).isRequired\r\n}\r\n\r\nexport default OfferChoiceResultRow;\r\n\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const OfferChoiceResultState = {\r\n NEW: \"NEW\",\r\n PUBLISHED: \"PUBLISHED\",\r\n WITHDRAWN: \"WITHDRAWN\"\r\n}\r\nconst _TR_PREFIX = 'offer_choice_result_state_';\r\n\r\nexport const OfferChoiceResultStateLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n","import {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport OfferChoiceResultRow from \"./OfferChoiceResultRow\";\r\nimport {connect} from \"react-redux\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport {useMemo} from \"react\";\r\nimport {shareSystemsActive} from \"libs/shareSystems\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n\r\n },\r\n headRow: {\r\n },\r\n dateTimeColumn: theme.components.table.dateTimeColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n statusColumn: theme.components.table.emailColumn,\r\n}));\r\n\r\nfunction OfferChoiceResultTable(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n offerChoiceResultList,\r\n demandPrivileges,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyles();\r\n const showShare = useMemo(() => demandPrivileges.INTEGRATIONS_UPLOAD && shareSystemsActive(demandHeader).length > 0, [demandHeader, demandPrivileges])\r\n return (\r\n \r\n \r\n {Tr(\"part\")}\r\n {Tr(\"status\")}\r\n {Tr(\"publish_data\")}\r\n {Tr(\"publish_until_data\")}\r\n \r\n \r\n {showShare && }\r\n \r\n \r\n \r\n \r\n {\r\n offerChoiceResultList.items.map((element, index) => {\r\n const key = \"\" + element.identity + element.canceled + element.editable;\r\n return \r\n })\r\n }\r\n \r\n
)\r\n}\r\n\r\nOfferChoiceResultTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool,\r\n offerChoiceResultList: PropTypes.shape({\r\n items: PropTypes.array.isRequired,\r\n }).isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY]\r\n}))(OfferChoiceResultTable)\r\n\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport OffersChoiceResultService from \"services/OffersChoiceResultService\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport Tr from \"translations/Translations\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Pagination from \"components/Pagination\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport OfferChoiceResultTable from \"./components/OfferChoiceResultTable\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n }\r\n}));\r\n\r\nfunction OffersChoiceResult(\r\n {\r\n match,\r\n offerChoiceResultList,\r\n demandValidation\r\n }) {\r\n const classes = useStyles();\r\n const curDemandValidation = DemandValidation.OFFERS_CHOICE_RESULT;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig} = useSearch();\r\n const [working, setWorking] = useState(true);\r\n\r\n useEffect(() => {\r\n return () => {\r\n OffersChoiceResultService.clearResources(OffersChoiceResultService.OFFER_CHOICE_RESULT_LIST_RESOURCE_ID);\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n setWorking(true);\r\n const {pagination, search} = searchData;\r\n OffersChoiceResultService.getChoiceResultList(demandId, pagination, search).then(() => (setWorking(false)));\r\n // eslint-disable-next-line\r\n }, [searchData, demandId])\r\n\r\n useDidUpdateEffect(() => {\r\n if (offerChoiceResultList?.totalCount !== undefined) {\r\n setTotalCount(offerChoiceResultList.totalCount)\r\n }\r\n }, [offerChoiceResultList?.totalCount]);\r\n\r\n if (!offerChoiceResultList) return ;\r\n return (\r\n \r\n
\r\n \r\n\r\n {!offerChoiceResultList?.items.length ?\r\n {Tr('no_options')}\r\n :\r\n <>\r\n \r\n \r\n >\r\n }\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n offerChoiceResultList: state.resources[OffersChoiceResultService.OFFER_CHOICE_RESULT_LIST_RESOURCE_ID],\r\n demandValidation: state.resources.demandValidation\r\n}), {})(withRouter(OffersChoiceResult));","import React from 'react'\r\nimport OffersChoiceResult from \"./OffersChoiceResult\";\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","const AgreementListType = {\r\n CREATED: \"CREATED\",\r\n AVAILABLE: \"AVAILABLE\"\r\n}\r\nexport default AgreementListType;","import React from \"react\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport ToggleButtonGroup from \"@material-ui/lab/ToggleButtonGroup\";\r\nimport ToggleButton from \"@material-ui/lab/ToggleButton\";\r\nimport PropTypes from \"prop-types\";\r\nimport AgreementListType from \"../constants/AgreementListType\";\r\nimport Tr from \"translations/Translations\"\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(3)\r\n },\r\n button: {\r\n width: 560,\r\n }\r\n\r\n}));\r\n\r\nfunction AgreementsListType(\r\n {\r\n listType,\r\n setListType\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const handleToggleClick = (event, newProcedure) => {\r\n if (newProcedure)\r\n setListType(newProcedure);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {Tr(\"agreements_available\")}\r\n \r\n \r\n {Tr(\"agreements_created\")}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nAgreementsListType.propTypes = {\r\n listType: PropTypes.string.isRequired,\r\n setListType: PropTypes.func.isRequired\r\n}\r\n\r\nexport default AgreementsListType;\r\n\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource, setSaveStatusError} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport applySearchParams from \"../libs/applySearchParams\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst AGREEMENTS_RESOURCE_ID = 'agreementsList';\r\nconst AGREEMENTS_AVAILABLE_RESOURCE_ID = 'agreementsAvailableList';\r\nconst AGREEMENTS_AVAILABLE_ORGANIZATIONS_RESOURCE_ID = 'agreementsAvailableOrganizationsList';\r\n\r\nconst getAgreementsList = async (demandId, pagination, searchData) => {\r\n try {\r\n let params = {\r\n ...pagination\r\n }\r\n params = applySearchParams(searchData, params);\r\n const resp = await RestRequestGET(Endpoints.AGREEMENTS_CREATED(demandId), {params});\r\n reduxStore.dispatch(setResource(AGREEMENTS_RESOURCE_ID, resp));\r\n } catch (error) {\r\n }\r\n};\r\nconst getAgreementsAvailableList = async (demandId, pagination, searchData) => {\r\n try {\r\n let params = {\r\n ...pagination\r\n }\r\n params = applySearchParams(searchData, params);\r\n\r\n const resp = await RestRequestGET(Endpoints.AGREEMENTS_AVAILABLE(demandId), {params});\r\n reduxStore.dispatch(setResource(AGREEMENTS_AVAILABLE_RESOURCE_ID, resp));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst getAgreementsAvailableOrganizationsList = async (demandId) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.AGREEMENTS_AVAILABLE_ORGANIZATIONS(demandId));\r\n reduxStore.dispatch(setResource(AGREEMENTS_AVAILABLE_ORGANIZATIONS_RESOURCE_ID, resp));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst createNoAgreements = async (demandId, positionIds) => {\r\n const resp = await RestRequestPOST(Endpoints.AGREEMENTS_CREATE_NO_AGREEMENT(demandId), {items: positionIds});\r\n if(!resp.success) {\r\n reduxStore.dispatch(setSaveStatusError(Tr('bad_request_error')));\r\n }\r\n return resp;\r\n};\r\n\r\nconst deleteAgreement = async (demandId, objId, objType) => {\r\n const resp = await RestRequestDELETE(objType === 'agreement' ? Endpoints.AGREEMENTS_DELETE_AGR(demandId, objId) : Endpoints.AGREEMENTS_DELETE(demandId, objId));\r\n if(!resp.success) {\r\n reduxStore.dispatch(setSaveStatusError(Tr('bad_request_error')));\r\n }\r\n return resp;\r\n};\r\n\r\nconst createAgreements = async (demandId, positionIds, orgForAgreement, oneAgreement) => {\r\n const resp = await RestRequestPOST(Endpoints.AGREEMENTS_CREATE_AGREEMENT(demandId), {positionIds, oneAgreement, orgForAgreement});\r\n if(!resp.success) {\r\n reduxStore.dispatch(setSaveStatusError(Tr('bad_request_error')));\r\n }\r\n return resp;\r\n};\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.AGREEMENTS_VALIDATE(id));\r\n}\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n};\r\n\r\nexport default {\r\n getAgreementsList,\r\n getAgreementsAvailableList,\r\n getAgreementsAvailableOrganizationsList,\r\n createAgreements,\r\n createNoAgreements,\r\n deleteAgreement,\r\n validate,\r\n clearResources,\r\n AGREEMENTS_RESOURCE_ID,\r\n AGREEMENTS_AVAILABLE_RESOURCE_ID,\r\n AGREEMENTS_AVAILABLE_ORGANIZATIONS_RESOURCE_ID\r\n}","import React, {useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux'\r\nimport AgreementsService from \"services/AgreementsService\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\n\r\n\r\nfunction AgreementCreatePopup(\r\n {\r\n onClose,\r\n onSubmit,\r\n agreementsAvailableOrganizationsList,\r\n userData\r\n }) {\r\n\r\n const [value, setValue] = useState(() => {\r\n const elem = agreementsAvailableOrganizationsList.find(x => x.orgId === userData.orgId);\r\n return elem ? elem : agreementsAvailableOrganizationsList[0];\r\n });\r\n\r\n const [confirmOpen, setConfirmOpen] = useState(false);\r\n\r\n const handleSubmit = (oneAgreement) => {\r\n onSubmit(value, oneAgreement);\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), () => {\r\n onClose();\r\n }, 'outlined', false));\r\n buttons.push(createButton(Tr('createSingleAgreements'), () => {\r\n handleSubmit(false);\r\n }, undefined, false));\r\n buttons.push(createButton(Tr('createOneAgreement'), () => {\r\n setConfirmOpen(true);\r\n }, undefined, false));\r\n return buttons;\r\n }\r\n\r\n return (\r\n <>\r\n }\r\n >\r\n\r\n \r\n\r\n \r\n {Tr(\"agreement_create_select_org\")}\r\n \r\n ({label: x.name, value: x}))}\r\n value={value}\r\n onChange={(e) => {\r\n setValue(e.target.value);\r\n }}\r\n />\r\n\r\n \r\n\r\n \r\n\r\n setConfirmOpen(false)}\r\n onConfirm={() => {\r\n setConfirmOpen(false);\r\n handleSubmit(true);\r\n }}\r\n open={confirmOpen}\r\n translateConfirmTexts={false}\r\n />\r\n >\r\n )\r\n}\r\n\r\nAgreementCreatePopup.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n agreementsAvailableOrganizationsList: state.resources[AgreementsService.AGREEMENTS_AVAILABLE_ORGANIZATIONS_RESOURCE_ID],\r\n userData: state.resources.userData\r\n}), {})(AgreementCreatePopup);","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\"\r\nimport {connect} from \"react-redux\";\r\nimport AgreementsService from \"services/AgreementsService\";\r\nimport Loading from \"components/Loading\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport {CheckBox as CheckBoxIcon, CheckBoxOutlineBlank as CheckBoxOutlineBlankIcon} from \"@material-ui/icons\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport Pagination from \"components/Pagination\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport AgreementCreatePopup from \"./AgreementCreatePopup\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n partColumn: theme.components.table.dateColumn,\r\n buttonColumn: theme.components.table.buttonColumn\r\n}));\r\n\r\nfunction AgreementsAvailablePanel(\r\n {\r\n demandId,\r\n editable,\r\n agreementsAvailableList,\r\n agreementsAvailableOrganizationsList\r\n }) {\r\n\r\n const classes = useStyles();\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig} = useSearch();\r\n const [working, setWorking] = useState(false);\r\n const [confirmNoAgrOpened, setConfirmNoAgrOpened] = useState(false);\r\n const [createOpened, setCreateOpened] = useState(false);\r\n const [selected, setSelected] = useState([]);\r\n\r\n useEffect(() => {\r\n AgreementsService.getAgreementsAvailableOrganizationsList(demandId);\r\n return () => {\r\n AgreementsService.clearResources(AgreementsService.AGREEMENTS_AVAILABLE_RESOURCE_ID);\r\n AgreementsService.clearResources(AgreementsService.AGREEMENTS_AVAILABLE_ORGANIZATIONS_RESOURCE_ID);\r\n }\r\n }, [demandId]);\r\n\r\n useEffect(() => {\r\n setWorking(true);\r\n const {pagination, search} = searchData;\r\n AgreementsService.getAgreementsAvailableList(demandId, pagination, search).then(() => (setWorking(false)));\r\n setSelected([]);\r\n // eslint-disable-next-line\r\n }, [searchData, demandId]);\r\n\r\n useDidUpdateEffect(() => {\r\n if (agreementsAvailableList?.totalCount !== undefined) {\r\n setTotalCount(agreementsAvailableList.totalCount)\r\n }\r\n }, [agreementsAvailableList?.totalCount]);\r\n\r\n const checkClick = (x) => {\r\n const index = selected.indexOf(x.identity);\r\n if (index > -1) {\r\n setSelected(selected.filter(posId => posId !== x.identity))\r\n } else {\r\n setSelected(selected => [...selected, x.identity])\r\n }\r\n };\r\n\r\n const createNoAgr = () => {\r\n AgreementsService.clearResources(AgreementsService.AGREEMENTS_AVAILABLE_RESOURCE_ID);\r\n AgreementsService.createNoAgreements(demandId, selected).finally(() => {\r\n setPaginationConfig({...searchData.pagination, page: 1})\r\n });\r\n setSelected([]);\r\n setConfirmNoAgrOpened(false);\r\n\r\n };\r\n const create = (org, oneAgreement) => {\r\n AgreementsService.clearResources(AgreementsService.AGREEMENTS_AVAILABLE_RESOURCE_ID);\r\n AgreementsService.createAgreements(demandId, selected, org, oneAgreement).finally(() => {\r\n setPaginationConfig({...searchData.pagination, page: 1})\r\n });\r\n setSelected([]);\r\n setCreateOpened(false);\r\n };\r\n\r\n const buttons = useMemo(() => {\r\n const disabled = !selected.length || working || !agreementsAvailableOrganizationsList.length;\r\n const buttons = [];\r\n if (editable) {\r\n buttons.push(createButton(Tr('agreement_create'), () => {\r\n setCreateOpened(true)\r\n }, undefined, disabled));\r\n buttons.push(createButton(Tr('agreement_create_no_agr'), () => setConfirmNoAgrOpened(true), undefined, disabled));\r\n }\r\n return buttons;\r\n }, [selected, working, editable, agreementsAvailableOrganizationsList]);\r\n\r\n if (!agreementsAvailableList || !agreementsAvailableOrganizationsList) return ;\r\n\r\n return (<>\r\n \r\n \r\n \r\n \r\n\r\n {\r\n return [\r\n checkClick(x)}\r\n Icon={selected.indexOf(x.identity) > -1 ? CheckBoxIcon : CheckBoxOutlineBlankIcon}\r\n />,\r\n Tr('part_x', {x: x.order}),\r\n x.name\r\n ]\r\n })\r\n }\r\n columnClasses={\r\n [\r\n classes.buttonColumn,\r\n classes.partColumn,\r\n undefined,\r\n ]\r\n }\r\n />\r\n {\r\n !agreementsAvailableList.items.length && {Tr('no_options')}\r\n }\r\n\r\n \r\n {\r\n confirmNoAgrOpened && setConfirmNoAgrOpened(false)}\r\n onConfirm={createNoAgr}\r\n />\r\n }\r\n {\r\n createOpened && setCreateOpened(false)}\r\n onSubmit={(org, oneAgreement) => create(org, oneAgreement)}\r\n />\r\n }\r\n >\r\n )\r\n}\r\n\r\nAgreementsAvailablePanel.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n agreementsAvailableList: state.resources[AgreementsService.AGREEMENTS_AVAILABLE_RESOURCE_ID],\r\n agreementsAvailableOrganizationsList: state.resources[AgreementsService.AGREEMENTS_AVAILABLE_ORGANIZATIONS_RESOURCE_ID]\r\n}), {})(AgreementsAvailablePanel);\r\n\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\"\r\nimport {connect} from \"react-redux\";\r\nimport AgreementsService from \"services/AgreementsService\";\r\nimport Loading from \"components/Loading\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport Pagination from \"components/Pagination\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport {AgreementStateLabel} from \"../constants/AgreementState\";\r\nimport {AgreementTypeLabel} from \"../constants/AgreementType\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n typeColumn: {\r\n width: 170\r\n },\r\n buttonColumn: theme.components.table.buttonColumn\r\n}));\r\n\r\nfunction AgreementsCreatedPanel(\r\n {\r\n demandId,\r\n editable,\r\n agreementsList\r\n }) {\r\n\r\n const classes = useStyles();\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig} = useSearch();\r\n const [working, setWorking] = useState(false);\r\n const [confirmDelete, setConfirmDelete] = useState(null);\r\n\r\n useEffect(() => {\r\n return () => {\r\n AgreementsService.clearResources(AgreementsService.AGREEMENTS_RESOURCE_ID);\r\n }\r\n }, [demandId]);\r\n\r\n useEffect(() => {\r\n setWorking(true);\r\n const {pagination, search} = searchData;\r\n AgreementsService.getAgreementsList(demandId, pagination, search).then(() => (setWorking(false)));\r\n // eslint-disable-next-line\r\n }, [searchData, demandId]);\r\n\r\n useDidUpdateEffect(() => {\r\n if (agreementsList?.totalCount !== undefined) {\r\n setTotalCount(agreementsList.totalCount)\r\n }\r\n }, [agreementsList?.totalCount]);\r\n\r\n const deleteAgreement = () => {\r\n AgreementsService.deleteAgreement(demandId, confirmDelete.identity > 0 ? confirmDelete.identity : confirmDelete.extObjId, confirmDelete.identity > 0 ? 'agreement' : 'extObj').then((resp) => {\r\n if (resp.success) {\r\n if (agreementsList.items.length === 1) {\r\n setPaginationConfig({...searchData.pagination, page: 1})\r\n } else {\r\n setPaginationConfig({...searchData.pagination})\r\n }\r\n }\r\n }).finally(() => setConfirmDelete(null))\r\n }\r\n\r\n if (!agreementsList) return ;\r\n\r\n return (<>\r\n \r\n \r\n \r\n\r\n {\r\n return [\r\n x.subject,\r\n x.number,\r\n AgreementTypeLabel(x.type),\r\n AgreementStateLabel(x.state),\r\n x.actions.preview ? window.location.href = x.actions.preview.url}/> : null,\r\n setConfirmDelete(x)} disabled={!x.actions.delete}/>\r\n ]\r\n })\r\n }\r\n columnClasses={\r\n [\r\n undefined,\r\n classes.typeColumn,\r\n classes.typeColumn,\r\n classes.typeColumn,\r\n classes.buttonColumn,\r\n classes.buttonColumn,\r\n ]\r\n }\r\n />\r\n {\r\n !agreementsList.items.length && {Tr('no_options')}\r\n }\r\n\r\n \r\n\r\n {\r\n !!confirmDelete && setConfirmDelete(null)}\r\n onConfirm={() => deleteAgreement()}\r\n translateConfirmTexts={false}\r\n />\r\n }\r\n\r\n >\r\n )\r\n}\r\n\r\nAgreementsCreatedPanel.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n agreementsList: state.resources[AgreementsService.AGREEMENTS_RESOURCE_ID]\r\n}), {})(AgreementsCreatedPanel);\r\n\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const AgreementType = {\r\n SINGLE: \"SINGLE\",\r\n PUBLIC_FRAMEWORK: \"PUBLIC_FRAMEWORK\",\r\n SINGLE_EXECUTIVE: \"SINGLE_EXECUTIVE\"\r\n}\r\nconst _TR_PREFIX = 'agreement_type_';\r\n\r\nexport const AgreementTypeLabel = (type) => (type ? Tr(_TR_PREFIX + type.toLowerCase()) : null);\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const AgreementState = {\r\n NEW: \"NEW\",\r\n ACCEPTING: \"ACCEPTING\",\r\n REGISTERED: \"REGISTERED\",\r\n FINISHED: \"FINISHED\",\r\n ANNULED: \"ANNULED\",\r\n CANCELED: \"CANCELED\",\r\n EXTERNALLY_REGISTERED: \"EXTERNALLY_REGISTERED\"\r\n}\r\nconst _TR_PREFIX = 'agreement_state_';\r\n\r\nexport const AgreementStateLabel = (state) => (Tr(_TR_PREFIX + state.toLowerCase()));\r\n","import React, {useState} from \"react\";\r\nimport {connect} from 'react-redux'\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport AgreementsListType from \"./components/AgreementsListType\";\r\nimport AgreementListType from \"./constants/AgreementListType\";\r\nimport AgreementsAvailablePanel from \"./components/AgreementsAvailablePanel\";\r\nimport AgreementsCreatedPanel from \"./components/AgreementsCreatedPanel\";\r\n\r\nfunction AgreementsPanel(\r\n {\r\n match,\r\n demandValidation\r\n }) {\r\n\r\n const curDemandValidation = DemandValidation.AGREEMENTS;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n const [listType, setListType] = useState(AgreementListType.AVAILABLE);\r\n\r\n return (\r\n
\r\n {listType === AgreementListType.AVAILABLE &&
}\r\n {listType === AgreementListType.CREATED && }\r\n )\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation\r\n}), {})(withRouter(AgreementsPanel));","import React from 'react'\r\nimport AgreementsPanel from \"./AgreementsPanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import {RestRequestPOST} from \"libs/RestRequest\";\r\nimport Endpoints from \"constants/Endpoints\";\r\n\r\nconst doFinishEvaluation = async (id) => {\r\n return await RestRequestPOST(Endpoints.EVALUATION_FINISH(id));\r\n}\r\n\r\nexport default {\r\n doFinishEvaluation,\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestPOST} from 'libs/RestRequest';\r\nimport PrivilegeService from \"./PrivilegeService\";\r\n\r\nconst RFX_PRIVILEGE_STORE_KEY = \"rfx\"\r\n\r\nconst cancelRound = async (roundId, comment) => {\r\n\r\n const body = {\r\n comment\r\n }\r\n const resp = await RestRequestPOST(Endpoints.RFX_ROUND_CANCEL(roundId), body);\r\n return resp;\r\n}\r\n\r\nconst getBuyerPrivileges = async (roundId) => {\r\n await PrivilegeService.getPrivileges(Endpoints.RFX_ROUND_PRIVILEGES(roundId), PrivilegeService.RFX_PRIVILEGE_STORE_KEY);\r\n}\r\n\r\nexport default {\r\n cancelRound,\r\n getBuyerPrivileges,\r\n RFX_PRIVILEGE_STORE_KEY\r\n}","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport {makeStyles} from '@material-ui/core';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport TextInput from 'components/TextInput';\r\nimport * as Yup from 'yup';\r\nimport validationShema from 'constants/ValidationShema';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport InputLimits from \"constants/InputLimits\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n padding: {\r\n marginTop: theme.spacing(2)\r\n }\r\n}));\r\n\r\nfunction InvalidateDemandPopup(\r\n {\r\n open,\r\n onClose,\r\n onInvalidate,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const formId = useId();\r\n\r\n\r\n const handleSubmit = () => formSubmit[formId]()\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(InvalidateDemandPopup);","import React, {useMemo, useState} from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation, DemandValidationKeys} from 'constants/DemandValidation';\r\nimport EvaliationFinishService from \"services/EvaluationFinishService\";\r\nimport {connect} from \"react-redux\";\r\nimport Button from \"components/Button\";\r\nimport Tr from 'translations/Translations'\r\nimport Typography from \"components/Typography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport LoadingScreen from \"components/complex/loadingScreen/LoadingScreen\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport Icon from '@material-ui/icons/CheckBox'\r\nimport IconOff from '@material-ui/icons/HighlightOff';\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport RfxRoundService from \"services/RfxRoundService\";\r\nimport InvalidateDemandPopup from \"components/popup/invalidate/InvalidateDemandPopup\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n button: {\r\n marginTop: theme.spacing(2)\r\n },\r\n text: {\r\n marginTop: theme.spacing(4)\r\n },\r\n icon: theme.components.icon,\r\n}))\r\n\r\nconst rp = RouterPath.myProcedure;\r\n\r\nfunction EvaluationFinish(\r\n {\r\n match,\r\n demandValidation\r\n }) {\r\n const classes = useStyle();\r\n const id = match.params.id;\r\n const curDemandValidation = DemandValidation.EVALUATION_FINISH;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const prevErrors = useMemo(() => demandValidation.filter((x) => x.section !== curDemandValidation && x.status === 'ERROR'), [demandValidation, curDemandValidation]);\r\n const [working, setWorking] = useState(false)\r\n const [openInvalidate, setOpenInvalidate] = useState(false)\r\n\r\n const goToFinish = () => {\r\n setWorking(true);\r\n EvaliationFinishService.doFinishEvaluation(id).finally(() => setWorking(false)).then((resp) => {\r\n if (resp.success)\r\n RouterPath.redirect(RouterPath.createPath(rp.steps.MP_4_ID, {id: id}))\r\n });\r\n }\r\n\r\n const goToCancel = ({comment}) => {\r\n setWorking(true);\r\n setOpenInvalidate(false)\r\n StatisticsService.getCurrentRound(id).then((resp) => {\r\n RfxRoundService.cancelRound(resp.id, comment)\r\n .then(() => {RouterPath.redirect(RouterPath.createPath(rp.steps.MP_4_ID, {id}))}).catch(() => setWorking(false))\r\n })\r\n }\r\n\r\n const hasPrevErrors = prevErrors.length > 0;\r\n const cancelVisible = section && section.cancelVisibleEnabled !== null;\r\n return (\r\n {hasPrevErrors ?\r\n \r\n :\r\n \r\n }\r\n {hasPrevErrors ?\r\n {Tr('to_finish_evaluation_done_sections')}: \"{prevErrors.map((x) => Tr(DemandValidationKeys[x.section])).join(\"\\\", \\\"\")}\"\r\n :\r\n {Tr('go_to_demand_finishing_info')}\r\n }\r\n \r\n\r\n {cancelVisible && {Tr('go_to_demand_cancel_info')}}\r\n {cancelVisible && }\r\n setOpenInvalidate(false)} open={openInvalidate} onInvalidate={goToCancel} />\r\n \r\n \r\n )\r\n}\r\n\r\nEvaluationFinish.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation\r\n}), {})(withRouter(EvaluationFinish));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport EvaluationFinish from \"./EvaluationFinish\";\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n\r\n return (expanded && )\r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Index;","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport OfferChoiceService from \"./OfferChoiceService\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\n\r\nconst ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID = 'additionalPassiveRoundsList';\r\n\r\nconst getAdditionalPassiveRoundsList = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.ADDITIONAL_ROUNDS_PASSIVE(demandId));\r\n if (resp.success)\r\n reduxStore.dispatch(setResource(ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID, resp.result));\r\n else\r\n throw new Error(resp.errors);\r\n};\r\n\r\nconst updateAdditionalPassiveRound = async (demandId, roundId, sectionsToRefresh) => {\r\n const resp = await RestRequestGET(Endpoints.ADDITIONAL_ROUNDS_PASSIVE_ROUND(demandId, roundId));\r\n if (resp.success) {\r\n const {resources} = reduxStore.getState();\r\n const list = resources[ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID].map(x => x.roundId === resp.result.roundId ? resp.result : x);\r\n reduxStore.dispatch(setResource(ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID, list));\r\n await validateSection(DemandValidation.ADDITIONAL_ROUND_PASSIVE, demandId, false);\r\n await OfferChoiceService.callSectionsValidation(demandId, sectionsToRefresh)\r\n } else\r\n throw new Error(resp.errors);\r\n};\r\n\r\nconst getAvailableContractors = async (demandId, setError) => {\r\n const res = await RestRequestGET(Endpoints.ADDITIONAL_ROUNDS_PASSIVE_AVAILABLE_CONTRACTORS(demandId));\r\n if (isResponseValid(res, setError))\r\n return res.result;\r\n};\r\n\r\n\r\nconst createAdditionalPassiveRound = async (demandId, values) => {\r\n\r\n const data = {\r\n departmentIds: Object.keys(values.contractors).filter(x => values.contractors[x] === true).map(x => x.substring(1)),\r\n endDate: values.endDate.format(),\r\n openOfferDate: values.openOfferDate.format()\r\n }\r\n\r\n const resp = await RestRequestPOST(Endpoints.ADDITIONAL_ROUNDS_PASSIVE(demandId), data);\r\n const {resources} = reduxStore.getState();\r\n if (resp.success)\r\n reduxStore.dispatch(setResource(ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID, [resp.result, ...resources[ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID]]));\r\n else\r\n throw new Error(resp.errors);\r\n}\r\n\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.ADDITIONAL_ROUNDS_PASSIVE_VALIDATE(id));\r\n}\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n};\r\n\r\nexport default {\r\n getAdditionalPassiveRoundsList,\r\n updateAdditionalPassiveRound,\r\n getAvailableContractors,\r\n createAdditionalPassiveRound,\r\n validate,\r\n clearResources,\r\n ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID\r\n}","import React from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport OfferChoiceSummaryCellAdditionalRound from \"../../offerChoice/components/additionalRound/OfferChoiceSummaryCellAdditionalRound\";\r\nimport {AdditionalRoundStatusesPending} from \"constants/AdditionalRoundStatus\";\r\nimport Tr from 'translations/Translations'\r\nimport BoldTypography from \"components/BoldTypography\";\r\n\r\n\r\nfunction AdditionalRoundPassiveStatusCell(\r\n {\r\n demandId,\r\n additionalRound,\r\n setRowWorking,\r\n rowWorking,\r\n refreshRow,\r\n serverBrowserTimeDiff,\r\n working,\r\n editable\r\n }) {\r\n\r\n\r\n return (\r\n AdditionalRoundStatusesPending.indexOf(additionalRound.status) > -1 ?\r\n \r\n :\r\n {Tr('additional_offer_collection_finished')}\r\n )\r\n}\r\n\r\nAdditionalRoundPassiveStatusCell.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n additionalRound: PropTypes.object.isRequired,\r\n setRowWorking: PropTypes.func.isRequired,\r\n refreshRow: PropTypes.func.isRequired,\r\n rowWorking: PropTypes.bool.isRequired,\r\n serverBrowserTimeDiff: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default AdditionalRoundPassiveStatusCell;\r\n\r\n","import React, {useRef, useState} from \"react\";\r\nimport {makeStyles, TableCell, TableRow, Typography} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from 'prop-types';\r\nimport moment from \"libs/moment\";\r\nimport Tr from \"translations/Translations\";\r\nimport AdditionalRoundPassiveStatusCell from \"./AdditionalRoundPassiveStatusCell\";\r\nimport AdditionalRoundPassiveService from \"services/AdditionalRoundPassiveService\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n evenRow: {\r\n backgroundColor: theme.palette.background.default\r\n },\r\n lastRow: {\r\n borderBottom: `solid 3px ${theme.palette.primary.main}`\r\n }\r\n}));\r\n\r\nfunction AdditionalRoundPassiveRow(\r\n {\r\n demandId,\r\n additionalRound,\r\n rowNumber,\r\n working,\r\n editable\r\n }) {\r\n\r\n const classes = useStyles();\r\n const even = rowNumber % 2 === 1;\r\n const serverBrowserTimeDiff = useRef(moment(additionalRound.serverTime).diff(moment(), \"s\"));\r\n const [curWorking, setCurWorking] = useState(false);\r\n\r\n const refreshRow = async (sectionsToRefresh) => {\r\n await AdditionalRoundPassiveService.updateAdditionalPassiveRound(demandId, additionalRound.roundId, sectionsToRefresh);\r\n }\r\n\r\n const getRow = (element, index, array) => {\r\n const noOffer = element.identity === -1;\r\n const first = index === 0;\r\n const last = index >= array.length - 1;\r\n\r\n const rowSpan = noOffer ? 1 : array.length;\r\n return (\r\n {first && \r\n \r\n {Tr('additional_offer_nr', {value: additionalRound.ordinalNumber})}\r\n \r\n }\r\n \r\n {element.name}\r\n \r\n {first && \r\n \r\n\r\n }\r\n )\r\n }\r\n\r\n\r\n return (<>{\r\n additionalRound.contractors.map((element, index, array) => getRow(element, index, array))\r\n }\r\n >)\r\n}\r\n\r\nAdditionalRoundPassiveRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n additionalRound: PropTypes.object.isRequired,\r\n rowNumber: PropTypes.number.isRequired,\r\n}\r\n\r\nexport default AdditionalRoundPassiveRow;\r\n\r\n","import React from \"react\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport AdditionalRoundPassiveRow from \"./AdditionalRoundPassiveRow\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n border: `solid 3px ${theme.palette.background.paper}`,\r\n \"& .MuiTableCell-root\": {\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n padding: theme.spacing()\r\n }\r\n },\r\n headRow: {\r\n \"&>.MuiTableCell-head\": {\r\n textAlign: \"center\",\r\n borderBottom: `solid 3px ${theme.palette.primary.main}`\r\n }\r\n },\r\n nameColumn: {\r\n width: 210\r\n },\r\n contractorColumn: {\r\n width: 250\r\n }\r\n\r\n}));\r\n\r\nfunction AdditionalRoundPassiveTable(\r\n {\r\n demandId,\r\n additionalPassiveRounds,\r\n working,\r\n editable\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {Tr(\"additional_offer_collection\")}\r\n {Tr(\"contractor\")}\r\n {Tr('status')}\r\n \r\n \r\n \r\n {\r\n additionalPassiveRounds.map((element, index) => ())\r\n }\r\n \r\n
)\r\n}\r\n\r\nAdditionalRoundPassiveTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n additionalPassiveRounds: PropTypes.array.isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default AdditionalRoundPassiveTable;\r\n\r\n","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport * as Yup from \"yup\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport PartsTable from \"components/PartsTable\";\r\nimport AdditionalRoundPassiveService from \"services/AdditionalRoundPassiveService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n cells: {\r\n padding: theme.spacing()\r\n },\r\n partColumn: {\r\n width: 75\r\n },\r\n dateTimePicker: {\r\n width: 350\r\n }\r\n}));\r\n\r\n\r\nconst AdditionalRoundPassiveCreatePopup = (\r\n {\r\n demandId,\r\n onCancel,\r\n onSuccess,\r\n formSubmit\r\n }) => {\r\n\r\n const classes = useStyle();\r\n\r\n const [contractors, setContractors] = useState(null);\r\n const [working, setWorking] = useState(true);\r\n const [error, setError] = useState(false);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = (values) => {\r\n setError(false);\r\n setWorking(true);\r\n AdditionalRoundPassiveService.createAdditionalPassiveRound(demandId, values).then(onSuccess).catch(() => {\r\n setError(true);\r\n setWorking(false);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n AdditionalRoundPassiveService.getAvailableContractors(demandId).then(resp => setContractors(resp\r\n .map(x => ({...x, identity: \"_\" + x.identity, }))))\r\n .finally(() => setWorking(false));\r\n }, [demandId])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n buttons.push(createButton(Tr('additional_round_create_additional_offers_begin_button'), handleSubmit, undefined, working || !contractors?.length));\r\n return buttons;\r\n }\r\n const handleEndDate = (formikProps, value) => {\r\n formikProps.setFieldValue('openOfferDate', value);\r\n }\r\n\r\n const validationSchema = () => {\r\n const shape = {\r\n contractors: VS.any().test('partSelected', Tr('choose_at_least_two_contractors'), (e) => {\r\n const selected = Object.keys(e).filter(x => e[x] === true).length;\r\n return selected > 1;\r\n }),\r\n endDate: VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past')),\r\n openOfferDate: VS.dateTimeValid()\r\n .when('endDate', (endDate, schema) => {\r\n return schema.test('EndDateLessOpenDate', Tr(\"EndDateLessOpenDate\"), (offerOpenDate) => {\r\n if (endDate && offerOpenDate) {\r\n return !offerOpenDate.isBefore(endDate);\r\n }\r\n return false;\r\n })\r\n })\r\n }\r\n return Yup.object().shape(shape)\r\n }\r\n\r\n return (\r\n )\r\n}\r\n\r\nAdditionalRoundPassiveCreatePopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AdditionalRoundPassiveCreatePopup)","import React, {useEffect, useState} from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Tr from \"translations/Translations\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport AdditionalRoundPassiveService from \"services/AdditionalRoundPassiveService\";\r\nimport AdditionalRoundPassiveTable from \"./components/AdditionalRoundPassiveTable\";\r\nimport Button from \"../../../../../../../components/Button\";\r\nimport AdditionalRoundPassiveCreatePopup from \"./components/AdditionalRoundPassiveCreatePopup\";\r\nimport {AdditionalRoundStatusesPending} from \"../../../../../../../constants/AdditionalRoundStatus\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n button: {\r\n float: 'right',\r\n marginBottom: theme.spacing()\r\n }\r\n}));\r\n\r\nfunction AdditionalRoundPassive(\r\n {\r\n match,\r\n additionalPassiveRounds,\r\n demandValidation\r\n }) {\r\n const classes = useStyles();\r\n const curDemandValidation = DemandValidation.ADDITIONAL_ROUND_PASSIVE;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n\r\n const [refresh, setRefresh] = useState(0);\r\n const [createPopupOpened, setCreatePopupOpened] = useState(false);\r\n\r\n useEffect(() => {\r\n AdditionalRoundPassiveService.getAdditionalPassiveRoundsList(demandId);\r\n return () => AdditionalRoundPassiveService.clearResources(AdditionalRoundPassiveService.ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID);\r\n }, [demandId, refresh])\r\n\r\n const refreshData = () => {\r\n setRefresh(x => x+1)\r\n }\r\n\r\n if (!additionalPassiveRounds) return ;\r\n\r\n return (\r\n \r\n\r\n {\r\n editable && \r\n }\r\n\r\n\r\n {!additionalPassiveRounds?.length ?\r\n {Tr('no_options')}\r\n :\r\n <>\r\n \r\n >}\r\n {\r\n createPopupOpened &&\r\n setCreatePopupOpened(false)}\r\n onSuccess={() => {\r\n refreshData();\r\n setCreatePopupOpened(false);\r\n }}\r\n />\r\n }\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n additionalPassiveRounds: state.resources[AdditionalRoundPassiveService.ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID],\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(AdditionalRoundPassive));\r\n\r\n","import React from 'react'\r\nimport AdditionalRoundPassive from \"./AdditionalRoundPassive\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import React, {useMemo, useState} from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation, DemandValidationKeys} from 'constants/DemandValidation';\r\nimport EvaliationFinishService from \"services/EvaluationFinishService\";\r\nimport {connect} from \"react-redux\";\r\nimport Button from \"components/Button\";\r\nimport Tr from 'translations/Translations'\r\nimport Typography from \"components/Typography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport LoadingScreen from \"components/complex/loadingScreen/LoadingScreen\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport Icon from '@material-ui/icons/CheckBox'\r\nimport IconOff from '@material-ui/icons/HighlightOff';\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n button: {\r\n marginTop: theme.spacing(2)\r\n },\r\n text: {\r\n marginTop: theme.spacing(4)\r\n },\r\n icon: theme.components.icon,\r\n}))\r\n\r\nconst rp = RouterPath.myProcedure;\r\n\r\nfunction StageFinish(\r\n {\r\n match,\r\n demandValidation\r\n }) {\r\n const classes = useStyle();\r\n const id = match.params.id;\r\n const curDemandValidation = DemandValidation.STAGE_FINISH;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const prevErrors = useMemo(() => demandValidation.filter((x) => x.section !== curDemandValidation && x.status === 'ERROR'), [demandValidation, curDemandValidation]);\r\n const [working, setWorking] = useState(false)\r\n\r\n const goToFinish = () => {\r\n setWorking(true);\r\n EvaliationFinishService.doFinishEvaluation(id).finally(() => setWorking(false)).then((resp) => {\r\n if (resp.success) {\r\n if (resp.result) {\r\n window.location.href = resp.result;\r\n } else {\r\n RouterPath.redirect(RouterPath.createPath(rp.steps.MP_4_ID, {id: id}))\r\n }\r\n }\r\n });\r\n }\r\n\r\n const hasPrevErrors = prevErrors.length > 0;\r\n return (\r\n {hasPrevErrors ?\r\n \r\n :\r\n \r\n }\r\n {hasPrevErrors ?\r\n {Tr('to_finish_stage_done_sections')}: \"{prevErrors.map((x) => Tr(DemandValidationKeys[x.section])).join(\"\\\", \\\"\")}\"\r\n :\r\n {Tr('go_to_stage_finishing_info')}\r\n }\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nStageFinish.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation\r\n}), {})(withRouter(StageFinish));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport StageFinish from \"./StageFinish\";\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n\r\n return (expanded && )\r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Index;","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation, DemandValidationKeys} from 'constants/DemandValidation';\r\nimport {connect} from \"react-redux\";\r\nimport Button from \"components/Button\";\r\nimport Tr from 'translations/Translations'\r\nimport Typography from \"components/Typography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Icon from '@material-ui/icons/CheckBox'\r\nimport IconOff from '@material-ui/icons/HighlightOff';\r\nimport OfferChoiceService from \"../../../../../../../services/OfferChoiceService\";\r\nimport {simpleConfirm} from \"../../../../../../../libs/ConfirmNotification\";\r\nimport LoadingScreen from \"../../../../../../../components/complex/loadingScreen/LoadingScreen\";\r\nimport moment from \"../../../../../../../libs/moment\";\r\nimport DateFormats from \"../../../../../../../constants/DateFormats\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n button: {\r\n width: 400\r\n },\r\n buttonRow: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 900\r\n },\r\n text: {\r\n marginTop: theme.spacing(2)\r\n },\r\n info: {\r\n marginBottom: theme.spacing(4)\r\n },\r\n icon: theme.components.icon,\r\n}))\r\n\r\nfunction PrimaryTenderChoice(\r\n {\r\n match,\r\n demandValidation\r\n }) {\r\n const classes = useStyle();\r\n const id = match.params.id;\r\n const curDemandValidation = DemandValidation.PRIMARY_TENDER_CHOICE;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const prevErrors = useMemo(() => demandValidation.filter((x) => x.section !== curDemandValidation && x.status === 'ERROR'), [demandValidation, curDemandValidation]);\r\n const [working, setWorking] = useState(false)\r\n const [negotiationButton, setNegotiationButton] = useState(false);\r\n const [foundExtremelyLowOfferStatus, setFoundExtremelyLowOfferStatus] = useState(false);\r\n\r\n useEffect(() => {\r\n if (section.choicePending) {\r\n OfferChoiceService.checkForPrimaryTenderChoiceOptions(id).then(resp => {\r\n setNegotiationButton(resp.result.showNegotiationPathButton);\r\n setFoundExtremelyLowOfferStatus(resp.result.extremelyLowOfferStatusFound);\r\n });\r\n }\r\n }, [id, section]);\r\n\r\n const makeNegotiations = () => {\r\n setWorking(true);\r\n OfferChoiceService.postPrimaryTenderDoNegotiations(id).catch(() => setWorking(false));\r\n }\r\n\r\n const skipNegotiations = () => {\r\n setWorking(true);\r\n OfferChoiceService.postPrimaryTenderDoOfferChoice(id).catch(() => setWorking(false));\r\n }\r\n\r\n const hasPrevErrors = prevErrors.length > 0;\r\n return (section.choicePending ? \r\n {\r\n hasPrevErrors ?\r\n \r\n :\r\n \r\n }\r\n {hasPrevErrors ?\r\n {Tr('to_primary_tender_choice_done_sections')}:\r\n \"{prevErrors.map((x) => Tr(DemandValidationKeys[x.section])).join(\"\\\", \\\"\")}\"\r\n :\r\n {!!negotiationButton ? Tr('primary_tender_variant_make_choice') : Tr('primary_tender_variant_no_contractors')}\r\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 {Tr('primary_tender_variant_choice_made')}: {!!section.negotiationsCreated ? Tr('primary_tender_variant_make_negociation') : Tr('primary_tender_variant_skip_negociation')}\r\n\r\n {!!section.choiceDate && {Tr('primary_tender_variant_choice_made_date')}: {moment(section.choiceDate).format(DateFormats.DATETIME_FORMAT)}}\r\n \r\n )\r\n}\r\n\r\nPrimaryTenderChoice.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation\r\n}), {})(withRouter(PrimaryTenderChoice));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport PrimaryTenderChoice from \"./PrimaryTenderChoice\";\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n\r\n return (expanded && )\r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Index;","import {RestRequestDELETE, RestRequestGET, RestRequestPOST} from \"../libs/RestRequest\";\r\nimport Endpoints from \"../constants/Endpoints\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport reduxStore from 'redux/store'\r\nimport {setSaveStatusError} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\nimport validateSection from \"./helpers/validateSection\";\r\n\r\nconst getDemandAdditionalInfoWrapper = async (id) => {\r\n try {\r\n return RestRequestGET(Endpoints.DEMAND_ADDITIONAL_INFO(id));\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst saveDemandAdditionalInfo = async (id, data, sectionId) => {\r\n try {\r\n const resp = RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_INFO(id), data);\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e))))\r\n await validateSection(sectionId, id, true);\r\n } catch (error) {\r\n console.error(error);\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\nconst validate = async (id, section) => {\r\n return RestRequestGET(Endpoints.DEMAND_ADDITIONAL_INFO_VALIDATE(id), {params: {section: section}})\r\n}\r\n\r\nconst checkForDraft = async (id) => {\r\n return await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_INFO_AUTOSAVE_CHECK(id));\r\n}\r\n\r\nconst loadDraft = async (id) => {\r\n return await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_INFO_AUTOSAVE(id));\r\n}\r\n\r\nconst saveDraft = async (id, formValues) => {\r\n await RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_INFO_AUTOSAVE(id), formValues);\r\n}\r\n\r\nconst deleteDraft = async (id) => {\r\n await RestRequestDELETE(Endpoints.DEMAND_ADDITIONAL_INFO_AUTOSAVE(id));\r\n}\r\n\r\nexport default {\r\n getDemandAdditionalInfoWrapper,\r\n saveDemandAdditionalInfo,\r\n validate,\r\n checkForDraft,\r\n loadDraft,\r\n saveDraft,\r\n deleteDraft\r\n}","import {createContext} from \"react\";\r\nexport default createContext();","import React, {useContext} from \"react\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\nimport YesNo from \"components/YesNo\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\n\r\nfunction NoticeYesNoInput\r\n({\r\n id,\r\n label,\r\n formikProps,\r\n required,\r\n disabled\r\n }) {\r\n const {formTr, formTip} = useContext(FormTranslationContext)\r\n const tip = formTip(label ? label : id);\r\n\r\n\r\n const input = \r\n\r\n if (tip)\r\n return \r\n {input}\r\n \r\n return input;\r\n\r\n\r\n}\r\n\r\nexport default NoticeYesNoInput;","import React, {useContext} from \"react\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\nimport TextInput from \"components/TextInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport INPUT_TYPE from \"../../../../../constants/INPUT_TYPE\";\r\n\r\nfunction NoticeIntegerInput\r\n({\r\n id,\r\n label,\r\n formikProps,\r\n disabled,\r\n required\r\n }) {\r\n const {formTr, formTip} = useContext(FormTranslationContext)\r\n const tip = formTip(label ? label : id);\r\n\r\n\r\n const input = \r\n\r\n if (tip)\r\n return \r\n {input}\r\n \r\n return input;\r\n\r\n\r\n}\r\n\r\nexport default NoticeIntegerInput;","import React, {useEffect, useMemo, useState} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport {TreeItem, TreeView} from \"@material-ui/lab\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport TextField from \"@material-ui/core/TextField/TextField\";\r\nimport Chip from \"@material-ui/core/Chip\";\r\nimport useDebouncedEffect from \"hooks/useDebouncedEffect\";\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"./Dialog\";\r\nimport SingleButton from \"./popup/components/SingleButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n position: \"relative\",\r\n marginBottom: 10\r\n },\r\n dialogPaper: {\r\n padding: theme.spacing(2),\r\n minWidth: theme.breakpoints.values.sm\r\n },\r\n search: {\r\n width: '90%'\r\n },\r\n textField: {\r\n '&>.MuiInputBase-root': {\r\n flexWrap: \"nowrap\",\r\n justifyContent: \"space-between\",\r\n cursor: \"pointer\"\r\n },\r\n '& .MuiChip-root': {\r\n margin: 3,\r\n maxWidth: '100%'\r\n },\r\n '& .MuiInputBase-input': {\r\n padding: 4,\r\n width: 0,\r\n maxWidth: 30,\r\n opacity: 1,\r\n flexGrow: 1,\r\n textOverflow: 'ellipsis',\r\n visibility: \"hidden\"\r\n }\r\n },\r\n selected: {\r\n background: `${theme.palette.primary.main} !important`,\r\n color: `${theme.palette.secondary.contrastText} !important`\r\n\r\n },\r\n max100: {\r\n maxWidth: \"100%\"\r\n }\r\n}));\r\n\r\nfunction SelectTreeView(\r\n {\r\n formikProps,\r\n id,\r\n label,\r\n items,\r\n multiple = false,\r\n noError,\r\n className,\r\n required,\r\n disabled,\r\n onChange = () => {\r\n },\r\n unmountOnExit,\r\n skipCheckTouched,\r\n useObjectInsteadOfValues,\r\n prefixLabelsWithKeys = false\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [expanded, setExpanded] = React.useState([]);\r\n const [searchText, setSearchText] = React.useState(\"\");\r\n const [itemsFiltered, setItemsFiltered] = useState(items);\r\n\r\n const keyToData = useMemo(() => {\r\n const map = new Map();\r\n const doItem = (item) => {\r\n const hasChildren = Array.isArray(item.items) && item.items.length > 0;\r\n map.set(item.value, {label: prefixLabelsWithKeys ? item.value + \" - \" + item.label : item.label, last: !hasChildren, value: item})\r\n if (hasChildren) {\r\n item.items.forEach(doItem)\r\n }\r\n }\r\n\r\n items.forEach(doItem)\r\n\r\n return map;\r\n }, [items, prefixLabelsWithKeys])\r\n\r\n useEffect(()=> {\r\n setSearchText(\"\")\r\n setItemsFiltered(items);\r\n }, [items])\r\n\r\n\r\n const errorValue = getObjectValue(id, formikProps.errors, '')\r\n const touched = getObjectValue(id, formikProps.touched, !!skipCheckTouched)\r\n const _value = getObjectValue(id, formikProps.values, null)\r\n const selected = _value !== null ? multiple ? _value : [_value] : []\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const isError = !noError && (!!errorValue && !!touched)\r\n\r\n let _label = label;\r\n if (required) _label += '*';\r\n\r\n const getLabel = (node) => {\r\n return prefixLabelsWithKeys ? node.value + ' - ' + node.label : node.label\r\n }\r\n\r\n const renderTree = (nodes, i) => {\r\n return (!unmountOnExit || open) && nodes.map(node => {\r\n if (Array.isArray(node.items) && node.items.length > 0) {\r\n return (\r\n {Array.isArray(node.items) && node.items.length > 0 ? renderTree(node.items, i + 1) : null}\r\n )\r\n } else {\r\n const chosen = isSelected(node.value);\r\n const icon = multiple ? chosen ? : : undefined;\r\n\r\n return (\r\n \r\n )\r\n }\r\n })\r\n }\r\n\r\n const handleToggle = (event, nodeIds) => {\r\n setExpanded(nodeIds);\r\n };\r\n\r\n const isSelected = (nodeValue) => {\r\n if(useObjectInsteadOfValues) {\r\n return selected.find(e => e.value === nodeValue) !== undefined;\r\n } else {\r\n return selected.indexOf(nodeValue) !== -1\r\n }\r\n }\r\n\r\n const handleSelect = (event, nodeId) => {\r\n const elemObject = keyToData.get(nodeId);\r\n if (elemObject.last) {\r\n if (multiple) {\r\n let newSelected;\r\n if (!isSelected(nodeId)) {\r\n const elem = useObjectInsteadOfValues ? elemObject.value : nodeId;\r\n newSelected = [...selected, elem];\r\n } else {\r\n newSelected = selected.filter(x => useObjectInsteadOfValues ? x.value !== nodeId : x !== nodeId)\r\n }\r\n formikProps.setFieldValue(id, newSelected);\r\n onChange(newSelected)\r\n } else {\r\n formikProps.setFieldValue(id, nodeId);\r\n setOpen(false)\r\n onChange(nodeId)\r\n }\r\n }\r\n };\r\n\r\n const handleDelete = (nodeId) => {\r\n if (multiple) {\r\n const newSelected = selected.filter(x => useObjectInsteadOfValues ? x.value !== nodeId.value : x !== nodeId);\r\n formikProps.setFieldValue(id, newSelected);\r\n onChange(newSelected)\r\n } else {\r\n formikProps.setFieldValue(id, null);\r\n onChange(null)\r\n }\r\n }\r\n\r\n const [open, setOpen] = useState(false);\r\n const handleClick = (event) => {\r\n if(editable && !disabled)\r\n setOpen(true);\r\n };\r\n\r\n useDebouncedEffect(() => {\r\n\r\n\r\n if (searchText === \"\") {\r\n if (items !== itemsFiltered) {\r\n setItemsFiltered(items);\r\n setExpanded([])\r\n }\r\n } else {\r\n\r\n const fExp = []\r\n const filter = (text, nodes, parentVisible) => {\r\n const arr = [];\r\n for (const node of nodes) {\r\n let includes = parentVisible || getLabel(node).search(new RegExp(text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"i\")) > -1;\r\n const hasChildren = Array.isArray(node.items) && node.items.length > 0;\r\n\r\n let childrenFiltered;\r\n if (hasChildren) {\r\n childrenFiltered = filter(text, node.items, includes);\r\n if (childrenFiltered.length > 0)\r\n includes = true;\r\n }\r\n\r\n if (includes) {\r\n arr.push({label: node.label, value: node.value, items: childrenFiltered})\r\n if (hasChildren) {\r\n fExp.push(node.value);\r\n }\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n const itemsF = filter(searchText, items, false);\r\n setItemsFiltered(itemsF);\r\n setExpanded(fExp);\r\n }\r\n\r\n\r\n }, {timeout: 800, ignoreInitialCall: true}, [searchText])\r\n\r\n const onClosePopup = ()=> setOpen(false);\r\n\r\n return (\r\n \r\n {selected.map(x => (\r\n handleDelete(x)} label={useObjectInsteadOfValues ? x.label : keyToData.get(x)?.label}/>))}\r\n
\r\n ),\r\n endAdornment: \r\n }}\r\n disabled={!editable || disabled}\r\n />\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nSelectTreeView.propTypes = {\r\n className: PropTypes.string,\r\n formikProps: PropTypes.object,\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n items: PropTypes.arrayOf(\r\n PropTypes.oneOfType([\r\n PropTypes.shape({\r\n value: PropTypes.any.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }),\r\n PropTypes.string.isRequired,\r\n ])\r\n )\r\n}\r\n\r\nSelectTreeView.defaultProps = {\r\n items: []\r\n}\r\n\r\nexport default SelectTreeView\r\n","import React, {useContext} from \"react\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\nimport SelectTreeView from \"components/SelectTreeView\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\n\r\nfunction NoticeGlossaryInput\r\n({\r\n id,\r\n label,\r\n formikProps,\r\n items,\r\n multiple,\r\n required,\r\n unmountOnExit,\r\n onChange,\r\n useObjectInsteadOfValues,\r\n prefixLabelsWithKeys,\r\n disabled,\r\n className\r\n }) {\r\n const {formTr, formTip} = useContext(FormTranslationContext)\r\n const tip = formTip(label ? label : id);\r\n\r\n\r\n const input = \r\n\r\n if (tip)\r\n return }>\r\n {input}\r\n \r\n return input;\r\n\r\n\r\n}\r\n\r\nexport default NoticeGlossaryInput;","import React, {useContext} from \"react\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\nimport TextInput from \"components/TextInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport INPUT_TYPE from \"../../../../../constants/INPUT_TYPE\";\r\n\r\nfunction NoticeNumericInput\r\n({\r\n id,\r\n label,\r\n formikProps,\r\n disabled,\r\n required\r\n }) {\r\n const {formTr, formTip} = useContext(FormTranslationContext)\r\n const tip = formTip(label ? label : id);\r\n\r\n\r\n const input = \r\n\r\n if (tip)\r\n return \r\n {input}\r\n \r\n return input;\r\n\r\n\r\n}\r\n\r\nexport default NoticeNumericInput;","import React, {useEffect, useState} from \"react\";\r\nimport Form from 'components/Form';\r\nimport {withRouter} from \"react-router\";\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport DemandAdditionalInfoService from \"services/DemandAdditionalInfoService\";\r\nimport Loading from \"components/Loading\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeYesNoInput from \"components/complex/nationalNotice/components/inputs/NoticeYesNoInput\";\r\nimport {connect} from \"react-redux\";\r\nimport {setFormDraftLoaded, setOpenForm, setOpenImporter} from \"redux/actions\";\r\nimport NoticeIntegerInput from \"components/complex/nationalNotice/components/inputs/NoticeIntegerInput\";\r\nimport {Accordion, AccordionDetails, AccordionSummary, Collapse, makeStyles} from \"@material-ui/core\";\r\nimport NoticeGlossaryInput from \"components/complex/nationalNotice/components/inputs/NoticeGlossaryInput\";\r\nimport NoticeNumericInput from \"components/complex/nationalNotice/components/inputs/NoticeNumericInput\";\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport Typography from \"components/Typography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n italic: {\r\n fontStyle: 'italic'\r\n },\r\n exceptionChip: {\r\n \"& .MuiChip-label\": {\r\n maxWidth: \"100%\"\r\n }\r\n },\r\n}))\r\n\r\nfunction getKey(id) {\r\n const split = id.split(\".\").filter(x => !/^\\d+$/.test(x));\r\n split.unshift(\"common.form.demandadditionalinfo\");\r\n return split.join(\".\");\r\n}\r\n\r\nfunction PreparingAdditionalInfo(\r\n {\r\n match,\r\n sectionId,\r\n formId,\r\n demandValidation,\r\n stepperState,\r\n demandHeader,\r\n setFormDraftLoaded\r\n }) {\r\n const classes = useStyle();\r\n const section = demandValidation.find(x => x.section === sectionId);\r\n const editable = section ? section.editable : false;\r\n const id = match.params.id;\r\n const [initData, setInitData] = useState(null);\r\n const [dictionaries, setDictionaries] = useState(null);\r\n const [translations, setTranslations] = useState(null);\r\n const [draftConfirm, setDraftConfirm] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active;\r\n useStepperStateCloseValidator(formId, undefined,\r\n autoSaveFormDraftActive ? () => DemandAdditionalInfoService.deleteDraft(id) : undefined,\r\n autoSaveFormDraftActive ? () => saveFormDraft(id, DemandAdditionalInfoService.saveDraft, formId) : undefined);\r\n\r\n const formTr = (id) => {\r\n const key = getKey(id);\r\n return translations.labels[key] || key;\r\n }\r\n const formTip = (id) => {\r\n const key = getKey(id);\r\n return translations.tips[key];\r\n }\r\n\r\n const getDict = (id) => {\r\n return dictionaries[id].items;\r\n }\r\n\r\n\r\n useEffect(() => {\r\n DemandAdditionalInfoService.getDemandAdditionalInfoWrapper(id).then(values => {\r\n setInitData(values.form);\r\n setDictionaries(values.dictionaries);\r\n setTranslations(values.translations);\r\n if (autoSaveFormDraftActive)\r\n DemandAdditionalInfoService.checkForDraft(id).then(res => setDraftConfirm(res.result));\r\n })\r\n }, [id, autoSaveFormDraftActive])\r\n\r\n const handleSubmit = (values, formikProps) => {\r\n DemandAdditionalInfoService.saveDemandAdditionalInfo(id, values, sectionId)\r\n\r\n }\r\n\r\n const loadAdditionalInfoDraft = () => {\r\n setDraftConfirm(false);\r\n setWorking(true);\r\n DemandAdditionalInfoService.loadDraft(id).then(res => {\r\n setInitData(res.result);\r\n setFormDraftLoaded(formId, res.success);\r\n });\r\n setWorking(false);\r\n }\r\n\r\n if (!initData || !dictionaries || !translations || working) return ()\r\n\r\n return (\r\n <>\r\n \r\n setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n >\r\n )\r\n}\r\n\r\nPreparingAdditionalInfo.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n stepperState: state.stepper.state,\r\n demandHeader: state.resources.demandHeader\r\n}), {\r\n setOpenForm, setOpenImporter, setFormDraftLoaded\r\n})(withRouter(PreparingAdditionalInfo));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {DemandValidation, DemandValidationKeys} from \"constants/DemandValidation\";\r\nimport PreparingAdditionalInfo from \"../../../part1/panels/additionalInfo/PreparingAdditionalInfo\";\r\n\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded &&\r\n \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import {\r\n AdditionalRoundPassive,\r\n AgreementsPanel,\r\n ContractorVerification,\r\n DemandAdditionalInfo,\r\n DocumentsPanel,\r\n EvaluationFinish,\r\n OfferChoice,\r\n OffersChoiceResult,\r\n OffersEvaluation,\r\n OffersPanel,\r\n PapersGenerator,\r\n PrimaryTenderChoice,\r\n StageFinish\r\n} from \"./panels\";\r\nimport ContractorVerificationService from \"services/ContractorVerificationService\";\r\nimport OfferEvaluationService from \"services/OfferEvaluationService\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport OffersChoiceResultService from \"services/OffersChoiceResultService\";\r\nimport AgreementsService from \"services/AgreementsService\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport AdditionalRoundPassiveService from \"services/AdditionalRoundPassiveService\";\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport DemandAdditionalInfoService from \"services/DemandAdditionalInfoService\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\n\r\nexport default {\r\n mp_3_offers: OffersPanel,\r\n mp_3_documents: DocumentsPanel,\r\n mp_3_contractor_verification: ContractorVerification,\r\n mp_3_offers_evaluation: OffersEvaluation,\r\n mp_3_offer_choice: OfferChoice,\r\n mp_3_additional_round_passive: AdditionalRoundPassive,\r\n mp_3_primary_tender_choice: PrimaryTenderChoice,\r\n mp_3_offers_choice_result: OffersChoiceResult,\r\n mp_3_evaluation_finish: EvaluationFinish,\r\n mp_3_stage_finish: StageFinish,\r\n mp_3_papers_generator: PapersGenerator,\r\n mp_3_agreements: AgreementsPanel,\r\n mp_3_evaluation_additional_info: DemandAdditionalInfo,\r\n}\r\n\r\nexport const panelsValidationKeys = {\r\n mp_3_offers: (id) => DemandOffersService.validate(id),\r\n mp_3_documents: (id) => SiwzService.validateDocuments(id),\r\n mp_3_contractor_verification: (id) => ContractorVerificationService.validate(id),\r\n mp_3_offers_evaluation: (id) => OfferEvaluationService.validate(id),\r\n mp_3_offer_choice: (id) => OfferChoiceService.validate(id),\r\n mp_3_additional_round_passive: (id) => AdditionalRoundPassiveService.validate(id),\r\n mp_3_primary_tender_choice: (id) => null,\r\n mp_3_offers_choice_result: (id) => OffersChoiceResultService.validate(id),\r\n mp_3_evaluation_finish: (id) => null,\r\n mp_3_stage_finish: (id) => null,\r\n mp_3_papers_generator: (id) => null,\r\n mp_3_agreements: (id) => AgreementsService.validate(id),\r\n mp_3_evaluation_additional_info: (id) => DemandAdditionalInfoService.validate(id, DemandValidation.EVALUATION_ADDITIONAL_INFO),\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport {clearResource, setResource, setSaveStatusError} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport downloadFileWithPreloadUrl from \"../libs/downloadFileWithPreloadUrl\";\r\nimport Tr from \"../translations/Translations\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\n\r\nconst RESULT_NOTICE_RESOURCE_ID = 'resultNotice';\r\n\r\nconst getResultNotice = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.RESULT_NOTICE(demandId));\r\n reduxStore.dispatch(setResource(RESULT_NOTICE_RESOURCE_ID, resp));\r\n await validateSection(DemandValidation.RESULT_NOTICE, demandId,false);\r\n};\r\n\r\nconst addResultNoticeAttachments = async (demandId, files) => {\r\n const resp = await RestRequestPOST(Endpoints.RESULT_NOTICE(demandId), {list: files});\r\n reduxStore.dispatch(setResource(RESULT_NOTICE_RESOURCE_ID, resp))\r\n await validateSection(DemandValidation.RESULT_NOTICE, demandId,false);\r\n};\r\n\r\nconst publishOjsResultNotice = async (demandId) => {\r\n return await RestRequestPOST(Endpoints.RESULT_NOTICE_PUBLISH_OJS_NOTICE(demandId));\r\n};\r\n\r\nconst checkOjsResultNotice = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.RESULT_NOTICE_CHECK_OJS_NOTICE(demandId));\r\n reduxStore.dispatch(\r\n setResource('resultOjsPublicationStatus', res)\r\n )\r\n return res;\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst rollbackOjsResultNotice = async (demandId) => {\r\n return await RestRequestPOST(Endpoints.RESULT_NOTICE_ROLLBACK_OJS_NOTICE(demandId));\r\n};\r\n\r\nconst getDownloadFile = async (demandId, resultNoticeId, resultFileId, openInBrowser) => {\r\n await downloadFileWithPreloadUrl(\r\n Endpoints.RESULT_NOTICE_DOWNLOAD_FILE_URL(demandId, resultNoticeId, resultFileId, openInBrowser),\r\n openInBrowser);\r\n}\r\n\r\nconst deleteResultNotice = async (demandId, resultNoticeId, resultNoticeAttachmentId) => {\r\n const resp = await RestRequestDELETE(Endpoints.RESULT_NOTICE_DELETE(demandId, resultNoticeId, resultNoticeAttachmentId))\r\n const {resources} = reduxStore.getState();\r\n const res = {\r\n ...resources[RESULT_NOTICE_RESOURCE_ID],\r\n attachments: resources[RESULT_NOTICE_RESOURCE_ID].attachments.filter(x => x.identity !== resp.result)\r\n };\r\n reduxStore.dispatch(setResource(RESULT_NOTICE_RESOURCE_ID, res))\r\n await validateSection(DemandValidation.RESULT_NOTICE, demandId,false);\r\n}\r\n\r\nconst publishResultNoticeAttachment = async (demandId, resultNoticeId, resultNoticeAttachmentId) => {\r\n const resp = await RestRequestPUT(Endpoints.RESULT_NOTICE_ATTACHMENT_PUBLISH(demandId, resultNoticeId, resultNoticeAttachmentId));\r\n checkAndUpdateAttachment(resp);\r\n await validateSection(DemandValidation.RESULT_NOTICE, demandId,false);\r\n};\r\n\r\nconst unpublishResultNoticeAttachment = async (demandId, resultNoticeId, resultNoticeAttachmentId) => {\r\n const resp = await RestRequestPUT(Endpoints.RESULT_NOTICE_ATTACHMENT_UNPUBLISH(demandId, resultNoticeId, resultNoticeAttachmentId));\r\n checkAndUpdateAttachment(resp);\r\n await validateSection(DemandValidation.RESULT_NOTICE, demandId,false);\r\n};\r\n\r\nconst publishResultNotice = async (demandId) => {\r\n const resp = await RestRequestPUT(Endpoints.RESULT_NOTICE_PUBLISH(demandId));\r\n reduxStore.dispatch(setResource(RESULT_NOTICE_RESOURCE_ID, resp.result));\r\n return resp;\r\n};\r\n\r\nconst unpublishResultNotice = async (demandId) => {\r\n const resp = await RestRequestPUT(Endpoints.RESULT_NOTICE_UNPUBLISH(demandId));\r\n reduxStore.dispatch(setResource(RESULT_NOTICE_RESOURCE_ID, resp.result));\r\n return resp;\r\n};\r\n\r\nconst updateDescription = async (demandId, {resultNoticeId, resultNoticeAttachmentId}, description) => {\r\n const resp = await RestRequestPUT(Endpoints.RESULT_NOTICE_DESCRIPTION(demandId, resultNoticeId, resultNoticeAttachmentId), {description});\r\n checkAndUpdateAttachment(resp);\r\n};\r\n\r\nconst checkAndUpdateAttachment = (resp) => {\r\n try {\r\n if (resp?.success) {\r\n const {resources} = reduxStore.getState();\r\n const res = {\r\n ...resources[RESULT_NOTICE_RESOURCE_ID],\r\n attachments: resources[RESULT_NOTICE_RESOURCE_ID].attachments.map(x => x.identity === resp.result.identity ? resp.result : x)\r\n };\r\n reduxStore.dispatch(setResource(RESULT_NOTICE_RESOURCE_ID, res))\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\nconst getDownloadHistory = async (demandId, {resultNoticeId, resultNoticeAttachmentId}, pagination) => {\r\n\r\n const params = {\r\n ...pagination\r\n }\r\n\r\n const url = Endpoints.RESULT_NOTICE_DOWNLOAD_FILE_HISTORY(demandId, resultNoticeId, resultNoticeAttachmentId, params);\r\n const siwzDownloadHistory = await RestRequestGET(url, {params});\r\n return siwzDownloadHistory;\r\n}\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.RESULT_NOTICE_VALIDATE(id));\r\n}\r\n\r\nconst clearResultNoticeResources = () => {\r\n reduxStore.dispatch(clearResource(RESULT_NOTICE_RESOURCE_ID));\r\n};\r\n\r\nconst addBzpNotice = async (demandId, bzpNoticeId) => {\r\n const url = Endpoints.RESULT_NOTICE_BZP(demandId)\r\n\r\n const data = {\r\n bzpNoticeId\r\n }\r\n\r\n return await RestRequestPOST(url, data);\r\n}\r\n\r\nconst buildIdentity = (resultNoticeId, resultNoticeAttachmentId) => ({resultNoticeId, resultNoticeAttachmentId});\r\n\r\nexport default {\r\n getResultNotice,\r\n publishOjsResultNotice,\r\n checkOjsResultNotice,\r\n rollbackOjsResultNotice,\r\n addResultNoticeAttachments,\r\n getDownloadFile,\r\n deleteResultNotice,\r\n publishResultNotice,\r\n unpublishResultNotice,\r\n unpublishResultNoticeAttachment,\r\n publishResultNoticeAttachment,\r\n getDownloadHistory,\r\n updateDescription,\r\n validate,\r\n clearResultNoticeResources,\r\n addBzpNotice,\r\n buildIdentity,\r\n RESULT_NOTICE_RESOURCE_ID\r\n}","import React, {useReducer} from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport ResultNoticeService from \"services/ResultNoticeService\";\r\nimport {makeStyles, TableCell, TableRow} from \"@material-ui/core\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport moment from \"libs/moment\";\r\nimport WorkableIconDownloadButton from \"components/button/WorkableIconDownloadButton\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport WorkableIconDownloadCountButton from \"components/button/WorkableIconDownloadCountButton\";\r\nimport WorkableIconUnpublishButton from \"components/button/WorkableIconUnpublishButton\";\r\nimport WorkableIconPublishButton from \"components/button/WorkableIconPublishButton\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport {createDownloadHistoryFile} from \"components/popup/DownloadHistoryPopup\";\r\nimport Tr from \"translations/Translations\";\r\nimport {createEditDescriptionFile} from \"components/popup/EditDescriptionPopup\";\r\nimport WorkableIconSearchButton from \"components/button/WorkableIconSearchButton\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n buttonColumn: theme.components.table.buttonColumn,\r\n descriptionTooltip: {\r\n whiteSpace: 'pre-line'\r\n }\r\n}))\r\n\r\nfunction AttachmentResultNoticeRow(\r\n {\r\n demandId,\r\n editable,\r\n resultNotice,\r\n attachment,\r\n onEditDescriptionFile,\r\n onDownloadHistory\r\n }) {\r\n const classes = useStyles();\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n preview: false,\r\n download: false,\r\n publish: false,\r\n downloadCount: false,\r\n delete: false\r\n });\r\n\r\n const onDownloadCount = () => {\r\n onDownloadHistory(createDownloadHistoryFile(attachment.name, demandId, ResultNoticeService.buildIdentity(resultNotice.identity, attachment.identity)))\r\n };\r\n\r\n\r\n const downloadFile = (file, openInBrowser) => {\r\n dispatchIconWorks({type: openInBrowser ? 'preview' : 'download', works: true})\r\n ResultNoticeService.getDownloadFile(demandId, resultNotice.identity, file.identity, openInBrowser)\r\n .finally(() => dispatchIconWorks({type: openInBrowser ? 'preview' : 'download', works: false}));\r\n };\r\n\r\n const deleteResultNotice = (file) => {\r\n dispatchIconWorks({type: 'delete', works: true})\r\n ResultNoticeService.deleteResultNotice(demandId, resultNotice.identity, file.identity).finally(() => dispatchIconWorks({type: 'delete', works: false}));\r\n };\r\n\r\n const noticePublication = (file, publish) => {\r\n dispatchIconWorks({type: 'publish', works: true})\r\n const func = publish ? ResultNoticeService.publishResultNoticeAttachment : ResultNoticeService.unpublishResultNoticeAttachment;\r\n func(demandId, resultNotice.identity, file.identity).finally(() => dispatchIconWorks({type: 'publish', works: false}));\r\n };\r\n\r\n return (\r\n \r\n {attachment.name}\r\n \r\n onEditDescriptionFile(createEditDescriptionFile(demandId, ResultNoticeService.buildIdentity(resultNotice.identity, attachment.identity),\r\n attachment.name, attachment.description, !editable, false))}\r\n tooltip={attachment.description ? {attachment.description}
: {Tr('no_description')}}\r\n disabled={iconWorks.anyWorks}\r\n />\r\n \r\n {moment(attachment.createDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}\r\n {attachment.publishDate && moment(attachment.publishDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}\r\n \r\n downloadFile(attachment, true)}\r\n />\r\n \r\n \r\n downloadFile(attachment, false)}/>\r\n \r\n \r\n {\r\n attachment.published ?\r\n noticePublication(attachment, false)}\r\n /> :\r\n noticePublication(attachment, true)}\r\n />\r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n deleteResultNotice(attachment)}\r\n />\r\n \r\n \r\n\r\n )\r\n}\r\n\r\nAttachmentResultNoticeRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n resultNotice: PropTypes.object.isRequired,\r\n onEditDescriptionFile: PropTypes.func.isRequired,\r\n onDownloadHistory: PropTypes.func.isRequired\r\n}\r\n\r\n\r\nexport default AttachmentResultNoticeRow;","import React, {useState} from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport ResultNoticeService from \"services/ResultNoticeService\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableContainer, TableHead, TableRow} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport Tr from \"translations/Translations\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport AttachmentResultNoticeRow from \"./AttachmentResultNoticeRow\";\r\nimport EditDescriptionPopup from \"components/popup/EditDescriptionPopup\";\r\nimport DownloadHistoryPopup from \"components/popup/DownloadHistoryPopup\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n tableLayout: 'fixed',\r\n '& td, th': {\r\n overflow: 'hidden',\r\n }\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateColumn: theme.components.table.dateTimeColumn\r\n}))\r\n\r\nfunction AttachmentResultNotice(\r\n {\r\n demandId,\r\n editable,\r\n resultNotice\r\n }) {\r\n const classes = useStyles();\r\n const [addWorking, setAddWorking] = useState(false);\r\n const [editDescriptionFile, setEditDescriptionFile] = useState(null);\r\n const [downloadHistory, setDownloadHistory] = useState(null);\r\n\r\n const handleSendFiles = (files) => {\r\n if (files.length) {\r\n setAddWorking(true);\r\n ResultNoticeService.addResultNoticeAttachments(demandId, files).finally(() => setAddWorking(false));\r\n }\r\n }\r\n\r\n\r\n return (<>\r\n \r\n \r\n \r\n \r\n {Tr(\"name\")}\r\n {Tr(\"description\")}\r\n {Tr(\"add_data\")}\r\n {Tr(\"publish_data\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!resultNotice.attachments && resultNotice.attachments.map(attachment => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n \r\n {editable &&\r\n \r\n }\r\n {!!editDescriptionFile &&\r\n setEditDescriptionFile(null)} onClose={() => setEditDescriptionFile(null)}/>\r\n }\r\n {downloadHistory &&\r\n setDownloadHistory(null)}/>\r\n }\r\n >\r\n )\r\n}\r\n\r\nAttachmentResultNotice.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n resultNotice: PropTypes.object.isRequired\r\n}\r\n\r\n\r\nexport default AttachmentResultNotice;","export const PublishConst = {\r\n\tNOT_SENT: \"NOT_SENT\",\r\n\tSENT: \"SENT\",\r\n\tPUBLISHED: \"PUBLISHED\",\r\n\tCONFIRMED: \"CONFIRMED\",\r\n\tERROR: \"ERROR\",\r\n\tUNAVAILABLE: \"UNAVAILABLE\",\r\n\tUE_VALIDATION_ERROR: \"UE_VALIDATION_ERROR\",\r\n\tNOT_PUBLISHED: \"NOT_PUBLISHED\",\r\n}\r\n","export const ResultNoticeType = {\r\n OJS: \"OJS\",\r\n ATTACHMENT: \"ATTACHMENT\"\r\n}\r\nexport default ResultNoticeType;","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations'\r\nimport ResultNoticeService from \"services/ResultNoticeService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport Typography from \"components/Typography\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport validateSection from \"../../../../../../../../services/helpers/validateSection\";\r\nimport {DemandValidation} from \"../../../../../../../../constants/DemandValidation\";\r\nimport {connect} from \"react-redux\";\r\nimport {PublishConst} from 'constants/PublicationConst';\r\nimport ResultNoticeType from \"../constants/ResultNoticeType\";\r\nimport clsx from \"clsx\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n text: {\r\n marginBottom: theme.spacing(1),\r\n marginTop: theme.spacing(4)\r\n },\r\n text1: {\r\n marginBottom: theme.spacing(1),\r\n marginTop: theme.spacing(1)\r\n },\r\n error: {\r\n color: theme.palette.common.error\r\n }\r\n}))\r\n\r\nfunction OjsResultNotice(\r\n {\r\n demandId,\r\n editable,\r\n ojsAdmin,\r\n resultNotice,\r\n ojsResultNoticeSend,\r\n canPublishOjsResultNotice,\r\n resultOjsPublicationStatus\r\n }) {\r\n const classes = useStyle();\r\n\r\n const [working, setWorking] = useState(false);\r\n const [error, setError] = useState(null);\r\n const hasOjsNotice = useMemo(() => resultNotice ? resultNotice.type === ResultNoticeType.OJS && resultNotice.identity > 0 && resultNotice.complete : false, [resultNotice]);\r\n const [resultNoticeStatusInterval, setResultNoticeStatusInterval] = useState();\r\n\r\n useEffect(() => {\r\n if (hasOjsNotice) {\r\n ResultNoticeService.checkOjsResultNotice(demandId).then(resp => {\r\n setWorking(false);\r\n if (resp && resp.status === PublishConst.SENT) {\r\n startResultNoticeStatusInterval();\r\n }\r\n })\r\n } else {\r\n setWorking(false);\r\n }\r\n\r\n return () => {\r\n if (resultNoticeStatusInterval) clearInterval(resultNoticeStatusInterval);\r\n }\r\n //eslint-disable-next-line\r\n }, []);\r\n\r\n const startResultNoticeStatusInterval = () => {\r\n const interval = setInterval(async () => {\r\n const resp = await ResultNoticeService.checkOjsResultNotice(demandId);\r\n if (resp.status !== PublishConst.SENT) {\r\n clearInterval(interval);\r\n //clearPublishResources();\r\n }\r\n }, 10000);\r\n setResultNoticeStatusInterval(interval);\r\n };\r\n\r\n const goToNotice = () => {\r\n window.location.href = resultNotice.url;\r\n };\r\n\r\n const publishOjsResultNotice = () => {\r\n setWorking(true)\r\n ResultNoticeService.publishOjsResultNotice(demandId).then(resp => {\r\n if (isResponseValid(resp, setError)) {\r\n startResultNoticeStatusInterval();\r\n validateSection(DemandValidation.RESULT_NOTICE, demandId, false).finally(() => setWorking(false));\r\n }\r\n })\r\n };\r\n\r\n const rollbackOjsResultNotice = () => {\r\n setWorking(true)\r\n ResultNoticeService.rollbackOjsResultNotice(demandId).then(resp => {\r\n ResultNoticeService.checkOjsResultNotice(demandId).then(resp => {\r\n setWorking(false);\r\n startResultNoticeStatusInterval();\r\n });\r\n //clearPublishResources();\r\n if (isResponseValid(resp, setError)) {\r\n validateSection(DemandValidation.RESULT_NOTICE, demandId, false).finally(() => setWorking(false));\r\n }\r\n });\r\n };\r\n\r\n const unpublishResultNotice = () => {\r\n setWorking(true);\r\n ResultNoticeService.unpublishResultNotice(demandId).then(resp => {\r\n if (isResponseValid(resp, setError)) {\r\n validateSection(DemandValidation.RESULT_NOTICE, demandId, false).finally(() => setWorking(false));\r\n }\r\n });\r\n };\r\n\r\n const publishResultNotice = () => {\r\n setWorking(true);\r\n ResultNoticeService.publishResultNotice(demandId).then(resp => {\r\n if (isResponseValid(resp, setError)) {\r\n validateSection(DemandValidation.RESULT_NOTICE, demandId, false).finally(() => setWorking(false));\r\n }\r\n });\r\n }\r\n\r\n\r\n return (\r\n {!!error && {error}}\r\n\r\n {!canPublishOjsResultNotice && !ojsResultNoticeSend && {Tr('result_notice_ojs_prepare')}}\r\n \r\n\r\n {hasOjsNotice && (resultOjsPublicationStatus && resultOjsPublicationStatus.message && resultOjsPublicationStatus.status !== PublishConst.UNAVAILABLE) &&\r\n \r\n {resultOjsPublicationStatus.message}\r\n \r\n }\r\n {hasOjsNotice && !resultOjsPublicationStatus &&\r\n \r\n \r\n }\r\n {hasOjsNotice && (!resultOjsPublicationStatus || (resultOjsPublicationStatus.status !== PublishConst.NOT_PUBLISHED && resultOjsPublicationStatus.status !== PublishConst.UE_VALIDATION_ERROR)) &&\r\n \r\n }\r\n\r\n {hasOjsNotice && resultOjsPublicationStatus && resultOjsPublicationStatus.status === PublishConst.NOT_PUBLISHED &&\r\n \r\n }\r\n\r\n {hasOjsNotice && resultOjsPublicationStatus && resultOjsPublicationStatus.status === PublishConst.UE_VALIDATION_ERROR &&\r\n \r\n }\r\n\r\n {hasOjsNotice && {Tr(resultNotice.published ? 'result_notice_published' : 'result_notice_not_published')}}\r\n\r\n {hasOjsNotice && resultNotice.published &&\r\n \r\n }\r\n\r\n {hasOjsNotice && !resultNotice.published &&\r\n \r\n }\r\n )\r\n}\r\n\r\nOjsResultNotice.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n resultNotice: PropTypes.shape({\r\n url: PropTypes.string.isRequired\r\n }).isRequired,\r\n canPublishOjsResultNotice: PropTypes.bool.isRequired,\r\n ojsResultNoticeSend: PropTypes.bool.isRequired,\r\n\r\n}\r\n\r\nexport default connect((state) => ({\r\n resultOjsPublicationStatus: state.resources.resultOjsPublicationStatus\r\n}), {})(OjsResultNotice);","import React, {useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Loading from \"components/Loading\";\r\nimport Button from \"components/Button\";\r\nimport PropTypes from \"prop-types\";\r\nimport ResultNoticeService from \"services/ResultNoticeService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n loading: {\r\n width: '98%'\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n }\r\n}));\r\n\r\nfunction AddBzpResultNoticePopup(\r\n {\r\n demandId,\r\n onClose,\r\n formSubmit,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const [working, setWorking] = useState(false);\r\n const [errorText, setErrorText] = useState();\r\n const [downloadSuccess, setDownloadSuccess] = useState(false);\r\n\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const processResponse = async (resp) => {\r\n if (resp.success) {\r\n await ResultNoticeService.getResultNotice(demandId);\r\n setDownloadSuccess(true);\r\n } else {\r\n setErrorText(resp.errors.shift());\r\n }\r\n\r\n }\r\n\r\n const onSubmit = ({bzpNoticeId}) => {\r\n setWorking(true);\r\n setErrorText();\r\n ResultNoticeService.addBzpNotice(demandId, bzpNoticeId.trim()).then(processResponse).catch(() => {\r\n }).finally(() => {\r\n setWorking(false);\r\n });\r\n }\r\n\r\n\r\n if(downloadSuccess) {\r\n return (\r\n )\r\n }\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nAddBzpResultNoticePopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired\r\n};\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddBzpResultNoticePopup);","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport {connect} from 'react-redux'\r\nimport Form from 'components/Form';\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation, DemandValidationKeys} from 'constants/DemandValidation';\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport Loading from \"components/Loading\";\r\nimport ResultNoticeService from \"services/ResultNoticeService\";\r\nimport AttachmentResultNotice from \"./components/AttachmentResultNotice\";\r\nimport OjsResultNotice from \"./components/OjsResultNotice\";\r\nimport ResultNoticeType from \"./constants/ResultNoticeType\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Tr from \"translations/Translations\";\r\nimport {isNationalProcedure} from \"libs/getDemandStatus\";\r\nimport AddBzpResultNoticePopup from \"components/complex/documentsTables/swz/AddBzpResultNoticePopup\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n }\r\n}))\r\n\r\nfunction ResultNoticePanel(\r\n {\r\n match,\r\n demandValidation,\r\n resultNotice,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyles();\r\n const demandId = match.params.id;\r\n\r\n const currentDemandValidation = DemandValidation.RESULT_NOTICE;\r\n const section = demandValidation.find(x => x.section === currentDemandValidation);\r\n const editable = section ? section.editable : true;\r\n const ojsAdmin = section ? section.ojsAdmin : false;\r\n const bzpEditable = section ? !!section.bzpEditable : false;\r\n // eslint-disable-next-line\r\n const nationalProcedure = useMemo(() => isNationalProcedure(), [demandHeader]);\r\n const [addBzpNoticePopupOpened, setAddBzpNoticePopupOpened] = useState(false);\r\n\r\n useEffect(() => {\r\n ResultNoticeService.getResultNotice(demandId);\r\n return () => {\r\n ResultNoticeService.clearResultNoticeResources();\r\n }\r\n }, [demandId])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n if (nationalProcedure && bzpEditable) {\r\n buttons.push(createButton(Tr(\"add_bzp_result_notice\"), () => setAddBzpNoticePopupOpened(true)))\r\n }\r\n\r\n if (buttons.length)\r\n return \r\n }\r\n\r\n if (!resultNotice) return \r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n resultNotice: state.resources[ResultNoticeService.RESULT_NOTICE_RESOURCE_ID],\r\n demandValidation: state.resources.demandValidation,\r\n demandHeader: state.resources.demandHeader\r\n}), {})(withRouter(ResultNoticePanel));","import React from 'react'\r\nimport ResultNoticePanel from \"./ResultNoticePanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestGET, RestRequestPOST} from \"../libs/RestRequest\";\r\nimport Endpoints from \"../constants/Endpoints\";\r\n\r\nconst DEMAND_ARCHIVING_RESOURCE_ID = 'demandArchiving';\r\n\r\nconst getDemandArchiving = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.ARCHIVING(demandId));\r\n reduxStore.dispatch(setResource(DEMAND_ARCHIVING_RESOURCE_ID, resp))\r\n}\r\n\r\nconst scheduleArchive = async (demandId) => {\r\n clearDemandArchiving();\r\n const resp = await RestRequestPOST(Endpoints.ARCHIVING_SCHEDULE(demandId));\r\n reduxStore.dispatch(setResource(DEMAND_ARCHIVING_RESOURCE_ID, resp))\r\n}\r\n\r\nconst validate = async (demandId) => {\r\n return await RestRequestGET(Endpoints.ARCHIVING_VALIDATE(demandId));\r\n}\r\n\r\nconst clearDemandArchiving = () => {\r\n reduxStore.dispatch(clearResource(DEMAND_ARCHIVING_RESOURCE_ID));\r\n}\r\n\r\nexport default {\r\n getDemandArchiving,\r\n scheduleArchive,\r\n validate,\r\n clearDemandArchiving,\r\n DEMAND_ARCHIVING_RESOURCE_ID\r\n}","export const ArchivingStatus = {\r\n WAITING: \"WAITING\",\r\n ARCHIVED: \"ARCHIVED\",\r\n ARCHIVE_EXPIRED: \"ARCHIVE_EXPIRED\"\r\n}\r\n\r\nexport const statusScheduleAvailable = (status) => {\r\n return !status || ArchivingStatus.ARCHIVE_EXPIRED === status;\r\n}","import React, {useEffect, useState} from \"react\";\r\nimport {connect} from 'react-redux'\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport Loading from \"components/Loading\";\r\nimport ArchivingService from \"services/ArchivingService\";\r\nimport Tr from \"translations/Translations\";\r\nimport Typography from \"components/Typography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport ArchiveIcon from '@material-ui/icons/Archive';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport {ArchivingStatus, statusScheduleAvailable} from \"./constants/ArchivingStatus\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport moment from \"libs/moment\";\r\nimport downloadFile from \"libs/downloadFile\";\r\nimport {getUserFullNameWithDeputy} from \"libs/userNameGetter\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n icon: theme.components.icon,\r\n text: {\r\n marginBottom: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction ArchivingPanel(\r\n {\r\n match,\r\n demandValidation,\r\n demandArchiving\r\n }) {\r\n\r\n const classes = useStyle();\r\n const curDemandValidation = DemandValidation.ARCHIVING;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n const [working, setWorking] = useState(false)\r\n\r\n useEffect(() => {\r\n ArchivingService.getDemandArchiving(demandId);\r\n return () => {\r\n ArchivingService.clearDemandArchiving();\r\n }\r\n }, [demandId])\r\n\r\n const scheduleArchive = () => {\r\n ArchivingService.scheduleArchive(demandId);\r\n };\r\n\r\n const downloadArchive = () => {\r\n const archiveUrl = demandArchiving?.info?.archiveUrl;\r\n if (archiveUrl) {\r\n setWorking(true);\r\n downloadFile({url: archiveUrl.url, name: archiveUrl.name});\r\n }\r\n };\r\n\r\n const getDescription = () => {\r\n\r\n if (!demandArchiving.archivingStatus) {\r\n if (editable) {\r\n return Tr('demand_archiving_schedule_available')\r\n } else {\r\n return Tr('demand_archiving_schedule_unavailable')\r\n }\r\n } else {\r\n return Tr('demand_archiving_' + demandArchiving.archivingStatus.toLowerCase())\r\n }\r\n }\r\n\r\n const getButton = () => {\r\n\r\n if (!demandArchiving.archivingStatus || demandArchiving.archivingStatus === ArchivingStatus.ARCHIVE_EXPIRED) {\r\n return \r\n } else if (demandArchiving.archivingStatus === ArchivingStatus.ARCHIVED) {\r\n return \r\n }\r\n\r\n }\r\n\r\n if (!demandArchiving) return \r\n return (\r\n \r\n \r\n {getDescription()}\r\n\r\n {!!demandArchiving.info &&\r\n \r\n }\r\n {getButton()}\r\n\r\n \r\n )\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n demandArchiving: state.resources[ArchivingService.DEMAND_ARCHIVING_RESOURCE_ID]\r\n}), {})(withRouter(ArchivingPanel));","import React from 'react'\r\nimport ArchivingPanel from \"./ArchivingPanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestGET, RestRequestPOST} from \"libs/RestRequest\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport HeaderService from \"./HeaderService\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\n\r\nconst FINISH_DEMAND_RESOURCE_ID = 'finishDemand';\r\n\r\nconst getFinishDemand = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.FINISH_DEMAND(demandId));\r\n reduxStore.dispatch(setResource(FINISH_DEMAND_RESOURCE_ID, resp))\r\n}\r\n\r\nconst backToOfferEvaluation = async (demandId) => {\r\n clearFinishDemand();\r\n return await RestRequestPOST(Endpoints.FINISH_DEMAND_BACK_TO_OFFER_EVALUATION(demandId));\r\n}\r\n\r\nconst backToResultNotice = async (demandId) => {\r\n clearFinishDemand();\r\n const resp = await RestRequestPOST(Endpoints.FINISH_DEMAND_BACK_TO_RESULT_NOTICE(demandId));\r\n reduxStore.dispatch(setResource(FINISH_DEMAND_RESOURCE_ID, resp));\r\n await validateSection(DemandValidation.FINISH_DEMAND, demandId, false);\r\n await validateSection(DemandValidation.RESULT_NOTICE, demandId, false);\r\n}\r\n\r\nconst withdrawalNoticeDate = async (demandId, values) => {\r\n const data = {\r\n ...values,\r\n unpublishDate: values.unpublishDate ? values.unpublishDate.format() : null\r\n }\r\n return await RestRequestPOST(Endpoints.FINISH_DEMAND_WITHDRAWAL_NOTICE_DATE(demandId), data);\r\n}\r\n\r\nconst cancelDemand = async (demandId) => {\r\n clearFinishDemand();\r\n const resp = await RestRequestPOST(Endpoints.FINISH_DEMAND_CANCEL(demandId));\r\n reduxStore.dispatch(setResource(FINISH_DEMAND_RESOURCE_ID, resp));\r\n await validateSection(DemandValidation.FINISH_DEMAND, demandId, false);\r\n await validateSection(DemandValidation.ARCHIVING, demandId, false);\r\n await validateSection(DemandValidation.DEMAND_PLAN_REALIZATION, demandId, false);\r\n await HeaderService.get(demandId)\r\n}\r\n\r\nconst finishDemand = async (demandId) => {\r\n clearFinishDemand();\r\n const resp = await RestRequestPOST(Endpoints.FINISH_DEMAND_FINISH(demandId));\r\n reduxStore.dispatch(setResource(FINISH_DEMAND_RESOURCE_ID, resp))\r\n await validateSection(DemandValidation.FINISH_DEMAND, demandId, false);\r\n await validateSection(DemandValidation.ARCHIVING, demandId, false);\r\n await validateSection(DemandValidation.DEMAND_PLAN_REALIZATION, demandId, false);\r\n await HeaderService.get(demandId)\r\n}\r\n\r\nconst validate = async (demandId) => {\r\n return await RestRequestGET(Endpoints.FINISH_DEMAND_VALIDATE(demandId));\r\n}\r\n\r\nconst clearFinishDemand = () => {\r\n reduxStore.dispatch(clearResource(FINISH_DEMAND_RESOURCE_ID));\r\n}\r\n\r\nexport default {\r\n getFinishDemand,\r\n backToOfferEvaluation,\r\n backToResultNotice,\r\n cancelDemand,\r\n finishDemand,\r\n validate,\r\n withdrawalNoticeDate,\r\n clearFinishDemand,\r\n FINISH_DEMAND_RESOURCE_ID\r\n}","import React, {useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport Loading from \"components/Loading\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport FinishDemandService from \"services/FinishDemandService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport moment from \"libs/moment\";\r\n\r\n\r\nfunction UnpublishNoticePopup(\r\n {\r\n demandId,\r\n onSuccess,\r\n onCancel,\r\n initialDate,\r\n formSubmit\r\n }) {\r\n\r\n\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n const [working, setWorking] = useState(false);\r\n const [error, setError] = useState(null);\r\n\r\n const onSubmit = (values) => {\r\n setError(null);\r\n setWorking(true);\r\n const resp = FinishDemandService.withdrawalNoticeDate(demandId, values);\r\n if(isResponseValid(resp, setError)) {\r\n onSuccess();\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\nexport default connect((state) => ({\r\n formSubmit: state.form,\r\n}), {})(UnpublishNoticePopup);","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport {connect} from 'react-redux'\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation, DemandValidationKeys} from 'constants/DemandValidation';\r\nimport Loading from \"components/Loading\";\r\nimport Tr from \"translations/Translations\";\r\nimport Typography from \"components/Typography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport FinishDemandService from \"services/FinishDemandService\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport {LABELS as ProcedureStatusLabels, VALUES as ProcedureStatusValues} from \"constants/ProcedureStatus\";\r\nimport UnpublishNoticePopup from \"./components/UnpublishNoticePopup\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n icon: theme.components.icon,\r\n italic: {\r\n fontStyle: 'italic',\r\n },\r\n text: {\r\n marginBottom: theme.spacing(1),\r\n marginTop: theme.spacing(4)\r\n },\r\n exPostButton: {\r\n marginBottom: theme.spacing(1)\r\n },\r\n exPostBackButton: {\r\n marginTop: theme.spacing(4)\r\n }\r\n}))\r\n\r\nconst rp = RouterPath.myProcedure;\r\n\r\nfunction FinishDemandPanel(\r\n {\r\n match,\r\n demandValidation,\r\n finishDemand,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyle();\r\n const curDemandValidation = DemandValidation.FINISH_DEMAND;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n const [backConfirm, setBackConfirm] = useState(false);\r\n const [backToResultConfirm, setBackToResultConfirm] = useState(false);\r\n const [unpublishDatePopup, setUnpublishDatePopup] = useState(false);\r\n const prevErrors = useMemo(() => demandValidation.filter((x) => x.section !== curDemandValidation && x.status === 'ERROR'), [demandValidation, curDemandValidation]);\r\n\r\n useEffect(() => {\r\n FinishDemandService.getFinishDemand(demandId);\r\n return () => {\r\n FinishDemandService.clearFinishDemand();\r\n }\r\n }, [demandId])\r\n\r\n const backToOfferEvaluation = () => {\r\n setBackConfirm(false);\r\n FinishDemandService.backToOfferEvaluation(demandId).then((resp) => RouterPath.redirect(RouterPath.createPath(rp.steps.MP_3_ID, {id: demandId})))\r\n };\r\n\r\n const backToPreparing = () => {\r\n setBackConfirm(false);\r\n FinishDemandService.backToOfferEvaluation(demandId).then((resp) => RouterPath.redirect(RouterPath.createPath(rp.steps.MP_1_ID, {id: demandId})))\r\n };\r\n\r\n const backToResultNotice = () => {\r\n setBackToResultConfirm(false);\r\n FinishDemandService.backToResultNotice(demandId);\r\n };\r\n\r\n const doCancelFinish = () => {\r\n if (finishDemand.canCancel)\r\n FinishDemandService.cancelDemand(demandId);\r\n else if (finishDemand.canFinish)\r\n FinishDemandService.finishDemand(demandId);\r\n };\r\n const doCancel = () => {\r\n if (finishDemand.canCancel)\r\n FinishDemandService.cancelDemand(demandId);\r\n };\r\n const doFinish = () => {\r\n if (finishDemand.canFinish)\r\n FinishDemandService.finishDemand(demandId);\r\n };\r\n\r\n if (!finishDemand) return \r\n\r\n return (\r\n {!demandHeader.exPost &&\r\n \r\n \r\n {\r\n prevErrors.length > 0 ?\r\n {Tr('to_finish_done_sections')}:\r\n \"{prevErrors.map((x) => Tr(DemandValidationKeys[x.section])).join(\"\\\", \\\"\")}\"\r\n :\r\n (ProcedureStatusValues.FINISHED === finishDemand.status || ProcedureStatusValues.CANCELLED === finishDemand.status) ?\r\n {ProcedureStatusLabels[finishDemand.status]}\r\n :\r\n {Tr('demand_finish_finish_info')}\r\n }\r\n\r\n \r\n\r\n {!finishDemand.ojsResultNoticeSent && {Tr('demand_finish_back_to_evaluation_info')}}\r\n {!finishDemand.ojsResultNoticeSent &&\r\n \r\n }\r\n\r\n {finishDemand.ojsResultNoticeSent && {Tr('demand_finish_back_to_result_notice_info')}}\r\n {finishDemand.ojsResultNoticeSent &&\r\n \r\n }\r\n\r\n \r\n {Tr('demand_finish_withdrawal_notice_info')}\r\n {!!finishDemand.withdrawalNoticeDate && <>
{Tr('demand_finish_withdrawal_notice_set_info', {date: moment(finishDemand.withdrawalNoticeDate).format(DateFormats.DATETIME_FORMAT)})}>}\r\n \r\n \r\n \r\n }\r\n\r\n {demandHeader.exPost &&\r\n \r\n \r\n {\r\n prevErrors.length > 0 ?\r\n {Tr('to_finish_done_sections')}:\r\n \"{prevErrors.map((x) => Tr(DemandValidationKeys[x.section])).join(\"\\\", \\\"\")}\"\r\n :\r\n (ProcedureStatusValues.FINISHED === finishDemand.status || ProcedureStatusValues.CANCELLED === finishDemand.status) ?\r\n {ProcedureStatusLabels[finishDemand.status]}\r\n :\r\n {Tr('demand_finish_finish_info_ex_post')}\r\n }\r\n \r\n \r\n\r\n \r\n \r\n }\r\n setBackConfirm(false)}\r\n />\r\n setBackToResultConfirm(false)}\r\n />\r\n {\r\n unpublishDatePopup && {\r\n FinishDemandService.getFinishDemand(demandId).finally(() => setUnpublishDatePopup(false));\r\n }}\r\n onCancel={() => setUnpublishDatePopup(false)}\r\n initialDate={finishDemand.withdrawalNoticeDate}\r\n />\r\n }\r\n
\r\n )\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n finishDemand: state.resources[FinishDemandService.FINISH_DEMAND_RESOURCE_ID],\r\n demandHeader: state.resources.demandHeader\r\n}), {})(withRouter(FinishDemandPanel));","import React from 'react'\r\nimport FinishDemandPanel from \"./FinishDemandPanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import React from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {connect} from \"react-redux\";\r\nimport DocumentsTables from \"components/complex/documentsTables/DocumentsTables\";\r\nimport {DemandValidationProvider} from \"context/DemandValidationContext\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n }\r\n}));\r\n\r\nfunction FinishDocumentsPanel(\r\n {\r\n match,\r\n demandValidation\r\n }) {\r\n\r\n const classes = useStyles();\r\n const demandId = match.params.id;\r\n\r\n const currentDemandValidation = DemandValidation.FINISH_DOCUMENTS;\r\n const section = demandValidation.find(x => x.section === currentDemandValidation);\r\n const siwzEditable = section ? !!section.siwzEditable : false;\r\n const repoEditable = section ? !!section.repoEditable : false;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n
\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation\r\n}), {})(withRouter(FinishDocumentsPanel));\r\n\r\n","import React from 'react'\r\nimport FinishDocumentsPanel from \"./FinishDocumentsPanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import {clearResource, setResource, setSaveStatusDialog, setSaveStatusError, setStepperState} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestGET, RestRequestPOST} from \"libs/RestRequest\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport Tr from \"../translations/Translations\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\n\r\nconst DEMAND_PLAN_REALIZATIONS_RESOURCE_ID = 'demandPlanRealizations';\r\n\r\nconst getRealizations = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.DEMAND_PLAN_REALIZATION(demandId));\r\n reduxStore.dispatch(setResource(DEMAND_PLAN_REALIZATIONS_RESOURCE_ID, resp))\r\n}\r\n\r\nconst saveRealizations = async (demandId, values) => {\r\n\r\n const valuesTouched = values.filter(x => x._touched).map(x => {\r\n const y = {...x};\r\n delete y._touched\r\n return y;\r\n })\r\n\r\n let resp;\r\n if (valuesTouched.length > 0) {\r\n try {\r\n resp = await RestRequestPOST(Endpoints.DEMAND_PLAN_REALIZATION(demandId), {list: valuesTouched});\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n }\r\n\r\n if (!resp) {\r\n reduxStore.dispatch(setStepperState());\r\n } else if(resp.success) {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n await validateSection(DemandValidation.DEMAND_PLAN_REALIZATION, demandId, false);\r\n reduxStore.dispatch(setStepperState());\r\n } else {\r\n if (resp && Array.isArray(resp.errors) && resp.errors.length > 0) {\r\n reduxStore.dispatch(setSaveStatusError(resp.errors[0]));\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n\r\nconst validate = async (demandId) => {\r\n return await RestRequestGET(Endpoints.DEMAND_PLAN_REALIZATION_VALIDATE(demandId));\r\n}\r\n\r\nconst clearResources = () => {\r\n reduxStore.dispatch(clearResource(DEMAND_PLAN_REALIZATIONS_RESOURCE_ID));\r\n}\r\n\r\nexport default {\r\n getRealizations,\r\n saveRealizations,\r\n validate,\r\n clearResources,\r\n DEMAND_PLAN_REALIZATIONS_RESOURCE_ID\r\n}","import React from 'react'\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\n//https://uxwing.com/calculate-math-icon/\r\n//licence: https://uxwing.com/license/\r\nfunction CalcIcon(props) {\r\n return (\r\n \r\n \r\n\r\n );\r\n}\r\n\r\nexport default CalcIcon;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport CalcIcon from \"../icon/CalcIcon\";\r\n\r\nfunction WorkableIconCalcButton(\r\n {\r\n tooltip = Tr('calculate'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconCalcButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconCalcButton;","import React, {useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport VATItems, {SELECT_VALUE} from \"constants/VATItems\";\r\nimport {FormControl, InputAdornment, RadioGroup as RadioGroupUI, TextField} from \"@material-ui/core\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport RadioGroupElement from \"components/RadioGroupElement\";\r\nimport {calcGrossValue, calcNetValue} from \"libs/netGrosCalculations\";\r\nimport toFloat from \"libs/toFloat\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n grid: {\r\n '&>*': {\r\n flexGrow: 1,\r\n '&:not(:first-child)': {\r\n marginLeft: theme.spacing(2)\r\n }\r\n }\r\n },\r\n iconButton: {\r\n padding: theme.spacing(1) / 2,\r\n },\r\n otherTextInput: {\r\n width: 100,\r\n marginLeft: theme.spacing(2)\r\n }\r\n}));\r\n\r\n\r\nconst NetGrossCalcPopup = (\r\n {\r\n open,\r\n onClose,\r\n disabled,\r\n tooltip,\r\n netValue,\r\n setNetValue,\r\n grossValue,\r\n setGrossValue\r\n\r\n }) => {\r\n const classes = useStyle();\r\n const [optionValue, setOptionValue] = useState(null);\r\n const [otherValue, setOtherValue] = useState(\"\");\r\n\r\n const notSelected = optionValue === null || (optionValue === SELECT_VALUE.OTHER && !otherValue)\r\n\r\n const doCalcNetValue = () => {\r\n let otherVatValue;\r\n if (optionValue === SELECT_VALUE.OTHER)\r\n otherVatValue = Number.parseFloat(otherValue);\r\n let newNetValue = calcNetValue(toFloat(grossValue), optionValue, otherVatValue);\r\n setNetValue(newNetValue);\r\n onClose();\r\n }\r\n const doCalcGrossValue = () => {\r\n let otherVatValue;\r\n if (optionValue === SELECT_VALUE.OTHER)\r\n otherVatValue = Number.parseFloat(otherValue);\r\n\r\n let newGrossValue = calcGrossValue(toFloat(netValue), optionValue, otherVatValue);\r\n setGrossValue(newGrossValue);\r\n onClose();\r\n }\r\n\r\n\r\n const handleOtherChange = (e) => {\r\n let reg = /(?!(\\d|[.,]))\\D/\r\n const value = e.target.value;\r\n let _value = value;\r\n if (_value.length > 0) {\r\n _value = _value.replace(reg, \"\")\r\n _value = _value.replace(/,/g, '.')\r\n _value = _value.replace(/\\.\\./g, '.')\r\n }\r\n let valueSplit = _value.split('.')\r\n if (valueSplit.length > 2) {\r\n valueSplit = valueSplit.slice(0, 2)\r\n }\r\n if (valueSplit.length > 1) {\r\n valueSplit[1] = valueSplit[1].slice(0, 2);\r\n }\r\n valueSplit[0] = valueSplit[0].slice(0, 2)\r\n _value = valueSplit.join('.');\r\n setOtherValue(_value);\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('calc_net'), doCalcNetValue, undefined, notSelected || !grossValue));\r\n buttons.push(createButton(Tr('close'), onClose, 'outlined', false));\r\n buttons.push(createButton(Tr('calc_gross'), doCalcGrossValue, undefined, notSelected || !netValue));\r\n return buttons;\r\n }\r\n\r\n return (\r\n }\r\n >\r\n\r\n \r\n {\r\n setOptionValue(e.target.value);\r\n }}\r\n value={optionValue}\r\n >\r\n {VATItems.map((item, i) => {\r\n const value = String(item.value);\r\n const label = item.label;\r\n\r\n return (\r\n \r\n {label}\r\n {value === SELECT_VALUE.OTHER &&\r\n setOptionValue(SELECT_VALUE.OTHER)}\r\n className={classes.otherTextInput}\r\n InputProps={{\r\n endAdornment:\r\n %\r\n }}\r\n value={otherValue}\r\n onChange={handleOtherChange}\r\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\nNetGrossCalcPopup.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default NetGrossCalcPopup;","import React, {useState} from 'react';\r\nimport WorkableIconCalcButton from \"../../button/WorkableIconCalcButton\";\r\nimport PropTypes from \"prop-types\";\r\nimport NetGrossCalcPopup from \"./NetGrossCalcPopup\";\r\nimport Tr from \"../../../translations/Translations\";\r\n\r\n\r\nconst NetGrossCalc = (\r\n {\r\n disabled,\r\n netValue,\r\n setNetValue,\r\n grossValue,\r\n setGrossValue\r\n }\r\n) => {\r\n const [calcOpen, setCalcOpen] = useState(false);\r\n\r\n const noValues = !netValue && !grossValue;\r\n\r\n return (\r\n <>\r\n setCalcOpen(false)}\r\n disabled={noValues || disabled}\r\n netValue={netValue}\r\n setNetValue={setNetValue}\r\n grossValue={grossValue}\r\n setGrossValue={setGrossValue}\r\n />\r\n setCalcOpen(true)}/>\r\n >\r\n );\r\n};\r\n\r\n\r\nNetGrossCalc.propTypes = {\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string\r\n}\r\n\r\nexport default NetGrossCalc;","import React from \"react\";\r\nimport {makeStyles, TableCell, TableRow, Typography} from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport TextInput from \"components/TextInput\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Checkbox from \"components/Checkbox\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport NetGrossCalc from \"components/complex/netGrossCalc/NetGrossCalc\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n cancelColumn: {\r\n textAlign: 'center'\r\n },\r\n cell: {\r\n padding: theme.spacing()\r\n },\r\n valueInput: {\r\n width: 150\r\n },\r\n italic: {\r\n fontStyle: 'italic'\r\n }\r\n\r\n}));\r\n\r\nfunction DemandPlanRealizationRow(\r\n {\r\n demandId,\r\n index,\r\n editable,\r\n realization,\r\n formikProps,\r\n passiveOfferForm,\r\n exPost\r\n }) {\r\n\r\n const classes = useStyles();\r\n const isCancelled = getObjectValue(`${index}.canceled`, formikProps.values, false)\r\n\r\n\r\n return (\r\n {index + 1}.\r\n {realization.dealingName}\r\n \r\n {realization.planItemName}\r\n {realization.planItemNumber}\r\n \r\n \r\n \r\n formikProps.setFieldValue(`${index}._touched`, true)}\r\n />\r\n {\r\n formikProps.setFieldValue(`${index}.realizationValue`, value);\r\n formikProps.setFieldValue(`${index}._touched`, true)\r\n }}\r\n setGrossValue={(value) => {\r\n formikProps.setFieldValue(`${index}.realizationGrossValue`, value);\r\n formikProps.setFieldValue(`${index}._touched`, true)\r\n }}\r\n grossValue={getObjectValue(`${index}.realizationGrossValue`, formikProps.values, \"\")}\r\n\r\n />\r\n formikProps.setFieldValue(`${index}._touched`, true)}\r\n />\r\n \r\n \r\n {(!!passiveOfferForm || !!exPost) &&\r\n \r\n formikProps.setFieldValue(`${index}._touched`, true)}\r\n />\r\n }\r\n )\r\n}\r\n\r\nDemandPlanRealizationRow.propTypes = {\r\n index: PropTypes.number.isRequired,\r\n realization: PropTypes.shape({\r\n realizationId: PropTypes.number.isRequired\r\n }),\r\n editable: PropTypes.bool.isRequired,\r\n passiveOfferForm: PropTypes.bool.isRequired,\r\n exPost: PropTypes.bool.isRequired,\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n};\r\n\r\nexport default DemandPlanRealizationRow;\r\n\r\n","import React from \"react\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableContainer, TableHead, TableRow} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport DemandPlanRealizationRow from \"./DemandPlanRealizationRow\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n tableLayout: 'fixed',\r\n\r\n '& td, th': {\r\n overflow: 'hidden',\r\n }\r\n },\r\n cell: {\r\n padding: theme.spacing(1)\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n cancelColumn: {\r\n width: 100,\r\n padding: '0 !important'\r\n },\r\n partName: {\r\n width: 310\r\n },\r\n valueColumn: {\r\n width: 350\r\n },\r\n}));\r\n\r\nfunction DemandPlanRealizationTable(\r\n {\r\n demandId,\r\n editable,\r\n demandPlanRealizations,\r\n formikProps,\r\n passiveOfferForm,\r\n exPost\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n {Tr(\"column_lp\")}\r\n {Tr(\"part_name\")}\r\n {Tr(\"plan_item_name_number\")}\r\n {Tr(\"plan_item_realization_value\")}\r\n {(!!passiveOfferForm || !!exPost) && {Tr(\"agreement_state_annuled\")}}\r\n \r\n \r\n \r\n {demandPlanRealizations.map((realization, index) =>\r\n \r\n )}\r\n \r\n
\r\n )\r\n}\r\n\r\nDemandPlanRealizationTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n passiveOfferForm: PropTypes.bool.isRequired,\r\n exPost: PropTypes.bool.isRequired,\r\n demandPlanRealizations: PropTypes.array.isRequired\r\n}\r\n\r\nexport default DemandPlanRealizationTable;\r\n\r\n","import React, {useEffect} from \"react\";\r\nimport {connect} from 'react-redux'\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport Loading from \"components/Loading\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport DemandPlanRealizationService from \"services/DemandPlanRealizationService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport DemandPlanRealizationTable from \"./components/DemandPlanRealizationTable\";\r\nimport Form from \"components/Form\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport Tr from \"translations/Translations\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport SaveFormikValues from \"../../../../../../../components/SaveFormikValues\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n icon: theme.components.icon,\r\n italic: {\r\n fontStyle: 'italic',\r\n },\r\n text: {\r\n marginBottom: theme.spacing(1),\r\n marginTop: theme.spacing(4)\r\n }\r\n}))\r\n\r\nfunction DemandPlanRealizationPanel(\r\n {\r\n match,\r\n demandValidation,\r\n demandHeader,\r\n demandPlanRealizations\r\n }) {\r\n\r\n const classes = useStyle();\r\n const curDemandValidation = DemandValidation.DEMAND_PLAN_REALIZATION;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n\r\n useStepperStateCloseValidator('mp_4_demand_plan_realization')\r\n\r\n useEffect(() => {\r\n DemandPlanRealizationService.getRealizations(demandId);\r\n return () => {\r\n DemandPlanRealizationService.clearResources();\r\n }\r\n }, [demandId])\r\n\r\n\r\n const onSubmit = (values) => {\r\n\r\n DemandPlanRealizationService.saveRealizations(demandId, values).then();\r\n\r\n }\r\n\r\n const validationSchema = VS.arrayOf(VS.lazy(realization => {\r\n if (realization.canceled)\r\n return VS.any();\r\n\r\n const shape = {\r\n realizationValue: VS.numberPositiveOptional().when('realizationGrossValue', {\r\n is: (realizationGrossValue) => !!realizationGrossValue,\r\n then: VS.numberPositiveNoZero()\r\n }),\r\n realizationGrossValue: VS.numberPositiveOptional().when('realizationValue', {\r\n is: (realizationValue) => !!realizationValue,\r\n then: VS.number().min(VS.ref('realizationValue'), Tr('gross_less'))\r\n })\r\n }\r\n return VS.object(shape, [['realizationValue', 'realizationGrossValue']])\r\n }))\r\n\r\n\r\n if (!demandPlanRealizations || !demandHeader) return \r\n\r\n return (\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n demandValidation: state.resources.demandValidation,\r\n demandPlanRealizations: state.resources[DemandPlanRealizationService.DEMAND_PLAN_REALIZATIONS_RESOURCE_ID]\r\n}), {})(withRouter(DemandPlanRealizationPanel));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {DemandValidation, DemandValidationKeys} from \"constants/DemandValidation\";\r\nimport PreparingAdditionalInfo from \"../../../part1/panels/additionalInfo/PreparingAdditionalInfo\";\r\n\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded &&\r\n \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import {ArchivingPanel, DemandAdditionalInfo, DemandPlanRealizationPanel, FinishDemandPanel, FinishDocumentsPanel, ResultNoticePanel} from \"./panels\";\r\nimport ResultNoticeService from \"services/ResultNoticeService\";\r\nimport FinishDemandService from \"services/FinishDemandService\";\r\nimport ArchivingService from \"services/ArchivingService\";\r\nimport DemandPlanRealizationService from \"services/DemandPlanRealizationService\";\r\nimport DemandAdditionalInfoService from \"services/DemandAdditionalInfoService\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\n\r\nexport default {\r\n mp_4_result_notice: ResultNoticePanel,\r\n mp_4_finish_documents: FinishDocumentsPanel,\r\n mp_4_demand_plan_realization: DemandPlanRealizationPanel,\r\n mp_4_finish_demand: FinishDemandPanel,\r\n mp_4_archiving: ArchivingPanel,\r\n mp_4_finish_additional_info: DemandAdditionalInfo,\r\n}\r\n\r\nexport const panelsValidationKeys = {\r\n mp_4_result_notice: (id) => ResultNoticeService.validate(id),\r\n mp_4_finish_documents: (id) => null,\r\n mp_4_demand_plan_realization: (id) => DemandPlanRealizationService.validate(id),\r\n mp_4_finish_demand: (id) => FinishDemandService.validate(id),\r\n mp_4_archiving: (id) => ArchivingService.validate(id),\r\n mp_4_finish_additional_info: (id) => DemandAdditionalInfoService.validate(id, DemandValidation.FINISH_ADDITIONAL_INFO),\r\n}","import React from 'react'\r\nimport DemandPlanRealizationPanel from \"./DemandPlanRealizationPanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import reduxStore from 'redux/store'\r\nimport {setResource, setStepperState} from 'redux/actions';\r\nimport {panelsValidationKeys as panelsValidationKeys1} from 'pages/purchaser/MyProcedure/scenes/part1/part1.panels.components'\r\nimport {panelsValidationKeys as panelsValidationKeys3} from 'pages/purchaser/MyProcedure/scenes/part3/part3.panels.components'\r\nimport {panelsValidationKeys as panelsValidationKeys4} from 'pages/purchaser/MyProcedure/scenes/part4/part4.panels.components'\r\nimport {DemandValidationKeys} from \"constants/DemandValidation\";\r\nimport DemandSectionsService from \"services/DemandSectionsService\";\r\n\r\nexport default async (sectionId, objectId, closeSection = true) => {\r\n const panelsValidationKeys = {...panelsValidationKeys1, ...panelsValidationKeys3, ...panelsValidationKeys4};\r\n\r\n const {resources} = reduxStore.getState();\r\n const demandValidation = resources.demandValidation;\r\n if (!demandValidation || !demandValidation.find(x => x.section === sectionId)?.validateAfterSave)\r\n return;\r\n\r\n const sectionIndex = demandValidation.findIndex(x => x.section === sectionId)\r\n const res = await panelsValidationKeys[DemandValidationKeys[sectionId]](objectId);\r\n let data = JSON.parse(JSON.stringify(demandValidation));\r\n data[sectionIndex] = res;\r\n\r\n reduxStore.dispatch(setResource(DemandSectionsService.DEMAND_VALIDATION_RESOURCE_ID, data));\r\n\r\n if (res.status === 'OK' || res.status === 'EMPTY') {\r\n if (closeSection) {\r\n reduxStore.dispatch(setStepperState());\r\n }\r\n }\r\n}","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport ChangeHistory from 'components/popup/changeHistory/ChangeHistory';\r\nimport StartScreen from './StartScreen';\r\nimport DealingsService from 'services/DealingsService';\r\nimport {withRouter} from \"react-router\";\r\nimport PositionAndPartsForm from './PositionAndPartsForm';\r\nimport Loading from 'components/Loading';\r\nimport {connect} from 'react-redux'\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {setOpenForm, setOpenImporter, setStepperState} from 'redux/actions'\r\nimport ImportScreen from \"./ImportScreen\";\r\nimport reduxStore from 'redux/store'\r\nimport DemandService from \"services/DemandService\";\r\nimport validateSection from \"services/helpers/validateSection\";\r\n\r\nconst clear = () => {\r\n DealingsService.clearResources('dealing');\r\n DealingsService.clearResources('dealingsList');\r\n reduxStore.dispatch(setOpenForm(undefined));\r\n reduxStore.dispatch(setOpenImporter(undefined));\r\n}\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n match,\r\n dealingsList,\r\n demandValidation,\r\n setOpenForm,\r\n setOpenImporter,\r\n openForm,\r\n openImporter,\r\n demandHeader\r\n }) {\r\n const [historyOpen, setHistoryOpen] = useState(false);\r\n\r\n const id = match.params.id;\r\n\r\n useEffect(() => {\r\n if (expanded) {\r\n DealingsService.getList(id);\r\n } else {\r\n clear();\r\n }\r\n return clear\r\n }, [expanded, id])\r\n\r\n const isOpenImporter = () => {\r\n return openImporter;\r\n };\r\n\r\n const isOpenForm = () => {\r\n const validationObj = demandValidation.find(x => x.section === DemandValidation.DEALINGS);\r\n if (validationObj === undefined) return openForm;\r\n if (validationObj.status === 'OK') return true;\r\n if(demandHeader && demandHeader.hasPlanItems) return true;\r\n if (dealingsList && dealingsList.dealings && dealingsList.dealings.length > 1) return true;\r\n return openForm;\r\n };\r\n\r\n const saveSuccessCallback = () => {\r\n reduxStore.dispatch(setStepperState());\r\n DemandService.getValidate(id, false)\r\n }\r\n\r\n const saveErrorCallback = () => {\r\n validateSection(DemandValidation.DEALINGS, id, false);\r\n }\r\n\r\n return (\r\n <>\r\n {openForm === null ?\r\n :\r\n (isOpenImporter()) ?\r\n \r\n :\r\n (isOpenForm()) ?\r\n <>\r\n x.section === DemandValidation.DEALINGS) : null}\r\n formId=\"mp_1_dealings\"\r\n saveSuccessCallback={saveSuccessCallback}\r\n saveErrorCallback={saveErrorCallback}\r\n />\r\n setHistoryOpen(false)}\r\n />\r\n > :\r\n setOpenForm(true)} onImporterOpen={() => setOpenImporter(true)}/>\r\n }\r\n >\r\n )\r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n dealingsList: state.resources.dealingsList,\r\n demandValidation: state.resources.demandValidation,\r\n openForm: state.store.openForm,\r\n openImporter: state.store.openImporter,\r\n demandHeader: state.resources.demandHeader,\r\n}), {\r\n setOpenForm, setOpenImporter\r\n})(withRouter(Index));\r\n","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport TitledComponent from 'components/TitledComponent';\r\nimport DateTimePicker from 'components/DateTimePicker';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t\tmarginTop: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction FormElement({\r\n\tclasses,\r\n\tformikProps,\r\n\tid,\r\n\ttitle,\r\n\trequired,\r\n\tonChange,\r\n}) {\r\n\tlet label = title;\r\n\tif (required) label += '*'\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nFormElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tid: PropTypes.string,\r\n\ttitle: PropTypes.string,\r\n\tformikProps: PropTypes.object,\r\n}\r\n\r\nFormElement.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(FormElement);","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (value) => ({label: `${value} ${Tr('days')}`, value})\r\n\r\nexport const elements = {\r\n\t30: createItem(30),\r\n\t60: createItem(60),\r\n\t90: createItem(90),\r\n\t120: createItem(120),\r\n\t150: createItem(150),\r\n}\r\n\r\nexport default Object.values(elements)\r\n","import React, {useEffect} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport TitledComponent from 'components/TitledComponent';\r\nimport RadioGroup from 'components/RadioGroup';\r\nimport Tr from 'translations/Translations';\r\nimport Select from 'components/Select';\r\nimport GridBlock from 'components/GridBlock';\r\nimport periodValues from '../constants/period.values'\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport DatePicker from 'components/DatePicker';\r\n\r\nconst style = theme => ({\r\n root: {\r\n marginLeft: theme.spacing(2),\r\n marginTop: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction DateBind(\r\n {\r\n classes,\r\n formikProps,\r\n title,\r\n initialPickDateInsteadOfPeriod\r\n }) {\r\n\r\n const radioId = 'bindWithOfferPeriodOrDate.pickDateInsteadOfPeriod'\r\n const dateId = \"bindWithOfferPeriodOrDate.date\"\r\n\r\n const conditionalValue = getObjectValue(radioId, formikProps.values, '')\r\n\r\n useEffect(() => {\r\n if (conditionalValue === \"true\") formikProps.setFieldTouched(dateId, true)\r\n // eslint-disable-next-line\r\n }, [conditionalValue])\r\n\r\n\r\n const getRadioValues = () => {\r\n const values = [\r\n {label: Tr('not_applicable'), value: \"empty\"},\r\n {label: Tr('date'), value: \"true\"},\r\n ]\r\n if(initialPickDateInsteadOfPeriod === 'false') {\r\n values.push({label: Tr('period'), value: \"false\"})\r\n }\r\n return values;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n conditionalValue === \"empty\" ? \"\"\r\n : (conditionalValue === 'true' ?\r\n :\r\n )\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nDateBind.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(DateBind);","import reduxStore from 'redux/store'\r\nimport {clearResource, setResource, setSaveStatusDialog, setSaveStatusError, setSaveStatusLoading} from 'redux/actions'\r\nimport Endpoints from 'constants/Endpoints';\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport validateSection from './helpers/validateSection'\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport objectExtension from 'libs/objectExtension';\r\n\r\nconst SCHEDULE_RESOURCE_ID = 'schedule';\r\n\r\nconst getList = async (id) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.SCHEDULE(id))\r\n\r\n reduxStore.dispatch(\r\n setResource(SCHEDULE_RESOURCE_ID, res)\r\n )\r\n } catch (error) {\r\n }\r\n}\r\n\r\n\r\nconst _save = async (url, values) => {\r\n const data = _prepareData(values);\r\n\r\n const {resources} = reduxStore.getState()\r\n const {schedule} = resources;\r\n const diff = objectExtension.diff(data, schedule);\r\n if (diff === null) return null;\r\n\r\n try {\r\n return await RestRequestPOST(url, data)\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nconst _prepareData = (values) => {\r\n const {\r\n offerEndDate,\r\n offerOpenDate,\r\n bindWithOfferPeriodOrDate,\r\n ...other\r\n } = values;\r\n\r\n let isDate = bindWithOfferPeriodOrDate.pickDateInsteadOfPeriod;\r\n\r\n let offer;\r\n if (isDate === \"empty\") offer = null\r\n else if (isDate === \"true\") offer = {date: bindWithOfferPeriodOrDate.date.format()}\r\n else offer = {period: bindWithOfferPeriodOrDate.period}\r\n\r\n const data = {\r\n schedules: [{\r\n offerEndDate: offerEndDate ? offerEndDate.format() : null,\r\n offerOpenDate: offerOpenDate ? offerOpenDate.format() : null,\r\n bindWithOfferPeriodOrDate: offer,\r\n ...other\r\n }]\r\n }\r\n return data;\r\n}\r\n\r\nconst save = async (id, values) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n const res = await _save(Endpoints.SCHEDULE_SAVE(id), values)\r\n if (res === null || res.success) {\r\n await getList(id);\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n await validateSection(DemandValidation.SCHEDULE, id);\r\n const {resources} = reduxStore.getState();\r\n const {demandHeader} = resources;\r\n if (demandHeader && demandHeader.noticeOjsType)\r\n await validateSection(DemandValidation.NOTICE, id);\r\n if (demandHeader && demandHeader.noticeBzpType)\r\n await validateSection(DemandValidation.NATIONAL_NOTICE, id);\r\n\r\n await validateSection(DemandValidation.PUBLICATION, id);\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError());\r\n await validateSection(DemandValidation.SCHEDULE, id, false);\r\n }\r\n return res;\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n}\r\n\r\nconst clearSchedule = async () => {\r\n reduxStore.dispatch(clearResource(SCHEDULE_RESOURCE_ID))\r\n}\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.SCHEDULE_VALIDATE(id));\r\n}\r\n\r\nconst checkForDraft = async (id) => {\r\n return await RestRequestGET(Endpoints.SCHEDULE_AUTOSAVE_CHECK(id));\r\n}\r\n\r\nconst loadDraft = async (id) => {\r\n const res = await RestRequestGET(Endpoints.SCHEDULE_AUTOSAVE(id));\r\n reduxStore.dispatch(setResource(SCHEDULE_RESOURCE_ID, res.result));\r\n return res;\r\n}\r\n\r\nconst saveDraft = async (id, formValues) => {\r\n const data = _prepareData(formValues);\r\n await RestRequestPOST(Endpoints.SCHEDULE_AUTOSAVE(id), data);\r\n}\r\n\r\nconst deleteDraft = async (id) => {\r\n await RestRequestDELETE(Endpoints.SCHEDULE_AUTOSAVE(id));\r\n}\r\n\r\nexport default {\r\n save,\r\n getList,\r\n validate,\r\n clearSchedule,\r\n checkForDraft,\r\n loadDraft,\r\n saveDraft,\r\n deleteDraft,\r\n SCHEDULE_RESOURCE_ID\r\n //auto Save,\r\n //auto SaveCheck,\r\n //auto SaveDelete,\r\n //auto SaveLoad,\r\n //restoreAuto save,\r\n}","import React, {useEffect, useState} from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport FormElement from './FormElement';\r\nimport moment from 'moment';\r\nimport DateBind from './DateBind';\r\nimport periodValues from '../constants/period.values'\r\nimport Loading from 'components/Loading';\r\nimport {connect} from 'react-redux'\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport * as Yup from 'yup';\r\nimport ScheduleService from 'services/ScheduleService';\r\nimport {withRouter} from \"react-router\";\r\nimport SaveFormikValues from 'components/SaveFormikValues';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport VS from \"constants/ValidationShema\";\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport {setFormDraftLoaded} from \"redux/actions\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\n\r\nfunction Deadlines(\r\n {\r\n scheduleList,\r\n stepperState,\r\n demandValidation,\r\n match,\r\n setFormDraftLoaded,\r\n demandHeader\r\n }) {\r\n const id = match.params.id;\r\n const section = demandValidation.find(x => x.section === DemandValidation.SCHEDULE);\r\n const FORM_ID = 'mp_1_schedule';\r\n const [draftConfirm, setDraftConfirm] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active;\r\n useStepperStateCloseValidator(FORM_ID, undefined,\r\n autoSaveFormDraftActive ? () => ScheduleService.deleteDraft(id) : undefined,\r\n autoSaveFormDraftActive ? () => saveFormDraft(id, ScheduleService.saveDraft, FORM_ID) : undefined);\r\n\r\n useEffect(() => {\r\n ScheduleService.getList(id).then(() => {\r\n if (autoSaveFormDraftActive)\r\n ScheduleService.checkForDraft(id).then(res => setDraftConfirm(res.result))\r\n });\r\n\r\n return () => ScheduleService.clearSchedule()\r\n }, [id, autoSaveFormDraftActive])\r\n\r\n const handleSubmit = (values, formikProps) => {\r\n ScheduleService.save(id, values)\r\n .then((result) => {\r\n if (result && !result.success) {\r\n const errors = result.errors;\r\n let errorObj = {}\r\n Object.keys(errors).forEach((errorId) => {\r\n const erId = errorId.split('.')[1];\r\n errorObj[erId] = errors[errorId];\r\n })\r\n formikProps.setErrors(errorObj)\r\n }\r\n })\r\n }\r\n\r\n const getField = (id, defaultValue = '') => getObjectValue(id, scheduleList.schedules.length > 0 ? scheduleList.schedules[0] : {}, defaultValue)\r\n\r\n const validationSchema = Yup.lazy((value) => {\r\n const schema = {\r\n offerEndDate: VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past')),\r\n offerOpenDate: VS.dateTimeValid()\r\n .when('offerEndDate', (offerEndDate, schema) => {\r\n return schema.test('EndDateLessOpenDate', Tr(\"EndDateLessOpenDate\"), (offerOpenDate) => {\r\n if (offerEndDate && offerOpenDate) {\r\n return !offerOpenDate.isBefore(offerEndDate);\r\n }\r\n return false;\r\n })\r\n })\r\n }\r\n\r\n let offerOpenDateClone = moment.isMoment(value.offerOpenDate) ? (value.offerOpenDate.isValid() ? value.offerOpenDate.clone().startOf(\"day\") : moment()) : moment();\r\n offerOpenDateClone = offerOpenDateClone.isBefore(moment().add(1, 'day')) ? moment().add(1, 'day') : offerOpenDateClone;\r\n\r\n if (value.bindWithOfferPeriodOrDate.pickDateInsteadOfPeriod === 'true') {\r\n schema['bindWithOfferPeriodOrDate'] = Yup.object().shape({\r\n date: VS.dateMin(offerOpenDateClone, Tr('periodDateLessThanOpenDate'))\r\n })\r\n\r\n }\r\n\r\n return Yup.object().shape(schema);\r\n })\r\n\r\n const getPickDateInsteadOfPeriod = () => {\r\n const date = getField('bindWithOfferPeriodOrDate.date', null);\r\n if (date === null) {\r\n const periodLen = getField('bindWithOfferPeriodOrDate.period.length', null);\r\n if (periodLen === null) return 'empty'\r\n return 'false'\r\n }\r\n return 'true'\r\n }\r\n const handleEndDate = (formikProps, value) => {\r\n formikProps.setFieldValue('offerOpenDate', value);\r\n formikProps.setFieldTouched('offerOpenDate', true);\r\n formikProps.validateField('offerOpenDate');\r\n }\r\n const getInitValues = () => ({\r\n _editable: section ? section.editable : true,\r\n stageNumber: getField('stageNumber'),\r\n stageName: getField('stageName'),\r\n questionEndDate: getField('questionEndDate', null),\r\n\r\n identity: getField('identity'),\r\n offerEndDate: moment(getField('offerEndDate', new Date())),\r\n offerOpenDate: moment(getField('offerOpenDate', new Date())),\r\n bindWithOfferPeriodOrDate: {\r\n date: moment(getField('bindWithOfferPeriodOrDate.date', new Date())),\r\n period: {\r\n length: getField('bindWithOfferPeriodOrDate.period.length', periodValues[0].value),\r\n name: getField('bindWithOfferPeriodOrDate.period.name', 'day'),\r\n },\r\n pickDateInsteadOfPeriod: getPickDateInsteadOfPeriod(),\r\n }\r\n })\r\n\r\n const loadScheduleDraft = () => {\r\n setDraftConfirm(false);\r\n setWorking(true);\r\n ScheduleService.loadDraft(id).then(res => setFormDraftLoaded(FORM_ID, res.success));\r\n setWorking(false);\r\n }\r\n\r\n if (!scheduleList || working) {\r\n return \r\n }\r\n\r\n return (\r\n \r\n
\r\n
setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n \r\n )\r\n}\r\n\r\nDeadlines.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nDeadlines.defaultProps = {}\r\n\r\nexport default connect((state) => ({\r\n scheduleList: state.resources.schedule,\r\n stepperState: state.stepper.state,\r\n demandValidation: state.resources.demandValidation,\r\n demandHeader: state.resources.demandHeader\r\n}), {setFormDraftLoaded})(withRouter(Deadlines));\r\n\r\n","import React from 'react'\r\nimport DeadlinesEdit from './deadlinesEdit/DeadlinesEdit';\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (\r\n expanded && \r\n )\r\n}\r\n\r\nexport default Index;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux'\r\nimport CommissionService from 'services/CommissionService';\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport CommissionForm from \"components/complex/commissionForm/CommissionForm\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport {setFormDraftLoaded} from \"redux/actions\";\r\nimport Loading from 'components/Loading';\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\n\r\nfunction DemandCommissionForm(\r\n {\r\n classes,\r\n stepperState,\r\n match,\r\n commissionUserList,\r\n userListAvailable,\r\n establishmentDate,\r\n demandValidation,\r\n setFormDraftLoaded,\r\n demandHeader\r\n }) {\r\n const section = demandValidation.find(x => x.section === DemandValidation.COMMISSION);\r\n const FORM_ID = 'mp_1_commission'\r\n const demandId = match.params.id;\r\n const [draftConfirm, setDraftConfirm] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active;\r\n useStepperStateCloseValidator(FORM_ID, undefined,\r\n autoSaveFormDraftActive ? () => CommissionService.deleteDraft(demandId) : undefined,\r\n autoSaveFormDraftActive ? () => saveFormDraft(demandId, CommissionService.saveDraft, FORM_ID) : undefined);\r\n\r\n useEffect(() => {\r\n CommissionService.getUsers(demandId).then(() => {\r\n if (autoSaveFormDraftActive)\r\n CommissionService.checkForDraft(demandId).then(res => setDraftConfirm(res.result));\r\n });\r\n CommissionService.getAvailableUsers(demandId);\r\n\r\n return () => {\r\n CommissionService.clearResources(CommissionService.COMMISSION_USER_LIST_RESOURCE_ID);\r\n CommissionService.clearResources(CommissionService.COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID);\r\n CommissionService.clearResources(CommissionService.COMMISSION_ESTABLISHMENT_RESOURCE_ID);\r\n }\r\n }, [demandId, autoSaveFormDraftActive])\r\n\r\n\r\n const markHistorical = (memnerId) => {\r\n simpleConfirm(\"archive_commission_member_info\", () => CommissionService.markHistorical(demandId, memnerId))\r\n }\r\n\r\n const handleSubmit = (values) => {\r\n CommissionService.saveUserList(demandId, values)\r\n }\r\n\r\n const doLoadHistory = async () => {\r\n return await CommissionService.getHistory(demandId);\r\n }\r\n\r\n const loadCommissionDraft = () => {\r\n setDraftConfirm(false);\r\n setWorking(true);\r\n CommissionService.loadDraft(demandId).then(res => setFormDraftLoaded(FORM_ID, res.success));\r\n setWorking(false);\r\n }\r\n\r\n if (working) return \r\n else return (\r\n <>\r\n {\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(demandId);\r\n }\r\n }}\r\n editable={section ? section.editable : true}\r\n handleSubmit={handleSubmit}\r\n formId={FORM_ID}\r\n demandId={demandId}\r\n doLoadHistory={doLoadHistory}\r\n markHistorical={markHistorical}\r\n saveDraftFunc={CommissionService.saveDraft}\r\n autoSaveFormDraftActive={autoSaveFormDraftActive}\r\n />\r\n setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n >\r\n )\r\n}\r\n\r\nDemandCommissionForm.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n stepperState: state.stepper.state,\r\n commissionUserList: state.resources[CommissionService.COMMISSION_USER_LIST_RESOURCE_ID],\r\n userListAvailable: state.resources[CommissionService.COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID],\r\n establishmentDate: state.resources[CommissionService.COMMISSION_ESTABLISHMENT_RESOURCE_ID],\r\n demandValidation: state.resources.demandValidation,\r\n demandHeader: state.resources.demandHeader\r\n}), {setFormDraftLoaded})(withRouter(DemandCommissionForm));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport DemandCommissionForm from './DemandCommissionForm';\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Index;","import Tr from 'translations/Translations';\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst createItem = (titleKey, descriptionKey, id, elements = [], type = 'deafult') => ({\r\n title: Tr(titleKey),\r\n description: Tr(descriptionKey),\r\n id,\r\n elements,\r\n type\r\n})\r\n\r\nconst createElement = (titleKey, descriptionKey, id, type = 'deafult', checked) => ({\r\n title: Tr(titleKey),\r\n description: Tr(descriptionKey),\r\n id,\r\n type,\r\n checked,\r\n})\r\n\r\nconst elements = {\r\n e1: createItem(\r\n 'jedz_ex_a_t',\r\n 'jedz_ex_a_d',\r\n 'e1',\r\n [\r\n createElement('jedz_ex_a_1_t', 'jedz_ex_a_1_d', 'exclusionA1', \"disabled\", true),\r\n createElement('jedz_ex_a_2_t', 'jedz_ex_a_2_d', 'exclusionA2', \"disabled\", true\r\n ),\r\n createElement('jedz_ex_a_3_t', 'jedz_ex_a_3_d', 'exclusionA3', \"disabled\", true),\r\n createElement('jedz_ex_a_4_t', 'jedz_ex_a_4_d', 'exclusionA4', \"disabled\", true),\r\n createElement('jedz_ex_a_5_t', 'jedz_ex_a_5_d', 'exclusionA5', \"disabled\", true),\r\n createElement('jedz_ex_a_6_t', 'jedz_ex_a_6_d', 'exclusionA6', \"disabled\", true),\r\n ],\r\n \"disabled\"\r\n ),\r\n e2: createItem(\r\n 'jedz_ex_b_t',\r\n 'jedz_ex_b_d',\r\n 'e2',\r\n [\r\n createElement('jedz_ex_b_1_t', 'jedz_ex_b_1_d', \"exclusionB1\", \"disabled\", true),\r\n createElement('jedz_ex_b_2_t', 'jedz_ex_b_2_d', \"exclusionB2\", \"disabled\", true),\r\n ],\r\n \"disabled\"),\r\n e3: createItem(\r\n 'jedz_ex_c_t',\r\n 'jedz_ex_c_d',\r\n 'e3',\r\n [\r\n createElement('jedz_ex_c_1_t', 'jedz_ex_c_1_d', 'exclusionC1'),\r\n createElement('jedz_ex_c_2_t', 'jedz_ex_c_2_d', 'exclusionC2'),\r\n createElement('jedz_ex_c_3_t', 'jedz_ex_c_3_d', 'exclusionC3'),\r\n createElement('jedz_ex_c_4_t', 'jedz_ex_c_4_d', 'exclusionC4'),\r\n createElement('jedz_ex_c_5_t', 'jedz_ex_c_5_d', 'exclusionC5'),\r\n createElement('jedz_ex_c_6_t', 'jedz_ex_c_6_d', 'exclusionC6'),\r\n createElement('jedz_ex_c_7_t', 'jedz_ex_c_7_d', 'exclusionC7'),\r\n createElement('jedz_ex_c_8_t', 'jedz_ex_c_8_d', 'exclusionC8'),\r\n createElement('jedz_ex_c_9_t', 'jedz_ex_c_9_d', 'exclusionC9'),\r\n createElement('jedz_ex_c_10_t', 'jedz_ex_c_10_d', 'exclusionC10'),\r\n createElement('jedz_ex_c_11_t', 'jedz_ex_c_11_d', 'exclusionC11'),\r\n createElement('jedz_ex_c_12_t', 'jedz_ex_c_12_d', 'exclusionC12'),\r\n createElement('jedz_ex_c_13_t', 'jedz_ex_c_13_d', 'exclusionC13'),\r\n createElement('jedz_ex_c_14_t', 'jedz_ex_c_14_d', 'exclusionC14'),\r\n createElement('jedz_ex_c_15_t', 'jedz_ex_c_15_d', 'exclusionC15'),\r\n ]),\r\n e4: createItem(\r\n 'jedz_ex_d_t',\r\n 'jedz_ex_d_d',\r\n 'e4',\r\n [\r\n createElement('jedz_ex_d_1_t', 'jedz_ex_d_1_d', 'exclusionD1'),\r\n ]\r\n )\r\n}\r\nexport default Object.values(elements);\r\n\r\nexport const getInitValues = (sectionId, espdList, idPrefix) => {\r\n\r\n const item = elements[sectionId];\r\n\r\n const e = item.elements.reduce((prev, curr) => {\r\n return {\r\n ...prev,\r\n [curr.id]: getObjectValue(`${idPrefix}.${curr.id}`, espdList),\r\n }\r\n }, {})\r\n\r\n return e;\r\n}\r\n\r\n\r\n","import Tr from 'translations/Translations';\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst createItem = (titleKey, descriptionKey, id, elements = [], type = 'deafult') => ({\r\n title: Tr(titleKey),\r\n description: Tr(descriptionKey),\r\n id,\r\n elements,\r\n type\r\n})\r\n\r\nconst createElement = (titleKey, descriptionKey, id, type = 'deafult') => ({\r\n title: Tr(titleKey),\r\n description: Tr(descriptionKey),\r\n id,\r\n type,\r\n})\r\n\r\nconst elements = {\r\n s1: createItem('jedz_se_y_a_t', 'jedz_se_y_a_d', 's1', [\r\n createElement('jedz_se_y_a_1_t', 'jedz_se_y_a_1_d', 'selectionA1'),\r\n createElement('jedz_se_y_a_2_t', 'jedz_se_y_a_2_d', 'selectionA2'),\r\n createElement('jedz_se_y_a_3_t', 'jedz_se_y_a_3_d', 'selectionA3'),\r\n createElement('jedz_se_y_a_4_t', 'jedz_se_y_a_4_d', 'selectionA4'),\r\n ]),\r\n s2: createItem('jedz_se_y_b_t', 'jedz_se_y_b_d', 's2', [\r\n createElement('jedz_se_y_b_1_t', 'jedz_se_y_b_1_d', 'selectionB1'),\r\n createElement('jedz_se_y_b_2_t', 'jedz_se_y_b_2_d', 'selectionB2'),\r\n createElement('jedz_se_y_b_3_t', 'jedz_se_y_b_3_d', 'selectionB3'),\r\n createElement('jedz_se_y_b_4_t', 'jedz_se_y_b_4_d', 'selectionB4'),\r\n createElement('jedz_se_y_b_5_t', 'jedz_se_y_b_5_d', 'selectionB5'),\r\n createElement('jedz_se_y_b_6_t', 'jedz_se_y_b_6_d', 'selectionB6'),\r\n createElement('jedz_se_y_b_7_t', 'jedz_se_y_b_7_d', 'selectionB7'),\r\n createElement('jedz_se_y_b_8_t', 'jedz_se_y_b_8_d', 'selectionB8'),\r\n ]),\r\n s3: createItem('jedz_se_y_c_t', 'jedz_se_y_c_d', 's3', [\r\n createElement('jedz_se_y_c_1_t', 'jedz_se_y_c_1_d', 'selectionC1'),\r\n createElement('jedz_se_y_c_2_t', 'jedz_se_y_c_2_d', 'selectionC2'),\r\n createElement('jedz_se_y_c_3_t', 'jedz_se_y_c_3_d', 'selectionC3'),\r\n createElement('jedz_se_y_c_4_t', 'jedz_se_y_c_4_d', 'selectionC4'),\r\n createElement('jedz_se_y_c_5_t', 'jedz_se_y_c_5_d', 'selectionC5'),\r\n createElement('jedz_se_y_c_6_t', 'jedz_se_y_c_6_d', 'selectionC6'),\r\n createElement('jedz_se_y_c_7_t', 'jedz_se_y_c_7_d', 'selectionC7'),\r\n createElement('jedz_se_y_c_8_t', 'jedz_se_y_c_8_d', 'selectionC8'),\r\n createElement('jedz_se_y_c_9_t', 'jedz_se_y_c_9_d', 'selectionC9'),\r\n createElement('jedz_se_y_c_10_t', 'jedz_se_y_c_10_d', 'selectionC10'),\r\n createElement('jedz_se_y_c_11_t', 'jedz_se_y_c_11_d', 'selectionC11'),\r\n createElement('jedz_se_y_c_12_t', 'jedz_se_y_c_12_d', 'selectionC12'),\r\n createElement('jedz_se_y_c_13_t', 'jedz_se_y_c_13_d', 'selectionC13'),\r\n createElement('jedz_se_y_c_14_t', 'jedz_se_y_c_14_d', 'selectionC14'),\r\n createElement('jedz_se_y_c_15_t', 'jedz_se_y_c_15_d', 'selectionC15'),\r\n createElement('jedz_se_y_c_16_t', 'jedz_se_y_c_16_d', 'selectionC16'),\r\n createElement('jedz_se_y_c_17_t', 'jedz_se_y_c_17_d', 'selectionC17'),\r\n createElement('jedz_se_y_c_18_t', 'jedz_se_y_c_18_d', 'selectionC18'),\r\n ]),\r\n s4: createItem('jedz_se_y_d_t', 'jedz_se_y_d_d', 's4', [\r\n createElement('jedz_se_y_d_1_t', 'jedz_se_y_d_1_d', 'selectionD1'),\r\n createElement('jedz_se_y_d_2_t', 'jedz_se_y_d_2_d', 'selectionD2'),\r\n ]),\r\n}\r\n\r\nconst elements2 = {\r\n n1: createItem('jedz_se_n_a_t', 'jedz_se_n_a_d', 'n1',\r\n [\r\n createElement('jedz_se_n_1_t', 'jedz_se_n_1_d', '1', 'disabled')],\r\n 'disabled'),\r\n}\r\n\r\nexport default {\r\n true: Object.values(elements),\r\n false: Object.values(elements2),\r\n};\r\n\r\nexport const getInitValues = (sectionId, espdList, idPrefix) => {\r\n const item = elements[sectionId]\r\n return item.elements.reduce((prev, curr) => {\r\n return {\r\n ...prev,\r\n [curr.id]: getObjectValue(`${idPrefix}.${curr.id}`, espdList),\r\n }\r\n }, {})\r\n}\r\n\r\n\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource, setSaveStatusDialog, setSaveStatusLoading} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport validateSection from './helpers/validateSection';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\n\r\nconst ESPD_LIST_RESOURCE_KEY = 'espdList'\r\n\r\nconst getList = async (id, separateForEachDealing) => {\r\n\r\n separateForEachDealing = separateForEachDealing === undefined ? undefined : separateForEachDealing === 'true' || separateForEachDealing === true;\r\n const params = {\r\n separateForEachDealing\r\n }\r\n\r\n try {\r\n const espdList = await RestRequestGET(Endpoints.ESPD(id), {params});\r\n espdList.separateForEachDealing = String(espdList.separateForEachDealing);\r\n reduxStore.dispatch(setResource(ESPD_LIST_RESOURCE_KEY, espdList));\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst _formatSingleEspd = (espd) => {\r\n\r\n const {\r\n e1, e2, e3, e4,\r\n s1, s2, s3, s4,\r\n n1,\r\n qualifications,\r\n _editable,\r\n ...other\r\n } = espd;\r\n\r\n let data = {\r\n ...e1, ...e2, ...e3, ...e4,\r\n ...s1, ...s2, ...s3, ...s4,\r\n selection: qualifications,\r\n declaration: qualifications === \"no\" ? true : false,\r\n ...other\r\n };\r\n\r\n return data;\r\n}\r\n\r\nconst _save = async (url, values, force = false) => {\r\n const data = _formatData(values);\r\n\r\n try {\r\n await RestRequestPOST(url, data)\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst _formatData = (values) => {\r\n const {espd, separateForEachDealing, espds} = values;\r\n const separate = separateForEachDealing === 'true' || separateForEachDealing === true;\r\n const data = {separateForEachDealing: separate, espds: null, espd: null};\r\n\r\n if (separate) {\r\n data.espds = [];\r\n for (let i = 0; i < espds.length; i++)\r\n data.espds.push(_formatSingleEspd(espds[i]));\r\n } else {\r\n data.espd = _formatSingleEspd(espd);\r\n }\r\n return data;\r\n}\r\n\r\nconst save = async (id, values) => {\r\n reduxStore.dispatch(setSaveStatusLoading())\r\n try {\r\n const res = await _save(Endpoints.ESPD_SAVE(id), values, true)\r\n reduxStore.dispatch(setSaveStatusDialog())\r\n if (res !== null) {\r\n await validateSection(DemandValidation.ESPD, id);\r\n }\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n}\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.ESPD_VALIDATE(id));\r\n}\r\n\r\nconst checkForDraft = async (id) => {\r\n return await RestRequestGET(Endpoints.ESPD_AUTOSAVE_CHECK(id));\r\n}\r\n\r\nconst loadDraft = async (id) => {\r\n const res = await RestRequestGET(Endpoints.ESPD_AUTOSAVE(id));\r\n res.result.separateForEachDealing = String(res.result.separateForEachDealing);\r\n reduxStore.dispatch(setResource(ESPD_LIST_RESOURCE_KEY, res.result));\r\n return res;\r\n}\r\n\r\nconst saveDraft = async (id, formValues) => {\r\n const data = _formatData(formValues);\r\n await RestRequestPOST(Endpoints.ESPD_AUTOSAVE(id), data);\r\n}\r\n\r\nconst deleteDraft = async (id) => {\r\n await RestRequestDELETE(Endpoints.ESPD_AUTOSAVE(id));\r\n}\r\n\r\nexport const clearEspdList = () => {\r\n reduxStore.dispatch(clearResource(ESPD_LIST_RESOURCE_KEY));\r\n}\r\n\r\nconst exportPDF = async (demandId, dealingId) => {\r\n if (dealingId) {\r\n return RestRequestBLOB(Endpoints.ESPD_PRINT_FOR_DEALING(demandId, dealingId));\r\n } else {\r\n return RestRequestBLOB(Endpoints.ESPD_PRINT_FOR_DEMAND(demandId));\r\n }\r\n}\r\nconst exportXML = async (demandId, dealingId) => {\r\n if (dealingId) {\r\n return RestRequestBLOB(Endpoints.ESPD_EXPORT_FOR_DEALING(demandId, dealingId));\r\n } else {\r\n return RestRequestBLOB(Endpoints.ESPD_EXPORT_FOR_DEMAND(demandId));\r\n }\r\n}\r\n\r\nexport default {\r\n save,\r\n validate,\r\n getList,\r\n checkForDraft,\r\n loadDraft,\r\n saveDraft,\r\n deleteDraft,\r\n clearEspdList,\r\n exportPDF,\r\n exportXML,\r\n ESPD_LIST_RESOURCE_KEY\r\n}","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value=Tr(trKey)) => ({\r\n\tlabel: Tr(trKey),\r\n\tvalue,\r\n})\r\n\r\nexport default [\r\n\tcreateItem('procedure_type_s_1', '1'),\r\n\tcreateItem('procedure_type_s_2', '2'),\r\n\tcreateItem('procedure_type_s_3', '3'),\r\n\tcreateItem('procedure_type_s_4', '4'),\r\n\tcreateItem('procedure_type_s_5', '5'),\r\n]\r\n\r\n\r\n\r\n\r\n\r\n","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (key) => ({\r\n value: key,\r\n label: Tr('espd_buyer_type_' + key),\r\n});\r\n\r\nexport default [\r\n createItem('CLASSIC'),\r\n createItem('SECTOR')\r\n]","import React from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Title from 'components/Title';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport TitledComponent from 'components/TitledComponent';\r\nimport Select from 'components/Select';\r\nimport selectItems from './constants/procedureType.values'\r\nimport buyerTypes from './constants/buyerType.values'\r\nimport TextInput from 'components/TextInput';\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*:not(:first-child)': {\r\n marginTop: theme.spacing(2),\r\n }\r\n }\r\n})\r\n\r\nfunction ProcedureSection({\r\n classes,\r\n formikProps,\r\n idPrefix,\r\n onBuyerTypeChanged\r\n }) {\r\n\r\n const show = (tr, text) => {\r\n return \r\n \r\n {text}\r\n \r\n \r\n }\r\n\r\n return (\r\n \r\n \r\n {Tr('procedure')}\r\n \r\n {Tr('tooltip_espd_buyer_type_1')}
{Tr('tooltip_espd_buyer_type_2')}}>\r\n \r\n \r\n \r\n \r\n {show('title', getObjectValue(`${idPrefix}.name`, formikProps.values))}\r\n {show('description', getObjectValue(`${idPrefix}.description`, formikProps.values))}\r\n {show('reference_number', getObjectValue(`${idPrefix}.number`, formikProps.values))}\r\n {show('official_name', getObjectValue(`${idPrefix}.orgName`, formikProps.values))}\r\n {show('state', getObjectValue(`${idPrefix}.orgCountry`, formikProps.values))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nProcedureSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ProcedureSection);\r\n","import React, { useState } from 'react'\r\nimport { withStyles, Typography, Paper, Collapse, Checkbox, Tooltip } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport clsx from 'clsx';\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowDown'\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\ttitle: {\r\n\t\tbackgroundColor: theme.palette.background.greyBackground,\r\n\t\tborder: `1px solid ${theme.palette.common.white}`,\r\n\t\tcursor: 'pointer',\r\n\t\t'&>*:nth-child(2)': {\r\n\t\t\tflexGrow: 1,\r\n\t\t}\r\n\t},\r\n\tpadding: {\r\n\t\tpadding: theme.spacing(1) / 2,\r\n\t},\r\n\trotate: {\r\n\t\ttransform: 'rotate(180deg)'\r\n\t},\r\n\tarrow: {\r\n\t\tpadding: theme.spacing(1),\r\n\t},\r\n\tnoCheckbox: {\r\n\t\tmarginLeft: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction Section({\r\n\tclasses,\r\n\tid,\r\n\tformikProps,\r\n\ttitle,\r\n\tdescription,\r\n\tchildren,\r\n\tdisabled,\r\n\tchecked\r\n}) {\r\n\tconst [open, setOpen] = useState(false)\r\n\tconst editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n\tconst isChecked = () => {\r\n\t\tconst elements = getObjectValue(id, formikProps.values);\r\n\t\tfor (let key in elements) {\r\n\t\t\tif (elements[key]) return true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\tconst handleChange = () => {\r\n\r\n\t\tconst elements = getObjectValue(id, formikProps.values);\r\n\t\tif (isChecked()) {\r\n\t\t\tfor (let key in elements) {\r\n\t\t\t\tif (elements[key]) formikProps.setFieldValue(`${id}.${key}`, false);\r\n\t\t\t}\r\n\t\t\treturn\r\n\t\t} else {\r\n\t\t\tfor (let key in elements) {\r\n\t\t\t\tformikProps.setFieldValue(`${id}.${key}`, true)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tconst checkedValue = checked ? checked : isChecked()\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{id &&\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t setOpen(!open)}\r\n\t\t\t\t\t\tclassName={clsx({\r\n\t\t\t\t\t\t\t[classes.noCheckbox]: !Boolean(id)\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t setOpen(!open)}\r\n\t\t\t\t\t\t\tclassName={clsx(classes.arrow, {\r\n\t\t\t\t\t\t\t\t[classes.rotate]: open\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{description}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{children}\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nSection.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(Section);","import React, { useEffect } from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Checkbox from 'components/Checkbox';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport { connect } from 'react-redux'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\ttitle: {\r\n\t\tfontWeight: theme.typography.fontWeightBold\r\n\t},\r\n\tdescription: {\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t\t'&:not(:first-child)': {\r\n\t\t\tpaddingTop: theme.spacing(1),\r\n\t\t}\r\n\t}\r\n})\r\n\r\nfunction Element({\r\n\tclasses,\r\n\ttitle,\r\n\tdescription,\r\n\tid,\r\n\tformikProps,\r\n\tdisabled,\r\n\tchecked,\r\n\tespdList\r\n}) {\r\n\tconst descArr = description.split('\\n')\r\n\tconst editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n\t// useEffect(() => {\r\n\t// \tif (checked) formikProps.setFieldValue(id, checked)\r\n\t// \t// eslint-disable-next-line\r\n\t// }, [checked])\r\n\r\n\r\n\r\n\tuseEffect(() => {\r\n\t\tif (espdList) {\r\n\t\t\tlet newId = id.split(\".\")[1]\r\n\t\t\tlet isChecked = getObjectValue(newId, espdList)\r\n\t\t\tif (isChecked) formikProps.setFieldValue(id, isChecked)\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [])\r\n\r\n\r\n\tconst titleComponent = (\r\n\t\t\r\n\t\t\t{title}\r\n\t\t)\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{Boolean(id) ?\r\n\t\t\t\t\t : titleComponent\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t<>\r\n\t\t\t\t{descArr.map((text, i) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{text}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)\r\n\t\t\t\t})}\r\n\t\t\t>\r\n\t\t\r\n\t)\r\n}\r\n\r\nElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n\tespdList: state.resources.espdList\r\n}), {\r\n\t})(withStyles(style)(Element));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Element from './Element';\r\n\r\nfunction AllElements(\r\n {\r\n id,\r\n formikProps,\r\n elements,\r\n disabled\r\n }) {\r\n return elements.map((item, i) => {\r\n const elId = Boolean(item.id) && Boolean(id) ? `${id}.${item.id}` : undefined;\r\n return (\r\n \r\n )\r\n })\r\n}\r\n\r\nAllElements.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default AllElements;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Section from './Section';\r\nimport AllElements from './AllElements';\r\n\r\nfunction AllSections(\r\n {\r\n values,\r\n formikProps,\r\n idPrefix,\r\n sectorBuyer\r\n }) {\r\n return values.map(\r\n ({\r\n title,\r\n description,\r\n id,\r\n type,\r\n elements,\r\n }, i) => {\r\n return (\r\n \r\n )\r\n })\r\n}\r\n\r\nAllSections.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default AllSections;","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Title from 'components/Title';\r\nimport exclusionValues from './constants/exclusion.values'\r\nimport AllSections from './components/AllSections';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\tmarginTop: theme.spacing(2)\r\n\t\t}\r\n\t}\r\n})\r\n\r\nfunction ExclusionSection({\r\n\tclasses,\r\n\tformikProps,\r\n\tidPrefix,\r\n\tsectorBuyer\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{Tr('exclusion_ground')}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nExclusionSection.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ExclusionSection);","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value=Tr(trKey)) => ({\r\n\tlabel: Tr(trKey),\r\n\tvalue,\r\n})\r\n\r\nexport default [\r\n\tcreateItem('yes', 'yes'),\r\n\tcreateItem('no', 'no'),\r\n]\r\n\r\n","import React from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Title from 'components/Title';\r\nimport AllSections from './components/AllSections';\r\nimport Tr from 'translations/Translations';\r\nimport elements from './constants/selection.values'\r\nimport RadioGroup from 'components/RadioGroup';\r\nimport EspdBooleanItems from 'constants/EspdBooleanItems';\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\tmarginTop: theme.spacing(2)\r\n\t\t}\r\n\t}\r\n})\r\n\r\nfunction SelectionSection({\r\n\tclasses,\r\n\tformikProps,\r\n\tidPrefix\r\n}) {\r\n\tconst variant = getObjectValue(`${idPrefix}.qualifications`, formikProps.values)\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{Tr('qualifications')}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{Tr('jedz_se')}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nSelectionSection.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(SelectionSection);","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Button from \"components/Button\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '& > *': {\r\n marginLeft: theme.spacing(1),\r\n },\r\n whiteSpace: 'nowrap',\r\n }\r\n})\r\n\r\nfunction ExportJedzButtons(\r\n {\r\n classes,\r\n dealingId,\r\n demandId,\r\n setConfirmPopupData,\r\n }) {\r\n\r\n const exportPdfClick = () => {\r\n setConfirmPopupData({open: true, dealingId, demandId, type: 'pdf'})\r\n };\r\n\r\n const exportXmlClick = () => {\r\n setConfirmPopupData({open: true, dealingId, demandId, type: 'xml'})\r\n };\r\n\r\n return (\r\n \r\n \r\n\r\n
)\r\n}\r\n\r\nExportJedzButtons.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ExportJedzButtons);","import React, {useState} from 'react'\r\nimport {Box, Divider, Paper, Tooltip, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport clsx from 'clsx';\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowDown'\r\nimport Tr from 'translations/Translations';\r\nimport ExportJedzButtons from \"./ExportJedzButtons\";\r\nimport WarningIcon from \"@material-ui/icons/Warning\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*:nth-child(1)': {\r\n flexGrow: 1,\r\n }\r\n },\r\n cursorPointer: {\r\n cursor: 'pointer'\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing(2),\r\n },\r\n buttonRow: {\r\n '& > *': {\r\n marginLeft: theme.spacing(1),\r\n },\r\n whiteSpace: 'nowrap',\r\n },\r\n title: {\r\n padding: '10px 0'\r\n },\r\n padding: {\r\n padding: theme.spacing(4)\r\n },\r\n rotate: {\r\n transform: 'rotate(180deg)'\r\n },\r\n arrow: {\r\n padding: theme.spacing(1),\r\n }\r\n})\r\n\r\nfunction DealingJedzSection(\r\n {\r\n classes,\r\n index,\r\n idPrefix,\r\n dealingId,\r\n demandId,\r\n setConfirmPopupData,\r\n title,\r\n formikProps,\r\n children,\r\n }) {\r\n const [open, setOpen] = useState(false);\r\n const error = getObjectValue(`${idPrefix}.qualifications`, formikProps.errors, false);\r\n\r\n const getTitleComponent = () => (\r\n setOpen(!open)}\r\n >\r\n {title}\r\n \r\n )\r\n return (\r\n \r\n \r\n \r\n \r\n {index + 1}.\r\n {getTitleComponent()}\r\n \r\n
\r\n {error && \r\n \r\n }\r\n \r\n \r\n setOpen(!open)}\r\n className={clsx(classes.arrow, classes.cursorPointer, {\r\n [classes.rotate]: open\r\n })}\r\n />\r\n \r\n \r\n {open &&\r\n \r\n {children}\r\n
\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nDealingJedzSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(DealingJedzSection);","import React, {useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport ProcedureSection from \"./ProcedureSection\";\r\nimport ExclusionSection from \"./ExclusionSection\";\r\nimport SelectionSection from \"./SelectionSection\";\r\nimport DealingJedzSection from \"./components/DealingJedzSection\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport EspdService from \"services/EspdService\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport RadioGroup from \"components/RadioGroup\";\r\nimport BooleanItems from \"constants/BooleanItems\";\r\nimport Tr from \"translations/Translations\";\r\nimport ExportJedzButtons from \"./components/ExportJedzButtons\";\r\nimport LoadingScreen from \"components/complex/loadingScreen/LoadingScreen\";\r\nimport {Typography} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport Button from \"components/Button\";\r\nimport Dialog from \"components/Dialog\";\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n buttonRow: {\r\n marginTop: theme.spacing(1),\r\n textAlign: \"end\"\r\n }\r\n}));\r\n\r\nconst defaultConfirmData = {open: false, demandId: undefined, dealingId: undefined, type: undefined};\r\n\r\nfunction JEDZFormContent(\r\n {\r\n formikProps,\r\n demandId,\r\n handleJedzTypeChange,\r\n sectionCompleted\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [confirmPopupData, setConfirmPopupData] = useState(defaultConfirmData);\r\n const [downloadingInProgress, setDownloadingInProgress] = useState(false);\r\n\r\n const isSectorBuyer = (buyerType) => {\r\n return 'SECTOR' === buyerType;\r\n }\r\n\r\n const exportTemplate = ({demandId, dealingId, type}) => {\r\n\r\n setDownloadingInProgress(true);\r\n if (type === 'xml') {\r\n EspdService.exportXML(demandId, dealingId).finally(() => {\r\n setDownloadingInProgress(false);\r\n })\r\n } else if (type === 'pdf') {\r\n EspdService.exportPDF(demandId, dealingId).finally(() => {\r\n setDownloadingInProgress(false);\r\n })\r\n }\r\n setConfirmPopupData(defaultConfirmData);\r\n }\r\n\r\n const handleBuyerTypeChanged = (newBuyerType, fieldPath) => {\r\n if (!isSectorBuyer(newBuyerType)) {\r\n for (let s of ['e1', 'e2']) {\r\n const elements = getObjectValue(`${fieldPath}.${s}`, formikProps.values);\r\n for (let key in elements) {\r\n if (!elements[key])\r\n formikProps.setFieldValue(`${fieldPath}.${s}.${key}`, true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const separateForDealing = formikProps.values.separateForEachDealing === 'true';\r\n const idPrefix = separateForDealing ? 'espds' : 'espd';\r\n let demandSectorBuyer = separateForDealing ? false : isSectorBuyer(formikProps.values.espd.espdBuyerType);\r\n return (\r\n <>\r\n \r\n handleJedzTypeChange(!separateForDealing)}\r\n />\r\n {!separateForDealing && }\r\n \r\n\r\n {separateForDealing ?\r\n <>\r\n {formikProps.values.espds.map((el, index) => {\r\n const dealingIdPrefix = `${idPrefix}.${index}`;\r\n let dealingSectorBuyer = isSectorBuyer(el.espdBuyerType);\r\n return \r\n handleBuyerTypeChanged(event.target.value, dealingIdPrefix)}/>\r\n \r\n \r\n \r\n })}\r\n >\r\n :\r\n <>\r\n handleBuyerTypeChanged(event.target.value, idPrefix)}/>\r\n \r\n \r\n >\r\n }\r\n\r\n \r\n\r\n setConfirmPopupData(defaultConfirmData)}\r\n onConfirm={() => exportTemplate(confirmPopupData)}\r\n open={sectionCompleted && confirmPopupData.open}\r\n labelConfirm='export'\r\n labelCancel='cancel'\r\n />\r\n {downloadingInProgress && }\r\n >\r\n )\r\n}\r\n\r\nJEDZFormContent.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default JEDZFormContent;\r\n","import React, {memo, useEffect, useRef, useState} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport {getInitValues as getExInitValues} from './constants/exclusion.values';\r\nimport {getInitValues as getSeInitValues} from './constants/selection.values';\r\nimport {connect} from 'react-redux'\r\nimport EspdService from 'services/EspdService';\r\nimport {withRouter} from \"react-router\";\r\nimport Loading from 'components/Loading';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport {DemandValidation, DemandValidationKeys} from 'constants/DemandValidation';\r\nimport JEDZFormContent from \"./JEDZFormContent\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport Tr from \"translations/Translations\";\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport reduxStore from \"redux/store\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport {setFormDraftLoaded} from \"redux/actions\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\n\r\n\r\nconst style = theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n icon: {\r\n marginRight: theme.spacing(1),\r\n }\r\n})\r\n\r\nfunction JEDZ(\r\n {\r\n classes,\r\n stepperState,\r\n match,\r\n demandValidation,\r\n espdList,\r\n setFormDraftLoaded,\r\n demandHeader\r\n }) {\r\n const id = match.params.id;\r\n const section = demandValidation.find(x => x.section === DemandValidation.ESPD);\r\n const sectionCompleted = section ? section.status === 'OK' : false;\r\n const FORM_ID = DemandValidationKeys.ESPD;\r\n const typeChanged = useRef(false);\r\n const [draftConfirm, setDraftConfirm] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active;\r\n useStepperStateCloseValidator(FORM_ID, ()=> {\r\n if(typeChanged.current)\r\n return false;\r\n const dirty = reduxStore.getState()?.formValues?.[FORM_ID + \"_dirty\"];\r\n const draftLoaded = reduxStore.getState()?.formValues?.[FORM_ID + \"_draftLoaded\"];\r\n return dirty !== true && !draftLoaded;\r\n },\r\n autoSaveFormDraftActive ? () => EspdService.deleteDraft(id) : undefined,\r\n autoSaveFormDraftActive ? () => saveFormDraft(id, EspdService.saveDraft, FORM_ID) : undefined);\r\n\r\n useEffect(() => {\r\n EspdService.getList(id).then(() => {\r\n if (autoSaveFormDraftActive)\r\n EspdService.checkForDraft(id).then(res => setDraftConfirm(res.result))\r\n });\r\n\r\n return () => EspdService.clearEspdList();\r\n }, [id, autoSaveFormDraftActive])\r\n\r\n\r\n const handleSubmit = (values) => {\r\n EspdService.save(id, values)\r\n }\r\n\r\n const handleJedzTypeChange = (separateForEachDealing) => {\r\n typeChanged.current = true;\r\n EspdService.clearEspdList();\r\n EspdService.getList(id, separateForEachDealing);\r\n }\r\n\r\n const loadEspdDraft = () => {\r\n setDraftConfirm(false);\r\n setWorking(true);\r\n EspdService.loadDraft(id).then(res => setFormDraftLoaded(FORM_ID, res.success));\r\n setWorking(false);\r\n }\r\n\r\n\r\n const getField = (id, defaultValue = '') => getObjectValue(id, espdList, defaultValue)\r\n const getSingleJedzValue = (idPrefix) => {\r\n return {\r\n identity: getField(`${idPrefix}.identity`),\r\n espdBuyerType: getField(`${idPrefix}.espdBuyerType`),\r\n procedureType: getField(`${idPrefix}.procedureType`),\r\n noticeReferenceNumber: getField(`${idPrefix}.noticeReferenceNumber`, null),\r\n e1: getExInitValues('e1', espdList, idPrefix),\r\n e2: getExInitValues('e2', espdList, idPrefix),\r\n e3: getExInitValues('e3', espdList, idPrefix),\r\n e4: getExInitValues('e4', espdList, idPrefix),\r\n s1: getSeInitValues('s1', espdList, idPrefix),\r\n s2: getSeInitValues('s2', espdList, idPrefix),\r\n s3: getSeInitValues('s3', espdList, idPrefix),\r\n s4: getSeInitValues('s4', espdList, idPrefix),\r\n n1: {1: true},\r\n qualifications: getField(`${idPrefix}.selection`),\r\n name: getField(`${idPrefix}.name`),\r\n description: getField(`${idPrefix}.description`),\r\n number: getField(`${idPrefix}.number`),\r\n orgName: getField(`${idPrefix}.orgName`),\r\n orgCountry: getField(`${idPrefix}.orgCountry`),\r\n }\r\n }\r\n\r\n\r\n const getInitialValues = () => {\r\n\r\n const separateForEachDealing = getField(\"separateForEachDealing\", \"false\") === 'true';\r\n\r\n const initVal = {\r\n _editable: section ? section.editable : true,\r\n separateForEachDealing: separateForEachDealing.toString(),\r\n };\r\n if (separateForEachDealing) {\r\n const espds = espdList.espds.map((el, index) => {\r\n return getSingleJedzValue(`espds.${index}`);\r\n });\r\n initVal.espds = espds;\r\n } else {\r\n const espd = getSingleJedzValue('espd');\r\n initVal.espd = espd;\r\n }\r\n return initVal;\r\n };\r\n\r\n const searchForBooleanValue = (espd, sections, searchedBooleanValue) => {\r\n let found = false;\r\n for (let s of sections) {\r\n found = findBooleanValue(espd, s, searchedBooleanValue) ? true : false;\r\n if (found)\r\n break;\r\n }\r\n return found;\r\n }\r\n\r\n const findBooleanValue = (espd, section, searchedBooleanValue) => {\r\n return Object.values(espd[section]).some(x => {\r\n return searchedBooleanValue ? x : !x;\r\n });\r\n }\r\n\r\n const validationSchema = () => VS.lazy((values) => {\r\n const separateForEachDealing = getObjectValue('separateForEachDealing', values, 'true');\r\n\r\n const getEspdVSObject = (espd) => {\r\n const qualifications = getObjectValue('qualifications', espd, 'no');\r\n const buyerType = getObjectValue('espdBuyerType', espd, 'CLASSIC');\r\n\r\n const qualiOk = qualifications === 'no' || searchForBooleanValue(espd, ['s1', 's2', 's3', 's4'], true);\r\n const buyerTypeOk = buyerType === 'SECTOR' || !searchForBooleanValue(espd, ['e1', 'e2'], false);\r\n return VS.object({\r\n qualifications: VS.string().test('ESPDQualifications', Tr(\"jedz_qualifications_missing\"), (qualifications) => {\r\n return qualiOk;\r\n }),\r\n espdBuyerType: VS.string().test('ESPDBuyerType', Tr(\"espd_buyer_type_CLASSIC_all_e1_e2_must_be_true\"), () => {\r\n return buyerTypeOk;\r\n })\r\n });\r\n };\r\n\r\n if (separateForEachDealing === 'true') {\r\n if (values.espds) {\r\n return VS.object({\r\n espds: VS.arrayOf(VS.lazy(espd => getEspdVSObject(espd)))\r\n })\r\n }\r\n } else {\r\n if (values.espd) {\r\n return VS.object(\r\n {\r\n espd: VS.lazy(espd => getEspdVSObject(espd))\r\n })\r\n }\r\n }\r\n return VS.any();\r\n });\r\n if (!espdList || working) return ;\r\n\r\n return (\r\n \r\n\r\n
\r\n
setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n \r\n )\r\n}\r\n\r\nJEDZ.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n stepperState: state.stepper.state,\r\n espdList: state.resources.espdList,\r\n demandValidation: state.resources.demandValidation,\r\n demandHeader: state.resources.demandHeader\r\n}), {setFormDraftLoaded})(withRouter(withStyles(style)(memo(JEDZ))));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport JEDZ from './jedz/JEDZ';\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import React, {useEffect} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport SiwzService from 'services/SiwzService';\r\nimport {withRouter} from \"react-router\";\r\nimport {connect} from 'react-redux'\r\nimport Form from 'components/Form';\r\nimport DocumentsTables from 'components/complex/documentsTables/DocumentsTables';\r\nimport {DemandValidation, DemandValidationKeys} from 'constants/DemandValidation';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport {DemandValidationProvider} from 'context/DemandValidationContext';\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport HeaderService from \"services/HeaderService\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n }\r\n}));\r\n\r\nfunction Documents(\r\n {\r\n expanded,\r\n match,\r\n demandValidation,\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const demandId = match.params.id\r\n const currentDemandValidation = DemandValidation.SIWZ;\r\n const FORM_ID = DemandValidationKeys[currentDemandValidation];\r\n\r\n const section = demandValidation.find(x => x.section === currentDemandValidation);\r\n const siwzEditable = section ? !!section.siwzEditable : false;\r\n const repoEditable = section ? !!section.repoEditable : false;\r\n\r\n useEffect(()=> {\r\n HeaderService.get(demandId);\r\n },[demandId])\r\n\r\n const handleSubmit = () => SiwzService.save(demandId, currentDemandValidation);\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\nDocuments.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(Documents));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Documents from './documents/Documents';\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import React, {useState} from 'react'\r\nimport {withStyles, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport TextInput from 'components/TextInput';\r\nimport GridBlock from 'components/GridBlock';\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE'\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n text: {\r\n marginLeft: theme.spacing(2),\r\n }\r\n})\r\n\r\nfunction WadiumField(\r\n {\r\n classes,\r\n formikProps,\r\n index,\r\n }) {\r\n\r\n const id = `dealings.${index}.value`;\r\n const estimatedNetValueId = `dealings.${index}.estimatedNetValue`;\r\n const warningThreshold = getObjectValue('warningThreshold', formikProps.values, 1);\r\n\r\n const isWarning = (guaranteeValue) => {\r\n let estimatedNetValue = getObjectValue(estimatedNetValueId, formikProps.values, null);\r\n\r\n if (!estimatedNetValue || guaranteeValue === null) {\r\n return true;\r\n }\r\n\r\n return warningThreshold * estimatedNetValue < guaranteeValue;\r\n }\r\n\r\n const [warning, setWarning] = useState(() => isWarning(getObjectValue(id, formikProps.values, null)));\r\n\r\n\r\n const change = (val) => {\r\n let number = parseFloat(val);\r\n setWarning(isWarning(number));\r\n }\r\n\r\n return (<>\r\n \r\n \r\n \r\n PLN\r\n \r\n \r\n {warning && \r\n {Tr('valuebiggerthanthreshold', {value: (warningThreshold * 100)})}\r\n }\r\n >\r\n )\r\n}\r\n\r\nWadiumField.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(WadiumField);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport SimpleTable from 'components/complex/simpleTable/SimpleTable';\r\nimport WadiumField from './WadiumField';\r\nimport Tr from 'translations/Translations';\r\nimport { withRouter } from \"react-router\";\r\nimport { connect } from 'react-redux'\r\nimport Loading from 'components/Loading';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tlpColumn: theme.components.table.lpColumn,\r\n\twadiumColumn: {\r\n\t\twidth: 300,\r\n\t},\r\n\ttext: {\r\n\t\t...theme.typography.cutLines(1),\r\n\t}\r\n})\r\n\r\nfunction WadiumTable({\r\n\tclasses,\r\n\tformikProps,\r\n\tguaranteeList\r\n}) {\r\n\r\n\tconst createItems = (item, i) => {\r\n\t\treturn [\r\n\t\t\ti+1,\r\n\t\t\titem.name,\r\n\t\t\t\r\n\t\t]\r\n\t}\r\n\r\n\tconst createTab = () => {\r\n\t\tconst tab = []\r\n\t\tguaranteeList.dealings.forEach((x, i) => tab.push(createItems(x, i)));\r\n\t\treturn tab\r\n\t}\r\n\r\n\r\n\tif (!guaranteeList) return \r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t
\r\n\t)\r\n}\r\n\r\nWadiumTable.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tguaranteeList: state.resources.guaranteeList\r\n}), {\r\n})(withRouter(withStyles(style)(WadiumTable)));\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {clearResource, setResource, setSaveStatusClosed, setSaveStatusDialog, setSaveStatusLoading} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport validateSection from './helpers/validateSection';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport objectExtension from 'libs/objectExtension';\r\n\r\nconst GUARANTEE_LIST_RESOURCE_ID = 'guaranteeList';\r\n\r\nconst get = async (id) => {\r\n\ttry {\r\n\t\tconst res = await RestRequestGET(Endpoints.GUARANTEE(id))\r\n\t\treduxStore.dispatch(setResource(GUARANTEE_LIST_RESOURCE_ID, res))\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nconst _save = async (url, values, force = false) => {\r\n\tconst data = values;\r\n\r\n\tconst { resources } = reduxStore.getState()\r\n\tconst { guaranteeList } = resources;\r\n\tconst diff = objectExtension.diff(data, guaranteeList);\r\n\tif (!force && diff === null) return null;\r\n\r\n\ttry {\r\n\t\treturn await RestRequestPOST(url, data)\r\n\t} catch (error) {\r\n\t\tthrow error;\r\n\t}\r\n}\r\n\r\nconst save = async (id, values) => {\r\n\treduxStore.dispatch(setSaveStatusLoading())\r\n\ttry {\r\n\t\tconst res = await _save(Endpoints.GUARANTEE(id), values, true)\r\n\t\tif (res.success) {\r\n\t\t\treduxStore.dispatch(setSaveStatusDialog())\r\n\t\t\tif (res !== null) {\r\n\t\t\t\tawait validateSection(DemandValidation.GUARANTEE, id);\r\n\t\t\t\tawait validateSection(DemandValidation.NATIONAL_NOTICE, id, false);\r\n\t\t\t}\r\n\t\t}else {\r\n\t\t\treduxStore.dispatch(setSaveStatusClosed())\r\n\t\t}\r\n\t\treturn res;\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nconst validate = async (id) => {\r\n\treturn RestRequestGET(Endpoints.GUARANTEE_VALIDATE(id))\r\n}\r\n\r\nconst checkForDraft = async (id) => {\r\n\treturn await RestRequestGET(Endpoints.GUARANTEE_AUTOSAVE_CHECK(id));\r\n}\r\n\r\nconst loadDraft = async (id) => {\r\n\tconst res = await RestRequestGET(Endpoints.GUARANTEE_AUTOSAVE(id));\r\n\treduxStore.dispatch(setResource(GUARANTEE_LIST_RESOURCE_ID, res.result));\r\n\treturn res;\r\n}\r\n\r\nconst saveDraft = async (id, formValues) => {\r\n\tawait RestRequestPOST(Endpoints.GUARANTEE_AUTOSAVE(id), formValues);\r\n}\r\n\r\nconst deleteDraft = async (id) => {\r\n\tawait RestRequestDELETE(Endpoints.GUARANTEE_AUTOSAVE(id));\r\n}\r\n\r\nconst clearGuaranteeList = () => {\r\n\treduxStore.dispatch(clearResource(GUARANTEE_LIST_RESOURCE_ID));\r\n}\r\n\r\nexport default {\r\n\tGUARANTEE_LIST_RESOURCE_ID,\r\n\tclearGuaranteeList,\r\n\tget,\r\n\tsave,\r\n\tvalidate,\r\n\tcheckForDraft,\r\n\tloadDraft,\r\n\tsaveDraft,\r\n\tdeleteDraft\r\n}\r\n","import ValidationShema from 'constants/ValidationShema';\r\n\r\nexport default ValidationShema.lazy( values => {\r\n\tlet shape = {}\r\n\tif(values.enabled){\r\n\t\tshape = {\r\n\t\t\tdealings: ValidationShema.arrayOfShape({\r\n\t\t\t\tvalue: ValidationShema.amount()\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\treturn ValidationShema.object(shape)\r\n})","import React, {useEffect, useState} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport Select from 'components/Select';\r\nimport BooleanItems from 'constants/BooleanItems';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport WadiumTable from './components/WadiumTable';\r\nimport {connect} from 'react-redux'\r\nimport SaveFormikValues from 'components/SaveFormikValues';\r\nimport GuaranteeService from 'services/GuaranteeService';\r\nimport {withRouter} from \"react-router\";\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport Loading from 'components/Loading';\r\nimport validation from './constants/validation';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport {setFormDraftLoaded} from \"redux/actions\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n container: {\r\n \"&>*\": {\r\n width: '100%'\r\n }\r\n }\r\n})\r\n\r\nfunction Wadium(\r\n {\r\n classes,\r\n stepperState,\r\n match,\r\n demandValidation,\r\n guaranteeList,\r\n setFormDraftLoaded,\r\n demandHeader\r\n }) {\r\n const FORM_ID = 'mp_1_guarantee'\r\n const section = demandValidation.find(x => x.section === DemandValidation.GUARANTEE);\r\n const id = match.params.id;\r\n const [draftConfirm, setDraftConfirm] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active;\r\n useStepperStateCloseValidator(FORM_ID, undefined,\r\n autoSaveFormDraftActive ? () => GuaranteeService.deleteDraft(id) : undefined,\r\n autoSaveFormDraftActive ? () => saveFormDraft(id, GuaranteeService.saveDraft, FORM_ID) : undefined);\r\n\r\n useEffect(() => {\r\n GuaranteeService.get(id).then(() => {\r\n if (autoSaveFormDraftActive)\r\n GuaranteeService.checkForDraft(id).then(res => setDraftConfirm(res.result))\r\n });\r\n\r\n return () => GuaranteeService.clearGuaranteeList();\r\n }, [id, autoSaveFormDraftActive])\r\n\r\n const handleSubmit = (values, formikProps) => {\r\n GuaranteeService.save(id, values)\r\n .then((result) => {\r\n if (!result.success) {\r\n const errors = result.errors;\r\n Object.keys(errors).forEach((errorId) => {\r\n formikProps.setFieldError(errorId.replaceAll(\"[\", \".\").replaceAll(\"]\", \"\"), errors[errorId])\r\n })\r\n }\r\n });\r\n }\r\n\r\n const loadGuaranteeDraft = () => {\r\n setDraftConfirm(false);\r\n setWorking(true);\r\n GuaranteeService.loadDraft(id).then(res => setFormDraftLoaded(FORM_ID, res.success));\r\n setWorking(false);\r\n }\r\n\r\n const getField = (id, defaultValue = '') => getObjectValue(id, guaranteeList, defaultValue);\r\n\r\n if (!guaranteeList || working) {\r\n return \r\n }\r\n return (\r\n <>\r\n \r\n setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n >\r\n )\r\n}\r\n\r\nWadium.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n stepperState: state.stepper.state,\r\n guaranteeList: state.resources.guaranteeList,\r\n demandValidation: state.resources.demandValidation,\r\n demandHeader: state.resources.demandHeader\r\n}), {setFormDraftLoaded})(withRouter(withStyles(style)(Wadium)));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Wadium from './Wadium';\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Index;","import React from 'react'\r\nimport LocationSearchingIcon from '@material-ui/icons/LocationSearching';\r\nimport LocationDisabledIcon from '@material-ui/icons/LocationDisabled';\r\nimport Tr from 'translations/Translations';\r\nimport IconButton from './IconButton';\r\n\r\nfunction IconExternalSignButton({\r\n enabled,\r\n ...props\r\n}) {\r\n return \r\n}\r\n\r\nexport default IconExternalSignButton;","import React, {useMemo} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport SimpleTable from 'components/complex/simpleTable/SimpleTable';\r\nimport Loading from 'components/Loading';\r\nimport moment from 'moment';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport IconExternalSignButton from \"components/button/IconExternalSignButton\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport PropTypes from 'prop-types';\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n cell: {\r\n padding: theme.spacing(1)\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n nameColumn: {\r\n wordBreak: \"break-all\",\r\n paddingRight: theme.spacing(2),\r\n },\r\n nipColumn: {\r\n width: 150,\r\n },\r\n addressColumn: {\r\n width: 200,\r\n whiteSpace: \"pre-line\"\r\n },\r\n emailColumn: {\r\n width: 170,\r\n wordBreak: \"break-all\"\r\n }\r\n}));\r\n\r\nfunction ContractorTable(\r\n {\r\n contractors,\r\n handleDelete,\r\n handleExternalSign,\r\n showJoinDate\r\n }) {\r\n\r\n const classes = useStyle();\r\n const showExternalSignColumn = !!handleExternalSign && contractors && contractors.items.findIndex((item, i) => item.externalOfferSign !== null) >= 0;\r\n\r\n const createItem = (item, i) => {\r\n const {contractor, invitationDate, externalOfferSign, joinMethod, joinDate} = item;\r\n\r\n const arr = [\r\n `${i + 1}`,\r\n contractor.name,\r\n `${contractor.vatin.prefix} ${contractor.vatin.number}`,\r\n `${contractor.address} \\n ${contractor.postCode} ${contractor.city}`,\r\n contractor.email,\r\n ];\r\n\r\n if(showJoinDate)\r\n arr.push(joinMethod === \"self\" ? moment(joinDate).format(DateFormats.DATETIME_FORMAT) : '')\r\n\r\n arr.push(invitationDate ? moment(invitationDate).format(DateFormats.DATETIME_FORMAT) : '');\r\n if (handleDelete)\r\n arr.push( handleDelete(item)}/>);\r\n if (showExternalSignColumn)\r\n arr.push(externalOfferSign !== null ? handleExternalSign(item)}/> : '');\r\n return arr;\r\n }\r\n\r\n const columnClasses = useMemo(() => {\r\n const arr = [\r\n classes.lpColumn,\r\n classes.nameColumn,\r\n classes.nipColumn,\r\n classes.addressColumn,\r\n classes.emailColumn,\r\n ];\r\n if(showJoinDate)\r\n arr.push(classes.dateColumn);\r\n\r\n arr.push(classes.dateColumn);\r\n\r\n if (handleDelete)\r\n arr.push(classes.buttonColumn);\r\n\r\n if (showExternalSignColumn)\r\n arr.push(classes.buttonColumn)\r\n return arr;\r\n }, [showExternalSignColumn, handleDelete, showJoinDate, classes]);\r\n\r\n\r\n const headers = useMemo(() => {\r\n const arr = [\r\n Tr('column_lp'),\r\n Tr('name'),\r\n Tr('nip_pesel'),\r\n Tr('adres'),\r\n Tr('email')\r\n ]\r\n if(showJoinDate)\r\n arr.push(Tr('join_demand_date'));\r\n\r\n arr.push(Tr('forwarding_invitation_date'));\r\n\r\n if (handleDelete)\r\n arr.push('');\r\n\r\n if (showExternalSignColumn)\r\n arr.push('');\r\n return arr;\r\n }, [showExternalSignColumn, showJoinDate, handleDelete])\r\n\r\n if (!contractors) return \r\n return (\r\n \r\n [\r\n ...createItem(item, i)\r\n ])\r\n }\r\n columnClasses={columnClasses}\r\n cellClassName={classes.cell}\r\n />\r\n
\r\n )\r\n}\r\n\r\nContractorTable.propTypes = {\r\n contractors: PropTypes.object,\r\n handleDelete: PropTypes.func,\r\n handleExternalSign: PropTypes.func,\r\n showJoinDate: PropTypes.bool\r\n}\r\n\r\nexport default ContractorTable;\r\n","import React, {useEffect, useState} from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport GridBlock from 'components/GridBlock';\r\nimport ContractorTable from 'components/complex/contractor/ContractorTable';\r\nimport InviteContactor from 'components/popup/inviteContactor/InviteContactor';\r\nimport AddContactor from 'components/popup/addContactor/AddContactor';\r\nimport {withRouter} from \"react-router\";\r\nimport ContractorService from 'services/ContractorService';\r\nimport {connect} from 'react-redux'\r\nimport Form from 'components/Form';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n marginLeft: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction ContactorPage(\r\n {\r\n classes,\r\n match,\r\n contractorList,\r\n demandValidation\r\n }) {\r\n const [invitePopup, setInvitePopup] = useState(false)\r\n const [addPopup, setAddPopup] = useState(false)\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === DemandValidation.CONTRACTOR);\r\n const editable = section ? section.editable : true;\r\n\r\n\r\n useEffect(() => {\r\n ContractorService.getList(demandId);\r\n return () => ContractorService.clearResources(ContractorService.CONTRACTOR_LIST_ID)\r\n // eslint-disable-next-line\r\n }, [demandId])\r\n\r\n const handleSubmit = () => {\r\n ContractorService.save(demandId)\r\n }\r\n\r\n\r\n const handleDelete = (data) => {\r\n ContractorService.deleteUser(match.params.id, data)\r\n }\r\n\r\n\r\n const handleInvite = (values) => {\r\n ContractorService.invite(demandId, values)\r\n setInvitePopup(false);\r\n }\r\n\r\n function addContractorsTab(data) {\r\n ContractorService.sendTabContractor(demandId, data.platformAdded)\r\n setAddPopup(false);\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nContactorPage.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n contractorList: state.resources.contractorList,\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withStyles(style)(withRouter(ContactorPage)));\r\n","import React from 'react'\r\nimport ContactorPage from './ContactorPage';\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nexport default Index;","import {RestRequestGET} from 'libs/RestRequest'\r\nimport Endpoints from 'constants/Endpoints'\r\nimport reduxStore from 'redux/store'\r\nimport {clearResource, setResource, setSaveStatusDialog, setSaveStatusLoading} from 'redux/actions'\r\nimport validateSection from './helpers/validateSection'\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\n\r\nconst NOTICE_LINK_RESOURCE_ID = 'noticeLink';\r\nconst NOTICE_PREVIEW_RESOURCE_ID = 'noticePreview';\r\n\r\nconst getLink = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.NOTICE(demandId));\r\n reduxStore.dispatch(\r\n setResource(NOTICE_LINK_RESOURCE_ID, res)\r\n )\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst save = async (demandId) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n\r\n try {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n await validateSection(DemandValidation.NOTICE, demandId);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.NOTICE_VALIDATE(id));\r\n}\r\n\r\nconst getPreviewUrl = async (id = -1) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.NOTICE_PREVIEW(id))\r\n reduxStore.dispatch(\r\n setResource(NOTICE_PREVIEW_RESOURCE_ID, res)\r\n )\r\n } catch (error) {\r\n reduxStore.dispatch(\r\n setResource(NOTICE_PREVIEW_RESOURCE_ID, {error: true})\r\n )\r\n }\r\n}\r\n\r\nconst clearResources = (id) => reduxStore.dispatch(clearResource(id));\r\n\r\n\r\nexport default {\r\n getLink,\r\n getPreviewUrl,\r\n save,\r\n validate,\r\n clearResources,\r\n NOTICE_PREVIEW_RESOURCE_ID,\r\n NOTICE_LINK_RESOURCE_ID\r\n};","import React, {useEffect} from 'react'\r\nimport Button from 'components/Button';\r\nimport Tr from 'translations/Translations';\r\nimport NoticeService from 'services/NoticeService';\r\nimport {withRouter} from \"react-router\";\r\nimport {connect} from 'react-redux'\r\nimport Loading from 'components/Loading';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\n\r\nfunction NoticePage(\r\n {\r\n match,\r\n noticeLink,\r\n demandValidation\r\n }) {\r\n const section = demandValidation.find(x => x.section === DemandValidation.NOTICE);\r\n const editable = section ? section.editable : false;\r\n\r\n\r\n const demandId = match.params.id;\r\n const handleClick = () => window.location.href = noticeLink.link.url\r\n\r\n useEffect(() => {\r\n NoticeService.getLink(demandId);\r\n return () => NoticeService.clearResources(NoticeService.NOTICE_LINK_RESOURCE_ID);\r\n }, [demandId])\r\n\r\n const handleSubmit = () => NoticeService.save(demandId)\r\n\r\n if (!noticeLink) return \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n noticeLink: state.resources.noticeLink,\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(NoticePage));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport NoticePage from './NoticePage';\r\n\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import Endpoints from \"../constants/Endpoints\";\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from \"../libs/RestRequest\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {clearResource, setResource, setSaveStatusDialog, setSaveStatusError, setSaveStatusLoading, setStepperState} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst BZP_CONTRACT_NOTICE_STATUS = 'bzpContractNoticeStatus';\r\n\r\nconst showError = (message) => {\r\n\treduxStore.dispatch(setSaveStatusError(message))\r\n}\r\n\r\nconst getContractNotice = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\nconst deleteLastContractNoticeVersion = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestDELETE(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE(demandId));\r\n\t\treturn isResponseValid(resp, showError);\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst createNewContractNoticeVersion = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_CREATE_NEW_VERSION(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst getContractNoticeDynamicDictionaries = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_DYNAMIC_DICTIONARIES(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst getContractNoticeTranslations = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_TRANSLATIONS(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst getContractNoticeDictionaries = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_DICTIONARIES(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst saveContractNoticeDraft = async (demandId, form) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestPOST(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_DRAFT(demandId), form);\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst saveContractNotice = async (demandId, form) => {\r\n\ttry {\r\n\t\treturn await RestRequestPOST(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE(demandId), form);\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t\tthrow e;\r\n\t}\r\n}\r\n\r\nconst publishContractNotice = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestPOST(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treduxStore.dispatch(setResource(BZP_CONTRACT_NOTICE_STATUS, resp.result))\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t\tthrow e;\r\n\t}\r\n}\r\n\r\nconst rollbackContractNotice = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestPOST(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_ROLLBACK(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treduxStore.dispatch(setResource(BZP_CONTRACT_NOTICE_STATUS, resp.result))\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t\tthrow e;\r\n\t}\r\n}\r\n\r\nconst publishContractNoticeUpdate = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestPOST(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_UPDATE(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treduxStore.dispatch(setResource(BZP_CONTRACT_NOTICE_STATUS, resp.result))\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t\tthrow e;\r\n\t}\r\n}\r\n\r\nconst rollbackContractNoticeUpdate = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestPOST(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_UPDATE_ROLLBACK(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treduxStore.dispatch(setResource(BZP_CONTRACT_NOTICE_STATUS, resp.result))\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t\tthrow e;\r\n\t}\r\n}\r\n\r\nconst saveContractNoticeSection = async (demandId) => {\r\n\treduxStore.dispatch(setSaveStatusLoading());\r\n\r\n\ttry {\r\n\t\treduxStore.dispatch(setSaveStatusDialog());\r\n\t\treduxStore.dispatch(setStepperState());\r\n\t\t//await validateSection(DemandValidation.NATIONAL_NOTICE, demandId);\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nconst getContractNoticeStatus = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_STATUS(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treduxStore.dispatch(setResource(BZP_CONTRACT_NOTICE_STATUS, resp.result))\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst getContractModificationNoticeStatus = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.NATIONAL_NOTICE_CONTRACT_MODIFICATION_NOTICE_STATUS(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treduxStore.dispatch(setResource(BZP_CONTRACT_NOTICE_STATUS, resp.result))\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst checkContractNoticeStatus = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestPUT(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_STATUS(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treduxStore.dispatch(setResource(BZP_CONTRACT_NOTICE_STATUS, resp.result))\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst validate = (id) => {\r\n\treturn RestRequestGET(Endpoints.NATIONAL_NOTICE_VALIDATE(id));\r\n}\r\n\r\nconst clearResources = (id) => reduxStore.dispatch(clearResource(id));\r\n\r\nexport default {\r\n\tgetContractNotice,\r\n\tgetContractNoticeTranslations,\r\n\tgetContractNoticeDictionaries,\r\n\tgetContractNoticeDynamicDictionaries,\r\n\tsaveContractNoticeSection,\r\n\tsaveContractNotice,\r\n\tsaveContractNoticeDraft,\r\n\tpublishContractNotice,\r\n\tgetContractNoticeStatus,\r\n\tgetContractModificationNoticeStatus,\r\n\tcheckContractNoticeStatus,\r\n\tclearResources,\r\n\tvalidate,\r\n\tcreateNewContractNoticeVersion,\r\n\tpublishContractNoticeUpdate,\r\n\tdeleteLastContractNoticeVersion,\r\n\trollbackContractNotice,\r\n\trollbackContractNoticeUpdate,\r\n\tBZP_CONTRACT_NOTICE_STATUS\r\n};\r\n","import React, {useMemo} from 'react'\r\nimport {withRouter} from \"react-router\";\r\nimport {connect} from 'react-redux'\r\nimport Form from \"components/Form\";\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport Button from \"components/Button\";\r\nimport Tr from \"translations/Translations\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport NationalNoticeService from \"services/NationalNoticeService\";\r\nimport {DemandValidation, DemandValidationKeys} from \"constants/DemandValidation\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport {Typography} from \"@material-ui/core\";\r\n\r\nfunction NationalNoticeSection(\r\n {\r\n match,\r\n demandValidation,\r\n demandHeader\r\n }) {\r\n\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === DemandValidation.NATIONAL_NOTICE);\r\n const editable = section ? section.editable : false;\r\n const handleSubmit = () => NationalNoticeService.saveContractNoticeSection(demandId)\r\n\r\n\r\n const reqSectionsError = useMemo(() => {\r\n const sections = [];\r\n sections.push(demandValidation.find(x => x.section === DemandValidation.SCHEDULE));\r\n if (!demandHeader.passiveOfferForm) {\r\n sections.push(demandValidation.find(x => x.section === DemandValidation.DEALINGS));\r\n }\r\n const errorSections = sections.filter(s => s.status !== DemandValidationSectionStatus.OK).map(s => Tr(DemandValidationKeys[s.section]));\r\n\r\n if (errorSections.length > 0) {\r\n return `${Tr(\"national_notice_sections_missing\")}: '${errorSections.join(\"', '\")}'`\r\n }\r\n return undefined;\r\n }, [demandValidation, demandHeader]);\r\n\r\n const handleClick = () => {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_NATIONAL_NOTICE_FORM_TYPE_ID, {formType: \"contractNotice\", id: demandId});\r\n RouterPath.redirect(href);\r\n }\r\n\r\n return (\r\n {!!reqSectionsError && {reqSectionsError}}\r\n \r\n \r\n \r\n
{Tr(\"bzp_notice_create_info\")}\r\n \r\n
)\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n demandHeader: state.resources.demandHeader,\r\n}), {})(withRouter(NationalNoticeSection));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport NationalNoticeSection from \"./NationalNoticeSection\";\r\n\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import React, {useEffect} from \"react\";\r\nimport Form from 'components/Form';\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidationKeys} from 'constants/DemandValidation';\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PapersGeneratorList from \"components/complex/papersGenerator/PapersGeneratorList\";\r\n\r\nfunction PreparingPapersGenerator(\r\n {\r\n match\r\n }) {\r\n const FORM_ID = DemandValidationKeys.PREPARING_PAPERS_GENERATOR;\r\n const id = match.params.id;\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getAvailablePapers(id);\r\n return () => {\r\n PapersGeneratorService.clearResources(PapersGeneratorService.PAPERS_GENERATOR_LIST_RESOURCE_ID);\r\n }\r\n }, [id])\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nPreparingPapersGenerator.propTypes = {\r\n}\r\n\r\nexport default withRouter(PreparingPapersGenerator);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport PreparingPapersGenerator from \"./PreparingPapersGenerator\";\r\n\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import reduxStore from 'redux/store'\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest'\r\nimport Endpoints from 'constants/Endpoints'\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport validateSection from './helpers/validateSection'\r\nimport {DemandValidation} from 'constants/DemandValidation'\r\n\r\nconst _FIRST_PUBLICATION_RESOURCE_ID = \"firstPublication\";\r\n\r\nconst publish = async (id = -1) => {\r\n\r\n const setError = () => {\r\n reduxStore.dispatch(\r\n setResource('publish', {error: true})\r\n )\r\n }\r\n\r\n if (id < 0) {\r\n setError();\r\n return null;\r\n }\r\n try {\r\n const res = await RestRequestPOST(Endpoints.PUBLISH_DEMAND(id));\r\n if (res.success) {\r\n return res.result;\r\n }\r\n setError();\r\n } catch (error) {\r\n setError();\r\n }\r\n return null;\r\n}\r\n\r\nconst save = async () => {\r\n await validateSection(DemandValidation.PUBLICATION);\r\n}\r\n\r\n\r\nconst checkPublishOjs = async (id = -1) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.CHECK_OJS_NOTICE(id))\r\n reduxStore.dispatch(\r\n setResource('ojsPublicationStatus', res)\r\n )\r\n return res;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst clearOjsStatus = () => {\r\n clearResource('ojsPublicationStatus')\r\n}\r\n\r\nconst publishOjsNotice = async (id = -1) => {\r\n try {\r\n const res = await RestRequestPOST(Endpoints.PUBLISH_OJS_NOTICE(id))\r\n return res\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst rollbackOjsNotice = async (id = -1) => {\r\n try {\r\n const res = await RestRequestPOST(Endpoints.ROLLBACK_OJS_NOTICE(id))\r\n return res\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst markFirstPublication = (demandId) => {\r\n reduxStore.dispatch(setResource(_FIRST_PUBLICATION_RESOURCE_ID, demandId))\r\n}\r\n\r\nconst isFirstPublication = (demandId) => {\r\n const {resources} = reduxStore.getState();\r\n const curRes = resources[_FIRST_PUBLICATION_RESOURCE_ID];\r\n if(curRes)\r\n reduxStore.dispatch(clearResource(_FIRST_PUBLICATION_RESOURCE_ID));\r\n const result = curRes === demandId;\r\n return result;\r\n}\r\n\r\nconst publishExPost = async (id = -1) => {\r\n\r\n const setError = () => {\r\n reduxStore.dispatch(\r\n setResource('publish', {error: true})\r\n )\r\n }\r\n\r\n if (id < 0) {\r\n setError();\r\n return null;\r\n }\r\n try {\r\n const res = await RestRequestPOST(Endpoints.PUBLISH_DEMAND_EX_POST(id));\r\n if (res.success) {\r\n return res.result;\r\n }\r\n setError();\r\n } catch (error) {\r\n setError();\r\n }\r\n return null;\r\n}\r\n\r\nexport default {\r\n publish,\r\n save,\r\n checkPublishOjs,\r\n publishOjsNotice,\r\n rollbackOjsNotice,\r\n clearOjsStatus,\r\n markFirstPublication,\r\n isFirstPublication,\r\n publishExPost\r\n}","import React, {useMemo} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {wasEverPublished} from \"libs/getDemandStatus\";\r\nimport {connect} from \"react-redux\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\n\r\nfunction ConfirmPublish(\r\n {\r\n open,\r\n onConfirm,\r\n onCancel,\r\n demandHeader\r\n }) {\r\n\r\n const confirmText = useMemo(() => {\r\n let wasPublished = wasEverPublished() === true;\r\n let noticeOjsType = !!demandHeader?.noticeOjsType;\r\n return wasPublished ? (noticeOjsType ? 'publish_modification_ojs_popup_text' : 'publish_modification_popup_text') : 'publish_popup_text';\r\n }, [demandHeader]);\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nConfirmPublish.propTypes = {\r\n open: PropTypes.bool.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader\r\n}), {})(ConfirmPublish);\r\n","import React, {useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport GridBlock from 'components/GridBlock';\r\nimport PublishService from 'services/PublishService';\r\nimport {isDemandModification, isDemandPreparing} from 'libs/getDemandStatus';\r\nimport ModificationService from \"services/ModificationService\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport ConfirmPublish from \"./ConfirmPublish\";\r\nimport Alert from \"components/popup/alert/Alert\";\r\n\r\nfunction PublishSection(\r\n {\r\n id,\r\n isPublishActive,\r\n isCancelActive,\r\n moveToOfferCollection = () => {\r\n },\r\n editable,\r\n classesRoot,\r\n setWorking,\r\n clearPublishResources\r\n }) {\r\n\r\n const handleSubmit = () => {\r\n PublishService.save()\r\n }\r\n\r\n const [openCancelModificationPopup, setOpenCancelModificationPopup] = useState(false);\r\n const [openPublishPopup, setOpenPublishPopup] = useState(false);\r\n const [showPublishLimitUsedAlert, setShowPublishLimitUsedAlert] = useState(false);\r\n\r\n\r\n const handleConfirmCancelModification = () => {\r\n setOpenCancelModificationPopup(false);\r\n setWorking(true);\r\n ModificationService.cancel(id).then((resp) => {\r\n if (resp) {\r\n moveToOfferCollection();\r\n }\r\n });\r\n };\r\n\r\n const handleConfirmPublish = () => {\r\n\r\n if (isDemandPreparing()) {\r\n setOpenPublishPopup(false);\r\n setWorking(true);\r\n PublishService.publish(id).then((resp) => {\r\n if (resp != null) {\r\n if (resp) {\r\n HeaderService.get(id);\r\n PublishService.markFirstPublication(id);\r\n moveToOfferCollection();\r\n } else {\r\n setWorking(false);\r\n setShowPublishLimitUsedAlert(true);\r\n }\r\n } else {\r\n setWorking(false);\r\n clearPublishResources();\r\n }\r\n });\r\n } else if (isDemandModification()) {\r\n setOpenPublishPopup(false);\r\n setWorking(true);\r\n\r\n ModificationService.publish(id).then((resp) => {\r\n if (resp) {\r\n HeaderService.get(id);\r\n moveToOfferCollection();\r\n } else {\r\n setWorking(false);\r\n clearPublishResources();\r\n }\r\n });\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n {showPublishLimitUsedAlert &&
setShowPublishLimitUsedAlert(false)}\r\n maxWidth='sm'\r\n />}\r\n \r\n )\r\n}\r\n\r\nPublishSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default PublishSection;","import { DemandValidation } from 'constants/DemandValidation';\r\nimport {DemandValidationSectionStatus} from \"../constants/DemandValidationSectionStatus\";\r\n\r\nexport default (demandValidation = []) => demandValidation.reduce( (acc, item) => {\r\n\tif (item.section === DemandValidation.PUBLICATION || item.section === DemandValidation.EX_POST_GO_TO_FINISH) return acc;\r\n\tif (item.status === DemandValidationSectionStatus.UNAVAILABLE) return acc;\r\n\tif ((item.required && item.status !== DemandValidationSectionStatus.OK) || item.status === DemandValidationSectionStatus.ERROR) return [\r\n\t\t...acc,\r\n\t\titem.section\r\n\t]\r\n\treturn acc;\r\n}, [])","export default {\r\n NONE: \"NONE\",\r\n DRAFT: \"DRAFT\",\r\n COMPLETED: \"COMPLETED\",\r\n SEND: \"SEND\",\r\n PUBLISHED: \"PUBLISHED\",\r\n PUBLICATION_ERROR: \"PUBLICATION_ERROR\",\r\n INTEGRATION_ERROR: \"INTEGRATION_ERROR\"\r\n}","import getUncompletedSections from './getUncompletedSections';\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\nimport {PublishConst} from \"../constants/PublicationConst\";\r\nimport {isDemandModification, isDemandPreparing} from \"./getDemandStatus\";\r\nimport {DemandValidationSectionStatus} from \"../constants/DemandValidationSectionStatus\";\r\nimport NationalNoticeStatus from \"../components/complex/nationalNotice/constants/NationalNoticeStatus\";\r\n\r\nexport default (demandValidation, ojsPublicationStatus, bzpContractNoticeStatus, isDemandChanged) => {\r\n if (!demandValidation) return false;\r\n if (!(isDemandPreparing() || (isDemandModification() && isDemandChanged && isDemandChanged.result))) {\r\n return false;\r\n }\r\n\r\n const uncompleted = getUncompletedSections(demandValidation);\r\n const hasUncompletedSections = uncompleted.length > 0;\r\n if (hasUncompletedSections) {\r\n return false;\r\n }\r\n\r\n const notice = demandValidation.find((x) => x.section === DemandValidation.NOTICE);\r\n const isNoticeAvailable = notice ? notice.status !== DemandValidationSectionStatus.UNAVAILABLE : false;\r\n if (isNoticeAvailable) {\r\n if (ojsPublicationStatus && (ojsPublicationStatus.status === PublishConst.PUBLISHED || ojsPublicationStatus.status === PublishConst.CONFIRMED || ojsPublicationStatus.status === PublishConst.UNAVAILABLE)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const nationalNotice = demandValidation.find((x) => x.section === DemandValidation.NATIONAL_NOTICE);\r\n const isNationalNoticeAvailable = nationalNotice ? nationalNotice.status !== 'UNAVAILABLE' : false;\r\n if (isNationalNoticeAvailable) {\r\n if (bzpContractNoticeStatus && (bzpContractNoticeStatus.status === NationalNoticeStatus.PUBLISHED || bzpContractNoticeStatus.status === NationalNoticeStatus.NONE)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n return true;\r\n}\r\n","import React from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport PublishService from 'services/PublishService';\r\nimport ModificationService from 'services/ModificationService';\r\nimport {PublishConst} from 'constants/PublicationConst';\r\nimport GridBlock from 'components/GridBlock';\r\nimport {isDemandModification, isDemandPreparing} from 'libs/getDemandStatus';\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n error: {\r\n color: theme.palette.common.error\r\n },\r\n minusMargin: {\r\n marginBottom: theme.spacing(-1),\r\n textAlign: \"center\"\r\n },\r\n})\r\n\r\nfunction NoticeButtons(\r\n {\r\n classes,\r\n id,\r\n editable,\r\n ojsAdmin,\r\n noticePreview,\r\n ojsPublicationStatus,\r\n isPublicOjsActive,\r\n isPreviewOjsActive,\r\n classesRoot,\r\n checkNoticeStatus,\r\n setWorking,\r\n clearPublishResources\r\n }) {\r\n const handlePreviewEUForm = () => {\r\n window.location.href = noticePreview.url\r\n }\r\n\r\n const handleSendEU = () => {\r\n if (isDemandPreparing()) {\r\n setWorking(true);\r\n PublishService.publishOjsNotice(id).then((res) => {\r\n PublishService.checkPublishOjs(id).then(resp => {\r\n setWorking(false);\r\n checkNoticeStatus();\r\n });\r\n clearPublishResources();\r\n });\r\n } else if (isDemandModification()) {\r\n setWorking(true);\r\n ModificationService.publishOjsNotice(id).then((res) => {\r\n ModificationService.noticeOjsStatus(id).then(resp => {\r\n setWorking(false);\r\n checkNoticeStatus();\r\n });\r\n clearPublishResources();\r\n });\r\n }\r\n }\r\n\r\n const handleRollback = () => {\r\n if (isDemandPreparing()) {\r\n setWorking(true);\r\n PublishService.rollbackOjsNotice(id).then((res) => {\r\n PublishService.checkPublishOjs(id).then(resp => {\r\n setWorking(false);\r\n checkNoticeStatus();\r\n });\r\n clearPublishResources();\r\n });\r\n } else if (isDemandModification()) {\r\n setWorking(true);\r\n ModificationService.rollbackOjsNotice(id).then((res) => {\r\n ModificationService.noticeOjsStatus(id).then(resp => {\r\n setWorking(false);\r\n checkNoticeStatus();\r\n });\r\n clearPublishResources();\r\n });\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n {(ojsPublicationStatus && ojsPublicationStatus.message && ojsPublicationStatus.status !== PublishConst.UNAVAILABLE) &&\r\n \r\n {ojsPublicationStatus.message}\r\n \r\n }\r\n\r\n {(!ojsPublicationStatus || (ojsPublicationStatus.status !== PublishConst.NOT_PUBLISHED && ojsPublicationStatus.status !== PublishConst.UE_VALIDATION_ERROR)) &&\r\n \r\n }\r\n\r\n {ojsPublicationStatus && ojsPublicationStatus.status === PublishConst.NOT_PUBLISHED &&\r\n \r\n }\r\n\r\n {ojsPublicationStatus && ojsPublicationStatus.status === PublishConst.UE_VALIDATION_ERROR &&\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nNoticeButtons.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(NoticeButtons);","import React, {useMemo} from 'react'\r\nimport {Box, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Icon from '@material-ui/icons/CheckBox'\r\nimport IconOff from '@material-ui/icons/HighlightOff';\r\nimport Tr from 'translations/Translations';\r\nimport {DemandValidationTr} from 'constants/DemandValidation';\r\nimport {isDemandModification, isDemandPreparing} from 'libs/getDemandStatus';\r\nimport DemandService from \"services/DemandService\";\r\nimport Button from \"components/Button\";\r\nimport isBzpAttachmentNoticeType from \"libs/isBzpAttachmentNoticeType\";\r\nimport RouterPath from \"libs/RouterPath\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n icon: theme.components.icon,\r\n center: {\r\n textAlign: \"center\"\r\n }\r\n})\r\n\r\nfunction InformationSection(\r\n {\r\n classes,\r\n id,\r\n classesRoot,\r\n isPublishActive,\r\n isPreviewActive,\r\n isPreviewNoticeActive,\r\n isPublicOjsActive,\r\n isOjsProcessing,\r\n uncompletedSections,\r\n hasOjsNotice,\r\n demandHeader,\r\n section,\r\n isBzpPublishActive,\r\n isBzpProcessing\r\n }) {\r\n\r\n const isPreparing = isDemandPreparing();\r\n\r\n const isBzpAttachmentNotice = useMemo(() => isBzpAttachmentNoticeType(demandHeader), [demandHeader]);\r\n\r\n const openBzp = () => {\r\n let a = document.createElement('a');\r\n a.href = 'https://ezamowienia.gov.pl/mo-client-board/bzp/list'\r\n a.target = '_blank'\r\n a.click();\r\n }\r\n\r\n return (\r\n \r\n {\r\n isPublishActive || isPublicOjsActive || isOjsProcessing || isBzpPublishActive || isBzpProcessing ?\r\n \r\n :\r\n \r\n }\r\n {\r\n isPublishActive &&\r\n \r\n {Tr('congratulations').toUpperCase()}!\r\n \r\n }\r\n\r\n \r\n {\r\n isPublishActive || isPublicOjsActive || isOjsProcessing || isBzpPublishActive || isBzpProcessing ?\r\n Tr('p1_pf_1') /*Udało Ci się pomyślnie uzupełnić wszystkie sekcje kreatora postępowania.*/ :\r\n (isDemandModification() && uncompletedSections.length === 0 ?\r\n <>{Tr('p1_pf_1_m_f')} {/*Nie dokonano żadnej modyfikacji lub dokonane zmiany nie wymagają ponownej publikacji postępowania.*/}>\r\n :\r\n <>\r\n {Tr('p1_pf_1_f')}{/*Aby przejść do publikacji postępowania wypełnij wymagane sekcje:*/}\r\n {\r\n uncompletedSections.map((x, i) =>\r\n ` \"${DemandValidationTr[x]}\"${\r\n i === uncompletedSections.length - 1 ? '.' : ','\r\n } `\r\n )}\r\n >\r\n )\r\n }\r\n \r\n\r\n {isPreparing &&\r\n \r\n {Tr('p1_pf_2_1')}{' '} {/*Sprawdź jak Twoje postępowanie będzie wyglądać z perspektywy wykonawcy wybierając przycisk Podgląd.*/}\r\n \r\n {Tr('p1_pf_2_2')}{/*Podgląd nie spowoduje jego publikacji.*/}\r\n \r\n \r\n }\r\n {isBzpAttachmentNotice && {Tr('bzp_or_ojs_info')}}\r\n\r\n {isPreparing &&\r\n <>\r\n {\r\n demandHeader.apiVersion < 3 ?\r\n \r\n \r\n
\r\n : \r\n \r\n
\r\n \r\n
\r\n }\r\n {!!section?.competitivenessBaseLink && \r\n \r\n {Tr('competitiveness_base.info')}\r\n \r\n
\r\n \r\n
\r\n }\r\n >\r\n }\r\n\r\n {isBzpAttachmentNotice &&\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nInformationSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(InformationSection);","import {DemandValidation} from \"../constants/DemandValidation\";\r\nimport {PublishConst} from \"../constants/PublicationConst\";\r\nimport {isDemandModification} from \"./getDemandStatus\";\r\nimport {DemandValidationSectionStatus} from \"../constants/DemandValidationSectionStatus\";\r\nimport NationalNoticeStatus from \"../components/complex/nationalNotice/constants/NationalNoticeStatus\";\r\n\r\nexport default (demandValidation, ojsPublicationStatus, bzpContractNoticeStatus) => {\r\n if (!demandValidation) return false;\r\n\r\n if (!(isDemandModification())) {\r\n return false;\r\n }\r\n\r\n const notice = demandValidation.find((x) => x.section === DemandValidation.NOTICE);\r\n const isNoticeAvailable = notice ? notice.status !== DemandValidationSectionStatus.UNAVAILABLE : false;\r\n const bzpNotice = demandValidation.find((x) => x.section === DemandValidation.NATIONAL_NOTICE);\r\n const isBzpNoticeAvailable = bzpNotice ? bzpNotice.status !== DemandValidationSectionStatus.UNAVAILABLE : false;\r\n if (isNoticeAvailable) {\r\n return ojsPublicationStatus ? (ojsPublicationStatus.status === PublishConst.NOT_SENT || ojsPublicationStatus.status === PublishConst.UNAVAILABLE) : false;\r\n } else if (isBzpNoticeAvailable) {\r\n return bzpContractNoticeStatus ? (bzpContractNoticeStatus.status === NationalNoticeStatus.NONE\r\n || bzpContractNoticeStatus.status === NationalNoticeStatus.DRAFT || bzpContractNoticeStatus.status === NationalNoticeStatus.COMPLETED) : false;\r\n }\r\n\r\n return true;\r\n}\r\n","import getUncompletedSections from './getUncompletedSections';\r\nimport {isDemandPreparing} from \"./getDemandStatus\";\r\nimport {previewNoticeDisabled} from \"./getDemandStatus\";\r\n\r\nexport default (demandValidation) => {\r\n if (!demandValidation || !isDemandPreparing() || previewNoticeDisabled()) return false;\r\n const uncompleted = getUncompletedSections(demandValidation);\r\n return uncompleted.length === 0;\r\n}\r\n","export const PP_REQUIRED_GROUPS = [\"PUBLISHER\", \"PPCREATE\", \"PPREAD\", \"PPUPDATE\"]\r\nexport const MO_REQUIRED_GROUPS = [\"NCREATE\", \"NCONFIRM\", \"NUPDATE\"]\r\nexport const MMiA_REQUIRED_GROUPS = [\"MMiAANNREPUSER\"]\r\n","import React, {useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport GridBlock from 'components/GridBlock';\r\nimport NationalNoticeStatus from \"components/complex/nationalNotice/constants/NationalNoticeStatus\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport Typography from \"components/Typography\";\r\nimport useEzamowieniaOauth from \"hooks/useEzamowieniaOauth\";\r\nimport NationalNoticeService from \"services/NationalNoticeService\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport {isDemandModification, isDemandPreparing} from \"libs/getDemandStatus\";\r\nimport Loading from \"components/Loading\";\r\nimport PropTypes from \"prop-types\";\r\nimport {withStyles} from \"@material-ui/styles\";\r\nimport {MO_REQUIRED_GROUPS} from \"constants/EzamowieniaRequiredGroups\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n error: {\r\n color: theme.palette.common.error\r\n },\r\n minusMargin: {\r\n marginBottom: theme.spacing(-1),\r\n textAlign: \"center\"\r\n },\r\n})\r\n\r\nfunction BzpNoticeButtons(\r\n {\r\n classes,\r\n id,\r\n classesRoot,\r\n editable,\r\n setWorking,\r\n clearPublishResources,\r\n bzpContractNoticeStatus\r\n }) {\r\n const [ezWorking, setEzWorking] = useState(false);\r\n const {authorizeEzamowienia} = useEzamowieniaOauth();\r\n\r\n const goToNationalNotice = () => {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_NATIONAL_NOTICE_FORM_TYPE_ID, {formType: \"contractNotice\", id});\r\n RouterPath.redirect(href);\r\n }\r\n\r\n const sendContractNotice = () => {\r\n setEzWorking(true);\r\n\r\n if (isDemandModification()) {\r\n authorizeEzamowienia(() => {\r\n NationalNoticeService.publishContractNoticeUpdate(id).catch((e) => console.error(e)).finally(() => {\r\n setEzWorking(false);\r\n NationalNoticeService.getContractModificationNoticeStatus(id);\r\n })\r\n }, () => {\r\n setEzWorking(false)\r\n }, MO_REQUIRED_GROUPS)\r\n } else {\r\n authorizeEzamowienia(() => {\r\n NationalNoticeService.publishContractNotice(id).catch((e) => console.error(e)).finally(() => {\r\n setEzWorking(false);\r\n NationalNoticeService.getContractNoticeStatus(id)\r\n })\r\n }, () => {\r\n setEzWorking(false)\r\n }, MO_REQUIRED_GROUPS)\r\n }\r\n }\r\n\r\n const rollbackContractNotice = () => {\r\n setEzWorking(true);\r\n if (isDemandModification()) {\r\n NationalNoticeService.rollbackContractNoticeUpdate(id).catch((e) => console.error(e)).finally(() => setEzWorking(false))\r\n } else {\r\n NationalNoticeService.rollbackContractNotice(id).catch((e) => console.error(e)).finally(() => setEzWorking(false))\r\n }\r\n }\r\n\r\n const checkContractNoticeStatus = () => {\r\n setEzWorking(true);\r\n authorizeEzamowienia(() => {\r\n NationalNoticeService.checkContractNoticeStatus(id).catch((e) => console.error(e)).finally(() => setEzWorking(false))\r\n }, () => {\r\n setEzWorking(false)\r\n }, MO_REQUIRED_GROUPS)\r\n }\r\n\r\n if(!bzpContractNoticeStatus ) return \r\n return (\r\n \r\n {Tr('ezamowienia_state_' + bzpContractNoticeStatus.status.toLowerCase())}\r\n {\r\n (bzpContractNoticeStatus.status === NationalNoticeStatus.DRAFT) && <>\r\n \r\n >\r\n }\r\n {\r\n bzpContractNoticeStatus.status === NationalNoticeStatus.COMPLETED && <>\r\n \r\n {Tr(isDemandPreparing() ? 'bzp_notice_publish' : 'bzp_notice_publish_update')}\r\n \r\n >\r\n }\r\n {\r\n bzpContractNoticeStatus.status === NationalNoticeStatus.SEND && <>\r\n \r\n {Tr('bzp_notice_status')}\r\n \r\n >\r\n }\r\n {\r\n (bzpContractNoticeStatus.status === NationalNoticeStatus.PUBLICATION_ERROR || bzpContractNoticeStatus.status === NationalNoticeStatus.INTEGRATION_ERROR) && <>\r\n \r\n {Tr('bzp_notice_rollback_' + bzpContractNoticeStatus.status.toLowerCase())}\r\n \r\n >\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nBzpNoticeButtons.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(BzpNoticeButtons);","import React, {useEffect, useMemo, useState} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport ModificationService from 'services/ModificationService';\r\nimport {withRouter} from \"react-router\";\r\nimport {connect} from 'react-redux'\r\nimport PublishSection from './PublishSection';\r\nimport NoticeService from 'services/NoticeService';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport isPublishButtonActive from 'libs/isPublishButtonActive';\r\nimport getUncompletedSections from 'libs/getUncompletedSections';\r\nimport NoticeButtons from './NoticeButtons';\r\nimport InformationSection from './InformationSection';\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {PublishConst} from 'constants/PublicationConst';\r\nimport isCancelModificationButtonActive from \"libs/isCancelModificationButtonActive\";\r\nimport {isDemandModification, isDemandPreparing} from \"libs/getDemandStatus\";\r\nimport PublishService from \"services/PublishService\";\r\nimport Loading from \"components/Loading\";\r\nimport isPreviewButtonActive from \"libs/isPreviewButtonActive\";\r\nimport isPreviewNoticeButtonActive from \"libs/isPreviewNoticeButtonActive\";\r\nimport DemandService from \"services/DemandService\";\r\nimport {clearResource} from \"redux/actions\";\r\nimport clsx from 'clsx';\r\nimport BzpNoticeButtons from \"./BzpNoticeButtons\";\r\nimport NationalNoticeService from \"services/NationalNoticeService\";\r\nimport NationalNoticeStatus from \"components/complex/nationalNotice/constants/NationalNoticeStatus\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*': {\r\n '&>*': {\r\n marginTop: theme.spacing(2)\r\n }\r\n }\r\n },\r\n hidden: {\r\n display: 'none'\r\n }\r\n})\r\n\r\nfunction Publication(\r\n {\r\n classes,\r\n expanded,\r\n match,\r\n demandValidation,\r\n noticePreview = {error: true},\r\n ojsPublicationStatus,\r\n isDemandChanged = {},\r\n demandHeader,\r\n bzpContractNoticeStatus\r\n }) {\r\n const id = match.params.id;\r\n\r\n const [working, setWorking] = useState(true);\r\n const uncompletedSections = getUncompletedSections(demandValidation);\r\n const [noticeStatusInterval, setNoticeStatusInterval] = useState();\r\n\r\n const findSection = (compareSection) => demandValidation.find(x => x.section === compareSection);\r\n\r\n const section = findSection(DemandValidation.PUBLICATION);\r\n\r\n const editable = section ? section.editable : false;\r\n const ojsAdmin = section ? section.ojsAdmin : false;\r\n const hasOjsNotice = demandHeader?.noticeOjsType === true;\r\n const hasBzpNotice = demandHeader?.noticeBzpType === true;\r\n\r\n const clearPublishResources = () => {\r\n DemandService.getValidate(id, false);\r\n }\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (hasOjsNotice && id > 0) {\r\n if (isDemandPreparing()) {\r\n PublishService.checkPublishOjs(id).then(resp => {\r\n setWorking(false);\r\n if (resp && resp.status === PublishConst.SENT) {\r\n startNoticeStatusInterval();\r\n }\r\n })\r\n } else if (isDemandModification()) {\r\n ModificationService.noticeOjsStatus(id).then(resp => {\r\n setWorking(false);\r\n if (resp && resp.status === PublishConst.SENT) {\r\n startNoticeStatusInterval();\r\n }\r\n })\r\n } else {\r\n setWorking(false);\r\n }\r\n } else {\r\n setWorking(false);\r\n }\r\n\r\n\r\n return () => {\r\n if (noticeStatusInterval) clearInterval(noticeStatusInterval);\r\n }\r\n //eslint-disable-next-line\r\n }, []);\r\n\r\n const startNoticeStatusInterval = () => {\r\n if (isDemandPreparing()) {\r\n const interval = setInterval(async () => {\r\n const resp = await PublishService.checkPublishOjs(id);\r\n if (resp.status !== PublishConst.SENT) {\r\n clearInterval(interval);\r\n clearPublishResources();\r\n }\r\n }, 10000);\r\n setNoticeStatusInterval(interval);\r\n } else if (isDemandModification()) {\r\n const interval = setInterval(async () => {\r\n const resp = await ModificationService.noticeOjsStatus(id);\r\n if (resp.status !== PublishConst.SENT) {\r\n clearInterval(interval);\r\n clearPublishResources();\r\n }\r\n }, 10000);\r\n setNoticeStatusInterval(interval);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(id);\r\n }\r\n\r\n if (expanded) {\r\n if (hasOjsNotice && uncompletedSections.length === 0) {\r\n NoticeService.getPreviewUrl(id);\r\n DemandService.clearResources(DemandService.DEMAND_RESOURCE_ID);\r\n }\r\n\r\n if (hasBzpNotice && uncompletedSections.length === 0) {\r\n if (isDemandModification()) {\r\n NationalNoticeService.getContractModificationNoticeStatus(id);\r\n } else if (isDemandPreparing()) {\r\n NationalNoticeService.getContractNoticeStatus(id);\r\n }\r\n }\r\n }\r\n return ()=> {\r\n NoticeService.clearResources(NoticeService.NOTICE_PREVIEW_RESOURCE_ID);\r\n }\r\n // eslint-disable-next-line\r\n }, [expanded, id])\r\n\r\n\r\n const rp = RouterPath.myProcedure;\r\n\r\n const moveToOfferCollection = () => {\r\n const href = RouterPath.createPath(rp.steps.MP_2_ID, {id});\r\n RouterPath.redirect(href)\r\n };\r\n const isPublishActive = useMemo(() => isPublishButtonActive(demandValidation, ojsPublicationStatus, bzpContractNoticeStatus, isDemandChanged), [demandValidation, ojsPublicationStatus, isDemandChanged, bzpContractNoticeStatus]);\r\n const isCancelActive = isCancelModificationButtonActive(demandValidation, ojsPublicationStatus, bzpContractNoticeStatus);\r\n // eslint-disable-next-line\r\n const isPreviewActive = useMemo(() => isPreviewButtonActive(demandValidation), [demandValidation]);\r\n const isPreviewNoticeActive = useMemo(() => isPreviewNoticeButtonActive(demandValidation), [demandValidation]);\r\n const isOjsProcessing = uncompletedSections.length === 0 && ojsPublicationStatus ? ojsPublicationStatus.status === PublishConst.SENT : false;\r\n const isPublicOjsActive = uncompletedSections.length === 0 && ojsPublicationStatus ? ojsPublicationStatus.status === PublishConst.NOT_SENT : false;\r\n const isPreviewOjsActive = uncompletedSections.length === 0 && !Boolean(noticePreview.error);\r\n\r\n const isBzpPublishActive = uncompletedSections.length === 0 && bzpContractNoticeStatus ? bzpContractNoticeStatus.status === NationalNoticeStatus.COMPLETED : false;\r\n const isBzpProcessing = uncompletedSections.length === 0 && bzpContractNoticeStatus ? bzpContractNoticeStatus.status === NationalNoticeStatus.SEND : false;\r\n\r\n if (!demandValidation) return \r\n\r\n return (\r\n <>\r\n {working && }\r\n \r\n \r\n\r\n {(hasOjsNotice) &&\r\n \r\n }\r\n\r\n {\r\n (hasBzpNotice && uncompletedSections.length === 0) && \r\n }\r\n\r\n\r\n \r\n\r\n \r\n >\r\n )\r\n}\r\n\r\nPublication.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n isDemandChanged: state.resources.isDemandChanged,\r\n noticePreview: state.resources.noticePreview,\r\n demandValidation: state.resources.demandValidation,\r\n ojsPublicationStatus: state.resources.ojsPublicationStatus,\r\n bzpContractNoticeStatus: state.resources[NationalNoticeService.BZP_CONTRACT_NOTICE_STATUS],\r\n demandHeader: state.resources.demandHeader\r\n}), {\r\n\r\n clearResource\r\n})(withStyles(style)(withRouter(Publication)));","import getUncompletedSections from './getUncompletedSections';\r\nimport {isDemandPreparing} from \"./getDemandStatus\";\r\n\r\nexport default (demandValidation) => {\r\n if (!demandValidation || !isDemandPreparing()) return false;\r\n const uncompleted = getUncompletedSections(demandValidation);\r\n return uncompleted.length === 0;\r\n}\r\n","import React, {useMemo, useState} from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from \"prop-types\";\r\nimport {connect} from \"react-redux\";\r\nimport {withRouter} from \"react-router\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport isPublishButtonActive from 'libs/isPublishButtonActive';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport DemandService from \"services/DemandService\";\r\nimport PublishService from \"services/PublishService\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from 'components/GridBlock';\r\nimport {clearResource} from \"redux/actions\";\r\nimport clsx from \"clsx\";\r\nimport Icon from \"@material-ui/icons/CheckBox\";\r\nimport IconOff from \"@material-ui/icons/HighlightOff\";\r\nimport {isDemandFinished, isDemandFinishing} from \"libs/getDemandStatus\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*': {\r\n '&>*': {\r\n marginTop: theme.spacing(2)\r\n }\r\n }\r\n },\r\n\r\n hidden: {\r\n display: 'none'\r\n },\r\n\r\n finishButton: {\r\n marginTop: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction ExPostGoToFinish(\r\n {\r\n match,\r\n classes,\r\n demandValidation,\r\n ojsPublicationStatus,\r\n isDemandChanged = {}\r\n }) {\r\n\r\n const id = match.params.id;\r\n const rp = RouterPath.myProcedure;\r\n\r\n const [openGoToFinishPopup, setOpenGoToFinishPopup] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n\r\n const findSection = (compareSection) => demandValidation.find(x => x.section === compareSection);\r\n const section = findSection(DemandValidation.EX_POST_GO_TO_FINISH);\r\n\r\n const editable = section ? section.editable : false;\r\n const isPublishActive = useMemo(() => isPublishButtonActive(demandValidation, ojsPublicationStatus, isDemandChanged), [demandValidation, ojsPublicationStatus, isDemandChanged]);\r\n const isDemandFinish = useMemo(() => isDemandFinished() || isDemandFinishing(), []);\r\n\r\n const handleGoToFinish = () => {\r\n setOpenGoToFinishPopup(false);\r\n setWorking(true);\r\n PublishService.publishExPost(id).then((resp) => {\r\n if (resp != null) {\r\n if (resp) {\r\n HeaderService.get(id);\r\n PublishService.markFirstPublication(id);\r\n const href = RouterPath.createPath(rp.steps.MP_4_ID, {id});\r\n RouterPath.redirect(href)\r\n } else {\r\n setWorking(false);\r\n }\r\n } else {\r\n setWorking(false);\r\n DemandService.getValidate(id, false);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {working && }\r\n\r\n \r\n {\r\n isPublishActive || isDemandFinish ?\r\n \r\n :\r\n \r\n }\r\n \r\n {isDemandFinish ? Tr('p1_pf_1_epf') : (isPublishActive ? Tr('p1_pf_1') : Tr('p1_pf_1_f'))}\r\n \r\n\r\n \r\n\r\n setOpenGoToFinishPopup(false)}\r\n confirmText={Tr('exPost_goToFinish_confirm')}\r\n />\r\n \r\n >\r\n )\r\n}\r\n\r\nExPostGoToFinish.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n}), {\r\n clearResource\r\n})(withStyles(style)(withRouter(ExPostGoToFinish)));","import PropTypes from \"prop-types\";\r\nimport {connect} from \"react-redux\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\nimport Tr from \"translations/Translations\";\r\nimport Button from \"components/Button\";\r\nimport React from \"react\";\r\nimport GridBlock from \"../../../../../../../components/GridBlock\";\r\n\r\nfunction Questionnaire(\r\n {\r\n demandValidation\r\n }) {\r\n\r\n const findSection = (compareSection) => demandValidation.find(x => x.section === compareSection);\r\n\r\n const section = findSection(DemandValidation.QUESTIONNAIRE);\r\n\r\n const handleClick = () => {\r\n window.location.href = section.questionnaireTabUrl;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nQuestionnaire.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(Questionnaire));","import {Commission, Contractor, Dealings, Demand, Espd, Guarantee, Notice, PreparingPapersGenerator, Publication, Schedule, Siwz, NationalNotice, ExPostGoToFinish,\r\nDemandAdditionalInfo, Questionnaire} from './panels';\r\nimport DealingsService from \"services/DealingsService\";\r\nimport ScheduleService from \"services/ScheduleService\";\r\nimport CommissionService from \"services/CommissionService\";\r\nimport EspdService from \"services/EspdService\";\r\nimport GuaranteeService from \"services/GuaranteeService\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport ContractorService from \"services/ContractorService\";\r\nimport NoticeService from \"services/NoticeService\";\r\nimport NationalNoticeService from \"services/NationalNoticeService\";\r\nimport DemandAdditionalInfoService from \"services/DemandAdditionalInfoService\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\n\r\nexport default {\r\n mp_1_demand: Demand,\r\n mp_1_dealings: Dealings,\r\n mp_1_schedule: Schedule,\r\n mp_1_commission: Commission,\r\n mp_1_espd: Espd,\r\n mp_1_siwz: Siwz,\r\n mp_1_guarantee: Guarantee,\r\n mp_1_contractor: Contractor,\r\n mp_1_notice: Notice,\r\n mp_1_national_notice: NationalNotice,\r\n mp_1_publication: Publication,\r\n mp_1_ex_post_go_to_finish: ExPostGoToFinish,\r\n mp_1_preparing_papers_generator: PreparingPapersGenerator,\r\n mp_1_preparing_additional_info: DemandAdditionalInfo,\r\n mp_1_questionnaire: Questionnaire\r\n}\r\n\r\nexport const panelsValidationKeys = {\r\n mp_1_demand: (id) => null,\r\n mp_1_dealings: (id) => DealingsService.validate(id),\r\n mp_1_schedule: (id) => ScheduleService.validate(id),\r\n mp_1_commission: (id) => CommissionService.validate(id),\r\n mp_1_espd: (id) => EspdService.validate(id),\r\n mp_1_siwz: (id) => SiwzService.validateSIWZ(id),\r\n mp_1_guarantee: (id) => GuaranteeService.validate(id),\r\n mp_1_contractor: (id) => ContractorService.validate(id),\r\n mp_1_notice: (id) => NoticeService.validate(id),\r\n mp_1_national_notice: (id) => NationalNoticeService.validate(id),\r\n mp_1_publication: (id) => null,\r\n mp_1_ex_post_go_to_finish: (id) => null,\r\n mp_1_preparing_papers_generator: (id) => null,\r\n mp_1_preparing_additional_info: (id) => DemandAdditionalInfoService.validate(id, DemandValidation.PREPARING_ADDITIONAL_INFO),\r\n mp_1_questionnaire: (id) => null,\r\n}\r\n\r\n\r\nexport const isInitialHidden = (step, procedureType, passive, exPost) => {\r\n if(!procedureType || !step)\r\n return false;\r\n\r\n const func = hidden[step.key];\r\n return func && func(procedureType, passive, exPost);\r\n}\r\n\r\nconst hidden = {\r\n mp_1_dealings: (procedureType, passive, exPost) => {\r\n return passive === 'true' || exPost === 'true';\r\n },\r\n mp_1_notice: (procedureType, passive, exPost) => {\r\n return \"true\" === passive || exPost === 'true' || [\"europePublic\", \"europeSocialServices\"].indexOf(procedureType) === -1\r\n },\r\n mp_1_guarantee: (procedureType, passive, exPost) => {\r\n return \"true\" === passive || exPost === 'true' || [\"europePublic\", \"europeSocialServices\", \"nationalPublic\", \"nationalSocialServices\"].indexOf(procedureType) === -1\r\n },\r\n mp_1_espd: (procedureType, passive, exPost) => {\r\n return exPost === 'true' || !procedureType.startsWith(\"europe\")\r\n },\r\n mp_1_contractor: (procedureType, passive, exPost) => {\r\n return exPost === 'true';\r\n },\r\n mp_1_schedule: (procedureType, passive, exPost) => {\r\n return exPost === 'true';\r\n },\r\n mp_1_publication: (procedureType, passive, exPost) => {\r\n return exPost === 'true';\r\n },\r\n mp_1_ex_post_go_to_finish: (procedureType, passive, exPost) => {\r\n return exPost !== 'true';\r\n },\r\n mp_1_questionnaire: (procedureType, passive, exPost) => {\r\n return exPost === 'true';\r\n },\r\n}\r\n\r\n","import React from 'react'\r\nimport ExPostGoToFinish from './ExPostGoToFinish';\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (\r\n expanded && \r\n )\r\n}\r\n\r\nexport default Index;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport PreparingAdditionalInfo from \"./PreparingAdditionalInfo\";\r\nimport {DemandValidation, DemandValidationKeys} from \"constants/DemandValidation\";\r\n\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import React from 'react'\r\nimport {makeStyles, Tooltip, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ExpansionPanel from 'components/ExpansionPanel';\r\nimport {setConfirmCloseStepper, setStepperState} from 'redux/actions'\r\nimport {connect} from 'react-redux'\r\nimport NavigationBar from 'components/complex/floatingMenu/NavigationBar';\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowUp'\r\nimport clsx from 'clsx';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport Loading from 'components/Loading';\r\nimport ExpansionPanelTitleAvatar from \"components/ExpansionPanelTitleAvatar\";\r\nimport {DemandValidationSectionStatus as sectionStatus} from \"constants/DemandValidationSectionStatus\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n height: '100%',\r\n '&>*:not(:first-child)': {\r\n marginTop: theme.spacing(2)\r\n }\r\n },\r\n floatingMenu: {\r\n position: 'sticky',\r\n zIndex: theme.zIndex.appBar - 1,\r\n top: 109\r\n },\r\n rotate: {\r\n transform: 'rotate(180deg)'\r\n },\r\n adornmentGrid: {\r\n '&>*:first-child': {\r\n flexGrow: 1,\r\n marginRight: theme.spacing(2)\r\n }\r\n }\r\n}))\r\n\r\nfunction AccordionPart(\r\n {\r\n navigationBarButtons,\r\n working,\r\n steps,\r\n panels,\r\n stepperState,\r\n setStepperState,\r\n demandValidation,\r\n redirectOldPlatform,\r\n stateCloseValidator,\r\n deleteFormDraftFunc,\r\n saveFormDraftFunc,\r\n setConfirmCloseStepper\r\n }) {\r\n const classes = useStyle();\r\n\r\n const handleClick = id => (e) => {\r\n if (stateCloseValidator && stateCloseValidator() === false) {\r\n if (!!saveFormDraftFunc) {\r\n setConfirmCloseStepper(() => doHandleClick(id), Tr(stepperState), () => doHandleClickWithDraftSave(id));\r\n } else {\r\n setConfirmCloseStepper(() => doHandleClick(id), Tr(stepperState));\r\n }\r\n return\r\n }\r\n doHandleClick(id)\r\n }\r\n\r\n const doHandleClick = id => {\r\n if (!!deleteFormDraftFunc)\r\n deleteFormDraftFunc();\r\n _doHandleClick(id);\r\n }\r\n\r\n const doHandleClickWithDraftSave = id => {\r\n if (!!saveFormDraftFunc) {\r\n saveFormDraftFunc();\r\n }\r\n _doHandleClick(id);\r\n }\r\n\r\n const _doHandleClick = id => {\r\n if (stepperState !== id) setStepperState(id);\r\n else setStepperState(null);\r\n }\r\n\r\n const createTitle = (variant, label) => {\r\n return (\r\n \r\n \r\n \r\n {label}\r\n \r\n \r\n )\r\n }\r\n\r\n if (!steps || !demandValidation || working || redirectOldPlatform) return \r\n return (\r\n \r\n {(!!navigationBarButtons && navigationBarButtons.length > 0) &&\r\n
\r\n \r\n
\r\n }\r\n\r\n {steps.filter(({apiId}) => {\r\n const section = demandValidation.find(x => x.section === apiId)\r\n if (!section) return true;\r\n return section.status !== sectionStatus.UNAVAILABLE;\r\n })\r\n .map(({key, label, apiId}) => {\r\n const section = demandValidation.find(x => x.section === apiId)\r\n const variant = section ? (section.status === sectionStatus.OK ? 'Done' : (section.status === sectionStatus.DISABLED ? 'Wait' : (section.status === sectionStatus.ERROR ? 'Required' : (section.required ? 'Required' : 'Optional')))) : \"Wait\";\r\n const _label = label;\r\n const Component = panels[key]\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n }\r\n expanded={stepperState === key}\r\n onChange={handleClick(key)}\r\n >\r\n \r\n \r\n )\r\n })}\r\n\r\n\r\n
\r\n )\r\n}\r\n\r\nAccordionPart.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n stepperState: state.stepper.state,\r\n stateCloseValidator: state.stepper.stateCloseValidator,\r\n deleteFormDraftFunc: state.stepper.deleteFormDraftFunc,\r\n saveFormDraftFunc: state.stepper.saveFormDraftFunc,\r\n demandValidation: state.resources.demandValidation,\r\n redirectOldPlatform: state.resources.redirectOldPlatform,\r\n}), {\r\n setStepperState,\r\n setConfirmCloseStepper\r\n})(AccordionPart);","import React, {useEffect, useState} from 'react'\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport Loading from \"components/Loading\";\r\nimport DemandService from \"services/DemandService\";\r\nimport PropTypes from 'prop-types';\r\nimport BoldTypography from \"../../BoldTypography\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport {Typography} from \"@material-ui/core\";\r\nimport SingleButton from \"../components/SingleButton\";\r\n\r\n\r\nfunction DemandRelatedObjects(\r\n {\r\n label,\r\n rels\r\n }) {\r\n\r\n\r\n return (\r\n <>\r\n {label}\r\n {\r\n rels.map((x, i) => {\r\n if (!!x.url)\r\n return ({x.name})\r\n else\r\n return ({x.name})\r\n })\r\n }\r\n
\r\n >\r\n )\r\n}\r\n\r\n\r\nfunction DemandRelatedObjectsPopup(\r\n {\r\n relatedObjectServiceFunction = DemandService.getRelatedObjects,\r\n demandId,\r\n onClose\r\n }) {\r\n\r\n const [rel, setRel] = useState(null);\r\n\r\n useEffect(() => {\r\n relatedObjectServiceFunction(demandId).then((resp) => setRel(resp));\r\n }, [demandId, relatedObjectServiceFunction])\r\n\r\n\r\n return (\r\n <>\r\n }\r\n >\r\n {!rel ?\r\n \r\n :\r\n <>\r\n {!!rel.planItems && }\r\n {!!rel.purchaseRequests && }\r\n {!!rel.purchasingGroups && }\r\n {!!rel.demands && }\r\n >\r\n }\r\n \r\n >\r\n )\r\n}\r\n\r\n\r\nDemandRelatedObjectsPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default DemandRelatedObjectsPopup;","import React, {useEffect, useMemo, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport panels, {isInitialHidden} from './part1.panels.components'\r\nimport {setStepperState} from 'redux/actions'\r\nimport {connect} from 'react-redux'\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowUp'\r\nimport RefreshIcon from '@material-ui/icons/Refresh'\r\nimport MailIcon from '@material-ui/icons/Mail';\r\nimport ListIcon from '@material-ui/icons/List';\r\nimport DemandService from 'services/DemandService';\r\nimport PublishService from 'services/PublishService';\r\nimport ModificationService, {modify} from 'services/ModificationService';\r\nimport {isDemandModification, isDemandNew, isDemandOfferCollection, isDemandPreparing} from \"libs/getDemandStatus\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport Alert from \"components/popup/alert/Alert\";\r\nimport createButton, {createSubmitFormButton} from \"components/complex/floatingMenu/createButton\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport Tr from 'translations/Translations';\r\n\r\nimport isCancelModificationButtonActive from \"libs/isCancelModificationButtonActive\";\r\nimport AccordionPart from \"pages/purchaser/MyProcedure/scenes/components/AccordionPart\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport reduxStore from \"redux/store\";\r\nimport DemandSectionsService from \"services/DemandSectionsService\";\r\nimport DemandRelatedObjectsPopup from \"components/popup/relatedObjects/DemandRelatedObjectsPopup\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport RfxRoundService from \"services/RfxRoundService\";\r\nimport NationalNoticeService from \"services/NationalNoticeService\";\r\n\r\n\r\nfunction Part1(\r\n {\r\n stepperState,\r\n setStepperState,\r\n steps,\r\n match,\r\n location,\r\n demandValidation,\r\n demandHeader,\r\n ojsPublicationStatus,\r\n bzpContractNoticeStatus,\r\n rfxPrivileges = {},\r\n demandPrivileges = {}\r\n }) {\r\n\r\n const [openCancelModificationPopup, setOpenCancelModificationPopup] = useState(false);\r\n const [relatedObjectPopup, setRelatedObjectPopup] = useState(false);\r\n const [working, setWorking] = useState(true);\r\n const [openDemandPublicLinkPopup, setOpenDemandPublicLinkPopup] = useState(false);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n //const scrollPosition = useWindowScroll();\r\n //const [nodeRef, topOffset] = useNodeTopPosition([scrollPosition]);\r\n const id = match.params.id;\r\n\r\n // eslint-disable-next-line\r\n const isModification = useMemo(() => isDemandModification(), [demandHeader]);\r\n // eslint-disable-next-line\r\n const isPreparing = useMemo(() => isDemandPreparing(), [demandHeader]);\r\n // eslint-disable-next-line\r\n const isNew = useMemo(() => isDemandNew(), [demandHeader]);\r\n // eslint-disable-next-line\r\n const isExPost = useMemo(() => demandHeader && demandHeader.exPost, [demandHeader]);\r\n // eslint-disable-next-line\r\n const isOfferCollection = useMemo(() => isDemandOfferCollection(), [demandHeader]);\r\n\r\n\r\n useEffect(() => {\r\n DemandService.getValidate(id).then(() => setWorking(false));\r\n if (id !== undefined && id > 0) {\r\n DemandService.getBuyerPrivileges(id);\r\n if (isPreparing === false && isNew === false && isExPost === false) {\r\n StatisticsService.getCurrentRound(id).then((resp) => {\r\n if(resp) RfxRoundService.getBuyerPrivileges(resp.id);\r\n })\r\n }\r\n }\r\n\r\n return () => {\r\n reduxStore.dispatch(setStepperState(null));\r\n DemandSectionsService.clearDemandValidationResources();\r\n HeaderService.clear();\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY)\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.RFX_PRIVILEGE_STORE_KEY)\r\n StatisticsService.clearCurrentRound();\r\n };\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (id !== undefined && id > 0) {\r\n\r\n if (isPreparing) {\r\n if (demandHeader?.noticeOjsType === true) {\r\n PublishService.checkPublishOjs(id);\r\n } else if(demandHeader?.noticeBzpType === true) {\r\n NationalNoticeService.getContractNoticeStatus(id);\r\n }\r\n } else if (isModification) {\r\n if (demandHeader?.noticeOjsType === true) {\r\n ModificationService.noticeOjsStatus(id);\r\n } else if(demandHeader?.noticeBzpType === true) {\r\n NationalNoticeService.getContractModificationNoticeStatus(id);\r\n }\r\n ModificationService.isDemandChanged(id)\r\n }\r\n }\r\n return () => {\r\n PublishService.clearOjsStatus();\r\n NationalNoticeService.clearResources(NationalNoticeService.BZP_CONTRACT_NOTICE_STATUS);\r\n ModificationService.clearDemandChanged();\r\n }\r\n // eslint-disable-next-line\r\n }, [id, demandHeader])\r\n\r\n\r\n const handleModifyClick = () => {\r\n setWorking(true);\r\n modify(id).then(() => {\r\n if (stepperState !== null) {\r\n setStepperState(null);\r\n }\r\n DemandService.getValidate(id).then(() => setWorking(false));\r\n });\r\n };\r\n\r\n const updateDemandNumber = () => {\r\n setWorking(true);\r\n DemandService.updateNumber(id).then((resp) => {\r\n if (resp.result) {\r\n setWorking(false);\r\n HeaderService.get(id);\r\n enqueueSuccessSnackbar(Tr('update_demand_number_success'));\r\n }\r\n });\r\n }\r\n\r\n const getNavigationBarButtons = () => {\r\n const buttons = [];\r\n if (id) {\r\n buttons.push(createButton('email_list', () => {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_EMAIL_LIST_ID, {id: id});\r\n RouterPath.redirect(href)\r\n }, undefined, MailIcon, 'primary', false, true));\r\n\r\n if (demandHeader && (demandHeader.hasPlanItems || demandHeader.hasPurchaseRequests)) {\r\n buttons.push(createButton('related_objects', () => setRelatedObjectPopup(true),\r\n \"outlined\", ListIcon, 'primary', false, true));\r\n\r\n }\r\n }\r\n\r\n if (!isExPost) {\r\n if (isPreparing && demandHeader && demandHeader.demandPublicLink) {\r\n buttons.push(createButton('demand_public_link_button', () => {\r\n setOpenDemandPublicLinkPopup(true);\r\n }, undefined, undefined, 'primary', false, true));\r\n }\r\n\r\n if (isModification) {\r\n buttons.push(createButton(\"modification_cancel\", () => {\r\n setOpenCancelModificationPopup(true)\r\n }, undefined, undefined, 'primary', !isCancelModificationButtonActive(demandValidation, ojsPublicationStatus, bzpContractNoticeStatus)));\r\n }\r\n\r\n if (isOfferCollection) {\r\n buttons.push(createButton(\"modify\", handleModifyClick, undefined, undefined, \"primary\", (!demandPrivileges.MODIFY || !demandHeader || !isOfferCollection)));\r\n }\r\n }\r\n\r\n if (demandHeader && demandHeader.showUpdateNumber && demandPrivileges.EDIT) {\r\n buttons.push(createButton(\"update_number\",\r\n updateDemandNumber,\r\n undefined,\r\n RefreshIcon,\r\n 'primary',\r\n stepperState !== null,\r\n false)\r\n );\r\n }\r\n\r\n const isSaveButton = isNew || isPreparing || isModification || !stepperState || stepperState === \"mp_1_siwz\" || stepperState === \"mp_1_espd\" || stepperState === \"mp_1_commission\" || stepperState === \"mp_1_preparing_additional_info\";\r\n\r\n buttons.push(createSubmitFormButton(isSaveButton ? \"save\" : \"close\",\r\n undefined,\r\n isSaveButton ? SaveIcon : ArrowIcon,\r\n 'primary',\r\n stepperState === null,\r\n isSaveButton)\r\n );\r\n\r\n return buttons;\r\n }\r\n\r\n\r\n const navigationBarButtons = getNavigationBarButtons();\r\n\r\n const rp = RouterPath.myProcedure;\r\n const handleConfirmCancelModification = () => {\r\n setOpenCancelModificationPopup(false);\r\n setWorking(true);\r\n ModificationService.cancel(id).then((resp) => {\r\n if (resp) {\r\n setWorking(false);\r\n const href = RouterPath.createPath(rp.steps.MP_2_ID, {id});\r\n RouterPath.redirect(href);\r\n }\r\n });\r\n };\r\n\r\n const filterSteps = () => {\r\n const params = new URLSearchParams(location.search);\r\n return steps.filter(x => !isInitialHidden(x, params.get(\"procedureType\"), params.get(\"passive\"), params.get(\"exPost\")))\r\n }\r\n\r\n const stepsFiltered = !!id ? steps : filterSteps();\r\n\r\n return (<>\r\n \r\n setOpenCancelModificationPopup(false)}\r\n confirmText=\"modification_cancel_popup_text\"\r\n />\r\n {demandHeader &&\r\n setOpenDemandPublicLinkPopup(false)}\r\n confirmText={demandHeader.demandPublicLink || \"\"}\r\n maxWidth='md'\r\n />\r\n }\r\n {\r\n relatedObjectPopup &&\r\n setRelatedObjectPopup(false)}/>\r\n }\r\n >\r\n )\r\n}\r\n\r\nPart1.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n stepperState: state.stepper.state,\r\n steps: state.stepper.steps[0].steps,\r\n demandValidation: state.resources.demandValidation,\r\n form: state.form,\r\n ojsPublicationStatus: state.resources.ojsPublicationStatus,\r\n bzpContractNoticeStatus: state.resources.bzpContractNoticeStatus,\r\n rfxPrivileges: state.privileges[PrivilegeService.RFX_PRIVILEGE_STORE_KEY],\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY],\r\n}), {\r\n setStepperState\r\n})(Part1);","import React from 'react'\r\nimport {Grid, Paper} from '@material-ui/core';\r\nimport PropTypes from 'prop-types'\r\nimport {withStyles, withTheme} from '@material-ui/styles';\r\nimport clsx from 'clsx';\r\nimport Title from './Title';\r\nimport useNodeTopPosition from 'hooks/useNodeTopPosition';\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*': {\r\n marginBottom: theme.spacing(4),\r\n }\r\n },\r\n fullHeight: {\r\n height: '100%',\r\n },\r\n paper: theme.components.paper,\r\n progressItem: {\r\n top: 100,\r\n position: 'sticky',\r\n zIndex: theme.zIndex.appBar - 1,\r\n }\r\n})\r\n\r\nfunction Workspace(\r\n {\r\n title,\r\n className,\r\n children,\r\n classes,\r\n render,\r\n fullHeight\r\n }) {\r\n\r\n const [nodeRef] = useNodeTopPosition()\r\n\r\n return (\r\n \r\n {title &&\r\n \r\n \r\n {title}\r\n \r\n }\r\n\r\n {\r\n render &&\r\n \r\n {render}\r\n \r\n }\r\n {\r\n children &&\r\n \r\n \r\n {children}\r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nWorkspace.propTypes = {\r\n className: PropTypes.string,\r\n title: PropTypes.string,\r\n children: PropTypes.any,\r\n render: PropTypes.any,\r\n fullHeight: PropTypes.bool,\r\n}\r\n\r\nWorkspace.propDefault = {\r\n fullHeight: true,\r\n}\r\n\r\nexport default withTheme(withStyles(style)(Workspace));\r\n","import { useState, useRef, useEffect } from 'react'\r\n\r\nexport default (params = []) => {\r\n\tconst rootRef = useRef();\r\n\tconst [topOffset, setTopOffset] = useState(0)\r\n\r\n\tuseEffect(() => {\r\n\t\tif (rootRef.current) {\r\n\t\t\tsetTopOffset(rootRef.current.offsetTop)\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [rootRef, ...params])\r\n\r\n\treturn [rootRef, topOffset]\r\n}","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Workspace from 'components/Workspace';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Title from 'components/Title';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\ttitle: {\r\n\t\tmarginBottom: theme.spacing(1)\r\n\t}\r\n})\r\n\r\nfunction Section({\r\n\tclasses,\r\n\ttitle,\r\n\tchildren,\r\n\ttitleAdditional,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\r\n\t\t\t\t\t{titleAdditional}\r\n\t\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nSection.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(Section);","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\n\r\nexport const RESOURCE_ID = 'rfxSupplier';\r\n\r\nexport const clearSuppliers = () => {\r\n reduxStore.dispatch(clearResource(RESOURCE_ID));\r\n}\r\nexport const getSuppliers = async (demandId, roundId, pagination ) => {\r\n\r\n const params = {\r\n ...pagination\r\n }\r\n\r\n try {\r\n\r\n const res = await RestRequestGET(Endpoints.SUPPLIERS_LIST(demandId, roundId), {params});\r\n\r\n if (pagination.page > 1) {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.rfxSupplier) {\r\n const res2 = {\r\n ...res,\r\n items: [...state.resources.rfxSupplier.items, ...res.items],\r\n }\r\n reduxStore.dispatch(setResource(RESOURCE_ID, res2));\r\n return;\r\n }\r\n }\r\n reduxStore.dispatch(setResource(RESOURCE_ID, res));\r\n\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst add = async (demandId, roundId, values) => {\r\n try {\r\n return await RestRequestPOST(Endpoints.SUPPLIERS_ADD(demandId, roundId), values)\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst invite = async (demandId, roundId, values) => {\r\n try {\r\n return await RestRequestPOST(Endpoints.SUPPLIERS_INVITE(demandId, roundId), values)\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst changeExternalSign = async (demandId, roundId, supplierId) => {\r\n try {\r\n const res = await RestRequestPOST(Endpoints.SUPPLIERS_CHANGE_EXTERNAL_SIGN(demandId, roundId, supplierId));\r\n const state = reduxStore.getState();\r\n if (state?.resources?.rfxSupplier && res !== null) {\r\n const suppliers = state.resources.rfxSupplier;\r\n const suppliers2 = {\r\n ...suppliers,\r\n items: suppliers.items.map((item) => item.id === res.id ? res : item)\r\n }\r\n reduxStore.dispatch(setResource(RESOURCE_ID, suppliers2));\r\n }\r\n return res;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nexport default {\r\n invite,\r\n add,\r\n getSuppliers,\r\n clearSuppliers,\r\n changeExternalSign,\r\n RESOURCE_ID\r\n}","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Section from '../components/Section';\r\nimport {withRouter} from \"react-router\";\r\nimport RfxSupplierService from \"services/RfxSupplierService\";\r\nimport {connect} from \"react-redux\";\r\nimport Tr from \"translations/Translations\";\r\nimport Loading from \"components/Loading\";\r\nimport MoreButton from \"components/button/MoreButton\"\r\nimport ContractorTable from \"components/complex/contractor/ContractorTable\";\r\nimport AddContactor from \"components/popup/addContactor/AddContactor\";\r\nimport InviteContactor from 'components/popup/inviteContactor/InviteContactor';\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport {Typography} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport Dialog from \"components/Dialog\";\r\nimport useSearch, {getPaginationConfig} from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n dropzone: {\r\n marginTop: theme.spacing(1)\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n}));\r\n\r\nfunction ContractorSection(\r\n {\r\n demandStatistics,\r\n currentRfxRound,\r\n match,\r\n supplier,\r\n rfxPrivileges,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyle();\r\n const demandId = match.params.id;\r\n\r\n const [supplierLoading, setSupplierLoading] = useState(true);\r\n const [externalOfferSignConfirm, setExternalOfferSignConfirm] = useState([false, '']);\r\n const [invitePopup, setInvitePopup] = useState(false);\r\n const [addPopup, setAddPopup] = useState(false);\r\n\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig} = useSearch();\r\n\r\n\r\n useEffect(() => {\r\n if (!!supplier && !!demandStatistics) {\r\n if (supplier.totalCount !== demandStatistics.numberOfSuppliers) {\r\n const loadedRows = supplier.items.length;\r\n const {pagination} = searchData;\r\n let curPageSize = loadedRows < pagination.pageSize ? pagination.pageSize : loadedRows;\r\n RfxSupplierService.getSuppliers(demandId, currentRfxRound.id, getPaginationConfig(1, curPageSize));\r\n }\r\n\r\n }\r\n // eslint-disable-next-line\r\n }, [demandStatistics])\r\n\r\n useEffect(() => {\r\n return () => RfxSupplierService.clearSuppliers()\r\n }, [demandId, currentRfxRound])\r\n\r\n\r\n useEffect(() => {\r\n if (currentRfxRound?.id) {\r\n setSupplierLoading(true);\r\n const {pagination} = searchData;\r\n RfxSupplierService.getSuppliers(demandId, currentRfxRound.id, pagination).then(() => (setSupplierLoading(false)));\r\n }\r\n // eslint-disable-next-line\r\n }, [searchData, currentRfxRound?.id])\r\n\r\n useDidUpdateEffect(() => {\r\n if (supplier?.totalCount !== undefined) {\r\n setTotalCount(supplier.totalCount)\r\n }\r\n }, [supplier?.totalCount]);\r\n\r\n const addContractorsTab = (data) => {\r\n setSupplierLoading(true);\r\n RfxSupplierService.add(demandId, currentRfxRound.id, data.platformAdded).then(() => {\r\n setPaginationConfig({...searchData.pagination, page: 1})\r\n });\r\n setAddPopup(false);\r\n }\r\n\r\n const handleExternalSign = (item) => {\r\n RfxSupplierService.changeExternalSign(demandId, currentRfxRound.id, item.id).then(response => {\r\n if (response != null)\r\n setExternalOfferSignConfirm([true, 'supplier_externalOfferSign_' + (response.externalOfferSign ? 'enabled' : 'disabled')]);\r\n });\r\n };\r\n\r\n const handleInvite = (values) => {\r\n setSupplierLoading(true);\r\n RfxSupplierService.invite(demandId, currentRfxRound.id, values).then(() => {\r\n setPaginationConfig({...searchData.pagination, page: 1})\r\n });\r\n setInvitePopup(false);\r\n };\r\n\r\n return (\r\n \r\n
\r\n {(!!supplier && !!currentRfxRound) &&\r\n <>\r\n {!!rfxPrivileges.ADD_CONTRACTOR && !currentRfxRound.offerCollectionEnded &&\r\n \r\n \r\n \r\n \r\n }\r\n \r\n\r\n {supplierLoading && }\r\n\r\n \r\n\r\n {invitePopup && setInvitePopup(false)}\r\n contractorList={supplier}\r\n handleInvite={handleInvite}\r\n collectPostCode\r\n collectAddress\r\n addressRequired={false}\r\n collectCity\r\n cityRequired={false}\r\n />}\r\n {addPopup && setAddPopup(false)}\r\n addContractorsTab={addContractorsTab}\r\n />}\r\n >\r\n }\r\n \r\n\r\n
\r\n
\r\n )\r\n}\r\n\r\nContractorSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n supplier: state.resources[RfxSupplierService.RESOURCE_ID]\r\n}), {})(withRouter(ContractorSection));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Section from '../components/Section';\r\nimport {withRouter} from \"react-router\";\r\nimport Tr from \"translations/Translations\";\r\nimport Offers from \"components/complex/offer/Offers\";\r\n\r\n\r\nfunction OfferSection(\r\n {\r\n\r\n match,\r\n\r\n }) {\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nOfferSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withRouter(OfferSection);","import React from 'react';\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n position: 'relative'\r\n },\r\n label: {\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n textAlign: 'center',\r\n color: theme.palette.text.primary\r\n },\r\n number: {\r\n fontSize: \"3rem\",\r\n //lineHeight: 1.6,\r\n },\r\n unit: {\r\n fontSize: \"1rem\",\r\n lineHeight: 1,\r\n },\r\n circle: {\r\n transition: \"0.35s stroke-dashoffset\",\r\n // axis compensation\r\n transform: \"rotate(-90deg)\",\r\n transformOrigin: \"50% 50%\",\r\n stroke: theme.palette.text.primary,\r\n fill: 'transparent',\r\n }\r\n}));\r\nconst ProgressRing = (\r\n {\r\n number,\r\n unit,\r\n percent = 0,\r\n width = 120,\r\n borderWidth = 2,\r\n }\r\n) => {\r\n\r\n const classes = useStyles();\r\n const center = (width / 2);\r\n const radius = center - (2 * borderWidth);\r\n const circumference = radius * 2 * Math.PI;\r\n\r\n const offset = circumference - (percent / 100 * circumference);\r\n\r\n return (\r\n \r\n
\r\n \r\n {number}\r\n \r\n \r\n {unit}\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ProgressRing;","import React, {useEffect, useState} from 'react';\r\nimport ProgressRing from \"./ProgressRing\";\r\nimport {getDays, getDaysHoursMinutesSeconds} from \"libs/durations\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Typography from \"components/BoldTypography\";\r\nimport GridBlock from \"components/GridBlock\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n title: {\r\n marginBottom: theme.spacing(1),\r\n color: theme.palette.text.primary,\r\n }\r\n}));\r\n\r\nconst RingCountdown = (\r\n {\r\n duration = 0,\r\n baseDuration = 0,\r\n endTimeCallback = () => {\r\n },\r\n title\r\n }) => {\r\n const classes = useStyles();\r\n\r\n const [days, setDays] = useState([0, 0]);\r\n const [hours, setHours] = useState([0, 0]);\r\n const [minutes, setMinutes] = useState([0, 0]);\r\n const [seconds, setSeconds] = useState([0, 0]);\r\n\r\n const [baseDays, setBaseDays] = useState(1);\r\n\r\n const [durationLeft, setDurationLeft] = useState(-1);\r\n\r\n useEffect(() => {\r\n const arr = getDaysHoursMinutesSeconds(durationLeft);\r\n setPeriods(arr);\r\n // eslint-disable-next-line\r\n }, [durationLeft]);\r\n\r\n const setPeriods = (arr) => {\r\n\r\n const dayPercent = baseDays === 0 ? 0 : Math.floor(arr[0] / baseDays * 100);\r\n let hourPercent = 100;\r\n let minutePercent = 100;\r\n let secondsPercent = 100;\r\n\r\n if (dayPercent === 0) {\r\n hourPercent = Math.floor(arr[1] / 24 * 100);\r\n if (hourPercent === 0) {\r\n minutePercent = Math.floor(arr[2] / 60 * 100);\r\n if (minutePercent === 0) {\r\n secondsPercent = Math.floor(arr[3] / 60 * 100);\r\n }\r\n }\r\n }\r\n\r\n setDays([arr[0], dayPercent]);\r\n setHours([arr[1], hourPercent]);\r\n setMinutes([arr[2], minutePercent]);\r\n setSeconds([arr[3], secondsPercent]);\r\n }\r\n\r\n useEffect(() => {\r\n const arr = getDaysHoursMinutesSeconds(duration);\r\n if (duration <= 0) {\r\n setPeriods(arr);\r\n return undefined;\r\n }\r\n\r\n const baseDays = getDays(baseDuration);\r\n setBaseDays(baseDays);\r\n\r\n const endTime = Math.floor(new Date().getTime() / 1000) + duration;\r\n\r\n const intervalFunction = (endTime) => () => {\r\n setDurationLeft((durationLeft) => {\r\n const newSeconds = endTime - Math.floor(new Date().getTime() / 1000);\r\n if (newSeconds !== durationLeft) {\r\n if (durationLeft === 0) {\r\n endTimeCallback();\r\n clearInterval(interval);\r\n }\r\n return newSeconds;\r\n }\r\n return durationLeft;\r\n })\r\n }\r\n const interval = setInterval(intervalFunction(endTime), 200);\r\n\r\n return () => {\r\n clearInterval(interval);\r\n }\r\n // eslint-disable-next-line\r\n }, [duration, baseDuration]\r\n )\r\n\r\n return (\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 >\r\n );\r\n};\r\n\r\nexport default RingCountdown;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport moment from \"libs/moment\";\r\nimport RingCountdown from \"components/complex/countdown/RingCountdown\";\r\nimport Workspace from \"components/Workspace\";\r\nimport Tr from \"../../../../../../translations/Translations\";\r\n\r\nfunction StatisticSection(\r\n {\r\n endTimeCallback,\r\n currentRfxRound\r\n }) {\r\n\r\n\r\n const [durations, setDurations] = useState([]);\r\n\r\n\r\n useEffect(() => {\r\n if (!currentRfxRound) {\r\n return;\r\n }\r\n const end = moment(currentRfxRound.offerEndDate);\r\n const nowTime = moment(currentRfxRound.now);\r\n if (currentRfxRound.offerCollectionEnded) {\r\n setDurations([0, 0]);\r\n return;\r\n }\r\n\r\n const duration2 = moment.duration(end.diff(nowTime));\r\n const number = duration2.asSeconds();\r\n\r\n const startTime = moment(currentRfxRound.offerStartDate);\r\n const startDuration = moment.duration(end.diff(startTime));\r\n const startNumber = startDuration.asSeconds();\r\n\r\n setDurations([number, startNumber]);\r\n }, [currentRfxRound]);\r\n\r\n return (\r\n \r\n {!durations.length || }\r\n >}/>\r\n )\r\n\r\n}\r\n\r\nStatisticSection.propTypes = {\r\n demandStatistics: PropTypes.object,\r\n endTimeCallback: PropTypes.func,\r\n}\r\n\r\nStatisticSection.defaultProps = {\r\n endTimeCallback: () => {\r\n },\r\n}\r\n\r\nexport default StatisticSection;","import React from 'react';\r\nimport {Grid, makeStyles} from \"@material-ui/core\";\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport AccordionActions from '@material-ui/core/AccordionActions';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport clsx from 'clsx';\r\nimport ErrorIcon from \"@material-ui/icons/Error\";\r\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\";\r\nimport PlaylistAddRoundedIcon from '@material-ui/icons/PlaylistAddRounded';\r\nimport PlaylistAddCheckRoundedIcon from '@material-ui/icons/PlaylistAddCheckRounded';\r\nimport ProgressBar from \"components/ProgressBar\";\r\nimport PropTypes from \"prop-types\";\r\nimport Button from \"components/Button\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(4)\r\n },\r\n\r\n summary: {\r\n margin: theme.spacing(0),\r\n padding: theme.spacing(0),\r\n },\r\n summaryContent: {\r\n margin: theme.spacing(0) + \" !important\",\r\n },\r\n summaryButton: {\r\n margin: theme.spacing(0),\r\n },\r\n summaryGrid: {\r\n cursor: 'auto',\r\n userSelect: 'text',\r\n padding: theme.spacing(1)\r\n },\r\n gridItemCommon: {\r\n padding: theme.spacing(1),\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n gridItemButton: {\r\n justifyContent: 'flex-end',\r\n },\r\n icon: {\r\n fontSize: '3rem',\r\n },\r\n iconWait: {\r\n color: theme.palette.common.error\r\n },\r\n iconWaitOptional: {\r\n color: theme.palette.common.info\r\n },\r\n iconFinish: {\r\n color: theme.palette.common.success\r\n },\r\n}));\r\n\r\nconst ExpansionProgressPanel = (\r\n {\r\n iconWait,\r\n iconFinish,\r\n title,\r\n progress,\r\n queue,\r\n progressAtlText,\r\n showProgress = true,\r\n optional,\r\n buttonText,\r\n buttonDisabled,\r\n onButtonClick = () => {\r\n },\r\n details,\r\n actions,\r\n alwaysExpanded,\r\n expanded\r\n\r\n }) => {\r\n const classes = useStyles();\r\n\r\n const IconWait = iconWait || (optional ? PlaylistAddRoundedIcon : ErrorIcon);\r\n const IconFinish = iconFinish || (optional ? PlaylistAddCheckRoundedIcon : CheckCircleIcon);\r\n\r\n return (<>\r\n \r\n
\r\n \r\n\r\n\r\n {details && <>\r\n \r\n \r\n {details}\r\n \r\n >}\r\n\r\n {actions && <>\r\n \r\n \r\n {actions}\r\n \r\n >}\r\n \r\n
\r\n >);\r\n }\r\n;\r\n\r\nExpansionProgressPanel.propTypes = {\r\n iconWait: PropTypes.object,\r\n iconFinish: PropTypes.object,\r\n optional: PropTypes.bool,\r\n title: PropTypes.string,\r\n progress: PropTypes.number,\r\n queue: PropTypes.number,\r\n buttonText: PropTypes.string,\r\n buttonDisabled: PropTypes.bool,\r\n onButtonClick: PropTypes.func,\r\n details: PropTypes.object,\r\n actions: PropTypes.object\r\n}\r\n\r\nExpansionProgressPanel.defaultProps = {}\r\nexport default ExpansionProgressPanel;","import React, {useEffect, useRef, useState} from 'react';\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport Tr from \"translations/Translations\";\r\nimport ExpansionProgressPanel from \"./ExpansionProgressPanel\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\nimport {connect} from \"react-redux\";\r\nimport {Typography} from \"@material-ui/core\";\r\nimport ProgressStatus from \"../../../../../../constants/ProgressStatus\";\r\n\r\nconst OfferDecryptionProgress = (\r\n {\r\n demandId,\r\n roundId,\r\n rfxOfferDecryptionStatus\r\n }) => {\r\n const [progress, setProgress] = useState([0, 0]);\r\n const [working, setWorking] = useState(false);\r\n const progressInterval = useRef(0);\r\n const statusInterval = useRef(0);\r\n\r\n useEffect(() => {\r\n\r\n RfxOfferService.getOffersDecryptionStatus(roundId).then(resp => {\r\n if (resp.status === ProgressStatus.IN_PROGRESS) {\r\n startProgressInterval();\r\n }\r\n\r\n if (resp.status === ProgressStatus.PROCESSED) {\r\n setProgress([100, 0]);\r\n }\r\n });\r\n\r\n return () => {\r\n if (progressInterval.current) clearInterval(progressInterval.current);\r\n if (statusInterval.current) clearInterval(statusInterval.current);\r\n }\r\n //eslint-disable-next-line\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (ProgressStatus.PROCESSED === rfxOfferDecryptionStatus.status) {\r\n const rp = RouterPath.myProcedure;\r\n RouterPath.redirect(RouterPath.createPath(rp.steps.MP_3_ID, {id: demandId}))\r\n }\r\n\r\n }, [rfxOfferDecryptionStatus, demandId])\r\n\r\n const startProgressInterval = () => {\r\n\r\n progressInterval.current = setInterval(async () => {\r\n const resp = await RfxOfferService.getOffersDecryptionProgress(roundId);\r\n setProgress(resp.result);\r\n if (resp.result[0] === 100) {\r\n clearInterval(progressInterval.current);\r\n progressInterval.current = 0;\r\n startOfferDecryptionStatusInterval();\r\n }\r\n\r\n }, 3000);\r\n };\r\n\r\n const startOfferDecryptionStatusInterval = () => {\r\n statusInterval.current = setInterval(async () => {\r\n const resp = RfxOfferService.getOffersDecryptionStatus(roundId);\r\n if (resp.status === ProgressStatus.PROCESSED) {\r\n clearInterval(statusInterval.current);\r\n statusInterval.current = 0;\r\n }\r\n }, 3000);\r\n };\r\n\r\n const onDecryptionStart = () => {\r\n setWorking(true);\r\n RfxOfferService.startOffersDecryptionProcess(roundId)\r\n .then(() => {\r\n RfxOfferService.getOffersDecryptionStatus(roundId).then(() => startProgressInterval());\r\n });\r\n };\r\n\r\n const openOffers = () => {\r\n RfxOfferService.startOffersDecryptionProcess(roundId)\r\n .then(() => {\r\n const rp = RouterPath.myProcedure;\r\n RouterPath.redirect(RouterPath.createPath(rp.steps.MP_3_ID, {id: demandId}));\r\n });\r\n }\r\n\r\n const getDetails = () => {\r\n if (rfxOfferDecryptionStatus?.errors?.length) {\r\n return <>\r\n {rfxOfferDecryptionStatus.errors.map(x => {\r\n return {Tr(x)}\r\n }\r\n )}\r\n
\r\n >\r\n }\r\n if (rfxOfferDecryptionStatus?.warnings?.length) {\r\n return <>\r\n {rfxOfferDecryptionStatus.warnings.map(x => {\r\n return {Tr(x)}\r\n }\r\n )}\r\n
\r\n >\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n >\r\n );\r\n};\r\n\r\nOfferDecryptionProgress.propTypes = {};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n rfxOfferDecryptionStatus: state.resources[RfxOfferService.RESOURCE_ID_RFX_OFFER_DECRYPTION_STATUS]\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(OfferDecryptionProgress);\r\n","import Tr from 'translations/Translations';\r\nexport default {\r\n FACEBOOK: \"facebook\",\r\n YOUTUBE: \"youtube\",\r\n}\r\n\r\nexport const streamPlatformLabel = (x) => Tr(`stream.platform.${x}`)","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport SingleButton from \"components/popup/components/SingleButton\";\r\nimport TextInput from \"components/TextInput\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport Select from \"components/Select\";\r\nimport {streamPlatformLabel} from \"../constants/OnlinePlatforms\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n disabledEmpty: {\r\n fontStyle: 'italic'\r\n }\r\n}));\r\n\r\nfunction EditDescriptionPopup(\r\n {\r\n demandId,\r\n roundId,\r\n onClose = () => {\r\n },\r\n onUpdated = () => {\r\n },\r\n sessionOnlineStatus,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const formId = useId();\r\n\r\n const disabled = !sessionOnlineStatus.editable;\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const getTypeElements = () => {\r\n\r\n const elements = sessionOnlineStatus.streamPlatforms.map(x => ({\r\n label: streamPlatformLabel(x),\r\n value: x\r\n }))\r\n\r\n return [{label: Tr('streaming_not_share'), value: \"\"}, ...elements]\r\n }\r\n\r\n const onSubmit = ({platform, link}) => {\r\n RfxOfferService.saveOffersPublicSessionOnline(roundId, {platform, link: platform ? link : \"\"}).then(onUpdated)\r\n }\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(EditDescriptionPopup);","import React, {useState} from 'react';\r\nimport Tr from \"translations/Translations\";\r\nimport ExpansionProgressPanel from \"./ExpansionProgressPanel\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\nimport {connect} from \"react-redux\";\r\nimport ProgressStatus from \"../../../../../../constants/ProgressStatus\";\r\nimport EditSessionOnlinePopup from \"./EditSessionOnlinePopup\";\r\nimport {streamPlatformLabel} from \"../constants/OnlinePlatforms\";\r\n\r\nconst PublicSessionOnlineProgress = (\r\n {\r\n demandId,\r\n roundId,\r\n onlineSession\r\n }) => {\r\n\r\n const [editPopupOpen, setEditPopupOpen] = useState(false);\r\n\r\n const onUpdated = () => {\r\n RfxOfferService.getOffersPublicSessionOnlineStatus(roundId).then(() => {\r\n setEditPopupOpen(false)\r\n })\r\n }\r\n return (\r\n <>\r\n setEditPopupOpen(true)}\r\n optional={!onlineSession.required}\r\n progressAtlText={onlineSession.sessionOnline.platform ? Tr('streaming_connected', {platform: streamPlatformLabel(onlineSession.sessionOnline.platform)}) : Tr('streaming_not_connected')}\r\n progress={onlineSession.status === ProgressStatus.PROCESSED ? 100 : 0}\r\n />\r\n {editPopupOpen && setEditPopupOpen(false)}\r\n onUpdated={onUpdated}/>\r\n }\r\n >\r\n );\r\n};\r\n\r\nPublicSessionOnlineProgress.propTypes = {};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n onlineSession: state.resources[RfxOfferService.RESOURCE_ID_RFX_PUBLIC_SESSION_ONLINE_STATUS]\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PublicSessionOnlineProgress);\r\n","import React, {useEffect, useRef, useState} from 'react';\r\nimport Tr from \"translations/Translations\";\r\nimport ExpansionProgressPanel from \"./ExpansionProgressPanel\";\r\nimport {connect} from \"react-redux\";\r\nimport DealingsService from \"services/DealingsService\";\r\nimport ProgressStatus from \"constants/ProgressStatus\";\r\nimport Loading from \"components/Loading\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport RealizationAmountForm from \"components/complex/realizationAmount/RealizationAmountForm\";\r\nimport {Typography} from \"@material-ui/core\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {isNonpublicProcedure} from \"constants/ProcedureType\";\r\n\r\n\r\nconst RealizationAmountProgress = (\r\n {\r\n demandId,\r\n roundId,\r\n demandStatistics,\r\n formSubmit,\r\n dealingsRealizationValueStatus,\r\n demandHeader\r\n }) => {\r\n\r\n\r\n const formId = 'realizationValuesForm';\r\n const [expanded, setExpanded] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n const [realizationValues, setRealizationValues] = useState(undefined);\r\n const curOfferCount = useRef(demandStatistics.numberOfOffers);\r\n const publishMode = useRef(null)\r\n\r\n useEffect(() => {\r\n if (curOfferCount.current === 0 && demandStatistics.numberOfOffers > 0) {\r\n curOfferCount.current = 1;\r\n DealingsService.getRealizationValueStatus(demandId);\r\n }\r\n }, [demandStatistics, demandId])\r\n\r\n\r\n const handleSubmit = () => {\r\n if (dealingsRealizationValueStatus.editable) {\r\n publishMode.current = null;\r\n formSubmit[formId]();\r\n } else {\r\n setExpanded(false);\r\n }\r\n\r\n }\r\n\r\n useEffect(() => {\r\n\r\n\r\n if (expanded) {\r\n setWorking(true);\r\n DealingsService.getRealizationValues(demandId).then(resp => {\r\n setRealizationValues(resp);\r\n setWorking(false);\r\n })\r\n\r\n } else {\r\n setRealizationValues(undefined);\r\n }\r\n\r\n }, [expanded, demandId])\r\n\r\n const processPublishUnpublish = async(publish) => {\r\n const serviceMethod = publish ? DealingsService.publishRealizationAmountValue : DealingsService.unpublishRealizationAmountValue;\r\n await serviceMethod(demandId);\r\n }\r\n\r\n const onSubmit = ({dealings}) => {\r\n\r\n setWorking(true);\r\n\r\n const toCompare = realizationValues.dealings;\r\n\r\n const touched = dealings.filter((el, i) => {\r\n return el.realizationGrossValue !== toCompare[i].realizationGrossValue\r\n });\r\n\r\n DealingsService.saveRealizationValues(demandId, {dealings: touched}, publishMode.current).then(() => {\r\n if(publishMode.current !== null) {\r\n processPublishUnpublish(publishMode.current).then(()=> {\r\n const arr = [];\r\n arr.push(DealingsService.getRealizationValueStatus(demandId))\r\n arr.push(RfxOfferService.getOffersDecryptionStatus(roundId))\r\n Promise.all(arr).finally(()=> {\r\n setExpanded(false);\r\n setWorking(false);\r\n })\r\n })\r\n } else {\r\n const arr = [];\r\n arr.push(DealingsService.getRealizationValueStatus(demandId))\r\n arr.push(RfxOfferService.getOffersDecryptionStatus(roundId))\r\n Promise.all(arr).finally(()=> {\r\n setExpanded(false);\r\n setWorking(false);\r\n })\r\n }\r\n })\r\n }\r\n\r\n const handleCancel = () => setExpanded(false);\r\n\r\n\r\n const handlePublish = (publish) => {\r\n publishMode.current = publish;\r\n formSubmit[formId]();\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), handleCancel, 'outlined', working));\r\n buttons.push(createButton(Tr('save'), handleSubmit, undefined, working));\r\n if (dealingsRealizationValueStatus.realizationOfferAmountPublished)\r\n buttons.push(createButton(Tr('unpublish'), () => handlePublish(false), undefined, working));\r\n else\r\n buttons.push(createButton(Tr('publish'), () => handlePublish(true), undefined, working));\r\n return buttons;\r\n }\r\n\r\n const getActions = () => {\r\n if (!dealingsRealizationValueStatus.editable || working || !expanded) return\r\n return \r\n }\r\n const getDetails = () => {\r\n if (working || !expanded || !realizationValues) return \r\n\r\n return \r\n {Tr(isNonpublicProcedure(demandHeader.procedureType) ? \"realization_value_info_pzp_excluded\" : \"realization_value_info\")}\r\n \r\n \r\n }\r\n\r\n const handleExpandSave = () => {\r\n if (expanded) {\r\n handleSubmit();\r\n } else {\r\n setExpanded(true);\r\n }\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nRealizationAmountProgress.propTypes = {};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n dealingsRealizationValueStatus: state.resources[DealingsService.RESOURCE_DEALING_REALIZATION_VALUE_STATUS],\r\n formSubmit: state.form\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(RealizationAmountProgress);\r\n","import React, {useEffect, useRef} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport OfferDecryptionProgress from \"../components/OfferDecryptionProgress\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport {withRouter} from \"react-router\";\r\nimport PublicSessionOnlineProgress from \"../components/PublicSessionOnlineProgress\";\r\nimport DealingsService from \"services/DealingsService\";\r\nimport RealizationAmountProgress from \"../components/RealizationAmountProgress\";\r\nimport {isDemandOfferCollection, isDemandOfferDecryption, isDemandModification} from \"libs/getDemandStatus\";\r\nimport moment from \"libs/moment\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(4)\r\n }\r\n}));\r\n\r\nfunction OfferDecryptionSection(\r\n {\r\n demandStatistics,\r\n currentRfxRound,\r\n match,\r\n rfxOfferDecryptionStatus,\r\n onlineSessionStatus,\r\n dealingsRealizationValueStatus,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyle();\r\n const demandId = match.params.id;\r\n const isOfferCollection = isDemandOfferCollection();\r\n const isModification = isDemandModification();\r\n const isOfferDecryption = isDemandOfferDecryption();\r\n const offerOpenTimeout = useRef(null);\r\n\r\n useEffect(() => {\r\n clearTimeout(offerOpenTimeout.current);\r\n if (currentRfxRound) {\r\n const offerOpenDate = moment(currentRfxRound.offerOpenDate);\r\n const offerDeadline = moment(currentRfxRound.offerEndDate);\r\n const now = moment(currentRfxRound.now);\r\n if (offerOpenDate.isAfter(now) && offerOpenDate.isAfter(offerDeadline)) {\r\n const diff = offerOpenDate.diff(now) + 500;\r\n offerOpenTimeout.current = setTimeout(() => {\r\n RfxOfferService.getOffersDecryptionStatus(currentRfxRound.id);\r\n }, diff);\r\n }\r\n }\r\n\r\n return () => {\r\n if (offerOpenTimeout.current) clearTimeout(offerOpenTimeout.current);\r\n }\r\n }, [demandStatistics, currentRfxRound])\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (currentRfxRound) {\r\n RfxOfferService.getOffersPublicSessionOnlineStatus(currentRfxRound.id);\r\n RfxOfferService.getOffersDecryptionStatus(currentRfxRound.id);\r\n if (demandHeader && !demandHeader.passiveOfferForm) {\r\n DealingsService.getRealizationValueStatus(demandId);\r\n }\r\n }\r\n\r\n return () => {\r\n RfxOfferService.clearResources(RfxOfferService.RESOURCE_ID_RFX_PUBLIC_SESSION_ONLINE_STATUS);\r\n RfxOfferService.clearResources(RfxOfferService.RESOURCE_ID_RFX_OFFER_DECRYPTION_STATUS);\r\n DealingsService.clearResources(DealingsService.RESOURCE_DEALING_REALIZATION_VALUE_STATUS);\r\n }\r\n }, [currentRfxRound, demandId, isOfferCollection, isOfferDecryption, demandHeader]);\r\n\r\n\r\n if (!demandStatistics || !onlineSessionStatus || !rfxOfferDecryptionStatus || !currentRfxRound || !demandHeader || (!demandHeader.passiveOfferForm && isOfferCollection && !dealingsRealizationValueStatus)) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {(isOfferCollection || isModification) &&\r\n
}\r\n {(!demandHeader.passiveOfferForm && Boolean(dealingsRealizationValueStatus)) &&\r\n }\r\n {((isOfferCollection || isModification || isOfferDecryption)) && currentRfxRound.offerCollectionEnded && }\r\n \r\n )\r\n}\r\n\r\n\r\nOfferDecryptionSection.propTypes = {\r\n demandStatistics: PropTypes.object\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n rfxOfferDecryptionStatus: state.resources[RfxOfferService.RESOURCE_ID_RFX_OFFER_DECRYPTION_STATUS],\r\n onlineSessionStatus: state.resources[RfxOfferService.RESOURCE_ID_RFX_PUBLIC_SESSION_ONLINE_STATUS],\r\n dealingsRealizationValueStatus: state.resources[DealingsService.RESOURCE_DEALING_REALIZATION_VALUE_STATUS],\r\n demandHeader: state.resources.demandHeader,\r\n //rfxOfferPublicSessionStatus: state.resources[RfxOfferService.RESOURCE_ID_RFX_OFFER_PUBLIC_SESSION_STATUS],\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(OfferDecryptionSection));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {withRouter} from \"react-router\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport DocumentsTables from \"components/complex/documentsTables/DocumentsTables\";\r\nimport Section from \"../components/Section\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%',\r\n position: \"relative\"\r\n },\r\n marginBottom: {\r\n marginBottom: theme.spacing(2),\r\n }\r\n}));\r\n\r\nfunction DocumentsSection(\r\n {\r\n match,\r\n siwzEditable,\r\n repoEditable\r\n }) {\r\n\r\n const classes = useStyles();\r\n let demandId = match.params.id;\r\n\r\n return (\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\n\r\nDocumentsSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withRouter(DocumentsSection);","import React, {useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\nimport SingleButton from \"components/popup/components/SingleButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n disabledEmpty: {\r\n fontStyle: 'italic'\r\n }\r\n}));\r\n\r\nfunction ResendOfferInvitationPopup(\r\n {\r\n demandId,\r\n roundId,\r\n onClose = () => {\r\n },\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const formId = useId();\r\n const [sent, setSent] = useState(false);\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = ({emails}, fp) => {\r\n const emailsTab = getEmailsTab(emails);\r\n if (emailsTab.length > 0) {\r\n RfxOfferService.sendIvniteToOffers(roundId, emailsTab).then((resp) => {\r\n if (resp.success) {\r\n setSent(true);\r\n } else {\r\n const errors = resp.errors;\r\n const filter = emailsTab.filter((x, i) => errors.hasOwnProperty(`emails[${i}]`));\r\n fp.setFieldError(\"emails\", Tr('invalid_emails', {emails: filter.join(\",\")}))\r\n }\r\n }).catch(()=>{});\r\n } else {\r\n onClose();\r\n }\r\n }\r\n\r\n const getEmailsTab = (emails) => {\r\n if (!emails) {\r\n return [];\r\n }\r\n return emails.split(';').map(x => x.trim()).filter(x => Boolean(x))\r\n\r\n }\r\n\r\n\r\n const emailValidator = VS.email();\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(ResendOfferInvitationPopup);","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Button from './Button';\r\n\r\nfunction Tile(\r\n {\r\n icon,\r\n numberText,\r\n text,\r\n dangerouslySetText,\r\n className,\r\n onClick,\r\n }) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nTile.propTypes = {\r\n classes: PropTypes.any,\r\n icon: PropTypes.object.isRequired,\r\n numberText: PropTypes.string,\r\n text: PropTypes.string,\r\n}\r\n\r\nTile.defaultProps = {}\r\n\r\nexport default Tile;","import React from 'react'\r\nimport {makeStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tile from 'components/Tile';\r\nimport LocalOfferIcon from '@material-ui/icons/LocalOffer'\r\nimport ForumIcon from '@material-ui/icons/Forum'\r\nimport GroupIcon from '@material-ui/icons/Group'\r\nimport DescriptionIcon from '@material-ui/icons/Description'\r\nimport MailIcon from '@material-ui/icons/Mail';\r\nimport Tr from 'translations/Translations';\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {withRouter} from \"react-router\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n '&>*:not(:first-child)': {\r\n marginLeft: theme.spacing(2),\r\n },\r\n marginBottom: theme.spacing(4)\r\n },\r\n icon: {\r\n fontSize: theme.components.icon.fontSize,\r\n },\r\n mirror: {\r\n transform: 'scaleX(-1)'\r\n },\r\n tile: {\r\n width: 225,\r\n height: 203,\r\n }\r\n}));\r\n\r\nfunction TilesRow(\r\n {\r\n match,\r\n offerCollectionOrModification,\r\n demandStatistics\r\n }) {\r\n const classes = useStyles();\r\n const demandId = match.params.id;\r\n\r\n const handleCorrespondenceClick = () => {\r\n if (!demandStatistics.operatorQnALink) {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_CORRESPONDENCE_ID, {id: demandId});\r\n RouterPath.redirect(href)\r\n } else {\r\n window.location.href = demandStatistics.operatorQnALink.url;\r\n }\r\n };\r\n\r\n const handleDocumentsClick = (e) => {\r\n e.preventDefault();\r\n if (offerCollectionOrModification) {\r\n scrollTo(\"#documentsSection\")\r\n } else {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_3_ID, {id: demandId});\r\n RouterPath.redirect(href)\r\n }\r\n }\r\n\r\n const handleOffersClick = (e) => {\r\n e.preventDefault();\r\n if (offerCollectionOrModification) {\r\n scrollTo(\"#offersSection\")\r\n } else {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_3_ID, {id: demandId});\r\n RouterPath.redirect(href)\r\n }\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n }\r\n text={Tr('messages')}\r\n numberText={demandStatistics.numberOfUnreadMessagesFromSuppliers + ' / ' + demandStatistics.numberOfMessagesFromSuppliers}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n handleCorrespondenceClick();\r\n }}\r\n />\r\n }\r\n text={Tr('offers')}\r\n numberText={demandStatistics.numberOfOffers.toString()}\r\n onClick={handleOffersClick}\r\n />\r\n }\r\n text={Tr('contractors')}\r\n numberText={demandStatistics.numberOfSuppliers.toString()}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n scrollTo(\"#contractorSection\")\r\n }}\r\n />\r\n }\r\n text={Tr('documents')}\r\n numberText={demandStatistics.numberOfAttachments.toString()}\r\n onClick={handleDocumentsClick}\r\n />\r\n }\r\n text={Tr('email_list')}\r\n numberText={demandStatistics.numberOfEmails.toString()}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_EMAIL_LIST_ID, {id: demandId});\r\n RouterPath.redirect(href)\r\n }}\r\n />\r\n
\r\n >\r\n )\r\n}\r\n\r\nTilesRow.propTypes = {\r\n offerCollectionOrModification: PropTypes.bool.isRequired,\r\n demandStatistics: PropTypes.object.isRequired,\r\n}\r\n\r\nTilesRow.defaultProps = {}\r\n\r\n\r\nexport default withRouter(TilesRow);","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\n\r\nconst getPoll = async (pollType) => {\r\n return await RestRequestGET(Endpoints.POLL_GET(pollType));\r\n}\r\n\r\nconst savePollRating = async (rating) => {\r\n return await RestRequestPOST(Endpoints.POLL_SAVE_RATING(), rating);\r\n}\r\n\r\nexport default {getPoll, savePollRating}","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {ToggleButton, ToggleButtonGroup} from \"@material-ui/lab\";\r\nimport SentimentVeryDissatisfiedIcon from '@material-ui/icons/SentimentVeryDissatisfied';\r\nimport SentimentDissatisfiedIcon from '@material-ui/icons/SentimentDissatisfied';\r\nimport SentimentSatisfiedIcon from '@material-ui/icons/SentimentSatisfied';\r\nimport SentimentSatisfiedAltIcon from '@material-ui/icons/SentimentSatisfiedAltOutlined';\r\nimport SentimentVerySatisfiedIcon from '@material-ui/icons/SentimentVerySatisfied';\r\n\r\n\r\nconst ratings = [\r\n {\r\n rating: 0,\r\n icon: ,\r\n label: 'Very Dissatisfied',\r\n },\r\n {\r\n rating: 1,\r\n icon: ,\r\n label: 'Very Dissatisfied',\r\n },\r\n {\r\n rating: 2,\r\n icon: ,\r\n },\r\n {\r\n rating: 3,\r\n icon: ,\r\n },\r\n {\r\n rating: 4,\r\n icon: ,\r\n },\r\n {\r\n rating: 5,\r\n icon: ,\r\n },\r\n {\r\n rating: 6,\r\n icon: ,\r\n },\r\n {\r\n rating: 7,\r\n icon: ,\r\n },\r\n {\r\n rating: 8,\r\n icon: ,\r\n },\r\n {\r\n rating: 9,\r\n icon: ,\r\n },\r\n {\r\n rating: 10,\r\n icon: ,\r\n }];\r\n\r\nfunction PollNpsSwitch(\r\n {\r\n scoreChange,\r\n score,\r\n classes = {},\r\n }) {\r\n\r\n return (\r\n \r\n {\r\n ratings.map((x) => \r\n {\"\" + x.rating} {x.icon}\r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nPollNpsSwitch.propTypes = {\r\n scoreChange: PropTypes.func.isRequired,\r\n score: PropTypes.number,\r\n classes: PropTypes.shape({\r\n root: PropTypes.string,\r\n button: PropTypes.string\r\n })\r\n}\r\n\r\nexport default PollNpsSwitch;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PollService from \"services/PollService\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PollNpsSwitch from \"./PollNpsSwitch\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n button: {\r\n padding: \"20px 25px\"\r\n },\r\n question: {\r\n marginBottom: theme.spacing()\r\n }\r\n}))\r\n\r\n\r\n\r\nfunction Poll(\r\n {\r\n demandId,\r\n pollType,\r\n onClose\r\n }) {\r\n const classes = useStyle();\r\n\r\n const [poll, setPoll] = useState({});\r\n\r\n useEffect(() => {\r\n PollService.getPoll(pollType).then((resp) => setPoll(resp));\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n const handleChange = (event, rate) => {\r\n\r\n const rating = {\r\n pollType: pollType,\r\n objectType: \"demand\",\r\n objectId: demandId,\r\n score: rate\r\n }\r\n PollService.savePollRating(rating);\r\n onClose();\r\n\r\n };\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nPoll.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n pollType: PropTypes.string.isRequired,\r\n onClose: PropTypes.func.isRequired\r\n}\r\n\r\nexport default Poll;","import React, {useEffect, useMemo, useRef, useState} from 'react'\r\nimport ContractorSection from './sections/ContractorSection';\r\nimport OfferSection from './sections/OfferSection';\r\nimport StatisticSection from \"./sections/StatisticSection\";\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport OfferDecryptionSection from \"./sections/OfferDecryptionSection\";\r\nimport DocumentsSection from \"./sections/DocumentsSection\";\r\nimport NavigationBar from \"components/complex/floatingMenu/NavigationBar\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {modify} from \"services/ModificationService\";\r\nimport {isDemandModification, isDemandOfferCollection} from \"libs/getDemandStatus\";\r\nimport createButton from \"components/complex/floatingMenu/createButton\";\r\nimport Workspace from \"components/Workspace\";\r\nimport {connect} from \"react-redux\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport ResendOfferInvitationPopup from \"./components/ResendOfferInvitationPopup\";\r\nimport TilesRow from \"./components/TilesRow\";\r\nimport Loading from \"components/Loading\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport DemandRelatedObjectsPopup from \"components/popup/relatedObjects/DemandRelatedObjectsPopup\";\r\nimport PublishService from \"services/PublishService\";\r\nimport Poll from \"components/popup/poll/Poll\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport RepoService from \"services/RepoService\";\r\nimport RfxRoundService from \"services/RfxRoundService\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport DemandService from \"services/DemandService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n menuBar: {\r\n direction: 'rtl',\r\n marginBottom: theme.spacing(2)\r\n }\r\n}))\r\n\r\nconst rp = RouterPath.myProcedure;\r\n\r\nfunction Part2(\r\n {\r\n match,\r\n demandStatistics,\r\n currentRfxRound,\r\n demandHeader,\r\n siwzEditable = false,\r\n repoEditable = false,\r\n rfxPrivileges = {},\r\n demandPrivileges = {}\r\n }) {\r\n\r\n const demandId = match.params.id;\r\n const classes = useStyle();\r\n\r\n const [working, setWorking] = useState(false);\r\n const [refreshStats, setRefreshStats] = useState(0);\r\n const [resendInvitationPopupOpen, setResendInvitationPopup] = useState(false);\r\n const [relatedObjectPopup, setRelatedObjectPopup] = useState(false);\r\n const [firstPublication, setFirstPublication] = useState(()=> PublishService.isFirstPublication(demandId));\r\n const intervalId = useRef(0);\r\n const loadingInProgress = useRef(false);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const offerCollection = useMemo(() => isDemandOfferCollection(), [demandHeader]);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const modification = useMemo(() => isDemandModification(), [demandHeader]);\r\n\r\n useEffect(() => {\r\n if (!loadingInProgress.current && currentRfxRound?.id) {\r\n loadingInProgress.current = true;\r\n StatisticsService.getStats(demandId, currentRfxRound.id).finally(() => loadingInProgress.current = false);\r\n }\r\n }, [refreshStats, currentRfxRound, demandId])\r\n\r\n useEffect(() => {\r\n setRefreshStats(x => x + 1);\r\n }, [currentRfxRound])\r\n\r\n useEffect(() => {\r\n StatisticsService.getCurrentRound(demandId).then((res)=> {\r\n if(res)\r\n RfxRoundService.getBuyerPrivileges(res.id)\r\n });\r\n intervalId.current = setInterval(() => {\r\n setRefreshStats(x => x + 1)\r\n }, 20000);\r\n SiwzService.isSiwzEditable(demandId);\r\n RepoService.isRepoEditable(demandId);\r\n DemandService.getBuyerPrivileges(demandId);\r\n\r\n return () => {\r\n if (intervalId.current)\r\n clearInterval(intervalId.current);\r\n StatisticsService.clearStats();\r\n StatisticsService.clearCurrentRound();\r\n HeaderService.clear();\r\n SiwzService.clearResources(SiwzService.SIWZ_EDITABLE_RESOURCE_ID);\r\n RepoService.clearResources(RepoService.REPO_EDITABLE_RESOURCE_ID);\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.RFX_PRIVILEGE_STORE_KEY);\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY);\r\n }\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n\r\n const endTimeCallback = () => {\r\n StatisticsService.getCurrentRound(demandId);\r\n setRefreshStats(x => x + 1);\r\n };\r\n\r\n const handlePrevClick = () => {\r\n const href = RouterPath.createPath(rp.steps.MP_1_ID, {id: demandId});\r\n RouterPath.redirect(href)\r\n };\r\n\r\n const handleModifyClick = () => {\r\n if (!working) {\r\n setWorking(true);\r\n modify(demandId)\r\n .then((resp) => {\r\n if (resp) {\r\n handlePrevClick();\r\n } else {\r\n setWorking(false);\r\n }\r\n }).catch(() => {\r\n setWorking(false);\r\n })\r\n }\r\n };\r\n\r\n\r\n const getNavigationBarButtons = () => {\r\n const buttons = [];\r\n if (!demandHeader || !currentRfxRound) {\r\n return buttons;\r\n }\r\n const offerCollection = isDemandOfferCollection();\r\n if (demandHeader.hasPlanItems || demandHeader.hasPurchaseRequests) {\r\n buttons.push(createButton('related_objects', () => setRelatedObjectPopup(true),\"outlined\", ListIcon, 'primary', false));\r\n }\r\n buttons.push(createButton(\"resend_offer_invitation\", () => setResendInvitationPopup(true), \"outlined\", undefined, \"primary\", !rfxPrivileges.RESEND_INVITATION || working || !(offerCollection || modification)));\r\n buttons.push(createButton(\"modify\", handleModifyClick, undefined, undefined, \"primary\", !demandPrivileges.MODIFY || working || !offerCollection));\r\n return buttons;\r\n };\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const navigationBarButtons = useMemo(getNavigationBarButtons, [demandHeader, currentRfxRound, rfxPrivileges, demandPrivileges, working])\r\n\r\n return (\r\n <>\r\n {(Boolean(currentRfxRound) && Boolean(demandHeader) && Boolean(demandStatistics)) ?\r\n <>\r\n \r\n \r\n {(offerCollection || modification) &&\r\n \r\n }\r\n \r\n \r\n {(offerCollection || modification) &&\r\n \r\n }\r\n \r\n {(offerCollection || modification) &&\r\n \r\n }\r\n >}\r\n />\r\n >\r\n :\r\n \r\n }\r\n {resendInvitationPopupOpen &&\r\n setResendInvitationPopup(false)}/>}\r\n {\r\n relatedObjectPopup &&\r\n setRelatedObjectPopup(false)}/>\r\n }\r\n {\r\n firstPublication && setFirstPublication(false)} pollType='demand_publication' demandId={demandId} />\r\n }\r\n >\r\n )\r\n}\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n demandHeader: state.resources.demandHeader,\r\n demandStatistics: state.resources[StatisticsService.DEMAND_STATISTICS_RESOURCE_ID],\r\n currentRfxRound: state.resources[StatisticsService.CURRENT_RFX_RESOURCE_ID],\r\n siwzEditable: state.resources[SiwzService.SIWZ_EDITABLE_RESOURCE_ID],\r\n repoEditable: state.resources[RepoService.REPO_EDITABLE_RESOURCE_ID],\r\n rfxPrivileges: state.privileges[PrivilegeService.RFX_PRIVILEGE_STORE_KEY],\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY],\r\n });\r\n\r\nconst mapDispatchToProps = {};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Part2);","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport useId from \"hooks/useId\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport DealingsService from \"services/DealingsService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport RealizationAmountForm from \"components/complex/realizationAmount/RealizationAmountForm\";\r\nimport Typography from \"../../../../../../../components/Typography\";\r\n\r\n\r\nconst RealizationValuePopup = (\r\n {\r\n demandId,\r\n onCancel,\r\n onSuccess,\r\n editable,\r\n formSubmit,\r\n }) => {\r\n\r\n\r\n const [realizationValues, setRealizationValues] = useState(null);\r\n const [working, setWorking] = useState(true);\r\n const [error, setError] = useState(null);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = ({dealings}) => {\r\n setError(false);\r\n setWorking(true);\r\n\r\n const toCompare = realizationValues.dealings;\r\n\r\n const touched = dealings.filter((el, i) => {\r\n return el.realizationGrossValue !== toCompare[i].realizationGrossValue\r\n });\r\n\r\n DealingsService.saveRealizationValues(demandId, {dealings: touched}).then(onSuccess).catch(() => {\r\n setError(Tr('unknown_error_message'));\r\n setWorking(false);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n DealingsService.getRealizationValues(demandId).then(resp => {\r\n if (isResponseValid(resp, setError))\r\n setRealizationValues(resp)\r\n }).finally(() => setWorking(false))\r\n }, [demandId])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n if (realizationValues && realizationValues.realizationValuePublished === true) {\r\n buttons.push(createButton(Tr('unpublish'), () => changePublication(false), undefined, working || !editable));\r\n } else if (realizationValues && realizationValues.realizationValuePublished === false) {\r\n buttons.push(createButton(Tr('publish'), () => changePublication(true), undefined, working || !editable));\r\n }\r\n\r\n buttons.push(createButton(Tr('save'), handleSubmit, undefined, working || !editable));\r\n return buttons;\r\n }\r\n\r\n\r\n const changePublication = (publish) => {\r\n setWorking(true);\r\n const serviceMethod = publish ? DealingsService.publishRealizationAmountValue : DealingsService.unpublishRealizationAmountValue;\r\n serviceMethod(demandId).then(() => {\r\n return DealingsService.getRealizationValues(demandId)\r\n }).then(resp => setRealizationValues(resp)).finally(() => setWorking(false));\r\n }\r\n\r\n\r\n return (\r\n )\r\n}\r\n\r\nRealizationValuePopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(RealizationValuePopup)","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport panels from './part3.panels.components'\r\nimport {clearResource, setStepperState} from 'redux/actions'\r\nimport {connect} from 'react-redux'\r\nimport AccordionPart from \"pages/purchaser/MyProcedure/scenes/components/AccordionPart\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport createButton, {createSubmitFormButton} from \"components/complex/floatingMenu/createButton\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\nimport ForumIcon from '@material-ui/icons/Forum'\r\nimport reduxStore from \"redux/store\";\r\nimport DemandSectionsService from \"services/DemandSectionsService\";\r\nimport {DemandValidation, DemandValidationKeys} from \"constants/DemandValidation\";\r\nimport RealizationValuePopup from \"./panels/components/RealizationValuePopup\";\r\nimport ArrowIcon from \"@material-ui/icons/KeyboardArrowUp\";\r\nimport DemandRelatedObjectsPopup from \"components/popup/relatedObjects/DemandRelatedObjectsPopup\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport DemandService from \"services/DemandService\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\n\r\n\r\nfunction Part3(\r\n {\r\n stepperState,\r\n setStepperState,\r\n clearResource,\r\n steps,\r\n match,\r\n location,\r\n demandValidation,\r\n demandHeader,\r\n rfxPrivileges = {}\r\n }) {\r\n const id = match.params.id;\r\n const [working, setWorking] = useState(true);\r\n const [realizationValuesPopupOpened, setRealizationValuesPopupOpened] = useState(false);\r\n const [relatedObjectPopup, setRelatedObjectPopup] = useState(false);\r\n\r\n useEffect(() => {\r\n const p2 = HeaderService.get(id);\r\n const p1 = DemandSectionsService.getEvaluationSections(id);\r\n const p3 = DemandService.getBuyerPrivileges(id);\r\n const p4 = DemandService.getBuyerRfxPrivileges(id);\r\n Promise.all([p1, p2, p3, p4]).then(() => setWorking(false));\r\n\r\n return () => {\r\n reduxStore.dispatch(setStepperState(null));\r\n DemandSectionsService.clearDemandValidationResources();\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY)\r\n HeaderService.clear();\r\n };\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const navigationBarButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton('email_list', () => {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_EMAIL_LIST_ID, {id: id});\r\n RouterPath.redirect(href)\r\n }, undefined, MailIcon, 'primary', false, true));\r\n\r\n if (!!rfxPrivileges.CORRESPONDENCE) {\r\n buttons.push(createButton('correspondence', () => {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_CORRESPONDENCE_ID, {id: id});\r\n RouterPath.redirect(href)\r\n }, undefined, ForumIcon, 'primary', false, true));\r\n }\r\n\r\n if (demandHeader && (demandHeader.hasPlanItems || demandHeader.hasPurchaseRequests)) {\r\n buttons.push(createButton('related_objects', () => setRelatedObjectPopup(true),\r\n \"outlined\", ListIcon, 'primary', false, true));\r\n }\r\n\r\n if (demandValidation) {\r\n const section = demandValidation.find(x => x.section === DemandValidation.PART_3_SECTION);\r\n if (section && section.showUpdateRealizationValue) {\r\n buttons.push(createButton('realization_demand_value', () => setRealizationValuesPopupOpened(true),\r\n 'outlined', undefined, 'primary', false, false));\r\n }\r\n }\r\n\r\n const isSaveButton = !!stepperState && stepperState === DemandValidationKeys.EVALUATION_ADDITIONAL_INFO;\r\n buttons.push(createSubmitFormButton(isSaveButton ? \"save\" : \"close\",\r\n undefined,\r\n isSaveButton ? SaveIcon : ArrowIcon,\r\n 'primary',\r\n stepperState === null,\r\n isSaveButton)\r\n );\r\n return buttons;\r\n }\r\n\r\n return (<>\r\n \r\n {realizationValuesPopupOpened && setRealizationValuesPopupOpened(false)}\r\n onCancel={() => setRealizationValuesPopupOpened(false)}\r\n editable\r\n />\r\n }\r\n {\r\n relatedObjectPopup &&\r\n setRelatedObjectPopup(false)}/>\r\n }\r\n >\r\n )\r\n}\r\n\r\nPart3.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n stepperState: state.stepper.state,\r\n steps: state.stepper.steps[2].steps,\r\n demandValidation: state.resources.demandValidation,\r\n rfxPrivileges: state.privileges[PrivilegeService.RFX_PRIVILEGE_STORE_KEY],\r\n form: state.form,\r\n}), {\r\n setStepperState,\r\n clearResource\r\n})(Part3);","import React, {useEffect, useMemo, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport panels from './part4.panels.components'\r\nimport {clearResource, setStepperState} from 'redux/actions'\r\nimport {connect} from 'react-redux'\r\nimport reduxStore from 'redux/store'\r\nimport AccordionPart from \"pages/purchaser/MyProcedure/scenes/components/AccordionPart\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport createButton, {createSubmitFormButton} from \"components/complex/floatingMenu/createButton\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\nimport ForumIcon from '@material-ui/icons/Forum'\r\nimport DemandSectionsService from \"services/DemandSectionsService\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport ArrowIcon from \"@material-ui/icons/KeyboardArrowUp\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport DemandRelatedObjectsPopup from \"components/popup/relatedObjects/DemandRelatedObjectsPopup\";\r\nimport DemandService from \"services/DemandService\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport {DemandValidationKeys} from \"constants/DemandValidation\";\r\nimport {isNationalProcedure} from \"constants/ProcedureType\";\r\nimport Tr from \"translations/Translations\"\r\n\r\nfunction Part4(\r\n {\r\n stepperState,\r\n setStepperState,\r\n clearResource,\r\n steps,\r\n match,\r\n demandValidation,\r\n demandHeader\r\n }) {\r\n const id = match.params.id;\r\n const [working, setWorking] = useState(true);\r\n const [relatedObjectPopup, setRelatedObjectPopup] = useState(false);\r\n\r\n useEffect(() => {\r\n const p2 = HeaderService.get(id);\r\n const p1 = DemandSectionsService.getFinishingSections(id);\r\n const p3 = DemandService.getBuyerPrivileges(id);\r\n Promise.all([p1, p2, p3]).then(() => setWorking(false));\r\n\r\n return () => {\r\n reduxStore.dispatch(setStepperState(null));\r\n DemandSectionsService.clearDemandValidationResources();\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY);\r\n HeaderService.clear();\r\n };\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const navigationBarButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton('email_list', () => {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_EMAIL_LIST_ID, {id: id});\r\n RouterPath.redirect(href)\r\n }, undefined, MailIcon, 'primary', false, true));\r\n\r\n if (!demandHeader || !demandHeader.exPost) {\r\n buttons.push(createButton('correspondence', () => {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_CORRESPONDENCE_ID, {id: id});\r\n RouterPath.redirect(href)\r\n }, undefined, ForumIcon, 'primary', false, true));\r\n\r\n if (demandHeader && (demandHeader.hasPlanItems || demandHeader.hasPurchaseRequests)) {\r\n buttons.push(createButton('related_objects', () => setRelatedObjectPopup(true),\r\n \"outlined\", ListIcon, 'primary', false, true));\r\n }\r\n }\r\n\r\n\r\n const isSaveButton = !!stepperState && (stepperState === \"mp_4_demand_plan_realization\" || stepperState === \"mp_4_finish_additional_info\");\r\n buttons.push(createSubmitFormButton(isSaveButton ? \"save\" : \"close\",\r\n undefined,\r\n isSaveButton ? SaveIcon : ArrowIcon,\r\n 'primary',\r\n stepperState === null,\r\n isSaveButton)\r\n );\r\n\r\n return buttons;\r\n\r\n };\r\n\r\n const stepsMemo = useMemo(()=> {\r\n return steps.map(x => x.key === DemandValidationKeys.RESULT_NOTICE && isNationalProcedure(demandHeader?.procedureType) ? {...x, label: Tr(\"mp_4_result_notice_national\")} : x )\r\n },[demandHeader, steps])\r\n\r\n\r\n return (<>\r\n \r\n {\r\n relatedObjectPopup &&\r\n setRelatedObjectPopup(false)}/>\r\n }\r\n >\r\n )\r\n}\r\n\r\nPart4.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n stepperState: state.stepper.state,\r\n steps: state.stepper.steps[3].steps,\r\n demandValidation: state.resources.demandValidation,\r\n form: state.form,\r\n}), {\r\n setStepperState,\r\n clearResource\r\n})(Part4);","import React from 'react'\r\nimport {TextField} from '@material-ui/core';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport PropTypes from 'prop-types';\r\nimport {Autocomplete} from \"@material-ui/lab\";\r\nimport Tr from \"translations/Translations\";\r\n\r\n\r\nfunction OrganizationsSelect(\r\n {\r\n formikProps,\r\n id,\r\n label,\r\n items,\r\n noError,\r\n className,\r\n required,\r\n disabled,\r\n onChange = () => {\r\n },\r\n onChipClick,\r\n chipTitle\r\n }) {\r\n\r\n\r\n const errorValue = getObjectValue(id, formikProps.errors, '')\r\n //const touched = getObjectValue(id, formikProps.touched, false)\r\n const value = getObjectValue(id, formikProps.values, [])\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const isError = !noError && !!errorValue;\r\n\r\n let _label = label;\r\n if (required) _label += '*';\r\n\r\n const handleChange = (event, newValue) => {\r\n formikProps.setFieldValue(id, newValue.map(x => x.value));\r\n formikProps.setFieldTouched(id, true);\r\n onChange(newValue);\r\n };\r\n\r\n return (\r\n option.label}\r\n value={items.filter(x => value.includes(x.value))}\r\n filterSelectedOptions\r\n disableCloseOnSelect\r\n\r\n disabled={disabled || !editable}\r\n ChipProps={{\r\n onClick: onChipClick,\r\n title: chipTitle\r\n }}\r\n renderInput={params => {\r\n return \r\n }}\r\n\r\n />)\r\n\r\n}\r\n\r\nOrganizationsSelect.propTypes = {\r\n className: PropTypes.string,\r\n formikProps: PropTypes.object,\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n items: PropTypes.arrayOf(\r\n PropTypes.oneOfType([\r\n PropTypes.shape({\r\n value: PropTypes.any.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }),\r\n PropTypes.string.isRequired,\r\n ])\r\n ),\r\n onChipClick: PropTypes.func,\r\n chipTitle: PropTypes.string\r\n}\r\n\r\nOrganizationsSelect.defaultProps = {\r\n items: []\r\n}\r\n\r\nexport default OrganizationsSelect\r\n","export default (x) => {\r\n let label = x.name;\r\n if (x.postCode || x.city) {\r\n label += \" (\";\r\n if (x.postCode) {\r\n label += x.postCode;\r\n }\r\n if (x.city) {\r\n label += \", \" + x.city;\r\n }\r\n label += \")\";\r\n }\r\n return label;\r\n}\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport contractorNameBuilder from \"libs/contractorNameBuilder\";\r\nimport Typography from \"components/Typography\";\r\n\r\nfunction CorrespondenceEmailList(\r\n {\r\n wrapper,\r\n className\r\n }) {\r\n\r\n return \r\n
{contractorNameBuilder(wrapper.recipient)}\r\n
\r\n {wrapper.emails.map((x, i) => - {`${i+1}. ${x}`}
)}\r\n
\r\n
;\r\n\r\n}\r\n\r\nCorrespondenceEmailList.propTypes = {\r\n wrapper: PropTypes.shape({\r\n recipient: PropTypes.object.isRequired,\r\n emails: PropTypes.arrayOf(PropTypes.string).isRequired\r\n }).isRequired\r\n}\r\nexport default CorrespondenceEmailList;\r\n\r\n","import React, {useEffect, useMemo, useState} from 'react'\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Loading from \"components/Loading\";\r\nimport CorrespondenceService from \"services/CorrespondenceService\";\r\nimport OrganizationsSelect from \"components/OrganizationsSelect\";\r\nimport InputLimits from \"constants/InputLimits\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport contractorNameBuilder from \"libs/contractorNameBuilder\";\r\nimport ToggleButton from \"@material-ui/lab/ToggleButton\";\r\nimport ToggleButtonGroup from \"@material-ui/lab/ToggleButtonGroup\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport Button from \"components/Button\";\r\nimport CorrespondenceEmailList from \"./CorrespondenceEmailList\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport {connect} from \"react-redux\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n marginTop: {\r\n marginTop: theme.spacing(4)\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing(2)\r\n },\r\n loading: {\r\n width: '98%'\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n },\r\n uploadFile: {\r\n marginBottom: 20\r\n },\r\n toggle: {\r\n width: \"100%\"\r\n },\r\n toggleButton: {\r\n width: \"50%\"\r\n },\r\n dialogContent: {\r\n position: \"relative\"\r\n },\r\n ctrEmailList: {\r\n background: theme.palette.background.paper,\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n ctrEmailListTitle: {\r\n position: \"fixed\",\r\n background: theme.palette.background.paper,\r\n maxWidth: 900,\r\n marginTop: theme.spacing(-1)\r\n }\r\n}));\r\n\r\nconst limits = InputLimits.procedure.correspondence;\r\n\r\nfunction AddThreadPopup(\r\n {\r\n rfxRoundId,\r\n listResourceId,\r\n onClose,\r\n contractor,\r\n formSubmit,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const [error, setError] = useState('');\r\n const [sendType, setSendType] = useState('');\r\n const [working, setWorking] = useState(!contractor);\r\n const [withOfferSwitch, setWithOfferSwitch] = useState(false);\r\n const [contractorList, setContractorList] = useState([]);\r\n const [contractorEmailList, setContractorEmailList] = useState(null);\r\n const {enqueueErrorSnackbar} = useSnackbar();\r\n const formId = useId();\r\n\r\n const contractorListForSelect = useMemo(() => {\r\n const srcList = withOfferSwitch ? contractorList.filter(x => x.hasOffer) : contractorList;\r\n return srcList.map(x => ({label: contractorNameBuilder(x), value: x.id}));\r\n }, [contractorList, withOfferSwitch]);\r\n\r\n const handleSubmit = (type) => {\r\n setError('');\r\n setSendType(type);\r\n formSubmit[formId]();\r\n }\r\n\r\n useEffect(() => {\r\n if (!contractor) {\r\n const contractorInRoundList = CorrespondenceService.getBuyerContractorInRoundList(rfxRoundId).then(resp => setContractorList(resp));\r\n Promise.all([contractorInRoundList]).finally(() => setWorking(false));\r\n }\r\n\r\n }, [rfxRoundId, contractor]);\r\n\r\n const handleSaveResponse = (response) => {\r\n if (isResponseValid(response, setError)) {\r\n setWorking(false);\r\n onClose();\r\n } else {\r\n setWorking(false);\r\n }\r\n };\r\n\r\n const handleSendResponse = (saveResponse) => {\r\n if (isResponseValid(saveResponse, setError)) {\r\n const messages = saveResponse.messages;\r\n if (!messages || messages.length === 0 || !messages[0].messageId || !saveResponse.threadId) {\r\n setError(Tr('unknown_error_message'));\r\n } else {\r\n if (contractor) {\r\n CorrespondenceService.sendContractorMessage(rfxRoundId, saveResponse.threadId, messages[0].messageId, listResourceId).then(handleSaveResponse).catch(() => setWorking(false))\r\n } else {\r\n CorrespondenceService.sendBuyerMessage(rfxRoundId, saveResponse.threadId, messages[0].messageId, listResourceId).then(handleSaveResponse).catch(() => setWorking(false))\r\n }\r\n }\r\n } else {\r\n setWorking(false);\r\n }\r\n };\r\n\r\n const onSubmit = (thread) => {\r\n setWorking(true);\r\n const req = {\r\n subject: thread.subject,\r\n message: {\r\n attachments: thread.attachments,\r\n contents: thread.contents,\r\n recipients: contractor ? [] : contractorList.filter(x => thread.supplierRecipientIds.indexOf(x.id) > -1)\r\n }\r\n };\r\n\r\n if (sendType === 'save') {\r\n if (contractor) {\r\n CorrespondenceService.addContractorThread(rfxRoundId, req, listResourceId).then(handleSaveResponse).catch(() => setWorking(false));\r\n } else {\r\n CorrespondenceService.addBuyerThread(rfxRoundId, req, listResourceId).then(handleSaveResponse).catch(() => setWorking(false));\r\n }\r\n } else if (sendType === 'send') {\r\n if (contractor) {\r\n CorrespondenceService.addContractorThread(rfxRoundId, req, listResourceId).then(handleSendResponse).catch(() => setWorking(false));\r\n } else {\r\n CorrespondenceService.addBuyerThread(rfxRoundId, req, listResourceId).then(handleSendResponse).catch(() => setWorking(false));\r\n }\r\n\r\n }\r\n setSendType('');\r\n\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working || !!contractorEmailList));\r\n buttons.push(createButton(Tr('save'), () => handleSubmit('save'), 'outlined', working || !!contractorEmailList));\r\n buttons.push(createButton(Tr('send'), () => handleSubmit('send'), undefined, working || !!contractorEmailList));\r\n return buttons;\r\n }\r\n\r\n const onChangeWithOffer = (withOffer, formikProps) => {\r\n if (withOffer !== null && withOffer !== withOfferSwitch) {\r\n formikProps.setFieldValue('supplierRecipientIds', []);\r\n setWithOfferSwitch(withOffer)\r\n }\r\n }\r\n\r\n const chipClick = (e) => {\r\n setContractorEmailList({});\r\n const ctr = contractorList.find(x => contractorNameBuilder(x) === e.target.innerText);\r\n CorrespondenceService.getBuyerContractorEmailList(rfxRoundId, ctr.contractorDepartmentId).then(setContractorEmailList).catch(() => {\r\n setContractorEmailList(null)\r\n enqueueErrorSnackbar(Tr(\"unknown_error_message\"));\r\n })\r\n\r\n }\r\n\r\n return (\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddThreadPopup);","import React, {useState} from 'react'\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport TextInput from \"../../TextInput\";\r\nimport Loading from \"../../Loading\";\r\nimport InputLimits from \"../../../constants/InputLimits\";\r\nimport UploadFile from \"../../UploadFile\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport MultiButton, {createButton} from \"../../popup/components/MultiButton\";\r\nimport AddContactor from \"../../popup/addContactor/AddContactor\";\r\nimport getObjectValue from \"../../../libs/getObjectValue\";\r\nimport InviteContactor from \"../../popup/inviteContactor/InviteContactor\";\r\nimport Chip from \"../../Chip\";\r\nimport ContractorService from \"../../../services/ContractorService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n inlineBlock: {\r\n display: 'inline-block',\r\n marginRight: theme.spacing(2)\r\n },\r\n loading: {\r\n width: '98%'\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n },\r\n uploadFile: {\r\n marginBottom: 20\r\n },\r\n nameError: {\r\n fontSize: '0.75rem'\r\n }\r\n}));\r\n\r\nconst limits = InputLimits.procedure.correspondence;\r\n\r\nfunction AddThreadAsSupplierForm(\r\n {\r\n demandId,\r\n working,\r\n error,\r\n formikProps,\r\n\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const [addPopup, setAddPopup] = useState(false);\r\n const [invitePopup, setInvitePopup] = useState(false);\r\n\r\n const getFormButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('add_contractor'), () => setAddPopup(true), undefined, working));\r\n buttons.push(createButton(Tr('suggest_contractor'), () => setInvitePopup(true), undefined, working));\r\n return buttons;\r\n }\r\n\r\n const getInviteDefaultValues = () => ({\r\n name: getObjectValue('name', formikProps.values, ''),\r\n email: getObjectValue('email', formikProps.values, ''),\r\n vatin: {\r\n number: getObjectValue('vatin.number', formikProps.values, ''),\r\n prefix: getObjectValue('vatin.prefix', formikProps.values, 'PL'),\r\n }\r\n }\r\n )\r\n\r\n\r\n const handleClearContractor = () => {\r\n\r\n const values = {\r\n ...formikProps.values,\r\n contractorDepartmentId: 0,\r\n suggestContractor: false,\r\n contractorName: null,\r\n name: '',\r\n email: '',\r\n vatin: {\r\n number: '',\r\n prefix: \"PL\"\r\n }\r\n };\r\n formikProps.setValues(values);\r\n }\r\n\r\n const handleChipClick = () => {\r\n if (getObjectValue('suggestContractor', formikProps.values, false)) {\r\n setInvitePopup(true);\r\n } else {\r\n setAddPopup(true);\r\n }\r\n\r\n }\r\n const handleAddContractors = (data) => {\r\n\r\n if (data && data.platformAdded.length > 0) {\r\n ContractorService.getContractorDetails(demandId, data.platformAdded[0]).then((resp) => {\r\n handleClearContractor();\r\n formikProps.setFieldValue(\"contractorDepartmentId\", data.platformAdded[0]);\r\n formikProps.setFieldValue(\"contractorName\", resp.name);\r\n }).finally(() => setAddPopup(false));\r\n } else {\r\n setAddPopup(false);\r\n }\r\n }\r\n\r\n const handleInvite = (data) => {\r\n const values = {\r\n ...formikProps.values,\r\n suggestContractor: true,\r\n contractorDepartmentId: 0,\r\n contractorName:data.name,\r\n ...data\r\n };\r\n formikProps.setValues(values);\r\n setInvitePopup(false);\r\n }\r\n\r\n const contractorName = getObjectValue('contractorName', formikProps.values, false);\r\n const contractorNameError = getObjectValue('contractorName', formikProps.errors, '');\r\n\r\n return (\r\n {working && }\r\n\r\n \r\n\r\n \r\n {Tr('contractor')}*:\r\n {!!contractorName && }\r\n {!!contractorNameError && {contractorNameError}}\r\n
\r\n\r\n {error && {error}}\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n {addPopup && setAddPopup(false)}\r\n addContractorsTab={handleAddContractors}\r\n />}\r\n\r\n {invitePopup && setInvitePopup(false)}\r\n handleInvite={handleInvite}\r\n defaultValues={getInviteDefaultValues()}\r\n />}\r\n\r\n )\r\n}\r\n\r\nexport default AddThreadAsSupplierForm;","import React, {useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport VS from \"constants/ValidationShema\";\r\nimport InputLimits from \"constants/InputLimits\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport {withRouter} from \"react-router\";\r\nimport AddThreadAsSupplierForm from \"./AddThreadAsSupplierForm\";\r\nimport CorrespondenceService from \"services/CorrespondenceService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\n\r\n\r\nconst limits = InputLimits.procedure.correspondence;\r\n\r\nfunction AddThreadAsSupplierPopup(\r\n {\r\n match,\r\n rfxRoundId,\r\n listResourceId,\r\n onClose = () => {\r\n },\r\n formSubmit,\r\n }) {\r\n\r\n let demandId = match.params.id;\r\n\r\n const [error, setError] = useState('');\r\n const [working, setWorking] = useState(false);\r\n const formId = useId();\r\n\r\n const handleSubmit = () => {\r\n setError('');\r\n formSubmit[formId]();\r\n }\r\n\r\n const handleSaveResponse = (response) => {\r\n if (isResponseValid(response, setError)) {\r\n setWorking(false);\r\n onClose(response);\r\n } else {\r\n setWorking(false);\r\n }\r\n }\r\n\r\n const onSubmit = (thread) => {\r\n setWorking(true);\r\n\r\n let sender;\r\n if (thread.suggestContractor) {\r\n sender = {\r\n name: thread.name,\r\n email: thread.email,\r\n vatin: {...thread.vatin},\r\n }\r\n } else {\r\n sender = {\r\n contractorDepartmentId: thread.contractorDepartmentId\r\n }\r\n }\r\n\r\n const req = {\r\n subject: thread.subject,\r\n message: {\r\n attachments: thread.attachments,\r\n contents: thread.contents,\r\n sender\r\n }\r\n }\r\n\r\n CorrespondenceService.saveBuyerThreadAsContractor(rfxRoundId, req, listResourceId).then(handleSaveResponse).catch(() => setWorking(false));\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('save'), handleSubmit, undefined, working));\r\n return buttons;\r\n }\r\n\r\n\r\n return (\r\n }\r\n >\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(withRouter(AddThreadAsSupplierPopup));","import React, {useEffect, useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport CorrespondenceService from \"../../../services/CorrespondenceService\";\r\nimport Loading from \"../../Loading\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"../../../constants/DateFormats\";\r\nimport SimpleTable from \"../simpleTable/SimpleTable\";\r\nimport TooltipIcon from \"../../icon/TooltipIcon\";\r\nimport {Mail, MailOutline} from \"@material-ui/icons\";\r\n\r\n\r\nexport const createConfirmObject = (message, confirmFn, cancelFn) => {\r\n return {\r\n message,\r\n confirm: confirmFn,\r\n cancel: cancelFn\r\n }\r\n}\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n bold: {\r\n fontWeight: theme.typography.fontWeightBold\r\n },\r\n buttonRow: {\r\n marginTop: theme.spacing(2),\r\n textAlign: \"end\"\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n emailColumn: theme.components.table.emailColumn,\r\n ipColumn: theme.components.table.ipColumn,\r\n dateTimeColumn: {\r\n ...theme.components.table.dateTimeColumn,\r\n textAlign: 'center'\r\n }\r\n}));\r\n\r\nfunction MessageEmailDeliveryPopup(\r\n {\r\n recipient,\r\n messageId,\r\n rfxRoundId,\r\n onClose\r\n }) {\r\n\r\n\r\n const classes = useStyle();\r\n\r\n const [working, setWorking] = useState(true);\r\n const [deliveryList, setDeliveryList] = useState([]);\r\n\r\n useEffect(() => {\r\n\r\n let promise;\r\n if (!!recipient.invitedSupplier) {\r\n promise = CorrespondenceService.getBuyerMessageDelivery(rfxRoundId, messageId, 'invitedSupplier', recipient.invitedSupplier);\r\n } else if (!!recipient.contractorDepartmentId) {\r\n promise = CorrespondenceService.getBuyerMessageDelivery(rfxRoundId, messageId, 'contractorDepartment', recipient.contractorDepartmentId);\r\n } else {\r\n promise = CorrespondenceService.getBuyerMessageDelivery(rfxRoundId, messageId, 'external', messageId);\r\n }\r\n promise.then(x => setDeliveryList(x)).finally(() => setWorking(false));\r\n\r\n }, [recipient, messageId, rfxRoundId]);\r\n\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(\"OK\", onClose, undefined, false));\r\n return buttons;\r\n }\r\n\r\n const getStatusCellContent = (item) => {\r\n return \r\n {Tr(`message_delivery_status_${item.status}`)}\r\n {!!item.errorMessage && <>\r\n
{Tr('details')}: \r\n ${item.errorMessage}\r\n >}\r\n\r\n \r\n }\r\n\r\n return (\r\n }\r\n >\r\n {working && }\r\n {!working &&\r\n [\r\n ,\r\n item.recipient,\r\n getStatusCellContent(item),\r\n item.deliveryDate ? moment(item.deliveryDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT) : '--'\r\n ])}\r\n />\r\n\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nexport default MessageEmailDeliveryPopup;","import React, {useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from \"../../GridBlock\";\r\nimport {Badge, makeStyles, Tooltip, Typography} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from 'clsx';\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport FilesList from \"components/FilesList\";\r\nimport {Mail, MailOutline, Visibility, VisibilityOff} from '@material-ui/icons';\r\nimport MessageEmailDeliveryPopup from \"./MessageEmailDeliveryPopup\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\nimport Chip from \"@material-ui/core/Chip\";\r\nimport TooltipIcon from \"../../icon/TooltipIcon\";\r\nimport CorrespondenceService from \"../../../services/CorrespondenceService\";\r\nimport GetAppIcon from \"@material-ui/icons/GetApp\";\r\nimport WorkableIconButton from \"../../button/WorkableIconButton\";\r\nimport useSalesNotification from \"../../../hooks/useSalesNotification\";\r\nimport SignatureIcon from \"../../icon/SignatureIcon\";\r\nimport salesNotificationKeys from \"components/popup/salesNotification/constants/salesNotification.keys\";\r\nimport contractorNameBuilder from \"libs/contractorNameBuilder\";\r\nimport Alert from \"components/popup/alert/Alert\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '80%',\r\n margin: 5,\r\n },\r\n rootMine: {\r\n marginLeft: '20%'\r\n },\r\n recipientsRoot: {\r\n display: 'flex',\r\n justifyContent: 'left',\r\n flexWrap: 'wrap',\r\n '& > *': {\r\n margin: theme.spacing(0.5),\r\n paddingRight: theme.spacing(1),\r\n },\r\n },\r\n contentWrapper: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper,\r\n position: 'relative'\r\n },\r\n contentWrapperUnread: {\r\n borderWidth: 3\r\n },\r\n contentWrapperMine: {\r\n backgroundColor: theme.palette.background.default\r\n },\r\n content: {\r\n padding: `${theme.spacing(1)}px ${theme.spacing(2)}px`\r\n },\r\n sendDate: {\r\n margin: `0 ${theme.spacing(1)}px`,\r\n minWidth: 110\r\n },\r\n message: {\r\n whiteSpace: 'pre-line',\r\n margin: `${theme.spacing(2)}px 0`\r\n },\r\n newBadge: {\r\n position: 'absolute',\r\n right: 0,\r\n top: 3\r\n },\r\n}));\r\n\r\n\r\nfunction Message(\r\n {\r\n rfxRoundId,\r\n listResourceId,\r\n contractor,\r\n message,\r\n hasEdit\r\n }) {\r\n\r\n const classes = useStyles();\r\n const [emailDeliveryRecipient, setEmailDeliveryRecipient] = useState(null);\r\n const [downloadZipWorking, setDownloadZipWorking] = useState(false);\r\n const [verificationWorking, setVerificationWorking] = useState(false);\r\n const mine = !!(contractor ? (message.contractorUser || message.publicQuestion || message.buyerAsContractorUser) : message.buyerUser);\r\n const unread = !mine && !message.read && !message.buyerAsContractorUser;\r\n const [showVerifyLimitUsedAlert, setShowVerifyLimitUsedAlert] = useState(false);\r\n\r\n\r\n const showEmailDelivery = (recipient) => {\r\n setEmailDeliveryRecipient(recipient);\r\n }\r\n\r\n\r\n const getSender = () => (message.contractorUser ? : )\r\n const getRecipient = (recipient) => (\r\n\r\n {}} deleteIcon={\r\n <>\r\n\r\n {!contractor && <> {recipient.firstEmailDeliveryDate ?\r\n showEmailDelivery(recipient)} Icon={Mail} tooltip={`${Tr('message_delivered')}: ${moment(recipient.firstEmailDeliveryDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}`}/> :\r\n showEmailDelivery(recipient)} Icon={MailOutline} tooltip={Tr('message_not_delivered')} label={recipient.name}/>}\r\n >\r\n }\r\n\r\n {!message.buyerAsContractorUser &&\r\n <>\r\n {!!recipient.firstReadDate ?\r\n \r\n :\r\n }\r\n >\r\n }\r\n >\r\n }/>\r\n )\r\n\r\n const getStatusCaption = () => {\r\n if (message.buyerAsContractorUser) {\r\n return \"send_buyer_as_contractor_date\";\r\n } else if (message.published) {\r\n return \"send_and_publish_date\";\r\n } else {\r\n return \"send_date\";\r\n }\r\n }\r\n const onPrintVerification = () => {\r\n setVerificationWorking(true);\r\n CorrespondenceService.checkVerificationLimit(rfxRoundId, message.messageId).then(resp => {\r\n if (resp.result)\r\n CorrespondenceService.printBuyerMessageAttachmentsVerification(rfxRoundId, message.messageId, () => setVerificationWorking(false));\r\n else {\r\n setVerificationWorking(false);\r\n setShowVerifyLimitUsedAlert(true);\r\n }\r\n });\r\n }\r\n const printVerificationSalesCheck = useSalesNotification(salesNotificationKeys.SIGNATURE_VERIFICATOR, onPrintVerification);\r\n\r\n const onDownloadZip = () => {\r\n const method = contractor ? CorrespondenceService.downloadContractorMessageAttachmentsZip : CorrespondenceService.downloadBuyerMessageAttachmentsZip;\r\n setDownloadZipWorking(true);\r\n method(rfxRoundId, message.messageId, () => setDownloadZipWorking(false));\r\n }\r\n\r\n const downloadAttachment = (attachment) => {\r\n const method = contractor ? CorrespondenceService.downloadContractorMessageAttachment : CorrespondenceService.downloadBuyerMessageAttachment;\r\n method(rfxRoundId, attachment.identity)\r\n }\r\n\r\n const getCustomAttachmentActions = (attachments) => (\r\n <>\r\n {!mine && attachments.some(a => !a.inaccessible) &&\r\n \r\n }\r\n {(!contractor && !mine && hasEdit) &&\r\n \r\n }\r\n >\r\n )\r\n\r\n return (\r\n \r\n\r\n
\r\n
\r\n {unread &&
\r\n \r\n }\r\n
\r\n {`${Tr(getStatusCaption())}: `}\r\n \r\n {message.sendDate ? moment(message.sendDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT) : ''}\r\n \r\n \r\n\r\n
\r\n {mine ? Tr('recipients') : Tr('sender')}: \r\n {mine ? message.recipients.map(x => getRecipient(x)) : getSender()}\r\n
\r\n\r\n
{message.contents}\r\n\r\n {!!message?.attachments?.length && <>\r\n
{Tr('attachment')}\r\n
\r\n >}\r\n \r\n
\r\n {!!emailDeliveryRecipient &&
setEmailDeliveryRecipient(null)}/>}\r\n {showVerifyLimitUsedAlert && setShowVerifyLimitUsedAlert(false)}\r\n maxWidth='sm'\r\n />}\r\n \r\n )\r\n}\r\n\r\nMessage.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Message;","import React, {useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport OrganizationsSelect from \"components/OrganizationsSelect\";\r\nimport Tr from \"translations/Translations\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport CorrespondenceService from \"services/CorrespondenceService\";\r\nimport {connect} from \"react-redux\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport contractorNameBuilder from \"libs/contractorNameBuilder\";\r\nimport Dialog from \"components/Dialog\";\r\nimport Loading from \"components/Loading\";\r\nimport CorrespondenceEmailList from \"./CorrespondenceEmailList\";\r\nimport SingleButton from \"components/popup/components/SingleButton\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport downloadFile from \"../../../libs/downloadFile\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n buttons: {\r\n marginTop: theme.spacing(2)\r\n },\r\n linkToSection: {\r\n cursor: 'pointer'\r\n }\r\n}));\r\n\r\nfunction NewMessageForm(\r\n {\r\n rfxRoundId,\r\n contractor,\r\n formikProps,\r\n message,\r\n error,\r\n working,\r\n autoSave,\r\n updateMessage,\r\n deleteMessage,\r\n currentActive,\r\n threadsAfterEndDate\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [contractorListForSelect] = useState(contractor ? [] : message.availableRecipients.map(x => ({label: contractorNameBuilder(x), value: x.id})));\r\n const [contractorEmailList, setContractorEmailList] = useState(null);\r\n const {enqueueErrorSnackbar} = useSnackbar();\r\n\r\n const doAutoSave = () => {\r\n autoSave();\r\n }\r\n\r\n const handleSubmit = (type) => {\r\n updateMessage(type, formikProps);\r\n }\r\n\r\n const handleDelete = () => {\r\n deleteMessage(message.messageId);\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('delete'), handleDelete, 'outlined', working));\r\n if (!contractor) {\r\n buttons.push(createButton(Tr('send_and_publish'), () => handleSubmit('publish'), 'outlined', !currentActive || working));\r\n }\r\n buttons.push(createButton(Tr('save'), () => handleSubmit('save'), 'outlined', !currentActive || working));\r\n buttons.push(createButton(Tr('send'), () => handleSubmit('send'), undefined, !currentActive || working));\r\n return buttons;\r\n }\r\n\r\n const chipClick = (e) => {\r\n const rec = message.availableRecipients.find(x => contractorNameBuilder(x) === e.target.innerText);\r\n if (rec.id.startsWith(\"EXT_\")) {\r\n setContractorEmailList({recipient: rec, emails: [rec.email]})\r\n } else {\r\n setContractorEmailList({})\r\n CorrespondenceService.getBuyerContractorEmailList(rfxRoundId, rec.contractorDepartmentId).then(setContractorEmailList).catch(() => {\r\n setContractorEmailList(null)\r\n enqueueErrorSnackbar(Tr(\"unknown_error_message\"));\r\n })\r\n }\r\n\r\n }\r\n\r\n const downloadAttachment = (attachment) => {\r\n const method = contractor ? CorrespondenceService.downloadContractorMessageAttachment : CorrespondenceService.downloadBuyerMessageAttachment;\r\n !!attachment.identity ? method(rfxRoundId, attachment.identity) : downloadFile(attachment.file)\r\n }\r\n\r\n return (\r\n <>\r\n {error && {error}}\r\n\r\n {!contractor &&\r\n \r\n }\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n {\r\n !currentActive && scrollTo(`#section_${CorrespondenceService.CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID}`)}>\r\n {Tr('correspondence_disabled_section', {name: threadsAfterEndDate.name})}\r\n }\r\n \r\n\r\n {\r\n !!contractorEmailList &&\r\n \r\n }\r\n >\r\n )\r\n}\r\n\r\nNewMessageForm.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n threadsAfterEndDate: state.resources[CorrespondenceService.CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID],\r\n }\r\n};\r\n\r\nexport default connect(mapStateToProps, {})(NewMessageForm);","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport VS from \"constants/ValidationShema\";\r\n\r\n\r\nexport const createConfirmObject = (message, confirmFn, cancelFn) => {\r\n return {\r\n message,\r\n confirm: confirmFn,\r\n cancel: cancelFn\r\n }\r\n}\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n message: {\r\n whiteSpace: 'pre-line',\r\n margin: `${theme.spacing(2)}px 0`\r\n },\r\n actionWrap: {\r\n display: 'block',\r\n width: '100%',\r\n textAlign: 'center',\r\n borderTop: '2px solid',\r\n marginTop: theme.spacing(3),\r\n paddingTop: theme.spacing(1)\r\n }\r\n }\r\n));\r\n\r\nfunction PublishMessageConfirmationPopup(\r\n {\r\n publishMessageInfo\r\n }) {\r\n\r\n\r\n const classes = useStyle();\r\n\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), () => {\r\n publishMessageInfo.cancel();\r\n }, 'outlined', false));\r\n buttons.push(createButton(Tr('publish'), () => {\r\n publishMessageInfo.confirm();\r\n }, undefined, false));\r\n return buttons;\r\n }\r\n\r\n const getDialogActions = () => (\r\n {Tr('publish_message_popup_text1')}\r\n {Tr('publish_message_popup_text2')}\r\n \r\n
)\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default PublishMessageConfirmationPopup;","import React, {useRef, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport clsx from 'clsx';\r\nimport * as Yup from \"yup\";\r\nimport _ from \"lodash\";\r\nimport {connect} from \"react-redux\";\r\nimport moment from \"libs/moment\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Tr from \"translations/Translations\";\r\nimport NewMessageForm from \"./NewMessageForm\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport CorrespondenceService from \"services/CorrespondenceService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport PublishMessageConfirmationPopup, {createConfirmObject} from \"./PublishMessageConfirmationPopup\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '80%',\r\n margin: 5,\r\n marginLeft: '20%',\r\n },\r\n contentWrapper: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n content: {\r\n padding: `${theme.spacing(1)}px ${theme.spacing(2)}px`\r\n },\r\n sendDate: {\r\n margin: `0 ${theme.spacing(1)}px`,\r\n minWidth: 110\r\n },\r\n message: {\r\n whiteSpace: 'pre-line',\r\n margin: `${theme.spacing(2)}px 0`\r\n }\r\n}));\r\n\r\n\r\nfunction NewMessage(\r\n {\r\n rfxRoundId,\r\n listResourceId,\r\n contractor,\r\n message,\r\n threadId,\r\n formSubmit,\r\n currentActive\r\n }) {\r\n\r\n const classes = useStyles();\r\n const formId = useId();\r\n const [error, setError] = useState('');\r\n const [working, setWorking] = useState(false);\r\n const autoSaveSemaphore = useRef(false);\r\n const [publishMessageInfo, setPublishMessageInfo] = useState(null);\r\n const updateMessage = async (type, values) => {\r\n\r\n const messageOut = {\r\n attachments: values.attachments,\r\n contents: values.contents,\r\n recipients: contractor ? null : message.availableRecipients.filter(x => values.supplierRecipientIds.indexOf(x.id) > -1)\r\n };\r\n let holdSetWorking = false;\r\n try {\r\n let response;\r\n if (contractor) {\r\n response = await CorrespondenceService.updateContractorMessage(rfxRoundId, threadId, message.messageId, listResourceId, messageOut);\r\n } else {\r\n response = await CorrespondenceService.updateBuyerMessage(rfxRoundId, threadId, message.messageId, listResourceId, messageOut);\r\n }\r\n\r\n const isSaveRespValid = isResponseValid(response);\r\n if (isSaveRespValid && (\"send\" === type)) {\r\n let sendResp\r\n if (contractor) {\r\n sendResp = await CorrespondenceService.sendContractorMessage(rfxRoundId, threadId, message.messageId, listResourceId);\r\n } else {\r\n sendResp = await CorrespondenceService.sendBuyerMessage(rfxRoundId, threadId, message.messageId, listResourceId);\r\n }\r\n holdSetWorking |= isResponseValid(sendResp);\r\n } else if (isSaveRespValid && \"publish\" === type) {\r\n const publishResp = await CorrespondenceService.publishBuyerMessage(rfxRoundId, threadId, message.messageId, listResourceId);\r\n holdSetWorking |= isResponseValid(publishResp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n if (!holdSetWorking) {\r\n setWorking(false);\r\n }\r\n }\r\n\r\n const cancelPublish = (messageId) => {\r\n setPublishMessageInfo(null);\r\n setWorking(false);\r\n\r\n }\r\n const deleteMessage = async (messageId) => {\r\n setWorking(true);\r\n setError('');\r\n\r\n let delResp = null;\r\n if (contractor) {\r\n delResp = await CorrespondenceService.deleteContractorMessage(rfxRoundId, threadId, messageId, listResourceId);\r\n } else {\r\n delResp = await CorrespondenceService.deleteBuyerMessage(rfxRoundId, threadId, messageId, listResourceId);\r\n }\r\n if (delResp.success !== true) {\r\n isResponseValid(delResp, setError);\r\n }\r\n }\r\n\r\n const handleSubmit = (type, formikProps, values) => {\r\n autoSaveSemaphore.current = false;\r\n if (formikProps) {\r\n values = formikProps.values;\r\n }\r\n setWorking(true);\r\n setError('');\r\n\r\n if (\"send\" === type || \"publish\" === type) {\r\n\r\n Yup.object().shape({\r\n contents: VS.string(),\r\n supplierRecipientIds: contractor ? VS.any() : VS.arrayRequired()\r\n }).validate(values, {abortEarly: false}).then(x => {\r\n if (\"send\" === type) {\r\n updateMessage(type, x);\r\n } else if (\"publish\" === type) {\r\n setPublishMessageInfo(createConfirmObject(values, () => updateMessage(type, x), cancelPublish));\r\n }\r\n }).catch(x => {\r\n const ob = {};\r\n x.inner.reverse().forEach(x => ob[x.path] = x.message);\r\n formikProps.setErrors(ob);\r\n setWorking(false);\r\n })\r\n } else {\r\n updateMessage(type, values);\r\n }\r\n\r\n }\r\n\r\n\r\n const onSubmit = (values) => {\r\n handleSubmit('autoSave', null, values);\r\n };\r\n\r\n const autoSaveDebounced = _.debounce(() => {\r\n if (autoSaveSemaphore.current) {\r\n formSubmit[formId]();\r\n }\r\n }, 8000);\r\n\r\n const autoSave = () => {\r\n autoSaveSemaphore.current = true;\r\n autoSaveDebounced();\r\n }\r\n\r\n\r\n return (\r\n \r\n\r\n
\r\n
\r\n \r\n {`${Tr('last_save_date')}: `}\r\n \r\n {message.modifiedDate ? moment(message.modifiedDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT) : ''}\r\n \r\n \r\n \r\n
\r\n
\r\n {(!contractor && !!publishMessageInfo) &&
}\r\n \r\n )\r\n}\r\n\r\nNewMessage.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(NewMessage);","import React, {useMemo, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Loading from \"components/Loading\";\r\nimport Message from \"./Message\";\r\nimport Tr from \"translations/Translations\";\r\nimport Button from \"components/Button\";\r\nimport PostAddIcon from '@material-ui/icons/PostAdd';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport CorrespondenceService from \"services/CorrespondenceService\";\r\nimport NewMessage from \"./NewMessage\";\r\nimport {connect} from \"react-redux\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n addButton: {\r\n float: 'right'\r\n }\r\n}));\r\n\r\nfunction MessagesList(\r\n {\r\n rfxRoundId,\r\n listResourceId,\r\n contractor,\r\n thread,\r\n currentActive,\r\n correspondencePrivileges\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [addInProgress, setAddInProgress] = useState(false);\r\n const hasEdit = useMemo(()=> !!correspondencePrivileges.EDIT, [correspondencePrivileges]);\r\n\r\n if (!thread.messages) {\r\n return \r\n }\r\n\r\n const addMessageClick = () => {\r\n setAddInProgress(true);\r\n if(contractor) {\r\n CorrespondenceService.createContractorMessage(rfxRoundId, thread.threadId, listResourceId).finally(() => setAddInProgress(false));\r\n } else {\r\n CorrespondenceService.createBuyerMessage(rfxRoundId, thread.threadId, listResourceId).finally(() => setAddInProgress(false));\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {thread.messages.map((msg) => (\r\n msg.status === 'saved' ?\r\n \r\n :\r\n )\r\n )}\r\n\r\n {hasEdit && currentActive &&\r\n \r\n }\r\n \r\n >\r\n )\r\n}\r\n\r\nMessagesList.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\nconst mapStateToProps = (state) => {\r\n return {\r\n correspondencePrivileges: state.privileges[PrivilegeService.CORRESPONDENCE_PRIVILEGE_STORE_KEY],\r\n }\r\n}\r\nconst mapDispatchToProps = {}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(MessagesList);","import React, {memo, useState} from 'react'\r\nimport Typography from '@material-ui/core/Typography'\r\nimport MailIcon from '@material-ui/icons/Mail';\r\nimport OutlinedFlagRoundedIcon from '@material-ui/icons/OutlinedFlagRounded';\r\nimport FlagRoundedIcon from '@material-ui/icons/FlagRounded';\r\nimport {Badge, Checkbox, makeStyles, Tooltip} from \"@material-ui/core\";\r\nimport ExpansionPanel from \"../../ExpansionPanel\";\r\nimport Tr from \"translations/Translations\";\r\nimport GridBlock from \"../../GridBlock\";\r\nimport clsx from 'clsx';\r\nimport CorrespondenceService from \"../../../services/CorrespondenceService\";\r\nimport MessagesList from \"./MessagesList\";\r\nimport scrollTo from \"../../../libs/scrollTo\";\r\nimport WorkableIconButton from \"../../button/WorkableIconButton\";\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2)\r\n\r\n },\r\n rootExpanded: {\r\n marginBottom: `${theme.spacing(2)}px !important`\r\n },\r\n title: {\r\n padding: 0,\r\n },\r\n summaryRoot: {\r\n '&>*:nth-child(3)': {\r\n flexGrow: 1,\r\n //paddingLeft: theme.spacing(2),\r\n width: 0,\r\n }\r\n },\r\n summaryItem: {\r\n padding: \"0 \" + theme.spacing(1) + \"px\"\r\n },\r\n subject: {\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis'\r\n },\r\n subjectExpanded: {\r\n wordBreak: 'break-all'\r\n },\r\n avatar: {\r\n width: 30,\r\n height: 30,\r\n marginRight: theme.spacing(2)\r\n },\r\n member: {\r\n width: '200px',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n textOverflow: 'ellipsis'\r\n },\r\n hasUnread: {\r\n fontWeight: theme.typography.fontWeightBold\r\n },\r\n redFlag: {\r\n color: theme.palette.error.main\r\n }\r\n}));\r\n\r\n\r\nfunction Thread(\r\n {\r\n thread,\r\n rfxRoundId,\r\n contractor,\r\n onThreadSelectChange = () => {\r\n },\r\n selectedThreads,\r\n listResourceId,\r\n currentActive\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const [expanded, setExpanded] = useState(!!thread.messages);\r\n const [redFlagWorking, setRedFlagWorking] = useState(false);\r\n const [loadingMessagesWorking, setLoadingMessagesWorking] = useState(false);\r\n const threadSelected = selectedThreads.indexOf(thread.threadId) > -1;\r\n\r\n const selectThreadChange = (e) => {\r\n onThreadSelectChange(thread, e.target.checked);\r\n }\r\n\r\n const toggleThread = (callback) => {\r\n if(loadingMessagesWorking) {\r\n return;\r\n }\r\n\r\n setExpanded(!expanded);\r\n if(expanded) {\r\n CorrespondenceService.clearThreadMessages(thread.threadId, listResourceId);\r\n } else {\r\n setLoadingMessagesWorking(true);\r\n if(contractor) {\r\n CorrespondenceService.getContractorThreadMessageList(rfxRoundId, thread.threadId, listResourceId).then(()=> { if(typeof callback === 'function')setTimeout(callback, 500)}).catch(()=> setExpanded(false)).finally(()=> setLoadingMessagesWorking(false));\r\n } else {\r\n CorrespondenceService.getBuyerThreadMessageList(rfxRoundId, thread.threadId, listResourceId).then(()=> { if(typeof callback === 'function')setTimeout(callback, 500)}).catch(()=> setExpanded(false)).finally(()=> setLoadingMessagesWorking(false));\r\n }\r\n\r\n }\r\n }\r\n\r\n const scrollToMessage = () => {\r\n if(loadingMessagesWorking) {\r\n return;\r\n }\r\n if(expanded) {\r\n doScrollToMessage();\r\n } else {\r\n toggleThread(doScrollToMessage)\r\n }\r\n\r\n }\r\n const doScrollToMessage = () => {\r\n scrollTo(`#messate-thread-${thread.threadId} .new-message-scroll-to`);\r\n }\r\n\r\n const flagClick = () => {\r\n setRedFlagWorking(true);\r\n let fn;\r\n if (thread.hasRedFlag) {\r\n fn = contractor ? CorrespondenceService.sendContractorUnflagThread : CorrespondenceService.sendBuyerUnflagThread;\r\n } else {\r\n fn = contractor ? CorrespondenceService.sendContractorFlagThread : CorrespondenceService.sendBuyerFlagThread;\r\n }\r\n fn(rfxRoundId, thread.threadId, listResourceId).finally(() => setRedFlagWorking(false));\r\n }\r\n\r\n\r\n const createTitle = ({threadId, hasRedFlag, subject, recipients, unreadMessagesCount = 0}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {!contractor ?\r\n \r\n {recipients.map(x => x.name).join(\", \")}\r\n : }\r\n \r\n {subject}\r\n \r\n {!!unreadMessagesCount && \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 {\r\n if (event === null) setExpanded(expanded)\r\n }}\r\n classesObj={{root: classes.root, expanded: classes.rootExpanded, title: classes.title}}\r\n square={true}\r\n id={`messate-thread-${thread.threadId}`}>\r\n \r\n \r\n )\r\n}\r\n\r\nexport default memo(Thread, (prevProps, nextProps) => {\r\n //const t0 = performance.now()\r\n const resp = ((prevProps, nextProps) => {\r\n if (prevProps.rfxRoundId !== nextProps.rfxRoundId) return false;\r\n if (prevProps.currentActive !== nextProps.currentActive) return false;\r\n\r\n if(prevProps.selectedThreads !== nextProps.selectedThreads) {\r\n if ((prevProps.selectedThreads.indexOf(prevProps.thread.threadId) > -1) !== (nextProps.selectedThreads.indexOf(nextProps.thread.threadId) > -1)) return false;\r\n }\r\n\r\n if(prevProps.thread !== nextProps.thread) {\r\n return false;\r\n }\r\n\r\n return true;\r\n })(prevProps, nextProps);\r\n // const t1 = performance.now()\r\n // console. log(\"Thread rerender\", !resp);\r\n return resp;\r\n})","import React, {useRef, useState} from 'react'\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport clsx from \"clsx\";\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"../../TextInput\";\r\nimport Loading from \"../../Loading\";\r\nimport UploadFile from \"../../UploadFile\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport MultiButton, {createButton} from \"../../popup/components/MultiButton\";\r\nimport Chip from \"../../Chip\";\r\nimport getObjectValue from \"../../../libs/getObjectValue\";\r\nimport CorrespondenceService from \"../../../services/CorrespondenceService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport PublishMessageConfirmationPopup, {createConfirmObject} from \"./PublishMessageConfirmationPopup\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport TypographyWithIcon from \"../../TypographyWithIcon\";\r\nimport InfoIcon from \"@material-ui/icons/Info\";\r\nimport Button from \"components/Button\";\r\nimport CorrespondenceEmailList from \"./CorrespondenceEmailList\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n loading: {\r\n width: '98%'\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n },\r\n uploadFile: {\r\n marginBottom: 20\r\n },\r\n chip: {\r\n width: '100%',\r\n marginTop: theme.spacing(1),\r\n \"&>.MuiChip-label\": {\r\n width: '100%',\r\n display: \"flex\"\r\n }\r\n },\r\n chipLabel: {\r\n display: \"flex\",\r\n width: '100%'\r\n },\r\n chipSupplier: {\r\n display: \"block\",\r\n width: \"200px\",\r\n paddingRight: theme.spacing(4),\r\n paddingLeft: theme.spacing(2),\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis'\r\n },\r\n chipSubject: {\r\n fontWeight: \"bold\",\r\n flexGrow: 1,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis'\r\n },\r\n hidden: {\r\n opacity: 0,\r\n transition: 'opacity 0.1s'\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing(2)\r\n },\r\n marginTop: {\r\n marginTop: theme.spacing(4)\r\n },\r\n dialogContent: {\r\n position: \"relative\"\r\n },\r\n ctrEmailList: {\r\n background: theme.palette.background.paper,\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n ctrEmailListTitle: {\r\n position: \"fixed\",\r\n background: theme.palette.background.paper,\r\n maxWidth: 900,\r\n marginTop: theme.spacing(-1)\r\n }\r\n}));\r\n\r\nfunction AddBulkMessagePopup(\r\n {\r\n rfxRoundId,\r\n listResourceId,\r\n threadsList,\r\n selectedThreads,\r\n onClose = () => {\r\n },\r\n formSubmit,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const [error, setError] = useState('');\r\n const [working, setWorking] = useState(false);\r\n const [publishMessageInfo, setPublishMessageInfo] = useState(null);\r\n const [contractorEmailList, setContractorEmailList] = useState(null);\r\n const {enqueueErrorSnackbar} = useSnackbar();\r\n const [open, setOpen] = useState(true);\r\n const sendType = useRef('');\r\n const formId = useId();\r\n\r\n const handleSubmit = (type) => {\r\n setError('');\r\n sendType.current = type;\r\n formSubmit[formId]();\r\n }\r\n\r\n const cancelPublish = () => {\r\n setOpen(true);\r\n setPublishMessageInfo(null);\r\n setWorking(false);\r\n }\r\n const processMessage = (type, message) => {\r\n\r\n if (type === 'send') {\r\n CorrespondenceService.sendBuyerBulkMessages(rfxRoundId, message, listResourceId)\r\n .then(handleSaveResponse).catch(() => setWorking(false));\r\n } else if (type === 'publish') {\r\n setPublishMessageInfo(null);\r\n setOpen(true);\r\n CorrespondenceService.publishBuyerBulkMessages(rfxRoundId, message, listResourceId)\r\n .then(handleSaveResponse).catch(() => setWorking(false));\r\n }\r\n }\r\n\r\n const onSubmit = (message) => {\r\n setWorking(true);\r\n const reqMessage = {\r\n threadIds: [...message.selectedThreadsIds],\r\n message: {\r\n attachments: message.attachments,\r\n contents: message.contents\r\n }\r\n }\r\n\r\n if (sendType.current === 'send') {\r\n processMessage('send', reqMessage);\r\n } else if ('publish') {\r\n setPublishMessageInfo(createConfirmObject(message, () => processMessage('publish', reqMessage), cancelPublish));\r\n setOpen(false);\r\n }\r\n sendType.current = '';\r\n\r\n }\r\n\r\n const handleSaveResponse = (response) => {\r\n if (isResponseValid(response, setError)) {\r\n setWorking(false);\r\n onClose(response);\r\n } else {\r\n setWorking(false);\r\n }\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working || !!contractorEmailList));\r\n buttons.push(createButton(Tr('send_and_publish'), () => handleSubmit('publish'), 'outlined', working || !!contractorEmailList));\r\n buttons.push(createButton(Tr('send'), () => handleSubmit('send'), undefined, working || !!contractorEmailList));\r\n return buttons;\r\n }\r\n\r\n const doDelete = (formikProps, threadId) => {\r\n const selectedThreadsIds = getObjectValue('selectedThreadsIds', formikProps.values, []);\r\n formikProps.setFieldValue('selectedThreadsIds', selectedThreadsIds.filter(x => x !== threadId))\r\n }\r\n\r\n const chipClick = (threadId) => {\r\n setContractorEmailList([]);\r\n CorrespondenceService.getBuyerThreadEmailList(rfxRoundId, threadId).then(setContractorEmailList).catch(() => {\r\n setContractorEmailList(null)\r\n enqueueErrorSnackbar(Tr(\"unknown_error_message\"));\r\n })\r\n\r\n }\r\n\r\n const getChips = (formikProps) => {\r\n\r\n const selectedThreadsIds = getObjectValue('selectedThreadsIds', formikProps.values, []);\r\n\r\n return threadsList.filter(x => selectedThreadsIds.indexOf(x.threadId) > -1).map(x => ({x.recipients.map(r => r.name).join(\", \")}{x.subject}>}\r\n onDelete={selectedThreadsIds.length > 1 ? () => {\r\n doDelete(formikProps, x.threadId)\r\n } : undefined}\r\n key={x.threadId}\r\n onClick={() => chipClick(x.threadId)}\r\n />))\r\n }\r\n\r\n return (<>\r\n \r\n {!!publishMessageInfo && }\r\n >\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddBulkMessagePopup);","import React, {useMemo, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport ExpansionPanel from \"components/ExpansionPanel\";\r\nimport AddThreadPopup from \"./AddThreadPopup\";\r\nimport Tr from \"translations/Translations\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport AddThreadAsSupplierPopup from \"./AddThreadAsSupplierPopup\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport Thread from \"./Thread\";\r\nimport AddBulkMessagePopup from \"./AddBulkMessagePopup\";\r\nimport FlagRoundedIcon from \"@material-ui/icons/FlagRounded\";\r\nimport OutlinedFlagRoundedIcon from \"@material-ui/icons/OutlinedFlagRounded\";\r\nimport TooltipIcon from \"components/icon/TooltipIcon\";\r\nimport CorrespondenceService from \"services/CorrespondenceService\";\r\nimport {connect} from \"react-redux\";\r\nimport SplitButton, {createButton as createSplitButton} from \"components/popup/components/SplitButton\";\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport WorkableIconShareButton from \"components/button/WorkableIconShareButton\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport ShareSelectPopup, {sharePopupData} from \"components/popup/ShareSelectPopup\";\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n background: 'transparent'\r\n },\r\n summaryRoot: {\r\n '&>*:nth-child(2)': {\r\n flexGrow: 1,\r\n textAlign: 'center'\r\n }\r\n },\r\n details: {\r\n padding: 0\r\n },\r\n buttons: {\r\n padding: theme.spacing(4),\r\n marginBottom: theme.spacing(2),\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n buttonPrint: {\r\n width: 280,\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\"\r\n },\r\n redFlag: {\r\n color: theme.palette.error.main\r\n },\r\n shareButton: {\r\n marginBottom: -6,\r\n marginTop: -6,\r\n }\r\n}));\r\n\r\n\r\nfunction ThreadsPanel(\r\n {\r\n contractor,\r\n title,\r\n currentActive,\r\n rfxRound,\r\n listResourceId,\r\n threadsList,\r\n correspondencePrivileges,\r\n showShare\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const [addAsSupplierOpened, setAddAsSupplierOpened] = useState(false);\r\n const [addPopupOpened, setAddPopupOpened] = useState(false);\r\n const [bulkPopupOpened, setBulkPopupOpened] = useState(false);\r\n const [expanded, setExpanded] = useState(currentActive);\r\n const [selectedThreads, setSelectedThreads] = useState([]);\r\n const [printWorking, setPrintWorking] = useState(false);\r\n const [shareWorking, setShareWorking] = useState(false);\r\n const [shareFilePopup, setShareFilePopup] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const hasEdit = useMemo(() => !!correspondencePrivileges.EDIT, [correspondencePrivileges]);\r\n\r\n const onThreadSelectChange = (thread, added) => {\r\n if (added) {\r\n setSelectedThreads(x => [...x, thread.threadId]);\r\n } else {\r\n setSelectedThreads(x => x.filter(x => x !== thread.threadId));\r\n }\r\n }\r\n\r\n\r\n const printCorrespondence = (type) => {\r\n if (printWorking) {\r\n return;\r\n }\r\n setPrintWorking(true);\r\n let printPromise;\r\n if (contractor) {\r\n printPromise = CorrespondenceService.getContractorPrint(rfxRound.id, type, listResourceId === CorrespondenceService.CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID, selectedThreads);\r\n } else {\r\n printPromise = CorrespondenceService.getBuyerPrint(rfxRound.id, type, listResourceId === CorrespondenceService.CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID, selectedThreads);\r\n }\r\n printPromise.finally(() => setPrintWorking(false))\r\n\r\n }\r\n\r\n const buttons = useMemo(() => {\r\n const buttons = [];\r\n const hasSelected = selectedThreads.length > 0;\r\n buttons.push(createButton(Tr(\"message_create_new\"), () => setAddPopupOpened(true), undefined, !hasEdit || !currentActive));\r\n if (!contractor) {\r\n buttons.push(createButton(Tr(\"message_bulk_answer\"), () => setBulkPopupOpened(true), 'outlined', !hasEdit || !currentActive || !hasSelected));\r\n buttons.push(createButton(Tr(\"message_create_as_contractor\"), () => setAddAsSupplierOpened(true), 'outlined', !hasEdit || !currentActive));\r\n }\r\n\r\n return buttons;\r\n }, [hasEdit, currentActive, selectedThreads, contractor]);\r\n\r\n const hasRedFlag = useMemo(() => Boolean(threadsList.find(x => x.hasRedFlag)), [threadsList]);\r\n\r\n const getTitle = () => (\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 const getPrintButton = useMemo(() => {\r\n const buttons = [];\r\n const hasSelected = selectedThreads.length > 0;\r\n buttons.push(createSplitButton(Tr(hasSelected ? \"message_print_selected_pdf\" : \"message_print_pdf\"), () => printCorrespondence(\"pdf\"), !threadsList.length));\r\n buttons.push(createSplitButton(Tr(hasSelected ? \"message_print_selected_rtf\" : \"message_print_rtf\"), () => printCorrespondence(\"rtf\"), !threadsList.length));\r\n return ()\r\n // eslint-disable-next-line\r\n },[selectedThreads.length, threadsList.length, printWorking]);\r\n\r\n const onShareFile = (name, selectedThreads) => setShareFilePopup(sharePopupData(name, selectedThreads));\r\n\r\n const getShareButton = useMemo(()=> {\r\n if(showShare) {\r\n const hasSelected = selectedThreads.length > 0;\r\n\r\n return onShareFile(Tr(hasSelected ? \"message_share_selected_pdf\" : \"message_share_pdf\"), {selectedThreads, type: \"pdf\"})}\r\n working={shareWorking}\r\n disabled={shareWorking}\r\n />\r\n }\r\n return undefined;\r\n // eslint-disable-next-line\r\n }, [selectedThreads.length, threadsList.length, showShare, shareWorking])\r\n\r\n\r\n const doShare = ({selectedThreads, type}, system) => {\r\n setShareFilePopup(null);\r\n setShareWorking(true);\r\n CorrespondenceService.shareCorrespondencePrint(rfxRound.id, type, listResourceId === CorrespondenceService.CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID, selectedThreads, system).then((resp) => {\r\n if (resp)\r\n enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: system}, true))\r\n }).finally(() => {\r\n setShareWorking(false);\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n setExpanded(expanded)\r\n }} square classesObj={{root: classes.root, details: classes.details}}>\r\n \r\n \r\n {threadsList.map((el) => (\r\n \r\n ))}\r\n \r\n \r\n\r\n {(hasEdit && !contractor && addAsSupplierOpened) &&\r\n setAddAsSupplierOpened(false)} rfxRoundId={rfxRound.id} listResourceId={listResourceId}/>}\r\n {hasEdit && addPopupOpened &&\r\n setAddPopupOpened(false)} rfxRoundId={rfxRound.id} listResourceId={listResourceId} contractor={contractor} />}\r\n {(hasEdit && !contractor && bulkPopupOpened) &&\r\n setBulkPopupOpened(false)} listResourceId={listResourceId}\r\n selectedThreads={selectedThreads} threadsList={threadsList}/>}\r\n {!!shareFilePopup && setShareFilePopup(null)}\r\n onChoose={doShare}\r\n />}\r\n >\r\n )\r\n}\r\n\r\nThreadsPanel.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n correspondencePrivileges: state.privileges[PrivilegeService.CORRESPONDENCE_PRIVILEGE_STORE_KEY],\r\n }\r\n}\r\nconst mapDispatchToProps = {}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ThreadsPanel);","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from \"../../GridBlock\";\r\nimport Tr from \"../../../translations/Translations\";\r\nimport SimpleSelect from \"../../SimpleSelect\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport {Paper, TextField} from \"@material-ui/core\";\r\nimport querystring from \"querystring\";\r\nimport {setSearchObj} from \"../../../libs/RouterPath\";\r\nimport WorkableIconButton from \"../../button/WorkableIconButton\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport IconButton from \"../../button/IconButton\";\r\nimport CorrespondenceService from \"services/CorrespondenceService\";\r\nimport FlagRoundedIcon from \"@material-ui/icons/FlagRounded\";\r\nimport OutlinedFlagRoundedIcon from \"@material-ui/icons/OutlinedFlagRounded\";\r\nimport BoldTypography from \"../../BoldTypography\";\r\nimport {KeyboardDateTimePicker} from \"@material-ui/pickers\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport moment, {isMoment} from \"libs/moment\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n\r\n '&>*:not(:first-child):not(:last-child)': {\r\n marginLeft: theme.spacing(2),\r\n }\r\n },\r\n search: {\r\n width: 170,\r\n },\r\n date: {\r\n width: 190,\r\n },\r\n chipsGrid: {\r\n marginTop: theme.spacing(1)\r\n },\r\n paper: {\r\n padding: theme.spacing(3)\r\n },\r\n flag: {\r\n color: theme.palette.error.main\r\n }\r\n}));\r\n\r\nconst EMPTY_SEARCH_OBJECT = {subject: '', content: '', supplier: '', flag: '', dateFrom: null, dateTo: null}\r\nconst MAX_SEARCH_LENGTH = 100;\r\n\r\nfunction CorrespondenceSearch(\r\n {\r\n searchInProgress,\r\n doSearch,\r\n contractor,\r\n rfxRoundId\r\n }) {\r\n\r\n\r\n const getInitValue = () => {\r\n const search = window.location.search.slice(1);\r\n const parsed = querystring.parse(search);\r\n const parsedFiltered = Object.keys(parsed)\r\n .filter((k) => EMPTY_SEARCH_OBJECT.hasOwnProperty(k))\r\n .reduce((a, k) => {\r\n const n = {...a};\r\n if(k === 'dateFrom' || k === 'dateTo') {\r\n let dat = moment(parsed[k], DateFormats.DATETIME_FORMAT);\r\n if(dat.isValid())\r\n n[k] = dat;\r\n } else {\r\n n[k] = parsed[k].substring(0, MAX_SEARCH_LENGTH)\r\n }\r\n return n;\r\n }, {})\r\n\r\n return {...EMPTY_SEARCH_OBJECT, ...parsedFiltered};\r\n }\r\n\r\n const classes = useStyle();\r\n const [value, setValue] = useState(getInitValue());\r\n const [contractorListForSelect, setContractorListForSelect] = useState([{label: Tr('any'), value: ''}]);\r\n const [submitState, setSubmitState] = useState(0);\r\n\r\n useEffect(() => {\r\n if (submitState && !searchInProgress) {\r\n const valueFiltered = Object.keys(value)\r\n .filter((k) => !!value[k])\r\n .reduce((a, k) => ({...a, [k]: isMoment(value[k]) ? (value[k].isValid() ? value[k].format(DateFormats.DATETIME_FORMAT) : null) : value[k]}), {});\r\n\r\n const valueFilteredForSearch = Object.keys(value)\r\n .filter((k) => !!value[k])\r\n .reduce((a, k) => ({...a, [k]: isMoment(value[k]) ? (value[k].isValid() ? value[k].format() : null) : value[k]}), {});\r\n\r\n\r\n setSearchObj(valueFiltered);\r\n doSearch(valueFilteredForSearch);\r\n }\r\n // eslint-disable-next-line\r\n }, [submitState]);\r\n\r\n const prepareContractorList = (respList) => {\r\n setContractorListForSelect(x => [...x, ...respList.map(x => ({label: x.name, value: x.contractorDepartmentId.toString()}))]);\r\n }\r\n const handleChange = (id, e) => {\r\n setValue({...value, [id]: e.target.value});\r\n }\r\n\r\n const handleChangeDate = (id, date) => {\r\n const dateValue = date ? date: null;\r\n setValue({...value, [id]: dateValue})\r\n };\r\n\r\n const handleSubmit = () => {\r\n setSubmitState(x => x + 1)\r\n };\r\n\r\n\r\n const handleKeyUp = (e) => {\r\n if (e.key === 'Enter') {\r\n handleSubmit()\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (!contractor) {\r\n CorrespondenceService.getBuyerContractorInRoundList(rfxRoundId).then(prepareContractorList);\r\n }\r\n\r\n }, [rfxRoundId, contractor]);\r\n\r\n return (\r\n \r\n {Tr('search_box')}\r\n \r\n\r\n {\r\n const newFlag = value.flag === 'true' ? '' : 'true';\r\n handleChange('flag', {target: {value: newFlag}});\r\n handleSubmit();\r\n }}/>\r\n\r\n handleChange('subject', e)}\r\n onKeyUp={handleKeyUp}\r\n fullWidth\r\n value={value.subject}\r\n inputProps={{maxLength: MAX_SEARCH_LENGTH}}\r\n // InputProps={{\r\n // endAdornment: \r\n // \r\n // ,\r\n // }}\r\n />\r\n\r\n handleChange('content', e)}\r\n onKeyUp={handleKeyUp}\r\n fullWidth\r\n value={value.content}\r\n inputProps={{maxLength: MAX_SEARCH_LENGTH}}\r\n // InputProps={{\r\n // endAdornment: \r\n // \r\n // ,\r\n // }}\r\n />\r\n {!contractor &&\r\n {\r\n handleChange('supplier', e);\r\n handleSubmit();\r\n }}\r\n />\r\n }\r\n\r\n\r\n handleChangeDate('dateFrom', e)}\r\n />\r\n\r\n handleChangeDate('dateTo', e)}\r\n />\r\n\r\n \r\n \r\n {\r\n setValue(EMPTY_SEARCH_OBJECT);\r\n handleSubmit()\r\n }}/>\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nCorrespondenceSearch.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\n\r\nexport default CorrespondenceSearch;","import React, {useEffect, useMemo, useRef, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from \"react-redux\";\r\nimport CorrespondenceService from \"services/CorrespondenceService\";\r\nimport ThreadsPanel from \"./ThreadsPanel\";\r\nimport Loading from \"components/Loading\";\r\nimport moment from \"libs/moment\";\r\nimport CorrespondenceSearch from \"./CorrespondenceSearch\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport {shareSystemsActive} from \"libs/shareSystems\";\r\n\r\n\r\nfunction Correspondence(\r\n {\r\n rfxRound,\r\n threadsBeforeEndDate,\r\n threadsAfterEndDate,\r\n correspondenceSplitDate,\r\n correspondenceCheckTime,\r\n correspondencePrivileges,\r\n contractor,\r\n demandPrivileges = {},\r\n demandHeader,\r\n }) {\r\n\r\n const loadingNewInProgress = useRef(false);\r\n const searchSelected = useRef(false);\r\n const intervalId = useRef(0);\r\n const [searchInProgress, setSearchInProgress] = useState(false)\r\n const [before, setBefore] = useState(!correspondenceCheckTime || !correspondenceSplitDate || moment(correspondenceCheckTime).isBefore(moment(correspondenceSplitDate)))\r\n\r\n const showShare = useMemo(() => demandPrivileges.INTEGRATIONS_UPLOAD && shareSystemsActive(demandHeader).length > 0, [demandHeader, demandPrivileges])\r\n\r\n const doSearch = (searchOb) => {\r\n setSearchInProgress(true);\r\n if (Object.keys(searchOb).length) {\r\n searchSelected.current = true;\r\n } else {\r\n searchSelected.current = false;\r\n }\r\n let searchPromise;\r\n if (contractor) {\r\n searchPromise = CorrespondenceService.getContractorSearchResult(rfxRound.id, searchOb);\r\n } else {\r\n searchPromise = CorrespondenceService.getBuyerSearchResult(rfxRound.id, searchOb);\r\n }\r\n searchPromise.finally(() => setSearchInProgress(false))\r\n };\r\n\r\n const checkNewMessages = () => {\r\n if (!loadingNewInProgress.current && !searchSelected.current) {\r\n loadingNewInProgress.current = true;\r\n if (contractor) {\r\n CorrespondenceService.getContractorNewMessages(rfxRound.id).then(() => loadingNewInProgress.current = false);\r\n } else {\r\n CorrespondenceService.getBuyerNewMessages(rfxRound.id).then(() => loadingNewInProgress.current = false);\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (contractor) {\r\n CorrespondenceService.getContractorThreadList(rfxRound.id);\r\n CorrespondenceService.getContractorPrivileges(rfxRound.id);\r\n } else {\r\n CorrespondenceService.getBuyerThreadList(rfxRound.id);\r\n CorrespondenceService.getBuyerPrivileges(rfxRound.id);\r\n }\r\n return () => {\r\n CorrespondenceService.cleanupThreadList();\r\n CorrespondenceService.cleanupPrivileges();\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n useEffect(() => {\r\n intervalId.current = setInterval(checkNewMessages, 30000);\r\n return () => {\r\n if (intervalId.current) {\r\n clearInterval(intervalId.current);\r\n }\r\n }\r\n //eslint-disable-next-line\r\n },[]);\r\n\r\n const timeout = useRef();\r\n\r\n useEffect(() => {\r\n if (correspondenceSplitDate && correspondenceCheckTime) {\r\n const isBefore = moment(correspondenceCheckTime).isBefore(moment(correspondenceSplitDate));\r\n if (isBefore) {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n }\r\n const diff = moment(correspondenceSplitDate).diff(correspondenceCheckTime) + 500;\r\n timeout.current = setTimeout(checkNewMessages, diff)\r\n } else {\r\n\r\n }\r\n setBefore(isBefore);\r\n }\r\n\r\n return () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n }\r\n }\r\n //eslint-disable-next-line\r\n }, [correspondenceSplitDate, correspondenceCheckTime]);\r\n return (\r\n <>\r\n \r\n\r\n {\r\n (!threadsAfterEndDate || !threadsBeforeEndDate || !correspondenceCheckTime || !correspondencePrivileges) ?\r\n \r\n :\r\n <>\r\n {!!threadsBeforeEndDate &&\r\n \r\n }\r\n\r\n {!!threadsAfterEndDate &&\r\n }\r\n\r\n {/*{!!threadsNotSpliced &&*/}\r\n {/*}*/}\r\n >\r\n }\r\n >\r\n )\r\n}\r\n\r\nCorrespondence.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n threadsBeforeEndDate: state.resources[CorrespondenceService.CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID],\r\n threadsAfterEndDate: state.resources[CorrespondenceService.CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID],\r\n correspondenceSplitDate: state.resources[CorrespondenceService.CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID],\r\n correspondenceCheckTime: state.resources[CorrespondenceService.CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID],\r\n correspondencePrivileges: state.privileges[PrivilegeService.CORRESPONDENCE_PRIVILEGE_STORE_KEY],\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY],\r\n demandHeader: state.resources.demandHeader\r\n }\r\n}\r\nconst mapDispatchToProps = {}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Correspondence);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport Correspondence from \"components/complex/correspondence/Correspondence\";\r\n\r\nfunction CorrespondenceSection(\r\n {\r\n currentRfxRound\r\n }) {\r\n\r\n return (\r\n \r\n {(!currentRfxRound) ?\r\n \r\n :\r\n \r\n }\r\n
\r\n )\r\n}\r\n\r\nCorrespondenceSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n currentRfxRound: state.resources[StatisticsService.CURRENT_RFX_RESOURCE_ID]\r\n }\r\n}\r\nconst mapDispatchToProps = {};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CorrespondenceSection);","import React, {useEffect} from 'react'\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport Workspace from \"components/Workspace\";\r\nimport CorrespondenceSection from \"./sections/CorrespondenceSection\";\r\nimport DemandService from \"services/DemandService\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\n\r\nfunction CorrespondencePanel(\r\n {\r\n match\r\n }) {\r\n\r\n const demandId = match.params.id;\r\n\r\n useEffect(() => {\r\n StatisticsService.getCurrentRound(demandId)\r\n DemandService.getBuyerPrivileges(demandId);\r\n return () => {\r\n StatisticsService.clearCurrentRound();\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY);\r\n }\r\n // eslint-disable-next-line\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\nexport default CorrespondencePanel;","import {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestBLOB, RestRequestGET} from \"../libs/RestRequest\";\r\nimport Endpoints from \"../constants/Endpoints\";\r\nimport applySearchParams from \"../libs/applySearchParams\";\r\n\r\nconst EMAIL_LIST_RESOURCE_ID = 'emailList';\r\nconst EMAIL_LIST_ACTIONS_RESOURCE_ID = 'emailListActions';\r\n\r\n\r\n\r\nconst getEmailList = async (id, pagination, searchData = {}) => {\r\n try {\r\n let params = {\r\n ...pagination\r\n }\r\n\r\n params = applySearchParams(searchData, params);\r\n\r\n const res = await RestRequestGET(Endpoints.EMAIL_LIST(id), {params});\r\n\r\n reduxStore.dispatch(\r\n setResource(EMAIL_LIST_RESOURCE_ID, res)\r\n )\r\n } catch (error) {\r\n }\r\n}\r\n\r\n\r\nconst getEmailListActions = async (id) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.EMAIL_LIST_ACTIONS(id));\r\n reduxStore.dispatch(\r\n setResource(EMAIL_LIST_ACTIONS_RESOURCE_ID, res.actions)\r\n )\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getEmailDetails = async (demandId, emailId) => {\r\n return await RestRequestGET(Endpoints.EMAIL_DETAILS(demandId, emailId));\r\n}\r\n\r\n\r\nconst doExportEmails = (url, finallyCallback = () => {\r\n}) => {\r\n try {\r\n RestRequestBLOB(url)\r\n .finally(finallyCallback);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst printEmailDetails = (demandId, emailId, finallyCallback = () => {}) => {\r\n try {\r\n RestRequestBLOB(Endpoints.EMAIL_PRINT(demandId, emailId)).finally(finallyCallback);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst clearResources = (resource) => reduxStore.dispatch(clearResource(resource));\r\n\r\nexport default {\r\n getEmailList,\r\n getEmailListActions,\r\n getEmailDetails,\r\n clearResources,\r\n doExportEmails,\r\n printEmailDetails,\r\n EMAIL_LIST_RESOURCE_ID,\r\n EMAIL_LIST_ACTIONS_RESOURCE_ID\r\n}","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport {TextField} from \"@material-ui/core\";\r\nimport {KeyboardDateTimePicker} from \"@material-ui/pickers\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport DateFormats from \"constants/DateFormats\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n\r\n '&>*:not(:first-child):not(:last-child)': {\r\n marginLeft: theme.spacing(4),\r\n }\r\n },\r\n search: {\r\n width: 182,\r\n }\r\n}));\r\n\r\nconst EMPTY_SEARCH_OBJECT = {subject: '', message: '', recipients: '', dateFrom: null, dateTo: null}\r\nconst MAX_SEARCH_LENGTH = 100;\r\n\r\nfunction EmailListSearch(\r\n {\r\n searchInProgress,\r\n doSearch\r\n }) {\r\n\r\n\r\n const getInitValue = () => {\r\n\r\n return {...EMPTY_SEARCH_OBJECT};\r\n }\r\n\r\n const classes = useStyle();\r\n const [value, setValue] = useState(getInitValue());\r\n const [submitState, setSubmitState] = useState(0);\r\n\r\n useEffect(() => {\r\n if (submitState && !searchInProgress) {\r\n const valueFiltered = Object.keys(value)\r\n .filter((k) => value[k])\r\n .reduce((a, k) => ({...a, [k]: value[k]}), {});\r\n doSearch(valueFiltered);\r\n }\r\n // eslint-disable-next-line\r\n }, [submitState]);\r\n\r\n const handleChange = (id, e) => {\r\n setValue({...value, [id]: e.target.value});\r\n }\r\n\r\n const handleSubmit = () => {\r\n setSubmitState(x => x + 1)\r\n };\r\n\r\n\r\n const handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n handleSubmit()\r\n }\r\n }\r\n\r\n const handleChangeDate = (id, date) => {\r\n const dateValue = date ? date: null;\r\n setValue({...value, [id]: dateValue})\r\n };\r\n\r\n return (\r\n <>\r\n {/*{Tr('search_box')}*/}\r\n \r\n\r\n handleChange('subject', e)}\r\n onKeyUp={handleKeyPress}\r\n fullWidth\r\n value={value.subject}\r\n inputProps={{maxLength: MAX_SEARCH_LENGTH}}\r\n />\r\n\r\n handleChange('message', e)}\r\n onKeyUp={handleKeyPress}\r\n fullWidth\r\n value={value.message}\r\n inputProps={{maxLength: MAX_SEARCH_LENGTH}}\r\n />\r\n\r\n handleChange('recipients', e)}\r\n onKeyUp={handleKeyPress}\r\n fullWidth\r\n value={value.recipients}\r\n inputProps={{maxLength: MAX_SEARCH_LENGTH}}\r\n />\r\n handleChangeDate('dateFrom', e)}\r\n />\r\n handleChangeDate('dateTo', e)}\r\n />\r\n\r\n \r\n \r\n {\r\n setValue(EMPTY_SEARCH_OBJECT);\r\n handleSubmit()\r\n }}/>\r\n
\r\n \r\n >\r\n )\r\n}\r\n\r\nEmailListSearch.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\n\r\nexport default EmailListSearch;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport TooltipIcon from \"components/icon/TooltipIcon\";\r\nimport {Mail, MailOutline} from \"@material-ui/icons\";\r\n\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n bold: {\r\n fontWeight: theme.typography.fontWeightBold\r\n },\r\n buttonRow: {\r\n marginTop: theme.spacing(2),\r\n textAlign: \"end\"\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n emailColumn: theme.components.table.emailColumn,\r\n ipColumn: theme.components.table.ipColumn,\r\n dateTimeColumn: {\r\n ...theme.components.table.dateTimeColumn,\r\n textAlign: 'center'\r\n }\r\n}));\r\n\r\nfunction EmailDeliveriesTable(\r\n {\r\n deliveryList\r\n }) {\r\n\r\n\r\n const classes = useStyle();\r\n\r\n const getStatusCellContent = (item) => {\r\n return \r\n {Tr(`message_delivery_status_${item.status}`)}\r\n {!!item.errorMessage && <>\r\n
{Tr('details')}: \r\n ${item.errorMessage}\r\n >}\r\n\r\n \r\n }\r\n\r\n return (\r\n\r\n [\r\n ,\r\n item.recipient,\r\n getStatusCellContent(item),\r\n item.deliveryDate ? moment(item.deliveryDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT) : '--'\r\n ])}\r\n />\r\n\r\n )\r\n}\r\n\r\nexport default EmailDeliveriesTable;","import React, {useEffect, useState} from 'react';\r\nimport Dialog from \"components/Dialog\";\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport Loading from \"components/Loading\";\r\nimport SingleButton from \"components/popup/components/SingleButton\";\r\nimport EmailListService from \"services/EmailListService\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport clsx from \"clsx\";\r\nimport EmailDeliveriesTable from \"./EmailDeliveriesTable\";\r\n\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n secContent: {\r\n paddingBottom: theme.spacing(2)\r\n },\r\n preLine: {\r\n whiteSpace: \"pre-line\"\r\n },\r\n previewBox: {\r\n width: '98%',\r\n overflow: 'auto',\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n },\r\n previewHtml: {\r\n height: 300,\r\n },\r\n previewNoHtml: {\r\n maxHeight: 300,\r\n whiteSpace: \"pre-line\",\r\n padding: theme.spacing(),\r\n paddingRight: 0\r\n }\r\n}));\r\n\r\nconst EmailDetailsPopup = (\r\n {\r\n demandId,\r\n emailId,\r\n detailed,\r\n onClose = () => {\r\n }\r\n }) => {\r\n\r\n const classes = useStyle({});\r\n\r\n const [emailDetails, setEmailDetails] = useState(null);\r\n\r\n useEffect(() => {\r\n EmailListService.getEmailDetails(demandId, emailId).then((resp) => setEmailDetails(resp));\r\n }, [demandId, emailId])\r\n\r\n\r\n return (\r\n }\r\n >\r\n\r\n {!emailDetails && }\r\n\r\n {!!emailDetails && <>\r\n\r\n {detailed && <>\r\n {Tr('sender')}:\r\n \r\n {emailDetails.from}\r\n \r\n\r\n\r\n {!!emailDetails?.to.length && <>\r\n {Tr('email_to')}:\r\n \r\n {emailDetails.to.join('\\n')}\r\n >\r\n }\r\n {!!emailDetails?.cc.length && <>\r\n {Tr('email_cc')}:\r\n \r\n {emailDetails.cc.join('\\n')}\r\n >\r\n }\r\n {!!emailDetails?.bcc.length && <>\r\n {Tr('email_bcc')}:\r\n \r\n {emailDetails.bcc.join('\\n')}\r\n >\r\n }\r\n >}\r\n {Tr('subject')}:\r\n \r\n {emailDetails.subject}\r\n \r\n\r\n {detailed && <>\r\n {Tr('email_content')}:\r\n \r\n {\r\n emailDetails.html ? \r\n\r\n {Tr('attachments')}:\r\n \r\n --\r\n \r\n >}\r\n\r\n {!!emailDetails?.deliveries && <>\r\n {Tr('send_status')}:\r\n \r\n >\r\n }\r\n\r\n\r\n >}\r\n \r\n );\r\n}\r\n\r\n\r\nEmailDetailsPopup.propTypes = {};\r\n\r\nexport default EmailDetailsPopup;","import React, {useEffect, useState} from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport Loading from \"components/Loading\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport Tr from \"translations/Translations\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport WorkableIconPrintButton from \"components/button/WorkableIconPrintButton\";\r\nimport {Link, makeStyles, Tooltip, Typography} from \"@material-ui/core\";\r\nimport Pagination from \"components/Pagination\";\r\nimport EmailListService from \"services/EmailListService\";\r\nimport {connect} from \"react-redux\";\r\nimport {setContrastColors} from \"redux/actions\";\r\nimport EmailListSearch from \"./EmailListSearch\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport EmailDetailsPopup from \"./EmailDetailsPopup\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport GridBlock from \"components/GridBlock\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n table: {\r\n '& .MuiTableCell-head': {\r\n fontWeight: 700\r\n }\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateTimeColumn: theme.components.table.dateTimeColumn,\r\n recColumn: {\r\n width: 300\r\n },\r\n statusColumn: {\r\n width: 60\r\n },\r\n tooltipContent: {\r\n whiteSpace: 'pre-line'\r\n },\r\n recContent: {\r\n textOverflow: 'ellipsis',\r\n overflow: 'hidden'\r\n },\r\n more: {\r\n whiteSpace: 'nowrap'\r\n }\r\n}));\r\n\r\nfunction EmailListSection(\r\n {\r\n demandId,\r\n emailList,\r\n emailListActions\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [searchInProgress, setSearchInProgress] = useState(false);\r\n const [exportWorking, setExportWorking] = useState(false);\r\n const [printWorking, setPrintWorking] = useState(0);\r\n const [emailDetails, setEmailDetails] = useState(null);\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig} = useSearch();\r\n\r\n\r\n useDidUpdateEffect(() => {\r\n if (emailList?.totalCount !== undefined) {\r\n setTotalCount(emailList.totalCount)\r\n }\r\n }, [emailList?.totalCount]);\r\n\r\n useEffect(() => {\r\n EmailListService.getEmailListActions(demandId);\r\n return () => {\r\n EmailListService.clearResources(EmailListService.EMAIL_LIST_RESOURCE_ID)\r\n EmailListService.clearResources(EmailListService.EMAIL_LIST_ACTIONS_RESOURCE_ID)\r\n }\r\n }, [demandId]);\r\n\r\n useEffect(() => {\r\n setSearchInProgress(true);\r\n const {pagination, search} = searchData;\r\n EmailListService.getEmailList(demandId, pagination, search).finally(() => setSearchInProgress(false));\r\n // eslint-disable-next-line\r\n }, [searchData]);\r\n\r\n const printEmailDetails = (emailId) => {\r\n setPrintWorking(emailId);\r\n EmailListService.printEmailDetails(demandId, emailId, () => setPrintWorking(0));\r\n }\r\n\r\n const getHeaders = (emailList) => {\r\n const arr = [];\r\n\r\n arr.push(Tr('subject'));\r\n arr.push(Tr('recipients'));\r\n arr.push(Tr('status'));\r\n arr.push(Tr('send_date'));\r\n arr.push('');\r\n arr.push('');\r\n return arr;\r\n }\r\n\r\n const getItems = ({items}) => {\r\n\r\n const rows = [];\r\n\r\n items.forEach(({identity, to, cc, bcc, subject, insertDate}, i, array) => {\r\n\r\n const recipients = [...to, ...cc, ...bcc];\r\n const arr = [];\r\n arr.push({\r\n value: subject\r\n });\r\n\r\n arr.push({\r\n value: {recipients[0] + \" \"}\r\n {(recipients.length > 2) && {recipients.join('\\n')}}>\r\n {' ' + Tr('and_x_more', {more: recipients.length - 1})}}\r\n \r\n });\r\n\r\n arr.push({\r\n value: setEmailDetails({id: identity, detailed: false})}>{Tr('details')}\r\n });\r\n\r\n arr.push({\r\n value: insertDate ? moment(insertDate).format(DateFormats.DATETIME_FORMAT) : null\r\n });\r\n\r\n arr.push({\r\n value: {\r\n printEmailDetails(identity);\r\n }} working={printWorking === identity} />\r\n });\r\n\r\n arr.push({\r\n value: {\r\n setEmailDetails({id: identity, detailed: true});\r\n }}/>\r\n });\r\n\r\n rows.push(arr);\r\n })\r\n return rows;\r\n };\r\n\r\n const getColumnClasses = () => {\r\n const arr = [];\r\n\r\n arr.push(undefined);\r\n arr.push(classes.recColumn);\r\n arr.push(classes.statusColumn);\r\n arr.push(classes.dateTimeColumn);\r\n arr.push(classes.buttonColumn);\r\n arr.push(classes.buttonColumn);\r\n return arr;\r\n };\r\n\r\n const doExport = () => {\r\n setExportWorking(true);\r\n EmailListService.doExportEmails(emailListActions.exportEmailList.url, () => setExportWorking(false));\r\n }\r\n\r\n if (!emailList || !emailListActions) return \r\n return (\r\n <>\r\n {!!emailListActions.exportEmailList && \r\n {Tr('export_email_list')}\r\n \r\n }\r\n\r\n \r\n \r\n \r\n {!!emailDetails &&\r\n setEmailDetails(null)}/>}\r\n >\r\n )\r\n}\r\n\r\n\r\nEmailListSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n emailList: state.resources[EmailListService.EMAIL_LIST_RESOURCE_ID],\r\n emailListActions: state.resources[EmailListService.EMAIL_LIST_ACTIONS_RESOURCE_ID],\r\n}), {\r\n setContrastColors\r\n})(EmailListSection);","import React from 'react'\r\nimport Workspace from \"components/Workspace\";\r\nimport EmailListSection from \"./components/EmailListSection\";\r\nimport Tr from \"translations/Translations\";\r\nimport Section from \"../part2/components/Section\";\r\n\r\nfunction EmailListPanel(\r\n {\r\n match\r\n }) {\r\n\r\n const demandId = match.params.id;\r\n\r\n return ()\r\n}\r\n\r\n\r\nexport default EmailListPanel;","import React, {useContext} from \"react\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\nimport TextInput from \"components/TextInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\n\r\nfunction NoticeTextInput\r\n({\r\n id,\r\n label,\r\n formikProps,\r\n required,\r\n multiline,\r\n disabled\r\n }) {\r\n const {formTr, formTip} = useContext(FormTranslationContext)\r\n const tip = formTip(label ? label : id);\r\n\r\n\r\n const input = \r\n\r\n if (tip)\r\n return \r\n {input}\r\n \r\n return input;\r\n\r\n\r\n}\r\n\r\nexport default NoticeTextInput;","import React, {useContext, useState} from 'react'\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport NoticeYesNoInput from \"../../components/inputs/NoticeYesNoInput\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport EZamowieniaIcon from \"components/icon/EZamowieniaIcon\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport useEzamowieniaOauth from \"hooks/useEzamowieniaOauth\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport Tr from \"translations/Translations\";\r\nimport {PP_REQUIRED_GROUPS} from \"constants/EzamowieniaRequiredGroups\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n inputWithButton: {\r\n '&>*:first-child': {\r\n flexGrow: 1,\r\n marginRight: theme.spacing(2)\r\n }\r\n },\r\n}))\r\n\r\n\r\nfunction BasicData(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n const classes = useStyle();\r\n const [ezWorking, setEzWorking] = useState(false);\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const updateNotice = getObjectValue('_updateNotice', formikProps.values, true);\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const {getDict, getDynamicDict, loadDynamicDictionaries} = useContext(FormTranslationContext)\r\n const {authorizeEzamowienia} = useEzamowieniaOauth();\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const loadPlanItems = () => {\r\n setEzWorking(true);\r\n authorizeEzamowienia(()=> {\r\n loadDynamicDictionaries().then((resp)=> {\r\n if(resp) {\r\n enqueueSuccessSnackbar(Tr(\"bzp_plan_items_loaded\"));\r\n if(resp[\"RKT-0510\"] && resp[\"RKT-0510\"].items && resp[\"RKT-0510\"].items.length > 0) {\r\n const bzpNumber = resp[\"RKT-0510\"].items[0].value;\r\n if(bzpNumber && gVal(\"tenderPlanNumber\") !== bzpNumber) {\r\n formikProps.setFieldValue(gId(\"tenderPlanNumber\"), bzpNumber);\r\n enqueueSuccessSnackbar(Tr(\"bzp_plan_number_loaded\"));\r\n }\r\n }\r\n\r\n\r\n }\r\n }).finally(()=> setEzWorking(false));\r\n },()=> {\r\n setEzWorking(false)\r\n }, PP_REQUIRED_GROUPS)\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 !!loadDynamicDictionaries && !updateNotice && Wczytaj\r\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\nBasicData.propTypes = {};\r\n\r\nexport default BasicData;\r\n","import React, {useContext} from \"react\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport Typography from \"components/Typography\";\r\n\r\nfunction NoticeTypography\r\n({\r\n children,\r\n formTrKey\r\n }) {\r\n const {formTr} = useContext(FormTranslationContext)\r\n\r\n return {formTrKey && formTr(formTrKey)}{children}\r\n\r\n\r\n}\r\n\r\nexport default NoticeTypography;","import React, {memo, useContext} from 'react'\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport NoticeTypography from \"../../components/inputs/NoticeTypography\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport ExposureNeg1Icon from '@material-ui/icons/ExposureNeg1';\r\nimport Tr from 'translations/Translations'\r\nimport deepEq from 'fast-deep-equal'\r\nimport {Collapse} from \"@material-ui/core\";\r\n\r\nfunction PurchaserDataTogetherList(\r\n {\r\n id,\r\n formikProps,\r\n index,\r\n removePurchaser\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const {getDict} = useContext(FormTranslationContext)\r\n\r\n return (<>\r\n \r\n : {index + 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 \r\n \r\n \r\n \r\n \r\n \r\n >)\r\n}\r\n\r\nPurchaserDataTogetherList.propTypes = {};\r\n// export default PurchaserDataTogetherList;\r\nexport default memo(PurchaserDataTogetherList, (prevProps, nextProps) => {\r\n const id = nextProps.id;\r\n if (prevProps.formikProps && nextProps.formikProps) {\r\n const pv = getObjectValue(id, prevProps.formikProps.values, null);\r\n const nv = getObjectValue(id, nextProps.formikProps.values, null);\r\n if (pv === nv) {\r\n const pe = getObjectValue(id, prevProps.formikProps.errors, null);\r\n const ne = getObjectValue(id, nextProps.formikProps.errors, null);\r\n return pe === ne && deepEq(pe, ne);\r\n }\r\n }\r\n return false;\r\n})\r\n\r\n","import React, {useEffect} from 'react'\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport NoticeIntegerInput from \"../../components/inputs/NoticeIntegerInput\";\r\nimport NoticeTypography from \"../../components/inputs/NoticeTypography\";\r\nimport Typography from \"components/Typography\";\r\nimport PlusOneIcon from '@material-ui/icons/PlusOne';\r\nimport Tr from 'translations/Translations';\r\nimport Button from \"components/Button\";\r\nimport PurchaserDataTogetherList from \"./PurchaserDataTogetherList\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport {FieldArray} from \"formik\";\r\n\r\nfunction PurchaserDataTogether(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n\r\n useEffect(() => {\r\n if (getObjectValue(id, formikProps.values, null) == null) {\r\n formikProps.setFieldValue(id, {\r\n \"togetherDuties\": null,\r\n \"togetherRegulations\": null,\r\n \"list\": [],\r\n \"togetherCount\": null\r\n })\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n const addPurchaser = (arrayHelpers) => {\r\n const arr = gVal(\"list\", true, []);\r\n arrayHelpers.push({\r\n \"name\": null,\r\n \"branch\": null,\r\n \"nationalIdNumber\": null,\r\n \"street\": null,\r\n \"city\": null,\r\n \"postCode\": null,\r\n \"country\": \"PL\",\r\n \"state\": null,\r\n \"nuts3\": null,\r\n \"phone\": null,\r\n \"fax\": null,\r\n \"email\": null,\r\n \"www\": null\r\n });\r\n formikProps.setFieldValue(gId(\"togetherCount\"), arr.length + 1);\r\n }\r\n\r\n const removePurchaser = (arrayHelpers, index) => {\r\n const arr = gVal(\"list\", true, []);\r\n formikProps.setFieldValue(gId(\"togetherCount\"), arr.length - 1)\r\n arrayHelpers.remove(index);\r\n }\r\n\r\n\r\n return (<>\r\n \r\n\r\n To pole uzupełniane jest automaycznie poprzez dodawanie kolejnych wykonawców poniżej\r\n \r\n \r\n \r\n\r\n (<>\r\n {!!gVal(\"form.purchaserData.together.list\", false) &&\r\n formikProps.values.form.purchaserData.together.list.map((item, index) => (\r\n removePurchaser(arrayHelpers, index)}/>\r\n ))\r\n }\r\n \r\n >)}\r\n />\r\n >)\r\n}\r\n\r\nPurchaserDataTogether.propTypes = {};\r\n\r\nexport default PurchaserDataTogether;\r\n","import React, {useContext, useEffect} from 'react'\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport {Collapse} from \"@material-ui/core\";\r\n\r\nfunction PurchaserDataEntrusted(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const {getDict} = useContext(FormTranslationContext)\r\n\r\n useEffect(() => {\r\n if (getObjectValue(id, formikProps.values, null) == null) {\r\n formikProps.setFieldValue(id, {})\r\n }\r\n // eslint-disable-next-line\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 >)\r\n}\r\n\r\nPurchaserDataEntrusted.propTypes = {};\r\nexport default PurchaserDataEntrusted;\r\n\r\n\r\n","import React, {useContext} from 'react'\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport Typography from \"components/Typography\";\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport PurchaserDataTogether from \"./PurchaserDataTogether\";\r\nimport PurchaserDataEntrusted from \"./PurchaserDataEntrusted\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport Tr from \"translations/Translations\";\r\n\r\n\r\nfunction PurchaserData(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const {getDict} = useContext(FormTranslationContext)\r\n\r\n return (<>\r\n\r\n {Tr(\"bzp_notice_purchaser_data_info\")}\r\n
\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n >)\r\n}\r\n\r\nPurchaserData.propTypes = {};\r\n\r\nexport default PurchaserData;\r\n","import React, {useMemo, useRef} from 'react'\r\nimport Select, {createSelectItem} from \"components/Select\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport ArrowIconLeft from \"@material-ui/icons/KeyboardArrowLeft\";\r\nimport ArrowIconRight from \"@material-ui/icons/KeyboardArrowRight\";\r\nimport {Paper} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\"\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport moment from \"libs/moment\";\r\nimport scrollTo from \"libs/scrollTo\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n position: 'sticky',\r\n zIndex: theme.zIndex.appBar - 1,\r\n top: 109\r\n },\r\n paper: {\r\n padding: theme.spacing(0.5),\r\n border: `solid 2px ${theme.palette.border.dark}`,\r\n },\r\n select: {\r\n minWidth: 550\r\n },\r\n margin: {\r\n margin: `0 ${theme.spacing()}px`\r\n }\r\n}))\r\n\r\nfunction FormNavigator(\r\n {\r\n formikProps,\r\n id,\r\n items,\r\n formTr,\r\n trPrefix,\r\n onSubmit,\r\n onSave,\r\n onCreateNewVersion,\r\n buttonWorks,\r\n doAutoSave = false\r\n }) {\r\n const classes = useStyle();\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n // eslint-disable-next-line\r\n const memoItems = useMemo(() => items.map((x, i, arr) => createSelectItem(x, `${formTr(trPrefix + x)} (${i + 1}/${arr.length})`)), [items, trPrefix])\r\n const curStep = formikProps.values[id];\r\n const curIndex = items.indexOf(curStep);\r\n const lastSave = useRef(moment())\r\n\r\n\r\n const autoSave = () => {\r\n setTimeout(()=> scrollTo(\"#form-top-scroll-to\", -20), 100)\r\n if(doAutoSave && onSave) {\r\n const now = moment();\r\n if(now.diff(lastSave.current, 'seconds') > 10) {\r\n onSave();\r\n lastSave.current = now;\r\n }\r\n }\r\n }\r\n\r\n const onChange = (step) => {\r\n formikProps.setFieldValue(id, step);\r\n autoSave();\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n 0 ? formTr(trPrefix + items[curIndex - 1]) : undefined}\r\n variant=\"outlined\"\r\n onClick={() => onChange(items[curIndex - 1])}\r\n Icon={ArrowIconLeft}/>\r\n \r\n onChange(items[curIndex + 1])}\r\n Icon={ArrowIconRight}/>\r\n \r\n {\r\n\r\n (!!onCreateNewVersion || !!onSubmit || !!onSave) &&\r\n \r\n {!!onCreateNewVersion && {Tr('bzp_notice_create_new_version')}}\r\n {!onCreateNewVersion && !!onSave && {Tr('save_draft_version')}}\r\n {!onCreateNewVersion && !!onSubmit && {Tr('save')}}\r\n \r\n }\r\n \r\n \r\n
)\r\n}\r\n\r\nFormNavigator.propTypes = {};\r\n\r\nexport default FormNavigator;\r\n","export default {\r\n basicData: \"basicData\",\r\n purchaserData: \"purchaserData\",\r\n realizationType: \"realizationType\",\r\n documentsAccess: \"documentsAccess\",\r\n orderObject: \"orderObject\",\r\n qualification: \"qualification\",\r\n objectiveEvidence: \"objectiveEvidence\",\r\n orderTerms: \"orderTerms\",\r\n contractDraft: \"contractDraft\",\r\n orderDetails: \"orderDetails\",\r\n additionalInfo: \"additionalInfo\"\r\n}\r\n\r\nexport const contractNoticeStepsOrder = [\"basicData\", \"purchaserData\", \"realizationType\", \"documentsAccess\", \"orderObject\", \"qualification\",\r\n \"objectiveEvidence\", \"orderTerms\", \"contractDraft\", \"orderDetails\", \"additionalInfo\"];","import VS from 'constants/ValidationShema';\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nexport default () => VS.object({\r\n step: VS.any().strip(),\r\n orderDealing: VS.any().strip(),\r\n primaryDealing: VS.any().strip(),\r\n partnershipDealing: VS.any().strip(),\r\n form: VS.lazy(form => {\r\n const refersTo = getObjectValue(\"basicData.refersTo\", form, null);\r\n const realizationType = refersTo === \"Order\" ? getObjectValue(\"realizationType.orderRealizationType\", form, null) : (refersTo === \"FrameworkAgreement\" ? getObjectValue(\"realizationType.frameworkRealizationType\", form, null) : null)\r\n const partialOffers = getObjectValue(\"orderObject.partialOffers\", form, null);\r\n const orderType = getObjectValue(\"orderObject.orderType\", form, null);\r\n\r\n const realization_primary_1 = (refersTo === \"Order\" && realizationType === \"1.1.1\") || (refersTo === \"FrameworkAgreement\" && realizationType === \"11.1.1\");\r\n const realization_primary_2 = (refersTo === \"Order\" && realizationType === \"1.1.2\") || (refersTo === \"FrameworkAgreement\" && realizationType === \"11.1.2\");\r\n const realization_primary_3 = (refersTo === \"Order\" && realizationType === \"1.1.3\") || (refersTo === \"FrameworkAgreement\" && realizationType === \"11.1.3\");\r\n const realization_partnership_2 = (refersTo === \"Order\" && realizationType === \"1.2\") || (refersTo === \"FrameworkAgreement\" && realizationType === \"11.2\");\r\n\r\n const primaryRealizationType = realization_primary_1 || realization_primary_2 || realization_primary_3;\r\n\r\n const criteriaValidator = (criteriaWeightStrategy) => VS.arrayOfShape({\r\n type: VS.string(),\r\n qualityCriterionType: VS.any().when(\"type\", {is: \"QUALITY\", then: VS.string(), otherwise: VS.any().strip()}),\r\n criterionName: VS.stringMax(1000),\r\n criterionPctgWeight: VS.any().when(\"type\", {is: (x) => criteriaWeightStrategy === \"1\", then: VS.amountMax100(), otherwise: VS.any().strip()}),\r\n criterionPktWeight: VS.any().when(\"type\", {is: (x) => criteriaWeightStrategy === \"2\", then: VS.amountMax100(), otherwise: VS.any().strip()}),\r\n criterionOrder: VS.any().when(\"type\", {is: (x) => criteriaWeightStrategy === \"3\", then: VS.amount(0, false), otherwise: VS.any().strip()})\r\n })\r\n\r\n const primaryLotValidator = VS.lazy(lot => {\r\n const criteriaWeightStrategy = !!lot ? lot.criteriaWeightStrategy : null;\r\n\r\n return VS.object({\r\n negotiationsPossible: VS.any().when(\"criteriaWeightStrategy\", {\r\n is: (x) => realization_primary_2,\r\n then: VS.requiredBoolean(),\r\n otherwise: VS.any().strip()\r\n }),\r\n evaluationMethodDescription: VS.any().when(\"criteriaWeightStrategy\", {\r\n is: (x) => realization_primary_1 || realization_primary_2,\r\n then: VS.stringMaxNoRq(4000),\r\n otherwise: VS.any().strip()\r\n }),\r\n criteriaWeightStrategy: VS.string(),\r\n criteriaEvaluationStrategy: VS.string(),\r\n evaluationSocialAspects3: VS.any().when(\"criteriaWeightStrategy\", {\r\n is: (x) => realization_primary_3,\r\n then: VS.requiredBoolean(),\r\n otherwise: VS.any().strip()\r\n }),\r\n evaluationSocialAspects3Info: VS.any().when(\"evaluationSocialAspects3\", {\r\n is: (x) => x === true,\r\n then: VS.arrayRequired(),\r\n otherwise: VS.any().strip()\r\n }),\r\n evaluationSocialAspects12: VS.any().when(\"criteriaWeightStrategy\", {\r\n is: (x) => realization_primary_1 || realization_primary_2,\r\n then: VS.requiredBoolean(),\r\n otherwise: VS.any().strip()\r\n }),\r\n evaluationSocialAspects12Info: VS.any().when(\"evaluationSocialAspects12\", {\r\n is: (x) => x === true && (realization_primary_1 || realization_primary_2),\r\n then: VS.arrayRequired()\r\n }),\r\n criteria: criteriaValidator(criteriaWeightStrategy)\r\n })\r\n })\r\n\r\n const partnershipLotValidator = VS.lazy(lot => {\r\n const criteriaWeightStrategy = !!lot ? lot.criteriaWeightStrategy : null;\r\n\r\n return VS.object({\r\n criteriaWeightStrategy: VS.string(),\r\n criteriaEvaluationStrategy: VS.string(),\r\n nonNegotiableRequirements: VS.string(4000),\r\n criteria: criteriaValidator(criteriaWeightStrategy)\r\n })\r\n })\r\n\r\n\r\n return VS.object({\r\n basicData: VS.object({\r\n refersTo: VS.string(),\r\n refersToSocialServices: VS.requiredBoolean(),\r\n name: VS.stringMax(200),\r\n tenderPlanRelated: VS.requiredBoolean(),\r\n tenderPlanNumber: VS.any().when(\"tenderPlanRelated\", {is: (x) => x === true, then: VS.stringMax(22), otherwise: VS.any().strip()}),\r\n tenderPlanItemIdentities: VS.any().when(\"tenderPlanRelated\", {is: (x) => x === true, then: VS.arrayRequired(), otherwise: VS.any().strip()}),\r\n onlyArt94Suppliers: VS.requiredBoolean(),\r\n art94Suppliers: VS.any().when(\"onlyArt94Suppliers\", {is: (x) => x === true, then: VS.arrayRequired(), otherwise: VS.any().strip()}),\r\n onlyArt361Suppliers: VS.any().when(\"refersToSocialServices\", {is: (x) => x === true, then: VS.requiredBoolean()}),\r\n ueFunded: VS.requiredBoolean(),\r\n ueProgramName: VS.any().when(\"ueFunded\", {is: (x) => x === true, then: VS.stringMax(400), otherwise: VS.any().strip()})\r\n }),\r\n purchaserData: VS.object({\r\n phoneNumber: VS.stringMaxNoRq(100),\r\n faxNumber: VS.stringMaxNoRq(100),\r\n email: VS.emailMax(250),\r\n type: VS.string(),\r\n typeOther: VS.any().when(\"type\", {is: \"1.5\", then: VS.stringMax(200), otherwise: VS.any().strip()}),\r\n activitySubject: VS.string(),\r\n activitySubjectOther: VS.any().when(\"activitySubject\", {is: \"11\", then: VS.stringMax(200), otherwise: VS.any().strip()}),\r\n role: VS.string(),\r\n together: VS.any().when(\"role\", {\r\n is: \"wspolnie\", then: VS.object({\r\n togetherCount: VS.integerMinMax(1, 100),\r\n togetherDuties: VS.stringMax(1000),\r\n togetherRegulations: VS.stringMaxNoRq(1000),\r\n list: VS.arrayOfShape({\r\n name: VS.stringMax(300),\r\n branch: VS.stringMaxNoRq(300),\r\n nationalIdNumber: VS.stringMax(100),\r\n street: VS.stringMax(100),\r\n city: VS.stringMax(100),\r\n postCode: VS.stringMax(20),\r\n state: VS.any().when(\"country\", {is: \"PL\", then: VS.string(), otherwise: VS.any().strip()}),\r\n country: VS.string(),\r\n nuts3: VS.any().when(\"country\", {is: \"PL\", then: VS.string(), otherwise: VS.any()}),\r\n phone: VS.stringMaxNoRq(100),\r\n fax: VS.stringMaxNoRq(100),\r\n email: VS.emailMax(250),\r\n www: VS.urlMax(250)\r\n })\r\n\r\n }), otherwise: VS.any().strip()\r\n }),\r\n entrusted: VS.any().when(\"role\", {\r\n is: \"powierzony\", then: VS.object({\r\n name: VS.stringMax(300),\r\n nationalIdNumber: VS.stringMax(100),\r\n street: VS.stringMax(100),\r\n city: VS.stringMax(100),\r\n postCode: VS.stringMax(20),\r\n state: VS.any().when(\"country\", {is: \"PL\", then: VS.string(), otherwise: VS.any().strip()}),\r\n country: VS.string(),\r\n nuts3: VS.any().when(\"country\", {is: \"PL\", then: VS.string(), otherwise: VS.any()}),\r\n phone: VS.stringMaxNoRq(100),\r\n fax: VS.stringMaxNoRq(100),\r\n email: VS.emailMax(250),\r\n www: VS.urlMax(250)\r\n }), otherwise: VS.any().strip()\r\n })\r\n }),\r\n realizationType: VS.object({\r\n orderRealizationType: VS.any().when(\"frameworkRealizationType\", {\r\n is: (x) => refersTo === \"Order\",\r\n then: VS.string(),\r\n otherwise: VS.any().strip()\r\n }),\r\n frameworkRealizationType: VS.any().when(\"orderRealizationTypes\", {\r\n is: (x) => refersTo === \"FrameworkAgreement\",\r\n then: VS.string(),\r\n otherwise: VS.any().strip()\r\n })\r\n }),\r\n documentsAccess: VS.object({\r\n ezamowieniaDemand: VS.requiredBoolean(),\r\n www: VS.urlMax(250),\r\n restrictedAccess: VS.requiredBoolean(),\r\n restrictedAccessInfo: VS.any().when(\"restrictedAccess\", {is: (x) => x === true, then: VS.stringMax(4000), otherwise: VS.any().strip()}),\r\n electronicOffersOnly: VS.requiredBoolean(),\r\n electronicOffersInfo: VS.any().when(\"electronicOffersOnly\", {is: (x) => x === true, then: VS.stringMax(1000), otherwise: VS.any().strip()}),\r\n electronicOffersRequirements: VS.any().when(\"electronicOffersOnly\", {is: (x) => x === true, then: VS.stringMax(4000)}),\r\n toolsWww: VS.urlMaxOptional(250),\r\n toolsNotWidelyAvailable: VS.requiredBoolean(),\r\n notWidelyAvailableToolsInfo: VS.any().when(\"toolsNotWidelyAvailable\", {is: (x) => x === true, then: VS.stringMax(4000), otherwise: VS.any().strip()}),\r\n offerCatalog: VS.string(),\r\n notElectronicOffersReason: VS.any().when(\"electronicOffersOnly\", {\r\n is: (x) => x === false,\r\n then: VS.arrayRequired(),\r\n otherwise: VS.any().strip()\r\n }),\r\n notElectronicOffersMethod: VS.any().when(\"electronicOffersOnly\", {is: (x) => x === false, then: VS.stringMax(4000), otherwise: VS.any().strip()}),\r\n offerLang: VS.arrayRequired(),\r\n rodoInfo: VS.stringMaxNoRq(4000),\r\n rodoLimitations: VS.stringMaxNoRq(4000),\r\n offerCatalogUsage: VS.any().when(\"ezamowieniaDemand\", {\r\n is: (x) => refersTo === \"FrameworkAgreement\",\r\n then: VS.requiredBoolean(),\r\n otherwise: VS.any().strip()\r\n })\r\n }),\r\n orderObject: VS.object({\r\n marketConsultations: VS.requiredBoolean(),\r\n number: VS.stringMaxNoRq(100),\r\n orderType: VS.string(),\r\n dividedIntoLots: VS.any().when(\"orderType\", {is: (x) => refersTo === \"Order\", then: VS.requiredBoolean(), otherwise: VS.any().strip()}),\r\n lotsValueNet: VS.any().when(\"orderType\", {is: (x) => refersTo === \"Order\", then: VS.amountOptional(), otherwise: VS.any().strip()}),\r\n lotsValueNetCurrency: VS.any().when(\"orderType\", {is: (x) => refersTo === \"Order\", then: VS.any(), otherwise: VS.any().strip()}),\r\n orderValueNet: VS.any().when([\"orderType\", \"dividedIntoLots\"], {is: (orderType, dividedIntoLots) => refersTo === \"Order\" && dividedIntoLots === true, then: VS.amountOptional(), otherwise: VS.any().strip()}),\r\n orderValueNetCurrency: VS.any().when([\"orderType\", \"dividedIntoLots\"], {is: (orderType, dividedIntoLots) => refersTo === \"Order\" && dividedIntoLots === true, then: VS.any(), otherwise: VS.any().strip()}),\r\n frameworkAgreementValueNet: VS.any().when(\"orderType\", {\r\n is: (x) => refersTo === \"FrameworkAgreement\",\r\n then: VS.amountOptional(),\r\n otherwise: VS.any().strip()\r\n }),\r\n frameworkAgreementValueNetCurrency: VS.any().when(\"orderType\", {\r\n is: (x) => refersTo === \"FrameworkAgreement\",\r\n then: VS.any(), otherwise: VS.any().strip()\r\n }),\r\n partialOffers: VS.requiredBoolean(),\r\n dealingCount: VS.any().when(\"partialOffers\", {is: (x) => x === true, then: VS.integerMinMax(2, 1000), otherwise: VS.any().strip()}),\r\n offerType: VS.any().when(\"partialOffers\", {is: (x) => x === true, then: VS.string(), otherwise: VS.any().strip()}),\r\n dealingLimited: VS.any().when(\"partialOffers\", {is: (x) => x === true, then: VS.requiredBoolean(), otherwise: VS.any().strip()}),\r\n dealingLimitPerSupplier: VS.any().when(\"dealingLimited\", {\r\n is: (x) => x === true,\r\n then: VS.numberPositiveNoZero(),\r\n otherwise: VS.any().strip()\r\n }),\r\n socialAspectsConsidered: VS.requiredBoolean(),\r\n socialAspects: VS.any().when(\"socialAspectsConsidered\", {is: (x) => x === true, then: VS.arrayRequired(), otherwise: VS.any().strip()}),\r\n notDivided: VS.any().when(\"partialOffers\", {\r\n is: (x) => x === false, then: VS.object({\r\n purchaserNeedsDescription: VS.any().when(\"mainCpv\", {is: (x) => realization_primary_3, then: VS.stringMax(10000), otherwise: VS.any().strip()}),\r\n innovationProductNeed: VS.any().when(\"mainCpv\", {is: (x) => realization_partnership_2, then: VS.string(10000), otherwise: VS.any().strip()}),\r\n orderSubjectDescription: VS.any().when(\"mainCpv\", {\r\n is: (x) => realization_primary_1 || realization_primary_2,\r\n then: VS.stringMax(10000),\r\n otherwise: VS.any().strip()\r\n }),\r\n mainCpv: VS.requiredObject(),\r\n additionalCpv: VS.any(),\r\n includesOptions: VS.requiredBoolean(),\r\n includesOptionsInfo: VS.any().when(\"includesOptions\", {is: (x) => x === true, then: VS.stringMax(4000), otherwise: VS.any().strip()}),\r\n realizationPeriod: VS.string(),\r\n realizationPeriodDateFrom: VS.any().when(\"realizationPeriod\", {is: \"DateFromTo\", then: VS.dateTimeValid(), otherwise: VS.any().strip()}),\r\n realizationPeriodDateTo: VS.any().when(\"realizationPeriod\", {\r\n is: (x) => x === \"DateFromTo\" || x === \"DateTo\",\r\n then: VS.dateTimeValid(),\r\n otherwise: VS.any().strip()\r\n }),\r\n realizationPeriodAmount: VS.any().when(\"realizationPeriod\", {\r\n is: (x) => x === \"NumberOfDays\" || x === \"NumberOfMonths\",\r\n then: VS.string(),\r\n otherwise: VS.any().strip()\r\n }),\r\n planRenewals: VS.requiredBoolean(),\r\n planRenewalsInfo: VS.any().when(\"planRenewals\", {is: (x) => x === true, then: VS.stringMax(4000), otherwise: VS.any().strip()}),\r\n planOtherOrderForCurrentSupplier: VS.any().when(\"mainCpv\", {is: (x) => orderType === \"Works\" || orderType === \"Services\", then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n planOtherOrderForCurrentSupplierInfo: VS.any().when(\"planOtherOrderForCurrentSupplier\", {\r\n is: (x) => x === true,\r\n then: VS.stringMax(4000),\r\n otherwise: VS.any().strip()\r\n })\r\n }), otherwise: VS.any().strip()\r\n }),\r\n divided: VS.any().when(\"partialOffers\", {\r\n is: (x) => x === true, then: VS.arrayOfShape({\r\n dealingValue: VS.amountOptional(0, false),\r\n dealingValueCurrency: VS.any(),\r\n purchaserNeedsDescription: VS.any().when(\"mainCpv\", {is: (x) => realization_primary_3, then: VS.stringMax(10000), otherwise: VS.any().strip()}),\r\n innovationProductNeed: VS.any().when(\"mainCpv\", {is: (x) => realization_partnership_2, then: VS.string(10000), otherwise: VS.any().strip()}),\r\n orderSubjectDescription: VS.any().when(\"mainCpv\", {\r\n is: (x) => realization_primary_1 || realization_primary_2,\r\n then: VS.stringMax(10000),\r\n otherwise: VS.any().strip()\r\n }),\r\n mainCpv: VS.requiredObject(),\r\n additionalCpv: VS.any(),\r\n includesOptions: VS.requiredBoolean(),\r\n includesOptionsInfo: VS.any().when(\"includesOptions\", {is: (x) => x === true, then: VS.stringMax(4000), otherwise: VS.any().strip()}),\r\n realizationPeriod: VS.string(),\r\n realizationPeriodDateFrom: VS.any().when(\"realizationPeriod\", {is: \"DateFromTo\", then: VS.dateTimeValid(), otherwise: VS.any().strip()}),\r\n realizationPeriodDateTo: VS.any().when(\"realizationPeriod\", {\r\n is: (x) => x === \"DateFromTo\" || x === \"DateTo\",\r\n then: VS.dateTimeValid(),\r\n otherwise: VS.any().strip()\r\n }),\r\n realizationPeriodAmount: VS.any().when(\"realizationPeriod\", {\r\n is: (x) => x === \"NumberOfDays\" || x === \"NumberOfMonths\",\r\n then: VS.string(),\r\n otherwise: VS.any().strip()\r\n }),\r\n planRenewals: VS.requiredBoolean(),\r\n planRenewalsInfo: VS.any().when(\"planRenewals\", {is: (x) => x === true, then: VS.stringMax(4000), otherwise: VS.any().strip()}),\r\n planOtherOrderForCurrentSupplier: VS.any().when(\"mainCpv\", {is: (x) => orderType === \"Works\" || orderType === \"Services\", then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n planOtherOrderForCurrentSupplierInfo: VS.any().when(\"planOtherOrderForCurrentSupplier\", {\r\n is: (x) => x === true,\r\n then: VS.stringMax(4000),\r\n otherwise: VS.any().strip()\r\n })\r\n }), otherwise: VS.any().strip()\r\n }),\r\n }),\r\n qualification: VS.object({\r\n predictedExclusion: VS.requiredBoolean(),\r\n predictedExclusionInfo: VS.any().when(\"predictedExclusion\", {is: (x) => x === true, then: VS.arrayRequired(), otherwise: VS.any().strip()}),\r\n participationConditions: VS.requiredBoolean(),\r\n participationConditionsInfo: VS.any().when(\"participationConditions\", {is: (x) => x === true, then: VS.stringMax(10000), otherwise: VS.any().strip()}),\r\n art125Statement: VS.requiredBoolean(),\r\n inclusionSubjectiveEvidence: VS.stringMaxNoRq(4000),\r\n exclusionSubjectiveEvidence: VS.stringMaxNoRq(4000)\r\n }),\r\n objectiveEvidence: VS.object({\r\n objectiveEvidenceInfo: VS.stringMaxNoRq(4000),\r\n plansEvidence: VS.any(),\r\n plansEvidenceInfo: VS.any().when(\"plansEvidence\", {is: (x) => x === true, then: VS.stringMax(4000), otherwise: VS.any().strip()}),\r\n otherDocumentsList: VS.stringMaxNoRq(4000)\r\n }),\r\n orderTerms: VS.object({\r\n variantsAllowed: VS.requiredBoolean(),\r\n variantsAllowedInfo: VS.any().when(\"variantsAllowed\", {is: (x) => x === true, then: VS.string(), otherwise: VS.any().strip()}),\r\n auctionPlanned: VS.requiredBoolean(),\r\n auctionUrl: VS.any().when(\"auctionPlanned\", {is: (x) => x === true, then: VS.stringMax(250), otherwise: VS.any().strip()}),\r\n auctionPlannedInfo: VS.any().when(\"auctionPlanned\", {is: (x) => x === true, then: VS.stringMax(10000), otherwise: VS.any().strip()}),\r\n guaranteeRequired: VS.requiredBoolean(),\r\n guaranteeRequiredInfo: VS.any().when(\"guaranteeRequired\", {is: (x) => x === true, then: VS.stringMax(4000), otherwise: VS.any().strip()}),\r\n properExecutionGuarantee: VS.requiredBoolean(),\r\n togetherRequirements: VS.stringMaxNoRq(4000),\r\n possibleDemandInvalidation: VS.requiredBoolean()\r\n }),\r\n contractDraft: VS.object({\r\n advancePayment: VS.requiredBoolean(),\r\n advancePaymentInfo: VS.any().when(\"advancePayment\", {is: (x) => x === true, then: VS.stringMax(4000), otherwise: VS.any().strip()}),\r\n contractChanges: VS.requiredBoolean(),\r\n contractChangesInfo: VS.any().when(\"contractChanges\", {is: (x) => x === true, then: VS.stringMax(4000), otherwise: VS.any().strip()}),\r\n socialAspects: VS.requiredBoolean(),\r\n socialAspectsInfo: VS.any().when(\"socialAspects\", {is: (x) => x === true, then: VS.arrayRequired(), otherwise: VS.any().strip()})\r\n }),\r\n orderDetails: VS.object({\r\n x: VS.any().strip(),\r\n frameworkAgreement: VS.any().when(\"x\", {\r\n is: (x) => refersTo === \"FrameworkAgreement\",\r\n then: VS.object({\r\n suppliersNumber: VS.string(),\r\n suppliersNumberLimited: VS.requiredBoolean(),\r\n suppliersNumberLimit: VS.any().when(\"suppliersNumberLimited\", {is: (x) => x === true, then: VS.number(), otherwise: VS.any().strip()}),\r\n art314Order: VS.any().when(\"suppliersNumber\", {\r\n is: \"FrameworkAgreementSeveralContractors\",\r\n then: VS.string(),\r\n otherwise: VS.any().strip()\r\n }),\r\n periodExceedInfo: VS.any()\r\n }).nullable(), otherwise: VS.any().strip()\r\n }),\r\n primary: VS.any().when(\"x\", {\r\n is: (x) => primaryRealizationType,\r\n then: VS.object({\r\n offerEndDate: VS.dateTimeValid(),\r\n offerSubmitPlace: VS.string(),\r\n offerOpenDate: VS.dateTimeValid(),\r\n bindWithOffer: VS.any().when(\"offerSubmitPlace\", {\r\n is: (x) => realization_primary_1 || realization_primary_2,\r\n then: VS.string(), otherwise: VS.any().strip()\r\n }),\r\n bindWithOfferDays: VS.any().when(\"bindWithOffer\", {\r\n is: (x) => x === \"DAYCOUNT\" && (realization_primary_1 || realization_primary_2),\r\n then: VS.numberPositiveNoZero(),\r\n otherwise: VS.any().strip()\r\n }),\r\n bindWithOfferDate: VS.any().when(\"bindWithOffer\", {\r\n is: (x) => x === \"DATE\" && (realization_primary_1 || realization_primary_2),\r\n then: VS.dateTimeValid(),\r\n otherwise: VS.any().strip()\r\n }),\r\n maxSupplierNumber: VS.any().when(\"offerSubmitPlace\", {\r\n is: (x) => realization_primary_2 || realization_primary_3,\r\n then: VS.numberPositiveOptional(), otherwise: VS.any().strip()\r\n }),\r\n limitSuppliersNumberInfo: VS.any().when(\"offerSubmitPlace\", {\r\n is: (x) => realization_primary_2 || realization_primary_3,\r\n then: VS.stringMaxNoRq(4000), otherwise: VS.any().strip()\r\n }),\r\n noNegotiationsTermsDescription: VS.any().when(\"offerSubmitPlace\", {\r\n is: (x) => realization_primary_3,\r\n then: VS.string(4000)\r\n }),\r\n }), otherwise: VS.any().strip()\r\n }),\r\n primaryLots: VS.any().when(\"x\", {\r\n is: (x) => partialOffers === true && primaryRealizationType,\r\n then: VS.arrayOf(primaryLotValidator), otherwise: VS.any().strip()\r\n }),\r\n primaryNoLots: VS.any().when(\"x\", {\r\n is: (x) => partialOffers === false && primaryRealizationType,\r\n then: primaryLotValidator, otherwise: VS.any().strip()\r\n }),\r\n partnership: VS.any().when(\"x\", {\r\n is: (x) => realization_partnership_2,\r\n then: VS.object({\r\n offerEndDate: VS.dateTimeValid(),\r\n offerSubmitPlace: VS.string(),\r\n offerOpenDate: VS.dateTimeValid(),\r\n phasedNegotiations: VS.requiredBoolean(),\r\n suppliersLimited: VS.requiredBoolean(),\r\n suppliersLimitedInfo: VS.any().when(\"suppliersLimited\", {is: (x) => x === true, then: VS.string(4000), otherwise: VS.any().strip()}),\r\n criteriaComplianceDeclaration: VS.any().when(\"suppliersLimited\", {\r\n is: (x) => x === true,\r\n then: VS.requiredBoolean(),\r\n otherwise: VS.any().strip()\r\n }),\r\n criteriaComplianceList: VS.any().when(\"suppliersLimited\", {is: (x) => x === true, then: VS.string(4000), otherwise: VS.any().strip()}),\r\n minSuppliersCount: VS.any().when(\"suppliersLimited\", {\r\n is: (x) => x === true,\r\n then: VS.numberPositiveNoZero(),\r\n otherwise: VS.any().strip()\r\n }),\r\n maxSuppliersCount: VS.any().when(\"suppliersLimited\", {\r\n is: (x) => x === true,\r\n then: VS.numberPositiveNoZero(),\r\n otherwise: VS.any().strip()\r\n }),\r\n }), otherwise: VS.any().strip()\r\n }),\r\n partnershipLots: VS.any().when(\"x\", {\r\n is: (x) => partialOffers === true && realization_partnership_2,\r\n then: VS.arrayOf(partnershipLotValidator),\r\n otherwise: VS.any().strip()\r\n }),\r\n partnershipNoLots: VS.any().when(\"x\", {\r\n is: (x) => partialOffers === false && realization_partnership_2,\r\n then: partnershipLotValidator,\r\n otherwise: VS.any().strip()\r\n })\r\n }),\r\n additionalInfo: VS.object({\r\n info: VS.stringMaxNoRq(4000)\r\n })\r\n })\r\n })\r\n});","import React, {useContext} from 'react'\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\n\r\nfunction RealizationTypeData(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const updateNotice = getObjectValue('_updateNotice', formikProps.values, true);\r\n const {getDict} = useContext(FormTranslationContext)\r\n\r\n const refersTo = gVal(\"form.basicData.refersTo\", false)\r\n return (<>\r\n \r\n \r\n \r\n \r\n \r\n \r\n >)\r\n}\r\n\r\nRealizationTypeData.propTypes = {};\r\n\r\nexport default RealizationTypeData;\r\n","import React, {useContext} from 'react'\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport NoticeYesNoInput from \"../../components/inputs/NoticeYesNoInput\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\n\r\nfunction DocumentsAccessData(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const {getDict} = useContext(FormTranslationContext)\r\n\r\n return (<>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n >)\r\n}\r\n\r\nDocumentsAccessData.propTypes = {};\r\n\r\nexport default DocumentsAccessData;\r\n","import React, {useState} from 'react'\r\nimport {FormHelperText, FormLabel, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport SelectCPV from 'components/popup/selectCpv/SelectCPV';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport Chip from './Chip';\r\n\r\nconst style = theme => ({\r\n root: {\r\n marginTop: theme.spacing()\r\n },\r\n chipLabel: {\r\n maxWidth: 250,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n },\r\n buttonSelect: {\r\n marginRight: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction CPVSingleInput({\r\n classes,\r\n formikProps,\r\n id,\r\n required,\r\n disabled,\r\n label = Tr('cpv_code'),\r\n skipCheckTouched\r\n }) {\r\n\r\n const [openSelectCPV, setOpenSelectCPV] = useState(false)\r\n\r\n const handleClick = () => {\r\n setOpenSelectCPV(true)\r\n formikProps.setFieldTouched(id, true)\r\n }\r\n\r\n const handleClosePoup = () => {\r\n setOpenSelectCPV(false)\r\n formikProps.setFieldTouched(id, true)\r\n }\r\n\r\n const handleConfirm = (values) => {\r\n const elements = Object.keys(values).reduce((prevValue, currValue) => {\r\n if (!values[currValue]) return prevValue;\r\n return [\r\n ...prevValue,\r\n JSON.parse(currValue)\r\n ]\r\n }, [])\r\n handleClosePoup();\r\n formikProps.setFieldValue(id, elements[0])\r\n }\r\n\r\n const element = getObjectValue(id, formikProps.values, null)\r\n const errorValue = getObjectValue(id, formikProps.errors, '')\r\n const touched = getObjectValue(id, formikProps.touched, !!skipCheckTouched)\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const errorLabel = touched && errorValue ? errorValue : ' '\r\n\r\n\r\n const handleDelete = () => {\r\n formikProps.setFieldValue(id, null);\r\n }\r\n\r\n return (\r\n \r\n \r\n {label} {required && '*'}\r\n \r\n \r\n {editable && !disabled && }\r\n\r\n \r\n {!!element && handleDelete() : undefined}\r\n />\r\n }\r\n \r\n\r\n \r\n \r\n {errorLabel}\r\n
\r\n )\r\n}\r\n\r\nCPVSingleInput.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(CPVSingleInput);","import React, {useContext} from \"react\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\nimport CPVInput from \"components/CPVInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport CPVSingleInput from \"components/CPVSingleInput\";\r\n\r\nfunction NoticeCpvInput\r\n({\r\n id,\r\n label,\r\n formikProps,\r\n disabled,\r\n required,\r\n multiple\r\n }) {\r\n const {formTr, formTip} = useContext(FormTranslationContext)\r\n const tip = formTip(label ? label : id);\r\n\r\n\r\n const input = multiple ? : \r\n\r\n if (tip)\r\n return \r\n {input}\r\n \r\n return input;\r\n\r\n\r\n}\r\n\r\nexport default NoticeCpvInput;","import React, {useContext} from \"react\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport DatePicker from \"components/DatePicker\";\r\n\r\nfunction NoticeDateInput\r\n({\r\n id,\r\n formikProps,\r\n required\r\n }) {\r\n const {formTr, formTip} = useContext(FormTranslationContext)\r\n const tip = formTip(id);\r\n\r\n\r\n const input = \r\n\r\n if (tip)\r\n return \r\n {input}\r\n \r\n return input;\r\n\r\n\r\n}\r\n\r\nexport default NoticeDateInput;","import React, {useContext} from 'react'\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport NoticeCpvInput from \"../../components/inputs/NoticeCpvInput\";\r\nimport NoticeYesNoInput from \"../../components/inputs/NoticeYesNoInput\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport NoticeDateInput from \"../../components/inputs/NoticeDateInput\";\r\nimport NoticeNumericInput from \"../../components/inputs/NoticeNumericInput\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\n\r\nfunction OrderObjectNotDivided(\r\n {\r\n id,\r\n formikProps,\r\n realizationType\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const {getDict} = useContext(FormTranslationContext)\r\n const realizationPeriod = gVal(\"realizationPeriod\");\r\n const orderType = gVal(\"form.orderObject.orderType\", false, null)\r\n\r\n return (<>\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\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\nOrderObjectNotDivided.propTypes = {};\r\n\r\nexport default OrderObjectNotDivided;\r\n","import React, {useMemo} from 'react'\r\nimport Select, {createSelectItem} from \"components/Select\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport ArrowIconLeft from \"@material-ui/icons/KeyboardArrowLeft\";\r\nimport ArrowIconRight from \"@material-ui/icons/KeyboardArrowRight\";\r\nimport {Paper} from \"@material-ui/core\";\r\nimport Button from \"../../../Button\";\r\nimport PlusOneIcon from \"@material-ui/icons/PlusOne\";\r\nimport getObjectValue from \"../../../../libs/getObjectValue\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n position: 'sticky',\r\n zIndex: theme.zIndex.appBar - 1,\r\n top: 162,\r\n marginBottom: theme.spacing(2),\r\n marginLeft: theme.spacing(),\r\n marginRight: theme.spacing(),\r\n },\r\n paper: {\r\n border: `solid 2px ${theme.palette.border.dark}`,\r\n padding: theme.spacing(0.25)\r\n },\r\n select: {\r\n minWidth: 250\r\n },\r\n margin: {\r\n margin: `0 ${theme.spacing()}px`\r\n }\r\n}))\r\n\r\nfunction DealingsNavigator(\r\n {\r\n formikProps,\r\n id,\r\n items,\r\n addPart\r\n }) {\r\n const classes = useStyle();\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const passive = getObjectValue('_passive', formikProps.values, false);\r\n const onlyNotice = getObjectValue('_onlyNotice', formikProps.values, false);\r\n const updateNotice = getObjectValue('_updateNotice', formikProps.values, true);\r\n // eslint-disable-next-line\r\n const memoItems = useMemo(() => {\r\n const arr = items.map((x, i, arr) => createSelectItem(i, Tr(\"part_x\", {x: i + 1})));\r\n arr.unshift(createSelectItem(-1, Tr('choose_position')));\r\n return arr;\r\n }, [items])\r\n\r\n const curIndex = formikProps.values[id];\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n -1 ? Tr(\"part_x\", {x: curIndex}) : Tr('select')}\r\n variant=\"outlined\"\r\n onClick={() => formikProps.setFieldValue(id, curIndex - 1)}\r\n Icon={ArrowIconLeft}/>\r\n \r\n formikProps.setFieldValue(id, curIndex + 1)}\r\n Icon={ArrowIconRight}/>\r\n \r\n {(onlyNotice || passive) && !!addPart && }\r\n \r\n \r\n
)\r\n}\r\n\r\nDealingsNavigator.propTypes = {};\r\n\r\nexport default DealingsNavigator;\r\n","import React, {useContext} from 'react'\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport NoticeCpvInput from \"../../components/inputs/NoticeCpvInput\";\r\nimport NoticeYesNoInput from \"../../components/inputs/NoticeYesNoInput\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport NoticeDateInput from \"../../components/inputs/NoticeDateInput\";\r\nimport NoticeNumericInput from \"../../components/inputs/NoticeNumericInput\";\r\nimport NoticeTypography from \"../../components/inputs/NoticeTypography\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport ExposureNeg1Icon from \"@material-ui/icons/ExposureNeg1\";\r\nimport Tr from \"translations/Translations\";\r\n\r\n\r\nfunction OrderObjectDivided(\r\n {\r\n id,\r\n formikProps,\r\n realizationType,\r\n index,\r\n removePart\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const passive = getObjectValue('_passive', formikProps.values, false);\r\n const onlyNotice = getObjectValue('_onlyNotice', formikProps.values, false);\r\n const updateNotice = getObjectValue('_updateNotice', formikProps.values, true);\r\n const {getDict} = useContext(FormTranslationContext)\r\n const includesOptions = gVal(\"includesOptions\");\r\n const realizationPeriod = gVal(\"realizationPeriod\");\r\n const orderType = gVal(\"form.orderObject.orderType\", false, null)\r\n\r\n return (<>\r\n \r\n : {index + 1}\r\n {(onlyNotice || passive) && }\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\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\nOrderObjectDivided.propTypes = {};\r\n\r\nexport default OrderObjectDivided;\r\n","import React from 'react'\r\nimport DealingsNavigator from \"../../components/DealingsNavigator\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport {FieldArray} from \"formik\";\r\nimport OrderObjectDividedList from \"./OrderObjectDividedList\";\r\n\r\n\r\nfunction OrderObjectDivided(\r\n {\r\n id,\r\n formikProps,\r\n realizationType\r\n }) {\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const curIndex = gVal(\"orderDealing\", false, -1);\r\n\r\n const addPart = (arrayHelpers) => {\r\n const arr = gVal(\"divided\", true, []);\r\n arrayHelpers.push({\r\n \"dealingValue\": null,\r\n \"dealingValueCurrency\": null,\r\n \"purchaserNeedsDescription\": null,\r\n \"innovationProductNeed\": null,\r\n \"orderSubjectDescription\": null,\r\n \"mainCpv\": null,\r\n \"additionalCpv\": null,\r\n \"includesOptions\": null,\r\n \"includesOptionsInfo\": null,\r\n \"realizationPeriod\": null,\r\n \"realizationPeriodDateFrom\": null,\r\n \"realizationPeriodDateTo\": null,\r\n \"realizationPeriodAmount\": null,\r\n \"planRenewals\": null,\r\n \"planRenewalsInfo\": null,\r\n \"planOtherOrderForCurrentSupplier\": null,\r\n \"planOtherOrderForCurrentSupplierInfo\": null\r\n });\r\n formikProps.setFieldValue(gId(\"dealingCount\"), arr.length + 1);\r\n }\r\n\r\n const removePart = (arrayHelpers, index) => {\r\n const arr = gVal(\"divided\", true, []);\r\n formikProps.setFieldValue(gId(\"dealingCount\"), arr.length - 1)\r\n formikProps.setFieldValue(\"orderDealing\", -1)\r\n arrayHelpers.remove(index);\r\n }\r\n\r\n return ( (<>\r\n addPart(arrayHelpers)}\r\n />\r\n {curIndex > -1 &&\r\n removePart(arrayHelpers, index)}\r\n />\r\n }\r\n\r\n >)}\r\n />)\r\n}\r\n\r\nOrderObjectDivided.propTypes = {};\r\n\r\nexport default OrderObjectDivided;\r\n","import React, {useContext} from 'react'\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport NoticeYesNoInput from \"../../components/inputs/NoticeYesNoInput\";\r\nimport NoticeNumericInput from \"../../components/inputs/NoticeNumericInput\";\r\nimport NoticeIntegerInput from \"../../components/inputs/NoticeIntegerInput\";\r\nimport OrderObjectNotDivided from \"./OrderObjectNotDivided\";\r\nimport OrderObjectDivided from \"./OrderObjectDivided\";\r\nimport Typography from \"components/Typography\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nfunction OrderObjectData(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const {getDict} = useContext(FormTranslationContext)\r\n const updateNotice = getObjectValue('_updateNotice', formikProps.values, true);\r\n const basicDataRefersTo = gVal(\"form.basicData.refersTo\", false);\r\n const realizationType = basicDataRefersTo === \"Order\" ? gVal(\"form.realizationType.orderRealizationType\", false) : (basicDataRefersTo === \"FrameworkAgreement\" ? gVal(\"form.realizationType.frameworkRealizationType\", false) : null)\r\n\r\n return (<>\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n To pole uzupełniane jest automatycznie poprzez dodawanie kolejnych części poniżej\r\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\nOrderObjectData.propTypes = {};\r\n\r\nexport default OrderObjectData;\r\n","import React, {useContext} from 'react'\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport NoticeYesNoInput from \"../../components/inputs/NoticeYesNoInput\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\n\r\nfunction QualificationData(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const {getDict} = useContext(FormTranslationContext)\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\r\n \r\n\r\n >)\r\n}\r\n\r\nQualificationData.propTypes = {};\r\n\r\nexport default QualificationData;\r\n","import React from 'react'\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport NoticeYesNoInput from \"../../components/inputs/NoticeYesNoInput\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\n\r\nfunction ObjectiveEvidenceData(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\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\nObjectiveEvidenceData.propTypes = {};\r\n\r\nexport default ObjectiveEvidenceData;\r\n","import React, {useContext} from 'react'\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeYesNoInput from \"../../components/inputs/NoticeYesNoInput\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\n\r\nfunction OrderTermsData(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const {getDict} = useContext(FormTranslationContext)\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\r\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\nOrderTermsData.propTypes = {};\r\n\r\nexport default OrderTermsData;\r\n","import React, {useContext} from 'react'\r\nimport NoticeYesNoInput from \"../../components/inputs/NoticeYesNoInput\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\n\r\nfunction ContractDraftData(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const {getDict} = useContext(FormTranslationContext)\r\n\r\n return (<>\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n >)\r\n}\r\n\r\nContractDraftData.propTypes = {};\r\n\r\nexport default ContractDraftData;\r\n","import React, {useContext, useEffect} from 'react'\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport NoticeYesNoInput from \"../../components/inputs/NoticeYesNoInput\";\r\nimport NoticeNumericInput from \"../../components/inputs/NoticeNumericInput\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nfunction OrderDetailsFrameworkAgreement(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const {getDict} = useContext(FormTranslationContext)\r\n\r\n useEffect(() => {\r\n if (getObjectValue(id, formikProps.values, null) == null) {\r\n formikProps.setFieldValue(id, {})\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n return (<>\r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n >)\r\n}\r\n\r\nOrderDetailsFrameworkAgreement.propTypes = {};\r\n\r\nexport default OrderDetailsFrameworkAgreement;\r\n","import React, {useContext} from 'react'\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeTypography from \"../../components/inputs/NoticeTypography\";\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport NoticeNumericInput from \"../../components/inputs/NoticeNumericInput\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport ExposureNeg1Icon from \"@material-ui/icons/ExposureNeg1\";\r\nimport Tr from \"translations/Translations\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nfunction OrderDetailsLotCriterion(\r\n {\r\n id,\r\n formikProps,\r\n index,\r\n criterion,\r\n criteriaEvaluationStrategy,//RKT-2275\r\n criteriaWeightStrategy,//@CriteriaWeightStrategy\r\n removeCriterion\r\n }) {\r\n const gId = (name) => id + \".\" + name;\r\n const {getDict} = useContext(FormTranslationContext)\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const passive = getObjectValue('_passive', formikProps.values, false);\r\n const onlyNotice = getObjectValue('_onlyNotice', formikProps.values, false);\r\n\r\n const deleteAvailable = editable && criterion.type === \"QUALITY\" && (\r\n (criteriaEvaluationStrategy === \"7\" && index > 0) ||\r\n ((criteriaEvaluationStrategy === \"4\" || criteriaEvaluationStrategy === \"5\") && index > 1) ||\r\n (criteriaEvaluationStrategy === \"6\" && index > 2)\r\n )\r\n\r\n return (<>\r\n \r\n : {index + 1}\r\n {(onlyNotice || passive) && }\r\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\nOrderDetailsLotCriterion.propTypes = {};\r\n\r\nexport default OrderDetailsLotCriterion;\r\n","import React, {useContext} from 'react'\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport NoticeTypography from \"../../components/inputs/NoticeTypography\";\r\nimport NoticeYesNoInput from \"../../components/inputs/NoticeYesNoInput\";\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport {FieldArray} from \"formik\";\r\nimport OrderDetailsLotCriterion from \"./OrderDetailsLotCriterion\";\r\nimport Button from \"components/Button\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PlusOneIcon from \"@material-ui/icons/PlusOne\";\r\nimport Tr from \"translations/Translations\";\r\n\r\n\r\nexport const CRITERION_TYPE = {\r\n PRICE: {type: \"PRICE\", criterionName: \"Cena\", criterionPctgWeight: null, criterionPktWeight: null, criterionOrder: null},\r\n COST: {type: \"COST\", criterionName: \"Koszt\", criterionPctgWeight: null, criterionPktWeight: null, criterionOrder: null},\r\n QUALITY: {type: \"QUALITY\", criterionName: \"\", criterionPctgWeight: null, criterionPktWeight: null, criterionOrder: null}\r\n}\r\n\r\nexport const getDefaultCriteria = (strategy) => {\r\n let newCriterions;\r\n switch (strategy) {\r\n case \"1\":\r\n newCriterions = [CRITERION_TYPE.PRICE]\r\n break;\r\n case \"2\":\r\n newCriterions = [CRITERION_TYPE.COST]\r\n break;\r\n case \"3\":\r\n newCriterions = [CRITERION_TYPE.PRICE, CRITERION_TYPE.COST]\r\n break;\r\n case \"4\":\r\n newCriterions = [CRITERION_TYPE.PRICE, CRITERION_TYPE.QUALITY]\r\n break;\r\n case \"5\":\r\n newCriterions = [CRITERION_TYPE.COST, CRITERION_TYPE.QUALITY]\r\n break;\r\n case \"6\":\r\n newCriterions = [CRITERION_TYPE.PRICE, CRITERION_TYPE.COST, CRITERION_TYPE.QUALITY]\r\n break;\r\n case \"7\":\r\n newCriterions = [CRITERION_TYPE.QUALITY]\r\n break;\r\n default:\r\n newCriterions = [];\r\n }\r\n return newCriterions;\r\n}\r\n\r\nfunction OrderDetailsPrimaryLot(\r\n {\r\n id,\r\n formikProps,\r\n lotNumber,\r\n realizationTypeX11,\r\n realizationTypeX12,\r\n realizationTypeX13\r\n }) {\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const passive = getObjectValue('_passive', formikProps.values, false);\r\n const onlyNotice = getObjectValue('_onlyNotice', formikProps.values, false);\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const {getDict} = useContext(FormTranslationContext)\r\n\r\n const changeCriteriaEvaluationStrategy = (strategy) => {\r\n const newCriterions = getDefaultCriteria(strategy);\r\n formikProps.setFieldValue(gId(\"criteria\"), newCriterions);\r\n }\r\n\r\n const removeCriterion = (arrayHelpers, index) => {\r\n arrayHelpers.remove(index);\r\n }\r\n\r\n const addCriterion = (arrayHelpers) => {\r\n arrayHelpers.push(CRITERION_TYPE.QUALITY);\r\n }\r\n const addAvailable = (onlyNotice || passive) && [\"4\", \"5\", \"6\", \"7\"].includes(gVal(\"criteriaEvaluationStrategy\"));\r\n return (<>\r\n {!!lotNumber && : {lotNumber}}\r\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 gVal(\"criteria\", true, [])\r\n .map((x, i) => ( removeCriterion(arrayHelpers, i)}\r\n />))\r\n }\r\n {addAvailable &&\r\n \r\n \r\n \r\n }\r\n\r\n >)}\r\n />\r\n\r\n >)\r\n}\r\n\r\nOrderDetailsPrimaryLot.propTypes = {};\r\n\r\nexport default OrderDetailsPrimaryLot;\r\n","import React, {useContext} from \"react\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\n\r\nfunction NoticeDateTimeInput\r\n({\r\n id,\r\n formikProps,\r\n className,\r\n required\r\n }) {\r\n const {formTr, formTip} = useContext(FormTranslationContext)\r\n const tip = formTip(id);\r\n\r\n\r\n const input = \r\n\r\n if (tip)\r\n return \r\n {input}\r\n \r\n return input;\r\n\r\n\r\n}\r\n\r\nexport default NoticeDateTimeInput;","import React, {useContext} from 'react'\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport NoticeNumericInput from \"../../components/inputs/NoticeNumericInput\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport NoticeDateTimeInput from \"../../components/inputs/NoticeDateTimeInput\";\r\nimport NoticeDateInput from \"../../components/inputs/NoticeDateInput\";\r\nimport NoticeTypography from \"../../components/inputs/NoticeTypography\";\r\n\r\nfunction OrderDetailsPrimary(\r\n {\r\n id,\r\n formikProps,\r\n realizationTypeX11,\r\n realizationTypeX12,\r\n realizationTypeX13\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const {getDict} = useContext(FormTranslationContext)\r\n\r\n return (<>\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n >)\r\n}\r\n\r\nOrderDetailsPrimary.propTypes = {};\r\n\r\nexport default OrderDetailsPrimary;\r\n","import React from 'react'\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport NoticeNumericInput from \"../../components/inputs/NoticeNumericInput\";\r\nimport NoticeDateTimeInput from \"../../components/inputs/NoticeDateTimeInput\";\r\nimport NoticeTypography from \"../../components/inputs/NoticeTypography\";\r\nimport NoticeYesNoInput from \"../../components/inputs/NoticeYesNoInput\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n },\r\n dateTimeInput: {\r\n \"width\": 600\r\n }\r\n}))\r\n\r\nfunction OrderDetailsPartnership(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n const classes = useStyle();\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n\r\n return (<>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n >)\r\n}\r\n\r\nOrderDetailsPartnership.propTypes = {};\r\n\r\nexport default OrderDetailsPartnership;\r\n","import React, {useContext} from 'react'\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport NoticeTypography from \"../../components/inputs/NoticeTypography\";\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\nimport NoticeGlossaryInput from \"../../components/inputs/NoticeGlossaryInput\";\r\nimport {FieldArray} from \"formik\";\r\nimport OrderDetailsLotCriterion from \"./OrderDetailsLotCriterion\";\r\nimport Button from \"components/Button\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PlusOneIcon from \"@material-ui/icons/PlusOne\";\r\nimport Tr from \"translations/Translations\";\r\n\r\n\r\nexport const CRITERION_TYPE = {\r\n PRICE: {type: \"PRICE\", criterionName: \"Cena\", criterionPctgWeight: null, criterionPktWeight: null, criterionOrder: null},\r\n COST: {type: \"COST\", criterionName: \"Koszt\", criterionPctgWeight: null, criterionPktWeight: null, criterionOrder: null},\r\n QUALITY: {type: \"QUALITY\", criterionName: \"\", criterionPctgWeight: null, criterionPktWeight: null, criterionOrder: null}\r\n}\r\n\r\nexport const getDefaultCriteria = (strategy) => {\r\n let newCriterions;\r\n switch (strategy) {\r\n case \"1\":\r\n newCriterions = [CRITERION_TYPE.PRICE]\r\n break;\r\n case \"2\":\r\n newCriterions = [CRITERION_TYPE.COST]\r\n break;\r\n case \"3\":\r\n newCriterions = [CRITERION_TYPE.PRICE, CRITERION_TYPE.COST]\r\n break;\r\n case \"4\":\r\n newCriterions = [CRITERION_TYPE.PRICE, CRITERION_TYPE.QUALITY]\r\n break;\r\n case \"5\":\r\n newCriterions = [CRITERION_TYPE.COST, CRITERION_TYPE.QUALITY]\r\n break;\r\n case \"6\":\r\n newCriterions = [CRITERION_TYPE.PRICE, CRITERION_TYPE.COST, CRITERION_TYPE.QUALITY]\r\n break;\r\n case \"7\":\r\n newCriterions = [CRITERION_TYPE.QUALITY]\r\n break;\r\n default:\r\n newCriterions = [];\r\n }\r\n return newCriterions;\r\n}\r\n\r\nfunction OrderDetailsPartnershipLot(\r\n {\r\n id,\r\n formikProps,\r\n lotNumber\r\n }) {\r\n\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const passive = getObjectValue('_passive', formikProps.values, false);\r\n const onlyNotice = getObjectValue('_onlyNotice', formikProps.values, false);\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n const {getDict} = useContext(FormTranslationContext)\r\n\r\n const changeCriteriaEvaluationStrategy = (strategy) => {\r\n const newCriterions = getDefaultCriteria(strategy);\r\n formikProps.setFieldValue(gId(\"criteria\"), newCriterions);\r\n }\r\n\r\n const removeCriterion = (arrayHelpers, index) => {\r\n arrayHelpers.remove(index);\r\n }\r\n\r\n const addCriterion = (arrayHelpers) => {\r\n arrayHelpers.push(CRITERION_TYPE.QUALITY);\r\n }\r\n const addAvailable = (onlyNotice || passive) && [\"4\", \"5\", \"6\", \"7\"].includes(gVal(\"criteriaEvaluationStrategy\"));\r\n return (<>\r\n {!!lotNumber && : {lotNumber}}\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n (<>\r\n {\r\n gVal(\"criteria\", true, [])\r\n .map((x, i) => ( removeCriterion(arrayHelpers, i)}\r\n />))\r\n }\r\n {addAvailable &&\r\n \r\n \r\n \r\n }\r\n\r\n >)}\r\n />\r\n\r\n >)\r\n}\r\n\r\nOrderDetailsPartnershipLot.propTypes = {};\r\n\r\nexport default OrderDetailsPartnershipLot;\r\n","import React from 'react'\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport OrderDetailsFrameworkAgreement from \"./OrderDetailsFrameworkAgreement\";\r\nimport {FieldArray} from \"formik\";\r\nimport DealingsNavigator from \"../../components/DealingsNavigator\";\r\nimport OrderDetailsPrimaryLot from \"./OrderDetailsPrimaryLot\";\r\nimport OrderDetailsPrimary from \"./OrderDetailsPrimary\";\r\nimport OrderDetailsPartnership from \"./OrderDetailsPartnership\";\r\nimport OrderDetailsPartnershipLot from \"./OrderDetailsPartnershipLot\";\r\n\r\n\r\nfunction OrderDetailsData(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n const gVal = (name, prefix = true, defaultVal = null) => getObjectValue(prefix ? gId(name) : name, formikProps.values, defaultVal);\r\n\r\n const basicDataRefersTo = gVal(\"form.basicData.refersTo\", false);\r\n const partialOffers = gVal(\"form.orderObject.partialOffers\", false);\r\n const realizationType = basicDataRefersTo === \"Order\" ? gVal(\"form.realizationType.orderRealizationType\", false) : (basicDataRefersTo === \"FrameworkAgreement\" ? gVal(\"form.realizationType.frameworkRealizationType\", false) : null)\r\n\r\n const realization_x_1_1 = (basicDataRefersTo === \"Order\" && realizationType === \"1.1.1\") || (basicDataRefersTo === \"FrameworkAgreement\" && realizationType === \"11.1.1\");\r\n const realization_x_1_2 = (basicDataRefersTo === \"Order\" && realizationType === \"1.1.2\") || (basicDataRefersTo === \"FrameworkAgreement\" && realizationType === \"11.1.2\");\r\n const realization_x_1_3 = (basicDataRefersTo === \"Order\" && realizationType === \"1.1.3\") || (basicDataRefersTo === \"FrameworkAgreement\" && realizationType === \"11.1.3\");\r\n const realization_1_2 = (basicDataRefersTo === \"Order\" && realizationType === \"1.2\") || (basicDataRefersTo === \"FrameworkAgreement\" && realizationType === \"11.2\");\r\n\r\n const curPrimaryDealingIndex = gVal(\"primaryDealing\", false, -1);\r\n const curPartnershipDealingIndex = gVal(\"partnershipDealing\", false, -1);\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 {curPrimaryDealingIndex > -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 \r\n \r\n\r\n \r\n (<>\r\n \r\n {curPartnershipDealingIndex > -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 >)\r\n}\r\n\r\nOrderDetailsData.propTypes = {};\r\n\r\nexport default OrderDetailsData;\r\n","import React from 'react'\r\nimport NoticeTextInput from \"../../components/inputs/NoticeTextInput\";\r\n\r\n\r\nfunction AdditionalInfoData(\r\n {\r\n id,\r\n formikProps\r\n }) {\r\n\r\n const gId = (name) => id + \".\" + name;\r\n\r\n return (<>\r\n \r\n >)\r\n}\r\n\r\nAdditionalInfoData.propTypes = {};\r\n\r\nexport default AdditionalInfoData;\r\n","import React, {useEffect, useMemo, useReducer, useState} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport PropTypes from \"prop-types\";\r\nimport Form from \"components/Form\";\r\nimport Loading from \"components/Loading\";\r\nimport BasicData from \"./components/BasicData\";\r\nimport PurchaserData from \"./components/PurchaserData\";\r\nimport FormNavigator from \"../components/FormNavigator\";\r\nimport {contractNoticeStepsOrder} from \"./contractNoticeSteps\";\r\nimport contractNoticeValidation from \"./contractNoticeValidation\";\r\nimport {Collapse, Typography} from \"@material-ui/core\";\r\nimport RealizationTypeData from \"./components/RealizationTypeData\";\r\nimport DocumentsAccessData from \"./components/DocumentsAccessData\";\r\nimport OrderObjectData from \"./components/OrderObjectData\";\r\nimport QualificationData from \"./components/QualificationData\";\r\nimport ObjectiveEvidenceData from \"./components/ObjectiveEvidenceData\";\r\nimport OrderTermsData from \"./components/OrderTermsData\";\r\nimport ContractDraftData from \"./components/ContractDraftData\";\r\nimport OrderDetailsData from \"./components/OrderDetailsData\";\r\nimport AdditionalInfoData from \"./components/AdditionalInfoData\";\r\nimport NationalNoticeService from \"services/NationalNoticeService\";\r\nimport Tr from \"translations/Translations\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport NationalNoticeStatus from \"../constants/NationalNoticeStatus\";\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport RouterPath, {createPath} from \"libs/RouterPath\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Section from \"pages/purchaser/MyProcedure/scenes/part2/components/Section\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport _ from \"lodash\";\r\n\r\nfunction getKey(id) {\r\n const split = id.split(\".\").filter(x => !/^\\d+$/.test(x));\r\n split[0] = 'contractNotice';\r\n return split.join(\".\");\r\n}\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n collapse: {\r\n marginTop: theme.spacing(3)\r\n },\r\n info: {\r\n textAlign: \"center\",\r\n fontWeight: \"bold\",\r\n marginTop: theme.spacing(2),\r\n cursor: \"pointer\"\r\n }\r\n}))\r\n\r\nfunction ContractNoticeForm(\r\n {\r\n demandId,\r\n demandHeader\r\n }) {\r\n const classes = useStyle();\r\n const FORM_ID = \"ContractNotice\";\r\n const {enqueueSuccessSnackbar, enqueueErrorSnackbar} = useSnackbar();\r\n const [confirmRemove, setConfirmRemove] = useState(false);\r\n const [loaded, setLoaded] = useState(false);\r\n const [initData, setInitData] = useState(null);\r\n const [dictionaries, setDictionaries] = useState(null);\r\n const [translations, setTranslations] = useState(null);\r\n\r\n // eslint-disable-next-line\r\n const modification = useMemo(() => isDemandModification(), [demandHeader]);\r\n const [buttonWorks, dispatchButtonWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n save: false,\r\n draft: false\r\n });\r\n\r\n const formTr = (id) => {\r\n const key = getKey(id);\r\n return translations.labels[key] || key;\r\n }\r\n const formTip = (id) => {\r\n const key = getKey(id);\r\n return translations.tips[key];\r\n }\r\n\r\n const getDict = (id) => {\r\n return dictionaries[id].items;\r\n }\r\n\r\n const getDynamicDict = (id) => {\r\n return initData.dictionaries?.[id]?.items || [];\r\n }\r\n\r\n const loadDynamicDictionaries = async () => {\r\n try {\r\n const resp = await NationalNoticeService.getContractNoticeDynamicDictionaries(demandId);\r\n if(resp) {\r\n setInitData(x => ({...x, dictionaries: {...x.dictionaries, ...resp}}))\r\n return resp;\r\n }\r\n } catch (e) {\r\n enqueueErrorSnackbar(Tr(\"unknown_error_message\"));\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n Promise.all([\r\n NationalNoticeService.getContractNotice(demandId),\r\n NationalNoticeService.getContractNoticeDictionaries(demandId),\r\n NationalNoticeService.getContractNoticeTranslations(demandId)])\r\n .then(values => {\r\n setInitData(values[0]);\r\n setDictionaries(values[1]);\r\n setTranslations(values[2]);\r\n }).then(() => setLoaded(true))\r\n\r\n\r\n }, [demandId])\r\n\r\n const handleSave = (formikProps) => {\r\n formikProps.setFieldValue(\"_editable\", false);\r\n dispatchButtonWorks({type: 'draft', works: true});\r\n NationalNoticeService.saveContractNoticeDraft(demandId, formikProps.values)\r\n .then((resp) => {\r\n if (!!resp) {\r\n enqueueSuccessSnackbar(Tr(\"saved_draft\"));\r\n setInitData(x => ({...x, ...resp}))\r\n } else {\r\n throw new Error();\r\n }\r\n })\r\n .catch(() => enqueueErrorSnackbar(Tr(\"unknown_error_message\")))\r\n .finally(() => {\r\n formikProps.setFieldValue(\"_editable\", true);\r\n dispatchButtonWorks({type: 'draft', works: false});\r\n })\r\n }\r\n\r\n const handleSubmit = (formikProps) => {\r\n (async () => {\r\n try {\r\n const casted = await contractNoticeValidation().validate(formikProps.values, {abortEarly: false})\r\n //const casted = contractNoticeValidation().cast(formikProps.values);\r\n formikProps.setFieldValue(\"_editable\", false)\r\n dispatchButtonWorks({type: 'save', works: true});\r\n NationalNoticeService.saveContractNotice(demandId, casted)\r\n .then((resp) => {\r\n if (resp.success) {\r\n enqueueSuccessSnackbar(Tr(\"saved\"))\r\n setInitData(x => ({...x, ...resp.result}))\r\n } else {\r\n const keys = Object.keys(resp.errors);\r\n let message;\r\n if(Array.isArray()){\r\n message = resp.errors[keys[0]][0];\r\n } else if(_.isString(resp.errors[keys[0]])) {\r\n message = resp.errors[keys[0]];\r\n } else {\r\n message = Tr(\"unknown_error_message\")\r\n }\r\n\r\n navigateToError(keys[0], message, formikProps, true)\r\n }\r\n })\r\n .catch(() => enqueueErrorSnackbar(Tr(\"unknown_error_message\")))\r\n .finally(() => {\r\n formikProps.setFieldValue(\"_editable\", true);\r\n dispatchButtonWorks({type: 'save', works: false});\r\n })\r\n } catch (e) {\r\n navigateToError(e.inner[0].path, e.inner[0].message, formikProps);\r\n }\r\n })()\r\n }\r\n\r\n const navigateToError = (errorpath, message, formikProps, setError) => {\r\n\r\n const formikPath = errorpath.replaceAll(\"[\", \".\").replaceAll(\"]\", \"\");\r\n if (setError) {\r\n formikProps.setFieldTouched(formikPath, true);\r\n formikProps.setFieldError(formikPath, message);\r\n }\r\n\r\n const path = errorpath.split(\".\");\r\n enqueueErrorSnackbar({message}{\": \" + formTr(path.map(x => x.replace(/\\[(.*)\\]/g, '')).join(\".\"))})\r\n formikProps.setFieldValue(\"step\", path[1]);\r\n if (path.length > 2) {\r\n if (path[1] === \"orderObject\" && path[2].startsWith(\"divided[\")) {\r\n formikProps.setFieldValue(\"orderDealing\", parseInt(path[2].replace(/\\D/g, '')));\r\n } else if (path[1] === \"orderDetails\" && path[2].startsWith(\"primaryLots[\")) {\r\n formikProps.setFieldValue(\"primaryDealing\", parseInt(path[2].replace(/\\D/g, '')));\r\n } else if (path[1] === \"orderDetails\" && path[2].startsWith(\"partnershipLots[\")) {\r\n formikProps.setFieldValue(\"partnershipDealing\", parseInt(path[2].replace(/\\D/g, '')));\r\n }\r\n }\r\n setTimeout((p) => scrollTo('[data-id=\"' + p + '\"]', 100), 100, formikPath)\r\n }\r\n\r\n const createNewVersion = () => {\r\n setLoaded(false);\r\n setInitData(null);\r\n NationalNoticeService.createNewContractNoticeVersion(demandId).then((resp) => setInitData(resp)).then(() => setLoaded(true));\r\n }\r\n\r\n const deleteLastVersion = () => {\r\n setConfirmRemove(false)\r\n setLoaded(false);\r\n setInitData(null);\r\n\r\n (async () => {\r\n try {\r\n await NationalNoticeService.deleteLastContractNoticeVersion(demandId);\r\n const resp = await NationalNoticeService.getContractNotice(demandId);\r\n setInitData(resp);\r\n } catch (e) {\r\n }\r\n setLoaded(true);\r\n })();\r\n }\r\n\r\n\r\n if (!loaded) return \r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nContractNoticeForm.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired\r\n};\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader\r\n}), {})(ContractNoticeForm);\r\n","import React from 'react'\r\nimport PropTypes from \"prop-types\";\r\nimport Workspace from \"components/Workspace\";\r\nimport PapersGeneratorXmpUzpPresidentPaperContent from \"components/complex/papersGenerator/customPopups/xmpUzpPresidentPaper/PapersGeneratorXmpUzpPresidentPaperContent\";\r\n\r\nfunction XmlUzpPresidentPaper(\r\n {\r\n demandId\r\n }) {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nXmlUzpPresidentPaper.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired\r\n};\r\n\r\nexport default XmlUzpPresidentPaper;\r\n","import React from 'react'\r\nimport PropTypes from \"prop-types\";\r\nimport ContractNoticeForm from \"./contractNotice/ContractNoticeForm\";\r\nimport XmlUzpPresidentPaper from \"./xmlUzpPresidentPaper/XmlUzpPresidentPaper\";\r\n\r\n\r\nfunction NationalNoticePage(\r\n {\r\n demandId,\r\n formType\r\n }) {\r\n\r\n switch (formType) {\r\n case \"xmlUzpPresidentPaper\":\r\n return \r\n default:\r\n return \r\n }\r\n}\r\n\r\nNationalNoticePage.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n formType: PropTypes.string.isRequired\r\n};\r\n\r\nexport default NationalNoticePage;\r\n","import React from 'react'\r\nimport Workspace from \"components/Workspace\";\r\nimport NationalNoticePage from \"components/complex/nationalNotice/NationalNoticePage\";\r\n\r\nfunction NationalNoticePanel(\r\n {\r\n match\r\n }) {\r\n\r\n const demandId = match.params.id;\r\n const formType = match.params.formType;\r\n\r\n return (\r\n <>\r\n \r\n \r\n >}\r\n />\r\n >\r\n )\r\n}\r\n\r\n\r\nexport default NationalNoticePanel;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport { Switch, Route } from 'react-router-dom';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport Part1 from './part1/Part1'\r\nimport Part2 from './part2/Part2'\r\nimport Part3 from \"./part3/Part3\";\r\nimport Part4 from \"./part4/Part4\";\r\nimport CorrespondencePanel from \"./correspondence/CorrespondencePanel\";\r\nimport EmailListPanel from \"./emailList/EmailListPanel\";\r\nimport NationalNoticePanel from \"./nationalNotice/NationalNoticePanel\";\r\n\r\nconst rp = RouterPath.myProcedure.steps;\r\n\r\nfunction PartsRouter() {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nPartsRouter.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nPartsRouter.defaultProps = {\r\n}\r\n\r\nexport default PartsRouter;","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types'\r\nimport clsx from 'clsx';\r\nimport {connect} from 'react-redux'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tminHeight: `calc(100vh - ${theme.mixins.toolbar.minHeight}px)`,\r\n\t\tmarginLeft: theme.components.navigation.margin.left,\r\n\t\ttransition: theme.transitions.default.close('margin-left'),\r\n\t\tdisplay: 'flex',\r\n\t\tflexDirection: 'column',\r\n\r\n\t},\r\n\tmenuMargin: {\r\n\t\tmarginLeft: theme.components.navigation.width,\r\n\t\ttransition: theme.transitions.default.open('margin-left'),\r\n\t},\r\n\tcontainer: {\r\n\t\t// padding: theme.spacing(2),\r\n\t\tflexGrow: 1,\r\n\t}\r\n})\r\n\r\nfunction Page({\r\n\tchildren,\r\n\tclassName,\r\n\tclasses,\r\n\tisMenuOpen,\r\n\tfloatingWorkspace\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t{children}\r\n\t\t\t
\r\n\t\t
\r\n\t)\r\n}\r\n\r\nPage.propTypes = {\r\n\tinfoBarData: PropTypes.shape({\r\n\t\ttitle: PropTypes.string.isRequired,\r\n\t}),\r\n\tfloatingWorkspace: PropTypes.bool,\r\n}\r\n\r\nPage.propDefault = {\r\n\tfloatingWorkspace: false,\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tisMenuOpen: state.store.isMenuOpen\r\n}), {\r\n\r\n})(withStyles(style)(Page));","import React from 'react'\r\nimport { withStyles, Grid, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tlabel: {\r\n\t\tfontWeight: theme.typography.fontWeightBold\r\n\t}\r\n})\r\n\r\nfunction InfoDataElement({\r\n\tclasses,\r\n\ttrKey,\r\n\tvalue,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{Tr(trKey)}:{' '}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{value}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nInfoDataElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(InfoDataElement);","import React from 'react'\r\nimport {Grid} from '@material-ui/core';\r\nimport PropTypes from 'prop-types'\r\nimport InfoDataElement from './InfoDataElement';\r\nimport {LABELS as ProcedureStatusLabels} from 'constants/ProcedureStatus';\r\nimport moment from 'moment';\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport {PrimaryTenderVariantTr} from \"constants/PrimaryTenderVariant\";\r\n\r\nfunction InfoData(\r\n\t{\r\n\t\tcontractor,\r\n\t\theaderData\r\n\t}) {\r\n\tif (!headerData.authorUser) return '';\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t{!!headerData.primaryTenderVariant && }\r\n\t\t\t\r\n\t\t\t{headerData.procedureStartDate && }\r\n\t\t\r\n\t)\r\n}\r\n\r\nInfoData.propTypes = {\r\n\ttype: PropTypes.string,\r\n\tprocedure: PropTypes.string,\r\n\tstatus: PropTypes.string,\r\n\tnumber: PropTypes.string,\r\n\tcontractor: PropTypes.bool.isRequired\r\n}\r\n\r\nInfoData.defaultProps = {\r\n}\r\n\r\nexport default InfoData;\r\n","import React from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowDown'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tlinkRow: {\r\n\t\tcursor: 'pointer',\r\n\t\tdisplay: 'flex',\r\n\t\talignItems: 'center',\r\n\t},\r\n\trotate: {\r\n\t\ttransform: 'rotate(180deg)'\r\n\t}\r\n})\r\n\r\nfunction OpenBarText({\r\n\tclasses,\r\n\ttext,\r\n\tonClick,\r\n\trotate=false,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t{text}\r\n\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t)\r\n}\r\n\r\nOpenBarText.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(OpenBarText);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport Button from 'components/Button';\r\n\r\nconst style = theme => ({\r\n\tbutton: {\r\n\t\tcolor: theme.palette.primary.contrastText,\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t},\r\n})\r\n\r\nfunction InfoBarTitleButton({\r\n\tclasses,\r\n\tonClick,\r\n\tdisabled = false,\r\n\tIcon,\r\n\tIconAfter,\r\n\tlabel,\r\n}) {\r\n\treturn \r\n}\r\n\r\n\r\nexport default withStyles(style)(InfoBarTitleButton);","import React, {useMemo, useState} from 'react'\r\nimport {makeStyles, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport DeleteIcon from '@material-ui/icons/Delete'\r\nimport Tr from 'translations/Translations';\r\nimport {withRouter} from \"react-router\";\r\nimport DemandService from 'services/DemandService';\r\nimport {connect} from 'react-redux'\r\nimport RouterPath from 'libs/RouterPath';\r\nimport CancelOutlinedIcon from '@material-ui/icons/CancelOutlined';\r\nimport InfoBarTitleButton from './InfoBarTitleButton';\r\nimport extendFindSectionEditable from 'libs/extendFindSectionEditable';\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport {isDemandModification, isDemandOfferCollection, isDemandPreparing, wasEverPublished} from \"libs/getDemandStatus\";\r\nimport InvalidateDemandPopup from \"components/popup/invalidate/InvalidateDemandPopup\";\r\nimport RfxRoundService from \"services/RfxRoundService\";\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport LoadingScreen from \"components/complex/loadingScreen/LoadingScreen\";\r\nimport clsx from 'clsx';\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport supportedNoApiScreens from \"libs/supportedNoApiScreens\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n item: {\r\n '&:first-child': {\r\n width: 'calc(100% - 300px)'\r\n },\r\n '&:nth-child(2)': {\r\n width: 'calc(100% - 300px)'\r\n }\r\n },\r\n title: {\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis'\r\n },\r\n titleWrapped: {\r\n whiteSpace: 'nowrap'\r\n },\r\n label: {\r\n fontWeight: theme.typography.fontWeightBold\r\n }\r\n}));\r\n\r\nfunction InfoBarTitle(\r\n {\r\n contractor,\r\n title,\r\n number,\r\n attach,\r\n demandValidation = [],\r\n match,\r\n stepperState,\r\n steps,\r\n ojsPublicationStatus = {},\r\n demandHeader,\r\n isDemandChanged = {},\r\n rfxPrivileges = {}\r\n }) {\r\n const classes = useStyle();\r\n const [openDelete, setOpenDelete] = useState(false)\r\n const [openInvalidate, setOpenInvalidate] = useState(false)\r\n const [working, setWorking] = useState(false)\r\n const id = match.params.id;\r\n\r\n const editable = extendFindSectionEditable(demandValidation, steps, stepperState)\r\n\r\n const handleDelete = () => {\r\n setOpenDelete(false);\r\n setWorking(true);\r\n DemandService.deleteDemand(id).then(() => {\r\n RouterPath.redirect(RouterPath.MY_PROCEDURE);\r\n }\r\n ).catch(()=> setWorking(false))\r\n }\r\n\r\n const isModification = isDemandModification() === true;\r\n const isPreparing = isDemandPreparing() === true;\r\n const isOfferCollection = isDemandOfferCollection() === true;\r\n\r\n const rp = RouterPath.myProcedure;\r\n\r\n const handleCancel = () => {\r\n setOpenInvalidate(true);\r\n }\r\n\r\n const isPublished = wasEverPublished();\r\n\r\n // eslint-disable-next-line\r\n const isDeleteActive = useMemo(() => !isPublished && isPreparing, [demandValidation, demandHeader]);\r\n // eslint-disable-next-line\r\n const isInvalidationActive = useMemo(() => isPreparing || isModification || isOfferCollection, [demandValidation, demandHeader])\r\n\r\n const onInvalidate = (({comment}) => {\r\n setOpenInvalidate(false);\r\n setWorking(true);\r\n StatisticsService.getCurrentRound(id).then((resp) => {\r\n RfxRoundService.cancelRound(resp.id, comment)\r\n .then(() => {\r\n RouterPath.redirect(RouterPath.createPath(rp.steps.MP_4_ID, {id}))\r\n }).catch(() => setWorking(false))\r\n })\r\n })\r\n\r\n return (\r\n <>\r\n \r\n \r\n {Tr('name')}:{' '}{title}\r\n \r\n \r\n {Tr('number_of_processing')}:{' '}{number}\r\n \r\n {(!contractor && !supportedNoApiScreens()) && \r\n {(editable && isDeleteActive) && setOpenDelete(true)}\r\n />}\r\n\r\n {editable && isPublished && isInvalidationActive &&\r\n \r\n }\r\n }\r\n \r\n setOpenDelete(false)}\r\n confirmText=\"delete_popup_text1\"\r\n confirmText2=\"delete_popup_text2\"\r\n />\r\n setOpenInvalidate(false)} open={openInvalidate} onInvalidate={onInvalidate}/>\r\n {working ? : ''}\r\n >\r\n )\r\n\r\n}\r\n\r\nInfoBarTitle.propTypes = {\r\n classes: PropTypes.any,\r\n contractor: PropTypes.bool.isRequired\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n isDemandChanged: state.resources.isDemandChanged,\r\n ojsPublicationStatus: state.resources.ojsPublicationStatus,\r\n stepperState: state.stepper.state,\r\n steps: state.stepper.steps[0].steps,\r\n demandHeader: state.resources.demandHeader,\r\n rfxPrivileges: state.privileges[PrivilegeService.RFX_PRIVILEGE_STORE_KEY],\r\n}), {})(withRouter(InfoBarTitle));\r\n","export default (tab,steps,stepperState)=>{\r\n\tlet editable = true \r\n\tif (steps !== undefined && tab !== undefined) {\r\n\t\tconst stepsId = steps.findIndex(x => x.key === stepperState)\r\n\t\tif (stepsId > -1) {\r\n\t\t\teditable = tab.find((x) => x.section === steps[stepsId].apiId).editable\r\n\t\t}\r\n\t}\r\n\r\n\tif (editable === undefined) editable = true\r\n\r\n\treturn editable\r\n}","import React, {useEffect, useState} from 'react'\r\nimport {AppBar, Grid, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types'\r\nimport InfoData from './InfoData';\r\nimport clsx from 'clsx';\r\nimport Tr from 'translations/Translations';\r\nimport OpenBarText from './OpenBarText';\r\nimport InfoBarTitle from './InfoBarTitle';\r\nimport HeaderService from 'services/HeaderService';\r\nimport {withRouter} from \"react-router\";\r\nimport {connect} from 'react-redux'\r\nimport querystring from \"querystring\";\r\nimport {ProcedureTypeTr} from \"constants/ProcedureType\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tborderBottom: `solid 1px ${theme.palette.primary.main}`,\r\n\t\twidth: 'unset',\r\n\t\tpadding: theme.spacing(1),\r\n\t\tpaddingLeft: theme.spacing(4),\r\n\t\tminHeight: theme.mixins.toolbar.minHeight + theme.spacing(4),\r\n\t\tbackgroundColor: theme.palette.background.greyBackground,\r\n\t},\r\n\topen: {\r\n\t\tmaxHeight: 500,\r\n\t\ttransition: theme.transitions.default.open('max-height'),\r\n\t\t'& $content': {\r\n\t\t\tmargin: `${theme.spacing(1)}px 0`,\r\n\t\t\tpadding: `${theme.spacing(1)}px 0`\r\n\t\t}\r\n\t},\r\n\tclose: {\r\n\t\tmaxHeight: 0,\r\n\t\toverflow: 'hidden',\r\n\t\ttransition: theme.transitions.default.close('max-height'),\r\n\t\t'& $content': {\r\n\t\t\theight: 0,\r\n\t\t\topacity: 0,\r\n\t\t\tzIndex: -1,\r\n\t\t\tmarginTop: theme.spacing(-1)\r\n\t\t},\r\n\t},\r\n\tcontent: {\r\n\t\tborderColor: theme.palette.primary.contrastText,\r\n\t\tborderStyle: 'solid',\r\n\t\tborderWidth: '1px 0',\r\n\t},\r\n\ttitle: {\r\n\t\twidth: \"100%\"\r\n\t},\r\n\tinfoContainer: {\r\n\t\t'&>*': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tflexShrink: 0,\r\n\t\t\tflexBasis: 0,\r\n\t\t}\r\n\t},\r\n})\r\n\r\nfunction InfoBar({\r\n\tcontractor = false,\r\n\tclasses,\r\n\tmatch,\r\n\tlocation,\r\n\theaderData = {}\r\n}) {\r\n\tconst [attach, setAttach] = useState(false)\r\n\tlet id = match.params.id ? match.params.id : -1;\r\n\tif(!headerData.name) {\r\n\t\tconst urlParams = querystring.parse(location.search.slice(1));\r\n\t\tif(urlParams.procedureType) {\r\n\t\t\theaderData = { name: `${Tr('new_procedure')}: ${ProcedureTypeTr[urlParams.procedureType]}`}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tuseEffect(() => {\r\n\t\tHeaderService.get(id)\r\n\t}, [id]);\r\n\r\n\tconst handleAttachClick = () => {\r\n\t\tsetAttach(!attach)\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{headerData &&\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{id > 0 &&\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t>\r\n\t)\r\n}\r\n\r\nInfoBar.propTypes = {\r\n\ttitle: PropTypes.string,\r\n}\r\n\r\nInfoBar.defaultProps = {\r\n}\r\n\r\nexport default connect((state) => ({\r\n\theaderData: state.resources.demandHeader\r\n}), {\r\n\r\n})(withRouter(withStyles(style)(InfoBar)));","import React, {useMemo} from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n textAlign: 'center',\r\n },\r\n text: {\r\n paddingTop: props => theme.spacing(1),\r\n paddingBottom: props => theme.spacing(1) + 3,\r\n borderStyle: 'solid',\r\n borderColor: props => theme.palette.primary.main,\r\n borderWidth: '0 0 1px 1px'\r\n\r\n },\r\n currentText: {\r\n //fontWeight: theme.typography.fontWeightBold,\r\n borderBottomWidth: 4,\r\n paddingBottom: props => theme.spacing(1)\r\n },\r\n linkText: {\r\n cursor: \"pointer\"\r\n }\r\n}))\r\n\r\nfunction StageElement(\r\n {\r\n current,\r\n onClick,\r\n thin,\r\n children\r\n }) {\r\n const classes = useStyle({thin});\r\n const color = useMemo(() => Boolean(onClick) ? 'textPrimary' : 'textSecondary', [onClick])\r\n\r\n return (\r\n \r\n {\r\n if (Boolean(onClick)) {\r\n onClick();\r\n }\r\n }}\r\n color={color}\r\n >\r\n {children}\r\n \r\n
\r\n )\r\n}\r\n\r\nStageElement.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default StageElement;","import React, {useMemo} from 'react'\r\nimport {AppBar, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport StageElement from './components/StageElement';\r\nimport GridBlock from 'components/GridBlock';\r\nimport {useParams, withRouter} from \"react-router\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport Tr from \"translations/Translations\";\r\nimport {isDemandModification, isDemandOfferCollection, isDemandOfferEvaluation, isDemandPreparing, isDemandOfferDecryption} from \"libs/getDemandStatus\";\r\nimport {connect} from \"react-redux\";\r\nimport supportedNoApiScreens from \"libs/supportedNoApiScreens\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.background.paper,\r\n top: 64,\r\n zIndex: 1099\r\n },\r\n gridItem: {\r\n flexGrow: 1\r\n },\r\n modification: {\r\n fontWeight: 400\r\n }\r\n})\r\n\r\nfunction StageBar(\r\n {\r\n classes,\r\n location,\r\n demandHeader//ma się odświeżać na zmianę\r\n }) {\r\n\r\n const pathname = location.pathname;\r\n const demandId = useParams().id;\r\n\r\n const goSoStatus = useMemo(() => !!(demandHeader?.oldPlatformRoundStatusUrl) && supportedNoApiScreens(), [demandHeader]);\r\n\r\n\r\n const createElement = (label, label2, onClick, current) => ({label, label2, onClick, current})\r\n const rp = RouterPath.myProcedure;\r\n\r\n const stageClick = (path) => {\r\n if (goSoStatus) {\r\n window.location.href = demandHeader.oldPlatformRoundStatusUrl;\r\n } else {\r\n RouterPath.redirect(path);\r\n }\r\n }\r\n\r\n\r\n const elements = useMemo(() => {\r\n\r\n const preparing = !demandId || demandId <= 0 || isDemandPreparing();\r\n const modification = isDemandModification();\r\n const offerCollection = isDemandOfferCollection();\r\n const offerDecryption = isDemandOfferDecryption();\r\n const evaluation = isDemandOfferEvaluation();\r\n const exPost = demandHeader ? demandHeader.exPost : false;\r\n\r\n const elements = [\r\n createElement(\r\n Tr('mp_1'),\r\n modification ? Tr('modification') : undefined,\r\n () => {\r\n stageClick(RouterPath.createPath(rp.steps.MP_1_ID, {id: demandId}))\r\n },\r\n pathname.startsWith(rp.steps.MP_1)),\r\n createElement(\r\n Tr('mp_2'),\r\n undefined,\r\n preparing || exPost ? undefined : () => {\r\n stageClick(RouterPath.createPath(rp.steps.MP_2_ID, {id: demandId}))\r\n },\r\n pathname.startsWith(rp.steps.MP_2)),\r\n createElement(\r\n Tr('mp_3'),\r\n undefined,\r\n preparing || modification || offerCollection || offerDecryption || exPost ? undefined : () => {\r\n stageClick(RouterPath.createPath(rp.steps.MP_3_ID, {id: demandId}))\r\n },\r\n pathname.startsWith(rp.steps.MP_3)),\r\n createElement(\r\n Tr('mp_4'),\r\n undefined,\r\n preparing || modification || offerCollection || offerDecryption || evaluation ? undefined : () => {\r\n stageClick(RouterPath.createPath(rp.steps.MP_4_ID, {id: demandId}))\r\n },\r\n pathname.startsWith(rp.steps.MP_4))\r\n ]\r\n return elements;\r\n // eslint-disable-next-line\r\n }, [demandHeader, demandId, pathname]);\r\n\r\n\r\n return (\r\n \r\n \r\n {elements.map(({label, label2, onClick, current}, i) => {\r\n return (\r\n \r\n {label} {!!label2 && ({label2})}\r\n \r\n )\r\n })}\r\n \r\n \r\n )\r\n}\r\n\r\nStageBar.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader\r\n}), {})(withRouter(withStyles(style)(StageBar)));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport PartsRouter from './PartsRouter';\r\nimport Page from 'components/Page';\r\nimport InfoBar from \"components/complex/infobar/InfoBar\";\r\nimport StageBar from \"components/complex/stagebar/StageBar\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n\tcontent: {\r\n\t\tpadding: theme.spacing(2)\r\n\t}\r\n}));\r\n\r\nfunction StepperPages(\r\n\t{\r\n\t\tmatch\r\n\t}) {\r\n\tconst classes = useStyles();\r\n\r\n\treturn (\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nStepperPages.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default StepperPages;\r\n\t\r\n","import React, {useState} from 'react'\r\nimport {InputAdornment, TextField} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport {setSearchObj} from 'libs/RouterPath';\r\nimport querystring from 'querystring';\r\nimport WorkableIconSearchButton from \"./button/WorkableIconSearchButton\";\r\n\r\nfunction SearchInput({\r\n\tclassName,\r\n\tlabel,\r\n\tid,\r\n\thandleSubmit\r\n}) {\r\n\tconst getInitValue = () => {\r\n\t\tconst search = window.location.search;\r\n\t\tconst value = querystring.parse(search.slice(1))[id];\r\n\t\treturn value ? value : '';\r\n\t}\r\n\r\n\tconst [value, setValue] = useState(getInitValue())\r\n\r\n\tconst handleChange = (e) => {\r\n\t\tsetValue(e.target.value)\r\n\t}\r\n\r\n\tconst hadleClick = (e) => {\r\n\t\tif(handleSubmit) {\r\n\t\t\thandleSubmit({ [id]: value });\r\n\t\t} else {\r\n\t\t\tsetSearchObj({ [id]: value })\r\n\t\t}\r\n\t}\r\n\r\n\tconst handleKeyUp = (e) => {\r\n\t\tif (e.key === 'Enter') {\r\n\t\t\thadleClick()\r\n\t\t}\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t,\r\n\t\t\t}}\r\n\t\t/>\r\n\t)\r\n}\r\n\r\nSearchInput.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tclassName: PropTypes.string,\r\n\tlabel: PropTypes.string,\r\n\tid: PropTypes.string,\r\n}\r\n\r\nSearchInput.defaultProps = {\r\n}\r\n\r\nexport default SearchInput;","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport SearchInput from 'components/SearchInput'\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport SimpleSelect from 'components/SimpleSelect';\r\nimport ProcedureStatus from 'constants/ProcedureStatus';\r\n\r\nconst style = theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2),\r\n marginLeft: theme.spacing(1),\r\n\r\n '&>*:not(:first-child)': {\r\n marginLeft: theme.spacing(4),\r\n }\r\n },\r\n search: {\r\n ...theme.components.input.search\r\n },\r\n chipsGrid: {\r\n marginTop: theme.spacing(1)\r\n },\r\n select: {\r\n width: 250,\r\n }\r\n})\r\n\r\nfunction SearchBar(\r\n {\r\n classes,\r\n setFilters,\r\n filters,\r\n }) {\r\n\r\n return (\r\n <>\r\n \r\n \r\n setFilters({state: e.target.value})}\r\n value={filters.state}\r\n />\r\n \r\n >\r\n )\r\n}\r\n\r\nSearchBar.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nSearchBar.defaultProps = {}\r\n\r\nexport default withStyles(style)(SearchBar);","import reduxStore from 'redux/store'\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET} from 'libs/RestRequest';\r\nimport applySearchParams from \"../libs/applySearchParams\";\r\n\r\n\r\nconst get = async (page = 1, pageSize = 10, filters = {}, sort = {}) => {\r\n\r\n const {\r\n column,\r\n direction\r\n } = sort\r\n\r\n let params = {\r\n 'page': page,\r\n 'pageSize': pageSize\r\n }\r\n params = applySearchParams(filters, params);\r\n\r\n if (column) {\r\n params['sort[0].column'] = column\r\n params['sort[0].direction'] = direction.toUpperCase()\r\n }\r\n\r\n try {\r\n const res = await RestRequestGET(Endpoints.DEMANDS, {\r\n params\r\n });\r\n reduxStore.dispatch(\r\n setResource('demands', res)\r\n )\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst clear = () => {\r\n reduxStore.dispatch(\r\n clearResource('demands')\r\n )\r\n}\r\n\r\nexport default {\r\n get,\r\n clear,\r\n}\r\n\r\n","import {useMemo} from 'react';\r\nimport querystring from 'querystring'\r\n\r\nconst getObj = (location) => {\r\n const search = location.search;\r\n return querystring.parse(search.substr(1));\r\n}\r\nexport default (location = window.location) => {\r\n // eslint-disable-next-line\r\n const params = useMemo(() => getObj(location), [location.search])\r\n return params;\r\n}","import React from 'react'\r\nimport DuplicateIcon from '@material-ui/icons/FilterNone';\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconDuplicateButton(\r\n {\r\n tooltip = Tr('duplicate'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconDuplicateButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconDuplicateButton;","import React, {useEffect, useMemo, useState} from 'react'\r\nimport {makeStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux'\r\nimport SearchBar from './components/SearchBar'\r\nimport Tr from 'translations/Translations';\r\nimport DemandsService from 'services/DemandsService';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport moment from 'moment';\r\nimport SimpleTable from 'components/complex/simpleTable/SimpleTable';\r\nimport usePathParams from 'hooks/usePathParams'\r\nimport Loading from 'components/Loading';\r\nimport {LABELS as ProcedureStatusLabels} from 'constants/ProcedureStatus';\r\nimport Pagination from 'components/Pagination';\r\nimport DemandService from 'services/DemandService';\r\nimport {ProcedureTypeTr} from 'constants/ProcedureType';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport WorkableIconForwardButton from \"components/button/WorkableIconForwardButton\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport WorkableIconDuplicateButton from \"components/button/WorkableIconDuplicateButton\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n margin: -theme.spacing(2),\r\n marginTop: 0,\r\n },\r\n numberColumn: {\r\n width: 100,\r\n wordBreak: 'break-all'\r\n },\r\n typeColumn: {\r\n width: 140\r\n },\r\n dateColumn: {\r\n width: 150,\r\n textAlign: \"center\"\r\n },\r\n statusColumn: {\r\n width: 100,\r\n },\r\n button: {\r\n width: 50,\r\n padding: '0 !important',\r\n },\r\n oneLine: {\r\n ...theme.typography.cutLines(1),\r\n },\r\n cell: {\r\n padding: theme.spacing(1),\r\n }\r\n}));\r\n\r\nconst rp = RouterPath.myProcedure\r\n\r\nfunction Started(\r\n {\r\n resources = {},\r\n }) {\r\n const classes = useStyles();\r\n\r\n const {\r\n // paginator,\r\n //totalCount,\r\n items,\r\n } = resources;\r\n\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [openDeleteId, setOpenDeleteId] = useState(0);\r\n const [openCloneId, setOpenCloneId] = useState(0);\r\n\r\n let params = usePathParams()\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig, setSortConfig,}\r\n = useSearch({\r\n search: {\r\n params,\r\n filters: {\r\n state: ''\r\n }\r\n },\r\n sort: {\r\n column: 'dateInserted',\r\n direction: 'desc',\r\n }\r\n });\r\n\r\n const setFilters = (filters) => {\r\n setSearchConfig({...searchData.search, filters});\r\n }\r\n\r\n useDidUpdateEffect(() => {\r\n setSearchConfig({...searchData.search, params});\r\n }, [params]);\r\n\r\n useDidUpdateEffect(() => {\r\n if (resources?.totalCount !== undefined) {\r\n setTotalCount(resources.totalCount);\r\n }\r\n }, [resources?.totalCount]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n DemandsService.clear();\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n fetchData()\r\n // eslint-disable-next-line\r\n }, [searchData])\r\n\r\n const handleSortChange = (id) => {\r\n let direction = 'desc';\r\n const active = searchData.sort.column === id;\r\n if (active) {\r\n direction = searchData.sort.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n\r\n setSortConfig({\r\n column: id,\r\n direction\r\n })\r\n }\r\n\r\n const fetchData = () => {\r\n setLoading(true);\r\n const {search, pagination, sort} = searchData;\r\n const {page, pageSize} = pagination;\r\n return DemandsService.get(page, pageSize, {\r\n ...search.filters,\r\n ...search.params,\r\n }, sort).then(x => setLoading(false));\r\n }\r\n\r\n const createDeleteButton = (onClick, {actions}) => {\r\n if (actions.delete) {\r\n return \r\n }\r\n }\r\n const createCloneButton = (onClick, {actions}) => {\r\n if (actions.clone) {\r\n return \r\n }\r\n }\r\n\r\n const handleEnterDemand = (item) => {\r\n const {actions} = item;\r\n if (actions.stepOne) {\r\n const href = RouterPath.createPath(rp.steps.MP_1_ID, {id: item.identity});\r\n RouterPath.redirect(href)\r\n } else if (actions.stepTwo) {\r\n const href = RouterPath.createPath(rp.steps.MP_2_ID, {id: item.identity});\r\n RouterPath.redirect(href)\r\n } else if (actions.stepThree) {\r\n const href = RouterPath.createPath(rp.steps.MP_3_ID, {id: item.identity});\r\n RouterPath.redirect(href)\r\n } else if (actions.stepFour) {\r\n const href = RouterPath.createPath(rp.steps.MP_4_ID, {id: item.identity});\r\n RouterPath.redirect(href)\r\n } else if (actions.oldSystemUrl) {\r\n window.location.href = actions.oldSystemUrl.url;\r\n }\r\n }\r\n\r\n const handleDelete = (id = openDeleteId) => {\r\n setOpenDeleteId(0);\r\n DemandService.deleteDemand(id)\r\n .then(() => fetchData())\r\n }\r\n\r\n const handleClone = (id = openCloneId) => {\r\n setOpenCloneId(0);\r\n DemandService.clone(id);\r\n }\r\n\r\n const getSortProps = (id) => {\r\n return {\r\n active: searchData.sort.column === id,\r\n direction: searchData.sort.direction,\r\n onClick: () => {\r\n handleSortChange(id)\r\n }\r\n }\r\n }\r\n const hasClone = useMemo(() => !!items && !!items.find(x => !!x.actions.clone), [items]);\r\n const hasDelete = useMemo(() => !!items && !!items.find(x => !!x.actions.delete), [items]);\r\n\r\n const getHeaders = () => {\r\n if (!items) return;\r\n const headers = [];\r\n headers.push(Tr('demand_number'));\r\n headers.push({\r\n value: Tr('name'),\r\n sort: getSortProps('name')\r\n });\r\n headers.push(Tr('type'));\r\n headers.push({\r\n value: Tr('publish_data'),\r\n sort: getSortProps('procedureStartDate')\r\n });\r\n headers.push({\r\n value: Tr('deadline_for_offers'),\r\n sort: getSortProps('deadlineForOffers')\r\n });\r\n headers.push(Tr('status'));\r\n if (hasDelete) {\r\n headers.push('');\r\n }\r\n if (hasClone) {\r\n headers.push('');\r\n }\r\n headers.push('');\r\n return headers;\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const headers = useMemo(getHeaders, [items]);\r\n\r\n const getHeaderClasses = () => {\r\n if (!items) return;\r\n const headers = [];\r\n headers.push(classes.numberColumn);\r\n headers.push(undefined);\r\n headers.push(classes.typeColumn);\r\n headers.push(classes.dateColumn);\r\n headers.push(classes.dateColumn);\r\n headers.push(classes.statusColumn);\r\n if (hasDelete) {\r\n headers.push(classes.button);\r\n }\r\n if (hasClone) {\r\n headers.push(classes.button);\r\n }\r\n headers.push(classes.button);\r\n\r\n return headers;\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const headerClasses = useMemo(getHeaderClasses, [items]);\r\n\r\n const getRows = () => {\r\n if (!items) return;\r\n const rows = items.map((item) => {\r\n const row = [];\r\n row.push(item.number);\r\n row.push(item.name);\r\n row.push(ProcedureTypeTr[item.procedureType]);\r\n row.push(item.datePublish ? moment(item.datePublish).format(DateFormats.DATETIME_FORMAT) : \"--\");\r\n row.push(item.deadlineForOffers ? moment(item.deadlineForOffers).format(DateFormats.DATETIME_FORMAT) : \"--\");\r\n row.push(ProcedureStatusLabels[item.state]);\r\n if (hasDelete) {\r\n row.push(createDeleteButton(() => setOpenDeleteId(item.identity), item));\r\n }\r\n if (hasClone) {\r\n row.push(createCloneButton(() => setOpenCloneId(item.identity), item));\r\n }\r\n row.push( handleEnterDemand(item)} />);\r\n return row;\r\n });\r\n return rows;\r\n };\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const rows = useMemo(getRows, [items]);\r\n\r\n if (!items) return ;\r\n\r\n return (\r\n <>\r\n \r\n {loading ?\r\n \r\n :\r\n \r\n }\r\n\r\n {/* */}\r\n \r\n\r\n handleDelete()}\r\n onCancel={() => setOpenDeleteId(0)}\r\n confirmText=\"delete_popup_text1\"\r\n confirmText2=\"delete_popup_text2\"\r\n />\r\n handleClone()}\r\n onCancel={() => setOpenCloneId(0)}\r\n confirmText=\"confirm_clone_demand\"\r\n />\r\n >\r\n )\r\n}\r\n\r\nStarted.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nStarted.defaultProps = {}\r\n\r\nexport default connect((state) => ({\r\n resources: state.resources.demands\r\n}), {})(Started);","import React from 'react'\r\nimport {Route, Switch} from 'react-router-dom';\r\nimport Started from './started/Started';\r\n\r\n\r\nfunction HomeRoute() {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nHomeRoute.propTypes = {\r\n}\r\n\r\nHomeRoute.defaultProps = {\r\n}\r\n\r\nexport default HomeRoute;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Page from 'components/Page';\r\nimport Workspace from 'components/Workspace';\r\nimport Tr from 'translations/Translations';\r\nimport HomeRoute from './HomeRoute';\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction MyProcedureHome() {\r\n\r\n const classes = useStyle();\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\nMyProcedureHome.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nMyProcedureHome.defaultProps = {}\r\n\r\nexport default MyProcedureHome;\r\n","import React from 'react'\r\nimport {Route, Switch} from 'react-router-dom';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport StepperPages from './scenes/StepperPages';\r\nimport MyProcedureHome from './scenes/home/MyProcedureHome';\r\n\r\nconst rp = RouterPath.myProcedure;\r\n\r\nfunction MyProcedure() {\r\n\r\n return (\r\n \r\n {Object.values(rp.steps).map((x, i) => (\r\n \r\n ))}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default MyProcedure;\r\n\r\n","import React, {useRef} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport {makeStyles, Tooltip} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ExpansionPanel from 'components/ExpansionPanel';\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowUp'\r\nimport clsx from 'clsx';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\n\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {\r\n getSectionVariant,\r\n PurchasingGroupStageSections,\r\n StageSectionNameToSectionParam,\r\n StageSectionParamToSectionName,\r\n StageSectionsComponents\r\n} from \"../constants/PurchasingGroupStageSections\";\r\nimport ExpansionPanelTitleAvatar from \"components/ExpansionPanelTitleAvatar\";\r\nimport Typography from \"components/Typography\";\r\nimport {connect} from \"react-redux\";\r\nimport {setConfirmCloseStepper} from \"redux/actions\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n '&:not(:first-child)': {\r\n // marginTop: theme.spacing(1)\r\n }\r\n },\r\n rotate: {\r\n transform: 'rotate(180deg)'\r\n },\r\n adornmentGrid: {\r\n '&>*:first-child': {\r\n flexGrow: 1,\r\n marginRight: theme.spacing(2)\r\n }\r\n },\r\n titleGrid: {\r\n '&>*:first-child': {\r\n flexGrow: 10000,\r\n }\r\n }\r\n}))\r\n\r\nconst rps = RouterPath.purchasingGroup;\r\n\r\nfunction PurchasingGroupStageSection(\r\n {\r\n validationSection,\r\n stateCloseValidator,\r\n setConfirmCloseStepper\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const groupId = params.id;\r\n const stage = params.stage;\r\n const openedSectionParam = params.section;\r\n\r\n\r\n const openedSection = openedSectionParam ? StageSectionParamToSectionName[openedSectionParam] : undefined;\r\n const expanded = openedSection === validationSection.section;\r\n const panelRef = useRef();\r\n\r\n const handleClick = id => {\r\n if (validationSection.status !== DemandValidationSectionStatus.DISABLED) {\r\n if (stateCloseValidator && stateCloseValidator() === false) {\r\n setConfirmCloseStepper(() => doHandleClick(id));\r\n return\r\n }\r\n doHandleClick(id)\r\n }\r\n }\r\n const doHandleClick = id => {\r\n if (openedSection === id) {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(rps.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {id: groupId, stage: stage}))\r\n } else {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(rps.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR_SECTION, {\r\n id: groupId, stage: stage,\r\n section: StageSectionNameToSectionParam[id]\r\n }))\r\n }\r\n }\r\n\r\n const Component = StageSectionsComponents[validationSection.section];\r\n return (\r\n \r\n \r\n \r\n {validationSection.name}\r\n \r\n }\r\n classesObj={{titleGrid: classes.titleGrid, root: classes.root}}\r\n titleAdornment={\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n expanded={expanded}\r\n onChange={() => handleClick(validationSection.section)}\r\n >\r\n {expanded &&\r\n \r\n }\r\n \r\n )\r\n\r\n}\r\n\r\nPurchasingGroupStageSection.propTypes = {\r\n validationSection: PropTypes.shape({\r\n editable: PropTypes.bool.isRequired,\r\n infoMessages: PropTypes.array,\r\n messages: PropTypes.array,\r\n name: PropTypes.string.isRequired,\r\n required: PropTypes.bool.isRequired,\r\n section: PropTypes.oneOf(Object.keys(PurchasingGroupStageSections)).isRequired,\r\n status: PropTypes.oneOf(Object.keys(DemandValidationSectionStatus)).isRequired,\r\n validateAfterSave: PropTypes.bool\r\n })\r\n}\r\n\r\nexport default connect((state) => ({\r\n stateCloseValidator: state.stepper.stateCloseValidator,\r\n}), {\r\n setConfirmCloseStepper\r\n})(PurchasingGroupStageSection)\r\n","import React, {useMemo, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux'\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport {useParams, withRouter} from \"react-router\";\r\nimport Loading from \"components/Loading\";\r\nimport {PurchasingGroupStageSections, StageSectionNameToSectionParam} from \"../constants/PurchasingGroupStageSections\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport PurchasingGroupStageSection from \"../components/PurchasingGroupStageSection\";\r\nimport NavigationBar from \"components/complex/floatingMenu/NavigationBar\";\r\nimport createButton from \"components/complex/floatingMenu/createButton\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport ArrowIcon from \"@material-ui/icons/KeyboardArrowUp\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport reduxStore from 'redux/store'\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport Tr from \"translations/Translations\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport RefreshIcon from \"@material-ui/icons/Refresh\";\r\nimport ClearIcon from '@material-ui/icons/Clear';\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport DemandRelatedObjectsPopup from \"components/popup/relatedObjects/DemandRelatedObjectsPopup\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n height: '100%',\r\n '&>*:not(:first-child)': {\r\n marginTop: theme.spacing(2)\r\n }\r\n },\r\n floatingMenu: {\r\n marginBottom: theme.spacing(2),\r\n position: 'sticky',\r\n zIndex: theme.zIndex.appBar - 1,\r\n top: 108\r\n }\r\n}));\r\n\r\nfunction PurchasingGroupStage(\r\n {\r\n mainSectionName,\r\n stageSections,\r\n purchasingGroupHeader,\r\n stateCloseValidator,\r\n formValues,\r\n dealing,\r\n dealingsList\r\n }\r\n) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const groupId = params.id;\r\n const stage = params.stage;\r\n const section = params.section;\r\n const {enqueueErrorSnackbar, enqueueInfoSnackbar} = useSnackbar();\r\n const [relatedObjectPopup, setRelatedObjectPopup] = useState(false)\r\n\r\n const navigationBarButtons = useMemo(() => {\r\n const changes = section !== StageSectionNameToSectionParam.TEMPLATE && (stateCloseValidator && stateCloseValidator() === false);\r\n const buttons = [];\r\n if (changes) {\r\n buttons.push(createButton('discard_changes', () => closeSection(false), 'outlined', ClearIcon, \"primary\", !section));\r\n }\r\n buttons.push(createButton(changes ? 'save' : 'close', () => closeSection(changes), undefined, changes ? SaveIcon : ArrowIcon, \"primary\", !section));\r\n\r\n if (stageSections) {\r\n const stageSection = stageSections[mainSectionName] || {};\r\n\r\n if (stageSection && stageSection.emailListAvailable)\r\n buttons.push(createButton('email_list', () => {\r\n const href = RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_EMAIL_LIST, {id: groupId});\r\n RouterPath.redirect(href)\r\n }, undefined, MailIcon, 'primary', false, true));\r\n\r\n if (stageSection && stageSection.showUpdateNumber)\r\n if (purchasingGroupHeader.showUpdateNumber) {\r\n buttons.push(createButton(\"update_number\", () => enqueueInfoSnackbar(\"Nie zaimplementowano\"), undefined, RefreshIcon, \"primary\", !!section, true));\r\n }\r\n\r\n if (purchasingGroupHeader && purchasingGroupHeader.hasDemand)\r\n buttons.push(createButton('related_objects', () => setRelatedObjectPopup(true),\r\n \"outlined\", ListIcon, 'primary', false, true));\r\n\r\n }\r\n return buttons;\r\n // eslint-disable-next-line\r\n }, [section, stageSections, closeSection, purchasingGroupHeader, enqueueInfoSnackbar, formValues, stateCloseValidator, dealingsList, dealing])\r\n\r\n\r\n const closeSection = (save) => {\r\n if (save) {\r\n const {form} = reduxStore.getState();\r\n const func = form[section];\r\n if (func) {\r\n func();\r\n } else {\r\n enqueueErrorSnackbar(Tr(\"unknown_error_message\"));\r\n }\r\n } else {\r\n\r\n if (section === StageSectionNameToSectionParam.TEMPLATE && stateCloseValidator && !stateCloseValidator()) {\r\n simpleConfirm(\"modification_cancel_popup_text\", () => {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {\r\n id: groupId,\r\n stage: stage\r\n }))\r\n })\r\n } else {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {\r\n id: groupId,\r\n stage: stage\r\n }))\r\n\r\n }\r\n }\r\n };\r\n\r\n\r\n if (!stageSections) return \r\n return (\r\n {(!!(navigationBarButtons?.length)) &&\r\n
\r\n \r\n
\r\n }\r\n\r\n {Object.keys(PurchasingGroupStageSections).filter((sectionId) => {\r\n const section = stageSections[sectionId];\r\n return !!section && section.status !== DemandValidationSectionStatus.UNAVAILABLE\r\n })\r\n .map((sectionId) => {\r\n return (
)\r\n })}\r\n {\r\n relatedObjectPopup &&\r\n setRelatedObjectPopup(false)}/>\r\n }\r\n \r\n )\r\n}\r\n\r\nPurchasingGroupStage.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n stageSections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID],\r\n purchasingGroupHeader: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID],\r\n stateCloseValidator: state.stepper.stateCloseValidator,\r\n formValues: state.formValues,\r\n dealing: state.resources.dealing,\r\n dealingsList: state.resources.dealingsList,\r\n}), {})(withRouter(PurchasingGroupStage));\r\n","import React, {useEffect, useRef} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux'\r\nimport {useParams} from \"react-router\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport {PurchasingGroupStageSections} from \"../constants/PurchasingGroupStageSections\";\r\nimport PurchasingGroupStage from \"../components/PurchasingGroupStage\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport useDebouncedEffect from \"hooks/useDebouncedEffect\";\r\nimport UserService from \"services/UserService\";\r\nimport scheduleReloadTimeout from \"../utils/scheduleReloadTimeout\";\r\nimport Tr from \"translations/Translations\";\r\n\r\n\r\nfunction PurchasingGroupStage2(\r\n {\r\n stageSections,\r\n }\r\n) {\r\n const params = useParams();\r\n const groupId = params.id;\r\n const {enqueueInfoSnackbar} = useSnackbar();\r\n const reloadTimeout = useRef(0);\r\n\r\n useDebouncedEffect(() => {\r\n if (reloadTimeout.current) {\r\n clearTimeout(reloadTimeout.current);\r\n reloadTimeout.current = 0;\r\n }\r\n\r\n if (stageSections) {\r\n (async () => {\r\n const mainSection = stageSections[PurchasingGroupStageSections.STAGE_2_SECTION];\r\n if (mainSection && mainSection.schedule) {\r\n const serverTime = await UserService.serverTime();\r\n let newReloadTimeout = scheduleReloadTimeout(mainSection.schedule, serverTime);\r\n if (newReloadTimeout) {\r\n reloadTimeout.current = setTimeout(() => {\r\n enqueueInfoSnackbar(Tr(\"purchasing_group_schedule_time_reached\"))\r\n getStage2Sections();\r\n }, newReloadTimeout)\r\n }\r\n }\r\n })()\r\n }\r\n // eslint-disable-next-line\r\n }, {timeout: 1000, ignoreInitialCall: true}, [stageSections]);\r\n\r\n const getStage2Sections = () => {\r\n PurchasingGroupSectionService.getStage2Sections(groupId);\r\n }\r\n useEffect(() => {\r\n return () => {\r\n if (reloadTimeout.current) {\r\n clearTimeout(reloadTimeout.current);\r\n reloadTimeout.current = 0;\r\n }\r\n PurchasingGroupSectionService.clearResources(PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID)\r\n }\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n useEffect(() => {\r\n if (groupId)\r\n PurchasingGroupSectionService.getStage2Sections(groupId);\r\n return () => {\r\n PurchasingGroupSectionService.clearResources(PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID)\r\n }\r\n }, [groupId])\r\n\r\n\r\n return ()\r\n}\r\n\r\nPurchasingGroupStage2.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n stageSections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID],\r\n}), {})(PurchasingGroupStage2);\r\n","import React, {useEffect, useRef} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux'\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport {useParams} from \"react-router\";\r\nimport {PurchasingGroupStageSections} from \"../constants/PurchasingGroupStageSections\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport Tr from \"translations/Translations\";\r\nimport scheduleReloadTimeout from \"../utils/scheduleReloadTimeout\";\r\nimport UserService from \"services/UserService\";\r\nimport useDebouncedEffect from \"hooks/useDebouncedEffect\";\r\nimport PurchasingGroupStage from \"../components/PurchasingGroupStage\";\r\n\r\nfunction PurchasingGroupStage1(\r\n {\r\n stageSections,\r\n }\r\n) {\r\n const params = useParams();\r\n const groupId = params.id;\r\n const {enqueueInfoSnackbar} = useSnackbar();\r\n const reloadTimeout = useRef(0);\r\n\r\n useDebouncedEffect(() => {\r\n if (reloadTimeout.current) {\r\n clearTimeout(reloadTimeout.current);\r\n reloadTimeout.current = 0;\r\n }\r\n\r\n if (stageSections) {\r\n (async () => {\r\n const mainSection = stageSections[PurchasingGroupStageSections.STAGE_1_SECTION];\r\n if (mainSection && mainSection.schedule) {\r\n const serverTime = await UserService.serverTime();\r\n let newReloadTimeout = scheduleReloadTimeout(mainSection.schedule, serverTime);\r\n if (newReloadTimeout) {\r\n reloadTimeout.current = setTimeout(() => {\r\n enqueueInfoSnackbar(Tr(\"purchasing_group_schedule_time_reached\"))\r\n getStage1Sections();\r\n }, newReloadTimeout)\r\n }\r\n }\r\n })()\r\n }\r\n // eslint-disable-next-line\r\n }, {timeout: 1000, ignoreInitialCall: true}, [stageSections]);\r\n\r\n const getStage1Sections = () => {\r\n PurchasingGroupSectionService.getStage1Sections(groupId);\r\n }\r\n useEffect(() => {\r\n getStage1Sections();\r\n return () => {\r\n if (reloadTimeout.current) {\r\n clearTimeout(reloadTimeout.current);\r\n reloadTimeout.current = 0;\r\n }\r\n PurchasingGroupSectionService.clearResources(PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID)\r\n }\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n\r\n return ()\r\n}\r\n\r\nPurchasingGroupStage1.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n stageSections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID],\r\n}), {})(PurchasingGroupStage1);\r\n","import React from 'react'\r\nimport PurchasingGroupStage2 from \"./stage2/PurchasingGroupStage2\";\r\nimport PurchasingGroupStage1 from \"./stage1/PurchasingGroupStage1\";\r\n\r\n\r\nfunction PurchasingGroupStageNr(\r\n {\r\n match\r\n }) {\r\n const stage = match.params.stage;\r\n return (stage === \"2\" ? : )\r\n}\r\n\r\nPurchasingGroupStageNr.propTypes = {}\r\n\r\nexport default PurchasingGroupStageNr;\r\n\t\r\n","import React from 'react'\r\nimport {Redirect, Route, Switch} from \"react-router-dom\";\r\nimport RouterPath from \"../../../../libs/RouterPath\";\r\nimport NotFound from \"../../../NotFound/NotFound\";\r\nimport PurchasingGroupStageNr from \"./PurchasingGroupStageNr\";\r\nimport EmailListPanel from \"../../MyProcedure/scenes/emailList/EmailListPanel\";\r\n\r\n\r\nconst rp = RouterPath.purchasingGroup;\r\n\r\nfunction PurchasingGroupStagesRouter(\r\n {\r\n match\r\n }) {\r\n const groupId = match.params.id;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nPurchasingGroupStagesRouter.propTypes = {}\r\n\r\nexport default PurchasingGroupStagesRouter;\r\n\t\r\n","import React from 'react'\r\nimport {AppBar, Grid, Typography} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport PropTypes from \"prop-types\";\r\nimport {getUserFullNameWithDeputy} from \"libs/userNameGetter\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n borderBottom: `solid 1px ${theme.palette.primary.main}`,\r\n padding: theme.spacing(2),\r\n backgroundColor: theme.palette.background.greyBackground,\r\n }\r\n}))\r\n\r\nfunction PurchaserGroupInfoBar(\r\n {\r\n purchaserGroupHeader\r\n }) {\r\n const classes = useStyle();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {Tr('name')}:{' '}{purchaserGroupHeader.name}\r\n \r\n \r\n {Tr('demand_number')}:{' '}{purchaserGroupHeader.number}\r\n \r\n \r\n {Tr('purchasing_group_author')}:{' '}{getUserFullNameWithDeputy(purchaserGroupHeader.author)}\r\n \r\n \r\n \r\n >\r\n )\r\n}\r\n\r\nPurchaserGroupInfoBar.propTypes = {\r\n purchaserGroupHeader: PropTypes.object.isRequired\r\n}\r\n\r\n\r\nexport default PurchaserGroupInfoBar;\r\n","import React from 'react'\r\nimport {AppBar} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport StageElement from './components/StageElement';\r\nimport GridBlock from 'components/GridBlock';\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n backgroundColor: theme.palette.background.paper,\r\n top: 64,\r\n zIndex: 1099\r\n },\r\n gridItem: {\r\n flexGrow: 1\r\n },\r\n modification: {\r\n fontWeight: 400\r\n }\r\n}))\r\n\r\nexport const createStageBarElement = (label, path, current, historyPush = true, label2, onClick) => ({label, path, current, historyPush, label2, onClick})\r\n\r\nfunction StageBarCommon(\r\n {\r\n location,\r\n elements\r\n }) {\r\n const classes = useStyle();\r\n\r\n const stageClick = ({onClick, path, historyPush}) => {\r\n if (onClick) {\r\n onClick();\r\n } else if (path) {\r\n if (historyPush)\r\n RouterPath.redirect(path);\r\n else\r\n RouterPath.redirectWithoutHistory(path);\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {elements.map((element, i) => {\r\n const {label, path, current, label2, onClick} = element;\r\n return (\r\n stageClick(element) : undefined}\r\n >\r\n {label} {!!label2 && ({label2})}\r\n \r\n )\r\n })}\r\n \r\n \r\n )\r\n}\r\n\r\nStageBarCommon.propTypes = {\r\n elements: PropTypes.arrayOf(PropTypes.shape({\r\n label: PropTypes.string.isRequired,\r\n path: PropTypes.string,\r\n current: PropTypes.bool,\r\n historyPush: PropTypes.bool,\r\n label2: PropTypes.string,\r\n onClick: PropTypes.func\r\n }))\r\n}\r\n\r\nexport default StageBarCommon;","import Tr from \"translations/Translations\";\r\n\r\nexport const PurchasingGroupStatus = {\r\n PREPARING: 'PREPARING',\r\n DATA_COLLECTION: 'DATA_COLLECTION',\r\n REALIZATION: \"REALIZATION\",\r\n FINISHED: \"FINISHED\",\r\n CANCELED: \"CANCELED\"\r\n}\r\nconst _TR_PREFIX = 'purchasing_group_status_';\r\n\r\nexport const PurchasingGroupStatusLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));","import React, {useMemo} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport {withRouter} from \"react-router\";\r\nimport RouterPath from 'libs/RouterPath';\r\nimport StageBarCommon, {createStageBarElement} from \"components/complex/stagebar/StageBarCommon\";\r\nimport {PurchasingGroupStatus} from \"../../constants/PurchasingGroupStatus\";\r\nimport PropTypes from \"prop-types\";\r\nimport {PurchasingGroupRole} from \"../constants/PurchasingGroupRole\";\r\n\r\nconst rps = RouterPath.purchasingGroup;\r\n\r\nfunction PurchaserGroupStageBar(\r\n {\r\n match,\r\n location,\r\n purchaserGroupHeader\r\n }) {\r\n const groupId = match.params.id;\r\n const stage = match.params.stage;\r\n\r\n const stageBarElements = useMemo(() => {\r\n const elems = [];\r\n\r\n elems[0] = createStageBarElement(\r\n Tr('purchase_group_stage_1'),\r\n groupId ? RouterPath.createPath(rps.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {id: groupId, stage: 1}) : undefined,\r\n stage === \"1\",\r\n false\r\n )\r\n elems[1] = createStageBarElement(\r\n Tr('purchase_group_stage_2'),\r\n groupId && purchaserGroupHeader.status !== PurchasingGroupStatus.PREPARING && (purchaserGroupHeader.userRole !== PurchasingGroupRole.MEMBER || purchaserGroupHeader.lastStageStarted >= 5) ? RouterPath.createPath(rps.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {id: groupId, stage: 2}) : undefined,\r\n stage === \"2\",\r\n false\r\n )\r\n return elems;\r\n\r\n\r\n }, [stage, groupId, purchaserGroupHeader])\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nPurchaserGroupStageBar.propTypes = {\r\n purchaserGroupHeader: PropTypes.object.isRequired\r\n}\r\n\r\nexport default withRouter(PurchaserGroupStageBar);","import React, {useEffect} from 'react'\r\nimport Page from 'components/Page';\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport PurchasingGroupStagesRouter from \"./PurchasingGroupStagesRouter\";\r\nimport PurchaserGroupInfoBar from \"./components/PurchaserGroupInfoBar\";\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupStage1Service from \"../../../../services/PurchasingGroupStage1Service\";\r\nimport PurchaserGroupStageBar from \"./components/PurchaserGroupStageBar\";\r\nimport Loading from \"../../../../components/Loading\";\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n content: {\r\n padding: theme.spacing(2)\r\n }\r\n}));\r\n\r\nfunction PurchasingGroupStages(\r\n {\r\n match,\r\n location,\r\n purchaserGroupHeader\r\n }) {\r\n const classes = useStyles();\r\n\r\n const groupId = match.params.id;\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getHeader(groupId);\r\n return () => {\r\n PurchasingGroupStage1Service.clearResources(PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID)\r\n }\r\n }, [groupId])\r\n\r\n return (\r\n {!purchaserGroupHeader ?
: <>\r\n\r\n \r\n \r\n \r\n >}\r\n )\r\n}\r\n\r\nPurchasingGroupStages.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n purchaserGroupHeader: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID]\r\n}), {})(PurchasingGroupStages);\r\n\t\r\n","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport {TextField} from \"@material-ui/core\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport {PurchasingGroupStatus, PurchasingGroupStatusLabel} from \"../constants/PurchasingGroupStatus\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2),\r\n '&>*:not(:first-child):not(:last-child)': {\r\n marginLeft: theme.spacing(4),\r\n }\r\n },\r\n state: {\r\n width: 200,\r\n },\r\n search: {\r\n width: 350,\r\n }\r\n}));\r\n\r\nconst EMPTY_SEARCH_OBJECT = {state: \"\", search: ''}\r\nconst MAX_SEARCH_LENGTH = 100;\r\n\r\nconst decisionsList = [{label: Tr('procedure_status_0'), value: \"\"}, ...Object.keys(PurchasingGroupStatus).map(key => ({\r\n label: PurchasingGroupStatusLabel(key),\r\n value: key\r\n}))];\r\n\r\nfunction PurchasingGroupSearch(\r\n {\r\n searchInProgress,\r\n doSearch\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [value, setValue] = useState({...EMPTY_SEARCH_OBJECT});\r\n const [submitState, setSubmitState] = useState(0);\r\n\r\n useEffect(() => {\r\n if (submitState && !searchInProgress) {\r\n const valueFiltered = Object.keys(value)\r\n .filter((k) => value[k])\r\n .reduce((a, k) => ({...a, [k]: value[k]}), {});\r\n doSearch(valueFiltered);\r\n }\r\n // eslint-disable-next-line\r\n }, [submitState]);\r\n\r\n const handleChange = (id, e) => {\r\n setValue({...value, [id]: e.target.value});\r\n }\r\n\r\n const handleSubmit = () => {\r\n setSubmitState(x => x + 1)\r\n };\r\n\r\n\r\n const handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n handleSubmit()\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {Tr('search_box')}\r\n \r\n\r\n handleChange('search', e)}\r\n onKeyUp={handleKeyPress}\r\n fullWidth\r\n value={value.search}\r\n inputProps={{maxLength: MAX_SEARCH_LENGTH}}\r\n />\r\n\r\n\r\n {\r\n handleChange(\"state\", e);\r\n handleSubmit();\r\n }}\r\n />\r\n\r\n \r\n \r\n {\r\n setValue(EMPTY_SEARCH_OBJECT);\r\n handleSubmit()\r\n }}/>\r\n
\r\n \r\n >\r\n )\r\n}\r\n\r\nPurchasingGroupSearch.propTypes = {\r\n doSearch: PropTypes.func.isRequired,\r\n searchInProgress: PropTypes.bool\r\n}\r\n\r\n\r\nexport default PurchasingGroupSearch;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Page from \"components/Page\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport Pagination from \"components/Pagination\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Tr from \"translations/Translations\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport moment from \"moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport Loading from \"components/Loading\";\r\nimport Workspace from \"components/Workspace\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {PurchasingGroupStatus, PurchasingGroupStatusLabel} from \"../constants/PurchasingGroupStatus\";\r\nimport PurchasingGroupSearch from \"./PurchasingGroupSearch\";\r\nimport Button from \"components/Button\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n numberColumn: {\r\n width: 120,\r\n wordBreak: 'break-all'\r\n },\r\n typeColumn: {\r\n width: 170\r\n },\r\n dateTimeColumn: theme.components.table.dateTimeColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n nameColumn: {\r\n wordBreak: \"break-all\",\r\n paddingRight: theme.spacing(2),\r\n },\r\n}));\r\n\r\nfunction PurchasingGroupList(\r\n {\r\n match,\r\n member\r\n }\r\n) {\r\n const classes = useStyles();\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig, setSortConfig} = useSearch({\r\n sort: {\r\n column: 'dateInserted',\r\n direction: 'desc',\r\n }\r\n });\r\n const [purchasingGroupList, setPurchasingGroupList] = useState(false);\r\n const [actions, setActions] = useState({});\r\n const [working, setWorking] = useState();\r\n\r\n useEffect(() => {\r\n if (!member)\r\n PurchasingGroupStage1Service.getPurchasingGroupListActions().then((resp) => setActions(resp || {}))\r\n }, [member])\r\n\r\n useEffect(() => {\r\n setWorking(true);\r\n const promise = member ? PurchasingGroupStage1Service.getPurchasingGroupMemberList(searchData) : PurchasingGroupStage1Service.getPurchasingGroupList(searchData);\r\n promise.then((resp) => {\r\n setTotalCount(resp.totalCount)\r\n setPurchasingGroupList(resp);\r\n }).finally(() => setWorking(false));\r\n // eslint-disable-next-line\r\n }, [searchData]);\r\n\r\n useDidUpdateEffect(() => {\r\n if (purchasingGroupList?.totalCount !== undefined) {\r\n setTotalCount(purchasingGroupList.totalCount)\r\n }\r\n }, [purchasingGroupList]);\r\n\r\n const goToGroup = (x, section) => {\r\n let stage = 2;\r\n if (PurchasingGroupStatus.PREPARING === x.status || (member && x.lastStageStarted < 5)) {\r\n stage = 1;\r\n }\r\n\r\n const path = section ? RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR_SECTION, {\r\n id: x.identity,\r\n stage: stage,\r\n section: section\r\n })\r\n :\r\n RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {id: x.identity, stage: stage});\r\n RouterPath.redirect(path)\r\n }\r\n\r\n const handleSortChange = (id) => {\r\n let direction = 'desc';\r\n const active = searchData.sort.column === id;\r\n if (active) {\r\n direction = searchData.sort.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n\r\n setSortConfig({\r\n column: id,\r\n direction\r\n })\r\n }\r\n\r\n const getSortProps = (id) => {\r\n return {\r\n active: searchData.sort.column === id,\r\n direction: searchData.sort.direction,\r\n onClick: () => {\r\n handleSortChange(id)\r\n }\r\n }\r\n }\r\n\r\n const getHeaders = () => {\r\n const headers = [];\r\n headers.push({\r\n value: Tr('demand_number'),\r\n sort: getSortProps('number')\r\n });\r\n headers.push({\r\n value: Tr('name'),\r\n sort: getSortProps('name')\r\n });\r\n headers.push({\r\n value: Tr('add_data'),\r\n sort: getSortProps('dateInserted')\r\n });\r\n headers.push({\r\n value: Tr('status'),\r\n sort: getSortProps('state')\r\n });\r\n headers.push('');\r\n return headers;\r\n };\r\n\r\n return (\r\n \r\n {\r\n !purchasingGroupList ? :\r\n <>\r\n \r\n \r\n {actions.hasAdd === true && }\r\n \r\n\r\n {\r\n return [\r\n x.number,\r\n x.name,\r\n moment(x.dateModified).format(DateFormats.DATETIME_FORMAT),\r\n x.status ? PurchasingGroupStatusLabel(x.lastStageStarted < 5 ? PurchasingGroupStatus.PREPARING : x.status) : null,\r\n goToGroup(x)}/>\r\n ]\r\n })\r\n }\r\n columnClasses={\r\n [\r\n classes.numberColumn,\r\n classes.nameColumn,\r\n classes.typeColumn,\r\n classes.typeColumn,\r\n classes.buttonColumn,\r\n ]\r\n }\r\n />\r\n {\r\n !purchasingGroupList.items.length && {Tr('no_options')}\r\n }\r\n \r\n >\r\n }\r\n \r\n )\r\n}\r\n\r\nPurchasingGroupList.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default PurchasingGroupList;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport PurchasingGroupList from \"./PurchasingGroupList\";\r\n\r\nfunction PurchasingGroupMemberList(\r\n {\r\n match\r\n }\r\n) {\r\n return \r\n}\r\n\r\nPurchasingGroupMemberList.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default PurchasingGroupMemberList;","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport applySearchParams from \"../libs/applySearchParams\";\r\nimport applySortParams from \"../libs/applySortParams\";\r\nimport reduxStore from \"redux/store\";\r\nimport {setSaveStatusClosed, setSaveStatusError, setSaveStatusLoading} from \"../redux/actions\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst __get = async (url) => {\r\n try {\r\n let res = await RestRequestGET(url)\r\n return res;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst __save = async (url, values) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n const resp = await RestRequestPOST(url, values)\r\n isResponseValid(resp, (e) => {\r\n throw new Error(e);\r\n })\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n return resp;\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\n\r\nconst getTemplatesList = async (searchData) => {\r\n const {pagination, search, sort} = searchData;\r\n\r\n let params = {\r\n ...pagination\r\n }\r\n params = applySearchParams(search, params);\r\n params = applySortParams(sort, params);\r\n return await RestRequestGET(Endpoints.PURCHASING_GROUP_TEMPLATES_LIST(), {params});\r\n}\r\n\r\nconst getTemplateListHasEdit = async () => {\r\n return __get(Endpoints.PURCHASING_GROUP_TEMPLATES_LIST_HAS_EDIT())\r\n}\r\nconst getTemplate = async (templateId) => {\r\n return __get(Endpoints.PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID(templateId))\r\n}\r\n\r\nconst saveTemplate = async (templateId, values) => {\r\n return __save(Endpoints.PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID(templateId), values)\r\n}\r\n\r\nconst cloneTemplate = async (templateId) => {\r\n return RestRequestPOST(Endpoints.PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_CLONE(templateId))\r\n}\r\n\r\nconst deleteTemplate = async (templateId) => {\r\n return RestRequestDELETE(Endpoints.PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID(templateId))\r\n}\r\nconst activateTemplate = async (templateId) => {\r\n return RestRequestPUT(Endpoints.PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_ACTIVATE(templateId));\r\n}\r\nconst deactivateTemplate = async (templateId) => {\r\n return RestRequestPUT(Endpoints.PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_DEACTIVATE(templateId));\r\n}\r\n\r\n\r\nexport default {\r\n getTemplatesList,\r\n getTemplateListHasEdit,\r\n getTemplate,\r\n saveTemplate,\r\n cloneTemplate,\r\n deleteTemplate,\r\n activateTemplate,\r\n deactivateTemplate\r\n}","import React from 'react'\r\nimport ToggleOnIcon from '@material-ui/icons/ToggleOn';\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconDeactivateButton(\r\n {\r\n tooltip = Tr('deactivate'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconDeactivateButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconDeactivateButton;","import React from 'react'\r\nimport ToggleOffIcon from '@material-ui/icons/ToggleOff';\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconActivateButton(\r\n {\r\n tooltip = Tr('activate'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconActivateButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconActivateButton;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Page from \"components/Page\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport Pagination from \"components/Pagination\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Tr from \"translations/Translations\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport moment from \"moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport Loading from \"components/Loading\";\r\nimport Workspace from \"components/Workspace\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport Button from \"components/Button\";\r\nimport PurchasingGroupTemplateService from \"services/PurchasingGroupTemplateService\";\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport WorkableIconSearchButton from \"components/button/WorkableIconSearchButton\";\r\nimport EditDescriptionPopup, {createEditDescriptionFile} from \"components/popup/EditDescriptionPopup\";\r\nimport WorkableIconDeactivateButton from \"components/button/WorkableIconDeactivateButton\";\r\nimport WorkableIconActivateButton from \"components/button/WorkableIconActivateButton\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport WorkableIconDuplicateButton from \"components/button/WorkableIconDuplicateButton\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n dateTimeColumn: {\r\n width: 160,\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n statusColumn: {\r\n width: 100\r\n },\r\n nameColumn: {\r\n wordBreak: \"break-all\",\r\n paddingRight: theme.spacing(2),\r\n },\r\n error: {\r\n color: theme.palette.error.main\r\n },\r\n success: {\r\n color: theme.palette.success.main\r\n }\r\n}));\r\n\r\nfunction PurchasingGroupTemplatesList(\r\n {\r\n match\r\n }\r\n) {\r\n const classes = useStyles();\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig, setSortConfig} = useSearch({\r\n sort: {\r\n column: 'dateInserted',\r\n direction: 'desc',\r\n }\r\n });\r\n const [templatesList, setTemplatesList] = useState(false);\r\n const [hasEdit, setHasEdit] = useState(false);\r\n const [working, setWorking] = useState();\r\n const [editDescriptionFile, setEditDescriptionFile] = useState(false);\r\n const [workingIds, setWorkingIds] = useState({});\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n useEffect(() => {\r\n setWorking(true);\r\n PurchasingGroupTemplateService.getTemplatesList(searchData).then((resp) => {\r\n setTotalCount(resp.totalCount)\r\n setTemplatesList(resp);\r\n }).finally(() => setWorking(false));\r\n PurchasingGroupTemplateService.getTemplateListHasEdit().then(resp => setHasEdit(resp.success && resp.result));\r\n // eslint-disable-next-line\r\n }, [searchData]);\r\n\r\n useDidUpdateEffect(() => {\r\n if (templatesList?.totalCount !== undefined) {\r\n setTotalCount(templatesList.totalCount)\r\n }\r\n }, [templatesList]);\r\n\r\n const goToTpl = (x) => {\r\n const path = RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID, {\r\n id: x.identity\r\n })\r\n RouterPath.redirect(path)\r\n }\r\n\r\n const handleSortChange = (id) => {\r\n let direction = 'desc';\r\n const active = searchData.sort.column === id;\r\n if (active) {\r\n direction = searchData.sort.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n\r\n setSortConfig({\r\n column: id,\r\n direction\r\n })\r\n }\r\n\r\n const getSortProps = (id) => {\r\n return {\r\n active: searchData.sort.column === id,\r\n direction: searchData.sort.direction,\r\n onClick: () => {\r\n handleSortChange(id)\r\n }\r\n }\r\n }\r\n\r\n const onEditDescriptionFile = (row) => {\r\n setEditDescriptionFile(createEditDescriptionFile(0, 0,\r\n row.name, row.description || \"\", true, false, false))\r\n }\r\n\r\n const getHeaders = () => {\r\n const headers = [];\r\n headers.push({\r\n value: Tr('name'),\r\n sort: getSortProps('name')\r\n });\r\n headers.push(Tr('description'));\r\n headers.push({\r\n value: Tr('modyfication_date'),\r\n sort: getSortProps('dateModified')\r\n });\r\n headers.push({\r\n value: Tr('status'),\r\n sort: getSortProps('active')\r\n });\r\n headers.push('');\r\n headers.push('');\r\n headers.push('');\r\n headers.push('');\r\n return headers;\r\n };\r\n\r\n const setWorkingId = (row, action) => setWorkingIds({...workingIds, [\"_\" + row.identity]: action});\r\n const clearWorkingId = (row) => {\r\n const ids = {...workingIds};\r\n delete ids[\"_\" + row.identity];\r\n setWorkingIds(ids)\r\n }\r\n\r\n const doDelete = (row) => {\r\n simpleConfirm(\"confirm_delete_template\", () => {\r\n setWorkingId(row, \"delete\")\r\n PurchasingGroupTemplateService.deleteTemplate(row.identity).then(() => {\r\n setPaginationConfig(searchData.pagination);\r\n }).finally(() => clearWorkingId(row))\r\n })\r\n }\r\n\r\n const doActivate = (row) => {\r\n setWorkingId(row, \"activate\")\r\n PurchasingGroupTemplateService.activateTemplate(row.identity).then((resp) => {\r\n setTemplatesList({...templatesList, items: templatesList.items.map(x => x.identity === resp.identity ? resp : x)})\r\n }).finally(() => clearWorkingId(row))\r\n }\r\n const doDeactivate = (row) => {\r\n setWorkingId(row, \"activate\")\r\n PurchasingGroupTemplateService.deactivateTemplate(row.identity).then((resp) => {\r\n setTemplatesList({...templatesList, items: templatesList.items.map(x => x.identity === resp.identity ? resp : x)})\r\n }).finally(() => clearWorkingId(row))\r\n }\r\n const doClone = (row) => {\r\n setWorkingId(row, \"clone\")\r\n PurchasingGroupTemplateService.cloneTemplate(row.identity).then(resp => {\r\n if (resp && resp.success) {\r\n enqueueSuccessSnackbar(Tr('saved'))\r\n RouterPath.redirect(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID, {\r\n id: resp.result\r\n }))\r\n }\r\n }).finally(() => clearWorkingId(row))\r\n }\r\n\r\n return (\r\n \r\n {\r\n !templatesList ? :\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n {\r\n return [\r\n x.name,\r\n onEditDescriptionFile(x)}\r\n tooltip={x.description ? {x.description}
:\r\n {Tr('no_description')}}\r\n />,\r\n moment(x.dateModified).format(DateFormats.DATETIME_FORMAT),\r\n Tr(x.active ? 'status_active' : 'status_inactive'),\r\n x.active ?\r\n doDeactivate(x)}\r\n working={workingIds[\"_\" + x.identity] === \"activate\"}\r\n disabled={!x.hasEdit || !!workingIds[\"_\" + x.identity]}/> :\r\n doActivate(x)}\r\n working={workingIds[\"_\" + x.identity] === \"activate\"}\r\n disabled={!x.hasEdit || !!workingIds[\"_\" + x.identity]}/>,\r\n doDelete(x)} working={workingIds[\"_\" + x.identity] === \"delete\"}\r\n disabled={x.primary || !x.hasEdit || !!workingIds[\"_\" + x.identity]}/>,\r\n doClone(x)} working={workingIds[\"_\" + x.identity] === \"clone\"}\r\n disabled={!x.hasEdit || !!workingIds[\"_\" + x.identity]}/>,\r\n goToTpl(x)}\r\n disabled={!!workingIds[\"_\" + x.identity]}/>,\r\n ]\r\n })\r\n }\r\n columnClasses={\r\n [\r\n classes.nameColumn,\r\n classes.buttonColumn,\r\n classes.dateTimeColumn,\r\n classes.statusColumn,\r\n classes.buttonColumn,\r\n classes.buttonColumn,\r\n classes.buttonColumn,\r\n classes.buttonColumn,\r\n ]\r\n }\r\n />\r\n {\r\n !templatesList.items.length && {Tr('no_options')}\r\n }\r\n \r\n\r\n {Boolean(editDescriptionFile) &&\r\n setEditDescriptionFile(null)}\r\n onClose={() => setEditDescriptionFile(null)}\r\n service={{\r\n updateDescription: async () => {\r\n }\r\n }}\r\n />\r\n }\r\n >\r\n }\r\n \r\n )\r\n}\r\n\r\nPurchasingGroupTemplatesList.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default PurchasingGroupTemplatesList;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport IconButton from './IconButton';\r\nimport DragIndicator from '@material-ui/icons/DragHandle';\r\n\r\nfunction IconDragButton({\r\n\ttooltip = Tr('move_part'),\r\n\t...props\r\n}) {\r\n\treturn \r\n}\r\n\r\nexport default IconDragButton;","import React from 'react'\r\nimport {SortableHandle as SortableHandleComponent} from 'react-sortable-hoc';\r\nimport IconDragButton from 'components/button/IconDragButton'\r\n\r\nconst SortableHandle = SortableHandleComponent((props) => {\r\n\r\n return (\r\n \r\n )\r\n})\r\n\r\nexport default SortableHandle;","import React, { memo } from 'react'\r\nimport { RadioGroup as RadioGroupUI, FormControl, FormLabel, FormHelperText } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport RadioGroupElement from './RadioGroupElement';\r\nimport Tr from 'translations/Translations';\r\n\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport { withStyles } from '@material-ui/styles';\r\n\r\nconst style = theme => ({\r\n\terror: {\r\n\t\tmarginTop: 0,\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t}\r\n})\r\n\r\nconst items = [{label: Tr(\"yes\"), value: \"true\"}, {label: Tr(\"no\"), value: \"false\"}]\r\n\r\nfunction RadioGroupYesNo({\r\n\tclasses,\r\n\tformikProps,\r\n\tlabel,\r\n\tid,\r\n\tchildren,\r\n\tclassName,\r\n\trequired,\r\n\tnoError,\r\n\tonChange = ()=> {},\r\n\tdisabled\r\n}) {\r\n\tconst errorValue = getObjectValue(id, formikProps.errors, '')\r\n\tconst touched = getObjectValue(id, formikProps.touched, false)\r\n\tconst value = \"\" + getObjectValue(id, formikProps.values, '')\r\n\tconst editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n\tconst isError = !noError && (!!errorValue && touched)\r\n\r\n\t// const isError = !!formikProps.errors[id] && formikProps.touched[id]\r\n\tconst helperText = (isError && errorValue) || ' ';\r\n\r\n\tlet _label = label;\r\n\tif (required) _label += '*';\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{_label}\r\n\t\t\t {\r\n\t\t\t\t\tonChange(event);\r\n\t\t\t\t\tformikProps.handleChange(event);\r\n\t\t\t\t}}\r\n\t\t\t\tonBlur={formikProps.handleBlur}\r\n\t\t\t\t// value={formikProps.values[id]}\r\n\t\t\t\tvalue={value}\r\n\t\t\t>\r\n\t\t\t\t{items.map((item, i) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{item.label}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)\r\n\t\t\t\t})}\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\t{helperText}\r\n\t\t\r\n\t)\r\n}\r\n\r\nRadioGroupYesNo.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tlabel: PropTypes.string,\r\n\tid: PropTypes.string,\r\n\tformikProps: PropTypes.object,\r\n}\r\n\r\nRadioGroupYesNo.defaultProps = {\r\n\titems: []\r\n}\r\n\r\nexport default withStyles(style)(memo(RadioGroupYesNo, (prevProps, nextProps) => {\r\n\tif (prevProps.label !== nextProps.label) return false;\r\n\tif (prevProps.id !== nextProps.id) return false;\r\n\tif (prevProps.disabled !== nextProps.disabled) return false;\r\n\tif (JSON.stringify(prevProps.items) !== JSON.stringify(nextProps.items)) return false;\r\n\tif (prevProps.children !== nextProps.children) return false;\r\n\tconst id = nextProps.id;\r\n\t// if (prevProps.formikProps.values[id] !== nextProps.formikProps.values[id]) return false;\r\n\t// if (prevProps.formikProps.errors[id] !== nextProps.formikProps.errors[id]) return false;\r\n\t// if (prevProps.formikProps.touched[id] !== nextProps.formikProps.touched[id]) return false;\r\n\tif (getObjectValue(id, prevProps.formikProps.values) !== getObjectValue(id, nextProps.formikProps.values)) return false;\r\n\tif (getObjectValue(id, prevProps.formikProps.errors) !== getObjectValue(id, nextProps.formikProps.errors)) return false;\r\n\tif (getObjectValue(id, prevProps.formikProps.touched) !== getObjectValue(id, nextProps.formikProps.touched)) return false;\r\n\treturn true;\r\n}))","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport TextInput from \"components/TextInput\";\r\nimport Tr from 'translations/Translations'\r\nimport SortableHandle from \"components/complex/sortable/SortableHandle\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Select, {createSelectItem} from \"components/Select\";\r\nimport Button from \"components/Button\";\r\nimport {FormHelperText, makeStyles} from \"@material-ui/core\";\r\nimport RadioGroupYesNo from \"components/RadioGroupYesNo\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {PurchasingGroupTemplateFieldType, PurchasingGroupTemplateFieldTypeLabel} from \"../constants/PurchasingGroupTemplateFieldType\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n marginTop: theme.spacing(2),\r\n \"&>*:nth-child(1)\": {\r\n width: 60,\r\n alignSelf: \"center\"\r\n },\r\n \"&>*:nth-child(2)\": {\r\n width: 25,\r\n alignSelf: \"center\"\r\n },\r\n \"&>*:nth-child(3)\": {\r\n flexGrow: 1,\r\n paddingRight: theme.spacing(3)\r\n },\r\n \"&>*:nth-child(4)\": {\r\n width: 120,\r\n paddingRight: theme.spacing(3)\r\n },\r\n \"&>*:nth-child(5)\": {\r\n paddingRight: theme.spacing(2),\r\n textAlign: 'center'\r\n },\r\n \"&>*:nth-child(6)\": {\r\n alignSelf: \"center\"\r\n }\r\n },\r\n yesNo: {\r\n \"&>*.MuiFormGroup-root\": {\r\n flexDirection: \"row\"\r\n }\r\n },\r\n ol: {\r\n paddingInlineStart: theme.spacing(2),\r\n marginLeft: theme.spacing(),\r\n marginRight: theme.spacing(),\r\n },\r\n error: {\r\n marginTop: theme.spacing(),\r\n marginBottom: theme.spacing(2),\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupTemplateField(\r\n {\r\n index,\r\n id,\r\n setAggregatedFieldId,\r\n formikProps,\r\n hasEdit\r\n }) {\r\n const fieldId = `${id}.${index}`\r\n const createId = key => `${fieldId}.${key}`\r\n const classes = useStyle();\r\n const field = getObjectValue(fieldId, formikProps.values, {});\r\n const aggregatedFieldErrorValue = getObjectValue(createId(\"aggregatedFields\"), formikProps.errors, '')\r\n\r\n const getTooltip = () => {\r\n if (field && field.aggregatedFields && field.aggregatedFields.length > 0) {\r\n const fields = getObjectValue(id, formikProps.values, []);\r\n return {fields.map((x, i) => ({\r\n ...x,\r\n order: i + 1\r\n })).filter(x => field.aggregatedFields.includes(x.uniqueId)).map((x, i) => - {x.order + \". \" + x.name}
)}
\r\n }\r\n }\r\n\r\n const onTypeChange = (e) => {\r\n if (e.target.value !== PurchasingGroupTemplateFieldType.NUMBER) {\r\n const allFields = getObjectValue(id, formikProps.values, []);\r\n let updated = false;\r\n const newAllFields = allFields.map(x => x.type === PurchasingGroupTemplateFieldType.AGGREGATE ? {\r\n ...x, aggregatedFields:\r\n (() => {\r\n if (x.aggregatedFields.indexOf(field.uniqueId) > -1) {\r\n updated = true;\r\n return x.aggregatedFields.filter(y => y !== field.uniqueId);\r\n } else {\r\n return x.aggregatedFields;\r\n }\r\n })()\r\n } : x)\r\n if (updated) {\r\n formikProps.setFieldValue(id, newAllFields.map(x => x.uniqueId === field.uniqueId ? {...x, type: e.target.value} : x), true)\r\n }\r\n }\r\n }\r\n\r\n const doDelete = (e) => {\r\n const allFields = getObjectValue(id, formikProps.values, []);\r\n const newAllFields = allFields.filter(x => x.uniqueId !== field.uniqueId).map(x => x.type === PurchasingGroupTemplateFieldType.AGGREGATE ? {\r\n ...x, aggregatedFields:\r\n (() => {\r\n if (x.aggregatedFields.indexOf(field.uniqueId) > -1) {\r\n return x.aggregatedFields.filter(y => y !== field.uniqueId);\r\n } else {\r\n return x.aggregatedFields;\r\n }\r\n })()\r\n } : x)\r\n formikProps.setFieldValue(id, newAllFields, true)\r\n }\r\n\r\n return (\r\n \r\n\r\n \r\n {index + 1}.\r\n \r\n\r\n createSelectItem(x, PurchasingGroupTemplateFieldTypeLabel(x)))}\r\n onChange={onTypeChange}\r\n disabled={!hasEdit}\r\n />\r\n\r\n {\r\n field.type === \"AGGREGATE\" ?\r\n <>\r\n \r\n {aggregatedFieldErrorValue}\r\n >\r\n : \r\n }\r\n\r\n \r\n\r\n \r\n )\r\n}\r\n\r\nPurchasingGroupTemplateField.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default PurchasingGroupTemplateField;","import React, {useEffect, useRef, useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport VS from \"constants/ValidationShema\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport PartsTable from \"components/PartsTable\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport {PurchasingGroupTemplateFieldType} from \"../constants/PurchasingGroupTemplateFieldType\";\r\n\r\nfunction PurchasingGroupTemplateAggregatedFieldsPopup(\r\n {\r\n formikProps,\r\n fieldId,\r\n onClose,\r\n formSubmit,\r\n }) {\r\n\r\n const sendType = useRef('');\r\n const [working, setWorking] = useState(true);\r\n const [fieldsList, setFieldsList] = useState([]);\r\n const formId = useId();\r\n const curSelected = getObjectValue(fieldId, formikProps.values, [])\r\n\r\n const handleSubmit = (type) => {\r\n sendType.current = type;\r\n formSubmit[formId]();\r\n }\r\n\r\n useEffect(() => {\r\n const fieldsListTmp = getObjectValue(\"fields\", formikProps.values, [])\r\n .map((x, i) => ({identity: x.uniqueId, name: x.name, order: i+1, type: x.type}))\r\n .filter(x => x.type === PurchasingGroupTemplateFieldType.NUMBER);\r\n setFieldsList(fieldsListTmp);\r\n setWorking(false)\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n\r\n const onSubmit = ({uniqueIds}) => {\r\n const aggregatedFields = Object.keys(uniqueIds).filter(x => uniqueIds[x] === true);\r\n formikProps.setFieldValue(fieldId, aggregatedFields, true);\r\n onClose();\r\n\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('save'), () => handleSubmit('save'), undefined, working));\r\n return buttons;\r\n }\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(PurchasingGroupTemplateAggregatedFieldsPopup);","import React, {useState} from 'react'\r\nimport {Divider, FormHelperText} from \"@material-ui/core\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Tr from \"translations/Translations\";\r\nimport SortableContainer from \"components/complex/sortable/SortableContainer\";\r\nimport PurchasingGroupTemplateField from \"./PurchasingGroupTemplateField\";\r\nimport PurchasingGroupTemplateAggregatedFieldsPopup from \"./PurchasingGroupTemplateAggregatedFieldsPopup\";\r\nimport Button from \"components/Button\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport PlusOneIcon from \"@material-ui/icons/PlusOne\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\n\r\nfunction PurchasingGroupTemplateForm(\r\n {\r\n formikProps,\r\n hasEdit,\r\n }) {\r\n\r\n const [aggregatedFieldId, setAggregatedFieldId] = useState(null);\r\n const fieldsErrorValue = hasEdit ? getObjectValue(\"fieldsCount\", formikProps.errors, '') : '';\r\n\r\n const addField = () => {\r\n const fields = getObjectValue(\"fields\", formikProps.values, []);\r\n const newFields = [...fields];\r\n newFields.push({\r\n identity: 0,\r\n uniqueId: \"ftf_\" + Math.random().toString(36).substring(2),\r\n name: \"\",\r\n ordinalNumber: 0,\r\n type: \"NUMBER\",\r\n required: true,\r\n aggregatedFields: []\r\n })\r\n formikProps.setFieldValue(\"fields\", newFields, true)\r\n }\r\n\r\n\r\n return <>\r\n \r\n \r\n\r\n Pola szablonu\r\n {fieldsErrorValue}\r\n\r\n \r\n {(formikProps, id, index) => {\r\n return (\r\n \r\n )\r\n }}\r\n \r\n\r\n {hasEdit &&}\r\n\r\n {\r\n !!aggregatedFieldId && setAggregatedFieldId(null)} />\r\n }\r\n >\r\n\r\n}\r\n\r\nPurchasingGroupTemplateForm.propTypes = {}\r\n\r\nexport default PurchasingGroupTemplateForm;\r\n\t\r\n","import React, {useEffect, useState} from 'react'\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport Page from \"components/Page\";\r\nimport Workspace from \"components/Workspace\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport ArrowBackIosIcon from \"@material-ui/icons/ArrowBackIos\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport PurchasingGroupTemplateService from \"services/PurchasingGroupTemplateService\";\r\nimport Form from \"components/Form\";\r\nimport Loading from \"components/Loading\";\r\nimport PurchasingGroupTemplateForm from \"./components/PurchasingGroupTemplateForm\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport SaveIcon from '@material-ui/icons/Save'\r\nimport {connect} from \"react-redux\";\r\nimport {PurchasingGroupTemplateFieldType} from \"./constants/PurchasingGroupTemplateFieldType\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n back: {\r\n position: \"absolute\"\r\n },\r\n save: {\r\n position: \"absolute\",\r\n right: 0\r\n },\r\n bar: {\r\n position: 'sticky',\r\n zIndex: theme.zIndex.appBar - 1,\r\n top: 67,\r\n padding: theme.spacing(2),\r\n backgroundColor: theme.palette.background.paper,\r\n borderBottom: `solid 1px ${theme.palette.primary.main}`,\r\n },\r\n}));\r\n\r\nfunction PurchasingGroupTemplate(\r\n {\r\n match,\r\n formSubmit\r\n }) {\r\n const classes = useStyles();\r\n const FORM_ID = \"PURCHASING_GROUP_TEMPLATE\";\r\n const templateId = match.params.id;\r\n const [tpl, setTpl] = useState(null);\r\n const [hasEdit, setHasEdit] = useState(false);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n useEffect(() => {\r\n PurchasingGroupTemplateService.getTemplate(templateId).then((resp) => {\r\n if (resp) {\r\n const {hasEdit, ...other} = resp;\r\n setTpl(other)\r\n setHasEdit(hasEdit)\r\n }\r\n });\r\n }, [templateId])\r\n\r\n const goToList = () => {\r\n RouterPath.redirect(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_TEMPLATES_LIST))\r\n }\r\n\r\n const saveTemplate = (values) => {\r\n const {fields, fieldsCount, ...other} = values;\r\n const req = {\r\n ...other,\r\n fields: fields.map((x, i) => ({\r\n ...x,\r\n ordinalNumber: i + 1,\r\n aggregatedFields: x.type === PurchasingGroupTemplateFieldType.AGGREGATE ? x.aggregatedFields : null\r\n }))\r\n }\r\n PurchasingGroupTemplateService.saveTemplate(templateId, req).then(resp => {\r\n if (resp && resp.success) {\r\n enqueueSuccessSnackbar(Tr('saved'))\r\n RouterPath.redirect(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID, {\r\n id: resp.result\r\n }))\r\n }\r\n })\r\n\r\n }\r\n\r\n return \r\n \r\n \r\n \r\n {Tr(\"purchase_groups_template\")}\r\n {hasEdit ? : }\r\n \r\n\r\n\r\n {\r\n !tpl ? :\r\n \r\n }\r\n\r\n\r\n \r\n}\r\n\r\nPurchasingGroupTemplate.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(PurchasingGroupTemplate);\r\n\t\r\n","import React from 'react'\r\nimport {Redirect, Route, Switch} from 'react-router-dom';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport PurchasingGroupStages from \"./stages/PurchasingGroupStages\";\r\nimport PurchasingGroupList from \"./list/PurchasingGroupList\";\r\nimport PurchasingGroupMemberList from \"./list/PurchasingGroupMemberList\";\r\nimport NotFound from \"../../NotFound/NotFound\";\r\nimport PurchasingGroupTemplatesList from \"./templates/PurchasingGroupTemplatesList\";\r\nimport PurchasingGroupTemplate from \"./templates/PurchasingGroupTemplate\";\r\n\r\nconst rp = RouterPath.purchasingGroup;\r\n\r\nfunction PurchasingGroup() {\r\n\r\n return (<>\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n >\r\n )\r\n}\r\n\r\nexport default PurchasingGroup;\r\n\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport applySearchParams from \"../libs/applySearchParams\";\r\nimport applySortParams from \"../libs/applySortParams\";\r\nimport {setResource} from \"../redux/actions\";\r\nimport reduxStore from 'redux/store'\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\n\r\nconst __get = async (url, resourcesName) => {\r\n try {\r\n let res = await RestRequestGET(url)\r\n if (resourcesName) {\r\n reduxStore.dispatch(setResource(resourcesName, res))\r\n }\r\n return res;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst __save = async (url, values) => {\r\n try {\r\n const resp = await RestRequestPOST(url, values)\r\n isResponseValid(resp, (e) => {\r\n throw new Error(e);\r\n })\r\n return resp;\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n}\r\n\r\nconst getRegistrationsList = async (searchData) => {\r\n const {pagination, search, sort} = searchData;\r\n\r\n let params = {\r\n ...pagination\r\n }\r\n params = applySearchParams(search, params);\r\n params = applySortParams(sort, params);\r\n return await RestRequestGET(Endpoints.ADMIN_USER_REGISTRATION_LIST, {params});\r\n};\r\n\r\nconst acceptRegistration = async (regId, values) => {\r\n return await __save(Endpoints.ADMIN_USER_REGISTRATION_ID_ACCEPT(regId), values)\r\n}\r\n\r\nconst rejectRegistration = async (regId, values) => {\r\n return await __save(Endpoints.ADMIN_USER_REGISTRATION_ID_REJECT(regId), values)\r\n}\r\n\r\nconst getRegistration = async (regId) => {\r\n return await __get(Endpoints.ADMIN_USER_REGISTRATION_ID(regId))\r\n};\r\n\r\n\r\nconst getAvailableOrgs = async () => {\r\n return await __get(Endpoints.ADMIN_USER_REGISTRATION_AVAILABLE_ORGS)\r\n}\r\n\r\nconst getRegistrationOrganization = async (regId) => {\r\n return await __get(Endpoints.ADMIN_USER_REGISTRATION_ID_ORGANIZATION(regId))\r\n};\r\n\r\nconst saveRegistrationOrganization = async (regId, values) => {\r\n return await RestRequestPOST(Endpoints.ADMIN_USER_REGISTRATION_ID_ORGANIZATION(regId), values)\r\n};\r\n\r\nexport default {\r\n getRegistrationsList,\r\n getRegistration,\r\n getAvailableOrgs,\r\n acceptRegistration,\r\n rejectRegistration,\r\n getRegistrationOrganization,\r\n saveRegistrationOrganization\r\n}","import Tr from \"translations/Translations\";\r\n\r\nexport const RegistrationStatus = {\r\n NEW: \"NEW\",\r\n ACCEPTED: \"ACCEPTED\",\r\n REJECTED: \"REJECTED\"\r\n}\r\nconst _TR_PREFIX = 'registration_status_';\r\n\r\nexport const RegistrationStatusLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport {TextField} from \"@material-ui/core\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport {RegistrationStatus, RegistrationStatusLabel} from \"../constants/RegistrationStatus\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2),\r\n '&>*:not(:first-child):not(:last-child)': {\r\n marginLeft: theme.spacing(4),\r\n }\r\n },\r\n state: {\r\n width: 200,\r\n },\r\n search: {\r\n width: 350,\r\n }\r\n}));\r\n\r\nconst EMPTY_SEARCH_OBJECT = {state: \"\", search: ''}\r\nconst MAX_SEARCH_LENGTH = 100;\r\n\r\nconst decisionsList = [{label: Tr('procedure_status_0'), value: \"\"}, ...Object.keys(RegistrationStatus).map(key => ({\r\n label: RegistrationStatusLabel(key),\r\n value: key\r\n}))];\r\n\r\nfunction RegistrationsSearch(\r\n {\r\n searchInProgress,\r\n initSearch,\r\n doSearch\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [value, setValue] = useState(initSearch ? {...initSearch} : {...EMPTY_SEARCH_OBJECT});\r\n const [submitState, setSubmitState] = useState(0);\r\n\r\n useEffect(() => {\r\n if (submitState && !searchInProgress) {\r\n const valueFiltered = Object.keys(value)\r\n .filter((k) => value[k])\r\n .reduce((a, k) => ({...a, [k]: value[k]}), {});\r\n doSearch(valueFiltered);\r\n }\r\n // eslint-disable-next-line\r\n }, [submitState]);\r\n\r\n const handleChange = (id, e) => {\r\n setValue({...value, [id]: e.target.value});\r\n }\r\n\r\n const handleSubmit = () => {\r\n setSubmitState(x => x + 1)\r\n };\r\n\r\n\r\n const handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n handleSubmit()\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {Tr('search_box')}\r\n \r\n\r\n handleChange('search', e)}\r\n onKeyUp={handleKeyPress}\r\n fullWidth\r\n value={value.search}\r\n inputProps={{maxLength: MAX_SEARCH_LENGTH}}\r\n />\r\n\r\n {\r\n handleChange(\"state\", e);\r\n handleSubmit();\r\n }}\r\n />\r\n\r\n \r\n \r\n {\r\n setValue(EMPTY_SEARCH_OBJECT);\r\n handleSubmit()\r\n }}/>\r\n
\r\n \r\n >\r\n )\r\n}\r\n\r\nRegistrationsSearch.propTypes = {\r\n doSearch: PropTypes.func.isRequired,\r\n searchInProgress: PropTypes.bool\r\n}\r\n\r\n\r\nexport default RegistrationsSearch;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Page from \"components/Page\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport Pagination from \"components/Pagination\";\r\nimport Tr from \"translations/Translations\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport moment from \"moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport Loading from \"components/Loading\";\r\nimport Workspace from \"components/Workspace\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport RegistrationService from \"services/RegistrationService\";\r\nimport RegistrationsSearch from \"./RegistrationsSearch\";\r\nimport {RegistrationStatusLabel} from \"../constants/RegistrationStatus\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n organizationNameColumn: {\r\n wordBreak: \"break-all\",\r\n paddingRight: theme.spacing(2),\r\n },\r\n\r\n emailColumn: theme.components.table.emailColumn,\r\n numberColumn: {\r\n width: 120,\r\n wordBreak: 'break-all'\r\n },\r\n typeColumn: {\r\n width: 170\r\n },\r\n dateTimeColumn: theme.components.table.dateTimeColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n\r\n}));\r\n\r\nfunction RegistrationsList(\r\n {\r\n match\r\n }\r\n) {\r\n const classes = useStyles();\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig, setSortConfig} = useSearch({\r\n search: {\r\n state: \"\",\r\n search: \"\"\r\n },\r\n sort: {\r\n column: 'dateInserted',\r\n direction: 'desc',\r\n }\r\n });\r\n const [registrationsList, setRegistrationsList] = useState(false);\r\n const [working, setWorking] = useState();\r\n\r\n useEffect(() => {\r\n setWorking(true);\r\n RegistrationService.getRegistrationsList(searchData).then((resp) => {\r\n setTotalCount(resp.totalCount)\r\n setRegistrationsList(resp);\r\n }).finally(() => setWorking(false));\r\n // eslint-disable-next-line\r\n }, [searchData]);\r\n\r\n useDidUpdateEffect(() => {\r\n if (registrationsList?.totalCount !== undefined) {\r\n setTotalCount(registrationsList.totalCount)\r\n }\r\n }, [registrationsList]);\r\n\r\n const goToRegistration = (x) => {\r\n RouterPath.redirect(RouterPath.createPath(RouterPath.admin.ADMIN_REGISTRATION_ID, {id: x.identity}))\r\n }\r\n\r\n const handleSortChange = (id) => {\r\n let direction = 'desc';\r\n const active = searchData.sort.column === id;\r\n if (active) {\r\n direction = searchData.sort.direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n\r\n setSortConfig({\r\n column: id,\r\n direction\r\n })\r\n }\r\n\r\n const getSortProps = (id) => {\r\n return {\r\n active: searchData.sort.column === id,\r\n direction: searchData.sort.direction,\r\n onClick: () => {\r\n handleSortChange(id)\r\n }\r\n }\r\n }\r\n\r\n const getHeaders = () => {\r\n const headers = [];\r\n headers.push({\r\n value: Tr('organizational_unit'),\r\n sort: getSortProps('organizationName')\r\n });\r\n headers.push({\r\n value: Tr('date_of_receipt'),\r\n sort: getSortProps('dateInserted')\r\n });\r\n headers.push({\r\n value: Tr('date_of_decision'),\r\n sort: getSortProps('decisionDate')\r\n });\r\n headers.push({\r\n value: Tr('status'),\r\n sort: getSortProps('status')\r\n });\r\n headers.push('');\r\n return headers;\r\n };\r\n\r\n return (\r\n \r\n {\r\n !registrationsList ? :\r\n <>\r\n \r\n\r\n {\r\n return [\r\n x.organizationName,\r\n moment(x.dateInserted).format(DateFormats.DATETIME_FORMAT),\r\n x.decisionDate ? moment(x.decisionDate).format(DateFormats.DATETIME_FORMAT) : null,\r\n x.status ? RegistrationStatusLabel(x.status) : null,\r\n goToRegistration(x)}/>\r\n ]\r\n })\r\n }\r\n columnClasses={\r\n [\r\n classes.organizationNameColumn,\r\n classes.dateTimeColumn,\r\n classes.dateTimeColumn,\r\n classes.numberColumn,\r\n classes.buttonColumn,\r\n ]\r\n }\r\n />\r\n {\r\n !registrationsList.items.length && {Tr('no_options')}\r\n }\r\n \r\n >\r\n }\r\n \r\n )\r\n}\r\n\r\nRegistrationsList.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default RegistrationsList;","import React from 'react'\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PropTypes from \"prop-types\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport Typography from \"components/Typography\";\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from \"clsx\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n borderBottom: \"solid 1px\",\r\n marginBottom: theme.spacing(3),\r\n paddingBottom: theme.spacing()\r\n },\r\n titleRoot: {\r\n '&>*:nth-child(1)': {\r\n flexGrow: 1\r\n }\r\n },\r\n content: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction InfoEntry(\r\n {\r\n label,\r\n className,\r\n children\r\n }) {\r\n const classes = useStyle();\r\n\r\n\r\n return \r\n {`${Tr(label)}: `}{children}\r\n
\r\n\r\n}\r\n\r\nInfoEntry.propTypes = {\r\n label: PropTypes.string.isRequired,\r\n collapsible: PropTypes.bool\r\n}\r\n\r\nexport default InfoEntry;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport DoubleButton from 'components/popup/components/DoubleButton';\r\nimport TextInput from 'components/TextInput';\r\nimport * as Yup from 'yup';\r\nimport validationShema from 'constants/ValidationShema';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\n\r\nfunction UserRegistrationRejectPopup(\r\n {\r\n onClose,\r\n onReject,\r\n formSubmit\r\n }) {\r\n\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]()\r\n\r\n return (\r\n }\r\n >\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(UserRegistrationRejectPopup);","import React, {useEffect, useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport DoubleButton from 'components/popup/components/DoubleButton';\r\nimport useId from 'hooks/useId';\r\nimport RegistrationService from \"services/RegistrationService\";\r\nimport Loading from \"components/Loading\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport {connect} from \"react-redux\";\r\nimport TextInput from \"components/TextInput\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Form from \"components/Form\";\r\nimport Button from \"components/Button\";\r\nimport PlusOneIcon from \"@material-ui/icons/PlusOne\";\r\nimport {FieldArray} from \"formik\";\r\nimport Select, {createSelectItem} from \"components/Select\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport {FormHelperText, makeStyles} from \"@material-ui/core\";\r\nimport isResponseValid from \"../../../../../libs/isResponseValid\";\r\nimport useSnackbar from \"../../../../../hooks/useSnackbar\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n representativeGrid: {\r\n \"&>*:nth-child(1)\": {\r\n width: 160,\r\n marginRight: theme.spacing(3)\r\n },\r\n \"&>*:nth-child(2)\": {\r\n flexGrow: 1,\r\n marginRight: theme.spacing(3)\r\n },\r\n \"&>*:nth-child(3)\": {\r\n width: 350,\r\n marginRight: theme.spacing(3)\r\n },\r\n \"&>*:nth-child(4)\": {\r\n width: 25,\r\n marginRight: theme.spacing(3)\r\n },\r\n }\r\n}))\r\n\r\n\r\nconst EMPTY_REPRESENTATIVE = {identity: 0, title: \"\", name: \"\", role: \"\"}\r\n\r\nfunction UserRegistrationAddOrganizationUnit(\r\n {\r\n registrationId,\r\n onCancel,\r\n onCreate,\r\n formSubmit\r\n }) {\r\n\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]()\r\n const [wrapper, setWrapper] = useState(null);\r\n const {enqueueErrorSnackbar} = useSnackbar();\r\n\r\n useEffect(() => {\r\n RegistrationService.getRegistrationOrganization(registrationId).then(setWrapper);\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const addRepresentative = (arrayHelpers) => {\r\n arrayHelpers.push(EMPTY_REPRESENTATIVE);\r\n }\r\n\r\n const removeRepresentative = (arrayHelpers, index) => {\r\n arrayHelpers.remove(index);\r\n }\r\n\r\n const onSubmit = (values) => {\r\n RegistrationService.saveRegistrationOrganization(registrationId, values).then((resp) => {\r\n if(isResponseValid(resp, enqueueErrorSnackbar)) {\r\n onCreate(resp)\r\n }\r\n }).catch(()=> enqueueErrorSnackbar(Tr(\"unknown_error_message\")));\r\n }\r\n\r\n return (\r\n }\r\n >\r\n {\r\n !wrapper ? :\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(UserRegistrationAddOrganizationUnit);\r\n\r\nfunction OrganizationUnitRepresentative(\r\n {\r\n formikProps,\r\n index,\r\n representativesTitleDictionary,\r\n representativesRoleDictionary,\r\n removeRepresentative\r\n\r\n }) {\r\n const classes = useStyle();\r\n\r\n return <>\r\n \r\n createSelectItem(x, representativesTitleDictionary[x]))}\r\n required\r\n />\r\n \r\n createSelectItem(x, representativesRoleDictionary[x]))}\r\n required\r\n />\r\n \r\n \r\n\r\n >\r\n\r\n}","import React, {useEffect, useReducer, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Workspace from \"components/Workspace\";\r\nimport Page from \"components/Page\";\r\nimport RegistrationService from \"services/RegistrationService\";\r\nimport Loading from \"components/Loading\";\r\nimport InfoEntry from \"./InfoEntry\";\r\nimport moment from \"moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport {RegistrationStatusLabel} from \"../constants/RegistrationStatus\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Form from \"components/Form\";\r\nimport VS from 'constants/ValidationShema';\r\nimport PartsTable from \"components/PartsTable\";\r\nimport Tr from \"translations/Translations\";\r\nimport {connect} from \"react-redux\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Button from \"components/Button\";\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport RemoveCircleIcon from '@material-ui/icons/RemoveCircle';\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport OrganizationInput from \"components/OrganizationInput\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport {getUserFullNameWithEmailAndDeputy} from \"libs/userNameGetter\";\r\nimport UserRegistrationRejectPopup from \"./UserRegistrationRejectPopup\";\r\nimport UserRegistrationAddOrganizationUnit from \"./UserRegistrationAddOrganizationUnit\";\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n margin: {\r\n marginLeft: theme.spacing(2),\r\n marginRight: theme.spacing(2)\r\n },\r\n column: {\r\n flex: \"1 0 50%\",\r\n padding: theme.spacing(2),\r\n paddingBottom: 0\r\n },\r\n backGrid: {\r\n '&>*:first-child': {\r\n marginRight: \"auto\"\r\n }\r\n },\r\n attributes: {\r\n marginLeft: theme.spacing(4)\r\n },\r\n back: {\r\n position: \"absolute\"\r\n }\r\n\r\n}))\r\n\r\nfunction UserRegistration(\r\n {\r\n match,\r\n formSubmit\r\n }\r\n) {\r\n\r\n const classes = useStyles();\r\n const FORM_ID = \"registration_form\"\r\n const regId = match.params.id;\r\n const [registration, setRegistration] = useState();\r\n const [availableOrganizations, setAvailableOrganizations] = useState([]);\r\n const [rejectPopup, setRejectPopup] = useState(false);\r\n const [addOrgPopup, setAddOrgPopup] = useState(false);\r\n const {enqueueSuccessSnackbar, enqueueErrorSnackbar} = useSnackbar();\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n accept: false,\r\n reject: false\r\n });\r\n\r\n const handleSubmit = () => formSubmit[FORM_ID]();\r\n\r\n useEffect(() => {\r\n RegistrationService.getRegistration(regId).then((resp) => {\r\n setRegistration(resp);\r\n if (resp && resp.editable && !resp.emailAlreadyUsed) {\r\n RegistrationService.getAvailableOrgs().then(orgs => setAvailableOrganizations(orgs))\r\n } else {\r\n setAvailableOrganizations([]);\r\n }\r\n\r\n })\r\n\r\n }, [regId])\r\n\r\n const goToList = () => {\r\n RouterPath.redirect(RouterPath.createPath(RouterPath.admin.ADMIN_REGISTRATIONS_LIST))\r\n }\r\n\r\n const getInitValues = () => {\r\n const initVal = {};\r\n const curRoles = registration.form.roles || [];\r\n const roles = registration.availableRoles.reduce((prev, cur) => {\r\n prev[\"_\" + cur.identity] = curRoles.includes(cur.identity);\r\n return prev;\r\n }, {})\r\n initVal.roles = roles;\r\n\r\n const attrKeys = Object.keys(registration.availableAttributes);\r\n for (let attrKey of attrKeys) {\r\n const selected = registration.form.attributes[attrKey] || [];\r\n const initAttr = registration.availableAttributes[attrKey].reduce((prev, cur) => {\r\n prev[cur] = selected.includes(cur);\r\n return prev;\r\n }, {})\r\n initVal[attrKey] = initAttr;\r\n }\r\n initVal.organization = registration.form.organization\r\n return initVal;\r\n }\r\n\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('back_to_list'), goToList, 'outlined', iconWorks.anyWorks, undefined, false, ArrowBackIosIcon));\r\n buttons.push(createButton(Tr('reject'), onReject, 'outlined', !registration.editable || iconWorks.anyWorks, undefined, iconWorks.reject, RemoveCircleIcon));\r\n buttons.push(createButton(Tr('accept'), handleSubmit, undefined, registration.emailAlreadyUsed || !registration.editable || iconWorks.anyWorks, undefined, iconWorks.accept, CheckCircleIcon));\r\n return buttons;\r\n }\r\n\r\n const onSubmit = (values) => {\r\n\r\n simpleConfirm(\"registration_form_accept_confirm\", () => {\r\n const {organization, roles, ...rest} = values;\r\n const form = {\r\n orgId: organization.orgId,\r\n roles: Object.keys(roles).filter(k => roles[k] === true).map(k => parseInt(k.substring(1)))\r\n }\r\n const attributes = {}\r\n for (let key of Object.keys(rest)) {\r\n attributes[key] = Object.keys(rest[key]).filter(k => rest[key][k] === true)\r\n }\r\n form.attributes = attributes;\r\n\r\n dispatchIconWorks({type: 'accept', works: true})\r\n RegistrationService.acceptRegistration(regId, form).then(resp => {\r\n if (resp && resp.success) {\r\n enqueueSuccessSnackbar(Tr(\"registration_form_accepted\"));\r\n goToList();\r\n } else {\r\n enqueueErrorSnackbar(Tr('unknown_error_message'))\r\n dispatchIconWorks({type: 'accept', works: false})\r\n }\r\n }).catch(() => {\r\n enqueueErrorSnackbar(Tr('unknown_error_message'));\r\n dispatchIconWorks({type: 'accept', works: false})\r\n });\r\n })\r\n }\r\n\r\n const onReject = () => {\r\n setRejectPopup(true);\r\n }\r\n const doReject = (values) => {\r\n setRejectPopup(false);\r\n dispatchIconWorks({type: 'reject', works: true})\r\n RegistrationService.rejectRegistration(regId, values).then(resp => {\r\n if (resp && resp.success) {\r\n enqueueSuccessSnackbar(Tr(\"registration_form_rejected\"));\r\n goToList();\r\n } else {\r\n enqueueErrorSnackbar(Tr('unknown_error_message'))\r\n dispatchIconWorks({type: 'reject', works: false})\r\n }\r\n }).catch(() => {\r\n enqueueErrorSnackbar(Tr('unknown_error_message'));\r\n dispatchIconWorks({type: 'reject', works: false})\r\n })\r\n }\r\n\r\n const selectOrganization = (formikProps, org) => {\r\n formikProps.setFieldValue(\"organization\", org);\r\n setAvailableOrganizations([...availableOrganizations, org])\r\n setAddOrgPopup(false)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {Tr(\"registration_form\")}\r\n \r\n \r\n {(!registration || !availableOrganizations) ? :\r\n <>\r\n {!!registration.emailAlreadyUsed && <>\r\n {Tr(\"registration_email_already_used\")}\r\n {!!registration.editable && }\r\n >}\r\n\r\n \r\n \r\n {registration.form.firstName}\r\n {registration.form.email}\r\n {registration.form.organizationName}\r\n {registration.form.regon}\r\n {registration.form.city}\r\n
\r\n \r\n {registration.form.lastName}\r\n {registration.form.phone}\r\n {registration.form.nip}\r\n {registration.form.address}\r\n {registration.form.postCode}\r\n
\r\n \r\n\r\n {registration.form.notes}\r\n {moment(registration.form.dateInserted).format(DateFormats.DATETIME_FORMAT)}\r\n {registration.form.status ? RegistrationStatusLabel(registration.form.status) : null}\r\n {!!registration.form.decisionDate &&\r\n {moment(registration.form.decisionDate).format(DateFormats.DATETIME_FORMAT)}\r\n }\r\n {!!registration.form.decisionUser &&\r\n {getUserFullNameWithEmailAndDeputy(registration.form.decisionUser)}\r\n }\r\n \r\n {rejectPopup && setRejectPopup(false)}/>}\r\n >\r\n }\r\n \r\n )\r\n}\r\n\r\nUserRegistration.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({formSubmit: state.form}), {})(UserRegistration);","import React from 'react'\r\nimport {Redirect, Route, Switch} from 'react-router-dom';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport NotFound from \"../../NotFound/NotFound\";\r\nimport RegistrationsList from \"./registrations/list/RegistrationsList\";\r\nimport UserRegistration from \"./registrations/registration/UserRegistration\";\r\n\r\nconst rp = RouterPath.admin;\r\n\r\nfunction Admin() {\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\nexport default Admin;\r\n\r\n","import React, {useContext, useRef} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport {makeStyles, Tooltip} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ExpansionPanel from 'components/ExpansionPanel';\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowUp'\r\nimport clsx from 'clsx';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport {StageSectionsUrlParams, StageSectionParamToSectionName, StageSectionsComponents, StageSectionsTitles} from \"../../constants/StageSections\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {OfferSectionProvider} from \"context/OfferSectionContext\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport {connect} from \"react-redux\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n rotate: {\r\n transform: 'rotate(180deg)'\r\n },\r\n adornmentGrid: {\r\n '&>*:first-child': {\r\n flexGrow: 1,\r\n marginRight: theme.spacing(2)\r\n }\r\n },\r\n titleGrid: {\r\n '&>*:first-child': {\r\n flexGrow: 10000,\r\n }\r\n }\r\n}))\r\n\r\nfunction OfferExpansionSections(\r\n {\r\n section,\r\n stateCloseValidator\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const demandId = params.id;\r\n const stageId = params.stageId;\r\n const openedSectionParam = params.section;\r\n const openedSection = openedSectionParam ? StageSectionParamToSectionName[openedSectionParam] : undefined;\r\n const expanded = openedSection === section.section;\r\n const panelRef = useRef();\r\n const purchaserOfferContext = useContext(PurchaserOfferContext)\r\n\r\n const handleClick = id => {\r\n\r\n if (section.status === DemandValidationSectionStatus.DISABLED)\r\n return false;\r\n\r\n\r\n if (stateCloseValidator && !stateCloseValidator()) {\r\n simpleConfirm(\"modification_cancel_popup_text\", () => {\r\n doHandleClick(id)\r\n })\r\n } else {\r\n doHandleClick(id)\r\n }\r\n }\r\n\r\n const doHandleClick = id => {\r\n if (openedSection === id) {\r\n if (purchaserOfferContext) {\r\n RouterPath.redirectWithoutHistory(\r\n RouterPath.createPath(RouterPath.purchaserDemand.PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID, {\r\n id: demandId,\r\n contractorDepartmentId: purchaserOfferContext.contractorDepartmentId,\r\n stageId\r\n })\r\n )\r\n } else {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_OFFER_STAGE_ID,\r\n {id: demandId, stageId}))\r\n }\r\n } else {\r\n if (purchaserOfferContext) {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchaserDemand.PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID_SECTION, {\r\n id: demandId,\r\n contractorDepartmentId: purchaserOfferContext.contractorDepartmentId,\r\n stageId,\r\n section: StageSectionsUrlParams[id]\r\n }))\r\n } else {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_OFFER_STAGE_ID_SECTION, {\r\n id: demandId,\r\n stageId,\r\n section: StageSectionsUrlParams[id]\r\n }))\r\n }\r\n }\r\n }\r\n\r\n const Component = StageSectionsComponents[section.section];\r\n const TitleComponent = StageSectionsTitles[section.section];\r\n return (\r\n }\r\n classesObj={{titleGrid: classes.titleGrid}}\r\n titleAdornment={\r\n \r\n \r\n {section.status !== DemandValidationSectionStatus.DISABLED &&\r\n \r\n \r\n }\r\n \r\n }\r\n expanded={expanded}\r\n onChange={() => handleClick(section.section)}\r\n >\r\n {expanded && \r\n \r\n }\r\n \r\n )\r\n\r\n}\r\n\r\nOfferExpansionSections.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n stateCloseValidator: state.stepper.stateCloseValidator}))(OfferExpansionSections);","import React, {useEffect, useState} from 'react';\r\nimport Dialog from \"components/Dialog\";\r\nimport {TextField} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport SingleButton from \"components/popup/components/SingleButton\";\r\nimport {connect} from \"react-redux\";\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Typography from \"components/Typography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport {ContractorPasswordState} from \"constants/ContractorPasswordState\";\r\nimport {useParams} from \"react-router\";\r\n\r\n\r\nconst DefineOfferPasswordPopup = (\r\n {\r\n popupConfig\r\n }) => {\r\n const params = useParams();\r\n const [passwordInfo, setPasswordInfo] = useState(null);\r\n const [error, setError] = useState(null);\r\n const [working, setWorking] = useState(false);\r\n const [password, setPassword] = useState(\"\");\r\n const [passwordError, setPasswordError] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n if (popupConfig) {\r\n DemandOffersService.getPasswordStatus(params.id, params.stageId)\r\n .then((resp) => {\r\n if (isResponseValid(resp, setError)) {\r\n if (resp.result.state === ContractorPasswordState.HAS_PASSWORD_STORED) {\r\n onSuccess();\r\n }\r\n setPasswordInfo(resp.result)\r\n }\r\n })\r\n .catch(onError);\r\n } else {\r\n setPasswordInfo(null);\r\n setError(null);\r\n setWorking(false);\r\n setPassword(\"\");\r\n setPasswordError(null);\r\n }\r\n // eslint-disable-next-line\r\n }, [popupConfig])\r\n\r\n const onError = () => {\r\n if (popupConfig && popupConfig.errorCallback) popupConfig.errorCallback();\r\n DemandOffersService.clearResources(DemandOffersService.DEMAND_CONTRACTOR_PASSWORD_POPUP);\r\n }\r\n const onSuccess = () => {\r\n if (popupConfig && popupConfig.successCallback) popupConfig.successCallback();\r\n DemandOffersService.clearResources(DemandOffersService.DEMAND_CONTRACTOR_PASSWORD_POPUP);\r\n }\r\n\r\n const onStorePassword = () => {\r\n if (working)\r\n return;\r\n\r\n setWorking(true);\r\n DemandOffersService.savePassword(params.id, params.stageId, password).then(resp => {\r\n if (isResponseValid(resp, setPasswordError)) {\r\n onSuccess();\r\n } else {\r\n setWorking(false);\r\n }\r\n }).catch(() => setWorking(false))\r\n\r\n }\r\n\r\n const handleKeyUp = (e) => {\r\n if (e.key === 'Enter') {\r\n onStorePassword();\r\n }\r\n }\r\n\r\n if (!popupConfig) {\r\n return null;\r\n }\r\n return (}\r\n loading={!passwordInfo && !error}\r\n >\r\n\r\n {!!error && {error}}\r\n {!!passwordInfo && <>\r\n {passwordInfo.title}\r\n
\r\n \r\n\r\n {!!passwordError && {passwordError}}\r\n \r\n setPassword(e.target.value)}\r\n />\r\n onStorePassword()}>{Tr('confirm')}\r\n \r\n >}\r\n )\r\n\r\n}\r\n\r\n\r\nDefineOfferPasswordPopup.propTypes = {};\r\n\r\nexport default connect((state) => ({\r\n popupConfig: state.resources[DemandOffersService.DEMAND_CONTRACTOR_PASSWORD_POPUP]\r\n}))(DefineOfferPasswordPopup);","import React, {useContext} from 'react'\r\nimport {makeStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport {StageSections, StageSectionsOrder} from \"../constants/StageSections\";\r\nimport OfferExpansionSections from \"./common/OfferExpansionSections\";\r\nimport DefineOfferPasswordPopup from \"./common/DefineOfferPasswordPopup\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport Button from \"components/Button\";\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Tr from \"translations/Translations\"\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {useParams} from \"react-router\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n height: '100%',\r\n '&>*:not(:first-child)': {\r\n marginTop: theme.spacing(2)\r\n }\r\n }\r\n}))\r\n\r\nfunction OfferSections(\r\n {\r\n demandStageSectionsList\r\n }) {\r\n const classes = useStyle();\r\n const purchaserOfferContext = useContext(PurchaserOfferContext)\r\n const params = useParams();\r\n const demandId = params.id;\r\n\r\n const backClick = () => {\r\n if(demandStageSectionsList[StageSections.DASHBOARD].oldPlatformOfferTabUrl) {\r\n window.location.href = demandStageSectionsList[StageSections.DASHBOARD].oldPlatformOfferTabUrl;\r\n } else {\r\n RouterPath.redirect(RouterPath.createPath(RouterPath.myProcedure.steps.MP_3_ID, {id: demandId}));\r\n }\r\n }\r\n\r\n return (\r\n \r\n {\r\n purchaserOfferContext && \r\n \r\n \r\n }\r\n {StageSectionsOrder.filter((sectionId) => {\r\n const section = demandStageSectionsList[sectionId];\r\n return !!section && section.status !== DemandValidationSectionStatus.UNAVAILABLE\r\n })\r\n .map((sectionId) => {\r\n return ()\r\n })}\r\n\r\n \r\n
\r\n )\r\n}\r\n\r\nOfferSections.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default OfferSections;","import React, {useCallback, useEffect, useMemo, useState} from 'react'\r\nimport Workspace from \"components/Workspace\";\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport {connect} from 'react-redux'\r\nimport Loading from \"components/Loading\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport OfferSections from \"../../../../contractor/demand/scenes/offer/components/OfferSections\";\r\nimport {PurchaserOfferContextProvider} from \"context/PurchaserOfferContext\";\r\nimport {OfferStageTranslationsContextProvider} from \"context/OfferStageTranslationsContext\";\r\nimport DemandService from \"services/DemandService\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\n\r\nfunction PurchaserOfferPanel(\r\n {\r\n match,\r\n demandStagesList,\r\n demandStageSectionsList\r\n }) {\r\n\r\n const demandId = match.params.id;\r\n const stageId = match.params.stageId;\r\n const contractorDepartmentId = match.params.contractorDepartmentId;\r\n const [stageTranslations, setStageTranslations] = useState({});\r\n const supplierId = useMemo(() => {\r\n if (stageId && demandStagesList)\r\n return (demandStagesList.find(x => x.identity === parseInt(stageId)) || {supplierId: null}).supplierId\r\n }, [stageId, demandStagesList])\r\n\r\n useEffect(() => {\r\n if (demandStagesList) {\r\n if (!stageId) {\r\n const href = RouterPath.createPath(RouterPath.purchaserDemand.PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID, {\r\n id: demandId,\r\n contractorDepartmentId: contractorDepartmentId,\r\n stageId: demandStagesList[demandStagesList.length - 1].identity\r\n });\r\n RouterPath.redirectWithoutHistory(href);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [demandStagesList, stageId, contractorDepartmentId])\r\n\r\n\r\n useEffect(() => {\r\n DemandOffersService.getStages(demandId, contractorDepartmentId);\r\n return () => {\r\n DemandOffersService.clearResources(DemandOffersService.DEMAND_STAGES_LIST);\r\n }\r\n }, [demandId, contractorDepartmentId])\r\n\r\n\r\n useEffect(() => {\r\n if (stageId && supplierId) {\r\n DemandOffersService.getStageSections(demandId, stageId, supplierId);\r\n DemandOffersService.getStageTranslations(demandId, stageId, supplierId).then(resp => setStageTranslations(resp))\r\n DemandService.getBuyerPrivileges(demandId);\r\n }\r\n return () => {\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY);\r\n DemandOffersService.clearResources(DemandOffersService.DEMAND_STAGE_SECTIONS_LIST, supplierId);\r\n }\r\n }, [demandId, stageId, supplierId])\r\n\r\n const getStageTranslation = useCallback((trKey) => {\r\n return stageTranslations[trKey] || trKey;\r\n }, [stageTranslations]);\r\n\r\n return (\r\n <>\r\n {(!demandStagesList || !demandStageSectionsList || !supplierId) ? :\r\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 connect((state) => ({\r\n demandStagesList: state.resources[DemandOffersService.DEMAND_STAGES_LIST],\r\n demandStageSectionsList: state.resources[DemandOffersService.DEMAND_STAGE_SECTIONS_LIST],\r\n}), {})(PurchaserOfferPanel)","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {Route, Switch} from 'react-router-dom';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport PurchaserOfferPanel from \"./offer/PurchaserOfferPanel\";\r\n\r\nconst rp = RouterPath.purchaserDemand;\r\n\r\nfunction PurchaserScenesRouter() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nPurchaserScenesRouter.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nPurchaserScenesRouter.defaultProps = {}\r\n\r\nexport default PurchaserScenesRouter;","import React, {useMemo} from 'react'\r\nimport {AppBar, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport StageElement from './components/StageElement';\r\nimport GridBlock from 'components/GridBlock';\r\nimport {withRouter} from \"react-router\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {connect} from \"react-redux\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.background.paper,\r\n top: 64,\r\n zIndex: 1099\r\n },\r\n gridItem: {\r\n flexGrow: 1\r\n },\r\n modification: {\r\n fontWeight: 400\r\n }\r\n})\r\n\r\nfunction ContractorStageBar(\r\n {\r\n contractor,\r\n classes,\r\n match,\r\n demandStagesList = [],\r\n demandHeader\r\n }) {\r\n const demandId = match.params.id;\r\n const stageId = match.params.stageId;\r\n const contractorDepartmentId = !contractor ? match.params.contractorDepartmentId : undefined;\r\n\r\n const createElement = (label, label2, onClick, current) => ({label, label2, onClick, current})\r\n\r\n const stageClick = (path) => {\r\n RouterPath.redirect(path);\r\n }\r\n\r\n\r\n const elements = useMemo(() => {\r\n\r\n const elements = demandStagesList.map(x => createElement(\r\n x.name,\r\n undefined,\r\n () => {\r\n if (contractor) {\r\n if(demandHeader?.apiOffers) {\r\n stageClick(RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_OFFER_STAGE_ID, {id: demandId, stageId: x.identity}))\r\n } else {\r\n window.location.href = demandHeader.oldPlatformRoundStatusUrl;\r\n }\r\n\r\n } else {\r\n stageClick(RouterPath.createPath(RouterPath.purchaserDemand.PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID, {\r\n id: demandId,\r\n contractorDepartmentId,\r\n stageId: x.identity\r\n }))\r\n }\r\n },\r\n \"\" + x.identity === stageId))\r\n\r\n return elements;\r\n // eslint-disable-next-line\r\n }, [demandStagesList, stageId, contractorDepartmentId]);\r\n\r\n\r\n return (\r\n \r\n \r\n {elements.map(({label, label2, onClick, current}, i) => {\r\n return (\r\n \r\n {label} {!!label2 && ({label2})}\r\n \r\n )\r\n })}\r\n \r\n \r\n )\r\n}\r\n\r\nContractorStageBar.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n}), {})(withRouter(withStyles(style)(ContractorStageBar)));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Page from 'components/Page';\r\nimport InfoBar from \"components/complex/infobar/InfoBar\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport PurchaserScenesRouter from \"./PurchaserScenesRouter\";\r\nimport DemandOffersService from \"../../../../services/DemandOffersService\";\r\nimport {connect} from \"react-redux\";\r\nimport StageBar from \"../../../../components/complex/stagebar/StageBar\";\r\nimport ContractorStageBar from \"../../../../components/complex/stagebar/ContractorStageBar\";\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n content: {\r\n padding: theme.spacing(2)\r\n }\r\n}));\r\n\r\nfunction PurchaserStepperPages(\r\n {\r\n match,\r\n demandStagesList\r\n }) {\r\n const classes = useStyles();\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nPurchaserStepperPages.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n //inicjalizowane są w konkretntm kontekście, np: nie będzie dla korespondencji, inne będą dla oferty wykonawcy a inne dla postępowania wieloetapowego\r\n demandStagesList: state.resources[DemandOffersService.DEMAND_STAGES_LIST]\r\n}), {})(PurchaserStepperPages);\r\n\r\n","import React, {useCallback, useEffect, useRef, useState} from 'react'\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport {connect} from 'react-redux'\r\nimport Loading from \"components/Loading\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {PurchaserOfferContextProvider} from \"context/PurchaserOfferContext\";\r\nimport {OfferStageTranslationsContextProvider} from \"context/OfferStageTranslationsContext\";\r\nimport OfferEditPanel from \"../../../../contractor/demand/scenes/offer/components/panels/offerEdit/OfferEditPanel\";\r\nimport {StageSectionsUrlParams} from \"../../../../contractor/demand/scenes/offer/constants/StageSections\";\r\nimport {useParams} from \"react-router\";\r\nimport DemandOffersOfferService from \"services/DemandOffersOfferService\";\r\nimport {OfferMode} from \"../../../../contractor/demand/scenes/offer/components/common/constants/OfferMode\";\r\nimport {OfferSectionProvider} from \"context/OfferSectionContext\";\r\nimport InfoBar from \"components/complex/infobar/InfoBar\";\r\nimport StageBar from \"components/complex/stagebar/StageBar\";\r\nimport Page from \"components/Page\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport GridBlock from \"../../../../../components/GridBlock\";\r\nimport Button from \"../../../../../components/Button\";\r\nimport ArrowBackIosIcon from \"@material-ui/icons/ArrowBackIos\";\r\nimport Tr from \"../../../../../translations/Translations\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n content: {\r\n margin: theme.spacing(2),\r\n padding: theme.spacing(2),\r\n border: `solid 1px ${theme.palette.background.paper}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n button: {\r\n margin: theme.spacing(2),\r\n }\r\n}));\r\n\r\nfunction PurchaserOfferPanel(\r\n {\r\n match,\r\n demandHeader\r\n }) {\r\n const classes = useStyles();\r\n const params = useParams();\r\n const demandId = match.params.id;\r\n const stageId = match.params.stageId;\r\n const openedSectionParam = params.section;\r\n const [stageTranslations, setStageTranslations] = useState({});\r\n const panelRef = useRef();\r\n const [contextSection, setContextSection] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n if (stageId === undefined || openedSectionParam === undefined) {\r\n const href = RouterPath.createPath(RouterPath.purchaserDemand.PURCHASER_DEMAND_ID_PREVIEW_ID_STAGE_ID_SECTION, {\r\n id: demandId,\r\n stageId: 0,\r\n section: StageSectionsUrlParams.OFFER_EDIT\r\n });\r\n RouterPath.redirectWithoutHistory(href);\r\n }\r\n // eslint-disable-next-line\r\n }, [openedSectionParam, stageId])\r\n\r\n\r\n useEffect(() => {\r\n if (stageId !== undefined && openedSectionParam !== undefined) {\r\n DemandOffersService.getStageTranslations(demandId, stageId, 1).then(resp => setStageTranslations(resp));\r\n DemandOffersOfferService.getPreviewSection(demandId, stageId, 1, OfferMode.EDIT).then((resp) => setContextSection(resp))\r\n }\r\n return () => {\r\n DemandOffersService.clearResources(DemandOffersService.DEMAND_STAGE_SECTIONS_LIST);\r\n\r\n }\r\n }, [demandId, stageId, openedSectionParam])\r\n\r\n const getStageTranslation = useCallback((trKey) => {\r\n return stageTranslations[trKey] || trKey;\r\n }, [stageTranslations]);\r\n\r\n const backClick = () => {\r\n if(demandHeader.forceRedirectOldPlatform) {\r\n window.location.href = demandHeader.forceRedirectOldPlatform;\r\n } else {\r\n RouterPath.redirect(RouterPath.createPath(RouterPath.myProcedure.steps.MP_1_ID, {id: demandId}));\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n !contextSection ? :\r\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 connect((state) => ({\r\n demandHeader: state.resources.demandHeader\r\n}), {})(PurchaserOfferPanel)","import React from 'react'\r\nimport {Redirect, Route, Switch} from 'react-router-dom';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport NotFound from \"../../NotFound/NotFound\";\r\nimport PurchaserStepperPages from \"./scenes/PurchaserStepperPages\";\r\nimport PurchaserPreviewPanel from \"./scenes/preview/PurchaserPreviewPanel\";\r\n\r\nconst rp = RouterPath.purchaserDemand;\r\n\r\nfunction PurchaserDemand() {\r\n\r\n return (\r\n \r\n {/*zmiana */}\r\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 PurchaserDemand;\r\n","import Tr from \"translations/Translations\";\r\n\r\nconst AnnualReportStatus = {\r\n DRAFT: \"DRAFT\",\r\n SENDING: \"SENDING\",\r\n SENT: \"SENT\",\r\n APPROVED: \"APPROVED\",\r\n APPROVED_MODIFIED: \"APPROVED_MODIFIED\"\r\n}\r\nexport default AnnualReportStatus\r\nexport const annualReportStatusTr = (status) => Tr(\"ezamowienia_mmia_state_\" + status)","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport Tr from \"../translations/Translations\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {clearResource, setResource, setSaveStatusClosed, setSaveStatusError, setSaveStatusLoading} from \"../redux/actions\";\r\nimport saveStatus from \"constants/status.save\";\r\nimport AnnualReportStatus from \"../pages/purchaser/annualReport/report/constants/AnnualReportStatus\";\r\n\r\nconst ANNUAL_REPORT_TABLES_RESOURCE_ID = \"annualReportTables\"\r\nconst ANNUAL_REPORT_LIST_RESOURCE_ID = \"annualReportList\"\r\nconst ANNUAL_REPORT_RESOURCE_ID = \"annualReport\"\r\n\r\nconst getAnnualReportList = async (year) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.ANNUAL_REPORT_REPORT_YEAR(year));\r\n reduxStore.dispatch(setResource(ANNUAL_REPORT_LIST_RESOURCE_ID, resp))\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n};\r\nconst getAnnualReportListAvailableOrgs = async (year) => {\r\n return await RestRequestGET(Endpoints.ANNUAL_REPORT_REPORT_YEAR_AVAILABLE_ORGS(year));\r\n};\r\nconst addAnnualReport = async (data) => {\r\n return await RestRequestPOST(Endpoints.ANNUAL_REPORT, data);\r\n};\r\nconst getAnnualReport = async (reportId) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.ANNUAL_REPORT_REPORT_ID(reportId));\r\n if (isResponseValid(resp, showError)) {\r\n reduxStore.dispatch(setResource(ANNUAL_REPORT_RESOURCE_ID, resp.result))\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n};\r\nconst getAnnualReportPrevVersions = async (reportId) => {\r\n try {\r\n return await RestRequestGET(Endpoints.ANNUAL_REPORT_REPORT_ID_ACTION(reportId, \"prevVersions\"));\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n};\r\nconst sendAnnualReportToEzamowienia = async (reportId) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.ANNUAL_REPORT_REPORT_ID_ACTION(reportId, \"send\"));\r\n await getAnnualReport(reportId);\r\n return resp;\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n};\r\nconst submitAnnualReportToEzamowienia = async (reportId) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.ANNUAL_REPORT_REPORT_ID_ACTION(reportId, \"submit\"));\r\n await getAnnualReport(reportId);\r\n return resp;\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n};\r\nconst correctAnnualReportToEzamowienia = async (reportId, year) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.ANNUAL_REPORT_REPORT_ID_ACTION(reportId, \"correct\"));\r\n if (isResponseValid(resp, showError)) {\r\n await getAnnualReportList(year);\r\n return resp;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n};\r\n\r\nconst downloadAnnualReportPdfFromEzamowienia = async (reportId) => {\r\n try {\r\n await RestRequestBLOB(Endpoints.ANNUAL_REPORT_REPORT_ID_ACTION(reportId, \"getPdf\"))\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n};\r\n\r\nconst initializeTable = async (reportId, formName) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.ANNUAL_REPORT_REPORT_ID_INITIALIZE_FORM_NAME(reportId, formName));\r\n if (isResponseValid(resp, showError)) {\r\n await getAnnualReportFormValues(reportId, formName);\r\n markDraft();\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n }\r\n } catch (e) {\r\n showError(Tr('internal_server_error'));\r\n }\r\n}\r\nconst initializeTableFromPrevVersion = async (reportId, formName) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.ANNUAL_REPORT_REPORT_ID_INITIALIZE_FROM_PREV_FORM_NAME(reportId, formName));\r\n if (isResponseValid(resp, showError)) {\r\n await getAnnualReportFormValues(reportId, formName);\r\n markDraft();\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n }\r\n } catch (e) {\r\n showError(Tr('internal_server_error'));\r\n }\r\n}\r\n\r\nconst getAnnualReportTranslations = async () => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.ANNUAL_REPORT_TRANSLATIONS);\r\n if (isResponseValid(resp, showError)) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n}\r\n\r\nconst getAnnualReportDictionaries = async () => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.ANNUAL_REPORT_DICTIONARIES);\r\n if (isResponseValid(resp, showError)) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n}\r\nconst getAnnualReportFormValues = async (reportId, formName) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.ANNUAL_REPORT_REPORT_ID_FORM_NAME(reportId, formName));\r\n if (isResponseValid(resp, showError)) {\r\n const {resources} = reduxStore.getState();\r\n const annualReport = resources[ANNUAL_REPORT_TABLES_RESOURCE_ID] || {};\r\n reduxStore.dispatch(setResource(ANNUAL_REPORT_TABLES_RESOURCE_ID, {\r\n ...annualReport,\r\n [formName]: resp.result\r\n }))\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n}\r\n\r\nconst saveAnnualReportTableEntry = async (reportId, reportStep, data) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.ANNUAL_REPORT_REPORT_ID_FORM_NAME(reportId, reportStep), data);\r\n if (resp.success) {\r\n const result = resp.result;\r\n const {resources} = reduxStore.getState();\r\n const annualReport = resources[ANNUAL_REPORT_TABLES_RESOURCE_ID];\r\n let form;\r\n if (data.identity === 0) {\r\n form = {\r\n ...annualReport[reportStep],\r\n [result.type]: [...annualReport[reportStep][result.type], result]\r\n }\r\n } else {\r\n const distTypeIndex = annualReport[reportStep][result.type].findIndex(x => x.identity === result.identity);\r\n if (distTypeIndex !== -1) {\r\n form = {\r\n ...annualReport[reportStep],\r\n [result.type]: annualReport[reportStep][result.type].map(x => x.identity === result.identity ? result : x)\r\n }\r\n } else {\r\n const currentType = Object.keys(annualReport[reportStep]).find(key => annualReport[reportStep][key].some(x => x.identity === data.identity));\r\n const distType = data.type;\r\n let index = annualReport[reportStep][distType].findIndex(x => x.identity > result.identity);\r\n if (index === -1) index = annualReport[reportStep][distType].length;\r\n const distArr = [...annualReport[reportStep][distType]];\r\n distArr.splice(index, 0, result);\r\n form = {\r\n ...annualReport[reportStep],\r\n [currentType]: annualReport[reportStep][currentType].filter((entry) => entry.identity !== data.identity),\r\n [distType]: distArr\r\n }\r\n }\r\n }\r\n\r\n reduxStore.dispatch(setResource(ANNUAL_REPORT_TABLES_RESOURCE_ID, {\r\n ...annualReport,\r\n [reportStep]: form\r\n }))\r\n markDraft();\r\n }\r\n return resp;\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n}\r\nconst initializeTableEntry = async (reportId, reportStep, currentType, tableIdentity) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.ANNUAL_REPORT_REPORT_ID_INITIALIZE_FORM_NAME_TABLE_ID(reportId, reportStep, tableIdentity));\r\n if (resp.success) {\r\n const result = resp.result;\r\n const {resources} = reduxStore.getState();\r\n const annualReport = resources[ANNUAL_REPORT_TABLES_RESOURCE_ID];\r\n let form;\r\n if (currentType === result.type) {\r\n form = {\r\n ...annualReport[reportStep],\r\n [result.type]: annualReport[reportStep][result.type].map(x => x.identity === result.identity ? result : x)\r\n }\r\n } else {\r\n const distType = result.type;\r\n let index = annualReport[reportStep][distType].findIndex(x => x.identity > result.identity);\r\n if (index === -1) index = annualReport[reportStep][distType].length;\r\n const distArr = [...annualReport[reportStep][distType]];\r\n distArr.splice(index, 0, result);\r\n form = {\r\n ...annualReport[reportStep],\r\n [currentType]: annualReport[reportStep][currentType].filter((entry) => entry.identity !== result.identity),\r\n [distType]: distArr\r\n }\r\n }\r\n\r\n reduxStore.dispatch(setResource(ANNUAL_REPORT_TABLES_RESOURCE_ID, {\r\n ...annualReport,\r\n [reportStep]: form\r\n }))\r\n markDraft();\r\n }\r\n return resp;\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n}\r\n\r\nconst deleteAnnualReportTableEntry = async (reportId, tableEntryId, reportStep, currentType) => {\r\n const data = {\r\n identity: tableEntryId\r\n }\r\n reduxStore.dispatch(setSaveStatusLoading())\r\n try {\r\n const resp = await RestRequestDELETE(Endpoints.ANNUAL_REPORT_REPORT_ID_FORM_NAME(reportId, reportStep), {data: data});\r\n if (isResponseValid(resp, showError)) {\r\n const {resources} = reduxStore.getState();\r\n const annualReport = resources[ANNUAL_REPORT_TABLES_RESOURCE_ID];\r\n\r\n const formPart = {\r\n ...annualReport[reportStep],\r\n [currentType]: annualReport[reportStep][currentType].filter((entry) => entry.identity !== tableEntryId)\r\n }\r\n\r\n reduxStore.dispatch(setResource(ANNUAL_REPORT_TABLES_RESOURCE_ID, {\r\n ...annualReport,\r\n [reportStep]: formPart\r\n }))\r\n markDraft();\r\n reduxStore.dispatch(setSaveStatusClosed())\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n showError(Tr('internal_server_error'));\r\n }\r\n}\r\nconst moveAnnualReportTableEntry = async (reportId, tableEntryId, reportStep, currentType, distType) => {\r\n const data = {\r\n identity: tableEntryId,\r\n destination: distType\r\n }\r\n reduxStore.dispatch(setSaveStatusLoading())\r\n try {\r\n const resp = await RestRequestPUT(Endpoints.ANNUAL_REPORT_REPORT_ID_FORM_NAME(reportId, reportStep), data);\r\n if (isResponseValid(resp, showError)) {\r\n const {resources} = reduxStore.getState();\r\n const annualReport = resources[ANNUAL_REPORT_TABLES_RESOURCE_ID];\r\n\r\n const formPart = {\r\n ...annualReport[reportStep],\r\n [currentType]: annualReport[reportStep][currentType].filter((entry) => entry.identity !== tableEntryId),\r\n [distType]: [...annualReport[reportStep][distType], resp.result]\r\n }\r\n\r\n reduxStore.dispatch(setResource(ANNUAL_REPORT_TABLES_RESOURCE_ID, {\r\n ...annualReport,\r\n [reportStep]: formPart\r\n }))\r\n markDraft();\r\n reduxStore.dispatch(setSaveStatusClosed())\r\n return resp.result;\r\n }\r\n\r\n } catch (e) {\r\n showError(Tr('internal_server_error'));\r\n }\r\n}\r\n\r\n\r\nconst saveAnnualReportForm = async (reportId, reportStep, data) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.ANNUAL_REPORT_REPORT_ID_FORM_NAME(reportId, reportStep), data);\r\n if (resp.success) {\r\n const {resources} = reduxStore.getState();\r\n const annualReport = resources[ANNUAL_REPORT_TABLES_RESOURCE_ID];\r\n\r\n reduxStore.dispatch(setResource(ANNUAL_REPORT_TABLES_RESOURCE_ID, {\r\n ...annualReport,\r\n [reportStep]: resp.result\r\n }))\r\n markDraft();\r\n }\r\n return resp;\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n}\r\n\r\nconst markDraft = () => {\r\n const {resources} = reduxStore.getState()\r\n if (resources[ANNUAL_REPORT_RESOURCE_ID] && resources[ANNUAL_REPORT_RESOURCE_ID].status !== AnnualReportStatus.DRAFT) {\r\n reduxStore.dispatch(setResource(ANNUAL_REPORT_RESOURCE_ID, {...resources[ANNUAL_REPORT_RESOURCE_ID], status: AnnualReportStatus.DRAFT}))\r\n }\r\n}\r\n\r\nconst showError = (message) => {\r\n if (reduxStore.getState().store.saveStatus !== saveStatus.ERROR)\r\n reduxStore.dispatch(setSaveStatusError(message))\r\n}\r\n\r\nconst clearResources = (resId) => {\r\n reduxStore.dispatch(clearResource(resId))\r\n}\r\n\r\nexport default {\r\n getAnnualReportList,\r\n getAnnualReportListAvailableOrgs,\r\n addAnnualReport,\r\n getAnnualReport,\r\n getAnnualReportPrevVersions,\r\n sendAnnualReportToEzamowienia,\r\n submitAnnualReportToEzamowienia,\r\n correctAnnualReportToEzamowienia,\r\n downloadAnnualReportPdfFromEzamowienia,\r\n\r\n getAnnualReportFormValues,\r\n\r\n //table-based steps\r\n saveAnnualReportTableEntry,\r\n moveAnnualReportTableEntry,\r\n deleteAnnualReportTableEntry,\r\n initializeTable,\r\n initializeTableFromPrevVersion,\r\n initializeTableEntry,\r\n\r\n //single-form steps\r\n saveAnnualReportForm,\r\n\r\n getAnnualReportDictionaries,\r\n getAnnualReportTranslations,\r\n clearResources,\r\n ANNUAL_REPORT_TABLES_RESOURCE_ID,\r\n ANNUAL_REPORT_RESOURCE_ID,\r\n ANNUAL_REPORT_LIST_RESOURCE_ID\r\n}","import React, {useEffect, useState} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport PropTypes from 'prop-types'\r\nimport {createSelectItem} from \"components/Select\";\r\nimport AnnualReportsService from \"services/AnnualReportsService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport useEzamowieniaOauth from \"hooks/useEzamowieniaOauth\";\r\nimport {useParams} from \"react-router\";\r\nimport RadioGroup from \"components/RadioGroup\";\r\nimport Loading from \"components/Loading\";\r\nimport {MMiA_REQUIRED_GROUPS} from \"constants/EzamowieniaRequiredGroups\";\r\n\r\nfunction AddAnnualReportPopup(\r\n {\r\n onClose,\r\n formSubmit,\r\n }) {\r\n\r\n const params = useParams();\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n const [working, setWorking] = useState(true);\r\n const [error, setError] = useState(null);\r\n const {authorizeEzamowienia} = useEzamowieniaOauth();\r\n\r\n useEffect(() => {\r\n AnnualReportsService.getAnnualReportListAvailableOrgs(params.year).then(resp => {\r\n if (isResponseValid(resp, setError)) {\r\n setItems(resp.result.map(item => createSelectItem(item.orgId, item.name)));\r\n } else {\r\n setItems([]);\r\n }\r\n }).finally(() => setWorking(false))\r\n }, [params.year]);\r\n\r\n const [items, setItems] = useState(null);\r\n\r\n const onUpdate = (values) => {\r\n setError(null);\r\n setWorking(true);\r\n\r\n authorizeEzamowienia(() => {\r\n AnnualReportsService.addAnnualReport(values).then((resp) => {\r\n if (isResponseValid(resp, setError)) {\r\n onClose(true);\r\n } else {\r\n setWorking(false);\r\n }\r\n }).catch(() => setWorking(false))\r\n }, () => {\r\n setWorking(false)\r\n }, MMiA_REQUIRED_GROUPS)\r\n }\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nAddAnnualReportPopup.propTypes = {\r\n onClose: PropTypes.func.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddAnnualReportPopup);","import React, {useReducer, useState} from 'react';\r\nimport {TableCell, TableRow} from \"@material-ui/core\";\r\nimport AnnualReportStatus, {annualReportStatusTr} from \"../../report/constants/AnnualReportStatus\";\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport Tr from \"translations/Translations\"\r\nimport moment from \"libs/moment\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport AnnualReportsService from \"services/AnnualReportsService\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport AddBoxIcon from '@material-ui/icons/AddBox';\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport useEzamowieniaOauth from \"hooks/useEzamowieniaOauth\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport {MMiA_REQUIRED_GROUPS} from \"constants/EzamowieniaRequiredGroups\";\r\n\r\nfunction AnnualReportListTableRow(\r\n {\r\n report,\r\n parentWorking,\r\n classes,\r\n hasEdit,\r\n }) {\r\n\r\n const [expanded, setExpanded] = useState(false);\r\n const {authorizeEzamowienia} = useEzamowieniaOauth();\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const [buttonWorks, dispatchButtonWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n correct: false,\r\n loading: false,\r\n });\r\n const [prevVersions, setPrevVersions] = useState(null);\r\n\r\n const goToReport = (x) => {\r\n const href = RouterPath.createPath(RouterPath.annualReport.MP_ANNUAL_REPORT_REPORT_ID, {id: x.identity});\r\n RouterPath.redirect(href);\r\n }\r\n\r\n const loadReports = () => {\r\n if (expanded) {\r\n setExpanded(false);\r\n } else if (prevVersions) {\r\n setExpanded(true);\r\n } else {\r\n dispatchButtonWorks({type: 'loading', works: true});\r\n AnnualReportsService.getAnnualReportPrevVersions(report.identity).then(resp => {\r\n if (resp) {\r\n setPrevVersions(resp);\r\n setExpanded(true);\r\n }\r\n }).finally(() => dispatchButtonWorks({type: 'loading', works: false}))\r\n }\r\n }\r\n\r\n const correctReport = () => {\r\n dispatchButtonWorks({type: 'correct', works: true});\r\n simpleConfirm(\"annual_report_correct_confirm\", () => {\r\n authorizeEzamowienia(\r\n () => {\r\n AnnualReportsService.correctAnnualReportToEzamowienia(report.identity, report.year)\r\n .then((resp) => {\r\n if (resp && resp.success) {\r\n enqueueSuccessSnackbar(Tr(\"annual_report_correct_success\"));\r\n }\r\n })\r\n .finally(() => dispatchButtonWorks({\r\n type: 'correct',\r\n works: false\r\n }))\r\n },\r\n () => dispatchButtonWorks({type: 'correct', works: false}),\r\n MMiA_REQUIRED_GROUPS)\r\n }, () => dispatchButtonWorks({type: 'correct', works: false}))\r\n }\r\n\r\n return <>\r\n \r\n {report.organization.name}\r\n {report.ezamowieniaNumber}\r\n {report.version}\r\n {moment(report.dateInserted).format(DateFormats.DATETIME_FORMAT)}\r\n {report.dateModified ? moment(report.dateModified).format(DateFormats.DATETIME_FORMAT) : null}\r\n {report.dateSend ? moment(report.dateSend).format(DateFormats.DATETIME_FORMAT) : null}\r\n {annualReportStatusTr(report.status)}\r\n \r\n {report.status === AnnualReportStatus.APPROVED &&\r\n \r\n }\r\n \r\n \r\n goToReport(report)}\r\n />\r\n \r\n \r\n \r\n\r\n {\r\n expanded && !!prevVersions && \r\n {\r\n return [\r\n x.organization.name,\r\n x.ezamowieniaNumber,\r\n x.version,\r\n moment(x.dateInserted).format(DateFormats.DATETIME_FORMAT),\r\n x.dateModified ? moment(x.dateModified).format(DateFormats.DATETIME_FORMAT) : null,\r\n x.dateSend ? moment(x.dateSend).format(DateFormats.DATETIME_FORMAT) : null,\r\n annualReportStatusTr(x.status),\r\n goToReport(x)}/>\r\n ]\r\n })\r\n }\r\n columnClasses={\r\n [\r\n classes.orgColumn,\r\n classes.numberColumn,\r\n classes.versionColumn,\r\n classes.dateTimeColumn,\r\n classes.dateTimeColumn,\r\n classes.dateTimeColumn,\r\n classes.statusColumn,\r\n classes.buttonColumn,\r\n ]\r\n }\r\n />\r\n \r\n\r\n }\r\n >\r\n\r\n\r\n}\r\n\r\nAnnualReportListTableRow.propTypes = {}\r\n\r\nexport default AnnualReportListTableRow;","import React, {useEffect, useMemo, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Page from \"components/Page\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Tr from \"translations/Translations\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport Workspace from \"components/Workspace\";\r\nimport AnnualReportsService from \"services/AnnualReportsService\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport AddIcon from '@material-ui/icons/Add'\r\nimport AddAnnualReportPopup from \"./components/AddAnnualReportPopup\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {createSelectItem} from \"components/Select\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport {useParams} from \"react-router\";\r\nimport AnnualReportListTableRow from \"./components/AnnualReportListTableRow\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n versionColumn: {\r\n width: 50\r\n },\r\n orgColumn: {\r\n },\r\n statusColumn: {\r\n width: 270\r\n },\r\n numberColumn: {\r\n width: 180\r\n },\r\n dateTimeColumn: theme.components.table.dateTimeColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n select: {\r\n width: 200\r\n },\r\n versionsCell: {\r\n background: theme.palette.background.greyBackground\r\n },\r\n versionsTable: {\r\n background: theme.palette.background.paper\r\n }\r\n}));\r\n\r\nconst empty_object = {}\r\n\r\nfunction AnnualReportsList(\r\n {\r\n reportsList = empty_object\r\n }\r\n) {\r\n const classes = useStyles();\r\n const params = useParams();\r\n const [addPopup, setAddPopup] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n const items = useMemo(() => {\r\n const years = [];\r\n if (reportsList.minYear && reportsList.maxYear) {\r\n for (let i = reportsList.maxYear; i >= reportsList.minYear; i--) {\r\n years.push(createSelectItem(`${i}`, `${i}`));\r\n }\r\n } else {\r\n years.push(createSelectItem(params.year, params.year));\r\n }\r\n return years;\r\n }, [reportsList, params.year])\r\n\r\n\r\n useEffect(() => {\r\n setWorking(true);\r\n AnnualReportsService.getAnnualReportList(params.year).finally(() => setWorking(false));\r\n return () => {\r\n AnnualReportsService.clearResources(AnnualReportsService.ANNUAL_REPORT_LIST_RESOURCE_ID)\r\n }\r\n }, [params.year]);\r\n\r\n const closeAddPopup = (added) => {\r\n if (added) {\r\n AnnualReportsService.getAnnualReportList(params.year).finally(() => setAddPopup(false))\r\n } else {\r\n setAddPopup(null)\r\n }\r\n }\r\n\r\n return (\r\n \r\n\r\n \r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.annualReport.MP_ANNUAL_REPORT_YEAR_LIST, {year: e.target.value}))}\r\n />\r\n setAddPopup(true)}>{Tr('annual_report_add') + \" \" + params.year}\r\n \r\n\r\n \r\n \r\n \r\n {Tr(\"organizational_unit\")}\r\n {Tr(\"number_of_processing\")}\r\n {Tr(\"version\")}\r\n {Tr(\"add_data\")}\r\n {Tr(\"modyfication_date\")}\r\n {Tr(\"transfer_date\")}\r\n {Tr(\"status\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n !reportsList.items ? :\r\n <>\r\n\r\n {reportsList.items.map((x, i) => ())}\r\n {\r\n !reportsList.items.length &&\r\n {Tr('no_options')}\r\n }\r\n >\r\n }\r\n \r\n
\r\n\r\n {\r\n addPopup && \r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nAnnualReportsList.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n reportsList: state.resources[AnnualReportsService.ANNUAL_REPORT_LIST_RESOURCE_ID]\r\n}))(AnnualReportsList);","const annualReportSteps = {\r\n purchaser: \"purchaser\",\r\n belowEu: \"belowEu\",\r\n aboveEu: \"aboveEu\",\r\n conflict: \"conflict\",\r\n community: \"community\",\r\n social: \"social\",\r\n innovative: \"innovative\",\r\n exception: \"exception\",\r\n notIncluded: \"notIncluded\",\r\n}\r\n\r\nexport const annualReportStepsOrder = [annualReportSteps.purchaser, annualReportSteps.belowEu, annualReportSteps.aboveEu, annualReportSteps.conflict,\r\n annualReportSteps.community, annualReportSteps.social, annualReportSteps.innovative, annualReportSteps.exception, annualReportSteps.notIncluded];\r\nexport const annualReportTablesWithInitialize = [annualReportSteps.belowEu, annualReportSteps.aboveEu, annualReportSteps.conflict, annualReportSteps.community,\r\n annualReportSteps.social, annualReportSteps.innovative, annualReportSteps.exception, annualReportSteps.notIncluded]\r\nexport default annualReportSteps","import {makeStyles} from \"@material-ui/styles\";\r\n\r\nexport default makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n marginBottom: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n marginTop: {\r\n marginTop: theme.spacing(2)\r\n },\r\n marginRight: {\r\n marginRight: theme.spacing(2)\r\n },\r\n tableCell: {\r\n padding: theme.spacing()\r\n },\r\n tableCellBorderRight: {\r\n borderRight: `1px solid ${theme.palette.divider}`\r\n },\r\n tableCellBorderLeft: {\r\n borderLeft: `1px solid ${theme.palette.divider}`\r\n },\r\n variantRow: {\r\n position: \"sticky\",\r\n top: 127,\r\n zIndex: theme.zIndex.appBar - 1,\r\n background: theme.palette.background.paper,\r\n height: 65,\r\n \"&> th, &> td\": {\r\n fontWeight: \"bold\",\r\n textAlign: \"center\",\r\n fontSize: '1rem',\r\n color: theme.palette.primary.main,\r\n \"&:first-child, &:nth-child(2)\": {\r\n cursor: \"pointer\"\r\n }\r\n }\r\n },\r\n variantRow2: {\r\n position: \"sticky\",\r\n top: 191,\r\n zIndex: theme.zIndex.appBar - 1,\r\n background: theme.palette.background.paper,\r\n \"&> th\": {\r\n textAlign: \"center\"\r\n }\r\n },\r\n demandsRow: {\r\n \"&:hover\": {\r\n \"& > td\": {\r\n background: theme.palette.background.default\r\n }\r\n },\r\n \"&.complete\": {\r\n background: theme.palette.common.lightGreen\r\n }, \"&.incomplete\": {\r\n background: theme.palette.common.lightRed\r\n }\r\n },\r\n demandsCell: {\r\n padding: theme.spacing(3),\r\n background: theme.palette.background.greyBackground\r\n },\r\n demandsTable: {\r\n background: theme.palette.background.paper\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n addCell: {\r\n textAlign: \"right\"\r\n },\r\n sectionErrorIcon: {\r\n color: theme.palette.common.error,\r\n },\r\n tableMainHeaderRow: {\r\n \"&> th\": {\r\n textAlign: \"center\",\r\n verticalAlign: \"bottom\",\r\n \"&> div\": {\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n }\r\n }\r\n },\r\n noOptions: {\r\n fontWeight: \"bold\",\r\n },\r\n exceptionChip: {\r\n \"& .MuiChip-label\": {\r\n maxWidth: 800\r\n }\r\n },\r\n moveEntryRadio: {\r\n width: \"100%\",\r\n \"&>.MuiFormLabel-root\": {\r\n color: theme.palette.text.primary,\r\n fontWeight: theme.typography.fontWeightBold,\r\n marginBottom: theme.spacing()\r\n },\r\n \"& .MuiFormGroup-root .MuiFormControlLabel-root\": {\r\n margin: theme.spacing(0, 0, 1, 0),\r\n\r\n \"&:hover\": {\r\n backgroundColor: theme.palette.primary.main\r\n }\r\n }\r\n },\r\n exceptionName: {\r\n textAlign: \"left !important\"\r\n }\r\n\r\n}))","import React, {useMemo} from 'react'\r\nimport {createSelectItem} from \"components/Select\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport ArrowIconLeft from \"@material-ui/icons/KeyboardArrowLeft\";\r\nimport ArrowIconRight from \"@material-ui/icons/KeyboardArrowRight\";\r\nimport {Paper} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\"\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport {annualReportStepsOrder} from \"../../constants/annualReportSteps\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport EZamowieniaIcon from \"components/icon/EZamowieniaIcon\";\r\nimport {simpleConfirm} from \"../../../../../../libs/ConfirmNotification\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n position: 'sticky',\r\n zIndex: theme.zIndex.appBar - 1,\r\n top: 67,\r\n marginBottom: theme.spacing(2),\r\n },\r\n paper: {\r\n padding: theme.spacing(0.5),\r\n border: `solid 2px ${theme.palette.border.dark}`,\r\n },\r\n select: {\r\n minWidth: 550,\r\n \"&> .MuiInput-root .MuiSelect-root\": {\r\n maxWidth: 550\r\n }\r\n },\r\n margin: {\r\n margin: `0 ${theme.spacing()}px`\r\n }\r\n}))\r\n\r\nfunction AnnualReportNavigator(\r\n {\r\n formTr,\r\n disabled,\r\n buttonWorks,\r\n curStep,\r\n onCurStepChange,\r\n onSendToEzamowienia,\r\n onSubmitInEzamowienia,\r\n }) {\r\n const classes = useStyle();\r\n const memoItems = useMemo(() => annualReportStepsOrder.map((x, i, arr) => createSelectItem(x, `${formTr(`mmia.${x}`)} (${i + 1}/${arr.length})`)), [formTr])\r\n const curIndex = annualReportStepsOrder.indexOf(curStep);\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n 0 ? formTr(`mmia.${annualReportStepsOrder[curIndex - 1]}`) : undefined}\r\n variant=\"outlined\"\r\n onClick={() => onCurStepChange(annualReportStepsOrder[curIndex - 1])}\r\n Icon={ArrowIconLeft}/>\r\n onCurStepChange(e.target.value)} className={classes.select} items={memoItems}\r\n value={curStep}/>\r\n onCurStepChange(annualReportStepsOrder[curIndex + 1])}\r\n Icon={ArrowIconRight}/>\r\n \r\n \r\n {!!onSendToEzamowienia &&\r\n {Tr('annual_report_send_to_ezamowienia')}\r\n }\r\n {!!onSubmitInEzamowienia &&\r\n simpleConfirm(\"annual_report_submit_to_ezamowienia_confirm\", onSubmitInEzamowienia)}>{Tr('annual_report_submit_to_ezamowienia')}\r\n }\r\n \r\n \r\n \r\n
)\r\n}\r\n\r\nAnnualReportNavigator.propTypes = {};\r\n\r\nexport default AnnualReportNavigator;\r\n","const AnnualReportNoticeSource = {\r\n BZP: \"BZP\",\r\n TED: \"TED\",\r\n}\r\n\r\nexport default AnnualReportNoticeSource;","import VS from 'constants/ValidationShema';\r\nimport Tr from \"translations/Translations\";\r\nimport AnnualReportNoticeSource from \"./AnnualReportNoticeSource\";\r\n\r\nconst purchaser = VS.object({\r\n dataLoaded: VS.requiredBoolean(),\r\n purchaserName: VS.any().when([\"complete\", \"dataLoaded\"], {\r\n is: (complete, dataLoaded) => complete && !dataLoaded,\r\n then: VS.stringMax(300),\r\n otherwise: VS.stringMaxNoRq(300)\r\n }),\r\n purchaserPartName: VS.stringMaxNoRq(300),\r\n purchaserIdentifier: VS.any().when([\"complete\", \"dataLoaded\"], {\r\n is: (complete, dataLoaded) => complete && !dataLoaded,\r\n then: VS.stringMax(100),\r\n otherwise: VS.stringMaxNoRq(100)\r\n }),\r\n purchaserType: VS.any().when([\"complete\", \"dataLoaded\"], {\r\n is: (complete, dataLoaded) => complete && !dataLoaded,\r\n then: VS.string().nullable(),\r\n otherwise: VS.stringNoRq().nullable()\r\n }),\r\n purchaserOtherType: VS.any().when([\"complete\", \"dataLoaded\", \"purchaserType\"], {\r\n is: (complete, dataLoaded, purchaserType) => complete && !dataLoaded && purchaserType === \"1.5\",\r\n then: VS.stringMax(200),\r\n otherwise: VS.stringMaxNoRq(200)\r\n }),\r\n purchaserActivityType: VS.any(),\r\n purchaserStreet: VS.any().when([\"complete\", \"dataLoaded\"], {\r\n is: (complete, dataLoaded) => complete && !dataLoaded,\r\n then: VS.stringMax(100),\r\n otherwise: VS.stringMaxNoRq(100)\r\n }),\r\n purchaserCity: VS.any().when([\"complete\", \"dataLoaded\"], {\r\n is: (complete, dataLoaded) => complete && !dataLoaded,\r\n then: VS.stringMax(200),\r\n otherwise: VS.stringMaxNoRq(200)\r\n }),\r\n purchaserCode: VS.any().when([\"complete\", \"dataLoaded\"], {\r\n is: (complete, dataLoaded) => complete && !dataLoaded,\r\n then: VS.stringMax(100),\r\n otherwise: VS.stringMaxNoRq(100)\r\n }),\r\n purchaserProvince: VS.any(),\r\n purchaserCountry: VS.any().when([\"complete\", \"dataLoaded\"], {\r\n is: (complete, dataLoaded) => complete && !dataLoaded,\r\n then: VS.string().nullable(),\r\n otherwise: VS.stringNoRq().nullable()\r\n }),\r\n purchaserUrl: VS.any().when([\"complete\", \"dataLoaded\"], {\r\n is: (complete, dataLoaded) => complete && !dataLoaded,\r\n then: VS.urlMax(250).nullable(),\r\n otherwise: VS.string(250).nullable()\r\n }),\r\n purchaserEmail: VS.any().when([\"complete\", \"dataLoaded\"], {\r\n is: (complete, dataLoaded) => complete && !dataLoaded,\r\n then: VS.emailMax(250).nullable(),\r\n otherwise: VS.emailMaxNoRq(250).nullable()\r\n }),\r\n purchaserPhone: VS.any().when([\"complete\", \"dataLoaded\"], {\r\n is: (complete, dataLoaded) => complete && !dataLoaded,\r\n then: VS.stringMax(100),\r\n otherwise: VS.stringMaxNoRq(100)\r\n }),\r\n issueNumber: VS.any().when(\"complete\", {is: true, then: VS.stringMax(100), otherwise: VS.stringMaxNoRq(100)}),\r\n complete: VS.requiredBoolean()\r\n})\r\nconst belowEu = VS.object({\r\n type: VS.string(),\r\n number: VS.stringMax(50),\r\n orderType: VS.string(),\r\n amount: VS.any().when(\"complete\", {is: true, then: VS.amount(0, false), otherwise: VS.any()}),\r\n complete: VS.requiredBoolean()\r\n})\r\n\r\nconst aboveEu = VS.object({\r\n type: VS.string(),\r\n number: VS.stringMax(50),\r\n noticeNumber: VS.any().when(\"complete\", {is: true, then: VS.stringMax(50), otherwise: VS.stringMaxNoRq(50)}),\r\n orderType: VS.any().when(\"complete\", {is: true, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n codeCPV: VS.any().when(\"complete\", {is: true, then: VS.requiredObject(), otherwise: VS.any()}),\r\n tenderMode: VS.any().when(\"complete\", {is: true, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n contractorCountryList: VS.any().when(\"complete\", {is: true, then: VS.arrayRequired(), otherwise: VS.any()}),\r\n contractValue: VS.any().when(\"complete\", {is: true, then: VS.amount(0, true), otherwise: VS.any()}),\r\n numberOfAwardedLots: VS.any().when(\"complete\", {is: true, then: VS.integerMin(), otherwise: VS.any()}),\r\n numberOfOffers: VS.any().when(\"complete\", {is: true, then: VS.integerMin(), otherwise: VS.any()}),\r\n numberOfRejectedOffers: VS.any().when(\"complete\", {is: true, then: VS.integerMin(), otherwise: VS.any()}),\r\n numberOfOffersSubmittedByMMSP: VS.any().when(\"complete\", {is: true, then: VS.integerMin(), otherwise: VS.any()}),\r\n contractAwardedToMMSP: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n complete: VS.requiredBoolean()\r\n})\r\n\r\nconst conflict = VS.object({\r\n type: VS.string(),\r\n source: VS.any().when(\"complete\", {is: true, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n number: VS.stringMax(50),\r\n noticeNumber: VS.any().when(\"complete\", {is: true, then: VS.stringMax(50), otherwise: VS.stringMaxNoRq(50)}),\r\n orderType: VS.any().when(\"complete\", {is: true, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n codeCpv: VS.any().when(\"complete\", {is: true, then: VS.requiredObject(), otherwise: VS.any()}),\r\n tenderModeBzp: VS.any().when([\"complete\", \"source\"], {is: (complete, source) => complete && source === AnnualReportNoticeSource.BZP, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n tenderModeTed: VS.any().when([\"complete\", \"source\"], {is: (complete, source) => complete && source === AnnualReportNoticeSource.TED, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n numberOfCasesOfConflictOfInterest: VS.any().when(\"complete\", {is: true, then: VS.integerMin(), otherwise: VS.any()}),\r\n numberOfDetectedAgreements: VS.any().when(\"complete\", {is: true, then: VS.integerMin(), otherwise: VS.any()}),\r\n numberOfContractorsWithRejectedOffer: VS.any().when(\"complete\", {is: true, then: VS.integerMin(), otherwise: VS.any()}),\r\n complete: VS.requiredBoolean()\r\n})\r\n\r\nconst community = VS.object({\r\n type: VS.string(),\r\n source: VS.any().when(\"complete\", {is: true, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n number: VS.stringMax(50),\r\n noticeNumber: VS.any().when(\"complete\", {is: true, then: VS.stringMax(50), otherwise: VS.stringMaxNoRq(50)}),\r\n serviceDescription: VS.any().when(\"complete\", {is: true, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n codeCpv: VS.any().when(\"complete\", {is: true, then: VS.requiredObject(), otherwise: VS.any()}),\r\n tenderModeBzp: VS.any().when([\"complete\", \"source\"], {is: (complete, source) => complete && source === AnnualReportNoticeSource.BZP, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n tenderModeTed: VS.any().when([\"complete\", \"source\"], {is: (complete, source) => complete && source === AnnualReportNoticeSource.TED, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n reservedTender: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n amount: VS.any().when(\"complete\", {is: true, then: VS.amount(0, true), otherwise: VS.any()}),\r\n numberOfAwardedLots: VS.any().when(\"complete\", {is: true, then: VS.integerMin(), otherwise: VS.any()}),\r\n numberOfOffers: VS.any().when(\"complete\", {is: true, then: VS.integerMin(), otherwise: VS.any()}),\r\n numberOfOffersMMSP: VS.any().when(\"complete\", {is: true, then: VS.integerMin(), otherwise: VS.any()}),\r\n complete: VS.requiredBoolean()\r\n})\r\n\r\nconst social = VS.object({\r\n type: VS.string(),\r\n source: VS.any().when(\"complete\", {is: true, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n number: VS.stringMax(50),\r\n noticeNumber: VS.any().when(\"complete\", {is: true, then: VS.stringMax(50), otherwise: VS.stringMaxNoRq(50)}),\r\n orderType: VS.any().when(\"complete\", {is: true, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n codeCpv: VS.any().when(\"complete\", {is: true, then: VS.requiredObject(), otherwise: VS.any()}),\r\n tenderModeBzp: VS.any().when([\"complete\", \"source\"], {is: (complete, source) => complete && source === AnnualReportNoticeSource.BZP, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n tenderModeTed: VS.any().when([\"complete\", \"source\"], {is: (complete, source) => complete && source === AnnualReportNoticeSource.TED, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n contractValue: VS.any().when(\"complete\", {is: true, then: VS.amount(0, true), otherwise: VS.any()}),\r\n numberOfAwardedLots: VS.any().when(\"complete\", {is: true, then: VS.integerMin(), otherwise: VS.any()}),\r\n numberOfOffers: VS.any().when(\"complete\", {is: true, then: VS.integerMin(), otherwise: VS.any()}),\r\n reservedTender: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n inDescriptionRequirementsForAccessibility: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n definedSocialAspectsInOfferEvaluationCriteria: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n definedRequirementsBasedOnEmploymentRelationship: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n definedSocialAspectsRequirements: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n definedLabelRelatedToSocialAspects: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n contractorType: VS.any().when(\"complete\", {is: true, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n complete: VS.requiredBoolean()\r\n})\r\n\r\nconst innovative = VS.object({\r\n type: VS.string(),\r\n source: VS.any().when(\"complete\", {is: true, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n number: VS.stringMax(50),\r\n noticeNumber: VS.any().when(\"complete\", {is: true, then: VS.stringMax(50), otherwise: VS.stringMaxNoRq(50)}),\r\n orderType: VS.any().when(\"complete\", {is: true, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n codeCpv: VS.any().when(\"complete\", {is: true, then: VS.requiredObject(), otherwise: VS.any()}),\r\n tenderModeBzp: VS.any().when([\"complete\", \"source\"], {is: (complete, source) => complete && source === AnnualReportNoticeSource.BZP, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n tenderModeTed: VS.any().when([\"complete\", \"source\"], {is: (complete, source) => complete && source === AnnualReportNoticeSource.TED, then: VS.string().nullable(), otherwise: VS.stringNoRq().nullable()}),\r\n contractValue: VS.any().when(\"complete\", {is: true, then: VS.amount(0, true), otherwise: VS.any()}),\r\n environmentalRequirements: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n environmentalManagementSystemAndStandards: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n environmentalAspectsInEvaluationCriteria: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n costCriterionUsingLifeCycleCostingApplied: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n environmentalAspectsRequirements: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n labelRelatedToEnvAspectsOrMeasureOfEvidence: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n innovativeAspectsInEvaluationCriteria: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n innovativeAspectsRequirements: VS.any().when(\"complete\", {is: true, then: VS.requiredBoolean(), otherwise: VS.any()}),\r\n complete: VS.requiredBoolean()\r\n})\r\n\r\nconst exception = VS.object({\r\n type: VS.any().when(\"complete\", {is: true, then: VS.stringNotOneOf([\"0\"], Tr('required_field')), otherwise: VS.string()}),\r\n number: VS.stringMax(50),\r\n name: VS.stringMaxNoRq(400),\r\n contractValue: VS.any().when(\"complete\", {is: true, then: VS.amount(0, false), otherwise: VS.any()}),\r\n complete: VS.requiredBoolean()\r\n})\r\n\r\nconst notIncluded = VS.object({\r\n type: VS.string(),\r\n number: VS.stringMax(50),\r\n name: VS.stringMaxNoRq(400),\r\n contractValue: VS.any().when(\"complete\", {is: true, then: VS.amount(0, true), otherwise: VS.any()}),\r\n complete: VS.requiredBoolean()\r\n})\r\n\r\nexport default {\r\n purchaser,\r\n belowEu,\r\n aboveEu,\r\n conflict,\r\n community,\r\n social,\r\n innovative,\r\n exception,\r\n notIncluded\r\n}","import React, {useContext, useRef, useState} from \"react\"\r\nimport annualReportSteps from \"../../constants/annualReportSteps\";\r\nimport Form from \"components/Form\";\r\nimport PropTypes from \"prop-types\";\r\nimport Loading from \"components/Loading\";\r\nimport NoticeGlossaryInput from \"components/complex/nationalNotice/components/inputs/NoticeGlossaryInput\";\r\nimport NoticeTextInput from \"components/complex/nationalNotice/components/inputs/NoticeTextInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport Typography from \"components/Typography\";\r\nimport Tr from \"translations/Translations\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport AnnualReportsService from \"services/AnnualReportsService\";\r\nimport {useParams} from \"react-router\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport annualReportValidation from \"../../constants/annualReportValidation\";\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport AnnualReportStatus, {annualReportStatusTr} from \"../../constants/AnnualReportStatus\";\r\n\r\nfunction AnnualReportPurchaserForm(\r\n {\r\n initValues,\r\n classes,\r\n disabled,\r\n setFrom\r\n }\r\n) {\r\n const params = useParams();\r\n const [error, setError] = useState();\r\n const {getDict, formTr} = useContext(FormTranslationContext);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const submitSemaphore = useRef(false);\r\n\r\n const onSubmit = (values, actions) => {\r\n submitSemaphore.current = false;\r\n AnnualReportsService.saveAnnualReportForm(params.id, annualReportSteps.purchaser, values).then((resp) => {\r\n if (resp) {\r\n if (resp.success) {\r\n enqueueSuccessSnackbar(Tr(\"saved\"))\r\n actions.resetForm();\r\n } else {\r\n if (resp.errors instanceof Object) {\r\n for (let key of Object.keys(resp.errors)) {\r\n setError(formTr(`mmia.${annualReportSteps.purchaser}.${key}`) + \": \" + resp.errors[key])\r\n break;\r\n }\r\n }\r\n }\r\n\r\n }\r\n })\r\n }\r\n\r\n const handleSubmit = (formikProps, complete) => {\r\n setError(null)\r\n formikProps.setFieldValue('complete', complete);\r\n submitSemaphore.current = true;\r\n setTimeout((formikProps) => formikProps.submitForm(), 0, formikProps)\r\n setTimeout((formId, submitSemaphore) => submitSemaphore.current && scrollTo(\"#\" + formId + \" .MuiFormHelperText-root.Mui-error\", 200), 200, annualReportSteps.purchaser, submitSemaphore);\r\n }\r\n\r\n if (!initValues) return \r\n return (\r\n )\r\n\r\n\r\n}\r\n\r\nAnnualReportPurchaserForm.prototype = {\r\n initValues: PropTypes.object,\r\n setFrom: PropTypes.func.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n classes: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportPurchaserForm;","import React from \"react\";\r\nimport {TableCell} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport annulaReportClasses from \"../../constants/annulaReportClasses\";\r\n\r\nfunction AnnualReportTableCell(\r\n {\r\n children,\r\n className,\r\n borderRight,\r\n borderLeft,\r\n ...props\r\n }\r\n) {\r\n const classes = annulaReportClasses();\r\n\r\n return (\r\n {children});\r\n\r\n}\r\n\r\n\r\n\r\nexport default AnnualReportTableCell;","import React, {useContext, useReducer, useRef, useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport PropTypes from 'prop-types'\r\nimport {useParams} from \"react-router\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport AnnualReportsService from \"services/AnnualReportsService\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport {annualReportStepsOrder, annualReportTablesWithInitialize} from \"../../constants/annualReportSteps\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport useDebouncedEffect from \"hooks/useDebouncedEffect\";\r\nimport annualReportValidation from \"../../constants/annualReportValidation\";\r\nimport Form from \"components/Form\";\r\nimport ReplayIcon from \"@material-ui/icons/Replay\";\r\nimport {simpleConfirmNoTranslate} from \"libs/ConfirmNotification\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport scrollToContainer from \"libs/scrollToContainer\";\r\n\r\nexport const getAnnualReportEditPopup = (entry, newEntry = false, autoValidate = false) => {\r\n if (newEntry) {\r\n entry = {identity: 0}\r\n }\r\n return ({entry, newEntry, autoValidate})\r\n}\r\n\r\nfunction AnnualReportEditPopup(\r\n {\r\n onClose,\r\n config,\r\n reportStep,\r\n FormComponent\r\n }) {\r\n const [error, setError] = useState(null);\r\n const params = useParams();\r\n const {formTr} = useContext(FormTranslationContext)\r\n const form = useRef();\r\n const setForm = (formikProps) => form.current = formikProps;\r\n const submitSemaphore = useRef(false);\r\n\r\n const [buttonWorks, dispatchButtonWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n save: false,\r\n draft: false,\r\n reload: false\r\n });\r\n const handleSubmit = (complete) => {\r\n form.current.setFieldValue('complete', complete);\r\n submitSemaphore.current = true;\r\n setTimeout(() => form.current.submitForm(), 0);\r\n setTimeout((formId, submitSemaphore) => submitSemaphore.current && scrollToContainer(\"#annual-report-edit-popup .MuiDialogContent-root\", \"#\" + formId + \" .MuiFormHelperText-root.Mui-error\", 200), 200, reportStep, submitSemaphore);\r\n\r\n }\r\n const {enqueueSuccessSnackbar, enqueueErrorSnackbar} = useSnackbar();\r\n\r\n useDebouncedEffect(() => {\r\n if (config.autoValidate)\r\n handleSubmit(true);\r\n }, {timeout: 500, ignoreInitialCall: false}, [])\r\n\r\n const submitFrom = (values, actions) => {\r\n submitSemaphore.current = false;\r\n setError(null);\r\n dispatchButtonWorks({type: values.complete ? \"save\" : \"draft\", works: true});\r\n AnnualReportsService.saveAnnualReportTableEntry(params.id, reportStep, values).then((resp) => {\r\n if (resp) {\r\n if (resp.success) {\r\n enqueueSuccessSnackbar(Tr(\"saved\") + \" \" + resp.result.number);\r\n onClose();\r\n } else {\r\n dispatchButtonWorks({type: values.complete ? \"save\" : \"draft\", works: false})\r\n if (resp.errors instanceof Object) {\r\n for (let key of Object.keys(resp.errors)) {\r\n setError(formTr(`mmia.${reportStep}.${key}`) + \": \" + resp.errors[key])\r\n break;\r\n }\r\n }\r\n\r\n }\r\n } else {\r\n dispatchButtonWorks({type: values.complete ? \"save\" : \"draft\", works: false})\r\n }\r\n }).catch(() => dispatchButtonWorks({type: values.complete ? \"save\" : \"draft\", works: false}))\r\n\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', buttonWorks.anyWorks));\r\n buttons.push(createButton(Tr('save_draft_version'), () => handleSubmit(false), 'outlined', buttonWorks.anyWorks, undefined, buttonWorks.draft));\r\n buttons.push(createButton(Tr('save'), () => handleSubmit(true), undefined, buttonWorks.anyWorks, undefined, buttonWorks.save));\r\n return buttons;\r\n }\r\n\r\n const getReloadButton = () => {\r\n return annualReportTablesWithInitialize.includes(reportStep) && !config.newEntry &&\r\n simpleConfirmNoTranslate(Tr(\"annual_report_reload_demand_confirm\"),\r\n () => {\r\n dispatchButtonWorks({type: \"reload\", works: true})\r\n AnnualReportsService.initializeTableEntry(params.id, reportStep, config.entry.type, config.entry.identity).then(resp => {\r\n if (isResponseValid(resp, enqueueErrorSnackbar)) {\r\n config.entry = resp.result;\r\n form.current.resetForm();\r\n enqueueSuccessSnackbar(Tr(\"annual_report_reloaded_demand\"))\r\n }\r\n }).finally(() => dispatchButtonWorks({type: \"reload\", works: false}))\r\n }\r\n )}\r\n >{Tr(\"annual_report_reload_demand\")}\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nAnnualReportEditPopup.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n config: PropTypes.shape({\r\n entry: PropTypes.object,\r\n newEntry: PropTypes.bool,\r\n autoValidate: PropTypes.bool\r\n }),\r\n reportStep: PropTypes.oneOf(annualReportStepsOrder).isRequired,\r\n FormComponent: PropTypes.func.isRequired\r\n}\r\n\r\nexport default AnnualReportEditPopup;","export default (scrollContainer, querySelector, extraOffset = 0) => {\r\n if (!querySelector) {\r\n return;\r\n }\r\n\r\n const container = document.querySelector(scrollContainer);\r\n const element = querySelector instanceof Element ? querySelector : container.querySelector(querySelector);\r\n if (!element) {\r\n return;\r\n }\r\n const boundingClientRect = element.getBoundingClientRect();\r\n let offsetTop = boundingClientRect.top;\r\n offsetTop -= 20;\r\n offsetTop -= extraOffset\r\n\r\n container.scrollTo({behavior: 'smooth', top: offsetTop});\r\n}\r\n","import React, {useContext} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport NoticeTextInput from \"components/complex/nationalNotice/components/inputs/NoticeTextInput\";\r\nimport NoticeGlossaryInput from \"components/complex/nationalNotice/components/inputs/NoticeGlossaryInput\";\r\nimport NoticeCpvInput from \"components/complex/nationalNotice/components/inputs/NoticeCpvInput\";\r\nimport NoticeNumericInput from \"components/complex/nationalNotice/components/inputs/NoticeNumericInput\";\r\nimport NoticeIntegerInput from \"components/complex/nationalNotice/components/inputs/NoticeIntegerInput\";\r\nimport NoticeYesNoInput from \"components/complex/nationalNotice/components/inputs/NoticeYesNoInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport annulaReportClasses from \"../../constants/annulaReportClasses\";\r\n\r\nfunction AnnualReportAboveEuEditForm(\r\n {\r\n entry,\r\n newEntry,\r\n buttonWorks,\r\n reportStep,\r\n formikProps\r\n }) {\r\n const {getDict} = useContext(FormTranslationContext)\r\n const classes = annulaReportClasses();\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\nAnnualReportAboveEuEditForm.propTypes = {\r\n entry: PropTypes.object.isRequired,\r\n newEntry: PropTypes.bool,\r\n buttonWorks: PropTypes.shape({anyWorks: PropTypes.bool.isRequired}).isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n formikProps: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportAboveEuEditForm;","import Tr from \"translations/Translations\";\r\n\r\nconst formatBoolean = (val) => {\r\n if (val === null || val === undefined) {\r\n return null;\r\n }\r\n return !val ? Tr(\"no\") : Tr(\"yes\");\r\n}\r\n\r\nexport default formatBoolean;","const formatInteger = (val) => {\r\n if (val === null || val === undefined) {\r\n return null;\r\n }\r\n return val;\r\n}\r\n\r\nexport default formatInteger;","import React, {useContext, useEffect} from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport Tr from \"translations/Translations\";\r\nimport Button from \"components/Button\";\r\nimport AddIcon from \"@material-ui/icons/AddBoxOutlined\";\r\nimport {getAnnualReportEditPopup} from \"./AnnualReportEditPopup\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport HelpTooltip from \"components/HelpTooltip\";\r\nimport useSearch from \"../../../../../../hooks/useSearch\";\r\n\r\nfunction AnnualReportSearchBar(\r\n {\r\n classes,\r\n setSearch,\r\n reportStep,\r\n disabled,\r\n setEditPopup\r\n }\r\n) {\r\n const {searchData, setSearchConfig} = useSearch();\r\n useEffect(()=> {\r\n setSearch(searchData.search)\r\n },[searchData, setSearch])\r\n\r\n const {formTip, formTr} = useContext(FormTranslationContext);\r\n const tip = formTip(\"mmia.\" + reportStep);\r\n return (<>\r\n {formTr(\"mmia.\" + reportStep)} {!!tip && }\r\n\r\n \r\n \r\n \r\n \r\n >\r\n )\r\n}\r\n\r\nAnnualReportSearchBar.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n setSearch: PropTypes.func.isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n setEditPopup: PropTypes.func.isRequired\r\n}\r\nexport default AnnualReportSearchBar;","import React, {useContext} from \"react\";\r\nimport AnnualReportTableCell from \"./AnnualReportTableCell\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport {Tooltip} from \"@material-ui/core\";\r\n\r\nfunction AnnualReportTableHeadCell(\r\n {\r\n label,\r\n className,\r\n borderRight,\r\n borderLeft = true,\r\n maxWidth,\r\n ...props\r\n }\r\n) {\r\n const {formTr, formTip} = useContext(FormTranslationContext);\r\n const tip = formTip(label);\r\n return (\r\n {\r\n !!tip ? \r\n {formTr(label)}
\r\n : {formTr(label)}
\r\n }\r\n );\r\n\r\n}\r\n\r\n\r\nexport default AnnualReportTableHeadCell;","import React from 'react'\r\nimport {connect} from 'react-redux'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport PropTypes from 'prop-types'\r\nimport RadioGroup from \"components/RadioGroup\";\r\nimport AnnualReportsService from \"services/AnnualReportsService\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport annulaReportClasses from \"../../constants/annulaReportClasses\";\r\n\r\n\r\nexport const getMoveAnnualReportEntryConfig = (reportId, tableEntryId, currentType) => ({reportId, tableEntryId, currentType})\r\n\r\nfunction MoveAnnualReportEntry(\r\n {\r\n onClose,\r\n items,\r\n inputLabel,\r\n config,\r\n reportStep,\r\n formSubmit\r\n }) {\r\n const classes = annulaReportClasses();\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const submitFrom = (values) => {\r\n onClose();\r\n AnnualReportsService.moveAnnualReportTableEntry(config.reportId, config.tableEntryId, reportStep, config.currentType, values.type).then((result) => {\r\n if(result) {\r\n const section = items.find(x => x.value === result.type);\r\n enqueueSuccessSnackbar(Tr(\"moved_demand_number_to_section\", {number: result.number, section: (section ? section.label : \"\")}))\r\n }\r\n })\r\n\r\n }\r\n\r\n return (\r\n }\r\n >\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nMoveAnnualReportEntry.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n items: PropTypes.arrayOf(PropTypes.shape({\r\n label: PropTypes.string.isRequired,\r\n value: PropTypes.string.isRequired\r\n })).isRequired,\r\n inputLabel: PropTypes.string,\r\n config: PropTypes.shape({\r\n reportId: PropTypes.string.isRequired,\r\n tableEntryId: PropTypes.number.isRequired,\r\n currentType: PropTypes.string.isRequired\r\n }).isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(MoveAnnualReportEntry);","import React from 'react'\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction WorkableIconErrorButton(\r\n {\r\n tooltip,\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconErrorButton.propTypes = {\r\n expanded: PropTypes.bool,\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconErrorButton;","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport {TableRow} from \"@material-ui/core\";\r\nimport AnnualReportTableCell from \"../common/AnnualReportTableCell\";\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport SwapVerticalCircleIcon from '@material-ui/icons/SwapVerticalCircle';\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport {getMoveAnnualReportEntryConfig} from \"../common/MoveAnnualReportEntry\";\r\nimport clsx from \"clsx\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport WorkableIconErrorButton from \"components/button/WorkableIconErrorButton\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport {simpleConfirmNoTranslate} from \"libs/ConfirmNotification\";\r\nimport AnnualReportsService from \"services/AnnualReportsService\";\r\nimport {useParams} from \"react-router\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport CheckCircleOutlineIcon from '@material-ui/icons/CheckCircleOutline';\r\nimport RadioButtonUncheckedIcon from '@material-ui/icons/RadioButtonUnchecked';\r\nimport IconButton from \"components/button/IconButton\";\r\nimport {getAnnualReportEditPopup} from \"../common/AnnualReportEditPopup\";\r\nimport scrollTo from \"libs/scrollTo\";\r\n\r\nfunction AnnualReportTablePart(\r\n {\r\n type,\r\n reportStep,\r\n partName,\r\n classes,\r\n disabled,\r\n entries,\r\n search,\r\n setEditPopup,\r\n setMovePopup,\r\n columnCount,\r\n getRowValues,\r\n }\r\n) {\r\n const params = useParams();\r\n const [expanded, setExpanded] = useState(false);\r\n const [hasIncomplete, setHasIncomplete] = useState(false);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const entriesFilteres = useMemo(() => {\r\n if (search.search) {\r\n return entries.filter((entry) => entry.number.includes(search.search))\r\n }\r\n return entries;\r\n }, [entries, search])\r\n\r\n useEffect(() => {\r\n setHasIncomplete(entries.some(entry => !entry.complete))\r\n }, [entries])\r\n\r\n useDidUpdateEffect(() => {\r\n if (!expanded && search.search && entries.some((entry) => entry.number.includes(search.search))) {\r\n setExpanded(true);\r\n }\r\n }, [search])\r\n\r\n const doDelete = (entry) => {\r\n simpleConfirmNoTranslate(Tr(\"confirm_delete_annual_entry\", {number: entry.number}), () => {\r\n AnnualReportsService.deleteAnnualReportTableEntry(params.id, entry.identity, reportStep, type).then((result) => {\r\n if (result) {\r\n enqueueSuccessSnackbar(Tr(\"deleted\") + \" \" + entry.number)\r\n }\r\n })\r\n })\r\n }\r\n\r\n const changeComplete = (entry, complete) => {\r\n const data = {\r\n ...entry,\r\n complete\r\n }\r\n AnnualReportsService.saveAnnualReportTableEntry(params.id, reportStep, data)\r\n .then((resp) => {\r\n if (resp) {\r\n if (resp.success) {\r\n enqueueSuccessSnackbar(Tr(\"saved\") + \" \" + entry.number)\r\n } else {\r\n setEditPopup(getAnnualReportEditPopup(entry, false, true))\r\n }\r\n }\r\n\r\n })\r\n }\r\n\r\n return (<>\r\n \r\n setExpanded(!expanded)}>\r\n {`${partName} (${entriesFilteres.length}/${entries.length})`}\r\n \r\n setExpanded(!expanded)}>\r\n {\r\n hasIncomplete && {\r\n e.stopPropagation();\r\n setExpanded(true);\r\n const incompleteEntry = entriesFilteres.find(x => !x.complete);\r\n if (incompleteEntry) {\r\n setTimeout((identity) => scrollTo(`#${reportStep}-${identity}`, 200), 100, incompleteEntry.identity)\r\n }\r\n }}\r\n tooltip={Tr(\"annual_report_section_incomplete\")}\r\n className={classes.sectionErrorIcon}\r\n\r\n />\r\n }\r\n \r\n \r\n setExpanded(!expanded)}/>\r\n \r\n \r\n {expanded && entriesFilteres.map((entry) => (\r\n \r\n\r\n {\r\n getRowValues(entry).map((x, i) => {x})\r\n }\r\n\r\n \r\n setEditPopup(getAnnualReportEditPopup(entry))}/>\r\n {\r\n entry.complete ?\r\n changeComplete(entry, false)}/>\r\n :\r\n changeComplete(entry, true)}/>\r\n }\r\n \r\n \r\n setMovePopup(getMoveAnnualReportEntryConfig(params.id, entry.identity, type))}\r\n />\r\n doDelete(entry)}\r\n />\r\n \r\n \r\n ))\r\n }\r\n {expanded && !entriesFilteres.length && \r\n \r\n {Tr(\"no_options\")}\r\n \r\n }\r\n >\r\n );\r\n}\r\n\r\nAnnualReportTablePart.propTypes = {\r\n type: PropTypes.string.isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n partName: PropTypes.string.isRequired,\r\n classes: PropTypes.object.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n entries: PropTypes.array.isRequired,\r\n search: PropTypes.shape({\r\n search: PropTypes.string\r\n }).isRequired,\r\n setEditPopup: PropTypes.func.isRequired,\r\n setMovePopup: PropTypes.func.isRequired,\r\n columnCount: PropTypes.number.isRequired,\r\n getRowValues: PropTypes.func.isRequired\r\n}\r\n\r\n\r\nexport default AnnualReportTablePart;","import React, {useContext, useState} from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Loading from \"components/Loading\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport {Table, TableBody, TableHead, TableRow, Tooltip} from \"@material-ui/core\";\r\nimport AnnualReportTableCell from \"../common/AnnualReportTableCell\";\r\nimport Tr from \"translations/Translations\";\r\nimport AnnualReportEditPopup from \"../common/AnnualReportEditPopup\";\r\nimport AnnualReportAboveEuEditForm from \"./AnnualReportAboveEuEditForm\";\r\nimport annualReportSteps from \"../../constants/annualReportSteps\";\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\nimport formatBoolean from \"libs/formatBoolean\";\r\nimport formatInteger from \"libs/formatInteger\";\r\nimport AnnualReportSearchBar from \"../common/AnnualReportSearchBar\";\r\nimport AnnualReportTableHeadCell from \"../common/AnnualReportTableHeadCell\";\r\nimport AnnualReportTablePart from \"../common/AnnualReportTablePart\";\r\nimport MoveAnnualReportEntry from \"../common/MoveAnnualReportEntry\";\r\n\r\nconst columns = [\"number\", \"noticeNumber\", \"orderType\", \"codeCPV\", \"tenderMode\", \"contractorCountryList\", \"contractValue\", \"numberOfAwardedLots\",\r\n \"numberOfOffers\", \"numberOfRejectedOffers\", \"numberOfOffersSubmittedByMMSP\", \"contractAwardedToMMSP\"];\r\nconst reportStep = annualReportSteps.aboveEu;\r\n\r\nfunction AnnualReportAboveEuForm(\r\n {\r\n initValues,\r\n classes,\r\n disabled\r\n }\r\n) {\r\n const {getDict, dictTranslations} = useContext(FormTranslationContext);\r\n const [types] = useState(getDict(\"MP.MMiA.OrdersType\"));\r\n const [editPopup, setEditPopup] = useState(null);\r\n const [movePopup, setMovePopup] = useState(null);\r\n const [search, setSearch] = useState({search: \"\"});\r\n\r\n const getRowValues = (entry) => ([\r\n entry.number,\r\n entry.noticeNumber,\r\n entry.orderType ? dictTranslations.orderType[entry.orderType] : null,\r\n entry.codeCPV ? {entry.codeCPV.publicCode} : null,\r\n entry.tenderMode ? dictTranslations.tenderModeTed[entry.tenderMode] : null,\r\n entry.contractorCountryList ? entry.contractorCountryList.join(\", \") : null,\r\n formatAmountNumber(entry.contractValue),\r\n formatInteger(entry.numberOfAwardedLots),\r\n formatInteger(entry.numberOfOffers),\r\n formatInteger(entry.numberOfRejectedOffers),\r\n formatInteger(entry.numberOfOffersSubmittedByMMSP),\r\n formatBoolean(entry.contractAwardedToMMSP)\r\n ])\r\n\r\n if (!initValues) return \r\n return <>\r\n \r\n\r\n \r\n \r\n \r\n {columns.map(x => ())}\r\n \r\n \r\n \r\n \r\n {\r\n types.map((type) =>\r\n \r\n )\r\n }\r\n \r\n\r\n
\r\n\r\n {\r\n !!editPopup &&\r\n setEditPopup(null)}\r\n config={editPopup}\r\n reportStep={annualReportSteps.aboveEu}\r\n FormComponent={AnnualReportAboveEuEditForm}\r\n />\r\n }\r\n {\r\n !!movePopup &&\r\n item.value !== movePopup.currentType)}\r\n onClose={() => setMovePopup(null)}\r\n inputLabel={Tr(\"order_type\")}\r\n reportStep={reportStep}\r\n config={movePopup}\r\n />\r\n }\r\n >\r\n\r\n\r\n}\r\n\r\nAnnualReportAboveEuForm.prototype = {\r\n initValues: PropTypes.object.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n classes: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportAboveEuForm;","import React, {useContext} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport NoticeTextInput from \"components/complex/nationalNotice/components/inputs/NoticeTextInput\";\r\nimport NoticeGlossaryInput from \"components/complex/nationalNotice/components/inputs/NoticeGlossaryInput\";\r\nimport NoticeNumericInput from \"components/complex/nationalNotice/components/inputs/NoticeNumericInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\n\r\nfunction AnnualReportBelowEuEditForm(\r\n {\r\n entry,\r\n newEntry,\r\n buttonWorks,\r\n reportStep,\r\n formikProps\r\n }) {\r\n const {getDict} = useContext(FormTranslationContext)\r\n return (<>\r\n \r\n \r\n \r\n \r\n >)\r\n}\r\n\r\nAnnualReportBelowEuEditForm.propTypes = {\r\n entry: PropTypes.object.isRequired,\r\n newEntry: PropTypes.bool,\r\n buttonWorks: PropTypes.shape({anyWorks: PropTypes.bool.isRequired}).isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n formikProps: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportBelowEuEditForm;","import React, {useContext, useEffect, useMemo, useState} from \"react\";\r\nimport {Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport AnnualReportTableCell from \"../common/AnnualReportTableCell\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport SwapVerticalCircleIcon from '@material-ui/icons/SwapVerticalCircle';\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport {getMoveAnnualReportEntryConfig} from \"../common/MoveAnnualReportEntry\";\r\nimport WorkableIconErrorButton from \"components/button/WorkableIconErrorButton\";\r\nimport {useParams} from \"react-router\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport {getAnnualReportEditPopup} from \"../common/AnnualReportEditPopup\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport CheckCircleOutlineIcon from \"@material-ui/icons/CheckCircleOutline\";\r\nimport RadioButtonUncheckedIcon from \"@material-ui/icons/RadioButtonUnchecked\";\r\nimport AnnualReportSteps from \"../../constants/annualReportSteps\";\r\nimport annualReportSteps from \"../../constants/annualReportSteps\";\r\nimport {simpleConfirmNoTranslate} from \"libs/ConfirmNotification\";\r\nimport AnnualReportsService from \"services/AnnualReportsService\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport clsx from \"clsx\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport formatAmountNumber from \"../../../../../../libs/formatAmountNumber\";\r\n\r\nfunction AnnualReportBelowEuTablePart(\r\n {\r\n type,\r\n classes,\r\n disabled,\r\n entries,\r\n search,\r\n setEditPopup,\r\n setMovePopup\r\n }\r\n) {\r\n const params = useParams();\r\n const {formTr, dictTranslations} = useContext(FormTranslationContext)\r\n const [expanded, setExpanded] = useState(false);\r\n const [hasIncomplete, setHasIncomplete] = useState(false);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const [entriesCounted, setEntriesCounted] = useState({\r\n worksCount: 0,\r\n worksAmount: 0,\r\n deliveriesCount: 0,\r\n deliveriesAmount: 0,\r\n servicesCount: 0,\r\n servicesAmount: 0,\r\n })\r\n\r\n const entriesFilteres = useMemo(() => {\r\n if (search.search) {\r\n return entries.filter((entry) => entry.number.includes(search.search))\r\n }\r\n return entries;\r\n }, [entries, search])\r\n\r\n useEffect(() => {\r\n let incomplete = false;\r\n setEntriesCounted(entries.reduce((acc, entry) => {\r\n incomplete = incomplete || !entry.complete;\r\n if (entry.orderType === \"Services\") {\r\n if (entry.amount)\r\n acc.servicesAmount += entry.amount\r\n acc.servicesCount++\r\n }\r\n if (entry.orderType === \"Delivery\") {\r\n if (entry.amount)\r\n acc.deliveriesAmount += entry.amount\r\n acc.deliveriesCount++\r\n }\r\n if (entry.orderType === \"Works\") {\r\n if (entry.amount)\r\n acc.worksAmount += entry.amount\r\n acc.worksCount++\r\n }\r\n return acc;\r\n }, {worksCount: 0, worksAmount: 0, deliveriesCount: 0, deliveriesAmount: 0, servicesCount: 0, servicesAmount: 0,}))\r\n setHasIncomplete(incomplete);\r\n }, [entries])\r\n\r\n useDidUpdateEffect(() => {\r\n if (!expanded && search.search && entries.some((entry) => entry.number.includes(search.search))) {\r\n setExpanded(true);\r\n }\r\n }, [search])\r\n\r\n const doDelete = (entry) => {\r\n simpleConfirmNoTranslate(Tr(\"confirm_delete_annual_entry\", {number: entry.number}), () => {\r\n AnnualReportsService.deleteAnnualReportTableEntry(params.id, entry.identity, AnnualReportSteps.belowEu, type).then((result) => {\r\n if (result) {\r\n enqueueSuccessSnackbar(Tr(\"deleted\") + \" \" + entry.number)\r\n }\r\n })\r\n })\r\n }\r\n\r\n const changeComplete = (entry, complete) => {\r\n const data = {\r\n ...entry,\r\n complete\r\n }\r\n AnnualReportsService.saveAnnualReportTableEntry(params.id, annualReportSteps.belowEu, data)\r\n .then((resp) => {\r\n if (resp) {\r\n if (resp.success) {\r\n enqueueSuccessSnackbar(Tr(\"saved\") + \" \" + entry.number)\r\n } else {\r\n setEditPopup(getAnnualReportEditPopup(entry, false, true))\r\n }\r\n }\r\n\r\n })\r\n }\r\n\r\n return (<>\r\n \r\n setExpanded(!expanded)}>\r\n {`${dictTranslations.procedures[type]} (${entriesFilteres.length}/${entries.length})`}\r\n \r\n setExpanded(!expanded)}>\r\n {hasIncomplete &&\r\n {\r\n e.stopPropagation();\r\n setExpanded(true);\r\n const incompleteEntry = entriesFilteres.find(x => !x.complete);\r\n if (incompleteEntry) {\r\n setTimeout((identity) => scrollTo(`#${annualReportSteps.belowEu}-${identity}`, 200), 100, incompleteEntry.identity)\r\n }\r\n }}\r\n tooltip={Tr(\"annual_report_section_incomplete\")}\r\n className={classes.sectionErrorIcon}\r\n />\r\n }\r\n \r\n \r\n setExpanded(!expanded)}/>\r\n \r\n \r\n \r\n \r\n {dictTranslations.orderType[\"Services\"] + \": \"}\r\n {entriesCounted.servicesCount}\r\n {\" | \" + Tr(\"value\") + \": \"}\r\n {formatAmountNumber(entriesCounted.servicesAmount) + \" zł\"}\r\n \r\n\r\n \r\n {dictTranslations.orderType[\"Delivery\"] + \": \"}\r\n {entriesCounted.deliveriesCount}\r\n {\" | \" + Tr(\"value\") + \": \"}\r\n {formatAmountNumber(entriesCounted.deliveriesAmount) + \" zł\"}\r\n \r\n\r\n \r\n {dictTranslations.orderType[\"Works\"] + \": \"}\r\n {entriesCounted.worksCount}\r\n {\" | \" + Tr(\"value\") + \": \"}\r\n {formatAmountNumber(entriesCounted.worksAmount) + \" zł\"}\r\n \r\n\r\n \r\n {expanded &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n {formTr(\"mmia.belowEu.number\")}\r\n \r\n \r\n {formTr(\"mmia.belowEu.orderType\")}\r\n \r\n \r\n {formTr(\"mmia.belowEu.amount\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {entriesFilteres.map((entry, index) => (\r\n \r\n \r\n {entry.number}\r\n \r\n \r\n {dictTranslations.orderType[entry.orderType]}\r\n \r\n \r\n {formatAmountNumber(entry.amount)}\r\n \r\n \r\n setEditPopup(getAnnualReportEditPopup(entry))}/>\r\n {\r\n entry.complete ?\r\n changeComplete(entry, false)}\r\n Icon={CheckCircleOutlineIcon} disabled={disabled}/>\r\n :\r\n changeComplete(entry, true)}\r\n disabled={disabled} Icon={RadioButtonUncheckedIcon}/>\r\n }\r\n \r\n \r\n setMovePopup(getMoveAnnualReportEntryConfig(params.id, entry.identity, type))}/>\r\n doDelete(entry)}\r\n />\r\n \r\n \r\n ))}\r\n\r\n {!entriesFilteres.length && \r\n \r\n {Tr(\"no_options\")}\r\n \r\n }\r\n \r\n
\r\n \r\n \r\n }\r\n\r\n >\r\n );\r\n}\r\n\r\nAnnualReportBelowEuTablePart.propTypes = {\r\n type: PropTypes.string.isRequired,\r\n classes: PropTypes.object.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n entries: PropTypes.array.isRequired,\r\n search: PropTypes.shape({\r\n search: PropTypes.string\r\n }).isRequired,\r\n setEditPopup: PropTypes.func.isRequired,\r\n setMovePopup: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default AnnualReportBelowEuTablePart;","import React, {useContext, useState} from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Loading from \"components/Loading\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport {Table, TableHead, TableRow} from \"@material-ui/core\";\r\nimport AnnualReportTableCell from \"../common/AnnualReportTableCell\";\r\nimport annualReportSteps from \"../../constants/annualReportSteps\";\r\nimport Tr from \"translations/Translations\";\r\nimport AnnualReportEditPopup from \"../common/AnnualReportEditPopup\";\r\nimport AnnualReportBelowEuEditForm from \"./AnnualReportBelowEuEditForm\";\r\nimport AnnualReportBelowEuTablePart from \"./AnnualReportBelowEuTablePart\";\r\nimport MoveAnnualReportEntry from \"../common/MoveAnnualReportEntry\";\r\nimport AnnualReportSearchBar from \"../common/AnnualReportSearchBar\";\r\nimport AnnualReportTableHeadCell from \"../common/AnnualReportTableHeadCell\";\r\n\r\nconst reportStep = annualReportSteps.belowEu;\r\n\r\nfunction AnnualReportBelowEuForm(\r\n {\r\n initValues,\r\n classes,\r\n disabled\r\n }\r\n) {\r\n const {getDict, dictTranslations} = useContext(FormTranslationContext);\r\n const [types] = useState(getDict(\"MP.MMiA.BelowEU.procedure\"));\r\n const [editPopup, setEditPopup] = useState(null);\r\n const [movePopup, setMovePopup] = useState(null);\r\n const [search, setSearch] = useState({search: \"\"});\r\n\r\n if (!initValues) return \r\n return (<>\r\n \r\n\r\n \r\n \r\n \r\n \r\n {dictTranslations.orderType[\"Services\"]}\r\n \r\n \r\n {dictTranslations.orderType[\"Delivery\"]}\r\n \r\n \r\n {dictTranslations.orderType[\"Works\"]}\r\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 types.map((type) =>\r\n \r\n )\r\n }\r\n \r\n
\r\n\r\n {\r\n !!editPopup &&\r\n setEditPopup(null)}\r\n config={editPopup}\r\n reportStep={annualReportSteps.belowEu}\r\n FormComponent={AnnualReportBelowEuEditForm}\r\n />\r\n }\r\n {\r\n !!movePopup &&\r\n item.value !== movePopup.currentType)}\r\n onClose={() => setMovePopup(null)}\r\n inputLabel={Tr(\"demand_realization_type\")}\r\n reportStep={reportStep}\r\n config={movePopup}\r\n />\r\n }\r\n >)\r\n\r\n\r\n}\r\n\r\nAnnualReportBelowEuForm.prototype = {\r\n initValues: PropTypes.object.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n classes: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportBelowEuForm;","import React, {useContext} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport NoticeTextInput from \"components/complex/nationalNotice/components/inputs/NoticeTextInput\";\r\nimport NoticeGlossaryInput from \"components/complex/nationalNotice/components/inputs/NoticeGlossaryInput\";\r\nimport NoticeCpvInput from \"components/complex/nationalNotice/components/inputs/NoticeCpvInput\";\r\nimport NoticeIntegerInput from \"components/complex/nationalNotice/components/inputs/NoticeIntegerInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport annulaReportClasses from \"../../constants/annulaReportClasses\";\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport AnnualReportNoticeSource from \"../../constants/AnnualReportNoticeSource\";\r\n\r\nfunction AnnualReportConflictEditForm(\r\n {\r\n entry,\r\n newEntry,\r\n buttonWorks,\r\n reportStep,\r\n formikProps\r\n }) {\r\n const {getDict} = useContext(FormTranslationContext)\r\n const classes = annulaReportClasses();\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\nAnnualReportConflictEditForm.propTypes = {\r\n entry: PropTypes.object.isRequired,\r\n newEntry: PropTypes.bool,\r\n buttonWorks: PropTypes.shape({anyWorks: PropTypes.bool.isRequired}).isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n formikProps: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportConflictEditForm;","import AnnualReportNoticeSource from \"./AnnualReportNoticeSource\";\r\n\r\nconst annualReportTenderMode = (entry, dictTranslations) => {\r\n if (entry.source === AnnualReportNoticeSource.BZP) {\r\n return entry.tenderModeBzp ? dictTranslations.tenderModeBzp[entry.tenderModeBzp] : null\r\n } else if (entry.source === AnnualReportNoticeSource.TED) {\r\n return entry.tenderModeTed ? dictTranslations.tenderModeTed[entry.tenderModeTed] : null\r\n }\r\n return null;\r\n}\r\nexport default annualReportTenderMode;","import React, {useContext, useState} from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Loading from \"components/Loading\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport {Table, TableBody, TableHead, TableRow, Tooltip} from \"@material-ui/core\";\r\nimport AnnualReportTableCell from \"../common/AnnualReportTableCell\";\r\nimport AnnualReportEditPopup from \"../common/AnnualReportEditPopup\";\r\nimport AnnualReportConflictEditForm from \"./AnnualReportConflictEditForm\";\r\nimport annualReportSteps from \"../../constants/annualReportSteps\";\r\nimport AnnualReportTableHeadCell from \"../common/AnnualReportTableHeadCell\";\r\nimport AnnualReportTablePart from \"../common/AnnualReportTablePart\";\r\nimport AnnualReportSearchBar from \"../common/AnnualReportSearchBar\";\r\nimport formatInteger from \"libs/formatInteger\";\r\nimport MoveAnnualReportEntry from \"../common/MoveAnnualReportEntry\";\r\nimport Tr from \"translations/Translations\";\r\nimport annualReportTenderMode from \"../../constants/annualReportTenderMode\";\r\n\r\nconst reportStep = annualReportSteps.conflict;\r\n\r\nfunction AnnualReportConflictForm(\r\n {\r\n initValues,\r\n classes,\r\n disabled\r\n }\r\n) {\r\n const {getDict, dictTranslations} = useContext(FormTranslationContext);\r\n const [types] = useState(getDict(\"MP.MMiA.OrdersType\"));\r\n const [editPopup, setEditPopup] = useState(null);\r\n const [movePopup, setMovePopup] = useState(null);\r\n const [search, setSearch] = useState({search: \"\"});\r\n\r\n const getRowValues = (entry) => ([\r\n entry.number,\r\n entry.source ? dictTranslations.source[entry.source] : null,\r\n entry.noticeNumber,\r\n entry.orderType ? dictTranslations.orderType[entry.orderType] : null,\r\n entry.codeCpv ? {entry.codeCpv.publicCode} : null,\r\n annualReportTenderMode(entry, dictTranslations),\r\n formatInteger(entry.numberOfCasesOfConflictOfInterest),\r\n formatInteger(entry.numberOfDetectedAgreements),\r\n formatInteger(entry.numberOfContractorsWithRejectedOffer),\r\n ])\r\n\r\n if (!initValues) return \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 types.map((type) =>\r\n \r\n )\r\n }\r\n \r\n\r\n
\r\n\r\n {\r\n !!editPopup &&\r\n setEditPopup(null)}\r\n config={editPopup}\r\n reportStep={annualReportSteps.conflict}\r\n FormComponent={AnnualReportConflictEditForm}\r\n />\r\n }\r\n {\r\n !!movePopup &&\r\n item.value !== movePopup.currentType)}\r\n onClose={() => setMovePopup(null)}\r\n inputLabel={Tr(\"order_type\")}\r\n reportStep={reportStep}\r\n config={movePopup}\r\n />\r\n }\r\n >\r\n\r\n\r\n}\r\n\r\nAnnualReportConflictForm.prototype = {\r\n initValues: PropTypes.object.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n classes: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportConflictForm;","import React, {useContext} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport NoticeTextInput from \"components/complex/nationalNotice/components/inputs/NoticeTextInput\";\r\nimport NoticeGlossaryInput from \"components/complex/nationalNotice/components/inputs/NoticeGlossaryInput\";\r\nimport NoticeCpvInput from \"components/complex/nationalNotice/components/inputs/NoticeCpvInput\";\r\nimport NoticeIntegerInput from \"components/complex/nationalNotice/components/inputs/NoticeIntegerInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeYesNoInput from \"components/complex/nationalNotice/components/inputs/NoticeYesNoInput\";\r\nimport NoticeNumericInput from \"components/complex/nationalNotice/components/inputs/NoticeNumericInput\";\r\nimport annulaReportClasses from \"../../constants/annulaReportClasses\";\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport AnnualReportNoticeSource from \"../../constants/AnnualReportNoticeSource\";\r\n\r\nfunction AnnualReportCommunityEditForm(\r\n {\r\n entry,\r\n newEntry,\r\n buttonWorks,\r\n reportStep,\r\n formikProps\r\n }) {\r\n const {getDict} = useContext(FormTranslationContext)\r\n const classes = annulaReportClasses();\r\n return (<>\r\n item.value !== \"DEFENSE_AND_SECURITY\")}\r\n disabled={buttonWorks.anyWorks}\r\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\nAnnualReportCommunityEditForm.propTypes = {\r\n entry: PropTypes.object.isRequired,\r\n newEntry: PropTypes.bool,\r\n buttonWorks: PropTypes.shape({anyWorks: PropTypes.bool.isRequired}).isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n formikProps: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportCommunityEditForm;","import React, {useContext, useState} from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Loading from \"components/Loading\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport {Table, TableBody, TableHead, TableRow, Tooltip} from \"@material-ui/core\";\r\nimport AnnualReportTableCell from \"../common/AnnualReportTableCell\";\r\nimport Tr from \"translations/Translations\";\r\nimport AnnualReportEditPopup from \"../common/AnnualReportEditPopup\";\r\nimport AnnualReportCommunityEditForm from \"./AnnualReportCommunityEditForm\";\r\nimport annualReportSteps from \"../../constants/annualReportSteps\";\r\nimport MoveAnnualReportEntry from \"../common/MoveAnnualReportEntry\";\r\nimport AnnualReportTablePart from \"../common/AnnualReportTablePart\";\r\nimport AnnualReportSearchBar from \"../common/AnnualReportSearchBar\";\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\nimport formatBoolean from \"libs/formatBoolean\";\r\nimport formatInteger from \"libs/formatInteger\";\r\nimport AnnualReportTableHeadCell from \"../common/AnnualReportTableHeadCell\";\r\nimport annualReportTenderMode from \"../../constants/annualReportTenderMode\";\r\n\r\nconst columns = [\"number\", \"source\", \"noticeNumber\", \"serviceDescription\", \"codeCpv\", \"tenderModeBzp\", \"reservedTender\", \"amount\",\r\n \"numberOfAwardedLots\", \"numberOfOffers\", \"numberOfOffersMMSP\"];\r\nconst reportStep = annualReportSteps.community;\r\n\r\nfunction AnnualReportCommunityForm(\r\n {\r\n initValues,\r\n classes,\r\n disabled\r\n }\r\n) {\r\n const {getDict, dictTranslations} = useContext(FormTranslationContext);\r\n const [types] = useState(getDict(\"MP.MMiA.OrdersType\").filter(item => item.value !== \"DEFENSE_AND_SECURITY\"));\r\n const [editPopup, setEditPopup] = useState(null);\r\n const [movePopup, setMovePopup] = useState(null);\r\n const [search, setSearch] = useState({search: \"\"});\r\n\r\n const getRowValues = (entry) => ([\r\n entry.number,\r\n entry.source ? dictTranslations.source[entry.source] : null,\r\n entry.noticeNumber,\r\n entry.serviceDescription,\r\n entry.codeCpv ? {entry.codeCpv.publicCode} : null,\r\n annualReportTenderMode(entry, dictTranslations),\r\n formatBoolean(entry.reservedTender),\r\n formatAmountNumber(entry.amount),\r\n formatInteger(entry.numberOfAwardedLots),\r\n formatInteger(entry.numberOfOffers),\r\n formatInteger(entry.numberOfOffersMMSP),\r\n ])\r\n\r\n if (!initValues) return \r\n return <>\r\n \r\n\r\n \r\n \r\n \r\n {columns.map(x => ())}\r\n \r\n \r\n \r\n \r\n {\r\n types.map((type) =>\r\n \r\n )\r\n }\r\n \r\n\r\n
\r\n\r\n {\r\n !!editPopup &&\r\n setEditPopup(null)}\r\n config={editPopup}\r\n reportStep={annualReportSteps.community}\r\n FormComponent={AnnualReportCommunityEditForm}\r\n />\r\n }\r\n {\r\n !!movePopup &&\r\n item.value !== movePopup.currentType)}\r\n onClose={() => setMovePopup(null)}\r\n inputLabel={Tr(\"order_type\")}\r\n reportStep={reportStep}\r\n config={movePopup}\r\n />\r\n }\r\n >\r\n}\r\n\r\nAnnualReportCommunityForm.prototype = {\r\n initValues: PropTypes.object.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n classes: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportCommunityForm;","import React, {useContext} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport NoticeTextInput from \"components/complex/nationalNotice/components/inputs/NoticeTextInput\";\r\nimport NoticeGlossaryInput from \"components/complex/nationalNotice/components/inputs/NoticeGlossaryInput\";\r\nimport NoticeCpvInput from \"components/complex/nationalNotice/components/inputs/NoticeCpvInput\";\r\nimport NoticeIntegerInput from \"components/complex/nationalNotice/components/inputs/NoticeIntegerInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeYesNoInput from \"components/complex/nationalNotice/components/inputs/NoticeYesNoInput\";\r\nimport NoticeNumericInput from \"components/complex/nationalNotice/components/inputs/NoticeNumericInput\";\r\nimport annulaReportClasses from \"../../constants/annulaReportClasses\";\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport AnnualReportNoticeSource from \"../../constants/AnnualReportNoticeSource\";\r\n\r\nfunction AnnualReportSocialEditForm(\r\n {\r\n entry,\r\n newEntry,\r\n buttonWorks,\r\n reportStep,\r\n formikProps\r\n }) {\r\n const {getDict} = useContext(FormTranslationContext)\r\n const classes = annulaReportClasses();\r\n\r\n return (<>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n >\r\n )\r\n\r\n}\r\n\r\nAnnualReportSocialEditForm.propTypes = {\r\n entry: PropTypes.object.isRequired,\r\n newEntry: PropTypes.bool,\r\n buttonWorks: PropTypes.shape({anyWorks: PropTypes.bool.isRequired}).isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n formikProps: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportSocialEditForm;","import React, {useContext, useState} from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Loading from \"components/Loading\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport {Table, TableBody, TableHead, TableRow, Tooltip} from \"@material-ui/core\";\r\nimport AnnualReportTableCell from \"../common/AnnualReportTableCell\";\r\nimport Tr from \"translations/Translations\";\r\nimport AnnualReportEditPopup from \"../common/AnnualReportEditPopup\";\r\nimport AnnualReportSocialEditForm from \"./AnnualReportSocialEditForm\";\r\nimport annualReportSteps from \"../../constants/annualReportSteps\";\r\nimport AnnualReportSearchBar from \"../common/AnnualReportSearchBar\";\r\nimport AnnualReportTableHeadCell from \"../common/AnnualReportTableHeadCell\";\r\nimport AnnualReportTablePart from \"../common/AnnualReportTablePart\";\r\nimport MoveAnnualReportEntry from \"../common/MoveAnnualReportEntry\";\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\nimport formatBoolean from \"libs/formatBoolean\";\r\nimport formatInteger from \"libs/formatInteger\";\r\nimport annualReportTenderMode from \"../../constants/annualReportTenderMode\";\r\n\r\nconst reportStep = annualReportSteps.social;\r\n\r\nfunction AnnualReportSocialForm(\r\n {\r\n initValues,\r\n classes,\r\n disabled\r\n }\r\n) {\r\n const {getDict, dictTranslations} = useContext(FormTranslationContext);\r\n const [types] = useState(getDict(\"MP.MMiA.OrdersType\"));\r\n const [editPopup, setEditPopup] = useState(null);\r\n const [movePopup, setMovePopup] = useState(null);\r\n const [search, setSearch] = useState({search: \"\"});\r\n\r\n const getRowValues = (entry) => ([\r\n entry.number,\r\n entry.source ? dictTranslations.source[entry.source] : null,\r\n entry.noticeNumber,\r\n entry.orderType ? dictTranslations.orderType[entry.orderType] : null,\r\n entry.codeCpv ? {entry.codeCpv.publicCode} : null,\r\n annualReportTenderMode(entry, dictTranslations),\r\n formatAmountNumber(entry.contractValue),\r\n formatInteger(entry.numberOfAwardedLots),\r\n formatInteger(entry.numberOfOffers),\r\n formatBoolean(entry.reservedTender),\r\n formatBoolean(entry.inDescriptionRequirementsForAccessibility),\r\n formatBoolean(entry.definedSocialAspectsInOfferEvaluationCriteria),\r\n formatBoolean(entry.definedRequirementsBasedOnEmploymentRelationship),\r\n formatBoolean(entry.definedSocialAspectsRequirements),\r\n formatBoolean(entry.definedLabelRelatedToSocialAspects),\r\n dictTranslations.contractorType[entry.contractorType],\r\n ])\r\n\r\n if (!initValues) return \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 types.map((type) =>\r\n \r\n )\r\n }\r\n \r\n\r\n
\r\n\r\n {\r\n !!editPopup &&\r\n setEditPopup(null)}\r\n config={editPopup}\r\n reportStep={annualReportSteps.social}\r\n FormComponent={AnnualReportSocialEditForm}\r\n />\r\n }\r\n {\r\n !!movePopup &&\r\n item.value !== movePopup.currentType)}\r\n onClose={() => setMovePopup(null)}\r\n inputLabel={Tr(\"order_type\")}\r\n reportStep={reportStep}\r\n config={movePopup}\r\n />\r\n }\r\n >\r\n\r\n\r\n}\r\n\r\nAnnualReportSocialForm.prototype = {\r\n initValues: PropTypes.object.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n classes: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportSocialForm;","import React, {useContext} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport NoticeTextInput from \"components/complex/nationalNotice/components/inputs/NoticeTextInput\";\r\nimport NoticeGlossaryInput from \"components/complex/nationalNotice/components/inputs/NoticeGlossaryInput\";\r\nimport NoticeCpvInput from \"components/complex/nationalNotice/components/inputs/NoticeCpvInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeYesNoInput from \"components/complex/nationalNotice/components/inputs/NoticeYesNoInput\";\r\nimport NoticeNumericInput from \"components/complex/nationalNotice/components/inputs/NoticeNumericInput\";\r\nimport annulaReportClasses from \"../../constants/annulaReportClasses\";\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport AnnualReportNoticeSource from \"../../constants/AnnualReportNoticeSource\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nfunction AnnualReportInnovativeEditForm(\r\n {\r\n entry,\r\n newEntry,\r\n buttonWorks,\r\n reportStep,\r\n formikProps\r\n }) {\r\n const {getDict} = useContext(FormTranslationContext)\r\n const classes = annulaReportClasses();\r\n return (<>\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n >\r\n )\r\n\r\n}\r\n\r\nAnnualReportInnovativeEditForm.propTypes = {\r\n entry: PropTypes.object.isRequired,\r\n newEntry: PropTypes.bool,\r\n buttonWorks: PropTypes.shape({anyWorks: PropTypes.bool.isRequired}).isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n formikProps: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportInnovativeEditForm;","import React, {useContext, useState} from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Loading from \"components/Loading\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport {Table, TableBody, TableHead, TableRow, Tooltip} from \"@material-ui/core\";\r\nimport AnnualReportTableHeadCell from \"../common/AnnualReportTableHeadCell\";\r\nimport Tr from \"translations/Translations\";\r\nimport AnnualReportEditPopup from \"../common/AnnualReportEditPopup\";\r\nimport AnnualReportInnovativeEditForm from \"./AnnualReportInnovativeEditForm\";\r\nimport annualReportSteps from \"../../constants/annualReportSteps\";\r\nimport MoveAnnualReportEntry from \"../common/MoveAnnualReportEntry\";\r\nimport AnnualReportTablePart from \"../common/AnnualReportTablePart\";\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\nimport formatBoolean from \"libs/formatBoolean\";\r\nimport AnnualReportTableCell from \"../common/AnnualReportTableCell\";\r\nimport AnnualReportSearchBar from \"../common/AnnualReportSearchBar\";\r\nimport annualReportTenderMode from \"../../constants/annualReportTenderMode\";\r\n\r\n\r\nconst reportStep = annualReportSteps.innovative;\r\n\r\nfunction AnnualReportInnovativeForm(\r\n {\r\n initValues,\r\n classes,\r\n disabled\r\n }\r\n) {\r\n const {getDict, dictTranslations} = useContext(FormTranslationContext);\r\n const [types] = useState(getDict(\"MP.MMiA.OrdersType\"));\r\n const [editPopup, setEditPopup] = useState(null);\r\n const [movePopup, setMovePopup] = useState(null);\r\n const [search, setSearch] = useState({search: \"\"});\r\n\r\n\r\n const getRowValues = (entry) => ([\r\n entry.number,\r\n entry.source ? dictTranslations.source[entry.source] : null,\r\n entry.noticeNumber,\r\n entry.orderType ? dictTranslations.orderType[entry.orderType] : null,\r\n entry.codeCpv ? {entry.codeCpv.publicCode} : null,\r\n annualReportTenderMode(entry, dictTranslations),\r\n formatAmountNumber(entry.contractValue),\r\n formatBoolean(entry.environmentalRequirements),\r\n formatBoolean(entry.environmentalManagementSystemAndStandards),\r\n formatBoolean(entry.environmentalAspectsInEvaluationCriteria),\r\n formatBoolean(entry.costCriterionUsingLifeCycleCostingApplied),\r\n formatBoolean(entry.environmentalAspectsRequirements),\r\n formatBoolean(entry.labelRelatedToEnvAspectsOrMeasureOfEvidence),\r\n formatBoolean(entry.innovativeAspectsInEvaluationCriteria),\r\n formatBoolean(entry.innovativeAspectsRequirements),\r\n ])\r\n\r\n if (!initValues) return \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 types.map((type) =>\r\n \r\n )\r\n }\r\n \r\n\r\n
\r\n\r\n {\r\n !!editPopup &&\r\n setEditPopup(null)}\r\n config={editPopup}\r\n reportStep={reportStep}\r\n FormComponent={AnnualReportInnovativeEditForm}\r\n />\r\n }\r\n {\r\n !!movePopup &&\r\n item.value !== movePopup.currentType)}\r\n onClose={() => setMovePopup(null)}\r\n inputLabel={Tr(\"order_type\")}\r\n reportStep={reportStep}\r\n config={movePopup}\r\n />\r\n }\r\n >\r\n\r\n\r\n}\r\n\r\nAnnualReportInnovativeForm.prototype = {\r\n initValues: PropTypes.object.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n classes: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportInnovativeForm;","import React, {useContext} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport NoticeTextInput from \"components/complex/nationalNotice/components/inputs/NoticeTextInput\";\r\nimport NoticeGlossaryInput from \"components/complex/nationalNotice/components/inputs/NoticeGlossaryInput\";\r\nimport NoticeNumericInput from \"components/complex/nationalNotice/components/inputs/NoticeNumericInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport annulaReportClasses from \"../../constants/annulaReportClasses\";\r\n\r\nfunction AnnualReportExceptionEditForm(\r\n {\r\n entry,\r\n newEntry,\r\n buttonWorks,\r\n reportStep,\r\n formikProps\r\n }) {\r\n const {getDict} = useContext(FormTranslationContext);\r\n const classes = annulaReportClasses();\r\n return (<>\r\n ({\r\n label: index + \" - \" + item.label,\r\n value: item.value\r\n }))}\r\n disabled={buttonWorks.anyWorks}\r\n />\r\n \r\n \r\n \r\n >)\r\n}\r\n\r\nAnnualReportExceptionEditForm.propTypes = {\r\n entry: PropTypes.object.isRequired,\r\n newEntry: PropTypes.bool,\r\n buttonWorks: PropTypes.shape({anyWorks: PropTypes.bool.isRequired}).isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n formikProps: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportExceptionEditForm;","import React, {useContext, useEffect, useMemo, useState} from \"react\";\r\nimport {Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport AnnualReportTableCell from \"../common/AnnualReportTableCell\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport SwapVerticalCircleIcon from '@material-ui/icons/SwapVerticalCircle';\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport {getMoveAnnualReportEntryConfig} from \"../common/MoveAnnualReportEntry\";\r\nimport WorkableIconErrorButton from \"components/button/WorkableIconErrorButton\";\r\nimport {useParams} from \"react-router\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport {getAnnualReportEditPopup} from \"../common/AnnualReportEditPopup\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport CheckCircleOutlineIcon from \"@material-ui/icons/CheckCircleOutline\";\r\nimport RadioButtonUncheckedIcon from \"@material-ui/icons/RadioButtonUnchecked\";\r\nimport {simpleConfirmNoTranslate} from \"libs/ConfirmNotification\";\r\nimport AnnualReportsService from \"services/AnnualReportsService\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport clsx from \"clsx\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\nimport AnnualReportTableHeadCell from \"../common/AnnualReportTableHeadCell\";\r\n\r\nfunction AnnualReportExceptionTablePart(\r\n {\r\n type,\r\n reportStep,\r\n classes,\r\n disabled,\r\n entries,\r\n index,\r\n search,\r\n setEditPopup,\r\n setMovePopup\r\n }\r\n) {\r\n const params = useParams();\r\n const {dictTranslations} = useContext(FormTranslationContext)\r\n const [expanded, setExpanded] = useState(false);\r\n const [hasIncomplete, setHasIncomplete] = useState(false);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const [entriesCounted, setEntriesCounted] = useState({\r\n count: 0,\r\n contractValue: 0,\r\n })\r\n\r\n const entriesFilteres = useMemo(() => {\r\n if (search.search) {\r\n return entries.filter((entry) => entry.number.includes(search.search))\r\n }\r\n return entries;\r\n }, [entries, search])\r\n\r\n useEffect(() => {\r\n let incomplete = false;\r\n setEntriesCounted(entries.reduce((acc, entry) => {\r\n incomplete = incomplete || !entry.complete;\r\n if (entry.contractValue)\r\n acc.contractValue += parseFloat(entry.contractValue)\r\n acc.count++\r\n return acc;\r\n }, {count: 0, contractValue: 0}))\r\n setHasIncomplete(incomplete);\r\n }, [entries])\r\n\r\n useDidUpdateEffect(() => {\r\n if (!expanded && search.search && entries.some((entry) => entry.number.includes(search.search))) {\r\n setExpanded(true);\r\n }\r\n }, [search])\r\n\r\n const doDelete = (entry) => {\r\n simpleConfirmNoTranslate(Tr(\"confirm_delete_annual_entry\", {number: entry.number}), () => {\r\n AnnualReportsService.deleteAnnualReportTableEntry(params.id, entry.identity, reportStep, type).then((result) => {\r\n if (result) {\r\n enqueueSuccessSnackbar(Tr(\"deleted\") + \" \" + entry.number)\r\n }\r\n })\r\n })\r\n }\r\n\r\n const changeComplete = (entry, complete) => {\r\n const data = {\r\n ...entry,\r\n complete\r\n }\r\n AnnualReportsService.saveAnnualReportTableEntry(params.id, reportStep, data)\r\n .then((resp) => {\r\n if (resp) {\r\n if (resp.success) {\r\n enqueueSuccessSnackbar(Tr(\"saved\") + \" \" + entry.number)\r\n } else {\r\n setEditPopup(getAnnualReportEditPopup(entry, false, true))\r\n }\r\n }\r\n\r\n })\r\n }\r\n\r\n return (<>\r\n \r\n {index !== 0 ? index : null }\r\n setExpanded(!expanded)} className={classes.exceptionName}>\r\n {`${dictTranslations.exceptions[type]} (${entriesFilteres.length}/${entries.length})`}\r\n \r\n setExpanded(!expanded)}>\r\n {hasIncomplete &&\r\n {\r\n e.stopPropagation();\r\n setExpanded(true);\r\n const incompleteEntry = entriesFilteres.find(x => !x.complete);\r\n if (incompleteEntry) {\r\n setTimeout((identity) => scrollTo(`#${reportStep}-${identity}`, 200), 100, incompleteEntry.identity)\r\n }\r\n }}\r\n tooltip={Tr(\"annual_report_section_incomplete\")}\r\n className={classes.sectionErrorIcon}\r\n />\r\n }\r\n \r\n {entriesCounted.count}\r\n {formatAmountNumber(entriesCounted.contractValue) + \" zł\"}\r\n\r\n \r\n setExpanded(!expanded)}/>\r\n \r\n \r\n {expanded &&\r\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 {entriesFilteres.map((entry, index) => (\r\n \r\n \r\n {entry.number}\r\n \r\n \r\n {entry.name}\r\n \r\n \r\n {formatAmountNumber(entry.contractValue)}\r\n \r\n \r\n setEditPopup(getAnnualReportEditPopup(entry))}/>\r\n {\r\n entry.complete ?\r\n changeComplete(entry, false)}\r\n Icon={CheckCircleOutlineIcon} disabled={disabled}/>\r\n :\r\n changeComplete(entry, true)}\r\n disabled={disabled} Icon={RadioButtonUncheckedIcon}/>\r\n }\r\n \r\n \r\n setMovePopup(getMoveAnnualReportEntryConfig(params.id, entry.identity, type))}/>\r\n doDelete(entry)}\r\n />\r\n \r\n \r\n ))}\r\n\r\n {!entriesFilteres.length && \r\n \r\n {Tr(\"no_options\")}\r\n \r\n }\r\n \r\n
\r\n \r\n \r\n }\r\n\r\n >\r\n );\r\n}\r\n\r\nAnnualReportExceptionTablePart.propTypes = {\r\n type: PropTypes.string.isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n classes: PropTypes.object.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n entries: PropTypes.array.isRequired,\r\n search: PropTypes.shape({\r\n search: PropTypes.string\r\n }).isRequired,\r\n setEditPopup: PropTypes.func.isRequired,\r\n setMovePopup: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default AnnualReportExceptionTablePart;","import React, {useContext, useState} from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Loading from \"components/Loading\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport {Table, TableHead, TableRow} from \"@material-ui/core\";\r\nimport AnnualReportTableCell from \"../common/AnnualReportTableCell\";\r\nimport annualReportSteps from \"../../constants/annualReportSteps\";\r\nimport Tr from \"translations/Translations\";\r\nimport AnnualReportEditPopup from \"../common/AnnualReportEditPopup\";\r\nimport AnnualReportExceptionEditForm from \"./AnnualReportExceptionEditForm\";\r\nimport AnnualReportExceptionTablePart from \"./AnnualReportExceptionTablePart\";\r\nimport MoveAnnualReportEntry from \"../common/MoveAnnualReportEntry\";\r\nimport AnnualReportSearchBar from \"../common/AnnualReportSearchBar\";\r\nimport AnnualReportTableHeadCell from \"../common/AnnualReportTableHeadCell\";\r\n\r\nconst reportStep = annualReportSteps.exception;\r\n\r\nfunction AnnualReportExceptionForm(\r\n {\r\n initValues,\r\n classes,\r\n disabled\r\n }\r\n) {\r\n const {getDict, formTr} = useContext(FormTranslationContext);\r\n const [types] = useState(getDict(\"SL.MMiA.063\"));\r\n const [editPopup, setEditPopup] = useState(null);\r\n const [movePopup, setMovePopup] = useState(null);\r\n const [search, setSearch] = useState({search: \"\"});\r\n\r\n if (!initValues) return \r\n return (<>\r\n \r\n\r\n \r\n \r\n \r\n \r\n {Tr(\"column_lp\")}
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n types.map((type, index) =>\r\n \r\n )\r\n }\r\n \r\n
\r\n\r\n {\r\n !!editPopup &&\r\n setEditPopup(null)}\r\n config={editPopup}\r\n reportStep={reportStep}\r\n FormComponent={AnnualReportExceptionEditForm}\r\n />\r\n }\r\n {\r\n !!movePopup &&\r\n ({\r\n label: index + \" - \" + item.label,\r\n value: item.value\r\n })).filter((item) => item.value !== movePopup.currentType)}\r\n onClose={() => setMovePopup(null)}\r\n inputLabel={formTr(\"mmia.exception.type\")}\r\n reportStep={reportStep}\r\n config={movePopup}\r\n />\r\n }\r\n\r\n >)\r\n\r\n\r\n}\r\n\r\nAnnualReportExceptionForm.prototype = {\r\n initValues: PropTypes.object.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n classes: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportExceptionForm;","import React, {useContext} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport NoticeTextInput from \"components/complex/nationalNotice/components/inputs/NoticeTextInput\";\r\nimport NoticeGlossaryInput from \"components/complex/nationalNotice/components/inputs/NoticeGlossaryInput\";\r\nimport NoticeNumericInput from \"components/complex/nationalNotice/components/inputs/NoticeNumericInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport annulaReportClasses from \"../../constants/annulaReportClasses\";\r\n\r\nfunction AnnualReportNotIncludedEditForm(\r\n {\r\n entry,\r\n newEntry,\r\n buttonWorks,\r\n reportStep,\r\n formikProps\r\n }) {\r\n const {getDict} = useContext(FormTranslationContext);\r\n const classes = annulaReportClasses();\r\n return (<>\r\n \r\n \r\n \r\n \r\n >)\r\n}\r\n\r\nAnnualReportNotIncludedEditForm.propTypes = {\r\n entry: PropTypes.object.isRequired,\r\n newEntry: PropTypes.bool,\r\n buttonWorks: PropTypes.shape({anyWorks: PropTypes.bool.isRequired}).isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n formikProps: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportNotIncludedEditForm;","import React, {useContext, useEffect, useMemo, useState} from \"react\";\r\nimport {Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport AnnualReportTableCell from \"../common/AnnualReportTableCell\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport SwapVerticalCircleIcon from '@material-ui/icons/SwapVerticalCircle';\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport {getMoveAnnualReportEntryConfig} from \"../common/MoveAnnualReportEntry\";\r\nimport WorkableIconErrorButton from \"components/button/WorkableIconErrorButton\";\r\nimport {useParams} from \"react-router\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport {getAnnualReportEditPopup} from \"../common/AnnualReportEditPopup\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport CheckCircleOutlineIcon from \"@material-ui/icons/CheckCircleOutline\";\r\nimport RadioButtonUncheckedIcon from \"@material-ui/icons/RadioButtonUnchecked\";\r\nimport {simpleConfirmNoTranslate} from \"libs/ConfirmNotification\";\r\nimport AnnualReportsService from \"services/AnnualReportsService\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport clsx from \"clsx\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\nimport AnnualReportTableHeadCell from \"../common/AnnualReportTableHeadCell\";\r\n\r\nfunction AnnualReportNotIncludedTablePart(\r\n {\r\n type,\r\n reportStep,\r\n classes,\r\n disabled,\r\n entries,\r\n search,\r\n setEditPopup,\r\n setMovePopup\r\n }\r\n) {\r\n const params = useParams();\r\n const {dictTranslations} = useContext(FormTranslationContext)\r\n const [expanded, setExpanded] = useState(false);\r\n const [hasIncomplete, setHasIncomplete] = useState(false);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const [entriesCounted, setEntriesCounted] = useState({\r\n contractValue: 0,\r\n })\r\n\r\n const entriesFilteres = useMemo(() => {\r\n if (search.search) {\r\n return entries.filter((entry) => entry.number.includes(search.search))\r\n }\r\n return entries;\r\n }, [entries, search])\r\n\r\n useEffect(() => {\r\n let incomplete = false;\r\n setEntriesCounted(entries.reduce((acc, entry) => {\r\n incomplete = incomplete || !entry.complete;\r\n if (entry.contractValue)\r\n acc.contractValue += parseFloat(entry.contractValue)\r\n return acc;\r\n }, {contractValue: 0}))\r\n setHasIncomplete(incomplete);\r\n }, [entries])\r\n\r\n useDidUpdateEffect(() => {\r\n if (!expanded && search.search && entries.some((entry) => entry.number.includes(search.search))) {\r\n setExpanded(true);\r\n }\r\n }, [search])\r\n\r\n const doDelete = (entry) => {\r\n simpleConfirmNoTranslate(Tr(\"confirm_delete_annual_entry\", {number: entry.number}), () => {\r\n AnnualReportsService.deleteAnnualReportTableEntry(params.id, entry.identity, reportStep, type).then((result) => {\r\n if (result) {\r\n enqueueSuccessSnackbar(Tr(\"deleted\") + \" \" + entry.number)\r\n }\r\n })\r\n })\r\n }\r\n\r\n const changeComplete = (entry, complete) => {\r\n const data = {\r\n ...entry,\r\n complete\r\n }\r\n AnnualReportsService.saveAnnualReportTableEntry(params.id, reportStep, data)\r\n .then((resp) => {\r\n if (resp) {\r\n if (resp.success) {\r\n enqueueSuccessSnackbar(Tr(\"saved\") + \" \" + entry.number)\r\n } else {\r\n setEditPopup(getAnnualReportEditPopup(entry, false, true))\r\n }\r\n }\r\n\r\n })\r\n }\r\n\r\n return (<>\r\n \r\n {type}\r\n setExpanded(!expanded)} className={classes.exceptionName}>\r\n {`${dictTranslations.notIncluded[type]} (${entriesFilteres.length}/${entries.length})`}\r\n \r\n setExpanded(!expanded)}>\r\n {hasIncomplete &&\r\n {\r\n e.stopPropagation();\r\n setExpanded(true);\r\n const incompleteEntry = entriesFilteres.find(x => !x.complete);\r\n if (incompleteEntry) {\r\n setTimeout((identity) => scrollTo(`#${reportStep}-${identity}`, 200), 100, incompleteEntry.identity)\r\n }\r\n }}\r\n tooltip={Tr(\"annual_report_section_incomplete\")}\r\n className={classes.sectionErrorIcon}\r\n />\r\n }\r\n \r\n {formatAmountNumber(entriesCounted.contractValue) + \" zł\"}\r\n\r\n \r\n setExpanded(!expanded)}/>\r\n \r\n \r\n {expanded &&\r\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 {entriesFilteres.map((entry, index) => (\r\n \r\n \r\n {entry.number}\r\n \r\n \r\n {entry.name}\r\n \r\n \r\n {formatAmountNumber(entry.contractValue)}\r\n \r\n \r\n setEditPopup(getAnnualReportEditPopup(entry))}/>\r\n {\r\n entry.complete ?\r\n changeComplete(entry, false)}\r\n Icon={CheckCircleOutlineIcon} disabled={disabled}/>\r\n :\r\n changeComplete(entry, true)}\r\n disabled={disabled} Icon={RadioButtonUncheckedIcon}/>\r\n }\r\n \r\n \r\n setMovePopup(getMoveAnnualReportEntryConfig(params.id, entry.identity, type))}/>\r\n doDelete(entry)}\r\n />\r\n \r\n \r\n ))}\r\n\r\n {!entriesFilteres.length && \r\n \r\n {Tr(\"no_options\")}\r\n \r\n }\r\n \r\n
\r\n \r\n \r\n }\r\n\r\n >\r\n );\r\n}\r\n\r\nAnnualReportNotIncludedTablePart.propTypes = {\r\n type: PropTypes.string.isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n classes: PropTypes.object.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n entries: PropTypes.array.isRequired,\r\n search: PropTypes.shape({\r\n search: PropTypes.string\r\n }).isRequired,\r\n setEditPopup: PropTypes.func.isRequired,\r\n setMovePopup: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default AnnualReportNotIncludedTablePart;","import React, {useContext, useState} from \"react\"\r\nimport PropTypes from \"prop-types\";\r\nimport Loading from \"components/Loading\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport {Table, TableHead, TableRow} from \"@material-ui/core\";\r\nimport AnnualReportTableCell from \"../common/AnnualReportTableCell\";\r\nimport annualReportSteps from \"../../constants/annualReportSteps\";\r\nimport Tr from \"translations/Translations\";\r\nimport AnnualReportEditPopup from \"../common/AnnualReportEditPopup\";\r\nimport AnnualReportNotIncludedEditForm from \"./AnnualReportNotIncludedEditForm\";\r\nimport AnnualReportNotIncludedTablePart from \"./AnnualReportNotIncludedTablePart\";\r\nimport MoveAnnualReportEntry from \"../common/MoveAnnualReportEntry\";\r\nimport AnnualReportSearchBar from \"../common/AnnualReportSearchBar\";\r\nimport AnnualReportTableHeadCell from \"../common/AnnualReportTableHeadCell\";\r\n\r\nconst reportStep = annualReportSteps.notIncluded;\r\n\r\nfunction AnnualReportNotIncludedForm(\r\n {\r\n initValues,\r\n classes,\r\n disabled\r\n }\r\n) {\r\n const {getDict} = useContext(FormTranslationContext);\r\n const [types] = useState(getDict(\"SL.MMiA.064\"));\r\n const [editPopup, setEditPopup] = useState(null);\r\n const [movePopup, setMovePopup] = useState(null);\r\n const [search, setSearch] = useState({search: \"\"});\r\n\r\n if (!initValues) return \r\n return (<>\r\n \r\n\r\n \r\n \r\n \r\n \r\n {Tr(\"column_lp\")}
\r\n \r\n \r\n \r\n \r\n \r\n\r\n {\r\n types.map((type) =>\r\n \r\n )\r\n }\r\n \r\n
\r\n {\r\n !!editPopup &&\r\n setEditPopup(null)}\r\n config={editPopup}\r\n reportStep={reportStep}\r\n FormComponent={AnnualReportNotIncludedEditForm}\r\n />\r\n }\r\n {\r\n !!movePopup &&\r\n item.value !== movePopup.currentType).map((item) => ({\r\n label: item.value + \" - \" + item.label,\r\n value: item.value\r\n }))}\r\n onClose={() => setMovePopup(null)}\r\n inputLabel={Tr(\"order_type\")}\r\n reportStep={reportStep}\r\n config={movePopup}\r\n />\r\n }\r\n\r\n >)\r\n\r\n\r\n}\r\n\r\nAnnualReportNotIncludedForm.prototype = {\r\n initValues: PropTypes.object.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n classes: PropTypes.object.isRequired\r\n}\r\n\r\nexport default AnnualReportNotIncludedForm;","const dictToTranslationMap = (dict, oneLevel) => {\r\n const trMap = {};\r\n doItems(dict, trMap, oneLevel);\r\n return trMap;\r\n}\r\n\r\nconst doItems = (items, trMap, oneLevel) => {\r\n for (let item of items) {\r\n trMap[item.value] = item.label\r\n if (!oneLevel && item.items && item.items.length > 0) {\r\n doItems(item.items, trMap, oneLevel)\r\n }\r\n }\r\n}\r\nexport default dictToTranslationMap;","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport { Link as LinkRRD } from 'react-router-dom';\r\nimport { Typography } from '@material-ui/core';\r\nimport { withStyles } from '@material-ui/styles';\r\n\r\nconst style= theme => ({\r\n\tlink: {\r\n\t\tcolor: 'inherit',\r\n\t\ttextDecoration: 'inherit'\r\n\t}\r\n})\r\n\r\nfunction Link({\r\n\tchildren,\r\n\tto,\r\n\tvariant,\r\n\tcomponent,\r\n\tclasses,\r\n\tclassName,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nLink.propTypes = {\r\n\tchildren: PropTypes.any,\r\n\tto: PropTypes.string,\r\n\tvariant: PropTypes.string,\r\n\tcomponent: PropTypes.string,\r\n}\r\n\r\nLink.defaultProps = {\r\n\tvariant: 'body1',\r\n}\r\n\r\nexport default withStyles(style)(Link);\r\n","import React, {useContext, useMemo} from \"react\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Typography from \"components/Typography\";\r\nimport Tr from \"translations/Translations\";\r\nimport annualReportSteps from \"../../constants/annualReportSteps\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport Link from \"components/Link\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {useParams} from \"react-router\";\r\n\r\nfunction AnnualReportError(\r\n {\r\n report\r\n }\r\n) {\r\n const {formTr, dictTranslations} = useContext(FormTranslationContext);\r\n const params = useParams();\r\n\r\n const getMapKeys = (iterator) => {\r\n\r\n const keys = [];\r\n let next = iterator.next();\r\n while (!next.done) {\r\n keys.push(next.value);\r\n next = iterator.next();\r\n }\r\n return keys;\r\n }\r\n\r\n const getTranslatedErrorsView = (translatedErrors) => {\r\n const steps = Object.keys(translatedErrors);\r\n return \r\n {\r\n steps.map(step => - \r\n {formTr(\"mmia.\" + step)}\r\n
\r\n {\r\n getMapKeys(translatedErrors[step].keys()).map((x, i) => - \r\n {x}\r\n
\r\n {\r\n translatedErrors[step].get(x).map((e, j) => - {e}
)\r\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 const getDescribedErrors = () => {\r\n const described = {};\r\n Object.keys(report.errorsDescribed).forEach(wholeKey => {\r\n const split = wholeKey.split(\".\");\r\n if (!described.hasOwnProperty(split[0])) {\r\n described[split[0]] = new Map();\r\n }\r\n\r\n switch (split[0]) {\r\n case annualReportSteps.purchaser: {\r\n const subKey = split[1];\r\n const errors = described[split[0]].get(subKey) || [];\r\n errors.push(report.errorsDescribed[wholeKey]);\r\n described[split[0]].set(subKey, errors)\r\n break;\r\n }\r\n case annualReportSteps.belowEu: {\r\n const subKey = (dictTranslations.procedures[split[1]] || Tr(\"annual_report_default_error\")) + \" \" + (dictTranslations.orderType[split[2]] || \"\");\r\n const errors = described[split[0]].get(subKey) || [];\r\n errors.push(report.errorsDescribed[wholeKey]);\r\n described[split[0]].set(subKey, errors)\r\n break;\r\n }\r\n case annualReportSteps.aboveEu:\r\n case annualReportSteps.conflict:\r\n case annualReportSteps.community:\r\n case annualReportSteps.social:\r\n case annualReportSteps.innovative: {\r\n const subKey = (dictTranslations.type[split[1]] || Tr(\"annual_report_default_error\"));\r\n const errors = described[split[0]].get(subKey) || [];\r\n errors.push(report.errorsDescribed[wholeKey]);\r\n described[split[0]].set(subKey, errors)\r\n break;\r\n }\r\n case annualReportSteps.exception: {\r\n const subKey = (dictTranslations.exceptions[split[1]] || Tr(\"annual_report_default_error\"));\r\n const errors = described[split[0]].get(subKey) || [];\r\n errors.push(report.errorsDescribed[wholeKey]);\r\n described[split[0]].set(subKey, errors)\r\n break;\r\n }\r\n case annualReportSteps.notIncluded: {\r\n const subKey = (dictTranslations.notIncluded[split[1]] || Tr(\"annual_report_default_error\"));\r\n const errors = described[split[0]].get(subKey) || [];\r\n errors.push(report.errorsDescribed[wholeKey]);\r\n described[split[0]].set(subKey, errors)\r\n break;\r\n }\r\n default: {\r\n\r\n }\r\n }\r\n })\r\n return described;\r\n }\r\n\r\n const getErrors = () => {\r\n let translatedErrors = null;\r\n if (report.errorsDescribed) {\r\n try {\r\n translatedErrors = getDescribedErrors();\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n return <>\r\n {Tr(\"annual_report_ezamowienia_error\")}\r\n {!!translatedErrors ? getTranslatedErrorsView(translatedErrors) :\r\n {report.error}}\r\n >\r\n }\r\n\r\n const errors = useMemo(() => {\r\n if (!report.error && !report.errorsDescribed) {\r\n return null;\r\n }\r\n return getErrors();\r\n // eslint-disable-next-line\r\n }, [report.error, report.errorsDescribed]);\r\n\r\n return errors;\r\n\r\n}\r\n\r\n\r\nexport default AnnualReportError;","import React, {useContext} from \"react\";\r\nimport Button from \"components/Button\";\r\nimport ReplayIcon from \"@material-ui/icons/Replay\";\r\nimport {simpleConfirmNoTranslate} from \"libs/ConfirmNotification\";\r\nimport Tr from \"translations/Translations\";\r\nimport AnnualReportsService from \"services/AnnualReportsService\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport {useParams} from \"react-router\";\r\n\r\n\r\nfunction ReloadAnnualReportTableFromPrevVersionButton(\r\n {\r\n classes,\r\n reportStep,\r\n disabled\r\n }) {\r\n\r\n const params = useParams();\r\n const {formTr} = useContext(FormTranslationContext);\r\n return ()\r\n}\r\n\r\nReloadAnnualReportTableFromPrevVersionButton.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default ReloadAnnualReportTableFromPrevVersionButton;","import React, {useContext} from \"react\";\r\nimport Button from \"components/Button\";\r\nimport ReplayIcon from \"@material-ui/icons/Replay\";\r\nimport {simpleConfirmNoTranslate} from \"libs/ConfirmNotification\";\r\nimport Tr from \"translations/Translations\";\r\nimport AnnualReportsService from \"services/AnnualReportsService\";\r\nimport PropTypes from \"prop-types\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport {useParams} from \"react-router\";\r\n\r\n\r\nfunction ReloadAnnualReportTableButton(\r\n {\r\n classes,\r\n reportStep,\r\n disabled\r\n }) {\r\n\r\n const params = useParams();\r\n const {formTr} = useContext(FormTranslationContext);\r\n return ()\r\n}\r\n\r\nReloadAnnualReportTableButton.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n reportStep: PropTypes.string.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default ReloadAnnualReportTableButton;","import React, {useCallback, useEffect, useReducer, useRef, useState} from 'react'\r\nimport Loading from \"components/Loading\";\r\nimport {Collapse} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport Section from \"pages/purchaser/MyProcedure/scenes/part2/components/Section\";\r\nimport AnnualReportsService from \"services/AnnualReportsService\";\r\nimport annualReportSteps, {annualReportTablesWithInitialize} from \"./constants/annualReportSteps\";\r\nimport Page from \"components/Page\";\r\nimport {useParams} from \"react-router\";\r\nimport annulaReportClasses from \"./constants/annulaReportClasses\";\r\nimport {connect} from \"react-redux\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport useEzamowieniaOauth from \"hooks/useEzamowieniaOauth\";\r\nimport AnnualReportNavigator from \"./components/common/AnnualReportNavigator\";\r\nimport AnnualReportPurchaserForm from \"./components/purchaser/AnnualReportPurchaserForm\";\r\nimport AnnualReportAboveEuForm from \"./components/aboveEu/AnnualReportAboveEuForm\";\r\nimport AnnualReportBelowEuForm from \"./components/belowEu/AnnualReportBelowEuForm\";\r\nimport AnnualReportConflictForm from \"./components/conflict/AnnualReportConflictForm\";\r\nimport AnnualReportCommunityForm from \"./components/community/AnnualReportCommunityForm\";\r\nimport AnnualReportSocialForm from \"./components/social/AnnualReportSocialForm\";\r\nimport AnnualReportInnovativeForm from \"./components/innovative/AnnualReportInnovativeForm\";\r\nimport AnnualReportExceptionForm from \"./components/exception/AnnualReportExceptionForm\";\r\nimport AnnualReportNotIncludedForm from \"./components/notIncluded/AnnualReportNotIncludedForm\";\r\nimport dictToTranslationMap from \"./constants/dictToTranslationMap\";\r\nimport Typography from \"components/Typography\";\r\nimport AnnualReportStatus, {annualReportStatusTr} from \"./constants/AnnualReportStatus\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport Button from \"components/Button\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport ArrowBackIosIcon from \"@material-ui/icons/ArrowBackIos\";\r\nimport AnnualReportError from \"./components/common/AnnualReportError\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport ReloadAnnualReportTableFromPrevVersionButton from \"./components/common/ReloadAnnualReportTableFromPrevVersionButton\";\r\nimport ReloadAnnualReportTableButton from \"./components/common/ReloadAnnualReportTableButton\";\r\nimport EZamowieniaIcon from \"components/icon/EZamowieniaIcon\";\r\nimport previewFile from \"libs/previewFile\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport {alertComplex} from \"libs/AlertNotification\";\r\nimport {MMiA_REQUIRED_GROUPS} from \"constants/EzamowieniaRequiredGroups\";\r\n\r\nfunction getKey(id) {\r\n const split = id.split(\".\").filter(x => !/^\\d+$/.test(x));\r\n return split.join(\".\");\r\n}\r\n\r\nconst empty_object = {};\r\n\r\nfunction AnnualReportPage(\r\n {\r\n initFormValues = empty_object,\r\n initData\r\n }) {\r\n const classes = annulaReportClasses();\r\n const params = useParams();\r\n const currentForm = useRef(null);\r\n const [dictionaries, setDictionaries] = useState(null);\r\n const [translations, setTranslations] = useState(null);\r\n const [dictTranslations, setDictTranslations] = useState(null)\r\n const {authorizeEzamowienia} = useEzamowieniaOauth();\r\n const {enqueueInfoSnackbar, enqueueSuccessSnackbar, enqueueErrorSnackbar} = useSnackbar();\r\n const setFrom = (form) => {\r\n currentForm.current = form;\r\n }\r\n const setCurStep = useCallback(newStep =>\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.annualReport.MP_ANNUAL_REPORT_REPORT_ID_TABLE, {\r\n id: params.id,\r\n table: newStep\r\n })), [params.id]);\r\n const backToList = () => RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.annualReport.MP_ANNUAL_REPORT_YEAR_LIST, {year: initData.year}));\r\n\r\n const [buttonWorks, dispatchButtonWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n ezamowienia: false,\r\n loading: false,\r\n pdf: false\r\n });\r\n const disabled = !initData || !initData.hasEdit || buttonWorks.anyWorks\r\n\r\n const formTr = useCallback((id) => {\r\n const key = getKey(id);\r\n return translations.labels[key] || key;\r\n }, [translations])\r\n const formTip = useCallback((id) => {\r\n const key = getKey(id);\r\n return translations.tips[key];\r\n }, [translations]);\r\n\r\n const getDict = useCallback((id) => {\r\n try {\r\n return dictionaries[id].items;\r\n } catch (e) {\r\n console.error(\"DictId: \" + id)\r\n console.error(e)\r\n }\r\n }, [dictionaries])\r\n\r\n useEffect(() => {\r\n Promise.all([\r\n AnnualReportsService.getAnnualReport(params.id),\r\n AnnualReportsService.getAnnualReportDictionaries(),\r\n AnnualReportsService.getAnnualReportTranslations()])\r\n .then(values => {\r\n const dictTr = values[1] ? {\r\n type: dictToTranslationMap(values[1][\"MP.MMiA.OrdersType\"].items, true),\r\n procedures: dictToTranslationMap(values[1][\"MP.MMiA.BelowEU.procedure\"].items, true),\r\n source: dictToTranslationMap(values[1][\"MP.MMiA.Source\"].items, false),\r\n orderType: dictToTranslationMap(values[1][\"ENUM.002\"].items, true),\r\n tenderModeTed: dictToTranslationMap(values[1][\"ENUM.018_019_TED\"].items, false),\r\n tenderModeBzp: dictToTranslationMap(values[1][\"ENUM.018_019_BZP\"].items, false),\r\n contractorCountryList: dictToTranslationMap(values[1][\"SL.MT.005\"].items, true),\r\n contractorType: dictToTranslationMap(values[1][\"SL.MMiA.062\"].items, false),\r\n exceptions: dictToTranslationMap(values[1][\"SL.MMiA.063\"].items, false),\r\n notIncluded: dictToTranslationMap(values[1][\"SL.MMiA.064\"].items, false),\r\n } : null\r\n setDictionaries(values[1]);\r\n setTranslations(values[2]);\r\n setDictTranslations(dictTr)\r\n })\r\n return () => {\r\n AnnualReportsService.clearResources(AnnualReportsService.ANNUAL_REPORT_TABLES_RESOURCE_ID)\r\n AnnualReportsService.clearResources(AnnualReportsService.ANNUAL_REPORT_RESOURCE_ID)\r\n }\r\n }, [params.id])\r\n\r\n useEffect(() => {\r\n if (!params.table) {\r\n setCurStep(annualReportSteps.purchaser)\r\n } else if (!initFormValues[params.table]) {\r\n dispatchButtonWorks({type: \"loading\", works: true});\r\n AnnualReportsService.getAnnualReportFormValues(params.id, params.table).finally(() => {\r\n dispatchButtonWorks({type: \"loading\", works: false});\r\n })\r\n }\r\n }, [params.id, params.table, initFormValues, setCurStep])\r\n\r\n const onCurStepChange = (newStep) => {\r\n (async () => {\r\n const dirty = currentForm.current?.dirty;\r\n if (dirty) {\r\n enqueueInfoSnackbar(Tr(\"save_changes_to_go\"))\r\n } else {\r\n setFrom(null)\r\n setCurStep(newStep)\r\n }\r\n })()\r\n }\r\n\r\n const submitInEzamowienia = () => {\r\n dispatchButtonWorks({type: \"ezamowienia\", works: true});\r\n authorizeEzamowienia(\r\n () => {\r\n AnnualReportsService.submitAnnualReportToEzamowienia(params.id).then((resp) => {\r\n if (resp) {\r\n if (isResponseValid(resp, enqueueErrorSnackbar)) {\r\n enqueueSuccessSnackbar(Tr(\"annual_report_submited_to_ezamowienia\"))\r\n }\r\n }\r\n dispatchButtonWorks({type: \"ezamowienia\", works: false});\r\n })\r\n },\r\n () => {\r\n dispatchButtonWorks({type: \"ezamowienia\", works: false});\r\n },\r\n MMiA_REQUIRED_GROUPS)\r\n }\r\n const sendToEzamowienia = () => {\r\n dispatchButtonWorks({type: \"ezamowienia\", works: true});\r\n authorizeEzamowienia(\r\n () => {\r\n AnnualReportsService.sendAnnualReportToEzamowienia(params.id).then((resp) => {\r\n if (resp && resp.success) {\r\n enqueueSuccessSnackbar(Tr(\"annual_report_sent_to_ezamowienia\"))\r\n } else if (resp) {\r\n const errors = resp.errors;\r\n if (Array.isArray(errors)) {\r\n if (errors.length > 0)\r\n enqueueErrorSnackbar(errors[0]);\r\n } else if (typeof errors === 'object' && errors !== null) {\r\n const keys = Object.keys(errors);\r\n if (keys.length > 0) {\r\n const key = keys[0];\r\n enqueueErrorSnackbar(errors[key]);\r\n if (annualReportSteps.hasOwnProperty(key)) {\r\n setCurStep(key);\r\n setTimeout(() => scrollTo(\".\" + classes.sectionErrorIcon, 200), 200)\r\n }\r\n }\r\n }\r\n }\r\n dispatchButtonWorks({type: \"ezamowienia\", works: false});\r\n })\r\n },\r\n () => {\r\n dispatchButtonWorks({type: \"ezamowienia\", works: false});\r\n },\r\n MMiA_REQUIRED_GROUPS\r\n )\r\n }\r\n const downloadPdf = () => {\r\n dispatchButtonWorks({type: \"pdf\", works: true});\r\n authorizeEzamowienia(\r\n () => {\r\n AnnualReportsService.downloadAnnualReportPdfFromEzamowienia(params.id).finally(() => dispatchButtonWorks({type: \"pdf\", works: false}))\r\n },\r\n () => {\r\n dispatchButtonWorks({type: \"pdf\", works: false});\r\n },\r\n MMiA_REQUIRED_GROUPS\r\n )\r\n }\r\n\r\n if (!initData || !translations || !dictionaries || !dictTranslations) return \r\n return (\r\n \r\n \r\n \r\n \r\n {`${Tr('annual_reports')} ${initData.year} ${Tr('version').toLowerCase()} ${initData.version}`}\r\n {!!initData.ezamowieniaNumber && {Tr(\"annual_report_number\") + \": \" + initData.ezamowieniaNumber}}\r\n
\r\n \r\n {\r\n [AnnualReportStatus.SENT, AnnualReportStatus.APPROVED, AnnualReportStatus.APPROVED_MODIFIED].includes(initData.status) &&\r\n \r\n {Tr(\"annual_report_download_pdf\")}\r\n \r\n }\r\n
\r\n \r\n \r\n \r\n \r\n\r\n\r\n {Tr('current_state')}: {annualReportStatusTr(initData.status)}\r\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 params.table && \r\n {initData.hasEdit && annualReportTablesWithInitialize.includes(params.table) &&\r\n \r\n }\r\n\r\n {\r\n initData.hasEdit && initData.version > 1 &&\r\n \r\n }\r\n {\r\n [AnnualReportStatus.SENT, AnnualReportStatus.APPROVED, AnnualReportStatus.APPROVED_MODIFIED].includes(initData.status) &&\r\n\r\n \r\n }\r\n \r\n }\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nAnnualReportPage.propTypes = {};\r\n\r\nexport default connect((state) => ({\r\n initFormValues: state.resources[AnnualReportsService.ANNUAL_REPORT_TABLES_RESOURCE_ID],\r\n initData: state.resources[AnnualReportsService.ANNUAL_REPORT_RESOURCE_ID],\r\n}))(AnnualReportPage);\r\n","import React from 'react'\r\nimport {Redirect, Route, Switch} from 'react-router-dom';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport NotFound from \"../../NotFound/NotFound\";\r\nimport AnnualReportsList from \"./list/AnnualReportsList\";\r\nimport AnnualReportPage from \"./report/AnnualReportPage\";\r\nimport moment from \"libs/moment\";\r\n\r\nconst rp = RouterPath.annualReport;\r\n\r\nfunction AnnualReport() {\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\nexport default AnnualReport;\r\n\r\n","import React from 'react'\r\nimport {Redirect, Route, Switch} from 'react-router-dom';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport NotFound from '../NotFound/NotFound';\r\nimport MyProcedure from './MyProcedure/MyProcedure';\r\nimport PurchasingGroup from \"./PurchasingGroup/PurchasingGroup\";\r\nimport Admin from \"./Admin/Admin\";\r\nimport PurchaserDemand from \"./demand/PurchaserDemand\";\r\nimport AnnualReport from \"./annualReport/AnnualReport\";\r\n\r\nfunction PurchaserRouter(props) {\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default PurchaserRouter;\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestPOST} from 'libs/RestRequest';\r\n\r\nconst notificationSend = async (functionalityName) => {\r\n return await RestRequestPOST(Endpoints.SALES_NOTIFICATION_SEND(functionalityName));\r\n}\r\n\r\nexport default {notificationSend}","import React, {useState} from 'react'\r\nimport {clearSalesNotification} from 'redux/actions'\r\nimport {connect} from \"react-redux\";\r\nimport Endpoints from \"../../../constants/Endpoints\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport {Box, Dialog, DialogContent, DialogTitle, Typography} from \"@material-ui/core\";\r\nimport Loading from \"../../Loading\";\r\nimport SalesService from \"../../../services/SalesService\";\r\nimport IconCloseButton from \"../../button/IconCloseButton\";\r\nimport DoneOutlineIcon from '@material-ui/icons/DoneOutline'\r\nimport Tr from 'translations/Translations';\r\n\r\nconst useStyle = makeStyles((theme => ({\r\n paper: {\r\n width: 688,\r\n maxWidth: 688,\r\n minWidth: 688\r\n },\r\n content: {\r\n position: 'relative',\r\n textAlign: 'center',\r\n marginBottom: theme.spacing(2),\r\n paddingTop: 0\r\n },\r\n img: {\r\n width: 640\r\n },\r\n click: {\r\n position: 'absolute',\r\n height: 62,\r\n width: 438,\r\n top: 217,\r\n left: 51,\r\n cursor: 'pointer'\r\n },\r\n loading: {\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n margin: 0,\r\n width: '100%',\r\n backgroundColor: 'rgba(0, 0, 0, 0.2)'\r\n }, closeButtonBox: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n },\r\n closeButton: {\r\n color: theme.palette.primary.main,\r\n },\r\n icon: theme.components.icon,\r\n confirmationMessage: {\r\n marginBottom: theme.spacing(10),\r\n marginTop: theme.spacing(4),\r\n fontWeight: theme.typography.fontWeightBold,\r\n }\r\n})));\r\n\r\nfunction SalesNotificationPopup(\r\n {\r\n salesNotification,\r\n clearSalesNotification,\r\n }) {\r\n\r\n const [working, setWorking] = useState(false);\r\n const [processed, setProcessed] = useState(false);\r\n\r\n const classes = useStyle();\r\n const handleCloseDialog = () => {\r\n setProcessed(false);\r\n clearSalesNotification();\r\n }\r\n\r\n const sendNotification = () => {\r\n setWorking(true);\r\n SalesService.notificationSend(salesNotification).finally(() => {\r\n setWorking(false);\r\n setProcessed(true);\r\n });\r\n }\r\n\r\n\r\n return ()\r\n}\r\n\r\nexport default connect((state) => ({\r\n salesNotification: state.store.salesNotification\r\n}), {\r\n clearSalesNotification\r\n})(SalesNotificationPopup);","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport MultiButton, {createButton} from \"../components/MultiButton\";\r\n\r\nfunction ConfirmThreeButtons(\r\n {\r\n open,\r\n confirmTitle,\r\n confirmText,\r\n confirmText2,\r\n onConfirm,\r\n onSecondConfirm,\r\n onCancel,\r\n labelConfirm = \"yes\",\r\n labelCancel = \"no\",\r\n labelSecondConfirm = \"yes\",\r\n translateConfirmTexts = true\r\n }) {\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr(labelCancel), onCancel, 'outlined', false));\r\n buttons.push(createButton(Tr(labelConfirm), onConfirm, undefined, false));\r\n buttons.push(createButton(Tr(labelSecondConfirm), onSecondConfirm, undefined, false));\r\n return buttons;\r\n }\r\n\r\n return (\r\n }\r\n >\r\n {!!confirmText && \r\n {translateConfirmTexts ? Tr(confirmText) : confirmText}\r\n }\r\n {!!confirmText2 && \r\n {translateConfirmTexts ? Tr(confirmText2) : confirmText2}\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nConfirmThreeButtons.propTypes = {\r\n open: PropTypes.bool.isRequired,\r\n confirmText: PropTypes.string.isRequired,\r\n confirmText2: PropTypes.string,\r\n onConfirm: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n labelConfirm: PropTypes.string,\r\n labelCancel: PropTypes.string,\r\n translateConfirmTexts: PropTypes.bool\r\n}\r\n\r\nexport default ConfirmThreeButtons;","import React from 'react'\r\nimport {clearConfirmCloseStepper} from 'redux/actions'\r\nimport {connect} from \"react-redux\";\r\nimport Confirm from \"../confirm/Confirm\";\r\nimport ConfirmThreeButtons from \"../confirm/ConfirmThreeButtons\";\r\nimport Tr from \"translations/Translations\";\r\n\r\n\r\nfunction ConfirmCloseStepper(\r\n {\r\n confirmCloseStepper,\r\n clearConfirmCloseStepper\r\n }) {\r\n\r\n if (!!confirmCloseStepper?.handleSecondConfirm) {\r\n return ( {\r\n clearConfirmCloseStepper();\r\n }}\r\n onConfirm={() => {\r\n confirmCloseStepper.handleConfirm();\r\n clearConfirmCloseStepper();\r\n }}\r\n onSecondConfirm={() => {\r\n confirmCloseStepper.handleSecondConfirm();\r\n clearConfirmCloseStepper();\r\n }}\r\n confirmText={Tr('confirm_close_section_name', {name: confirmCloseStepper?.sectionName ? confirmCloseStepper.sectionName : \"\"})}\r\n labelSecondConfirm='confirm_close_section_save_autoSave'\r\n translateConfirmTexts={false}\r\n open={!!confirmCloseStepper}\r\n />)\r\n } else {\r\n return ( {\r\n clearConfirmCloseStepper();\r\n }}\r\n onConfirm={() => {\r\n confirmCloseStepper.handleConfirm();\r\n clearConfirmCloseStepper();\r\n }}\r\n confirmText={Tr('confirm_close_section_name', {name: confirmCloseStepper?.sectionName ? confirmCloseStepper.sectionName : \"\"})}\r\n translateConfirmTexts={false}\r\n open={!!confirmCloseStepper}\r\n />)\r\n }\r\n}\r\n\r\nexport default connect((state) => ({\r\n confirmCloseStepper: state.store.confirmCloseStepper\r\n}), {\r\n clearConfirmCloseStepper\r\n})(ConfirmCloseStepper);","import React, {useRef, useState} from 'react'\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport PollService from \"services/PollService\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {AppBar, IconButton, Paper, TextField, Toolbar, Typography} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport Loading from \"components/Loading\";\r\nimport PropTypes from \"prop-types\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport PollNpsSwitch from \"components/popup/poll/PollNpsSwitch\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n bottom: 100,\r\n right: 0,\r\n zIndex: theme.zIndex.appBar - 1,\r\n position: \"fixed\",\r\n maxWidth: 740\r\n },\r\n grid: {\r\n '&>*:first-child': {\r\n width: \"100%\"\r\n },\r\n '&>*:last-child': {\r\n width: \"100%\",\r\n marginBottom: theme.spacing(2)\r\n }\r\n },\r\n question: {\r\n padding: theme.spacing(2),\r\n textAlign: \"center\"\r\n },\r\n openQuestion: {\r\n width: 700,\r\n marginTop: theme.spacing(2),\r\n marginBottom: theme.spacing(4),\r\n },\r\n}))\r\n\r\nfunction FeedbackContentOpen(\r\n {\r\n setOpen,\r\n poll,\r\n pollType,\r\n apiVersion\r\n }) {\r\n const classes = useStyle();\r\n const openQuestionRef = useRef();\r\n const [score, setScore] = useState();\r\n const [error, setError] = useState(false);\r\n\r\n\r\n const sendPool = (close) => {\r\n const rating = {\r\n pollType: pollType,\r\n objectType: \"eZamawiajacy\",\r\n objectId: apiVersion,\r\n score: close? null : score,\r\n answer: (close || openQuestionRef.current.value === '') ? null : openQuestionRef.current.value\r\n }\r\n\r\n PollService.savePollRating(rating);\r\n setOpen(false);\r\n }\r\n\r\n\r\n const handleClose = () => {\r\n sendPool(true);\r\n setOpen(false);\r\n }\r\n const handleSend = () => {\r\n if (score === undefined) {\r\n setError(true);\r\n return;\r\n }\r\n sendPool();\r\n }\r\n\r\n const scoreChange = (e, rate) => {\r\n setScore(rate);\r\n setError(false)\r\n }\r\n\r\n return (\r\n \r\n
\r\n {!poll ? :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {poll.title}\r\n \r\n \r\n \r\n\r\n {poll.question}\r\n\r\n \r\n\r\n {!!error && {Tr('feedback_missing_rating')}}\r\n\r\n {!!poll.openQuestion &&\r\n \r\n }\r\n \r\n \r\n }\r\n \r\n
\r\n )\r\n}\r\n\r\nFeedbackContentOpen.propTypes = {\r\n setOpen: PropTypes.func.isRequired,\r\n apiVersion: PropTypes.number,\r\n poll: PropTypes.shape({\r\n title: PropTypes.string.isRequired,\r\n question: PropTypes.string.isRequired,\r\n openQuestion: PropTypes.string\r\n }).isRequired,\r\n pollType: PropTypes.string.isRequired\r\n}\r\n\r\nexport default FeedbackContentOpen;\r\n","import React from 'react'\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport Button from \"../../Button\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n bottom: 100,\r\n left: '100%',\r\n zIndex: theme.zIndex.appBar - 1,\r\n position: \"fixed\",\r\n transform: \"rotate(-90deg) translateY(-76%)\",\r\n whiteSpace: \"nowrap\",\r\n transformOrigin: \"0% 0%\",\r\n padding: \"0 24px\",\r\n fontSize: \"0.7rem\"\r\n }\r\n}))\r\n\r\nfunction FeedbackContentClosed(\r\n {\r\n setOpen,\r\n poll\r\n\r\n }) {\r\n const classes = useStyle();\r\n return (\r\n \r\n )\r\n}\r\n\r\nFeedbackContentClosed.propTypes = {\r\n setOpen: PropTypes.func.isRequired,\r\n poll: PropTypes.shape({\r\n title: PropTypes.string.isRequired,\r\n question: PropTypes.string.isRequired,\r\n openQuestion: PropTypes.string\r\n }).isRequired,\r\n}\r\n\r\n\r\nexport default FeedbackContentClosed;\r\n","import React, {useEffect, useRef, useState} from 'react'\r\nimport FeedbackContentOpen from \"./FeedbackContentOpen\";\r\nimport FeedbackContentClosed from \"./FeedbackContentClosed\";\r\nimport PropTypes from \"prop-types\";\r\nimport PollService from \"services/PollService\";\r\nimport {connect} from \"react-redux\";\r\nimport moment from \"libs/moment\";\r\n\r\nfunction Feedback(\r\n {\r\n pollType,\r\n userData\r\n }) {\r\n const [open, setOpen] = useState(false);\r\n const [poll, setPoll] = useState(null);\r\n const showTimeout = useRef(null);\r\n\r\n useEffect(() => {\r\n PollService.getPoll(pollType).then((resp) => {\r\n if (resp.enabled) {\r\n setPoll(resp);\r\n\r\n if(userData && userData.nextPollDate) {\r\n const nextPoll = moment(userData.nextPollDate);\r\n const now = moment();\r\n //dodaję x skund żeby ne wyskoczyło od razu po załadowaniu strony\r\n now.add(5, 'second');\r\n const max = moment.max([nextPoll, now]);\r\n const secondsFromStart = max.diff(moment(), 's');\r\n showTimeout.current = setTimeout(() => {setOpen(true)}, secondsFromStart * 1000);\r\n }\r\n }\r\n })\r\n return () => {\r\n if (showTimeout.current)\r\n clearTimeout(showTimeout.current);\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n useEffect(()=> {\r\n if(!open) {\r\n if (showTimeout.current)\r\n clearTimeout(showTimeout.current);\r\n }\r\n },[open])\r\n\r\n if (!poll)\r\n return null;\r\n return (\r\n <>\r\n {open ? : }\r\n >\r\n )\r\n}\r\n\r\nFeedback.propTypes = {\r\n pollType: PropTypes.string.isRequired\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n userData: state.resources.userData\r\n}), {})(Feedback);\r\n","import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'\r\nimport {connect} from 'react-redux'\r\nimport Dialog from \"components/Dialog\";\r\nimport Tr from \"translations/Translations\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport Typography from \"../../Typography\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport EzamowieniaService from \"services/EzamowieniaService\";\r\nimport reduxStore from \"redux/store\";\r\nimport {clearEzamowieniaOauth, setEzamowieniaOauth} from \"redux/actions\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n marginTop: {\r\n marginTop: theme.spacing()\r\n }\r\n}))\r\n\r\n\r\nfunction EzamowieniaOauth({ezamowieniaOauth}) {\r\n const classes = useStyle();\r\n\r\n const [confirmationWindow, setConfirmationWindow] = useState(null);\r\n const authWindowInterval = useRef(null);\r\n const authWindow = useRef(null);\r\n const ezamowieniaOauthRef = useRef(null);\r\n const callbackUrlRef = useRef(null);\r\n\r\n const closeWindow = () => {\r\n if(authWindowInterval.current)\r\n clearInterval(authWindowInterval.current);\r\n authWindowInterval.current = null;\r\n if(authWindow.current) {\r\n try {\r\n authWindow.current.close();\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n authWindow.current = null;\r\n }\r\n }\r\n\r\n const openWindow = useCallback((url) => {\r\n closeWindow();\r\n authWindow.current = window.open(url, '_blank', 'location=no,height=570,width=520,scrollbars=yes,status=no');\r\n if(authWindow.current) {\r\n authWindowInterval.current = setInterval(() => {\r\n if(authWindowInterval.current && (!authWindow.current || authWindow.current.closed)) {\r\n clearInterval(authWindowInterval.current);\r\n authWindowInterval.current = null;\r\n callFail();\r\n }\r\n }, 1000);\r\n }\r\n },[])\r\n\r\n useEffect(() => {\r\n if (ezamowieniaOauth) {\r\n ezamowieniaOauthRef.current = ezamowieniaOauth;\r\n\r\n EzamowieniaService.getAuthorizationStatus().then((resp) => {\r\n if (resp) {\r\n const {authorized, authorizationUrl, logoutUrl, userInfo, callbackOrigin} = resp;\r\n callbackUrlRef.current = callbackOrigin;\r\n if (!authorized) {\r\n openWindow(authorizationUrl);\r\n } else {\r\n setConfirmationWindow({userInfo, logoutUrl, requiredGroups: ezamowieniaOauth.requiredGroups})\r\n }\r\n } else {\r\n if (ezamowieniaOauth.errorCallback) ezamowieniaOauth.errorCallback();\r\n }\r\n });\r\n } else {\r\n setConfirmationWindow(null);\r\n authWindow.current = null;\r\n ezamowieniaOauthRef.current = null;\r\n authWindowInterval.current = null;\r\n callbackUrlRef.current = null;\r\n }\r\n }, [ezamowieniaOauth, openWindow])\r\n\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"message\", receiveMessage, false);\r\n return () => {\r\n window.removeEventListener(\"message\", receiveMessage)\r\n };\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const receiveMessage = (event) => {\r\n if (event.origin === callbackUrlRef.current) {\r\n if (event.data.action && (typeof event.data.action === 'string' || event.data.action instanceof String)) {\r\n if (event.data.action === \"ezamowieniaAuthorizationSuccess\") {\r\n closeWindow();\r\n if(ezamowieniaOauthRef.current) {\r\n reduxStore.dispatch(setEzamowieniaOauth({...ezamowieniaOauthRef.current}))\r\n }\r\n }\r\n if (event.data.action === \"ezamowieniaAuthorizationFailed\") {\r\n callFail();\r\n }\r\n if (event.data.action === \"ezamowieniaAuthorizationLogout\") {\r\n closeWindow();\r\n callFail();\r\n reduxStore.dispatch(clearEzamowieniaOauth());\r\n }\r\n }\r\n }\r\n }\r\n\r\n const callSuccess = () => {\r\n if (ezamowieniaOauthRef.current && ezamowieniaOauthRef.current.successCallback) {\r\n ezamowieniaOauthRef.current.successCallback();\r\n }\r\n reduxStore.dispatch(clearEzamowieniaOauth())\r\n }\r\n\r\n const callFail = () => {\r\n if (ezamowieniaOauthRef.current && ezamowieniaOauthRef.current.errorCallback) {\r\n ezamowieniaOauthRef.current.errorCallback();\r\n }\r\n reduxStore.dispatch(clearEzamowieniaOauth())\r\n }\r\n\r\n const callLogout = () => {\r\n EzamowieniaService.revokeToken();\r\n if(confirmationWindow && confirmationWindow.logoutUrl) {\r\n openWindow(confirmationWindow.logoutUrl);\r\n }\r\n setConfirmationWindow(null);\r\n }\r\n\r\n const missingRoles = useMemo(() => {\r\n if (!!confirmationWindow?.requiredGroups?.length > 0) {\r\n return confirmationWindow.requiredGroups.filter(x => !Array.isArray(confirmationWindow.userInfo.groups) || !confirmationWindow.userInfo.groups.includes(x));\r\n }\r\n return [];\r\n }, [confirmationWindow]);\r\n\r\n const continueEnabled = useMemo(()=> {\r\n if (!!confirmationWindow?.userInfo?.organization_role?.includes(\"BUYER\") && missingRoles.length === 0) {\r\n return true;\r\n }\r\n return false\r\n\r\n }, [confirmationWindow, missingRoles])\r\n\r\n\r\n return !!confirmationWindow &&\r\n }>\r\n {Tr(\"ezamowienia_loggedin_user\")}: {\r\n !!confirmationWindow.userInfo.given_name ?\r\n `${confirmationWindow.userInfo.given_name} ${confirmationWindow.userInfo.family_name} (${confirmationWindow.userInfo.sub})` :\r\n confirmationWindow.userInfo.sub\r\n }\r\n\r\n <> {\r\n !confirmationWindow.userInfo.organizationName ?\r\n {Tr(\"ezamowienia_loggedin_user_no_org_account\")}\r\n :\r\n <>\r\n {Tr(\"ezamowienia_loggedin_organization\")}: {confirmationWindow.userInfo.organizationName}\r\n {\r\n !confirmationWindow.userInfo.organization_role?.includes(\"BUYER\") ?\r\n {Tr(\"ezamowienia_loggedin_missing_buyer_org_role\")}\r\n :\r\n <>\r\n {\r\n missingRoles.length > 0 && <>\r\n {Tr(\"ezamowienia_loggedin_user_missing_org_roles\")}\r\n {missingRoles.map(x => • {Tr(\"ezamowienia_auth_group_\" + x)})}\r\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 connect((state) => ({\r\n ezamowieniaOauth: state.store.ezamowieniaOauth\r\n}), {})(EzamowieniaOauth)","import React, {useEffect, useState} from 'react'\r\nimport Navigation from 'components/complex/navigation/Navigation';\r\nimport AppBar from 'components/complex/appbar/AppBar';\r\nimport IEInfo from 'components/popup/IEinfo';\r\nimport Browser from 'libs/Browser';\r\nimport PurchaserRouter from \"./PurchaserRouter\";\r\nimport SalesNotificationPopup from \"components/popup/salesNotification/SalesNotificationPopup\";\r\nimport UploadService from \"services/UploadService\";\r\nimport ConfirmCloseStepper from \"components/popup/confirmCloseStepper/ConfirmCloseStepper\";\r\nimport Feedback from \"components/complex/feedback/Feedback\";\r\nimport EzamowieniaOauth from \"../../components/complex/ezamowienia/EzamowieniaOauth\";\r\n\r\n\r\nfunction PurchaserRoot() {\r\n const [ieOpen, setIeOpen] = useState(Browser.isIE)\r\n\r\n useEffect(() => {\r\n UploadService.getValidExtensions();\r\n return () => UploadService.clearValidExtensionsResource();\r\n }, [])\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n setIeOpen(false)}\r\n />\r\n \r\n \r\n \r\n \r\n >\r\n )\r\n}\r\n\r\nexport default PurchaserRoot;\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport Correspondence from \"components/complex/correspondence/Correspondence\";\r\n\r\nfunction CtrCorrespondenceSection(\r\n {\r\n currentRfxRound\r\n }) {\r\n\r\n return (\r\n \r\n {(!currentRfxRound) ?\r\n \r\n :\r\n \r\n }\r\n
\r\n )\r\n}\r\n\r\nCtrCorrespondenceSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n demandStatistics: state.resources[StatisticsService.DEMAND_STATISTICS_RESOURCE_ID],\r\n currentRfxRound: state.resources[StatisticsService.CURRENT_RFX_RESOURCE_ID],\r\n }\r\n}\r\nconst mapDispatchToProps = {};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(CtrCorrespondenceSection);","import React, {useEffect} from 'react'\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport Workspace from \"components/Workspace\";\r\nimport CtrCorrespondenceSection from \"./sections/CtrCorrespondenceSection\";\r\n\r\nfunction CtrCorrespondencePanel(\r\n {\r\n match\r\n }) {\r\n\r\n const demandId = match.params.id;\r\n\r\n useEffect(() => {\r\n StatisticsService.getCurrentRound(demandId);\r\n return () => {\r\n StatisticsService.clearCurrentRound();\r\n }\r\n // eslint-disable-next-line\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\nexport default CtrCorrespondencePanel;","import React, {useContext, useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport moment from \"moment\";\r\nimport RingCountdown from \"components/complex/countdown/RingCountdown\";\r\nimport Workspace from \"components/Workspace\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Typography from \"components/BoldTypography\";\r\nimport OfferStageTranslationsContext from \"context/OfferStageTranslationsContext\";\r\nimport Tr from 'translations/Translations';\r\n\r\nfunction ContractorClock(\r\n {\r\n endTimeCallback,\r\n dashboardSection\r\n }) {\r\n\r\n\r\n const [durations, setDurations] = useState([]);\r\n const [endTime, setEndTime] = useState(null);\r\n const [secondEndTime, setSecondEndTime] = useState(null);\r\n const [clockTitle, setClockTitle] = useState(null);\r\n const stageTr = useContext(OfferStageTranslationsContext);\r\n const noOfferStage = !!(dashboardSection?.noOfferStage);\r\n\r\n useEffect(() => {\r\n setDurations([])\r\n setEndTime(null)\r\n if (!dashboardSection) {\r\n return;\r\n }\r\n const end = moment(dashboardSection.offerEndDate);\r\n const nowTime = moment(dashboardSection.serverTime);\r\n const secondEnd = dashboardSection.offerSecondEndDate ? moment(dashboardSection.offerSecondEndDate) : null;\r\n\r\n if(dashboardSection.cancelled) {\r\n //nothing\r\n } else if (!dashboardSection.offerEndDate || nowTime.isSameOrAfter(end)) {\r\n setDurations([]);\r\n setEndTime(end.format(DateFormats.DATETIME_FORMAT));\r\n if (secondEnd) {\r\n if (nowTime.isSameOrAfter(secondEnd)) {\r\n setSecondEndTime(secondEnd.format(DateFormats.DATETIME_FORMAT));\r\n } else {\r\n setClockTitle(Tr(\"offer_second_end_date_left_time\"));\r\n setupDuration(secondEnd, dashboardSection.offerStartDate, nowTime);\r\n }\r\n }\r\n } else {\r\n setClockTitle(stageTr(\"left_to_offer_end_date\"));\r\n setupDuration(end, dashboardSection.offerStartDate, nowTime);\r\n }\r\n }, [dashboardSection, stageTr]);\r\n\r\n const setupDuration = function(endTime, startDate, nowTime) {\r\n const duration2 = moment.duration(endTime.diff(nowTime));\r\n const number = duration2.asSeconds();\r\n\r\n const startTime = moment(startDate);\r\n const startDuration = moment.duration(endTime.diff(startTime));\r\n const startNumber = startDuration.asSeconds();\r\n\r\n setDurations([number, startNumber]);\r\n }\r\n\r\n return (\r\n \r\n {\r\n !!endTime && <>\r\n \r\n {stageTr(\"offer_end_date_reached\")}\r\n \r\n {!noOfferStage && \r\n {endTime}\r\n \r\n }\r\n >\r\n }\r\n\r\n {\r\n !!secondEndTime && <>\r\n \r\n {Tr(\"offer_second_end_date_reached\")}\r\n \r\n \r\n {secondEndTime}\r\n \r\n >\r\n }\r\n\r\n {\r\n !!dashboardSection.cancelled && <>\r\n \r\n {Tr(\"procedure_status_6\")}\r\n \r\n >\r\n }\r\n {!!durations.length && }\r\n >}/>\r\n )\r\n\r\n}\r\n\r\nContractorClock.propTypes = {\r\n dashboardSection: PropTypes.object,\r\n endTimeCallback: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default ContractorClock;","import React, {useContext} from 'react'\r\nimport {makeStyles} from '@material-ui/core';\r\nimport Tile from 'components/Tile';\r\nimport ForumIcon from '@material-ui/icons/Forum'\r\nimport LocalLibraryIcon from '@material-ui/icons/LocalLibrary'\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport GavelIcon from '@material-ui/icons/Gavel';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport Tr from 'translations/Translations';\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {useParams, withRouter} from \"react-router\";\r\nimport {StageSections, StageSectionsUrlParams} from \"../constants/StageSections\";\r\nimport openInNewTab from \"libs/openInNewTab\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport OfferStageTranslationsContext from \"context/OfferStageTranslationsContext\";\r\nimport clsx from \"clsx\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n '&>*:not(:first-child)': {\r\n marginLeft: theme.spacing(2),\r\n },\r\n marginBottom: theme.spacing(4)\r\n },\r\n icon: {\r\n fontSize: theme.components.icon.fontSize,\r\n },\r\n mirror: {\r\n transform: 'scaleX(-1)'\r\n },\r\n tile: {\r\n width: 225,\r\n height: 203,\r\n },\r\n highlight: {\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nfunction OfferTilesRow(\r\n {\r\n dashboardSection,\r\n demandStageSectionsList\r\n }) {\r\n const classes = useStyles();\r\n const params = useParams();\r\n const demandId = params.id;\r\n const stageId = params.stageId;\r\n const stageTr = useContext(OfferStageTranslationsContext);\r\n\r\n const handleOfferFormClick = () => {\r\n const sectionsToSearch = [StageSections.AUCTION_OFFER_EDIT, StageSections.ADDITIONAL_OFFER_EDIT, StageSections.OFFER_EDIT];\r\n const section = sectionsToSearch.find(x => demandStageSectionsList[x] && demandStageSectionsList[x].status !== DemandValidationSectionStatus.UNAVAILABLE);\r\n if (section) {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_OFFER_STAGE_ID_SECTION,\r\n {id: demandId, stageId, section: StageSectionsUrlParams[section]}), {scrollTo: true})\r\n }\r\n }\r\n\r\n const getMessagesLabel = () => {\r\n let label = Tr('messages');\r\n if (dashboardSection.messagesCount != null && dashboardSection.unreadMessagesCount != null) {\r\n label += `
${dashboardSection.unreadMessagesCount} / ${dashboardSection.messagesCount}`\r\n }\r\n return label;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n }\r\n text={Tr('basic_data_adn_documents')}\r\n dangerouslySetText\r\n onClick={(e) => {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_OFFER_STAGE_ID_SECTION,\r\n {id: demandId, stageId, section: StageSectionsUrlParams.GENERAL_INFO}), {scrollTo: true})\r\n }}\r\n />\r\n }\r\n text={stageTr(\"offer_form\")}\r\n onClick={handleOfferFormClick}\r\n />\r\n }\r\n text={Tr(\"check_signature\")}\r\n onClick={(e) => {\r\n openInNewTab(dashboardSection.digitalSignCheckUrl)\r\n }}\r\n />\r\n }\r\n text={Tr('knowlage_base') + \"
\"}\r\n dangerouslySetText\r\n onClick={(e) => {\r\n openInNewTab(dashboardSection.publicKnowledgeBaseUrl);\r\n }}\r\n />\r\n 0})}\r\n icon={}\r\n text={getMessagesLabel()}\r\n dangerouslySetText\r\n onClick={(e) => {\r\n RouterPath.redirect(RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_CORRESPONDENCE, {id: demandId}))\r\n }}\r\n />\r\n
\r\n >\r\n )\r\n}\r\n\r\nOfferTilesRow.propTypes = {}\r\n\r\nOfferTilesRow.defaultProps = {}\r\n\r\n\r\nexport default withRouter(OfferTilesRow);","import React, {useCallback, useEffect, useState} from 'react'\r\nimport Workspace from \"components/Workspace\";\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport {connect} from 'react-redux'\r\nimport Loading from \"components/Loading\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {StageSections, StageSectionsUrlParams} from \"./constants/StageSections\";\r\nimport ContractorClock from \"./components/ContractorClock\";\r\nimport OfferTilesRow from \"./components/OfferTilesRow\";\r\nimport OfferSections from \"./components/OfferSections\";\r\nimport Typography from \"components/BoldTypography\";\r\nimport Tr from \"translations/Translations\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport {OfferStageTranslationsContextProvider} from \"../../../../../context/OfferStageTranslationsContext\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n infoMsg: {\r\n marginBottom: theme.spacing(2),\r\n cursor: \"pointer\",\r\n color: theme.palette.primary.main,\r\n }\r\n}))\r\n\r\nfunction CtrOfferPanel(\r\n {\r\n match,\r\n demandStagesList,\r\n demandStageSectionsList\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [stageTranslations, setStageTranslations] = useState(null);\r\n const demandId = match.params.id;\r\n const stageId = match.params.stageId;\r\n\r\n const [dashboardSection, setDashboardSection] = useState(null);\r\n\r\n useEffect(() => {\r\n if (demandStagesList) {\r\n if (!stageId) {\r\n const href = RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_OFFER_STAGE_ID, {\r\n id: demandId,\r\n stageId: demandStagesList[demandStagesList.length - 1].identity\r\n });\r\n RouterPath.redirectWithoutHistory(href);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [demandStagesList, stageId])\r\n\r\n useEffect(() => {\r\n if (demandStageSectionsList)\r\n setDashboardSection(demandStageSectionsList[StageSections.DASHBOARD]);\r\n\r\n }, [demandStageSectionsList]);\r\n\r\n useEffect(() => {\r\n if (stageId) {\r\n DemandOffersService.getStageSections(demandId, stageId);\r\n DemandOffersService.getStageTranslations(demandId, stageId).then(resp => setStageTranslations(resp))\r\n }\r\n return () => {\r\n setStageTranslations(null);\r\n DemandOffersService.clearResources(DemandOffersService.DEMAND_STAGE_SECTIONS_LIST);\r\n }\r\n }, [demandId, stageId])\r\n\r\n const getStageTranslation = useCallback((trKey) => {\r\n return stageTranslations[trKey] || trKey;\r\n }, [stageTranslations])\r\n\r\n return (\r\n <>\r\n {(!demandStagesList || !demandStageSectionsList || !dashboardSection || !stageTranslations) ? :\r\n \r\n \r\n DemandOffersService.getStageSections(demandId, stageId)}\r\n dashboardSection={dashboardSection}/>\r\n\r\n\r\n {!!demandStageSectionsList[StageSections.OFFER_EDIT]?.offerOutOfDateDueToRfxModification &&\r\n \r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_OFFER_STAGE_ID_SECTION, {\r\n id: demandId,\r\n stageId: stageId,\r\n section: StageSectionsUrlParams.OFFER_EDIT\r\n }))}>{Tr('general_info_offer_outdated_due_to_modification')}\r\n \r\n }\r\n\r\n {!!demandStageSectionsList[StageSections.GENERAL_INFO]?.unreadDemandDocuments &&\r\n \r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_OFFER_STAGE_ID_SECTION, {\r\n id: demandId,\r\n stageId: stageId,\r\n section: StageSectionsUrlParams.GENERAL_INFO\r\n }))}>{Tr('general_info_order_documents_new_notification')}\r\n \r\n }\r\n\r\n {!!demandStageSectionsList[StageSections.GENERAL_INFO]?.unreadRfxMessages &&\r\n \r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_OFFER_STAGE_ID_SECTION, {\r\n id: demandId,\r\n stageId: stageId,\r\n section: StageSectionsUrlParams.GENERAL_INFO\r\n }))}>{Tr('general_info_answer_on_question_new_notification')}\r\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 connect((state) => ({\r\n demandStagesList: state.resources[DemandOffersService.DEMAND_STAGES_LIST],\r\n demandStageSectionsList: state.resources[DemandOffersService.DEMAND_STAGE_SECTIONS_LIST]\r\n}), {})(CtrOfferPanel)","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {Route, Switch} from 'react-router-dom';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport CtrCorrespondencePanel from \"./correspondence/CtrCorrespondencePanel\";\r\nimport CtrOfferPanel from \"./offer/CtrOfferPanel\";\r\n\r\nconst rp = RouterPath.ctrDemand.steps;\r\n\r\nfunction CtrScenesRouter() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nCtrScenesRouter.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nCtrScenesRouter.defaultProps = {}\r\n\r\nexport default CtrScenesRouter;","import React, {useMemo} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport {connect} from \"react-redux\";\r\nimport * as Yup from \"yup\";\r\nimport {SignatureType, SignatureTypeLabel} from \"../../../constants/SignatureType\";\r\nimport RadioGroup from \"../../RadioGroup\";\r\nimport {createSelectItem} from \"../../Select\";\r\n\r\nconst ChooseSignatureTypePopup = (\r\n {\r\n signatureTypes,\r\n onCancel,\r\n onSuccess,\r\n formSubmit\r\n }) => {\r\n\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n const types = useMemo(\r\n () => signatureTypes.map(x => createSelectItem(x, SignatureTypeLabel(x)))\r\n , [signatureTypes])\r\n\r\n const onSubmit = ({signature}) => {\r\n onSuccess(signature)\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined'));\r\n buttons.push(createButton(Tr('select'), handleSubmit, undefined));\r\n return buttons;\r\n }\r\n\r\n return (\r\n )\r\n}\r\n\r\nChooseSignatureTypePopup.propTypes = {\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n signatureTypes: PropTypes.arrayOf(PropTypes.oneOf(Object.keys(SignatureType)))\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(ChooseSignatureTypePopup)","const loadExternalLibrary = async (src, id) => {\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n const existingScript = document.getElementById(id);\r\n if (!existingScript) {\r\n const script = document.createElement('script');\r\n script.src = src;\r\n script.id = id;\r\n document.head.appendChild(script);\r\n script.onload = () => {\r\n resolve()\r\n };\r\n script.onabort = () => {\r\n reject();\r\n }\r\n }\r\n if (existingScript) resolve();\r\n\r\n });\r\n};\r\n\r\nexport default loadExternalLibrary;","import React, {useEffect, useRef} from 'react'\r\nimport Dialog from \"../../Dialog\";\r\nimport Tr from \"translations/Translations\";\r\nimport {SignatureType} from \"../../../constants/SignatureType\";\r\nimport Endpoints from \"../../../constants/Endpoints\";\r\nimport loadExternalLibrary from \"../../../libs/loadExternalLibrary\";\r\nimport Typography from \"../../Typography\";\r\nimport GridBlock from \"../../GridBlock\";\r\nimport BoldTypography from \"../../BoldTypography\";\r\n\r\n\r\n// const useStyle = makeStyles(theme => ({\r\n// root: {}\r\n// }))\r\n\r\nconst SUPPORTED_SIG_TYPES = [SignatureType.PERSONAL_ID, SignatureType.QUALIFIED];\r\nconst isSupportedSigType = (x) => !!x && SUPPORTED_SIG_TYPES.includes(x)\r\n\r\nfunction Szafir(\r\n {\r\n config,\r\n signatureType,\r\n setSignatureType\r\n }) {\r\n const loadedLibrary = useRef(false);\r\n\r\n const startComponentURIErrorCalback = (error) => {\r\n config.errorCallback({type: \"startComponentURIErrorCalback\", error})\r\n }\r\n const onLoadError = (error) => {\r\n config.errorCallback({type: \"onLoadError\", error})\r\n }\r\n const onConfigError = (error) => {\r\n config.errorCallback({type: \"onConfigError\", error})\r\n }\r\n const onErrorNoExtension = (error, info) => {\r\n config.errorCallback({type: \"onErrorNoExtension\", error, info})\r\n }\r\n\r\n const onErrorNoHostApp = (error, info) => {\r\n config.errorCallback({type: \"onErrorNoHostApp\", error, info})\r\n }\r\n\r\n const taskListErrorCallback = (resultTaskList) => {\r\n config.errorCallback({type: \"taskListErrorCallback\", error: resultTaskList})\r\n }\r\n\r\n const invalidResultCode = (error) => {\r\n config.errorCallback({type: \"invalidResultCode\", error})\r\n }\r\n\r\n const successLoadSzafir = () => {\r\n window.SZAFIR_SDK.startComponentURI(Endpoints.SERVER_URL + `/js/signature/settings${signatureType === SignatureType.PERSONAL_ID ? \"_polish_id\" : \"\"}.xml`, startComponentURISuccessCalback, startComponentURIErrorCalback);\r\n }\r\n\r\n const startComponentURISuccessCalback = () => {\r\n config.docContentFunc(signatureType).then((resp) => {\r\n if (resp) {\r\n const cfg = config.makeTaskListConfig || {\r\n signatureFormat: \"PAdES-BES\",\r\n dataEmbedding: \"true\"\r\n }\r\n var makeTaskList = '' + cfg.signatureFormat\r\n + '' + cfg.dataEmbedding + '' + resp + '';\r\n window.SZAFIR_SDK.getTaskList(makeTaskList, function (taskList) {\r\n window.SZAFIR_SDK.doTaskList(taskList, taskListSuccessCallback, taskListErrorCallback);\r\n });\r\n }\r\n })\r\n }\r\n\r\n\r\n const taskListSuccessCallback = (resultTaskList) => {\r\n var xmlDoc = window.jQuery.parseXML(resultTaskList);\r\n var result = window.jQuery(\"Result\", xmlDoc);\r\n const code = result.attr('code');\r\n if (result.attr('code') === \"0\") {\r\n const signature = window.jQuery(\"TaskList SigningTask SigningTaskItem SignatureToCreate Base64Binary\", xmlDoc).text();\r\n config.successCallback(signatureType, signature.replace(/\\n/g, \"\"), null)\r\n } else {\r\n var desc = window.jQuery(\"Description\", xmlDoc);\r\n invalidResultCode({\r\n resultCode: code,\r\n result: result.text(),\r\n descriptionCode: desc.attr(\"code\"),\r\n description: desc.text(),\r\n })\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n const loadSzafir = () => {\r\n window.SZAFIR_SDK.loadSzafir(successLoadSzafir, onLoadError);\r\n }\r\n if (isSupportedSigType(signatureType)) {\r\n if (!loadedLibrary.current) {\r\n loadExternalLibrary(Endpoints.EXT_JS_LIBRARIES.jquery, \"external-lib-jquery\").then(() => {\r\n loadExternalLibrary(Endpoints.EXT_JS_LIBRARIES.szafir, \"external-lib-szafir\").then(() => {\r\n window.SZAFIR_SDK.config({\r\n sdk_location_url: Endpoints.SERVER_URL + \"/js/signature/build/\",\r\n versions_file: \"versions.xml\",\r\n onError: onConfigError,\r\n onErrorNoExtension,\r\n onErrorNoHostApp,\r\n debug: false\r\n });\r\n loadedLibrary.current = true;\r\n loadSzafir();\r\n }).catch(e => console.error(e))\r\n }).catch(e => console.error(e))\r\n } else {\r\n loadSzafir();\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [signatureType])\r\n\r\n return (\r\n \r\n )\r\n\r\n\r\n}\r\n\r\nSzafir.propTypes = {}\r\n\r\n\r\nexport default Szafir;\r\n","import React, {useEffect, useState} from 'react'\r\nimport Dialog from \"../../Dialog\";\r\nimport Tr from \"translations/Translations\";\r\nimport {SignatureType} from \"../../../constants/SignatureType\";\r\nimport Typography from \"../../Typography\";\r\nimport GridBlock from \"../../GridBlock\";\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\nimport MultiButton, {createButton} from \"../../popup/components/MultiButton\";\r\nimport UploadFile from \"../../UploadFile\";\r\nimport {Link} from \"@material-ui/core\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport FilesList from \"../../FilesList\";\r\nimport WorkableButton from \"../../button/WorkableButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n step: {\r\n marginTop: theme.spacing(2)\r\n }\r\n}))\r\n\r\nconst SUPPORTED_SIG_TYPES = [SignatureType.UNKNOWN, SignatureType.E_PUAP];\r\nconst isSupportedSigType = (x) => !!x && SUPPORTED_SIG_TYPES.includes(x)\r\n\r\nfunction ExternalSignature(\r\n {\r\n config,\r\n signatureType,\r\n setSignatureType,\r\n encryptionRoundId\r\n }) {\r\n const classes = useStyle();\r\n const [file, setFile] = useState(null);\r\n const [error, setError] = useState(null);\r\n const [downloadWorking, setDownloadWorking] = useState(false);\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), config.cancelCallback, 'outlined'));\r\n buttons.push(createButton(Tr('confirm'), handlePlaceOffer, undefined));\r\n return buttons;\r\n }\r\n\r\n const handleUpload = (upload) => {\r\n setError(null);\r\n setFile(upload);\r\n }\r\n\r\n const handlePlaceOffer = () => {\r\n setError(null);\r\n if(!file) {\r\n setError(Tr(\"add_file\"))\r\n } else {\r\n config.successCallback(signatureType, null, file.identity)\r\n }\r\n }\r\n\r\n const downloadDocument = () => {\r\n setDownloadWorking(true);\r\n config.docContentFunc(signatureType).finally(()=> setDownloadWorking(false))\r\n }\r\n\r\n\r\n return ()\r\n\r\n\r\n}\r\n\r\nExternalSignature.propTypes = {}\r\n\r\nExternalSignature.defaultProps = {}\r\n\r\n\r\n\r\nfunction ExternalSignatureWrapper(\r\n {\r\n config,\r\n signatureType,\r\n setSignatureType\r\n }) {\r\n\r\n const [supported, setSupported] = useState(false);\r\n const [encryptionRoundId, setEncryptionRoundId] = useState(undefined);\r\n useEffect(()=> {\r\n setSupported(isSupportedSigType(signatureType));\r\n }, [signatureType])\r\n\r\n useEffect(()=> {\r\n if(supported) {\r\n config.getEncryptionRoundId().then(resp => {\r\n if(resp !== undefined)\r\n setEncryptionRoundId(resp);\r\n })\r\n } else {\r\n setEncryptionRoundId(undefined);\r\n }\r\n // eslint-disable-next-line\r\n }, [supported])\r\n\r\n return !!config && encryptionRoundId !== undefined ? : null\r\n\r\n}\r\n\r\n\r\n\r\nexport default ExternalSignatureWrapper;\r\n","import React, {useState} from 'react'\r\nimport {connect} from \"react-redux\";\r\nimport ChooseSignatureTypePopup from \"./ChooseSignatureTypePopup\";\r\nimport reduxStore from \"redux/store\"\r\nimport {clearSignature} from \"../../../redux/actions\";\r\nimport Szafir from \"./Szafir\";\r\nimport {useDidUpdateEffect} from \"../../../hooks/useDidUpdateEffect\";\r\nimport PropTypes from \"prop-types\";\r\nimport {SignatureType} from \"../../../constants/SignatureType\";\r\nimport ExternalSignature from \"./ExternalSignature\";\r\n// const useStyle = makeStyles(theme => ({\r\n// root: {}\r\n// }))\r\n\r\nfunction Signature(\r\n {\r\n config,\r\n }) {\r\n\r\n const [sigType, setSigType] = useState(null);\r\n\r\n useDidUpdateEffect(()=> {\r\n if(!config) {\r\n setSigType(null);\r\n }\r\n },[config])\r\n\r\n const cancel = () => {\r\n reduxStore.dispatch(clearSignature(\"config\"));\r\n if(config.cancelCallback)\r\n config.cancelCallback();\r\n }\r\n\r\n\r\n return (\r\n <>\r\n {(!!config && sigType === null) && setSigType(selectedType)}\r\n onCancel={cancel}\r\n />}\r\n \r\n \r\n >\r\n )\r\n\r\n}\r\n\r\nSignature.propTypes = {\r\n config: PropTypes.shape({\r\n docContentFunc: PropTypes.func.isRequired,\r\n successCallback: PropTypes.func.isRequired,\r\n errorCallback: PropTypes.func.isRequired,\r\n cancelCallback: PropTypes.func.isRequired,\r\n signatureTypes: PropTypes.arrayOf(PropTypes.oneOf(Object.keys(SignatureType))),\r\n getEncryptionRoundId: PropTypes.func.isRequired,\r\n })\r\n\r\n}\r\n\r\nSignature.defaultProps = {}\r\n\r\nexport default connect((state) => ({\r\n config: state.signature.config\r\n}))(Signature);\r\n","import React, {useEffect} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Page from 'components/Page';\r\nimport InfoBar from \"components/complex/infobar/InfoBar\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport CtrScenesRouter from \"./CtrScenesRouter\";\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport {connect} from \"react-redux\";\r\nimport ContractorStageBar from \"components/complex/stagebar/ContractorStageBar\";\r\nimport Signature from \"components/complex/signature/Signature\";\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n content: {\r\n padding: theme.spacing(2)\r\n }\r\n}));\r\n\r\nfunction CtrStepperPages(\r\n {\r\n match,\r\n demandStagesList\r\n }) {\r\n const classes = useStyles();\r\n\r\n const demandId = match.params.id;\r\n\r\n useEffect(() => {\r\n DemandOffersService.getStages(demandId);\r\n return () => {\r\n DemandOffersService.clearResources(DemandOffersService.DEMAND_STAGES_LIST);\r\n }\r\n }, [demandId])\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\nCtrStepperPages.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandStagesList: state.resources[DemandOffersService.DEMAND_STAGES_LIST]\r\n}), {})(CtrStepperPages);\r\n\r\n","import React from 'react'\r\nimport {Redirect, Route, Switch} from 'react-router-dom';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport NotFound from \"../../NotFound/NotFound\";\r\nimport CtrStepperPages from \"./scenes/CtrStepperPages\";\r\n\r\nconst rp = RouterPath.ctrDemand;\r\n\r\nfunction CtrDemand() {\r\n\r\n return (\r\n \r\n {/*zmiana */}\r\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 CtrDemand;\r\n","import React from 'react'\r\nimport {Route, Switch} from 'react-router-dom';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport NotFound from '../NotFound/NotFound';\r\nimport {withRouter} from \"react-router\";\r\nimport CtrDemand from \"./demand/CtrDemand\";\r\nimport Endpoints from \"../../constants/Endpoints\";\r\n\r\nfunction ContractorRouter() {\r\n\r\n return (\r\n \r\n {\r\n window.location.replace( Endpoints.SERVER_URL);\r\n return null;\r\n }}/>\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default withRouter(ContractorRouter);\r\n","import React, {useEffect} from 'react'\r\nimport AppBar from 'components/complex/appbar/AppBar';\r\nimport Navigation from \"components/complex/navigation/Navigation\";\r\nimport ContractorRouter from \"./ContractorRouter\";\r\nimport UploadService from \"../../services/UploadService\";\r\n\r\n\r\nfunction ContractorRoot() {\r\n\r\n useEffect(()=>{\r\n UploadService.getValidExtensions();\r\n return ()=> UploadService.clearValidExtensionsResource();\r\n },[]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n >\r\n )\r\n}\r\n\r\nexport default ContractorRoot;\r\n","import React from 'react'\r\nimport {Redirect, Route, Switch} from 'react-router-dom';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport NotFound from './NotFound/NotFound';\r\nimport PurchaserRoot from \"./purchaser/PurchaserRoot\";\r\nimport ContractorRoot from \"./contractor/ContractorRoot\";\r\n\r\nfunction Router() {\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\nexport default Router;\r\n","import React from 'react'\r\nimport { withStyles, Dialog, DialogContent, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport SmileIcon from '@material-ui/icons/SentimentSatisfiedAlt'\r\nimport Button from 'components/Button';\r\nimport Tr from 'translations/Translations';\r\nimport Title from 'components/Title';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\ticon: {\r\n\t\tfontSize: theme.components.icon.fontSize,\r\n\t},\r\n\tcontent: {\r\n\t\ttextAlign: 'center',\r\n\t\t'&>*': {\r\n\t\t\tmarginBottom: theme.spacing(2)\r\n\t\t}\r\n\t}\r\n})\r\n\r\nfunction WelcomeTutorial({\r\n\tclasses,\r\n\topen,\r\n\tonClick\r\n}) {\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nWelcomeTutorial.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\topen: PropTypes.bool,\r\n\tonClick: PropTypes.func,\r\n}\r\n\r\nWelcomeTutorial.defaultProps = {\r\n\tonClick: () => {}\r\n}\r\n\r\nexport default withStyles(style)(WelcomeTutorial);","import React, { memo } from 'react'\r\nimport { withStyles, Paper, Typography, Button } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport Title from 'components/Title';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tpadding: theme.spacing(2),\r\n\t\t'&>*': {\r\n\t\t\t'&:not(:first-child)': {\r\n\t\t\t\tmarginTop: theme.spacing(1)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n})\r\n\r\nfunction TourTooltip({\r\n\tclasses,\r\n\tstep,\r\n\tprimaryProps,\r\n\ttooltipProps,\r\n\tisLastStep,\r\n\tonEnd,\r\n\tchangePage,\r\n}) {\r\n\tconst { title, content, href } = step;\r\n\r\n\tconst handleNextClick = (e) => {\r\n\t\tif (href) {\r\n\t\t\tRouterPath.redirect(href)\r\n\t\t}\r\n\t\tprimaryProps.onClick(e)\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{title}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{content}\r\n\t\t\t\r\n\t\t\t{!isLastStep &&\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nTourTooltip.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nTourTooltip.defaultProps = {\r\n}\r\n\r\nexport default memo(withStyles(style)(TourTooltip));","import RouterPath from 'libs/RouterPath';\r\n\r\nconst createStep = (target, title, content, placement, href) => ({\r\n\ttarget,\r\n\ttitle,\r\n\tcontent,\r\n\thref,\r\n\tplacement,\r\n\tdisableBeacon: true,\r\n})\r\n\r\nexport default [\r\n\tcreateStep('.test-step', 'Tytuł 1', 'This is my awesome feature! 1', 'bottom'),\r\n\tcreateStep('.test-step-2', 'Tytuł 2', 'This is my awesome feature! 2', 'left', RouterPath.BUYER_INIT),\r\n\tcreateStep('.tour-stepper', 'Tytuł 3', 'This is my awesome feature! STEPPER', 'right'),\r\n]","import React, { useState, memo } from 'react'\r\nimport { withTheme } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Joyride, { ACTIONS, EVENTS, STATUS } from 'react-joyride'\r\nimport WelcomeTutorial from './WelcomeTutorial';\r\nimport TourTooltip from './TourTooltip';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport steps from './tutorial.steps'\r\nimport { connect } from 'react-redux'\r\nimport { setOpenTutorial } from 'redux/actions'\r\n\r\nfunction Tutorial({\r\n\ttheme,\r\n\topenTutorial,\r\n\tsetOpenTutorial\r\n}) {\r\n\tconst [step, setStep] = useState(0)\r\n\tconst [run, setRun] = useState(false);\r\n\r\n\tconst handleWelcomeClick = () => {\r\n\t\tRouterPath.redirect(RouterPath.TEST)\r\n\t\tsetOpenTutorial(false)\r\n\t\tsetRun(true)\r\n\t}\r\n\r\n\tconst handleEndTour = () => {\r\n\t\tsetRun(false)\r\n\t}\r\n\r\n\tconst handleJoyrideCallback = ({ action, index, status, type }) => {\r\n\t\tif ([EVENTS.STEP_AFTER, EVENTS.TARGET_NOT_FOUND].includes(type)) {\r\n\t\t\t// Update state to advance the tour\r\n\t\t\tsetStep(index + (action === ACTIONS.PREV ? -1 : 1))\r\n\t\t}\r\n\t\telse if ([STATUS.FINISHED, STATUS.SKIPPED].includes(status)) {\r\n\t\t\t// Need to set our running state to false, so we can restart if we click start again.\r\n\t\t\tsetRun(false)\r\n\t\t}else if([STATUS.PAUSED].includes(status)){\r\n\t\t\tsetStep(0)\r\n\t\t}\r\n\t}\r\n\t\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\tstepIndex={step}\r\n\t\t\t\tdisableOverlayClose\r\n\t\t\t\tcontinuous\r\n\t\t\t\tsteps={steps}\r\n\t\t\t\tstyles={{\r\n\t\t\t\t\toptions: {\r\n\t\t\t\t\t\tzIndex: theme.zIndex.tooltip,\r\n\t\t\t\t\t}\r\n\t\t\t\t}}\r\n\t\t\t/>\r\n\t\t>\r\n\t)\r\n}\r\n\r\nTutorial.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nTutorial.defaultProps = {\r\n}\r\n\r\nexport default connect((state) => ({\r\n\topenTutorial: state.store.openTutorial,\r\n}), {\r\n\tsetOpenTutorial\r\n})(memo(withTheme(Tutorial)));","import React, { useState } from 'react'\r\nimport { withStyles, Checkbox, FormControlLabel } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport SaveIcon from '@material-ui/icons/Save'\r\nimport DeleteIcon from '@material-ui/icons/Delete'\r\nimport SaveDialogBase from './SaveDialogBase';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t},\r\n\ticon: {\r\n\t\tfontSize: theme.components.icon.fontSize,\r\n\t},\r\n\tpadding: {\r\n\t\tpadding: `${theme.spacing(1)}px 0`\r\n\t}\r\n})\r\n\r\nfunction SaveDialog({\r\n\tclasses,\r\n\tonClose,\r\n\tshowDelete = false\r\n}) {\r\n\r\n\tconst [isChecked, setIsChecked] = useState(false)\r\n\tconst handleChange = (value) => {\r\n\t\tsetIsChecked(value)\r\n\t\tlocalStorage.setItem('show_save_popup', value);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t handleChange(!isChecked)} />}\r\n\t\t\t\tlabel={Tr(\"dont_show\")}\r\n\t\t\t/>\r\n\t\t\r\n\t)\r\n}\r\n\r\nSaveDialog.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tonClose: PropTypes.func,\r\n}\r\n\r\nSaveDialog.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(SaveDialog);","import React from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport SaveDialogBase from './SaveDialogBase';\r\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\r\nimport Tr from 'translations/Translations';\r\nimport { connect } from 'react-redux'\r\n\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\ticon: {\r\n\t\tcolor: theme.palette.common.error,\r\n\t}\r\n})\r\n\r\nfunction SaveDialogError({\r\n\tclasses,\r\n\tonClose,\r\n\tmessage,\r\n\r\n}) {\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{message}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nSaveDialogError.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tmessage: state.store.saveStatusMessage\r\n}), {\r\n\r\n})(withStyles(style)(SaveDialogError));","import React from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport SaveDialogBase from './SaveDialogBase';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle'\r\nimport {connect} from 'react-redux'\r\n\r\n\r\nconst style = theme => ({\r\n root: {},\r\n icon: {\r\n color: theme.palette.common.success,\r\n }\r\n})\r\n\r\nfunction SaveDialogInfo(\r\n {\r\n classes,\r\n onClose,\r\n message,\r\n\r\n }) {\r\n\r\n return (\r\n \r\n \r\n {message}\r\n \r\n \r\n )\r\n}\r\n\r\nSaveDialogInfo.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n message: state.store.saveStatusMessage\r\n}), {})(withStyles(style)(SaveDialogInfo));","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport LoadingScreen from 'components/complex/loadingScreen/LoadingScreen';\r\nimport SaveDialog from './SaveDialog';\r\nimport saveStatusValues from 'constants/status.save'\r\nimport { connect } from 'react-redux'\r\nimport { setSaveStatusClosed } from 'redux/actions'\r\nimport SaveDialogError from './SaveDialogError';\r\nimport SaveDialogInfo from \"./SaveDialogInfo\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction Save({\r\n\tclasses,\r\n\tstate,\r\n\tsetSaveStatusClosed,\r\n}) {\r\n\tconst handleCloseDialog = () => {\r\n\t\tsetSaveStatusClosed();\r\n\t}\r\n\r\n\tlet isChecked = localStorage.getItem('show_save_popup')\r\n\tswitch (state) {\r\n\t\tcase saveStatusValues.CLOSED: return '';\r\n\t\tcase saveStatusValues.DIALOG: return isChecked === 'true' ? \"\" : ;\r\n\t\tcase saveStatusValues.DELETE: return isChecked === 'true' ? \"\" : ;\r\n\t\tcase saveStatusValues.ERROR: return \r\n\t\tcase saveStatusValues.INFO: return \r\n\t\tdefault: return ;\r\n\t}\r\n}\r\n\r\nSave.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nSave.defaultProps = {\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tstate: state.store.saveStatus\r\n}), {\r\n\tsetSaveStatusClosed\r\n})(withStyles(style)(Save));","import { useEffect, useRef, useState } from 'react';\r\n\r\n// https://overreacted.io/making-setinterval-declarative-with-react-hooks/\r\nfunction useInterval(callback, delay, run = true) {\r\n\tconst [intervalId, setIntervalId] = useState(null)\r\n\tconst savedCallback = useRef();\r\n\r\n\t// Remember the latest callback.\r\n\tuseEffect(() => {\r\n\t\tsavedCallback.current = callback;\r\n\t}, [callback]);\r\n\r\n\t// Set up the interval.\r\n\tuseEffect(() => {\r\n\t\tfunction tick() {\r\n\t\t\tsavedCallback.current();\r\n\t\t}\r\n\r\n\t\tif (run && delay !== null) {\r\n\t\t\tconst id = setInterval(tick, delay);\r\n\t\t\tsetIntervalId(id)\r\n\t\t} else {\r\n\t\t\tif (intervalId) {\r\n\t\t\t\tclearInterval(intervalId);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\treturn () => {\r\n\t\t\tif (intervalId) {\r\n\r\n\t\t\t\tclearInterval(intervalId);\r\n\t\t\t}\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [run, delay])\r\n}\r\n\r\nexport default useInterval;","import React, {useState} from 'react'\r\nimport {Dialog, DialogActions, DialogContent, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport PowerIcon from '@material-ui/icons/PowerSettingsNew'\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport {connect} from 'react-redux'\r\nimport Title from 'components/Title';\r\nimport useInterval from 'hooks/useInterval';\r\nimport moment from 'moment';\r\nimport UserService from 'services/UserService';\r\nimport OAuthService from 'services/OAuthService';\r\nimport reduxStore from 'redux/store'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t},\r\n\ticon: {\r\n\t\tfontSize: theme.components.icon.fontSize,\r\n\t},\r\n\tcontent: {\r\n\t\ttextAlign: 'center',\r\n\t\t'&>*': {\r\n\t\t\tmarginTop: theme.spacing(2),\r\n\t\t}\r\n\t},\r\n\ttitle: {\r\n\t}\r\n})\r\n\r\nfunction Session({\r\n\tclasses\r\n}) {\r\n\tconst [open, setOpen] = useState(false)\r\n\tconst time = open ? 1000 : 30000;\r\n\r\n\tconst [timeLeft, setTimeLeft] = useState(0)\r\n\r\n\tuseInterval(() => {\r\n\t\tconst state = reduxStore.getState();\r\n\t\tconst sessionTime = state.resources.sessionTime;\r\n\t\tif (!sessionTime) return;\r\n\t\tconst { endTime } = sessionTime;\r\n\t\tif (!open) {\r\n\t\t\tconst diff = endTime.diff(moment(), 'm')\r\n\t\t\tif (diff < 5) {\r\n\t\t\t\tsetOpen(true)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tconst diff = moment.utc(endTime.diff(moment())).format('m:ss')\r\n\t\t\tsetTimeLeft(diff);\r\n\t\t\tif (diff === \"0:00\" || diff === \"00:00\") {\r\n\t\t\t\tOAuthService.logout()\r\n\t\t\t}\r\n\t\t}\r\n\t}, time)\r\n\r\n\tconst handleContinue = () => {\r\n\t\tUserService.sessionTime()\r\n\t\t\t.then(() => {\r\n\t\t\t\tsetOpen(false)\r\n\t\t\t})\r\n\t}\r\n\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nSession.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nSession.defaultProps = {\r\n}\r\n\r\nexport default connect((state) => ({\r\n}), {\r\n})(withStyles(style)(Session));","import React from 'react'\r\nimport { setOpenRegisterPopup } from 'redux/actions'\r\nimport { connect } from 'react-redux'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport { withStyles, Typography, Box } from '@material-ui/core';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Button from 'components/Button';\r\n\r\nconst style = theme => ({\r\n\tpadding: {\r\n\t\tmarginTop: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction RegisterPopup({\r\n\tregisterPopup,\r\n\tsetOpenRegisterPopup,\r\n\tclasses\r\n}) {\r\n\r\n\tconst onClose = () => {\r\n\t\tsetOpenRegisterPopup(false)\r\n\t}\r\n\r\n\tif (!registerPopup) return ''\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tregisterPopup: state.store.registerPopup,\r\n}), {\r\n\t\tsetOpenRegisterPopup\r\n\t})(withStyles(style)(RegisterPopup));","import reduxStore from 'redux/store'\r\nimport { setResource } from 'redux/actions'\r\nimport Endpoints from 'constants/Endpoints';\r\nimport RestRequest from 'libs/RestRequest';\r\nimport { setInnerMenuOpen } from 'redux/actions'\r\n\r\n\r\nconst get = async () => {\r\n\tlet url = Endpoints.USER_LOGGED_MENU_LIST;\r\n\ttry {\r\n\t\tconst res = await RestRequest({\r\n\t\t\tmethod: 'get',\r\n\t\t\turl,\r\n\t\t})\r\n\t\treduxStore.dispatch(\r\n\t\t\tsetResource('userLoggedMenuList', res)\r\n\t\t)\r\n\r\n\t\tlet objKey = {}\r\n\t\tres.forEach(x => {\r\n\t\t\tlet temp = x.name.split(\".\")\r\n\t\t\tobjKey[temp[1]] = false\r\n\t\t});\r\n\t\treduxStore.dispatch(\r\n\t\t\tsetInnerMenuOpen(objKey)\r\n\t\t)\r\n\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nexport default {\r\n\tget,\r\n}\r\n","import { RestRequestGET } from 'libs/RestRequest'\r\nimport Endpoints from 'constants/Endpoints'\r\nimport {setClientColors, setResource} from 'redux/actions';\r\nimport reduxStore from 'redux/store'\r\n\r\nconst logo = async () => {\r\n\ttry {\r\n\t\tconst res = await RestRequestGET(Endpoints.CLIENT_LOGO);\r\n\t\treduxStore.dispatch(setResource('logo', res))\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nconst clientColors = async () => {\r\n\ttry {\r\n\t\tconst res = await RestRequestGET(Endpoints.CLIENT_COLORS);\r\n\t\treduxStore.dispatch(setClientColors(res))\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nexport default {\r\n\tlogo,\r\n\tclientColors\r\n}","import { useEffect, useState, useMemo } from 'react'\r\nimport UserNavigationService from 'services/UserNavigationService'\r\nimport UserService from 'services/UserService';\r\nimport ClientService from 'services/ClientService';\r\nimport Endpoints from 'constants/Endpoints';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport OAuthService from 'services/OAuthService';\r\n\r\nexport default (\r\n\tauthorizeCounter,\r\n\tparams = {},\r\n\tsetRedirectFunc,\r\n\tsetRedirectWithoutHistoryFunc,\r\n\thistory,\r\n\tlocation\r\n) => {\r\n\tconst [isNewToken, setIsNewToken] = useState(false);\r\n\r\n\tconst [refresh, setRefresh] = useState(null);\r\n\tconst refreshState = () => setRefresh(Math.random())\r\n\tconst firstLoad = refresh === null;\r\n\r\n\tconst [canRender, setCanRender] = useState(false)\r\n\tconst [isTokenValid, setIsTokenValid] = useState(false)\r\n\r\n\tconst authorize = JSON.parse(localStorage.getItem(\"authorize\"))\r\n\tconst { code, state } = params;\r\n\r\n\tconst token = useMemo(() => {\r\n\t\tif (authorize) return authorize.access_token;\r\n\t\treturn undefined;\r\n\t}, [authorize])\r\n\r\n\tuseEffect(() => {\r\n\t\tif (firstLoad) {\r\n\t\t\tsetRedirectFunc(history.push);\r\n\t\t\tsetRedirectWithoutHistoryFunc(history.replace)\r\n\t\t\trefreshState();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (isTokenValid) return;\r\n\r\n\t\t(async (token, code, state, isNewToken) => {\r\n\t\t\tif (!token) {\r\n\t\t\t\tif (!code) {\r\n\t\t\t\t\t// no token and no code\r\n\t\t\t\t\t// get code from server\r\n\t\t\t\t\tif (!state) {\r\n\t\t\t\t\t\tif (location.pathname === RouterPath.BASE) {\r\n\t\t\t\t\t\t\tstate = window.btoa(RouterPath.MY_PROCEDURE);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tstate = window.btoa(location.pathname + location.search);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\twindow.location.href = Endpoints.oauth.AUTHORIZE(state)\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// no token but have code\r\n\t\t\t\t\t// get token\r\n\t\t\t\t\tconst tokenGranted = await OAuthService.getToken(code);\r\n\t\t\t\t\tif (tokenGranted)\r\n\t\t\t\t\t\tsetIsNewToken(true);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tsetIsTokenValid(true);\r\n\t\t\t\tif (isNewToken) {\r\n\t\t\t\t\t// is new token, can get initialize values\r\n\t\t\t\t\tRouterPath.redirect(window.atob(state))\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})(token, code, state, isNewToken);\r\n\t\r\n\t\t// eslint-disable-next-line\r\n\t}, [token, code, firstLoad, isNewToken])\r\n\r\n\t// get initialize values\r\n\tuseEffect(() => {\r\n\t\tif (isTokenValid) {\r\n\t\t\t(async () => {\r\n\t\t\t\tawait ClientService.clientColors();\r\n\t\t\t\tawait UserNavigationService.get();\r\n\t\t\t\tawait UserService.data();\r\n\t\t\t\tawait UserService.profile();\r\n\t\t\t\tawait UserService.sessionTime();\r\n\t\t\t\tawait ClientService.logo();\r\n\t\t\t\tsetCanRender(true);\r\n\t\t\t})();\r\n\t\t}\r\n\t}, [isTokenValid])\r\n\r\n\t// open or close aside menu\r\n\tuseEffect(() => {\r\n\t\tRouterPath.setMenuOpenOnPath();\r\n\t}, [])\r\n\r\n\treturn canRender;\r\n}","import React from 'react'\r\nimport {clearConfirmNotification} from 'redux/actions'\r\nimport {connect} from \"react-redux\";\r\nimport Confirm from \"./Confirm\";\r\n\r\nfunction HookConfirmPopup(\r\n {\r\n confirmNotification,\r\n clearConfirmNotification\r\n }) {\r\n\r\n\r\n const onCancel = () => {\r\n if (confirmNotification && confirmNotification.onCancel)\r\n confirmNotification.onCancel();\r\n clearConfirmNotification();\r\n }\r\n\r\n const onConfirm = () => {\r\n if (confirmNotification && confirmNotification.onConfirm)\r\n confirmNotification.onConfirm();\r\n clearConfirmNotification();\r\n }\r\n\r\n\r\n return !!confirmNotification && \r\n}\r\n\r\nexport default connect((state) => ({\r\n confirmNotification: state.store.confirmNotification\r\n}), {\r\n clearConfirmNotification\r\n})(HookConfirmPopup);","import React from 'react'\r\nimport {clearAlertNotification} from 'redux/actions'\r\nimport {connect} from \"react-redux\";\r\nimport Alert from \"./Alert\";\r\n\r\nfunction HookAlertPopup(\r\n {\r\n alertNotification,\r\n clearAlertNotification\r\n }) {\r\n\r\n\r\n const onClose = () => {\r\n if (alertNotification && alertNotification.onClose)\r\n alertNotification.onClose();\r\n clearAlertNotification();\r\n }\r\n\r\n return !!alertNotification && \r\n}\r\n\r\nexport default connect((state) => ({\r\n alertNotification: state.store.alertNotification\r\n}), {\r\n clearAlertNotification\r\n})(HookAlertPopup);","import React from 'react'\r\nimport {connect} from \"react-redux\";\r\nimport LoadingScreen from \"./LoadingScreen\";\r\n\r\nfunction HookLoadingScreen(\r\n {\r\n loadingScreen\r\n }) {\r\n return !!loadingScreen && \r\n}\r\n\r\nexport default connect((state) => ({\r\n loadingScreen: state.store.loadingScreen\r\n}))(HookLoadingScreen);","import React from 'react'\r\nimport Router from './Router';\r\nimport {withStyles} from '@material-ui/core';\r\nimport Tutorial from 'components/complex/tutorial/Tutorial';\r\nimport Save from 'components/popup/save/Save';\r\nimport Session from 'components/popup/session/Session';\r\nimport pjson from '../../package.json'\r\nimport RegisterPopup from 'components/popup/registerPopup/RegisterPopup';\r\nimport {connect} from 'react-redux'\r\nimport useInitialize from 'hooks/useInitialize';\r\nimport usePathParams from 'hooks/usePathParams';\r\nimport Loading from 'components/Loading';\r\nimport {withRouter} from \"react-router\";\r\nimport {setRedirectFunc, setRedirectWithoutHistoryFunc} from 'redux/actions'\r\nimport {SnackbarProvider} from \"notistack\";\r\nimport HookConfirmPopup from \"components/popup/confirm/HookConfirmPopup\";\r\nimport HookAlertPopup from \"components/popup/alert/HookAlertPopup\";\r\nimport HookLoadingScreen from \"components/complex/loadingScreen/HookLoadingScreen\";\r\nimport {SupportModeContextProvider} from \"../context/SupportModeContext\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n minHeight: '100vh',\r\n backgroundColor: theme.palette.background.default,\r\n minWidth: theme.breakpoints.values.lg\r\n - theme.scrollSize,\r\n },\r\n version: {\r\n position: 'fixed',\r\n fontSize: 9,\r\n bottom: 0,\r\n right: 0,\r\n color: theme.palette.text.primary,\r\n }\r\n})\r\n\r\nfunction Root(\r\n {\r\n classes,\r\n authorizeCounter,\r\n supportMode,\r\n location,\r\n history,\r\n setRedirectFunc,\r\n setRedirectWithoutHistoryFunc,\r\n }) {\r\n\r\n const params = usePathParams(location);\r\n const canRenderPage = useInitialize(authorizeCounter, params, setRedirectFunc, setRedirectWithoutHistoryFunc, history, location);\r\n\r\n\r\n if (!canRenderPage) return (\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\n v{pjson.version}\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n authorizeCounter: state.authorize.counter,\r\n supportMode: !!state.resources?.userData?.supportMode,\r\n}), {\r\n setRedirectFunc,\r\n setRedirectWithoutHistoryFunc\r\n})(withStyles(style)(withRouter(Root)));\r\n","import React from 'react';\r\nimport {alpha, createTheme} from '@material-ui/core/styles';\r\nimport {ThemeProvider as ThemeProviderUI} from '@material-ui/styles';\r\nimport {connect} from 'react-redux'\r\nimport appConfig from './theme.config.json'\r\n\r\nconst baseTheme = (colors) => createTheme({\r\n palette: {\r\n primary: {\r\n main: colors['color-primary']\r\n },\r\n secondary: {\r\n main: colors['color-secondary']\r\n },\r\n error: {\r\n main: colors['color-red']\r\n },\r\n warning: {\r\n main: colors['color-yellow']\r\n },\r\n info: {\r\n main: colors['color-blue']\r\n },\r\n success: {\r\n main: colors['color-green']\r\n },\r\n }\r\n});\r\n\r\n\r\nconst theme = ({fontSize, colors, baseTheme}) => createTheme({\r\n typography: {\r\n fontFamily: appConfig['font-family'],\r\n fontSize: fontSize,\r\n cutLines: (num) => ({\r\n textOverflow: 'ellipsis',\r\n display: '-webkit-box',\r\n '-webkit-box-orient': 'vertical',\r\n overflow: 'hidden',\r\n lineClamp: num,\r\n })\r\n },\r\n palette: {\r\n primary: {\r\n ...baseTheme.palette.primary\r\n },\r\n secondary: {\r\n ...baseTheme.palette.secondary\r\n },\r\n error: {\r\n ...baseTheme.palette.error\r\n },\r\n warning: {\r\n ...baseTheme.palette.warning\r\n },\r\n info: {\r\n ...baseTheme.palette.info\r\n },\r\n success: {\r\n ...baseTheme.palette.success\r\n },\r\n\r\n action: {\r\n active: colors['active'],\r\n disabled: colors['disabled'],\r\n disabledBackground: colors['disabled-background']\r\n },\r\n\r\n\r\n common: {\r\n success: colors['color-green'],\r\n warning: colors['color-yellow'],\r\n error: colors['color-red'],\r\n info: colors['color-blue'],\r\n document: colors['document'],\r\n gray: colors['color-gray'],\r\n lightGreen: colors['color-light-green'],\r\n lightRed: colors['color-light-red'],\r\n },\r\n background: {\r\n default: colors['default-background'],\r\n paper: colors['paper-background'],\r\n greyBackground: colors['greyBackground-background'],\r\n appBarBackground: colors['appBar-background'],\r\n },\r\n border: {\r\n onlyContrast: colors?.border?.onlyContrast,\r\n dark: colors.border.dark\r\n },\r\n text: colors['text'],\r\n chips: colors['chips'],\r\n },\r\n shape: {\r\n borderRadius: appConfig['border-radius']\r\n },\r\n mixins: {\r\n toolbar: {\r\n minHeight: 64\r\n }\r\n },\r\n props: {\r\n MuiTooltip: {\r\n placement: 'top'\r\n }\r\n },\r\n overrides: {\r\n MuiAppBar: {\r\n colorDefault: {\r\n backgroundColor: baseTheme.palette.background.appBarBackground,\r\n color: colors.active\r\n },\r\n },\r\n MuiAccordion: {\r\n root: {\r\n border: colors?.border?.onlyContrast ? `1px solid ${colors.border.onlyContrast}` : undefined\r\n }\r\n },\r\n MuiInput: {\r\n underline: {\r\n '&:before': {\r\n borderBottomColor: colors.inputBorder,\r\n }\r\n }\r\n },\r\n MuiListItem: {\r\n root: {\r\n \"&$selected\": {\r\n backgroundColor: baseTheme.palette.secondary.main,\r\n '&:hover': {\r\n backgroundColor: baseTheme.palette.secondary.light\r\n }\r\n }\r\n },\r\n button: {\r\n '&:hover': {\r\n backgroundColor: baseTheme.palette.secondary.light\r\n }\r\n }\r\n },\r\n MuiButton: {\r\n outlinedPrimary: {\r\n borderColor: baseTheme.palette.primary.main\r\n },\r\n containedPrimary: {\r\n color: colors.text.button\r\n },\r\n containedSecondary: {\r\n color: colors.text.button\r\n },\r\n textSecondary: {\r\n color: colors.active\r\n },\r\n outlinedSecondary: {\r\n color: colors.active,\r\n }\r\n },\r\n MuiRadio: {\r\n colorPrimary: {\r\n \"&$checked\": {\r\n color: baseTheme.palette.text.primary\r\n }\r\n }\r\n },\r\n MuiToggleButton: {\r\n root: {\r\n borderColor: baseTheme.palette.primary.main,\r\n color: baseTheme.palette.primary.main + \" !important\",\r\n \"&:hover\": {\r\n backgroundColor: alpha(baseTheme.palette.primary.main, 0.04),\r\n },\r\n \"&$disabled\": {\r\n pointerEvents: \"unset\"\r\n },\r\n \"&$selected\": {\r\n backgroundColor: baseTheme.palette.primary.main,\r\n color: colors.text.button + \" !important\",\r\n cursor: 'default',\r\n \"&:hover\": {\r\n backgroundColor: baseTheme.palette.primary.main,\r\n }\r\n }\r\n }\r\n },\r\n MuiTooltip: {\r\n tooltip: {\r\n fontSize: '.9rem',\r\n\t\t\t\tlineHeight: '1.1rem',\r\n\t\t\t\tmaxWidth: 400\r\n }\r\n },\r\n MuiTableCell: {\r\n head: {\r\n fontWeight: 700\r\n }\r\n },\r\n MuiPaginationItem: {\r\n textPrimary: {\r\n \"&$selected\": {\r\n fontWeight: 700,\r\n color: colors.text.button\r\n }\r\n }\r\n },\r\n MuiPickersModal: {\r\n dialogRoot: {\r\n border: colors?.border?.onlyContrast ? `1px solid ${colors.border.onlyContrast}` : undefined\r\n }\r\n },\r\n MuiInputAdornment: {\r\n positionEnd: {\r\n \"& .MuiIconButton-root\": {\r\n color: baseTheme.palette.primary.main\r\n }\r\n }\r\n },\r\n MuiTreeItem: {\r\n root: {\r\n \"&.Mui-selected > .MuiTreeItem-content\": {\r\n background: baseTheme.palette.primary.main,\r\n color: baseTheme.palette.secondary.contrastText\r\n }\r\n },\r\n content: {\r\n padding: \"8px 0\",\r\n \"&:hover\": {\r\n backgroundColor: baseTheme.palette.primary.main\r\n }\r\n },\r\n label: {\r\n \"&:hover\": {\r\n backgroundColor: \"unset\"\r\n },\r\n paddingRight: \"8px\"\r\n },\r\n iconContainer: {\r\n paddingLeft: \"8px\"\r\n },\r\n\r\n },\r\n MuiChip: {\r\n deleteIcon: {\r\n color: baseTheme.palette.primary.main,\r\n '&:hover': {\r\n color: baseTheme.palette.primary.dark\r\n }\r\n },\r\n outlined: {\r\n border: `1px solid ${baseTheme.palette.primary.main}`\r\n }\r\n }\r\n }\r\n})\r\n\r\nconst enrich = (theme) => ({\r\n ...theme,\r\n components: {\r\n paper: {\r\n padding: theme.spacing(2),\r\n },\r\n navigation: {\r\n width: 300,\r\n item: {\r\n primary: {\r\n backgroundColor: theme.palette.primary.main,\r\n '&:hover': {\r\n backgroundColor: theme.palette.primary.light,\r\n }\r\n }\r\n },\r\n margin: {\r\n left: theme.spacing(7) + 1\r\n },\r\n transitionProp: {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }\r\n },\r\n progressBar: {\r\n buttons: {\r\n width: 180\r\n }\r\n },\r\n transferList: {\r\n row: {\r\n height: 36\r\n }\r\n },\r\n popup: {\r\n criteria: {\r\n width: 800,\r\n },\r\n smallContainer: {\r\n width: 300,\r\n },\r\n buttons: {\r\n width: 120,\r\n }\r\n },\r\n icon: {\r\n fontSize: 100,\r\n },\r\n input: {\r\n search: {\r\n width: 400,\r\n },\r\n criteria: {\r\n width: 50\r\n },\r\n criteriaKey: {\r\n width: 190\r\n }\r\n },\r\n table: {\r\n lpColumn: {\r\n width: 16,\r\n },\r\n dateColumn: {\r\n width: 120,\r\n },\r\n dateTimeColumn: {\r\n width: 140,\r\n },\r\n ipColumn: {\r\n width: 100,\r\n },\r\n emailColumn: {\r\n width: 230,\r\n },\r\n buttonColumn: {\r\n width: 48,\r\n padding: '0 !important'\r\n }\r\n },\r\n stageBar: {\r\n topOffset: 136,\r\n topOffsetExpanded: 282\r\n }\r\n },\r\n transitions: {\r\n ...theme.transitions,\r\n default: {\r\n open: prop => theme.transitions.create(prop, {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n close: prop => theme.transitions.create(prop, {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n }\r\n },\r\n scrollSize: 17\r\n})\r\n\r\nconst applayClientColors = (colors, clientColors) => {\r\n if (clientColors) {\r\n if (clientColors.basicColorLight && clientColors.basicColorLightDarken) {\r\n colors[\"color-primary\"] = \"#\" + clientColors.basicColorLight;\r\n colors[\"color-primary-dark\"] = \"#\" + clientColors.basicColorLightDarken;\r\n\r\n }\r\n if (clientColors.basicColorDark && clientColors.basicColorDarkDarken) {\r\n colors[\"color-secondary\"] = \"#\" + clientColors.basicColorDark;\r\n colors[\"color-secondary-dark\"] = \"#\" + clientColors.basicColorDarkDarken;\r\n }\r\n }\r\n return colors;\r\n}\r\n\r\nconst enrichTheme = (isContrast, isLargeText, clientColors) => {\r\n const fontSize = isLargeText ? appConfig['large-font-size'] : undefined;\r\n const colors = isContrast ? appConfig.colors['contrast'] : applayClientColors(appConfig.colors['main'], clientColors);\r\n\r\n const baseThemeRes = baseTheme(colors);\r\n\r\n const overrideTheme = theme({fontSize, colors, baseTheme: baseThemeRes});\r\n const finalTheme = enrich(overrideTheme)\r\n\r\n if (process.env.NODE_ENV === 'development') {\r\n }\r\n return finalTheme;\r\n}\r\n\r\nfunction ThemeProvider(\r\n {\r\n children,\r\n contrast,\r\n largeText,\r\n clientColors\r\n }) {\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n contrast: state.store.contrast,\r\n largeText: state.store.largeText,\r\n clientColors: state.store.clientColors\r\n}), {})(ThemeProvider);","import React from 'react';\r\nimport {Provider} from 'react-redux'\r\nimport store from './redux/store'\r\nimport {BrowserRouter} from 'react-router-dom';\r\nimport {MuiPickersUtilsProvider} from '@material-ui/pickers';\r\nimport MomentUtils from '@date-io/moment';\r\nimport './styles/index.scss'\r\nimport Root from 'pages/Root';\r\nimport ThemeProvider from 'theme/ThemeProvider';\r\nimport moment from 'moment';\r\nimport 'moment/locale/pl'\r\n// import { hotjar } from 'react-hotjar';\r\n// import Endpoints from 'constants/Endpoints'\r\n\r\nfunction App() {\r\n moment.locale('pl')\r\n //hotjar.initialize(Endpoints.hotJarSettings.hjid, Endpoints.hotJarSettings.hjsv);\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\nexport default App;\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 https://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 console.info(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://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 console.info(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://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 console.info('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 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 console.error(\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\n\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(, document.getElementById('root'));\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: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}