{"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/constants/OfferChoiceState.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/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","components/complex/approval/NoActiveApproval.js","components/complex/approval/StageApprovers.js","components/complex/approval/constants/validationSchema.js","components/complex/approval/lib/ApprovalAccessUtils.js","components/complex/approval/SelectApprovers.js","components/complex/approval/ApprovalDecision.js","components/complex/approval/ApprovalHistory.js","components/complex/approval/AddApproversTable.js","components/complex/approval/ApprovalHistoryList.js","components/complex/approval/Approval.js","services/OfferChoiceApprovalService.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoiceApproval/OfferChoiceApproval.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoiceApproval/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/isBackToPreparingButtonActive.js","libs/isPreviewButtonActive.js","libs/isPreviewNoticeButtonActive.js","pages/purchaser/MyProcedure/scenes/part1/panels/exPostGoToFinish/ExPostGoToFinish.js","pages/purchaser/MyProcedure/scenes/part1/panels/exPostGoToFinish/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/additionalInfo/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/questionnaire/Questionnaire.js","services/DemandApprovalService.js","pages/purchaser/MyProcedure/scenes/part1/panels/approval/DemandApproval.js","pages/purchaser/MyProcedure/scenes/part1/panels/approval/index.js","pages/purchaser/MyProcedure/scenes/part1/part1.panels.components.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","APPROVAL","OFFERS","DOCUMENTS","CONTRACTOR_VERIFICATION","OFFERS_EVALUATION","OFFER_CHOICE","OFFER_CHOICE_APPROVAL","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","PAPERS_GENERATOR_DEMAND_APPROVAL_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","DEMAND_BACK_TO_PREPARING","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_BACK_TO_MODIFICATION","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","OFFER_CHOICE_APPROVAL_BASE","offerChoiceApproval","OFFER_CHOICE_APPROVAL_SELECT_APPROVERS","OFFER_CHOICE_APPROVAL_SEND_DECISION","OFFER_CHOICE_APPROVAL_RESET","OFFER_CHOICE_APPROVAL_STOP","OFFER_CHOICE_APPROVAL_HISTORY_LIST","OFFER_CHOICE_APPROVAL_HISTORY","approvalId","OFFER_CHOICE_APPROVAL_POSITIONS_LIST","OFFER_CHOICE_APPROVAL_HISTORY_GET_APPROVERS","DEMAND_APPROVAL_BASE","OFFER_CHOICE_APPROVAL_HISTORY_ADD_APPROVERS","OFFER_CHOICE_APPROVAL_HISTORY_DELETE_APPROVER","OFFER_CHOICE_APPROVAL_VALIDATE","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","demandApproval","DEMAND_APPROVAL","DEMAND_APPROVAL_SELECT_APPROVERS","DEMAND_APPROVAL_SEND_DECISION","DEMAND_APPROVAL_RESET","DEMAND_APPROVAL_STOP","DEMAND_APPROVAL_HISTORY_LIST","DEMAND_APPROVAL_HISTORY","DEMAND_APPROVAL_HISTORY_GET_APPROVERS","DEMAND_APPROVAL_HISTORY_ADD_APPROVERS","DEMAND_APPROVAL_HISTORY_DELETE_APPROVER","DEMAND_APPROVAL_VALIDATE","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","errorMsg","log","_get","forceRedirectOldPlatform","supportedNoApiScreens","updateHeader","HeaderService","modify","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","outlined","DeleteIconOutlined","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","AddIconOutlined","rootWeight","handleEditItem","optionalItemsEnabled","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","priceCriterion","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","cancel","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","approvalSection","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","OfferChoiceState","_DECISION_STATES","choiceSize","body2","choiceStatus","choiceStatusNeedsApproval","choiceControls","choiceControlsEnd","auctionHistory","float","offerChoiceJustifications","chosenStatusDone","setChosenStatusDone","chosenSuppliers","auctionHistoryPopup","setAuctionHistoryPopup","offerChoiceDateError","setOfferChoiceDateError","modifyConfirmOpen","setModifyConfirmOpen","setOfferChoiceJustification","setOfferChoiceDate","disabledInputs","auctionHistoryVisible","resolveRowStatus","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","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","approvalObjectName","uncompletedApprovalObjectSections","startApproval","approver","approverList","opened","approvers","minAssignedApproverCount","useAssignerComments","selectApproversValidationShema","approval","stageModel","stageShape","assigneeComment","stageValidation","approvalDecisionValidationSchema","approvalDecision","approverComment","acceptRequireComment","rejectRequireComment","masterApproveRequireComment","masterRejectRequireComment","masterStopRequireComment","canApprove","currentStage","loggedUser","approvalUser","userIdentity","replacedUserId","canMasterApprove","activeApproval","canAddApprover","canAddApprovers","selectApprovers","mr","sendToApproval","resetApproval","stopApproval","masterResetOpen","setMasterResetOpen","masterStopOpen","setMasterStopOpen","stageForSelectApprovers","selectApproversAtStart","canResetApproval","formVisible","canSelectApprovers","ml2","approvalStage","uploadLabel","sendDecision","masterApproveOpen","setMasterApproveOpen","masterRejectOpen","setMasterRejectOpen","decisionMade","approverAttachments","assignee","approversAttachments","canMasterReject","approvalHistory","approvalHistoryHeader","avoided","accepted","noBorderBottom","approverAlign","loadApprovalHistory","showApproverPopup","deleteApprover","deleteWorking","setDeleteWorking","deleteApproverOpen","setDeleteApproverOpen","approvalStageAndApprover","openApprovalHistory","doShowApproverPopup","sender","decisionDate","canDeleteApprovers","minApproversAcceptedCount","messageReceiveDate","elementsToHide","approvalHistoryList","getAvailableApprovers","addApprovers","approvalAndStage","availableApprovers","setAvailableApprovers","AddApproversTable","showNoApproval","showSelectApprovers","showSelectApproversSection","showApprovalDecisions","showApprovalDecisionSection","OFFER_CHOICE_ACTIVE_APPROVAL_RESOURCE_ID","OFFER_CHOICE_APPROVAL_HISTORY_LIST_RESOURCE_ID","OFFER_CHOICE_APPROVAL_HISTORY_RESOURCE_ID","approverIds","offerChoiceActiveApproval","offerChoiceApprovalHistoryList","positionsPopup","setPositionsPopup","approvalPositions","setApprovalPositions","approvalPromise","OfferChoiceApprovalService","historyListPromise","historyPromise","sectionsPromise","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_offer_choice_approval","OfferChoiceApproval","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","wasPublished","PublishSection","isPublishActive","isCancelActive","isBackToPreparingActive","isBackToModificationActive","moveToOfferCollection","classesRoot","clearPublishResources","openCancelModificationPopup","setOpenCancelModificationPopup","openPublishPopup","setOpenPublishPopup","openBackToPreparingPopup","setOpenBackToPreparingPopup","openBackToModificationPopup","setOpenBackToModificationPopup","showPublishLimitUsedAlert","setShowPublishLimitUsedAlert","handleConfirmCancelModification","handleConfirmPublish","PublishService","handleConfirmBackToPreparing","handleConfirmBackToModification","doFilterSections","additionalExcludedSections","ojsPublicationStatus","bzpContractNoticeStatus","isDemandChanged","getUncompletedSections","NationalNoticeStatus","minusMargin","noticePreview","isPublicOjsActive","isPreviewOjsActive","checkNoticeStatus","handleRollback","isPreviewActive","isPreviewNoticeActive","isPreviewDemandPublicFormActive","isOjsProcessing","uncompletedSections","isBzpPublishActive","isBzpProcessing","isPreparing","isModification","competitivenessBaseLink","focus","publicationSection","waitingForPublication","isNoticeAvailable","bzpNotice","isBzpNoticeAvailable","previewDemandPublicFormDisabled","PP_REQUIRED_GROUPS","MO_REQUIRED_GROUPS","MMiA_REQUIRED_GROUPS","ezWorking","setEzWorking","noticeStatusInterval","setNoticeStatusInterval","compareSection","hasBzpNotice","startNoticeStatusInterval","isPublishButtonActive","isBackToPreparingButtonActive","isCancelModificationButtonActive","uncompleted","isPreviewButtonActive","isPreviewNoticeButtonActive","isPreviewDemandPublicFormButtonActive","finishButton","openGoToFinishPopup","setOpenGoToFinishPopup","isDemandFinish","questionnaireTabUrl","DEMAND_ACTIVE_APPROVAL_RESOURCE_ID","DEMAND_APPROVAL_HISTORY_LIST_RESOURCE_ID","DEMAND_APPROVAL_HISTORY_RESOURCE_ID","demandActiveApproval","demandApprovalHistoryList","getUncompletedSectionsForApproval","DemandApprovalService","sectionsPromiese","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_approval","mp_1_publication","Publication","mp_1_ex_post_go_to_finish","ExPostGoToFinish","mp_1_preparing_papers_generator","PreparingPapersGenerator","mp_1_preparing_additional_info","DemandAdditionalInfo","mp_1_questionnaire","Questionnaire","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","isPublicationSectionEditable","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","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","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","transitionProp","easing","sharp","leavingScreen","topOffsetExpanded","enteringScreen","ThemeProvider","App","utils","MomentUtils","hostname","ReactDOM","serviceWorker","ready","unregister"],"mappings":"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","file":"static/js/main.4b8a9252.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 APPROVAL: \"APPROVAL\",\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 OFFER_CHOICE_APPROVAL: \"OFFER_CHOICE_APPROVAL\",\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 APPROVAL: 'mp_1_approval',\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 OFFER_CHOICE_APPROVAL: \"mp_3_offer_choice_approval\",\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.APPROVAL),\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.OFFER_CHOICE_APPROVAL),\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\nconst PAPERS_GENERATOR_DEMAND_APPROVAL_HISTORY = (demandId) => `${SERVER_URL}/servlet/HomeServlet?MP_module=demand&MP_action=demandInternalApiApprovalPrintHistory&demandIdentity=${demandId}`;\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 PAPERS_GENERATOR_DEMAND_APPROVAL_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 DEMAND_BACK_TO_PREPARING: (id) => DEMAND_BASE(id) + '/publication/backToPreparing'\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 DEMAND_BACK_TO_MODIFICATION: (id) => DEMAND_MODIFICATION(id) + '/backToModification'\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 OFFER_CHOICE_APPROVAL_BASE = (demandId) => `${DEMAND_BASE(demandId)}/evaluation/choice/approval`;\r\n\r\nconst offerChoiceApproval = {\r\n OFFER_CHOICE_APPROVAL: OFFER_CHOICE_APPROVAL_BASE,\r\n OFFER_CHOICE_APPROVAL_SELECT_APPROVERS: (demandId) => `${OFFER_CHOICE_APPROVAL_BASE(demandId)}/selectApprovers`,\r\n OFFER_CHOICE_APPROVAL_SEND_DECISION: (demandId) => `${OFFER_CHOICE_APPROVAL_BASE(demandId)}/sendDecision`,\r\n OFFER_CHOICE_APPROVAL_RESET: (demandId) => `${OFFER_CHOICE_APPROVAL_BASE(demandId)}/reset`,\r\n OFFER_CHOICE_APPROVAL_STOP: (demandId) => `${OFFER_CHOICE_APPROVAL_BASE(demandId)}/stop`,\r\n OFFER_CHOICE_APPROVAL_HISTORY_LIST: (demandId) => `${OFFER_CHOICE_APPROVAL_BASE(demandId)}/history`,\r\n OFFER_CHOICE_APPROVAL_HISTORY: (demandId, approvalId) => `${OFFER_CHOICE_APPROVAL_BASE(demandId)}/history/${approvalId}`,\r\n OFFER_CHOICE_APPROVAL_POSITIONS_LIST: (demandId) => `${OFFER_CHOICE_APPROVAL_BASE(demandId)}/positions`,\r\n OFFER_CHOICE_APPROVAL_HISTORY_GET_APPROVERS: (demandId, approvalId, stageId) => `${DEMAND_APPROVAL_BASE(demandId)}/history/getAvailableApprovers/${approvalId}/${stageId}`,\r\n OFFER_CHOICE_APPROVAL_HISTORY_ADD_APPROVERS: (demandId, approvalId, stageId) => `${DEMAND_APPROVAL_BASE(demandId)}/history/addApprovers/${approvalId}/${stageId}`,\r\n OFFER_CHOICE_APPROVAL_HISTORY_DELETE_APPROVER: (demandId, approvalId, stageId) => `${OFFER_CHOICE_APPROVAL_BASE(demandId)}/history/deleteApprover/${approvalId}/${stageId}`,\r\n OFFER_CHOICE_APPROVAL_VALIDATE: (demandId) => `${OFFER_CHOICE_APPROVAL_BASE(demandId)}/validate`\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 DEMAND_APPROVAL_BASE = (demandId) => `${DEMAND_BASE(demandId)}/approval`;\r\nconst demandApproval = {\r\n DEMAND_APPROVAL: DEMAND_APPROVAL_BASE,\r\n DEMAND_APPROVAL_SELECT_APPROVERS: (demandId) => `${DEMAND_APPROVAL_BASE(demandId)}/selectApprovers`,\r\n DEMAND_APPROVAL_SEND_DECISION: (demandId) => `${DEMAND_APPROVAL_BASE(demandId)}/sendDecision`,\r\n DEMAND_APPROVAL_RESET: (demandId) => `${DEMAND_APPROVAL_BASE(demandId)}/reset`,\r\n DEMAND_APPROVAL_STOP: (demandId) => `${DEMAND_APPROVAL_BASE(demandId)}/stop`,\r\n DEMAND_APPROVAL_HISTORY_LIST: (demandId) => `${DEMAND_APPROVAL_BASE(demandId)}/history`,\r\n DEMAND_APPROVAL_HISTORY: (demandId, approvalId) => `${DEMAND_APPROVAL_BASE(demandId)}/history/${approvalId}`,\r\n DEMAND_APPROVAL_HISTORY_GET_APPROVERS: (demandId, approvalId, stageId) => `${DEMAND_APPROVAL_BASE(demandId)}/history/getAvailableApprovers/${approvalId}/${stageId}`,\r\n DEMAND_APPROVAL_HISTORY_ADD_APPROVERS: (demandId, approvalId, stageId) => `${DEMAND_APPROVAL_BASE(demandId)}/history/addApprovers/${approvalId}/${stageId}`,\r\n DEMAND_APPROVAL_HISTORY_DELETE_APPROVER: (demandId, approvalId, stageId) => `${DEMAND_APPROVAL_BASE(demandId)}/history/deleteApprover/${approvalId}/${stageId}`,\r\n DEMAND_APPROVAL_VALIDATE: (demandId) => `${DEMAND_APPROVAL_BASE(demandId)}/validate`\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 ...demandApproval,\r\n ...offerChoiceApproval,\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().nullable(),\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 labelClassName,\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\terrorMsg\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 = !!errorMsg ? errorMsg : 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\nconst backToModification = async (id) => {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_BACK_TO_MODIFICATION(id));\r\n if (res.success) {\r\n return res.result;\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 backToModification,\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 DeleteIconOutlined from '@material-ui/icons/DeleteOutline';\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 outlined = false,\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 AddIconOutlined from '@material-ui/icons/AddCircleOutline';\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction WorkableIconAddButton({\r\n\ttooltip = Tr('add'),\r\n\toutlined = false,\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 optionalItemsEnabled\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 {optionalItemsEnabled && 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 optionalItemsEnabled\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 {!!optionalItemsEnabled && 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\nimport {connect} from \"react-redux\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\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 demandValidation\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 priceCriterion = criterions.find(x => x.type === CRYTERIUM_TYPE.PRICE);\r\n const weightVisible = priceCriterion && priceCriterion.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 section = !!demandValidation && demandValidation.find((x) => x.section === DemandValidation.DEALINGS);\r\n const optionalItemsEnabled = !!section && section.optionalItemsEnabled;\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 connect((state) => ({\r\n demandValidation: state.resources.demandValidation\r\n}), {})(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 === 'demandApprovalPrintHistory')\r\n url = Endpoints.PAPERS_GENERATOR_DEMAND_APPROVAL_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\nimport {DemandValidationSectionStatus} from \"../constants/DemandValidationSectionStatus\";\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 const {resources} = reduxStore.getState();\r\n const approvalSection = resources.demandValidation?.find(x => x.section === DemandValidation.OFFER_CHOICE_APPROVAL);\r\n if (!!approvalSection && DemandValidationSectionStatus.UNAVAILABLE !== approvalSection.status)\r\n await validateSection(DemandValidation.OFFER_CHOICE_APPROVAL, 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 const {resources} = reduxStore.getState();\r\n const approvalSection = resources.demandValidation?.find(x => x.section === DemandValidation.OFFER_CHOICE_APPROVAL);\r\n if (!!approvalSection && DemandValidationSectionStatus.UNAVAILABLE !== approvalSection.status)\r\n await validateSection(DemandValidation.OFFER_CHOICE_APPROVAL, 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 Tr from 'translations/Translations';\r\n\r\nexport const OfferChoiceState = {\r\n NEW: \"NEW\",\r\n READY: \"READY\",\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, OfferChoiceState.READY];\r\nexport const isOfferChoiceStateWithDecision = (status) => (_DECISION_STATES.indexOf(status) > -1);\r\n","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\nimport {OfferChoiceState} from \"../constants/OfferChoiceState\";\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 choiceStatusNeedsApproval: {\r\n color: theme.palette.common.error\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 const resolveRowStatus = (offerChoiceRow) => {\r\n if (OfferChoiceState.REJECTED === offerChoiceRow.state)\r\n return 'offer_choice_rejected';\r\n\r\n let status = offerChoiceRow.canceled ? 'offer_choice_cancelled' : 'offer_choice_chosen';\r\n if (chosenStatusDone && OfferChoiceState.ACCEPTED !== offerChoiceRow.state)\r\n status += ('_' + offerChoiceRow.state.toLowerCase());\r\n return status;\r\n }\r\n\r\n return (\r\n \r\n {auctionHistoryVisible &&\r\n \r\n }\r\n\r\n {(chosenStatusDone || OfferChoiceState.REJECTED === offerChoiceRow.state) &&\r\n \r\n {Tr(resolveRowStatus(offerChoiceRow))}\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 ? (OfferChoiceState.PENDING !== offerChoiceRow.state &&\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 {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 Icon from \"@material-ui/icons/CheckBox\";\r\nimport IconOff from \"@material-ui/icons/HighlightOff\";\r\nimport {Typography, withStyles} from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport {DemandValidationTr} from \"constants/DemandValidation\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport Button from \"components/Button\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport React from \"react\";\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 info: {\r\n marginBottom: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction NoActiveApproval(\r\n {\r\n approvalObjectName,\r\n approvalSection,\r\n uncompletedApprovalObjectSections,\r\n startApproval,\r\n working,\r\n classes\r\n }) {\r\n\r\n return (\r\n \r\n {\r\n uncompletedApprovalObjectSections.length === 0 ?\r\n \r\n :\r\n \r\n }\r\n \r\n {\r\n uncompletedApprovalObjectSections.length === 0 ?\r\n (approvalSection.status === DemandValidationSectionStatus.ERROR ? Tr(`${approvalObjectName}_preparing_approval_ready`) : Tr(`${approvalObjectName}_preparing_approval_finished`)) :\r\n (<>\r\n {Tr(`${approvalObjectName}_preparing_approval_error`)}\r\n {\r\n uncompletedApprovalObjectSections.map((x, i) =>\r\n `\"${DemandValidationTr[x]}\"${\r\n i === uncompletedApprovalObjectSections.length - 1 ? '.' : ', '\r\n }`\r\n )}\r\n )\r\n }\r\n \r\n {uncompletedApprovalObjectSections.length === 0 && approvalSection.status === DemandValidationSectionStatus.ERROR &&\r\n \r\n startApproval()}\r\n >\r\n {Tr('startApproval')}\r\n \r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nNoActiveApproval.propTypes = {\r\n approvalObjectName: PropTypes.string,\r\n startApproval: PropTypes.func\r\n}\r\n\r\nexport default withStyles(style)(NoActiveApproval);","import {Collapse, Typography, withStyles} from \"@material-ui/core\";\r\nimport React, {useState} from \"react\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport Checkbox from \"components/Checkbox\";\r\nimport Tr from \"translations/Translations\";\r\nimport TextInput from \"components/TextInput\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport clsx from \"clsx\";\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 title: {\r\n marginLeft: theme.spacing(),\r\n wordBreak: 'break-all',\r\n cursor: 'pointer'\r\n },\r\n approver: {\r\n marginLeft: theme.spacing(4)\r\n },\r\n approverList: {\r\n paddingBottom: theme.spacing(2),\r\n paddingLeft: theme.spacing(4)\r\n },\r\n error: {\r\n color: theme.palette.error.main\r\n }\r\n})\r\n\r\nfunction StageApprovers(\r\n {\r\n id,\r\n stage,\r\n opened,\r\n formikProps,\r\n classes\r\n }) {\r\n\r\n const [open, setOpen] = useState(opened);\r\n const isError = stage.approvers.some((a, i) => getObjectValue(`${id}.approvers.${i}.selected`, formikProps.errors, false));\r\n\r\n return (<>\r\n \r\n setOpen(!open)}\r\n >\r\n {stage.name}\r\n \r\n\r\n \r\n setOpen(!open)}\r\n expanded={open}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {Tr('selectApproversMinCountInfo', {count: stage.minAssignedApproverCount})}\r\n {stage.approvers.map((approver) => {\r\n const index = stage.approvers.map(a => a.identity).indexOf(approver.identity);\r\n return (\r\n \r\n )\r\n })}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default withStyles(style)(StageApprovers)","import VS from \"constants/ValidationShema\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst stageValidation = (stage, approval) => {\r\n const stageModel = approval.stages.find(s => s.identity === stage.identity);\r\n const stageShape = {\r\n approvers: VS.any().test('min_selected', Tr('selectApproversMinCountError'), () => {\r\n return stage.approvers.filter(a => a.selected === true).length >= stageModel.minAssignedApproverCount;\r\n }),\r\n assigneeComment: VS.stringMaxNoRq(255).test('not_empty', Tr('required_field'), () => {\r\n return !stageModel.useAssignerComments || stage.assigneeComment.length > 0;\r\n })\r\n };\r\n\r\n return VS.object(stageShape);\r\n}\r\n\r\nexport const selectApproversValidationShema = (approval) => {\r\n return VS.object({\r\n stages: VS.arrayOf(VS.lazy(stage => stageValidation(stage, approval)))\r\n });\r\n}\r\n\r\nexport const approvalDecisionValidationSchema = (stage) => {\r\n return VS.lazy(approvalDecision => {\r\n const shape = {\r\n decision: VS.string(),\r\n approverComment: VS.stringNoRq().test('reject_comment', Tr('approverRejectCommentRequired'), () => {\r\n return !!approvalDecision.approverComment || (approvalDecision.decision === 'accept' && !stage.acceptRequireComment)\r\n || (approvalDecision.decision === 'reject' && !stage.rejectRequireComment)\r\n || (approvalDecision.decision === 'masterApprove' && !stage.masterApproveRequireComment)\r\n || (approvalDecision.decision === 'masterReject' && !stage.masterRejectRequireComment)\r\n || (approvalDecision.decision === 'masterStop' && !stage.masterStopRequireComment);\r\n })\r\n }\r\n return VS.object(shape);\r\n })\r\n}","\r\nexport const showSelectApproversSection = (activeApproval, currentStage) => {\r\n return activeApproval?.canSelectApprovers && currentStage?.status <= 1;\r\n}\r\n\r\nexport const showApprovalDecisionSection = (activeApproval, currentStage, loggedUser) => {\r\n const approvalUser = currentStage?.approvers.find(a => a.userIdentity === loggedUser.identity || a.userIdentity === loggedUser.replacedUserId)\r\n return activeApproval?.formVisible && currentStage?.status === 2\r\n && (approvalUser?.status === 'NOTIFICATION_SENT' || activeApproval.canMasterReject || activeApproval.canMasterApprove);\r\n}\r\n\r\nexport const canApprove = (currentStage, loggedUser) => {\r\n const approvalUser = currentStage?.approvers.find(a => a.userIdentity === loggedUser.identity || a.userIdentity === loggedUser.replacedUserId)\r\n return currentStage?.status === 2 && approvalUser?.status === 'NOTIFICATION_SENT';\r\n}\r\n\r\nexport const canMasterApprove = (activeApproval, currentStage) => {\r\n return currentStage?.status === 2 && activeApproval.canMasterApprove;\r\n}\r\n\r\nexport const canMasterReject = (activeApproval, currentStage) => {\r\n return currentStage?.status === 2 && activeApproval.canMasterReject;\r\n}\r\n\r\nexport const canMasterReset = (activeApproval, currentStage) => {\r\n return currentStage?.status === 1 && activeApproval.canResetApproval;\r\n}\r\n\r\nexport const canAddApprover = (approval, stage) => {\r\n return approval.canAddApprovers && stage.status <= 2 && stage.approvers?.length > 0;\r\n}\r\n\r\nexport const canDeleteApprover = (approval, stage, approver) => {\r\n return approval.canDeleteApprovers && stage.status <= 2 && stage.approvers.length > 1 && stage.approvers.length > stage.minApproversAcceptedCount\r\n && (approver.status === 'NOTIFICATION_SENT' || approver.status === 'NOTIFICATION_NOT_SENT_YET');\r\n}","import React, {useState} from \"react\";\r\nimport {Divider, Typography, withStyles} from \"@material-ui/core\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport StageApprovers from \"./StageApprovers\";\r\nimport Tr from \"translations/Translations\";\r\nimport Button from \"components/Button\";\r\nimport Form from \"components/Form\";\r\nimport {selectApproversValidationShema} from \"./constants/validationSchema\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport {canMasterReset} from \"./lib/ApprovalAccessUtils\";\r\nimport * as PropTypes from \"prop-types\";\r\nimport ShowErrorOnFailedSubmit from \"components/ShowErrorOnFailedSubmit\";\r\nimport reduxStore from \"redux/store\";\r\n\r\nconst style = 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 selectApprovers: {\r\n justifyContent: 'space-between',\r\n alignItems: 'center'\r\n },\r\n approval: {\r\n marginLeft: theme.spacing(2)\r\n },\r\n buttons: {\r\n marginTop: theme.spacing()\r\n },\r\n mr: {\r\n marginRight: theme.spacing(1)\r\n }\r\n});\r\n\r\nfunction SelectApprovers(\r\n {\r\n approval,\r\n sendToApproval,\r\n resetApproval,\r\n stopApproval,\r\n classes,\r\n working\r\n }) {\r\n\r\n const [checkError, setCheckError] = useState(false);\r\n const [masterResetOpen, setMasterResetOpen] = useState(false);\r\n const [masterStopOpen, setMasterStopOpen] = useState(false);\r\n const stageForSelectApprovers = approval.stages.filter(s => s.status === 1 || (approval.selectApproversAtStart === true && s.status === 0));\r\n\r\n const initialValues = () => {\r\n const o = {};\r\n o.identity = approval.identity;\r\n o.stages = approval.stages.map(stage => {\r\n const s = {};\r\n s.identity = stage.identity;\r\n s.approvers = stage.approvers.map(a => ({\r\n ...a,\r\n selected: false\r\n }));\r\n s.assigneeComment = null;\r\n return s;\r\n });\r\n return o;\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n setCheckError(true);\r\n }}\r\n >\r\n {(formikProps) => {\r\n return (\r\n <>\r\n \r\n {approval.name}\r\n
\r\n {Tr('selectApproversInfo')}\r\n {stageForSelectApprovers.map((stage, index) => (\r\n
\r\n \r\n \r\n
\r\n ))\r\n }\r\n
\r\n \r\n {canMasterReset(approval, stageForSelectApprovers[0]) && setMasterResetOpen(true)}\r\n className={classes.mr}\r\n variant={'outlined'}\r\n >\r\n {Tr('approverMasterReset')}\r\n }\r\n setMasterStopOpen(true)}\r\n className={classes.mr}\r\n variant={'outlined'}\r\n >\r\n {Tr('approverMasterStop')}\r\n \r\n {\r\n const { form } = reduxStore.getState();\r\n form['Approval']();\r\n }}\r\n className={classes.mr}\r\n >\r\n {Tr('sendToApproval')}\r\n \r\n \r\n {\r\n resetApproval();\r\n setMasterResetOpen(false);\r\n }}\r\n onCancel={() => setMasterResetOpen(false)}\r\n confirmText=\"approverMasterReset_confirm\"\r\n />\r\n {\r\n stopApproval();\r\n setMasterStopOpen(false);\r\n }}\r\n onCancel={() => setMasterStopOpen(false)}\r\n confirmText=\"approverMasterStop_confirm\"\r\n />\r\n \r\n )}}\r\n \r\n );\r\n}\r\n\r\nSelectApprovers.propTypes = {\r\n approval: PropTypes.object,\r\n sendToApproval: PropTypes.func,\r\n resetApproval: PropTypes.func,\r\n stopApproval: PropTypes.func,\r\n classes: PropTypes.any,\r\n working: PropTypes.bool\r\n}\r\n\r\nexport default withStyles(style)(SelectApprovers);","import Form from \"components/Form\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport Button from \"components/Button\";\r\nimport React, {useState} from \"react\";\r\nimport TextInput from \"components/TextInput\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport {approvalDecisionValidationSchema} from \"./constants/validationSchema\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {canApprove, canMasterApprove, canMasterReject} from \"./lib/ApprovalAccessUtils\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst style = 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 ml2: {\r\n marginLeft: theme.spacing(2)\r\n },\r\n mr: {\r\n marginRight: theme.spacing(1)\r\n },\r\n approvalStage: {\r\n paddingLeft: theme.spacing(2),\r\n paddingBottom: theme.spacing(2)\r\n },\r\n buttons: {\r\n marginTop: theme.spacing()\r\n },\r\n uploadLabel: {\r\n fontWeight: theme.typography.fontWeightRegular\r\n }\r\n});\r\n\r\nfunction ApprovalDecision(\r\n {\r\n approval,\r\n stage,\r\n loggedUser,\r\n sendDecision,\r\n classes,\r\n working\r\n }) {\r\n\r\n const [masterApproveOpen, setMasterApproveOpen] = useState(false);\r\n const [masterRejectOpen, setMasterRejectOpen] = useState(false);\r\n\r\n const decisionMade = (decision, formikProps) => {\r\n formikProps.setFieldValue('decision', decision, true).then(() => {\r\n formikProps.submitForm();\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n }}\r\n >\r\n {(formikProps) => {\r\n return (\r\n <>\r\n {approval.name}\r\n
\r\n {stage.name}\r\n {!!approval.assignee.comment && }\r\n \r\n {approval.approversAttachments && }\r\n
\r\n \r\n {canMasterReject(approval, stage) && setMasterRejectOpen(true)}\r\n className={classes.mr}\r\n variant={'outlined'}\r\n >\r\n {Tr('approverMasterReject')}\r\n }\r\n {canMasterApprove(approval, stage) && setMasterApproveOpen(true)}\r\n className={classes.mr}\r\n variant={'outlined'}\r\n >\r\n {Tr('approverMasterApprove')}\r\n }\r\n {canApprove(stage, loggedUser) && decisionMade('reject', formikProps)}\r\n className={classes.mr}\r\n >\r\n {Tr('approverReject')}\r\n }\r\n {canApprove(stage, loggedUser) && decisionMade('accept', formikProps)}\r\n className={classes.mr}\r\n >\r\n {Tr('approverApprove')}\r\n }\r\n \r\n {\r\n decisionMade('masterApprove', formikProps);\r\n setMasterApproveOpen(false);\r\n }}\r\n onCancel={() => setMasterApproveOpen(false)}\r\n confirmText=\"approverMasterApprove_confirm\"\r\n />\r\n {\r\n decisionMade('masterReject', formikProps);\r\n setMasterRejectOpen(false);\r\n }}\r\n onCancel={() => setMasterRejectOpen(false)}\r\n confirmText=\"approverMasterReject_confirm\"\r\n />\r\n \r\n )\r\n }}\r\n \r\n );\r\n}\r\n\r\nApprovalDecision.propTypes = {\r\n approval: PropTypes.object,\r\n stage: PropTypes.object,\r\n loggedUser: PropTypes.object,\r\n sendDecision: PropTypes.func,\r\n classes: PropTypes.any,\r\n working: PropTypes.bool\r\n}\r\n\r\nexport default withStyles(style)(ApprovalDecision);","import {Collapse, Table, TableCell, TableRow, Tooltip, withStyles} from \"@material-ui/core\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport React, {useRef, useState} from \"react\";\r\nimport Typography from \"components/Typography\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport Tr from \"translations/Translations\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport CheckCircleOutlineIcon from \"@material-ui/icons/CheckCircleOutline\";\r\nimport HighlightOffIcon from \"@material-ui/icons/HighlightOff\";\r\nimport HelpOutlineIcon from \"@material-ui/icons/HelpOutline\";\r\nimport clsx from \"clsx\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport * as PropTypes from \"prop-types\";\r\nimport {canAddApprover, canDeleteApprover} from \"./lib/ApprovalAccessUtils\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport WorkableIconAddButton from \"components/button/WorkableIconAddButton\";\r\nimport Confirm from \"../../popup/confirm/Confirm\";\r\n\r\n\r\nconst style = (theme) => ({\r\n root: {\r\n '&>*:nth-child(1)': {\r\n flexGrow: 1,\r\n }\r\n },\r\n title: {\r\n marginLeft: theme.spacing(),\r\n wordBreak: 'break-all',\r\n cursor: 'pointer'\r\n },\r\n fullWidth: {\r\n width: '100%'\r\n },\r\n approvalHistory: {\r\n paddingBottom: theme.spacing(2),\r\n paddingLeft: theme.spacing(4)\r\n },\r\n bold: {\r\n fontWeight: theme.typography.fontWeightBold\r\n },\r\n avoided: {\r\n color: theme.palette.action.disabled\r\n },\r\n waiting: {color: theme.palette.primary.main},\r\n accepted: {color: theme.palette.common.success},\r\n rejected: {color: theme.palette.common.error},\r\n table: {\r\n '&>tbody>tr:last-child>td': {\r\n borderBottom: 'none'\r\n }\r\n },\r\n noBorderBottom: {\r\n borderBottom: 'none'\r\n },\r\n approverAlign: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center'\r\n }\r\n})\r\n\r\nfunction ApprovalHistory(\r\n {\r\n approvalObjectName,\r\n approvalHistoryHeader,\r\n approvalHistory,\r\n loadApprovalHistory,\r\n showApproverPopup,\r\n deleteApprover,\r\n classes\r\n }) {\r\n\r\n const [open, setOpen] = useState(false);\r\n const [addWorking, setAddWorking] = useState(0);\r\n const [deleteWorking, setDeleteWorking] = useState(0);\r\n const [deleteApproverOpen, setDeleteApproverOpen] = useState(false);\r\n const approvalStageAndApprover = useRef([]);\r\n\r\n const openApprovalHistory = () => {\r\n if (open) {\r\n setOpen(false);\r\n } else {\r\n if (!approvalHistory) {\r\n loadApprovalHistory(approvalHistoryHeader.approvalId).then(() => {\r\n setOpen(true);\r\n });\r\n } else {\r\n setOpen(true);\r\n }\r\n }\r\n }\r\n\r\n const approvalStatus = (status) => {\r\n if (status === 'ACCEPTED')\r\n return ;\r\n if (status === 'MASTER_APPROVED')\r\n return ;\r\n else if (status === 'REJECTED')\r\n return \r\n else if (status === 'MASTER_REJECTED')\r\n return \r\n else if (status === 'MASTER_STOPPED')\r\n return \r\n else if (status === 'AVOIDED')\r\n return ;\r\n else if (status === 'NOTIFICATION_SENT')\r\n return ;\r\n else if (status === 'NOTIFICATION_NOT_SENT_YET')\r\n return ;\r\n else\r\n return <>\r\n }\r\n\r\n const doShowApproverPopup = (approval, stage) => {\r\n setAddWorking(stage.identity);\r\n showApproverPopup(approval, stage).finally(() => {\r\n setAddWorking(0);\r\n })\r\n }\r\n\r\n const doDeleteApprover = (approval, stage, approver) => {\r\n setDeleteWorking(approver.identity);\r\n deleteApprover(approval, stage, approver).then(resp => {\r\n setDeleteWorking(0);\r\n });\r\n }\r\n\r\n return (<>\r\n \r\n \r\n openApprovalHistory()}\r\n >\r\n {approvalHistoryHeader.name}\r\n \r\n openApprovalHistory()}\r\n >\r\n {Tr('approval_history_start_date')}: {moment(approvalHistoryHeader.dateInserted).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n \r\n\r\n \r\n openApprovalHistory()}\r\n expanded={open}\r\n />\r\n \r\n \r\n\r\n \r\n {!approvalHistory && }\r\n {!!approvalHistory &&\r\n \r\n \r\n \r\n {approvalHistory.stages.map((s, index) =>\r\n \r\n \r\n \r\n {s.name}{canAddApprover(approvalHistory, s) &&\r\n <>\r\n
\r\n doShowApproverPopup(approvalHistory, s)}\r\n tooltip={Tr('approval_history_addApprover')}\r\n outlined={true}\r\n color='primary'\r\n working={addWorking === s.identity}\r\n disabled={addWorking > 0}\r\n />\r\n }\r\n
\r\n {Tr('approval_history_sender')}\r\n {Tr('approval_history_sender_senddate')}\r\n {Tr('approval_history_comment')}\r\n
\r\n \r\n {!!s.sender ? `${s.sender.firstName} ${s.sender.lastName} (${s.sender.email})` : '--'}\r\n {!!s.sender ? s.sender.decisionDate : ''}\r\n {!!s.sender?.comment && }\r\n \r\n \r\n {Tr('approval_history_approver')}\r\n {Tr('approval_history_approver_received')}\r\n {Tr('approval_history_approver_decision')}\r\n {Tr('approval_history_approver_status')}\r\n {Tr('approval_history_comment')}\r\n \r\n {s.approvers.length > 0 && s.approvers.map(a => (\r\n \r\n \r\n
\r\n {`${a.firstName} ${a.lastName} (${a.email})`}\r\n {canDeleteApprover(approvalHistory, s, a) &&\r\n {\r\n approvalStageAndApprover.current = [approvalHistory, s, a];\r\n setDeleteApproverOpen(true);\r\n }}\r\n tooltip={Tr('approval_history_deleteApprover')}\r\n outlined={true}\r\n color='primary'\r\n working={deleteWorking === a.identity}\r\n disabled={deleteWorking !== 0}\r\n />\r\n }\r\n
\r\n
\r\n {a.messageReceiveDate}\r\n {a.decisionDate}\r\n {approvalStatus(a.status)}\r\n {!!a.comment && }\r\n
\r\n )\r\n )}\r\n {s.approvers.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\n setDeleteApproverOpen(false);\r\n doDeleteApprover(approvalStageAndApprover.current[0], approvalStageAndApprover.current[1], approvalStageAndApprover.current[2]);\r\n approvalStageAndApprover.current = [];\r\n }}\r\n onCancel={() => setDeleteApproverOpen(false)}\r\n confirmText=\"approval_history_deleteApprover_confirm\"\r\n />\r\n );\r\n}\r\n\r\nApprovalHistory.propTypes = {\r\n approvalObjectName: PropTypes.string,\r\n approvalHistoryHeader: PropTypes.object,\r\n approvalHistory: PropTypes.object,\r\n loadApprovalHistory: PropTypes.func,\r\n showApproverPopup: PropTypes.func,\r\n deleteApprover: PropTypes.func,\r\n classes: PropTypes.any,\r\n autoOpen: PropTypes.bool\r\n}\r\n\r\nexport default connect((state, props) => ({\r\n approvalHistory: state.resources?.[`${props.approvalObjectName}ApprovalHistory`]?.[`${props.approvalHistoryHeader.approvalId}`]\r\n}), {})(withStyles(style)(ApprovalHistory))","import React, {useEffect} from 'react'\r\nimport {Checkbox as MuiCheckbox, FormHelperText, 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\nimport TextInput from \"components/TextInput\";\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 hidden: {\r\n display: 'none'\r\n }\r\n})\r\n\r\nlet typingStopTimeout = null;\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 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 search = formikProps.values.search;\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 useEffect(() => {\r\n clearTimeout(typingStopTimeout);\r\n typingStopTimeout = setTimeout(() => {\r\n if (!search || search === '') {\r\n formikProps.setFieldValue('hidden', []);\r\n } else {\r\n const elementsToHide = [];\r\n elementList.forEach(e => {\r\n if (e.firstName.toLowerCase().includes(search.toLowerCase())\r\n || e.lastName.toLowerCase().includes(search.toLowerCase())\r\n || e.email.toLowerCase().includes(search.toLowerCase())) {\r\n } else {\r\n elementsToHide.push(e.identity);\r\n }\r\n });\r\n formikProps.setFieldValue('hidden', elementsToHide);\r\n }\r\n }, 500);\r\n return () => {\r\n clearTimeout(typingStopTimeout);\r\n }\r\n // eslint-disable-next-line\r\n }, [search])\r\n\r\n const isError = editable && !!errorValue && Boolean(touched);\r\n const helperText = errorValue || ' ';\r\n return (\r\n \r\n \r\n ,\r\n Tr('column_lp'),\r\n Tr('user')\r\n ]}\r\n items={elementList.filter(x => !formikProps.values.hidden.includes(x.identity)).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 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 {Divider, withStyles} from \"@material-ui/core\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport React, {useRef, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport ApprovalHistory from \"./ApprovalHistory\";\r\nimport * as PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Form from \"components/Form\";\r\nimport reduxStore from \"redux/store\";\r\nimport AddApproversTable from \"./AddApproversTable\";\r\nimport * as Yup from \"yup\";\r\nimport VS from \"constants/ValidationShema\";\r\n\r\n\r\nconst style = (theme) => ({\r\n title: {\r\n marginTop: theme.spacing(4),\r\n marginLeft: theme.spacing(2)\r\n },\r\n fullWidth: {\r\n width: '100%'\r\n }\r\n})\r\n\r\nfunction ApprovalHistoryList(\r\n {\r\n approvalObjectName,\r\n approvalHistoryList,\r\n loadApprovalHistory,\r\n getAvailableApprovers,\r\n addApprovers,\r\n deleteApprover,\r\n classes\r\n }) {\r\n\r\n const approvalAndStage = useRef([]);\r\n const [availableApprovers, setAvailableApprovers] = useState(null);\r\n const [working, setWorking] = useState(false);\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr(\"cancel\"), () => {\r\n approvalAndStage.current = null;\r\n setAvailableApprovers(null);\r\n }, \"outlined\"));\r\n buttons.push(createButton(Tr('approval_history_addApprover'), () => {\r\n const {form} = reduxStore.getState();\r\n form['ApprovalHistoryAddApproval']();\r\n }, undefined, !availableApprovers.length || working));\r\n return buttons;\r\n }\r\n\r\n const validationSchema = Yup.object().shape({\r\n approvers: VS.any().test(\"approverSelected\", Tr(\"approval_history_addApprover_atLeastOne\"), (e) => {\r\n const selIndex = Object.keys(e).findIndex(x => e[x] === true);\r\n return selIndex > -1;\r\n })\r\n })\r\n\r\n const showApproverPopup = async (approval, stage) => {\r\n const resp = await getAvailableApprovers(approval, stage);\r\n if (!!resp) {\r\n approvalAndStage.current = [approval.identity, stage.identity];\r\n setAvailableApprovers(resp)\r\n }\r\n }\r\n\r\n const doAddApprovers = (values) => {\r\n setWorking(true);\r\n addApprovers(approvalAndStage.current[0], approvalAndStage.current[1], Object.keys(values.approvers).filter(a => values.approvers[a] === true).map(a => Number(a))).then(resp => {\r\n if (resp) {\r\n approvalAndStage.current = null;\r\n setAvailableApprovers(null);\r\n } else {\r\n setWorking(false);\r\n }\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n {Tr('approval_history')}\r\n \r\n {approvalHistoryList.map((approvalHistoryHeader, index) => (\r\n
\r\n \r\n \r\n
\r\n ))\r\n }\r\n \r\n {!!availableApprovers && \r\n \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 }, {}),\r\n search: '',\r\n hidden: []\r\n }}\r\n validationSchema={validationSchema}\r\n onSubmit={doAddApprovers}\r\n id={'ApprovalHistoryAddApproval'}\r\n >\r\n {(formikProps) => (\r\n \r\n \r\n {\r\n !(availableApprovers.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\nApprovalHistoryList.propTypes = {\r\n approvalObjectName: PropTypes.string,\r\n approvalHistoryList: PropTypes.array,\r\n loadApprovalHistory: PropTypes.func,\r\n classes: PropTypes.any\r\n}\r\n\r\nexport default withStyles(style)(ApprovalHistoryList);","import {connect} from \"react-redux\";\r\nimport {withRouter} from \"react-router\";\r\nimport React from \"react\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {Typography, withStyles} from \"@material-ui/core\";\r\nimport NoActiveApproval from \"./NoActiveApproval\";\r\nimport SelectApprovers from \"./SelectApprovers\";\r\nimport ApprovalDecision from \"./ApprovalDecision\";\r\nimport IconHelp from \"@material-ui/icons/HelpOutline\";\r\nimport Tr from \"translations/Translations\";\r\nimport ApprovalHistoryList from \"./ApprovalHistoryList\";\r\nimport {showApprovalDecisionSection, showSelectApproversSection} from \"./lib/ApprovalAccessUtils\";\r\nimport * as PropTypes from \"prop-types\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n hidden: {\r\n display: 'none'\r\n },\r\n icon: theme.components.icon,\r\n center: {\r\n textAlign: \"center\"\r\n },\r\n itemClassName: {\r\n width: '100%'\r\n }\r\n})\r\n\r\nfunction Approval(\r\n {\r\n approvalObjectName,\r\n approvalSection,\r\n uncompletedApprovalObjectSections,\r\n approval,\r\n approvalHistoryList,\r\n loggedUser,\r\n startApproval,\r\n sendToApproval,\r\n resetApproval,\r\n stopApproval,\r\n sendDecision,\r\n loadApprovalHistory,\r\n getAvailableApprovers,\r\n addApprovers,\r\n deleteApprover,\r\n working,\r\n classes\r\n }) {\r\n\r\n const currentStage = !!approval ? approval.stages.find(s => s.status < 3) : null;\r\n\r\n const showNoApproval = !approval;\r\n const showSelectApprovers = showSelectApproversSection(approval, currentStage);\r\n const showApprovalDecisions = showApprovalDecisionSection(approval, currentStage, loggedUser);\r\n\r\n return (
\r\n \r\n {showNoApproval && }\r\n {showSelectApprovers && }\r\n {showApprovalDecisions && }\r\n {!showNoApproval && !showSelectApprovers && !showApprovalDecisions &&\r\n \r\n \r\n {Tr(`${approvalObjectName}_preparing_approval_during`)}\r\n \r\n }\r\n {approvalHistoryList?.length > 0 && }\r\n \r\n
);\r\n}\r\n\r\nApproval.propTypes = {\r\n approvalObjectName: PropTypes.string,\r\n approvalSection: PropTypes.object,\r\n uncompletedApprovalObjectSections: PropTypes.array,\r\n approval: PropTypes.object,\r\n approvalHistoryList: PropTypes.array,\r\n loggedUser: PropTypes.object,\r\n startApproval: PropTypes.func,\r\n sendToApproval: PropTypes.func,\r\n resetApproval: PropTypes.func,\r\n stopApproval: PropTypes.func,\r\n sendDecision: PropTypes.func,\r\n working: PropTypes.bool,\r\n classes: PropTypes.any\r\n}\r\n\r\nexport default connect((state) => ({\r\n loggedUser: state.resources.userData\r\n}), {})(withStyles(style)(withRouter(Approval)));","import {RestRequestGET, RestRequestPOST} from \"libs/RestRequest\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport reduxStore from \"redux/store\";\r\nimport {clearResource, setResource, setSaveStatusError} from \"redux/actions\";\r\n\r\nconst OFFER_CHOICE_ACTIVE_APPROVAL_RESOURCE_ID = 'offerChoiceActiveApproval';\r\nconst OFFER_CHOICE_APPROVAL_HISTORY_LIST_RESOURCE_ID = 'offerChoiceApprovalHistoryList';\r\nconst OFFER_CHOICE_APPROVAL_HISTORY_RESOURCE_ID = 'offerChoiceApprovalHistory';\r\n\r\nconst getActiveApproval = async (demandId) => {\r\n const res = await RestRequestGET(Endpoints.OFFER_CHOICE_APPROVAL(demandId))\r\n reduxStore.dispatch(\r\n setResource(OFFER_CHOICE_ACTIVE_APPROVAL_RESOURCE_ID, res)\r\n );\r\n}\r\n\r\nconst startApproval = async (demandId, payload) => {\r\n const res = await RestRequestPOST(Endpoints.OFFER_CHOICE_APPROVAL(demandId), payload)\r\n if (res.success) {\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return false;\r\n }\r\n}\r\n\r\nconst selectApprovers = async (demandId, payload) => {\r\n const res = await RestRequestPOST(Endpoints.OFFER_CHOICE_APPROVAL_SELECT_APPROVERS(demandId), payload);\r\n if (res.success) {\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return false\r\n }\r\n}\r\n\r\nconst sendDecision = async (demandId, payload) => {\r\n const res = await RestRequestPOST(Endpoints.OFFER_CHOICE_APPROVAL_SEND_DECISION(demandId), payload);\r\n if (res.success) {\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return false\r\n }\r\n}\r\n\r\nconst resetApproval = async (demandId) => {\r\n const res = await RestRequestPOST(Endpoints.OFFER_CHOICE_APPROVAL_RESET(demandId));;\r\n if (res.success) {\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return false\r\n }\r\n}\r\n\r\nconst stopApproval = async (demandId) => {\r\n const res = await RestRequestPOST(Endpoints.OFFER_CHOICE_APPROVAL_STOP(demandId));;\r\n if (res.success) {\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return false\r\n }\r\n}\r\n\r\nconst getApprovalHistoryList = async (demandId) => {\r\n const res = await RestRequestGET(Endpoints.OFFER_CHOICE_APPROVAL_HISTORY_LIST(demandId))\r\n reduxStore.dispatch(\r\n setResource(OFFER_CHOICE_APPROVAL_HISTORY_LIST_RESOURCE_ID, res.result)\r\n );\r\n}\r\n\r\nconst getApprovalHistory = async (demandId, approvalId) => {\r\n const res = await RestRequestGET(Endpoints.OFFER_CHOICE_APPROVAL_HISTORY(demandId, approvalId));\r\n const {resources} = reduxStore.getState();\r\n if (!!resources[OFFER_CHOICE_APPROVAL_HISTORY_RESOURCE_ID]) {\r\n const approvalHistory = resources[OFFER_CHOICE_APPROVAL_HISTORY_RESOURCE_ID];\r\n approvalHistory[`${approvalId}`] = res.result;\r\n // const newApprovalHistory = {};\r\n // Object.keys(approvalHistory).forEach(k => {\r\n // if (k === `${approvalId}`)\r\n // newApprovalHistory[k] = res.result;\r\n // else\r\n // newApprovalHistory[k] = approvalHistory[k];\r\n // })\r\n reduxStore.dispatch(\r\n setResource(OFFER_CHOICE_APPROVAL_HISTORY_RESOURCE_ID, approvalHistory)\r\n );\r\n } else {\r\n const o = {};\r\n o[`${approvalId}`] = res.result;\r\n reduxStore.dispatch(\r\n setResource(OFFER_CHOICE_APPROVAL_HISTORY_RESOURCE_ID, o)\r\n );\r\n }\r\n}\r\n\r\nconst getPositionsForApproval = async (demandId) => {\r\n const res = await RestRequestGET(Endpoints.OFFER_CHOICE_APPROVAL_POSITIONS_LIST(demandId))\r\n return res.result;\r\n}\r\n\r\nconst getAvailableApprovers = async (demandId, approvalId, stageId) => {\r\n const res = await RestRequestGET(Endpoints.OFFER_CHOICE_APPROVAL_HISTORY_GET_APPROVERS(demandId, approvalId, stageId));\r\n if (res.success) {\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return null;\r\n }\r\n}\r\n\r\nconst addApprovers = async (demandId, approvalId, stageId, approverIds) => {\r\n const res = await RestRequestPOST(Endpoints.OFFER_CHOICE_APPROVAL_HISTORY_ADD_APPROVERS(demandId, approvalId, stageId), {approvers: approverIds});\r\n if (res.success) {\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return false;\r\n }\r\n}\r\n\r\nconst deleteApprover = async (demandId, approval, stage, approver) => {\r\n const res = await RestRequestPOST(Endpoints.OFFER_CHOICE_APPROVAL_HISTORY_DELETE_APPROVER(demandId, approval.identity, stage.identity), {approvers: [approver.identity]});\r\n if (res.success) {\r\n approval.stages = approval.stages.map(s => {\r\n if (s.identity === stage.identity) {\r\n return {\r\n ...s,\r\n approvers: s.approvers.filter(a => a.identity !== approver.identity)\r\n }\r\n } else {\r\n return s;\r\n }\r\n });\r\n const {resources} = reduxStore.getState();\r\n const approvalHistory = resources[OFFER_CHOICE_APPROVAL_HISTORY_RESOURCE_ID];\r\n approvalHistory[`${approval.identity}`] = approval;\r\n reduxStore.dispatch(\r\n setResource(OFFER_CHOICE_APPROVAL_HISTORY_RESOURCE_ID, approvalHistory)\r\n );\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return false;\r\n }\r\n}\r\n\r\nconst validate = async (demandId) => {\r\n return RestRequestGET(Endpoints.OFFER_CHOICE_APPROVAL_VALIDATE(demandId));\r\n}\r\n\r\nconst clearResources = (resId) => reduxStore.dispatch(clearResource(resId));\r\n\r\nexport default {\r\n getActiveApproval,\r\n startApproval,\r\n selectApprovers,\r\n sendDecision,\r\n resetApproval,\r\n stopApproval,\r\n getApprovalHistoryList,\r\n getApprovalHistory,\r\n getPositionsForApproval,\r\n getAvailableApprovers,\r\n addApprovers,\r\n deleteApprover,\r\n validate,\r\n clearResources,\r\n OFFER_CHOICE_ACTIVE_APPROVAL_RESOURCE_ID,\r\n OFFER_CHOICE_APPROVAL_HISTORY_LIST_RESOURCE_ID,\r\n OFFER_CHOICE_APPROVAL_HISTORY_RESOURCE_ID\r\n}","import {withRouter} from \"react-router\";\r\nimport Approval from \"components/complex/approval/Approval\"\r\nimport React, {useEffect, useState} from \"react\";\r\nimport OfferChoiceApprovalService from \"services/OfferChoiceApprovalService\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport DemandSectionsService from \"services/DemandSectionsService\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\nimport Tr from \"translations/Translations\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Form from \"components/Form\";\r\nimport PartsTable from \"components/PartsTable\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Dialog from \"components/Dialog\";\r\nimport * as Yup from \"yup\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport reduxStore from \"redux/store\";\r\n\r\n\r\nfunction OfferChoiceApproval(\r\n {\r\n offerChoiceActiveApproval,\r\n offerChoiceApprovalHistoryList,\r\n demandValidation,\r\n match\r\n }) {\r\n\r\n const demandId = match.params.id;\r\n const [loading, setLoading] = useState(true);\r\n const [working, setWorking] = useState(false);\r\n const [positionsPopup, setPositionsPopup] = useState(false);\r\n const [approvalPositions, setApprovalPositions] = useState([]);\r\n const section = demandValidation.find(x => x.section === DemandValidation.OFFER_CHOICE_APPROVAL);\r\n const uncompletedSections = [];\r\n\r\n useEffect(() => {\r\n const approvalPromise = OfferChoiceApprovalService.getActiveApproval(demandId);\r\n const historyListPromise = OfferChoiceApprovalService.getApprovalHistoryList(demandId);\r\n Promise.all([approvalPromise, historyListPromise]).then(() => {\r\n setLoading(false);\r\n })\r\n\r\n return () => {\r\n OfferChoiceApprovalService.clearResources(OfferChoiceApprovalService.OFFER_CHOICE_ACTIVE_APPROVAL_RESOURCE_ID);\r\n OfferChoiceApprovalService.clearResources(OfferChoiceApprovalService.OFFER_CHOICE_APPROVAL_HISTORY_LIST_RESOURCE_ID);\r\n OfferChoiceApprovalService.clearResources(OfferChoiceApprovalService.OFFER_CHOICE_APPROVAL_HISTORY_RESOURCE_ID);\r\n }\r\n }, [demandId]);\r\n\r\n const choosePositionsForApproval = () => {\r\n setWorking(true);\r\n OfferChoiceApprovalService.getPositionsForApproval(demandId).then((positions) => {\r\n if (positions == null) {\r\n startApproval(null);\r\n } else {\r\n setApprovalPositions(positions);\r\n setPositionsPopup(true);\r\n }\r\n })\r\n }\r\n\r\n const startApproval = (values) => {\r\n setWorking(true);\r\n setPositionsPopup(false);\r\n const payload = values === null ? {list: []} : {list: Object.keys(values.parts).filter(id => values.parts[id] === true)};\r\n OfferChoiceApprovalService.startApproval(demandId, payload).then((res) => {\r\n if (res) {\r\n const approvalPromise = OfferChoiceApprovalService.getActiveApproval(demandId);\r\n const historyPromise = OfferChoiceApprovalService.getApprovalHistoryList(demandId);\r\n const sectionsPromise = DemandSectionsService.getEvaluationSections(demandId);\r\n Promise.all([approvalPromise, historyPromise, sectionsPromise]).then(() => setWorking(false));\r\n } else {\r\n setWorking(false);\r\n }\r\n });\r\n }\r\n\r\n const sendToApproval = (values) => {\r\n setWorking(true);\r\n OfferChoiceApprovalService.selectApprovers(demandId, values).then(res => {\r\n if (res) {\r\n const approvalPromise = OfferChoiceApprovalService.getActiveApproval(demandId);\r\n const historyPromise = OfferChoiceApprovalService.getApprovalHistory(demandId, values.identity);\r\n Promise.all([approvalPromise, historyPromise]).then(() => setWorking(false));\r\n } else {\r\n setWorking(false);\r\n }\r\n });\r\n }\r\n\r\n const resetApproval = () => {\r\n setWorking(true);\r\n OfferChoiceApprovalService.resetApproval(demandId).then(res => {\r\n if (res) {\r\n const approvalPromise = OfferChoiceApprovalService.getActiveApproval(demandId);\r\n const historyPromise = OfferChoiceApprovalService.getApprovalHistoryList(demandId);\r\n Promise.all([approvalPromise, historyPromise]).then(() => setWorking(false));\r\n } else {\r\n setWorking(false);\r\n }\r\n });\r\n }\r\n\r\n const stopApproval = () => {\r\n setWorking(true);\r\n OfferChoiceApprovalService.stopApproval(demandId).then(res => {\r\n if (res) {\r\n const approvalPromise = OfferChoiceApprovalService.getActiveApproval(demandId);\r\n const historyPromise = OfferChoiceApprovalService.getApprovalHistoryList(demandId);\r\n const sectionsPromise = DemandSectionsService.getEvaluationSections(demandId);\r\n Promise.all([approvalPromise, historyPromise, sectionsPromise]).then(() => setWorking(false));\r\n } else {\r\n setWorking(false);\r\n }\r\n });\r\n }\r\n\r\n const sendDecision = (values) => {\r\n setWorking(true);\r\n OfferChoiceApprovalService.sendDecision(demandId, values).then(res => {\r\n if (res) {\r\n OfferChoiceApprovalService.clearResources(OfferChoiceApprovalService.OFFER_CHOICE_ACTIVE_APPROVAL_RESOURCE_ID);\r\n OfferChoiceApprovalService.getApprovalHistory(demandId, values.identity).then(() => {});\r\n DemandSectionsService.getEvaluationSections(demandId).then(() => {});\r\n setWorking(false);\r\n } else {\r\n const approvalPromise = OfferChoiceApprovalService.getActiveApproval(demandId);\r\n const historyPromise = OfferChoiceApprovalService.getApprovalHistory(demandId, values.identity);\r\n Promise.all([approvalPromise, historyPromise]).then(() => setWorking(false));\r\n }\r\n })\r\n }\r\n\r\n const loadApprovalHistory = async (approvalId) => {\r\n return await OfferChoiceApprovalService.getApprovalHistory(demandId, approvalId);\r\n }\r\n\r\n const getAvailableApprovers = async (approval, stage) => {\r\n return await OfferChoiceApprovalService.getAvailableApprovers(demandId, approval.identity, stage.identity);\r\n }\r\n\r\n const addApprovers = async (approvalId, stageId, approverIds) => {\r\n const resp = await OfferChoiceApprovalService.addApprovers(demandId, approvalId, stageId, approverIds);\r\n if (resp) {\r\n OfferChoiceApprovalService.getApprovalHistory(demandId, approvalId).then(() => {});\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const deleteApprover = async (approval, stage, approver) => {\r\n return await OfferChoiceApprovalService.deleteApprover(demandId, approval, stage, approver);\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr(\"cancel\"), () => { setWorking(false); setPositionsPopup(false); setApprovalPositions([]) }, \"outlined\"));\r\n buttons.push(createButton(Tr('sendToApproval'), () => {\r\n const { form } = reduxStore.getState();\r\n form['OfferChoiceApprovalPositions']();\r\n }, undefined, !approvalPositions.length));\r\n return buttons;\r\n }\r\n\r\n const validationSchema = Yup.object().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] === true);\r\n return selIndex > -1;\r\n })\r\n })\r\n\r\n if (loading)\r\n return \r\n\r\n return <>\r\n \r\n {!!positionsPopup && \r\n \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 }, {})\r\n }}\r\n validationSchema={validationSchema}\r\n onSubmit={startApproval}\r\n id={'OfferChoiceApprovalPositions'}\r\n >\r\n {(formikProps) => (\r\n \r\n {\r\n \r\n }\r\n {\r\n !(approvalPositions.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\nexport default connect((state) => ({\r\n offerChoiceActiveApproval: state.resources.offerChoiceActiveApproval,\r\n offerChoiceApprovalHistoryList: state.resources.offerChoiceApprovalHistoryList,\r\n demandValidation: state.resources.demandValidation\r\n}), {})(withRouter(OfferChoiceApproval))","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport OfferChoiceApproval from \"./OfferChoiceApproval\";\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 {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 OfferChoiceApproval,\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 OfferChoiceApprovalService from \"services/OfferChoiceApprovalService\";\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_offer_choice_approval: OfferChoiceApproval,\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_offer_choice_approval: (id) => OfferChoiceApprovalService.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 await validateSection(DemandValidation.APPROVAL, 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\nconst backToPreparing = async (id) => {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_BACK_TO_PREPARING(id));\r\n if (res.success) {\r\n return res.result;\r\n }\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 backToPreparing\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\nimport DemandSectionsService from \"services/DemandSectionsService\";\r\n\r\nfunction PublishSection(\r\n {\r\n id,\r\n isPublishActive,\r\n isCancelActive,\r\n isBackToPreparingActive,\r\n isBackToModificationActive,\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 [openBackToPreparingPopup, setOpenBackToPreparingPopup] = useState(false);\r\n const [openBackToModificationPopup, setOpenBackToModificationPopup] = 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 const handleConfirmBackToPreparing = () => {\r\n setOpenBackToPreparingPopup(false);\r\n setWorking(true);\r\n PublishService.backToPreparing(id).then(() => {\r\n setWorking(false);\r\n DemandSectionsService.getPreparingSections(id).then(() => {});\r\n });\r\n }\r\n\r\n const handleConfirmBackToModification = () => {\r\n setOpenBackToModificationPopup(false);\r\n setWorking(true);\r\n ModificationService.backToModification(id).then(() => {\r\n setWorking(false);\r\n DemandSectionsService.getPreparingSections(id).then(() => {});\r\n });\r\n }\r\n\r\n return (\r\n
\r\n \r\n {(formikProps) => (\r\n <>\r\n \r\n\r\n {!!isBackToPreparingActive && setOpenBackToPreparingPopup(true)}\r\n >\r\n {Tr('back_to_edit')}\r\n }\r\n {!!isBackToModificationActive && setOpenBackToModificationPopup(true)}\r\n >\r\n {Tr('back_to_modification')}\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 setOpenBackToPreparingPopup(false)}\r\n confirmText=\"back_to_edit_confirm\"\r\n />\r\n setOpenBackToModificationPopup(false)}\r\n confirmText=\"back_to_modification_confirm\"\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 const getUncompletedSectionsForApproval = (demandValidation = []) => doFilterSections(demandValidation, [DemandValidation.APPROVAL])\r\n\r\nexport default (demandValidation = []) => doFilterSections(demandValidation, [])\r\n\r\nconst doFilterSections = (demandValidation = [], additionalExcludedSections = []) => {\r\n\treturn demandValidation.reduce( (acc, item) => {\r\n\t\tif (item.section === DemandValidation.PUBLICATION || item.section === DemandValidation.EX_POST_GO_TO_FINISH) return acc;\r\n\t\tif (additionalExcludedSections.some(x => item.section === x)) return acc;\r\n\t\tif (item.status === DemandValidationSectionStatus.UNAVAILABLE) return acc;\r\n\t\tif ((item.required && item.status !== DemandValidationSectionStatus.OK) || item.status === DemandValidationSectionStatus.ERROR) return [\r\n\t\t\t...acc,\r\n\t\t\titem.section\r\n\t\t]\r\n\t\treturn acc;\r\n\t}, [])\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 const publicationSection = demandValidation.find(x => x.section === DemandValidation.PUBLICATION);\r\n if (!(isDemandModification()) || publicationSection?.waitingForPublication) {\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\nimport isBackToPreparingButtonActive from \"libs/isBackToPreparingButtonActive\";\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 isBackToPreparingActive = useMemo(() => isBackToPreparingButtonActive(demandValidation, section?.waitingForPublication, bzpContractNoticeStatus), [demandValidation, section, bzpContractNoticeStatus])\r\n const isCancelActive = isCancelModificationButtonActive(demandValidation, ojsPublicationStatus, bzpContractNoticeStatus);\r\n const isBackToModificationActive = useMemo(() => isDemandModification() && section?.waitingForPublication, [section])\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 {DemandValidation} from \"../constants/DemandValidation\";\r\nimport {isDemandPreparing} from \"./getDemandStatus\";\r\nimport {DemandValidationSectionStatus} from \"../constants/DemandValidationSectionStatus\";\r\nimport NationalNoticeStatus from \"../components/complex/nationalNotice/constants/NationalNoticeStatus\";\r\n\r\nexport default (demandValidation, waitingForPublication, bzpContractNoticeStatus) => {\r\n if (!isDemandPreparing() || !waitingForPublication) {\r\n return false;\r\n }\r\n\r\n const notice = demandValidation.find((x) => x.section === DemandValidation.NOTICE);\r\n if (notice?.status !== DemandValidationSectionStatus.UNAVAILABLE) {\r\n return false;\r\n }\r\n\r\n const nationalNotice = demandValidation.find((x) => x.section === DemandValidation.NATIONAL_NOTICE);\r\n if (!!nationalNotice && nationalNotice.status !== DemandValidationSectionStatus.UNAVAILABLE && bzpContractNoticeStatus && bzpContractNoticeStatus.status !== NationalNoticeStatus.NONE\r\n && bzpContractNoticeStatus.status !== NationalNoticeStatus.DRAFT && bzpContractNoticeStatus.status !== NationalNoticeStatus.COMPLETED)\r\n return false;\r\n\r\n return true;\r\n}\r\n","import getUncompletedSections from './getUncompletedSections';\r\nimport {isDemandPreparing} from \"./getDemandStatus\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\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 || (uncompleted.length === 1 && uncompleted[0] === DemandValidation.APPROVAL);\r\n}\r\n","import getUncompletedSections from './getUncompletedSections';\r\nimport {isDemandModification, isDemandPreparing} from \"./getDemandStatus\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\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 || (uncompleted.length === 1 && uncompleted[0] === DemandValidation.APPROVAL)) && 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 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 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 {RestRequestGET, RestRequestPOST} from \"libs/RestRequest\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport reduxStore from \"redux/store\";\r\nimport {clearResource, setResource, setSaveStatusError} from \"redux/actions\";\r\n\r\nconst DEMAND_ACTIVE_APPROVAL_RESOURCE_ID = 'demandActiveApproval';\r\nconst DEMAND_APPROVAL_HISTORY_LIST_RESOURCE_ID = 'demandApprovalHistoryList';\r\nconst DEMAND_APPROVAL_HISTORY_RESOURCE_ID = 'demandApprovalHistory';\r\n\r\nconst getActiveApproval = async (demandId) => {\r\n const res = await RestRequestGET(Endpoints.DEMAND_APPROVAL(demandId))\r\n reduxStore.dispatch(\r\n setResource(DEMAND_ACTIVE_APPROVAL_RESOURCE_ID, res)\r\n );\r\n}\r\n\r\nconst startApproval = async (demandId) => {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_APPROVAL(demandId))\r\n if (res.success) {\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return false;\r\n }\r\n}\r\n\r\nconst selectApprovers = async (demandId, payload) => {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_APPROVAL_SELECT_APPROVERS(demandId), payload);\r\n if (res.success) {\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return false\r\n }\r\n}\r\n\r\nconst sendDecision = async (demandId, payload) => {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_APPROVAL_SEND_DECISION(demandId), payload);\r\n if (res.success) {\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return false\r\n }\r\n}\r\n\r\nconst resetApproval = async (demandId) => {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_APPROVAL_RESET(demandId));;\r\n if (res.success) {\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return false\r\n }\r\n}\r\n\r\nconst stopApproval = async (demandId) => {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_APPROVAL_STOP(demandId));;\r\n if (res.success) {\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return false\r\n }\r\n}\r\n\r\nconst getApprovalHistoryList = async (demandId) => {\r\n const res = await RestRequestGET(Endpoints.DEMAND_APPROVAL_HISTORY_LIST(demandId))\r\n reduxStore.dispatch(\r\n setResource(DEMAND_APPROVAL_HISTORY_LIST_RESOURCE_ID, res.result)\r\n );\r\n}\r\n\r\nconst getApprovalHistory = async (demandId, approvalId) => {\r\n const res = await RestRequestGET(Endpoints.DEMAND_APPROVAL_HISTORY(demandId, approvalId));\r\n const {resources} = reduxStore.getState();\r\n if (!!resources[DEMAND_APPROVAL_HISTORY_RESOURCE_ID]) {\r\n const approvalHistory = resources[DEMAND_APPROVAL_HISTORY_RESOURCE_ID];\r\n approvalHistory[`${approvalId}`] = res.result;\r\n // const newApprovalHistory = {};\r\n // Object.keys(approvalHistory).forEach(k => {\r\n // if (k === `${approvalId}`)\r\n // newApprovalHistory[k] = res.result;\r\n // else\r\n // newApprovalHistory[k] = approvalHistory[k];\r\n // })\r\n reduxStore.dispatch(\r\n setResource(DEMAND_APPROVAL_HISTORY_RESOURCE_ID, approvalHistory)\r\n );\r\n } else {\r\n const o = {};\r\n o[`${approvalId}`] = res.result;\r\n reduxStore.dispatch(\r\n setResource(DEMAND_APPROVAL_HISTORY_RESOURCE_ID, o)\r\n );\r\n }\r\n}\r\n\r\nconst getAvailableApprovers = async (demandId, approvalId, stageId) => {\r\n const res = await RestRequestGET(Endpoints.DEMAND_APPROVAL_HISTORY_GET_APPROVERS(demandId, approvalId, stageId));\r\n if (res.success) {\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return null;\r\n }\r\n}\r\n\r\nconst addApprovers = async (demandId, approvalId, stageId, approverIds) => {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_APPROVAL_HISTORY_ADD_APPROVERS(demandId, approvalId, stageId), {approvers: approverIds});\r\n if (res.success) {\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return false;\r\n }\r\n}\r\n\r\nconst deleteApprover = async (demandId, approval, stage, approver) => {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_APPROVAL_HISTORY_DELETE_APPROVER(demandId, approval.identity, stage.identity), {approvers: [approver.identity]});\r\n if (res.success) {\r\n approval.stages = approval.stages.map(s => {\r\n if (s.identity === stage.identity) {\r\n return {\r\n ...s,\r\n approvers: s.approvers.filter(a => a.identity !== approver.identity)\r\n }\r\n } else {\r\n return s;\r\n }\r\n });\r\n const {resources} = reduxStore.getState();\r\n const approvalHistory = resources[DEMAND_APPROVAL_HISTORY_RESOURCE_ID];\r\n approvalHistory[`${approval.identity}`] = approval;\r\n reduxStore.dispatch(\r\n setResource(DEMAND_APPROVAL_HISTORY_RESOURCE_ID, approvalHistory)\r\n );\r\n return res.result;\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(res.errors[0]));\r\n return false;\r\n }\r\n}\r\n\r\nconst validate = async (demandId) => {\r\n return RestRequestGET(Endpoints.DEMAND_APPROVAL_VALIDATE(demandId));\r\n}\r\n\r\nconst clearResources = (resId) => reduxStore.dispatch(clearResource(resId));\r\n\r\nexport default {\r\n getActiveApproval,\r\n startApproval,\r\n selectApprovers,\r\n sendDecision,\r\n resetApproval,\r\n stopApproval,\r\n getApprovalHistoryList,\r\n getApprovalHistory,\r\n getAvailableApprovers,\r\n addApprovers,\r\n deleteApprover,\r\n validate,\r\n clearResources,\r\n DEMAND_ACTIVE_APPROVAL_RESOURCE_ID,\r\n DEMAND_APPROVAL_HISTORY_LIST_RESOURCE_ID,\r\n DEMAND_APPROVAL_HISTORY_RESOURCE_ID\r\n}","import {withRouter} from \"react-router\";\r\nimport Approval from \"components/complex/approval/Approval\"\r\nimport React, {useEffect, useState} from \"react\";\r\nimport DemandApprovalService from \"services/DemandApprovalService\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport DemandSectionsService from \"services/DemandSectionsService\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\nimport {getUncompletedSectionsForApproval} from \"libs/getUncompletedSections\";\r\n\r\n\r\nfunction DemandApproval(\r\n {\r\n demandActiveApproval,\r\n demandApprovalHistoryList,\r\n demandValidation,\r\n match\r\n }) {\r\n\r\n const demandId = match.params.id;\r\n const [loading, setLoading] = useState(true);\r\n const [working, setWorking] = useState(false);\r\n const section = demandValidation.find(x => x.section === DemandValidation.APPROVAL);\r\n const uncompletedSections = getUncompletedSectionsForApproval(demandValidation);\r\n\r\n useEffect(() => {\r\n const approvalPromise = DemandApprovalService.getActiveApproval(demandId);\r\n const historyListPromise = DemandApprovalService.getApprovalHistoryList(demandId);\r\n Promise.all([approvalPromise, historyListPromise]).then(() => {\r\n setLoading(false);\r\n })\r\n\r\n return () => {\r\n DemandApprovalService.clearResources(DemandApprovalService.DEMAND_ACTIVE_APPROVAL_RESOURCE_ID);\r\n DemandApprovalService.clearResources(DemandApprovalService.DEMAND_APPROVAL_HISTORY_LIST_RESOURCE_ID);\r\n DemandApprovalService.clearResources(DemandApprovalService.DEMAND_APPROVAL_HISTORY_RESOURCE_ID);\r\n }\r\n }, [demandId]);\r\n\r\n const startApproval = () => {\r\n setWorking(true);\r\n DemandApprovalService.startApproval(demandId).then((res) => {\r\n if (res) {\r\n const approvalPromise = DemandApprovalService.getActiveApproval(demandId);\r\n const historyPromise = DemandApprovalService.getApprovalHistoryList(demandId);\r\n const sectionsPromiese = DemandSectionsService.getPreparingSections(demandId);\r\n Promise.all([approvalPromise, historyPromise, sectionsPromiese]).then(() => setWorking(false));\r\n } else {\r\n setWorking(false);\r\n }\r\n });\r\n }\r\n\r\n const sendToApproval = (values) => {\r\n setWorking(true);\r\n DemandApprovalService.selectApprovers(demandId, values).then(res => {\r\n if (res) {\r\n const approvalPromise = DemandApprovalService.getActiveApproval(demandId);\r\n const historyPromise = DemandApprovalService.getApprovalHistory(demandId, values.identity);\r\n Promise.all([approvalPromise, historyPromise]).then(() => setWorking(false));\r\n } else {\r\n setWorking(false);\r\n }\r\n });\r\n }\r\n\r\n const resetApproval = () => {\r\n setWorking(true);\r\n DemandApprovalService.resetApproval(demandId).then(res => {\r\n if (res) {\r\n const approvalPromise = DemandApprovalService.getActiveApproval(demandId);\r\n const historyPromise = DemandApprovalService.getApprovalHistoryList(demandId);\r\n Promise.all([approvalPromise, historyPromise]).then(() => {\r\n setWorking(false);\r\n })\r\n } else {\r\n setWorking(false);\r\n }\r\n });\r\n }\r\n\r\n const stopApproval = () => {\r\n setWorking(true);\r\n DemandApprovalService.stopApproval(demandId).then(res => {\r\n if (res) {\r\n const approvalPromise = DemandApprovalService.getActiveApproval(demandId);\r\n const historyPromise = DemandApprovalService.getApprovalHistoryList(demandId);\r\n const sectionsPromise = DemandSectionsService.getPreparingSections(demandId);\r\n Promise.all([approvalPromise, historyPromise, sectionsPromise]).then(() => setWorking(false));\r\n } else {\r\n setWorking(false);\r\n }\r\n });\r\n }\r\n\r\n const sendDecision = (values) => {\r\n setWorking(true);\r\n DemandApprovalService.sendDecision(demandId, values).then(res => {\r\n if (res) {\r\n DemandApprovalService.clearResources(DemandApprovalService.DEMAND_ACTIVE_APPROVAL_RESOURCE_ID);\r\n DemandApprovalService.getApprovalHistory(demandId, values.identity).then(() => {});\r\n DemandSectionsService.getPreparingSections(demandId).then(() => {});\r\n setWorking(false);\r\n } else {\r\n const approvalPromise = DemandApprovalService.getActiveApproval(demandId);\r\n const historyPromise = DemandApprovalService.getApprovalHistory(demandId, values.identity);\r\n Promise.all([approvalPromise, historyPromise]).then(() => setWorking(false));\r\n }\r\n })\r\n }\r\n\r\n const loadApprovalHistory = async (approvalId) => {\r\n return await DemandApprovalService.getApprovalHistory(demandId, approvalId)\r\n }\r\n\r\n const getAvailableApprovers = async (approval, stage) => {\r\n return await DemandApprovalService.getAvailableApprovers(demandId, approval.identity, stage.identity);\r\n }\r\n\r\n const addApprovers = async (approvalId, stageId, approverIds) => {\r\n const resp = await DemandApprovalService.addApprovers(demandId, approvalId, stageId, approverIds);\r\n if (resp) {\r\n DemandApprovalService.getApprovalHistory(demandId, approvalId).then(() => {});\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const deleteApprover = async (approval, stage, approver) => {\r\n return await DemandApprovalService.deleteApprover(demandId, approval, stage, approver);\r\n }\r\n\r\n if (loading)\r\n return \r\n\r\n return \r\n\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandActiveApproval: state.resources.demandActiveApproval,\r\n demandApprovalHistoryList: state.resources.demandApprovalHistoryList,\r\n demandValidation: state.resources.demandValidation\r\n}), {})(withRouter(DemandApproval))","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport DemandApproval from \"./DemandApproval\";\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 {Commission, Contractor, Dealings, Demand, Espd, Guarantee, Notice, PreparingPapersGenerator, Publication, Schedule, Siwz, NationalNotice, ExPostGoToFinish,\r\nDemandAdditionalInfo, Questionnaire, Approval} 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\nimport DemandApprovalService from \"services/DemandApprovalService\";\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_approval: Approval,\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_approval: (id) => DemandApprovalService.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 {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\nimport {DemandValidation} from \"../../../../../constants/DemandValidation\";\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 isPublicationSectionEditable = () => {\r\n return demandValidation?.find(x => x.section === DemandValidation.PUBLICATION)?.editable;\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) || !isPublicationSectionEditable()));\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 ?