{"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","constants/DateFormats.js","components/icon/TooltipIcon.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","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/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/AddNoticeReferenceNumberPopup.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/isPreviewDemandPublicFormButtonActive.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","libs/isPreviewNoticeButtonActive.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_DOWNLOAD_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_NOTICE_REFERENCE_NUMBER","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_VERIFY_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_REFERENCE_NUMBER","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","customDeleteIcon","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","pointer","TooltipIcon","fontSize","tooltipClasses","iconClasses","otherProps","blackChipIcon","FilesList","customAction","onDownload","showDownloadDate","inaccessible","firstDownloadDate","DraftsOutlined","MailOutline","DateFormats","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","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","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","updateNoticeReferenceNumber","noticeReferenceNumber","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_PUBLIC_SESSION_ONLINE_STATUS","_doAdditionalRoundsOffers","additionalOffers","res2","emailsTab","emails","envelope","envelopeId","OfferStatusLabel","OfferEncryptionStatuses","OfferEncryptionStatusLabel","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","CORRESPONDENCE_DOWNLOAD_ATTACHMENT_REGISTRATION_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","attachmentDownloadRegistrationStartDate","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","verifyAttachments","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","onEditNoticeReferenceNumber","currentDemandValidation","expand","enterNoticeReferenceNumber","hasVersions","checkRealizationAmountValue","createEditNoticeReferenceNumberFile","editNoticeReferenceNumberFile","openConfirmDeleteAll","setOpenConfirmDeleteAll","setEditNoticeReferenceNumberFile","openDownloadHistory","parentRowIdentity","openEditNoticeReferenceNumber","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","getOffers","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","getOffersDecryptionStatus","getOffersDecryptionProgress","startOffersDecryptionProcess","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","canDownloadFile","doPublishChange","OffersChoiceResultService","datePublished","unpublishFile","publishFile","deleteFile","OfferChoiceResultFilesTable","fileToDelete","fileToUpdate","OfferChoiceResultFiles","filesWorking","setFilesWorking","WorkableIconPrintButton","WorkableIconCalendarButton","EventIcon","openFilesCell","OfferChoiceResultRow","canDownloadPaper","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","onEditNoticeReferenceNumberFile","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","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","isPreviewDemandPublicFormActive","isOjsProcessing","uncompletedSections","isBzpPublishActive","isBzpProcessing","isPreparing","isModification","competitivenessBaseLink","focus","isNoticeAvailable","bzpNotice","isBzpNoticeAvailable","previewDemandPublicFormDisabled","PP_REQUIRED_GROUPS","MO_REQUIRED_GROUPS","MMiA_REQUIRED_GROUPS","ezWorking","setEzWorking","noticeStatusInterval","setNoticeStatusInterval","compareSection","hasBzpNotice","startNoticeStatusInterval","isPublishButtonActive","isCancelModificationButtonActive","isPreviewButtonActive","isPreviewNoticeButtonActive","isPreviewDemandPublicFormButtonActive","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","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","deliveryDate","recipientsRoot","downloadAttachmentRegistrationDate","hasEdit","emailDeliveryRecipient","setEmailDeliveryRecipient","verificationWorking","setVerificationWorking","buyerAsContractorUser","showVerifyLimitUsedAlert","setShowVerifyLimitUsedAlert","showAttachmentDownloadInfo","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.1604d8e5.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\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 {buttonLabel}\r\n
\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_DOWNLOAD_PREVIEW: (id) => NOTICE(id) + '/printPreview', //print instead of download\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_NOTICE_REFERENCE_NUMBER: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/updateNoticeNumber`,\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_VERIFY_ATTACHMENTS: (roundId) => `${RFX_OFFERS_BASE(roundId)}/verifyAttachments`,\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_REFERENCE_NUMBER: (demandId, resultNoticeId, resultNoticeAttachmentId) => `${RESULT_NOTICE_ATTACHMENT_ID(demandId, resultNoticeId, resultNoticeAttachmentId)}/noticeReferenceNumber`,\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, method) => {\r\n\tconst res = await _restRequest({\r\n\t\turl,\r\n\t\tmethod: !!method ? method : '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\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\t\t\r\n\t\t\t\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\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","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\t\t{Tr('cancel')}\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\t\t{Tr('help_center')}\r\n\t\t\t\r\n\t\t\t\t{dialogButtons.map(({ label, action, disabled }, i) => (\r\n\t\t\t\t\t handleClickButton(action)}\r\n\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{label}\r\n\t\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\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\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 {Tr(goSoStatus ? 'redirectToOldVersionStatus' : 'redirectToOldVersion')}\r\n \r\n \r\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\t\t\r\n\t\t\t\t{Tr('ie_info')}\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t{Tr('understand')}\r\n\t\t\t\t\r\n\t\t\t
\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 {children(formikProps)}\r\n {submitLabel &&\r\n \r\n }\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 {label}\r\n { !!subLabel &&\r\n {subLabel}\r\n }\r\n \r\n\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 e.stopPropagation() : onClick}\r\n {...props}>\r\n {children}\r\n {working && }\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 {(formikProps) => (\r\n \r\n \r\n {Boolean(cpvList) ?\r\n \r\n :\r\n }\r\n \r\n \r\n \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\t\t\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\tcustomDeleteIcon,\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={!!customDeleteIcon && !onDelete ? (() => {}) : 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\t\t\t\t\t{Tr('select')}\r\n\t\t\t\t}\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 previewDemandPublicFormDisabled = () => {\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 {(formikProps) => (\r\n <>\r\n \r\n \r\n\r\n
\r\n {\r\n (items.length > 0) ? \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\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\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 {Tr('select')}\r\n }\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 {label}\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 {!!filesStatus.current && filesStatus.current.map(({loaded, total, name, uploadStatus}, i) => {\r\n return (\r\n \r\n \r\n \r\n {name}\r\n \r\n \r\n {errorTranslate[uploadStatus]}\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n })}\r\n\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);","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 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 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\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport {DraftsOutlined, MailOutline} from '@material-ui/icons';\r\nimport TooltipIcon from \"./icon/TooltipIcon\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport clsx from 'clsx';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n blackChipIcon: {\r\n '& svg': {\r\n color: theme.palette.text.primary\r\n }\r\n }\r\n}));\r\n\r\nfunction FilesList(\r\n {\r\n elements = [],\r\n onDelete,\r\n customAction,\r\n onDownload,\r\n showDownloadDate = false\r\n }) {\r\n\r\n const classes = useStyles();\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 customDeleteIcon={!!showDownloadDate ?\r\n \r\n : undefined\r\n }\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 {Tr(\"int_explorer_dialog_title_x\", {x: \"sharepoint\"}, true)}\r\n\r\n }\r\n titleCentered\r\n maxWidth=\"md\"\r\n onClose={onClose}\r\n contentClassName={classes.dialogContent}\r\n dialogActions={\r\n <>\r\n {`${Tr('documents_selected')}: ${selectedFileMap.size}`} }\r\n />\r\n \r\n }\r\n >\r\n\r\n {working && }\r\n {!!filesAndFolders && <>\r\n \r\n {Tr('you_are_here')}:\r\n } maxItems={3}>\r\n\r\n {\r\n folders.map((elem, index, arr) => {\r\n if (index !== arr.length - 1) {\r\n return \r\n {index === 0 ? Tr('documents') : elem}\r\n \r\n } else {\r\n return {index === 0 ? Tr('documents') : elem}\r\n }\r\n })\r\n }\r\n \r\n \r\n\r\n \r\n {\r\n folders.length > 1 && handleClick(folders.slice(0, folders.length - 1).join(\"/\"))}>\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n\r\n {\r\n filesAndFolders.folders.map(x => ( handleClick(x.serverRelativeUrl)}>\r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n {\r\n filesAndFolders.files.map(x => ( toggleSelectFile(x)}>\r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n {\r\n filesAndFolders.files.length === 0 && filesAndFolders.folders.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}\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\n \r\n {files.map(x => (\r\n \r\n {getIcon(x)}\r\n \r\n \r\n ))\r\n }\r\n \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 {Tr(\"int_explorer_dialog_title_x\", {x: \"ezdrp\"}, true)}\r\n }\r\n titleCentered\r\n maxWidth=\"md\"\r\n onClose={onClose}\r\n contentClassName={classes.dialogContent}\r\n dialogActions={\r\n <>\r\n {`${Tr('documents_selected')}: ${selectedFileMap.size}`} }\r\n />\r\n \r\n }\r\n >\r\n\r\n {working && }\r\n {!!filesAndFolders && <>\r\n \r\n }\r\n\r\n\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\n \r\n {files.map(x => (\r\n \r\n {getIcon(x)}\r\n \r\n \r\n ))\r\n }\r\n \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\n {files.map(x => (\r\n \r\n {getIcon(x)}\r\n \r\n \r\n ))\r\n }\r\n \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 {Tr(\"int_explorer_dialog_title_x\", {x: \"ezdpuw\"}, true)}\r\n }\r\n titleCentered\r\n maxWidth=\"md\"\r\n onClose={onClose}\r\n contentClassName={classes.dialogContent}\r\n dialogActions={\r\n <>\r\n {`${Tr('documents_selected')}: ${selectedFileMap.size}`} }\r\n />\r\n \r\n }\r\n >\r\n\r\n {working && }\r\n {!!filesAndFolders && <>\r\n \r\n }\r\n\r\n\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 && setSharepointExplorerOpen(true)}\r\n disabled={disabled || working || !sharepoint.connected}\r\n tooltip={!sharepoint.connected ? Tr(\"int_demand_not_connected_x\", {x: \"sharepoint\"}, true) : undefined}\r\n >{Tr(\"int_download_from_x\", {x: \"sharepoint\"}, true)}\r\n }\r\n {\r\n !!ezdrp.active && setEzdrpExplorerOpen(true)}\r\n disabled={disabled || working || !ezdrp.connected}\r\n tooltip={!ezdrp.connected ? Tr(\"int_demand_not_connected_x\", {x: \"ezdrp\"}, true) : undefined}\r\n >{Tr(\"int_download_from_x\", {x: \"ezdrp\"}, true)}\r\n }\r\n {\r\n !!ezdpuw.active && setEzdpuwExplorerOpen(true)}\r\n disabled={disabled || working || !ezdpuw.connected}\r\n tooltip={!ezdpuw.connected ? Tr(\"int_demand_not_connected_x\", {x: \"ezdpuw\"}, true) : undefined}\r\n >{Tr(\"int_download_from_x\", {x: \"ezdpuw\"}, true)}\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) && createSelectItem(x, DemandCategoryTypeLabel(x)))}\r\n required\r\n disabled={!creatingDemand}\r\n />\r\n }\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 &&\r\n \r\n }\r\n {withNotice &&\r\n ({value: x.key, label: x.value}))}\r\n required\r\n disabled={!creatingDemand}\r\n />\r\n }\r\n {nonpublicProcedure &&\r\n \r\n }\r\n \r\n \r\n {!passiveOfferForm &&\r\n \r\n \r\n \r\n }\r\n {europeProcedure &&\r\n \r\n \r\n \r\n }\r\n {!passiveOfferForm &&\r\n \r\n }\r\n {!passiveOfferForm &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n {!nonpublicProcedure &&\r\n \r\n \r\n }\r\n \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);","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\t\t{label}\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 setCheckError(true);\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(data.identity);\r\n }\r\n }}\r\n >\r\n {(formikProps) => {\r\n const passiveOfferForm = getObjectValue('passiveOfferForm', formikProps.values, false);\r\n const procedureType = getObjectValue('procedureType', formikProps.values, \"\");\r\n const nonpublicProcedure = isNonpublicProcedure(procedureType);\r\n const _editable = getObjectValue('_editable', formikProps.values, true);\r\n return (\r\n \r\n \r\n \r\n {autoSaveFormDraftActive &&\r\n {\r\n DemandService.saveDraft(getField('identity'), formValues)\r\n }}\r\n />\r\n }\r\n \r\n\r\n \r\n {`${Tr('contact_data')} (${Tr('optional')})`}\r\n \r\n\r\n \r\n\r\n {!passiveOfferForm && !nonpublicProcedure &&\r\n \r\n {`${Tr('additional_data')} (${Tr('optional')})`}\r\n \r\n \r\n }\r\n\r\n {!passiveOfferForm && !nonpublicProcedure &&\r\n \r\n \r\n \r\n }\r\n\r\n {!passiveOfferForm && !nonpublicProcedure &&\r\n \r\n }\r\n\r\n \r\n )\r\n }}\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 setCheckError(true);\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(data.identity);\r\n }\r\n }}\r\n >\r\n {(formikProps) => {\r\n return (\r\n \r\n \r\n \r\n {autoSaveFormDraftActive &&\r\n {\r\n DemandService.saveDraftExPost(getField('identity'), formValues)\r\n }}\r\n />\r\n }\r\n \r\n\r\n \r\n )\r\n }}\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 {!historyTab ?\r\n \r\n :\r\n \r\n \r\n {createTab()}\r\n \r\n \r\n }\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 {Tr('prepare_offer_form')}\r\n \r\n \r\n {Tr('prepare_offer_form_description')}\r\n \r\n \r\n\r\n \r\n \r\n {Tr('import_form_more_than')}\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\t\t{children}\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 0}\r\n titleCentered\r\n maxWidth={'md'}\r\n fullWidth={true}\r\n onClose={clearImportErrors}\r\n >\r\n \r\n {Tr('import_upload_dialog_error')}\r\n \r\n
\r\n [(index + 1), e])}\r\n />\r\n\r\n
\r\n \r\n {Tr('close')}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {Tr('import_upload_dialog_success_line1')}\r\n \r\n \r\n {Tr('import_upload_dialog_success_line2')}\r\n \r\n
\r\n \r\n {Tr('close')}\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 {(formikProps) => (\r\n <>\r\n \r\n \r\n \r\n \r\n {option && }\r\n {!option && }\r\n {!option && getObjectValue('offerVatPredefined', formikProps.values, false) &&\r\n \r\n }\r\n {!option && }\r\n {!option && getObjectValue('offerSourceType', formikProps.values, SOURCE_TYPES.SUPPLIER) === SOURCE_TYPES.INITIATOR &&\r\n \r\n }\r\n {!option && }\r\n {weightVisible && }\r\n \r\n )}\r\n \r\n
\r\n {editable && }\r\n
\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\t\t{(formikProps) => (\r\n\t\t\t\t<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t{formikProps.values.type === CONDITION_TYPE_OTHER &&\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\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{elementList.length > 1 &&\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\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 {showParts && }\r\n
\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 {elementList == null && }\r\n\r\n {elementList !== null &&\r\n <>\r\n \r\n {(formikProps) => (\r\n <>\r\n\r\n {elementList.length >= 1 &&\r\n <>\r\n \r\n \r\n }\r\n \r\n )}\r\n \r\n \r\n }\r\n \r\n );\r\n};\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 {(formikProps) => {\r\n return ()\r\n }}\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 {showParts && setAddCheckbox(!addCheckbox)}\r\n checked={addCheckbox}\r\n disabled={true}\r\n />}\r\n label={Tr('add_to_my_criterion')}\r\n />\r\n }\r\n />}\r\n
\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\t\t{(formikProps) => (\r\n\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\r\n\t\t\t\t\t{getObjectValue('uiType', formikProps.values, false) === POSITION_TYPE.YES_NO &&\r\n\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\t\r\n\t\t\t\t\t*/}\r\n\t\t\t\t\t{elementList.length > 1 &&\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\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\t\t{(formikProps) => (\r\n\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\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{elementList.length > 1 &&\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\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 setAfterSave(true);\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(match.params.id);\r\n }\r\n }}\r\n >\r\n {(_formikProps) => {\r\n const formikProps = {\r\n ..._formikProps,\r\n setValues: (values, validate) => {\r\n handleChange();\r\n return _formikProps.setValues(values, validate)\r\n },\r\n setFieldValue: (field, value, validate) => {\r\n handleChange();\r\n return _formikProps.setFieldValue(field, value, validate)\r\n },\r\n handleChange: (e) => {\r\n handleChange();\r\n return _formikProps.handleChange(e);\r\n }\r\n }\r\n return (\r\n <>\r\n\r\n \r\n {\r\n setFormikValuesTouched(formikProps)\r\n setAfterSave(false)\r\n }}\r\n shouldExecute={afterSave === true}\r\n />\r\n \r\n {autoSaveFormDraftActive &&\r\n {\r\n DealingsService.saveDraft(id, formValues)\r\n }}\r\n customDirtyRef={realDirty}\r\n />\r\n }\r\n \r\n {(formikProps, id, index) => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n }}\r\n \r\n\r\n \r\n\r\n \r\n )\r\n }}\r\n \r\n {\r\n 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 {Tr('dealings_import_form')}\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 {(working || !list) && }\r\n {(!!list && list.length > 0) && \r\n {list.map((supplier) =>\r\n rowClick(supplier)}>\r\n \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 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 updateNoticeReferenceNumber = async (demandId, {identity, source, rootIdentity}, noticeReferenceNumber) => {\r\n const resp = await RestRequestPUT(Endpoints.SIWZ_ID_UPDATE_NOTICE_REFERENCE_NUMBER(demandId, identity, source), {noticeReferenceNumber});\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 updateNoticeReferenceNumber,\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 && <HelpTooltip text={\r\n new DOMParser().parseFromString(section.helpMessage, \"text/html\").documentElement.textContent}/>}\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 !sections ?\r\n :\r\n <>\r\n \r\n {(formikProps) => (\r\n sections.result.map(x => (\r\n ))\r\n )}\r\n \r\n\r\n \r\n }\r\n
\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\t\t{children}\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 && setShowTheSame(true)}\r\n >\r\n {Tr('no_changes_fields_show')}\r\n }\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 !selectedElemLoaded ? :\r\n \r\n\r\n }\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 {(formikProps) => (\r\n <>\r\n {\r\n (!disabled && groupId > 0) && \r\n setHistory(true)}>\r\n {Tr('change_history')}\r\n \r\n \r\n }\r\n\r\n \r\n \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\t\t\t\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\t\t\t\tconst validateObj = {\r\n\t\t\t\t\t\tfirstName: VS.string(),\r\n\t\t\t\t\t\tlastName: VS.string()\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet email\r\n\t\t\t\t\tconst found = Boolean(userList.find(element => element.email === value.email))\r\n\t\t\t\t\tif (found) email = VS.immediatelyError(Tr(\"email_exist\"))\r\n\t\t\t\t\telse email = VS.email(limits.EMAIL)\r\n\r\n\t\t\t\t\treturn Yup.object().shape({\r\n\t\t\t\t\t\t...validateObj,\r\n\t\t\t\t\t\temail\r\n\t\t\t\t\t})\r\n\t\t\t\t})}\r\n\t\t\tonSubmit={onSubmit}\r\n\t\t\tid={formId}\r\n\t\t>\r\n\t\t\t{(formikProps) => (\r\n\t\t\t\t\r\n\t\t\t\t\t{working && }\r\n\t\t\t\t\t{!!error && {error}}\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\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\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\t\t\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 setAddPopup(true)}\r\n Icon={AddIcon}\r\n className={classes.button}\r\n disabled={!editable}\r\n >\r\n {Tr('add_commission_candidate')}\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 {(formikProps) => (\r\n <>\r\n \r\n\r\n {!!saveDraftFunc && !!autoSaveFormDraftActive &&\r\n {\r\n saveDraftFunc(demandId, formValues)\r\n }}\r\n />\r\n }\r\n\r\n \r\n \r\n )}\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 const shape = {}\r\n if (schedule.joiningStartDateEditable) {\r\n shape.joiningStartDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'))\r\n }\r\n if (schedule.joiningEndDateEditable) {\r\n const joiningStartDate = form.joiningStartDate ? form.joiningStartDate.clone() : moment();\r\n joiningStartDate.add(1, \"minute\")\r\n shape.joiningEndDate = VS.dateTimeMin(joiningStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n }\r\n\r\n if (schedule.opinionStartDateEditable) {\r\n if (schedule.joiningEndDateEditable) {\r\n shape.opinionStartDate = VS.dateTimeMinNoRq(new Date(), Tr('v_time_can_not_be_past'))\r\n } else {\r\n shape.opinionStartDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'))\r\n }\r\n }\r\n if (schedule.opinionEndDateEditable) {\r\n const opinionStartDate = form.opinionStartDate ? form.opinionStartDate.clone() : moment();\r\n opinionStartDate.add(1, \"minute\")\r\n\r\n if (schedule.joiningEndDateEditable && !form.opinionStartDate) {\r\n shape.opinionEndDate = VS.dateTimeMinNoRq(opinionStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n } else {\r\n shape.opinionEndDate = VS.dateTimeMin(opinionStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n }\r\n }\r\n\r\n if (schedule.submissionStartDateEditable) {\r\n if (schedule.opinionEndDateEditable) {\r\n shape.submissionStartDate = VS.dateTimeMinNoRq(new Date(), Tr('v_time_can_not_be_past'))\r\n } else {\r\n shape.submissionStartDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'))\r\n }\r\n }\r\n if (schedule.submissionEndDateEditable) {\r\n const submissionStartDate = form.submissionStartDate ? form.submissionStartDate.clone() : moment();\r\n submissionStartDate.add(1, \"minute\")\r\n\r\n if (schedule.opinionEndDateEditable && !form.submissionStartDate) {\r\n shape.submissionEndDate = VS.dateTimeMinNoRq(submissionStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n } else {\r\n shape.submissionEndDate = VS.dateTimeMin(submissionStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n }\r\n }\r\n\r\n return VS.object(shape)\r\n })}\r\n onSubmit={handleSubmit}\r\n >\r\n {(formikProps) => (\r\n <>\r\n \r\n \r\n {/*{JSON.stringify(schedule)}*/}\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 {(formikProps) => (\r\n \r\n )}\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 {(formikProps) => (\r\n \r\n\r\n \r\n {name}\r\n \r\n\r\n {\r\n disabled ?\r\n \r\n {getObjectValue('description', formikProps.values, 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\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 {(formikProps) => (\r\n <>\r\n \r\n {generateItems(formikProps)}\r\n \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 !membersList ? :\r\n {\r\n prev[cur.identity] = false;\r\n return prev;\r\n }, {}),\r\n }}\r\n validationSchema={\r\n VS.object({\r\n users: VS.any().test('partSelected', Tr('choose_at_least_one'), (e) => {\r\n const selected = Object.keys(e).filter(x => e[x] === true).length;\r\n return selected > 0;\r\n })\r\n })\r\n }\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n membersList.length === 0 ?\r\n {Tr('purchasing_group_users_add_no_users')}\r\n :\r\n )}\r\n \r\n }\r\n\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 !membersList ? :\r\n {\r\n prev[cur.identity] = false;\r\n return prev;\r\n }, {}),\r\n }}\r\n validationSchema={\r\n VS.object({\r\n concerns: VS.any().test('partSelected', Tr('choose_at_least_one'), (e) => {\r\n const selected = Object.keys(e).filter(x => e[x] === true).length;\r\n return selected > 0;\r\n })\r\n })\r\n }\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n membersList.length === 0 ?\r\n {Tr('purchase_group_member_add_no_concerns')}\r\n :\r\n )}\r\n \r\n }\r\n\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\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 {(formikProps) => (\r\n \r\n {working && }\r\n\r\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 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\n \r\n {(formikProps) => (<>\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\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 confirmComplex({\r\n onConfirm: () => finishPreparingState(),\r\n confirmText: Tr('purchasing_group_finish_preparing_confirm1'),\r\n confirmText2: Tr('purchasing_group_finish_preparing_confirm2'),\r\n translateConfirmTexts: false\r\n })}\r\n >\r\n {Tr('purchasing_group_finish_preparing_action')}\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 const shape = {}\r\n if (schedule.swzOpinionStartDateEditable) {\r\n if (!form.swzOpinionEndDate)\r\n shape.swzOpinionStartDate = VS.dateTimeMinNoRq(new Date(), Tr('v_time_can_not_be_past'))\r\n else\r\n shape.swzOpinionStartDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'))\r\n }\r\n if (schedule.swzOpinionEndDateEditable) {\r\n const swzOpinionStartDate = form.swzOpinionStartDate ? form.swzOpinionStartDate.clone() : moment();\r\n swzOpinionStartDate.add(1, \"minute\")\r\n\r\n if (!form.swzOpinionStartDate)\r\n shape.swzOpinionEndDate = VS.dateTimeMinNoRq(swzOpinionStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n else\r\n shape.swzOpinionEndDate = VS.dateTimeMin(swzOpinionStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n }\r\n\r\n if (schedule.collectingDataStartDateEditable) {\r\n if(!form.collectingDataEndDate)\r\n shape.collectingDataStartDate = VS.dateTimeMinNoRq(new Date(), Tr('v_time_can_not_be_past'))\r\n else\r\n shape.collectingDataStartDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'))\r\n }\r\n if (schedule.collectingDataEndDateEditable) {\r\n const collectingDataStartDate = form.collectingDataStartDate ? form.collectingDataStartDate.clone() : moment();\r\n collectingDataStartDate.add(1, \"minute\")\r\n\r\n if (!form.collectingDataStartDate) {\r\n shape.collectingDataEndDate = VS.dateTimeMinNoRq(collectingDataStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n } else {\r\n shape.collectingDataEndDate = VS.dateTimeMin(collectingDataStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n }\r\n }\r\n\r\n return VS.object(shape)\r\n })}\r\n onSubmit={handleSubmit}\r\n >\r\n {(formikProps) => (\r\n <>\r\n \r\n \r\n {/*{JSON.stringify(schedule)}*/}\r\n )}\r\n \r\n
\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 field.type === PurchasingGroupTemplateFieldType.DATE ? {\r\n ...field,\r\n textValue: !field.textValue ? null : moment(field.textValue)\r\n } : field)\r\n }}\r\n validationSchema={validationSchema(draftMode.current)}\r\n onSubmit={(values) => onSubmit(draftMode.current ? \"draft\" : \"save\", values)}>\r\n {(formikProps) => (<>\r\n \r\n {\r\n (formWrapper.hasAskedForEdit && !formWrapper.editable) && {Tr(\"purchase_groups_form_ask_edit\")}\r\n }\r\n \r\n {newForm ? Nowy formularz :
}\r\n
\r\n {\r\n !newForm && setHistoryPopup(true)}>\r\n {Tr('change_history')}\r\n \r\n }\r\n\r\n {\r\n formWrapper.canAskForEdit && \r\n }\r\n\r\n {\r\n (purchasingGroupHeader.userRole === PurchasingGroupRole.ADMIN && formWrapper.form.state === PurchasingGroupTemplateFormState.ASK_FOR_EDIT) && <>\r\n \r\n \r\n \r\n }\r\n\r\n {\r\n formEditable &&\r\n \r\n }\r\n {\r\n !coordinatorView && editable && formWrapper.form.state === PurchasingGroupTemplateFormState.SENT && <>\r\n \r\n \r\n \r\n }\r\n\r\n {(coordinatorView && formEditable && formWrapper.form.state !== PurchasingGroupTemplateFormState.EDIT) && \r\n }\r\n {(coordinatorView && formEditable) && formWrapper.hasDraftSaved &&\r\n \r\n }\r\n {formEditable &&\r\n }\r\n
\r\n
\r\n\r\n\r\n\r\n {\r\n formEditable ?\r\n : getReadonlyNameField()\r\n }\r\n\r\n\r\n {\r\n formWrapper.form.fieldValues.map((field, i) =>\r\n x.identity === field.identity) : undefined}\r\n classes={classes}\r\n />)\r\n }\r\n\r\n )}\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 {working ? : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {buttons.map((button, index) => (\r\n handleClick(event, index)}\r\n >\r\n {button.label}\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 sendDealingsChangedNotification()}\r\n >\r\n {Tr('purchase_group_finish_dealings_changed_notification_send')}\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 !initData ?\r\n :\r\n <>\r\n \r\n {(formikProps) => (<>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n )}\r\n \r\n\r\n \r\n }\r\n
\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 !initData ?\r\n :\r\n <>\r\n {\r\n prev[\"_\" + cur.id] = initData.document.memberIds && initData.document.memberIds.includes(cur.id);\r\n return prev;\r\n }, {}),\r\n }}\r\n validationSchema={VS.object({\r\n memberIds: VS.any(),\r\n documentNumber: VS.stringMaxNoRq(50),\r\n projectName: VS.stringMaxNoRq(200),\r\n resolutionDate: VS.dateTimeNoReq(),\r\n documentDeadline: VS.dateTimeNoReq(),\r\n })}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (<>\r\n \r\n\r\n \r\n\r\n \r\n
\r\n \r\n\r\n ({identity: \"_\" + x.id, name: x.name}))}\r\n disabled={working}\r\n required={false}\r\n />\r\n \r\n\r\n )}\r\n \r\n\r\n \r\n }\r\n
\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 !initData ?\r\n :\r\n <>\r\n \r\n {(formikProps) => (<>\r\n \r\n\r\n \r\n\r\n \r\n
\r\n \r\n \r\n\r\n )}\r\n \r\n\r\n \r\n }\r\n
\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 !initData ?\r\n :\r\n <>\r\n \r\n {(formikProps) => (<>\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n }\r\n
\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
  1. \r\n \r\n {Tr(\"xmp_uzp_paper_step1\")}\r\n {Tr(\"download\") + \" XML\"}\r\n \r\n
  2. \r\n
  3. \r\n \r\n {Tr(\"xmp_uzp_paper_step2\")}\r\n \r\n \r\n
  4. \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 {data.name}\r\n
\r\n \r\n {\r\n activeShareSystems.map(x =>\r\n )\r\n }\r\n \r\n )\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 {(formikProps) => (\r\n )}\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 = totalCount)}\r\n >\r\n {label}\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\n\r\nconst verifyOffersAttachments = async (roundId, finallyCallback = () => {\r\n}) => {\r\n try {\r\n RestRequestBLOB(Endpoints.RFX_OFFERS_VERIFY_ATTACHMENTS(roundId), undefined, 'post')\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 verifyOffersAttachments,\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 {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\nconst CORRESPONDENCE_DOWNLOAD_ATTACHMENT_REGISTRATION_DATE_RESOURCE_ID = CORRESPONDENCE_RES_PREFIX + \"DownloadAttachmentRegistrationDate\";\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 reduxStore.dispatch(clearResource(CORRESPONDENCE_DOWNLOAD_ATTACHMENT_REGISTRATION_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 reduxStore.dispatch(setResource(CORRESPONDENCE_DOWNLOAD_ATTACHMENT_REGISTRATION_DATE_RESOURCE_ID, threadList.attachmentDownloadRegistrationStartDate))\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 reduxStore.dispatch(setResource(CORRESPONDENCE_DOWNLOAD_ATTACHMENT_REGISTRATION_DATE_RESOURCE_ID, threadList.attachmentDownloadRegistrationStartDate));\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 reduxStore.dispatch(setResource(CORRESPONDENCE_DOWNLOAD_ATTACHMENT_REGISTRATION_DATE_RESOURCE_ID, threadList.attachmentDownloadRegistrationStartDate))\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 CORRESPONDENCE_DOWNLOAD_ATTACHMENT_REGISTRATION_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 {(formikProps) => (\r\n <>\r\n \r\n {generateItems(formikProps)}\r\n \r\n\r\n\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 {(formikProps) => (\r\n \r\n\r\n \r\n {file.file.name}\r\n \r\n\r\n \r\n\r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\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 {(formikProps) => (<>\r\n {\r\n (purchaserOfferContext && mode === OfferMode.PLACED) &&\r\n \r\n }\r\n \r\n \r\n \r\n {Tr(\"name\")}\r\n {Tr(\"add_data\")}\r\n {Tr(\"contains_rodo\")}\r\n {Tr(\"type\")}\r\n {Tr(\"size\")}\r\n {!realOnePositionMode && {Tr(\"assignment\")}}\r\n {(!purchaserOfferContext && (!!contextSection.digitalSign || offerEdit.passiveOfferForm)) &&\r\n {Tr(\"file_sign_status\")}}\r\n \r\n {mode === OfferMode.PLACED && roundType !== RoundType.AUCTION && purchaserOfferContext?.supplierId\r\n && offerEdit.offerFiles.some(doc => !doc.inaccessible) && }\r\n \r\n {!disabled && (!purchaserOfferContext || mode === OfferMode.EDIT) && }\r\n {!disabled && (!purchaserOfferContext || mode === OfferMode.EDIT) && }\r\n \r\n \r\n \r\n {\r\n offerEdit.offerFiles.map((doc, index) => (\r\n ))\r\n }\r\n \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 {label}\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 {(formikProps) => (\r\n <>\r\n \r\n {generateItems(formikProps)}\r\n \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 {(formikProps) => (<>\r\n {\r\n (purchaserOfferContext && mode === OfferMode.PLACED && roundType === RoundType.BASE) &&\r\n \r\n }\r\n\r\n \r\n \r\n \r\n {Tr(\"name\")}\r\n {Tr(\"add_data\")}\r\n {Tr(\"contains_rodo\")}\r\n {Tr(\"type\")}\r\n {Tr(\"size\")}\r\n {offerEdit.espdOnPositions && {Tr(\"assignment\")}}\r\n {(!purchaserOfferContext && (!!contextSection.digitalSign || offerEdit.passiveOfferForm)) &&\r\n {Tr(\"file_sign_status\")}}\r\n \r\n {!(disabled || mode === OfferMode.PLACED) && (!purchaserOfferContext || mode === OfferMode.EDIT) && }\r\n {!(disabled || mode === OfferMode.PLACED) && }\r\n \r\n \r\n \r\n {\r\n offerEdit.espdFiles.map((doc, index) => (\r\n ))\r\n }\r\n \r\n
\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 const initValues = {\r\n name: getObjectValue('name', defaultValues, ''),\r\n email: getObjectValue('email', defaultValues, ''),\r\n vatin: {\r\n number: getObjectValue('vatin.number', defaultValues, ''),\r\n prefix: getObjectValue('vatin.prefix', defaultValues, 'PL'),\r\n }\r\n };\r\n\r\n if (collectPostCode)\r\n initValues.postCode = getObjectValue('postCode', defaultValues, '');\r\n\r\n if (collectAddress)\r\n initValues.address = getObjectValue('address', defaultValues, '');\r\n\r\n if (collectCity)\r\n initValues.city = getObjectValue('city', defaultValues, '');\r\n\r\n if (collectRegon)\r\n initValues.regon = getObjectValue('regon', defaultValues, '');\r\n\r\n if (collectCompanySize)\r\n initValues.companySize = getObjectValue('companySize', defaultValues, '');\r\n\r\n if(collectIdentity)\r\n initValues.identity = getObjectValue('identity', defaultValues, '');\r\n\r\n return initValues;\r\n })()}\r\n validationSchema={Yup.lazy((value) => {\r\n let errorList = {}\r\n let nipAndPostCodeError = {}\r\n const numberLength = value.vatin?.number ? value.vatin.number.length : 0;\r\n if (contractorList?.items) {\r\n contractorList.items.forEach(item => {\r\n Object.keys(value).forEach(valueKey => {\r\n if ((!collectIdentity || value.identity !== item.contractor.identity) && valueKey === 'vatin' && typeof value[valueKey] === 'object') {\r\n Object.keys(value[valueKey]).forEach(innerItem => {\r\n if (innerItem === \"number\" &&\r\n value[valueKey][innerItem] === item.contractor[valueKey][innerItem].replace(/\\s+/gm, '')) {\r\n if (numberLength === 11) errorList[valueKey] = valueKey\r\n else nipAndPostCodeError[valueKey] = valueKey\r\n }\r\n })\r\n }\r\n if (translationsMap[valueKey] && value[valueKey] === item.contractor[valueKey]\r\n && (!collectIdentity || value.identity !== item.contractor.identity)) {\r\n\r\n if (valueKey === \"postCode\") nipAndPostCodeError[valueKey] = valueKey\r\n else errorList[valueKey] = valueKey\r\n }\r\n });\r\n });\r\n }\r\n\r\n const validateObj = {\r\n name: validation.stringMax(limits.NAME),\r\n email: validation.emailMax(limits.EMAIL)\r\n };\r\n\r\n if (collectAddress)\r\n validateObj.address = addressRequired ? validation.stringMax(limits.ADDRESS) : validation.stringMaxNoRq(limits.ADDRESS);\r\n\r\n if (collectCity)\r\n validateObj.city = cityRequired ? validation.stringMax(limits.CITY) : validation.stringMaxNoRq(limits.CITY);\r\n\r\n if (collectPostCode || value?.vatin?.number) {\r\n validateObj.vatin = validation.object({\r\n number: value.vatin.prefix === PL_PREFIX ?\r\n validation.vatinOrPeselPL(Tr('invalid_vatin_for_country', {countryCode: value.vatin.prefix}))\r\n : validation.stringMinAndMax(limits.NIP_MIN, limits.NIP_MAX)\r\n });\r\n }\r\n\r\n if (collectPostCode) {\r\n validateObj.postCode = value.vatin.prefix === PL_PREFIX ? validation.stringMin(limits.POSTCODE_PL) : validation.stringMax(limits.EMAIL);\r\n }\r\n\r\n if(collectRegon)\r\n validateObj.regon = validation.stringMaxNoRq(limits.EMAIL);\r\n\r\n if(collectCompanySize)\r\n validateObj.companySize = validation.string()\r\n\r\n let objShape = {}\r\n Object.keys(validateObj).forEach(item => {\r\n if (errorList[item] === item) {\r\n if (item === 'vatin') {\r\n objShape[item] = validation.object({\r\n number: validation.immediatelyError(Tr(translationsMap[item]))\r\n })\r\n } else objShape[item] = validation.immediatelyError(Tr(translationsMap[item]))\r\n } else objShape[item] = validateObj[item]\r\n });\r\n if (Object.keys(nipAndPostCodeError).length === 2 && numberLength !== 11) {\r\n objShape = {\r\n ...objShape,\r\n \"vatin\": validation.object({\r\n number: validation.immediatelyError(Tr(\"repeat_nip_and_postCode_error\"))\r\n }),\r\n \"postCode\": validation.immediatelyError(Tr(\"repeat_nip_and_postCode_error\"))\r\n }\r\n }\r\n\r\n return Yup.object().shape({\r\n ...objShape\r\n })\r\n })}\r\n >\r\n {(formikProps) => {\r\n\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 const fixedname = ctrMap[key];\r\n\r\n if(!!fixedname) {\r\n const name = getObjectValue('name', formikProps.values, null);\r\n if(fixedname !== name) {\r\n formikProps.setFieldValue(\"name\", fixedname)\r\n }\r\n }\r\n\r\n return <>\r\n onBlurNip(e, formikProps) : undefined}\r\n />\r\n {!!fixedname && {Tr('invitation_contractor_exist')}}\r\n \r\n\r\n {collectAddress && }\r\n\r\n {collectPostCode && }\r\n\r\n {collectCity && }\r\n\r\n {collectRegon && }\r\n\r\n {collectCompanySize &&\r\n createSelectItem(x, ContractorCompanySizeLabel(x)))}\r\n required\r\n />\r\n }\r\n\r\n \r\n \r\n }}\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 !snapshotList ? : \r\n ([\r\n <>\r\n {moment(elem.offerSubmitDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}\r\n {elem.offerPlacedInTime && ({stageTr(\"offer_placed_in_time\")})}\r\n ,\r\n getUserFullNameWithEmailAndDeputy(elem.author),\r\n <>\r\n {elem.digitalSignature ? Tr('yes') : Tr('no')}\r\n {!!elem.digitalSignatureDate && ({moment(elem.digitalSignatureDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)})}\r\n ,\r\n elem.offerStatus,\r\n !elem.empty && downloadSnapshot(elem.identity)} disabled={!!workingId}\r\n working={workingId === elem.identity}/>\r\n ]))\r\n }\r\n columnClasses={[\r\n classes.lpColumn,\r\n undefined,\r\n classes.lpColumn,\r\n classes.dateColumn,\r\n classes.buttonColumn\r\n ]}\r\n />\r\n\r\n {snapshotList.length === 0 && {Tr('empty_history')}}\r\n\r\n \r\n }\r\n\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 setSearchText(e.target.value)} label={Tr('search2')}/>}\r\n maxWidth='lg'\r\n onClose={onClose}\r\n dialogActions={\r\n formSubmit[formId]()}\r\n disabledSecond={working}\r\n workingSecond={working}\r\n />\r\n }\r\n >\r\n {\r\n !verificationsListFiltered ? : \r\n {\r\n prev[cur.positionId] = false;\r\n return prev;\r\n }, {})\r\n }}\r\n validationSchema={Yup.object().shape({\r\n list: VS.any().test('partSelected', Tr('choose_at_least_one'), (e) => {\r\n const selIndex = Object.keys(e).findIndex(x => e[x] === true);\r\n return selIndex > -1;\r\n })\r\n })}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n \r\n {\r\n !(verificationsListFiltered.length) &&\r\n \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\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 setExpanded(false)}\r\n >\r\n {(formikProps) => {\r\n const formDisabled = working || disabled || !loadedPositionCounted || loadedPositionCounted.disabled ||\r\n (purchaserOfferContext && !formikProps.values.placingType && mode === OfferMode.PLACED)\r\n\r\n\r\n return (<>\r\n\r\n \r\n\r\n {!offerEdit.passiveOfferForm && <>\r\n \r\n {offerEdit.commonData.consorciumType === ContractorConsorciumTypes.POSITION &&\r\n \r\n }\r\n\r\n \r\n \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 )\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 {Boolean(Icon) && }\r\n {label}\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 setSearchText(e.target.value)} label={Tr(\"search2\")}/>}\r\n dialogActions={<>\r\n \r\n \r\n {POPUP_MODE.OFFER === popupMode &&\r\n *{stageTr(\"place_offer_confirm\")}\r\n }\r\n \r\n }\r\n maxWidth=\"md\"\r\n >\r\n \r\n {\r\n prev[cur.identity] = false;\r\n return prev;\r\n }, {}) : null,\r\n part: null\r\n }}\r\n validationSchema={validationSchema}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n {\r\n additionalOffers ?\r\n :\r\n \r\n }\r\n {\r\n !(positionsFiltered.length) &&\r\n \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\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 {(formikProps) => (<>\r\n\r\n {!disabled && (section.digitalSign || !offerEdit.commonData.hadStageWithOffer) ?\r\n \r\n {offerEdit.commonData.status === DemandValidationSectionStatus.ERROR ? Tr(\"fill_missing_data_x\", {name: 'contractor_company_data'}, true) : null}\r\n {Tr('save_changes')}\r\n :
\r\n }\r\n\r\n \r\n\r\n createSelectItem(key, ContractorConsorciumTypesLabel(key)))}\r\n required\r\n disabled={disabled || offerEdit.commonData.hadStageWithOffer}\r\n\r\n />\r\n {formikProps.values.consorciumType === ContractorConsorciumTypes.ALL && <>\r\n \r\n
\r\n }\r\n\r\n createSelectItem(key, ContractorCompanySizeLabel(key)))}\r\n required\r\n disabled={disabled || offerEdit.commonData.hadStageWithOffer}\r\n />\r\n\r\n {section.digitalSign &&\r\n \r\n }\r\n\r\n\r\n )}\r\n )\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 onConfirm(config.positionIds)}\r\n />}\r\n >\r\n \r\n {config.list.map((elem, i) => \r\n \r\n \r\n {elem.positionName}\r\n \r\n \r\n \r\n \r\n {Tr(\"source_file_name\")}\r\n \r\n \r\n {Tr(\"signed_file_name\")}\r\n \r\n \r\n \r\n \r\n {\r\n elem.files.map((file, j) => \r\n \r\n \r\n {!file.signedFile ? Tr('source_file_name_error') : file.signedFile.name}\r\n \r\n \r\n \r\n \r\n {file.signatureFiles.length === 0 ? Tr('signed_file_name_error') :\r\n file.signatureFiles.map(sFile => {sFile.name}
)}\r\n
\r\n
\r\n
)\r\n }\r\n
\r\n
)}\r\n
\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 if (!offerDate)\r\n return VS.anyRequired();\r\n const startMoment = moment(positions[0].startDate);\r\n if (offerDate.isBefore(startMoment))\r\n return VS.immediatelyError(Tr(\"v_data_cannot_be_before\", {min: startMoment.format(DateFormats.DATETIME_FORMAT)}))\r\n const endMoment = moment(positions[0].endDate);\r\n if (offerDate.isAfter(endMoment))\r\n return VS.immediatelyError(Tr(\"v_data_cannot_be_after\", {max: endMoment.format(DateFormats.DATETIME_FORMAT)}))\r\n return VS.any();\r\n }),\r\n })}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n\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 {!onePlaceContractor ?\r\n \r\n :\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 {loading ? :\r\n \r\n {(formikProps) => (\r\n \r\n )}\r\n \r\n }\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\nimport useSalesNotification from \"../../../hooks/useSalesNotification\";\r\nimport salesNotificationKeys from \"../../popup/salesNotification/constants/salesNotification.keys\";\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 runVerify = () => {\r\n setDownloadWorking(true);\r\n RfxOfferService.verifyOffersAttachments(currentRfxRound.id, () => setDownloadWorking(false))\r\n }\r\n\r\n const printVerificationSalesCheck = useSalesNotification(salesNotificationKeys.SIGNATURE_VERIFICATOR, () => runVerify(), downloadWorking);\r\n\r\n const getAdditionalButtons = () => {\r\n const buttons = [];\r\n if (offersActions.verifyAttachments)\r\n buttons.push(createSplitButton(offersActions.verifyAttachments.name, printVerificationSalesCheck, downloadWorking));\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 {Tr('bzp_notice_downloaded')}\r\n \r\n
\r\n \r\n {Tr('close')}\r\n \r\n
\r\n )\r\n }\r\n\r\n\r\n return (\r\n \r\n {\r\n if(!!bzpNoticeId) {\r\n bzpNoticeId = bzpNoticeId.trim();\r\n if(bzpNoticeId.includes(\"-N-\")) {\r\n const split = bzpNoticeId.split(\"-N-\");\r\n if(split.length === 2) {\r\n return /^[0-9]{6,9}$/.test(split[0]) && /^[0-9]{4}$/.test(split[1]);\r\n }\r\n } else if(bzpNoticeId.includes(\"/BZP\")) {\r\n return /^[0-9]{4}\\/BZP\\s?[0-9]{8}\\/[0-9]{2}$/.test(bzpNoticeId);\r\n }\r\n }\r\n return false;\r\n }),\r\n })}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n {working && }\r\n\r\n \r\n\r\n {!!errorText && \r\n {Tr(errorText)}\r\n }\r\n\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \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 {(formikProps) => (\r\n <>\r\n \r\n {generateItems(formikProps)}\r\n \r\n\r\n \r\n \r\n )}\r\n \r\n\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\nimport WorkableIconEditButton from \"../../../button/WorkableIconEditButton\";\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 onEditNoticeReferenceNumber,\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 enterNoticeReferenceNumber: 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 {row.actions.enterNoticeReferenceNumber &&\r\n onEditNoticeReferenceNumber(row)}\r\n disabled={iconWorks.anyWorks}\r\n hideTooltip={!row.actions.enterNoticeReferenceNumber}\r\n working={iconWorks.enterNoticeReferenceNumber}\r\n />\r\n }\r\n \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 onEditNoticeReferenceNumber: PropTypes.func.isRequired,\r\n showShare: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SiwzFileTableRow;","import React, {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 {makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport PropTypes from 'prop-types'\r\nimport DoubleButton from \"../../../popup/components/DoubleButton\";\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 createEditNoticeReferenceNumberFile = (demandId, identity, noticeReferenceNumber) => ({demandId, identity, noticeReferenceNumber})\r\n\r\nfunction AddNoticeReferenceNumberPopup(\r\n {\r\n editNoticeReferenceNumberFile,\r\n onUpdated,\r\n onClose,\r\n service,\r\n formSubmit,\r\n }) {\r\n\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 = ({noticeReferenceNumber}) => {\r\n setWorking(true);\r\n service.updateNoticeReferenceNumber(editNoticeReferenceNumberFile.demandId,\r\n editNoticeReferenceNumberFile.identity,\r\n noticeReferenceNumber)\r\n .then(onUpdated)\r\n .finally(()=> setWorking(false))\r\n }\r\n\r\n return (\r\n \r\n\r\n \r\n {(formikProps) => (\r\n \r\n\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nAddNoticeReferenceNumberPopup.propTypes = {\r\n editNoticeReferenceNumberFile: PropTypes.shape({\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n identity: PropTypes.oneOfType([PropTypes.number, PropTypes.object]).isRequired,\r\n noticeReferenceNumber: PropTypes.string\r\n }).isRequired,\r\n onUpdated: PropTypes.func.isRequired,\r\n onClose: 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}), {})(AddNoticeReferenceNumberPopup);","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\nimport AddNoticeReferenceNumberPopup, {createEditNoticeReferenceNumberFile} from \"./AddNoticeReferenceNumberPopup\";\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 [editNoticeReferenceNumberFile, setEditNoticeReferenceNumberFile] = 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 const openEditNoticeReferenceNumber = (row) => {\r\n setEditNoticeReferenceNumberFile(createEditNoticeReferenceNumberFile(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source), row.noticeReferenceNumber));\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 {Boolean(editNoticeReferenceNumberFile) &&\r\n setEditNoticeReferenceNumberFile(false)}\r\n onClose={() => setEditNoticeReferenceNumberFile(false)}\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\t\t\r\n\t\t\t\t{(formikProps) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\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\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\n {\r\n folderList.filter(x => x.type !== RepoFolderTypes.Z_TRASH).map(x =>\r\n onSubmit(x.identity)}>\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n {\r\n folderList.length === 1 && folderList[0].type === RepoFolderTypes.Z_TRASH &&\r\n \r\n \r\n \r\n }\r\n\r\n \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 {(formikProps) => (\r\n \r\n\r\n \r\n {name}\r\n \r\n\r\n \r\n\r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\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 {(formikProps) => (\r\n \r\n )}\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 setShowInternalDocuments(true)}\r\n variant=\"outlined\"\r\n disabled={!editable}\r\n >\r\n {Tr(\"add_inner_document\")}\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 {type === \"prev\" && }\r\n {type === \"prev\" ? Tr(\"previous\") : Tr(\"next\")}\r\n {type === \"next\" && }\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 setMode(x => x === ViewMode.SUPPLIER ? ViewMode.POSITION : ViewMode.SUPPLIER);\r\n }}\r\n >\r\n {mode === ViewMode.POSITION ? Tr(\"switch_view_per_supplier\") : Tr(\"switch_view_per_part\")}\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 title={Tr('auctions_information_button')}\r\n maxWidth='sm'\r\n >\r\n \r\n {!auctions ? \r\n :\r\n
\r\n {!!auctions.prod && }\r\n
\r\n {!!auctions.test && }\r\n
\r\n }\r\n \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 title={Tr('edit_dates_popup_title')}\r\n maxWidth='sm'\r\n >\r\n \r\n {working && }\r\n {error && {Tr('unknown_error_message')}}\r\n\r\n {\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 onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n \r\n {roundName}\r\n \r\n handleEndDate(formikProps, value)}\r\n minDate={new Date()}\r\n />\r\n\r\n \r\n\r\n \r\n )}\r\n \r\n \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 {Tr('open_offers')}\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 title={title}\r\n maxWidth='lg'\r\n >\r\n \r\n\r\n {working && }\r\n {!!error && {error}}\r\n {!!preparedAuction && <>\r\n\r\n \r\n {(formikProps) => (\r\n \r\n \r\n \r\n \r\n formikProps.setFieldValue('positions.0.bidType', AuctionItemBidType.RFX_CRITERIUM_VALUE)}\r\n />\r\n handleEndDate(formikProps, value)}\r\n minDate={new Date()}\r\n />\r\n\r\n {AuctionRule.JAPANESE === formikProps.values.rule ?\r\n \r\n :\r\n \r\n }\r\n\r\n \r\n \r\n \r\n {getObjectValue('priceType', formikProps.values, \"\") === PriceType.NET_GROSS ?\r\n handleUseNetOverGrossChange(formikProps, value)}\r\n />\r\n :\r\n \r\n }\r\n {AuctionRule.JAPANESE !== formikProps.values.rule &&\r\n <>\r\n \r\n \r\n \r\n \r\n }\r\n
\r\n {Tr('auction_price_item_count')}:\r\n {formikProps.values.positions[0].priceItemCount}\r\n
\r\n {Tr('auction_offer_count')}:\r\n {formikProps.values.positions[0].offerCount}\r\n
\r\n {Tr('realization_value')}:\r\n {formikProps.values.positions[0].estimatedValue ? formikProps.values.positions[0].estimatedValue.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\n \r\n }\r\n \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\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 title={Tr('auction_create_popup_title')}\r\n maxWidth='sm'\r\n >\r\n \r\n\r\n {working && }\r\n {!!error && {error}}\r\n\r\n \r\n {(formikProps) => (\r\n \r\n handleEndDate(formikProps, value)}\r\n minDate={new Date()}\r\n />\r\n\r\n {AuctionRule.JAPANESE === formikProps.values.rule ?\r\n \r\n :\r\n \r\n }\r\n \r\n )}\r\n \r\n \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\t\t\r\n\t\t\t\t\r\n\t\t\t\t{title}\r\n\t\t\t\r\n\r\n\t\t\t{children}\r\n\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\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 title={Tr('invalidate_parts_no_offers')}\r\n maxWidth='md'\r\n >\r\n \r\n {working && }\r\n {error && {Tr('unknown_error_message')}}\r\n {!!positionsWithNoOffer && <>\r\n\r\n \r\n {(formikProps) => (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {\r\n !(positionsWithNoOffer?.positions.length) ?\r\n \r\n {Tr('invalidate_parts_no_offers_list_empty')}\r\n \r\n :\r\n <>\r\n \r\n {Tr('invalidate_parts_no_offers_list')} ({positionsWithNoOffer.positions.length}):\r\n \r\n {\r\n {\r\n return [\r\n Tr(`offer_evaluation_mode_title_position`, {value: x.order}),\r\n x.name,\r\n ]\r\n })}\r\n cellClassName={classes.cells}\r\n columnClasses={[\r\n classes.partColumn\r\n ]}\r\n />\r\n }\r\n \r\n }\r\n }\r\n \r\n\r\n\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 {i + 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 {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 title={Tr(isAuction ? 'additional_round_create_auction_popup_title' : 'additional_round_create_additional_offers_popup_title')}\r\n maxWidth='md'\r\n >\r\n \r\n\r\n {working && }\r\n {error && {Tr('unknown_error_message')}}\r\n {!working && !!rounds && <>\r\n\r\n {\r\n prev[cur.identity] = {\r\n checked: false,\r\n contractors: cur.contractors.reduce((arr, elem) => {\r\n arr[elem.identity] = false;\r\n return arr;\r\n }, {})\r\n };\r\n return prev;\r\n }, {})\r\n }}\r\n validationSchema={validationSchema()}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n {!isAuction &&\r\n handleEndDate(formikProps, value)}\r\n minDate={new Date()}\r\n />\r\n }\r\n\r\n {!isAuction &&\r\n \r\n }\r\n {\r\n !(rounds?.positions.length) ?\r\n \r\n {\r\n isAuction ? (rounds.error ? rounds.error : Tr('additional_round_auction_list_empty')) : Tr('additional_round_list_empty')\r\n }\r\n \r\n :\r\n \r\n }\r\n \r\n )}\r\n \r\n\r\n\r\n }\r\n \r\n\r\n\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 {(formikProps) => (\r\n <>\r\n \r\n {realizationValues.dealings.map((x, i) =>\r\n (\r\n
\r\n 1 ? Tr('part_x', {x: i + 1}) : ''}\r\n formikProps={formikProps}\r\n type={INPUT_TYPE.NUMBER_19}\r\n disabled={!editable}\r\n required={required}\r\n />\r\n {x.realizationPublishDate && {Tr('realization_publish_date')}{realizationValues.dealings.length > 1 ? Tr('on_part_x', {x: i + 1}) : ''}: {formatPublishDate(x.realizationPublishDate)}}\r\n
\r\n
))\r\n }\r\n
\r\n )}\r\n )\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 title={Tr('final_realization_value')}\r\n maxWidth='md'\r\n >\r\n \r\n {working && }\r\n {!!error && {error}}\r\n {!!realizationValues && }\r\n \r\n\r\n\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 canDownloadFile\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 canDownloadFile\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 canDownloadFile\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 {(formikProps) => (\r\n \r\n\r\n \r\n {Tr(offerChoiceResultItem.modification ? 'offers_choice_modification_result_applies_parts' : 'offers_choice_result_applies_parts')}: {offerChoiceResultItem.positionOrders.join(\", \")}\r\n \r\n\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 canDownloadPaper,\r\n canDownloadFile\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 canDownloadPaper,\r\n canDownloadFile\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 const canDownloadPaper = section ? section.canDownloadPaper : false;\r\n const canDownloadFile = section ? section.canDownloadFile : 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 {(formikProps) => (\r\n \r\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 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 title={Tr('additional_round_create_additional_offers_popup_title')}\r\n maxWidth='md'\r\n >\r\n \r\n\r\n {working && }\r\n {error && {Tr('unknown_error_message')}}\r\n {!!contractors && <>\r\n\r\n {\r\n prev[cur.identity] = false;\r\n return prev;\r\n }, {})\r\n }}\r\n validationSchema={validationSchema()}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n handleEndDate(formikProps, value)}\r\n minDate={new Date()}\r\n />\r\n\r\n \r\n {\r\n !(contractors?.length) ?\r\n \r\n {\r\n contractors.error ? contractors.error : Tr('additional_round_auction_list_empty')\r\n }\r\n \r\n :\r\n \r\n }\r\n \r\n )}\r\n \r\n\r\n\r\n }\r\n \r\n\r\n\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 && setCreatePopupOpened(true)}\r\n disabled={!(additionalPassiveRounds.length === 0 || AdditionalRoundStatusesPending.indexOf(additionalPassiveRounds[0].status) === -1)}\r\n >{Tr('additional_round_create_additional_offers_button')}\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 setSearchText(e.target.value)} label={Tr('search2')}>}\r\n dialogActions={!!multiple && }\r\n >\r\n }\r\n defaultExpandIcon={}\r\n expanded={expanded}\r\n selected={useObjectInsteadOfValues ? selected.map(x => x.value) : selected}\r\n onNodeToggle={handleToggle}\r\n onNodeSelect={handleSelect}\r\n >\r\n {renderTree(itemsFiltered)}\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 {(formikProps) => (\r\n \r\n \r\n {autoSaveFormDraftActive &&\r\n {\r\n DemandAdditionalInfoService.saveDraft(id, formValues)\r\n }}\r\n />\r\n }\r\n \r\n \r\n
\r\n {formTr(\"table_iv\")}\r\n {formTr(\"table_iv_desc\")}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n {formTr(\"table_v\")}\r\n {formTr(\"table_v_desc\")}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n {formTr(\"table_vi\")}\r\n {formTr(\"table_vi_desc\")}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n {formTr(\"table_vii\")}\r\n {formTr(\"table_vii_desc\")}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n {formTr(\"table_viii\")}\r\n {formTr(\"table_viii_desc\")}\r\n
\r\n
\r\n \r\n \r\n ({\r\n label: index + \" - \" + item.label,\r\n value: item.value\r\n })).filter(x => x.value !== \"0\")}\r\n />\r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n {formTr(\"table_ix\")}\r\n {formTr(\"table_ix_desc\")}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n {formTr(\"contract\")}\r\n {formTr(\"contract_desc\")}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\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\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 updateNoticeReferenceNumber = async (demandId, {resultNoticeId, resultNoticeAttachmentId}, noticeReferenceNumber) => {\r\n const resp = await RestRequestPUT(Endpoints.RESULT_NOTICE_REFERENCE_NUMBER(demandId, resultNoticeId, resultNoticeAttachmentId), {noticeReferenceNumber});\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 updateNoticeReferenceNumber,\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\nimport WorkableIconEditButton from \"../../../../../../../../components/button/WorkableIconEditButton\";\r\nimport {\r\n createEditNoticeReferenceNumberFile\r\n} from \"../../../../../../../../components/complex/documentsTables/swz/AddNoticeReferenceNumberPopup\";\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 onEditNoticeReferenceNumberFile\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({\r\n type: 'delete',\r\n works: false\r\n }));\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 onEditNoticeReferenceNumberFile(createEditNoticeReferenceNumberFile(demandId, ResultNoticeService.buildIdentity(resultNotice.identity, attachment.identity),\r\n attachment.noticeReferenceNumber))}\r\n disabled={iconWorks.anyWorks}\r\n working={iconWorks.enterNoticeReferenceNumber}\r\n />\r\n \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\nimport AddNoticeReferenceNumberPopup\r\n from \"../../../../../../../../components/complex/documentsTables/swz/AddNoticeReferenceNumberPopup\";\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 [editNoticeReferenceNumberFile, setEditNoticeReferenceNumberFile] = 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 \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 {!!editNoticeReferenceNumberFile && setEditNoticeReferenceNumberFile(null)}\r\n onClose={() => setEditNoticeReferenceNumberFile(null)}\r\n service={ResultNoticeService}\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 {Tr('bzp_notice_downloaded')}\r\n \r\n
\r\n \r\n {Tr('close')}\r\n \r\n
\r\n )\r\n }\r\n\r\n\r\n return (\r\n \r\n {\r\n if(!!bzpNoticeId) {\r\n bzpNoticeId = bzpNoticeId.trim();\r\n if(bzpNoticeId.includes(\"-N-\")) {\r\n const split = bzpNoticeId.split(\"-N-\");\r\n if(split.length === 2) {\r\n return /^[0-9]{6,9}$/.test(split[0]) && /^[0-9]{4}$/.test(split[1]);\r\n }\r\n } else if(bzpNoticeId.includes(\"/BZP\")) {\r\n return /^[0-9]{4}\\/BZP\\s?[0-9]{8}\\/[0-9]{2}$/.test(bzpNoticeId);\r\n }\r\n }\r\n return false;\r\n }),\r\n })}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n {working && }\r\n\r\n \r\n\r\n {!!errorText && \r\n {Tr(errorText)}\r\n }\r\n\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \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 {(formikProps) =>\r\n (
\r\n {getButtons()}\r\n\r\n \r\n {resultNotice.type === ResultNoticeType.ATTACHMENT &&\r\n }\r\n {resultNotice.type === ResultNoticeType.OJS &&\r\n }\r\n\r\n {addBzpNoticePopupOpened && setAddBzpNoticePopupOpened(false)}/>}\r\n
)}\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 {Tr('demand_archiving_button')}\r\n \r\n } else if (demandArchiving.archivingStatus === ArchivingStatus.ARCHIVED) {\r\n return \r\n {Tr('demand_archiving_button_download')}\r\n \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 {(formikProps) => (\r\n \r\n {working && }\r\n {!!error && {error}}\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 0}\r\n\r\n >\r\n {Tr(finishDemand.status === ProcedureStatusValues.CANCELLED || finishDemand.canCancel ? 'demand_finish_cancel_button' : 'demand_finish_finish_button')}\r\n \r\n\r\n {!finishDemand.ojsResultNoticeSent && {Tr('demand_finish_back_to_evaluation_info')}}\r\n {!finishDemand.ojsResultNoticeSent &&\r\n setBackConfirm(true)}\r\n disabled={!finishDemand.canBackState}\r\n >\r\n {Tr('demand_finish_back_to_evaluation_button')}\r\n \r\n }\r\n\r\n {finishDemand.ojsResultNoticeSent && {Tr('demand_finish_back_to_result_notice_info')}}\r\n {finishDemand.ojsResultNoticeSent &&\r\n setBackToResultConfirm(true)}\r\n disabled={!finishDemand.canBackToResultNotice}\r\n >\r\n {Tr('demand_finish_back_to_result_notice_button')}\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 setUnpublishDatePopup(true)}\r\n disabled={!finishDemand.canSetWithdrawalNoticeDate}\r\n >\r\n {Tr(finishDemand.withdrawalNoticeDate ? 'demand_finish_withdraw_notice_update' : 'demand_finish_withdraw_notice')}\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 0}\r\n >\r\n {Tr('demand_finish_cancel_button')}\r\n \r\n 0}\r\n >\r\n {Tr('demand_finish_finish_button')}\r\n \r\n\r\n setBackConfirm(true)}\r\n disabled={!finishDemand.canBackState}\r\n >\r\n {Tr('demand_finish_back_to_evaluation_button_exPost')}\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 ({...x, _touched: false}))}\r\n validationSchema={validationSchema}\r\n onSubmit={onSubmit}\r\n >\r\n {(formikProps) => (<>\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 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 if (isDemandModification()) {\r\n ModificationService.isDemandChanged(id);\r\n }\r\n }}\r\n >\r\n {(formikProps) => (\r\n <>\r\n \r\n {autoSaveFormDraftActive &&\r\n {\r\n ScheduleService.saveDraft(id, formValues)\r\n }}\r\n />\r\n }\r\n \r\n \r\n {Tr('offers')}\r\n \r\n handleEndDate(formikProps, value)}\r\n required\r\n />\r\n \r\n \r\n \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\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\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 pdf\r\n \r\n \r\n xml\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 setConfirmPopupData(defaultConfirmData)}\r\n >\r\n \r\n {Tr('make_sure_section_save')}\r\n \r\n
\r\n setConfirmPopupData(defaultConfirmData)}\r\n >\r\n {Tr('close')}\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 if (isDemandModification()) {\r\n ModificationService.isDemandChanged(id);\r\n }\r\n }}\r\n >\r\n {(formikProps) => (\r\n <>\r\n \r\n {autoSaveFormDraftActive &&\r\n {\r\n EspdService.saveDraft(id, formValues)\r\n }}\r\n />\r\n }\r\n \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 if (isDemandModification()) {\r\n ModificationService.isDemandChanged(demandId);\r\n }\r\n }}\r\n >\r\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 if (isDemandModification()) {\r\n ModificationService.isDemandChanged(id);\r\n }\r\n }}\r\n >\r\n {(formikProps) => (\r\n <>\r\n \r\n {autoSaveFormDraftActive &&\r\n {\r\n GuaranteeService.saveDraft(id, formValues)\r\n }}\r\n />\r\n }\r\n \r\n \r\n {formikProps.values.enabled &&\r\n \r\n }\r\n \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\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 if (isDemandModification()) {\r\n ModificationService.isDemandChanged(match.params.id);\r\n }\r\n }}\r\n >\r\n {() => (\r\n <>\r\n \r\n \r\n {Tr('selected_contractors_list')}\r\n \r\n \r\n {editable && <>\r\n setAddPopup(true)}\r\n >\r\n {Tr('add_contractor')}\r\n \r\n setInvitePopup(true)}\r\n >\r\n {Tr('suggest_contractor')}\r\n \r\n }\r\n \r\n \r\n {invitePopup && setInvitePopup(false)}\r\n title={Tr('invitation_contractor')}\r\n contractorList={contractorList}\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\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 if (isDemandModification()) {\r\n ModificationService.isDemandChanged(demandId);\r\n }\r\n }}\r\n >\r\n {(formikProps) => (\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 {RestRequestBLOB, 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 printDemandNoticePreview = async (demandId) => {\r\n\ttry {\r\n\t\tawait RestRequestBLOB(Endpoints.NOTICE_DOWNLOAD_PREVIEW(demandId));\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\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\tprintDemandNoticePreview,\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 if (isDemandModification()) {\r\n ModificationService.isDemandChanged(demandId);\r\n }\r\n }}\r\n >\r\n {(formikProps) => (<>\r\n \r\n \r\n
{Tr(\"bzp_notice_create_info\")}

\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 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 {(formikProps) => (\r\n )}\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 {(formikProps) => (\r\n <>\r\n \r\n\r\n setOpenPublishPopup(true)}\r\n >\r\n {Tr('publish')}\r\n \r\n\r\n {isDemandModification() && setOpenCancelModificationPopup(true)}\r\n >\r\n {Tr('modification_cancel')}\r\n \r\n }\r\n \r\n setOpenCancelModificationPopup(false)}\r\n confirmText=\"modification_cancel_popup_text\"\r\n />\r\n setOpenPublishPopup(false)}\r\n />\r\n \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 {Tr('preview_of_eu_form')}\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 {Tr('send_eu_publish')}\r\n \r\n }\r\n\r\n {ojsPublicationStatus && ojsPublicationStatus.status === PublishConst.NOT_PUBLISHED &&\r\n \r\n {Tr('send_eu_publish_rollback')}\r\n \r\n }\r\n\r\n {ojsPublicationStatus && ojsPublicationStatus.status === PublishConst.UE_VALIDATION_ERROR &&\r\n \r\n {Tr('send_eu_publish_rollback')}\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/*import NationalNoticeService from \"services/NationalNoticeService\";*/\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 isPreviewDemandPublicFormActive,\r\n isPublicOjsActive,\r\n isOjsProcessing,\r\n uncompletedSections,\r\n demandHeader,\r\n section,\r\n isBzpPublishActive,\r\n isBzpProcessing\r\n }) {\r\n\r\n const isPreparing = isDemandPreparing();\r\n const isModification = isDemandModification();\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 (isModification && 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 DemandService.preview(id)}\r\n disabled={!isPreviewActive}\r\n >\r\n {Tr('preview')}\r\n \r\n
\r\n :
\r\n DemandService.preview(id)}\r\n disabled={!isPreviewDemandPublicFormActive}\r\n >\r\n {Tr(\"preview_demand_public_form\")}\r\n \r\n {/*

\r\n NationalNoticeService.printDemandNoticePreview(id)}\r\n disabled={!isPreviewNoticeActive}\r\n >\r\n {Tr(\"preview_notice\")}\r\n */}\r\n

\r\n RouterPath.redirect(RouterPath.createPath(RouterPath.purchaserDemand.PURCHASER_DEMAND_ID_PREVIEW, {id: id}))}\r\n disabled={!isPreviewActive}\r\n >\r\n {Tr(\"preview_offer_form\")}\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 window.open(section.competitivenessBaseLink, '_blank').focus();\r\n }}\r\n >\r\n {Tr('competitiveness_base.link')}\r\n \r\n
\r\n }\r\n \r\n }\r\n\r\n {/*{isModification &&\r\n <>\r\n {\r\n demandHeader.apiVersion >= 3 &&\r\n
\r\n NationalNoticeService.printDemandNoticePreview(id)}\r\n disabled={!isPreviewNoticeActive}\r\n >\r\n {Tr(\"preview_notice\")}\r\n \r\n
\r\n }\r\n \r\n }*/}\r\n\r\n {isBzpAttachmentNotice &&\r\n \r\n {Tr('bzp_link')}\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 {previewDemandPublicFormDisabled} from \"./getDemandStatus\";\r\n\r\nexport default (demandValidation) => {\r\n if (!demandValidation || !isDemandPreparing() || previewDemandPublicFormDisabled()) 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 {Tr('bzp_notice_create')}\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 isPreviewDemandPublicFormButtonActive from \"libs/isPreviewDemandPublicFormButtonActive\";\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, bzpContractNoticeStatus), [demandValidation, bzpContractNoticeStatus]);\r\n const isPreviewDemandPublicFormActive = useMemo(() => isPreviewDemandPublicFormButtonActive(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 getUncompletedSections from './getUncompletedSections';\r\nimport {isDemandModification, isDemandPreparing} from \"./getDemandStatus\";\r\n\r\nexport default (demandValidation, bzpContractNoticeStatus) => {\r\n if (!demandValidation || (!isDemandPreparing() && !isDemandModification()) || !bzpContractNoticeStatus) return false;\r\n const uncompleted = getUncompletedSections(demandValidation);\r\n return uncompleted.length === 0 && bzpContractNoticeStatus.status !== 'NONE';\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 setOpenGoToFinishPopup(true)}\r\n >\r\n {Tr('exPost_goToFinish')}\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 setAddPopup(true)}\r\n >\r\n {Tr('add_contractor')}\r\n \r\n setInvitePopup(true)}\r\n >\r\n {Tr('suggest_contractor')}\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 {Tr(externalOfferSignConfirm[1])}\r\n \r\n
\r\n setExternalOfferSignConfirm(false)}\r\n >\r\n {Tr('close')}\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\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\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 event.stopPropagation()}\r\n onFocus={event => event.stopPropagation()}\r\n >\r\n \r\n {(!progress || progress < 100) &&\r\n }\r\n {progress >= 100 && }\r\n \r\n\r\n \r\n \r\n {title}{!optional && \"*\"}\r\n \r\n \r\n\r\n {showProgress && !progressAtlText && progress != null && (!queue || queue === 0) &&\r\n \r\n \r\n \r\n }\r\n\r\n {showProgress && !progressAtlText && progress != null && !!queue && queue > 0 &&\r\n \r\n {queue + ' ' + Tr('in_queue')}\r\n \r\n }\r\n\r\n {showProgress && progressAtlText &&\r\n \r\n {progressAtlText}\r\n \r\n }\r\n\r\n {buttonText && \r\n \r\n {buttonText}\r\n \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 Boolean(val),\r\n then: VS.string()\r\n }\r\n )\r\n })}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n\r\n \r\n\r\n {Boolean(formikProps.values.platform) &&\r\n }\r\n\r\n {Boolean(formikProps.values.platform) &&\r\n \r\n }\r\n\r\n\r\n
\r\n {disabled ?\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 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\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 {sent ?\r\n <>\r\n\r\n {Tr('resend_offer_invitation_success')}\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n :\r\n\r\n\r\n {\r\n if (!value)\r\n return VS.string();\r\n\r\n const emailsTab = getEmailsTab(value);\r\n\r\n const invalidEmails = emailsTab.filter(x => !emailValidator.isValidSync(x));\r\n\r\n return VS.string().test('valid-emails-comma-separated', Tr('invalid_emails', {emails: invalidEmails.join(\",\")}), value => invalidEmails.length === 0)\r\n\r\n\r\n })\r\n })}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n\r\n \r\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 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 {icon}\r\n \r\n {numberText}\r\n \r\n \r\n {!dangerouslySetText ? text : null}\r\n \r\n \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 {poll.question}\r\n\r\n \r\n \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 title={Tr('realization_value')}\r\n maxWidth='md'\r\n >\r\n \r\n {working && }\r\n {!!error && {error}}\r\n\r\n {!!realizationValues && <>\r\n\r\n \r\n {Tr(realizationValues.realizationValuePublished ? 'realization_value_published' : 'realization_value_unpublished')}\r\n \r\n\r\n\r\n \r\n }\r\n \r\n\r\n\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\n \r\n {(formikProps) => (\r\n \r\n {working && }\r\n\r\n {error && {error}}\r\n\r\n {!contractor &&\r\n onChangeWithOffer(v, formikProps)}>\r\n \r\n {Tr(\"correspondence_all_suppliers\")}\r\n \r\n \r\n {Tr(\"correspondence_suppliers_with_offer\")}\r\n \r\n \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\r\n \r\n )}\r\n \r\n {!!contractorEmailList &&
\r\n \r\n {Tr(\"correspondence_email_notification_list\")}\r\n \r\n \r\n {\r\n !contractorEmailList.recipient ? : \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}), {})(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 {(formikProps) => (\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\nimport {connect} from \"react-redux\";\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 downloadAttachmentRegistrationDate\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 const showAttachmentDownloadInfo = mine && !!downloadAttachmentRegistrationDate && moment(downloadAttachmentRegistrationDate) < moment.now()\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\nconst mapStateToProps = (state) => {\r\n return {\r\n downloadAttachmentRegistrationDate: state.resources[CorrespondenceService.CORRESPONDENCE_DOWNLOAD_ATTACHMENT_REGISTRATION_DATE_RESOURCE_ID],\r\n }\r\n}\r\nconst mapDispatchToProps = {}\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(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 setContractorEmailList(null)}/>}\r\n onClose={!contractorEmailList.recipient ? undefined : () => setContractorEmailList(null)}\r\n >\r\n {\r\n !contractorEmailList.recipient ? : \r\n }\r\n\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 id='0'\r\n >\r\n {(formikProps) => (\r\n \r\n\r\n {Tr('contents')}\r\n {getObjectValue('contents', formikProps.values, '')}\r\n\r\n {!!formikProps.values?.attachments.length && \r\n \r\n }\r\n\r\n \r\n )}\r\n \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 x.id),\r\n attachments: message.attachments\r\n }}\r\n initialTouched={{\r\n contents: true,\r\n supplierRecipientIds: true,\r\n attachments: true\r\n }}\r\n onSubmit={onSubmit}\r\n validationSchema={VS.any()}\r\n id={formId}\r\n >\r\n {(formikProps) => (\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 {Tr('add_message_in_thread')}\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 >\r\n
\r\n \r\n {(formikProps) => (\r\n \r\n {working && }\r\n\r\n {error && {error}}\r\n\r\n
\r\n {Tr('correspondence_selected_threads')}:\r\n {getChips(formikProps)}\r\n
\r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n )}\r\n \r\n {!!contractorEmailList &&
\r\n \r\n {Tr(\"correspondence_email_notification_list\")}\r\n \r\n \r\n
\r\n {\r\n !contractorEmailList.length ? : contractorEmailList.map((x, i) =>\r\n )\r\n }\r\n
\r\n\r\n
\r\n }\r\n
\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 ?