{"version":3,"sources":["constants/status.save.js","libs/locale.js","translations/Translations.js","redux/actions.js","libs/RouterPath.js","constants/DemandValidation.js","redux/reducers/initValues/stepper.values.js","redux/reducers/StepperReducer.js","redux/store.js","redux/reducers/ResourcesReducer.js","redux/reducers/PrivilegeReducer.js","redux/reducers/StoreReducer.js","redux/reducers/FormReducer.js","redux/reducers/AuthorizeReducer.js","redux/reducers/InnerMenuReducer.js","redux/reducers/FormValuesReducer.js","redux/reducers/SignatureReducer.js","pages/NotFound/NotFound.js","components/complex/navigation/ListItem.js","components/complex/navigation/OpenElement.js","images/logo-long-contrast.png","components/complex/navigation/Logo.js","images/logo-long.png","images/logo-icon-contrast.png","images/logo-icon.png","components/Button.js","components/complex/navigation/newProcedureMenu/ListElement.js","components/complex/navigation/newProcedureMenu/NewProcedureMenu.js","constants/ProcedureType.js","components/complex/navigation/newProcedureMenu/ListElements.values.js","components/complex/navigation/ListAddButton.js","libs/isDevMode.js","constants/Endpoints.js","constants/HttpCodes.js","libs/downloadFile.js","libs/RestRequest.js","services/OAuthService.js","components/complex/navigation/LogoutButton.js","components/complex/navigation/Navigation.js","components/complex/appbar/InvertColorsButton.js","components/complex/appbar/TextSizeButton.js","components/complex/appbar/Profile.js","images/Poland.js","images/GreatBritain.js","components/GridBlock.js","components/popup/help/dialog.buttons.js","components/popup/components/CancelButton.js","components/popup/help/HelpDialog.js","components/popup/help/Help.js","components/complex/appbar/ChangeLanguageButtonButtons.js","libs/redirectUsingPOST.js","components/complex/appbar/AppBar.js","components/button/IconButton.js","components/button/IconCloseButton.js","components/Loading.js","components/Dialog.js","components/popup/IEinfo/IEInfo.js","libs/Browser.js","libs/objectExtension.js","services/DemandSectionsService.js","services/PrivilegeService.js","services/DemandService.js","constants/InputLimits.js","libs/moment.js","constants/ValidationShema.js","components/Form.js","components/Title.js","components/Divider.js","libs/getObjectValue.js","constants/INPUT_TYPE.js","libs/toNumberType.js","components/TextInput.js","components/RadioGroupElement.js","components/RadioGroup.js","components/Typography.js","components/Select.js","constants/PrimaryTenderVariant.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/fieldsOptions/primaryTenderVariant.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/fieldsOptions/pzpExclusion.values.js","constants/orderType.values.js","constants/concessionOrderType.values.js","constants/BooleanItems.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/fieldsOptions/jedz.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/fieldsOptions/contractType.values.js","components/Checkbox.js","components/RawHTML.js","components/button/WorkableIconButton.js","components/button/WorkableIconExpandButton.js","components/popup/selectCpv/ListElement.js","components/popup/selectCpv/libs/filterItems.js","components/popup/selectCpv/RadioListInfiniteScroller.js","components/popup/selectCpv/libs/countItems.js","components/popup/selectCpv/RadioList.js","components/button/WorkableButton.js","components/popup/components/DoubleButton.js","hooks/useId.js","libs/createId.js","services/CpvService.js","components/popup/selectCpv/SelectForm.js","components/popup/selectCpv/SelectCPV.js","components/Chip.js","libs/removeFormikListElement.js","components/CPVInput.js","components/HelpTooltip.js","components/HelpComponent.js","constants/ProcedureStatus.js","constants/PZPType.js","libs/getDemandStatus.js","libs/filterItems.js","components/popup/selectOrganization/SelectOrganizationForm.js","components/popup/selectOrganization/SelectOrganization.js","components/OrganizationInput.js","components/GreyBox.js","components/Dropzone.js","services/UploadService.js","components/ProgressBar.js","components/popup/components/SingleButton.js","services/DemandOffersService.js","libs/isResponseValid.js","constants/ContractorPasswordState.js","components/popup/uploadFile/UploadFilePopup.js","components/TitledComponent.js","components/FilesList.js","services/SharepointService.js","components/popup/components/MultiButton.js","components/icon/SharepointIcon.js","components/complex/sharepointExplorer/SharepointExplorer.js","components/complex/sharepointExplorer/SharepointDownloadPopup.js","services/EzdrpService.js","components/complex/ezdrpExplorer/EzdrpList.js","components/complex/ezdrpExplorer/EzdrpExplorer.js","components/complex/ezdrpExplorer/EzdrpDownloadPopup.js","services/EzdpuwService.js","components/complex/ezdpuwExplorer/EzdpuwDownloadPopup.js","components/button/WorkableIconFolderButton.js","components/complex/ezdpuwExplorer/EzdpuwList.js","components/complex/ezdpuwExplorer/EzdpuwExplorer.js","components/UploadFile.js","constants/PriceTypes.js","constants/DemandCategoryType.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/fieldsOptions/caseClassificationSymbol.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/RequiredFields.js","constants/DateFormats.js","components/DatePicker.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/OptionalFields.js","components/CheckboxButton.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/ContactFields.js","hooks/useDebouncedEffect.js","components/SaveFormikValues.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/constants/validationSchema.js","components/ShowErrorOnFailedSubmit.js","libs/supportedNoApiScreens.js","services/HeaderService.js","services/ModificationService.js","hooks/useStepperStateCloseValidator.js","components/AutoSaveFormValues.js","libs/saveFormDraft.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/MainForm.js","constants/VatType.js","constants/VATItems.js","libs/toFloat.js","libs/netGrosCalculations.js","hooks/useDidUpdateEffect.js","components/NetGrossField.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/ExPostFields.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/constants/validationSchemaExPost.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/MainFormExPost.js","components/popup/confirm/Confirm.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/MainFormWrapper.js","pages/purchaser/MyProcedure/scenes/part1/panels/demand/index.js","components/popup/changeHistory/ListElement.js","components/popup/changeHistory/ChangeHistory.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/StartScreen.js","services/DealingsService.js","constants/OfferSourceTypes.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/constants/itemTypes.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/constants/initialValues.js","components/button/AddButton.js","components/complex/loadingScreen/LoadingScreen.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/ImporterForm.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/lib/downloadImportTemplate.js","components/complex/simpleTable/STableContainer.js","components/complex/simpleTable/STableRow.js","components/complex/simpleTable/SimpleTable.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/UploadImportFile.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/AdditionalButtons.js","components/complex/sortable/SortableItem.js","components/complex/sortable/SortableList.js","components/complex/sortable/SortableContainer.js","components/popup/newCondition/constants/condition.values.js","components/popup/newCriteria/constants/criterium.type.js","components/popup/newCriteria/constants/criteria.variants.js","constants/DirectionsItems.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/constants/validationSchema.js","components/button/WorkableIconDeleteButton.js","components/button/WorkableIconEditButton.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/lib/mergeDealing.js","components/button/WorkableIconConfirmButton.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/ElementTitle.js","services/MeasureUnitService.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/positions/Units.js","components/button/WorkableIconPreviewButton.js","components/button/WorkableIconAddButton.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/positions/SingleVariant.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/positions/MultiVariant.js","components/VatField.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/positions/ItemPopup.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/PositionsSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/ConditionElement.js","components/PartsTable.js","components/popup/newCondition/constants/validation.form.js","components/popup/newCondition/ConditionForm.js","components/popup/newCondition/NewCondition.js","libs/setObjectValue.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/constants/stage.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/lib/manipulateElementsOnParts.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/ConfirmDeleteCriterion.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/ConditionsSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/CriteriaElement.js","components/popup/newCriteria/constants/tabs.values.js","components/popup/newCriteria/constants/criteriaElement.variants.js","components/popup/newCriteria/constants/validation.form.js","components/Tabs.js","components/popup/newCriteria/components/FormTabs.js","components/popup/newCriteria/components/OtherCriteriaFields.js","components/popup/newCriteria/constants/measurePeriodUnits.values.js","components/popup/newCriteria/myCriteriaList/mock.elements.js","components/popup/newCriteria/myCriteriaList/ListElement.js","components/popup/newCriteria/myCriteriaList/MyCriteriaList.js","components/ErrorText.js","components/popup/newCriteria/listVariant/CriteriaElement.js","components/popup/newCriteria/components/CriteriaListBase.js","components/popup/newCriteria/listVariant/CriteriaList.js","components/popup/newCriteria/components/RadioButton.js","components/popup/newCriteria/intervalVariant/elementVariants/BaseVariant.js","components/popup/newCriteria/intervalVariant/elementVariants/RangeVariant.js","components/popup/newCriteria/intervalVariant/elementVariants/SmallerVariant.js","components/popup/newCriteria/intervalVariant/elementVariants/BiggerVariant.js","components/popup/newCriteria/intervalVariant/CriteriaElement.js","libs/arrayExtension.js","components/popup/newCriteria/intervalVariant/CriteriaList.js","components/popup/newCriteria/CriteriaFormBody.js","components/popup/newCriteria/CriteriaForm.js","components/popup/newCriteria/NewCriteria.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/CriteriaSection.js","components/popup/addAdditionalPosition/constants/additionalPositionType.values.js","components/popup/addAdditionalPosition/constants/validation.form.js","components/popup/addAdditionalPosition/AddAdditionalPositionForm.js","components/popup/addAdditionalPosition/AddAdditionalPosition.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/AdditionalPositionsSection.js","components/popup/addItemParameter/constants/itemParameterType.values.js","components/popup/addItemParameter/constants/validation.form.js","components/popup/addItemParameter/AddItemParameterForm.js","components/popup/addItemParameter/AddItemParameter.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/PositionsParametersSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/PartForm.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/components/Element.js","components/ExecuteFunction.js","components/DemandValidationMessages.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/PositionAndPartsForm.js","libs/setFormikValuesTouched.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/ImportScreen.js","services/PapersGeneratorService.js","components/button/WorkableIcon.js","components/button/WorkableIconShareButton.js","components/complex/papersGenerator/PaperLink.js","components/BoldTypography.js","hooks/useSnackbar.js","components/complex/papersGenerator/customPopups/PapersGeneratorSelectPopup.js","components/complex/papersGenerator/customPopups/PapersGeneratorRfxInvitedSupplierWithOfferPopup.js","components/complex/papersGenerator/customPopups/PapersGeneratorRfxRequestPosition.js","components/complex/papersGenerator/customPopups/PapersGeneratorRfxInvitedSupplierPosition.js","libs/previewFile.js","libs/downloadFileWithPreloadUrl.js","components/complex/documentsTables/swz/constants/SiwzSourceType.js","libs/getOnlyValidMomentObjectOrDefault.js","constants/RepoFolderTypes.js","services/RepoService.js","services/SiwzService.js","components/complex/papersGenerator/customPopups/swzGenerator/SwzGeneratorQuestionSelect.js","components/complex/papersGenerator/customPopups/swzGenerator/SwzGeneratorQuestionCheckbox.js","components/complex/papersGenerator/customPopups/swzGenerator/SwzGeneratorQuestion.js","components/complex/papersGenerator/customPopups/swzGenerator/SwzGeneratorSection.js","components/complex/papersGenerator/customPopups/swzGenerator/ChooseSwzGeneratorOptions.js","components/complex/papersGenerator/customPopups/PapersGeneratorSelectFilesPopup.js","components/complex/papersGenerator/customPopups/PapersGeneratOfferFilesVerification.js","components/complex/papersGenerator/customPopups/PapersGeneratorMessageFilesVerification.js","libs/applySearchParams.js","libs/applySortParams.js","services/PurchasingGroupSectionService.js","constants/DemandValidationSectionStatus.js","libs/scrollTo.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/basicData/history/propertyTransformer.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/basicData/PurchasingGroupStage1BasicDataForm.js","components/button/HistoryButton.js","components/popup/historyListPopup/HistoryList.js","libs/userNameGetter.js","components/popup/historyListPopup/HistoryElementComparator.js","components/popup/historyListPopup/HistoryListPopup.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/basicData/PurchasingGroupStage1BasicData.js","components/complex/transferList/TransferList.js","components/complex/transferList/Column.js","components/complex/transferList/headers/Header.js","components/complex/transferList/headers/SearchHeader.js","components/complex/transferList/List.js","constants/PositionItems.js","constants/PurchasingGroupPositionItems.js","components/button/IconAddButton.js","constants/CommissionUserType.js","components/button/WorkableIconHighlightOffButton.js","components/complex/commissionForm/transferList/listItems/FullNameItem.js","components/TypographyWithIcon.js","components/popup/addCandidate/PopupForm.js","services/CommissionService.js","components/popup/addCandidate/AddCandidate.js","components/complex/transferList/options/EmptyOptions.js","components/complex/commissionForm/transferList/CandidateColumn.js","components/complex/commissionForm/transferList/listItems/FullNamePositionItem.js","components/complex/commissionForm/transferList/CommissionColumn.js","components/complex/commissionForm/transferList/TransferList.js","components/complex/commissionForm/CommissionForm.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/commission/PurchasingGroupStage1Commission.js","components/DateTimePicker.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/schedule/PurchasingGroupStage1ScheduleForm.js","pages/purchaser/PurchasingGroup/stages/utils/scheduleReloadTimeout.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/schedule/PurchasingGroupStage1Schedule.js","components/BasicSearch.js","libs/iconWorksReducer.js","libs/ConfirmNotification.js","components/button/WorkableIconMailButton.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/MembersElementTitle.js","components/popup/EditDescriptionPopup.js","components/button/WorkableIconSearchButton.js","components/button/WorkableIconDownloadButton.js","components/button/WorkableIconPublishButton.js","components/button/WorkableIconUnpublishButton.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/MembersDocumentsListTableRow.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/constants/PurchasingGroupDocumentStatus.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/SelectMembersDocumentType.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/MembersDocumentsList.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/AddMemberUserPopup.js","services/UserService.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/MembersElementContent.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/MembersElement.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/AddPurchasingGroupMemberPopup.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/components/MembersList.js","pages/purchaser/PurchasingGroup/stages/constants/PurchasingGroupRole.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/members/PurchasingGroupStage1Members.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/papersGenerator/PurchasingGroupStage1PapersGenerator.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/opinion/components/AddNewOpinionMemberPopup.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/opinion/components/OpinionMessage.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/opinion/components/NewOpinionMessage.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/opinion/components/OpinionElementContent.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/opinion/components/OpinionElementTitle.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/opinion/components/OpinionElement.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/opinion/PurchasingGroupStage1Opinion.js","pages/purchaser/PurchasingGroup/stages/stage1/panels/finishPreparing/PurchasingGroupStage1FinishPreparing.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/collectingSchedule/PurchasingGroupStage2ScheduleForm.js","services/PurchasingGroupStage2Service.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/collectingSchedule/PurchasingGroupStage2Schedule.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/components/TemplateMembersElementTitle.js","pages/purchaser/PurchasingGroup/templates/constants/PurchasingGroupTemplateFieldType.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/components/TemplateMemberFormField.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/constants/PurchasingGroupTemplateFormState.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/history/propertyTransformer.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/components/TemplateMemberForm.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/components/TemplateMembersElementContent.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/components/TemplateMembersElement.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/components/TemplateMembersList.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/template/PurchasingGroupStage2Template.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/dealing/PurchasingGroupStage2Dealing.js","components/popup/components/SplitButton.js","pages/purchaser/PurchasingGroup/stages/stage2/panels/finish/PurchasingGroupStage2Finish.js","pages/purchaser/PurchasingGroup/stages/constants/PurchasingGroupStageSections.js","services/PurchasingGroupStage1Service.js","components/complex/papersGenerator/customPopups/gzm/PapersGeneratorGzmManagementResolution.js","components/complex/papersGenerator/customPopups/gzm/PapersGeneratorGzmLeadingDocument.js","components/complex/papersGenerator/customPopups/gzm/PapersGeneratorGzmDraftGroupAgreement.js","components/complex/papersGenerator/customPopups/gzm/PapersGeneratorGzmDocumentToSign.js","hooks/useEzamowieniaOauth.js","components/icon/EZamowieniaIcon.js","services/EzamowieniaService.js","components/complex/papersGenerator/customPopups/xmpUzpPresidentPaper/PapersGeneratorXmpUzpPresidentPaperContent.js","components/complex/papersGenerator/customPopups/xmpUzpPresidentPaper/PapersGeneratorXmpUzpPresidentPaperPopup.js","libs/shareSystems.js","components/popup/ShareSelectPopup.js","components/complex/papersGenerator/PapersGeneratorList.js","pages/purchaser/MyProcedure/scenes/part3/panels/papersGenerator/PapersGenerator.js","pages/purchaser/MyProcedure/scenes/part3/panels/papersGenerator/index.js","hooks/useSearch.js","components/button/MoreButton.js","services/RfxOfferService.js","constants/OfferStatus.js","constants/OfferEncryptionStatus.js","components/icon/TooltipIcon.js","components/complex/offer/components/OfferAdditionalOffersTable.js","services/DemandOffersGeneralInfoService.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoExpansionPanelTitle.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoEntry.js","components/ExpansionPanel.js","libs/formatAmountNumber.js","context/OfferStageTranslationsContext.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoBasicData.js","components/button/WorkableIconForwardButton.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoDocumentsFileTableRow.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoDocumentsFileTable.js","context/PurchaserOfferContext.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoDocuments.js","services/CorrespondenceService.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoPublicAnswersMessage.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoPublicAnswers.js","services/StatisticsService.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/GeneralInfoRealizationAmount.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/GeneralInfoPanel.js","libs/isResponseValidWithStoredPasswordCheck.js","components/ExpansionPanelTitleAvatar.js","pages/contractor/demand/scenes/offer/components/common/constants/OfferMode.js","pages/contractor/demand/scenes/offer/components/common/constants/OfferPositionStatusType.js","constants/SignatureType.js","pages/contractor/demand/scenes/offer/components/common/constants/OfferStatusType.js","services/DemandOffersOfferService.js","constants/ContractorDocumentType.js","constants/RoundType.js","constants/TrueFalseItems.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/files/SelectOfferFilesType.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/files/EditFilePopup.js","services/DemandAdditionalOffersOfferService.js","services/DemandOffersAuctionService.js","context/OfferSectionContext.js","components/icon/SignatureIcon.js","pages/contractor/demand/scenes/offer/components/common/constants/OfferFileSignStatus.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/files/OfferFilesTableSignStatus.js","context/SupportModeContext.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/files/OfferFilesTableRow.js","hooks/useSignature.js","hooks/useLoadingScreen.js","libs/AlertNotification.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/files/OfferFilesTable.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/files/OfferFiles.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/constants/OfferEspdType.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspdTypeSwitch.js","components/SimpleSelect.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspdInternal.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspdExternalUploadFileTypes.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspdExternalUploadFile.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspdExternal.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspdTableRow.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspdTable.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/espd/OfferEspd.js","constants/ContractorOfferEspdType.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/positions/constants/validation.form.js","pages/contractor/demand/scenes/offer/components/common/positions/inputs/OfferYesNoInput.js","pages/contractor/demand/scenes/offer/components/common/positions/inputs/OfferTextInput.js","pages/contractor/demand/scenes/offer/components/common/positions/inputs/OfferNumberInput.js","pages/contractor/demand/scenes/offer/components/common/positions/inputs/OfferPriceInput.js","pages/contractor/demand/scenes/offer/components/common/positions/inputs/OfferListInput.js","pages/contractor/demand/scenes/offer/components/common/positions/inputs/OfferUnits.js","pages/contractor/demand/scenes/offer/components/common/positions/inputs/OfferInput.js","pages/contractor/demand/scenes/offer/components/common/positions/OfferPositionConditions.js","pages/contractor/demand/scenes/offer/components/common/positions/OfferPositionCriteriums.js","pages/contractor/demand/scenes/offer/components/common/positions/OfferPositionItems.js","pages/contractor/demand/scenes/offer/components/common/positions/OfferPositionParameters.js","constants/ContractorConsorciumTypes.js","constants/ContractorCompanySize.js","services/ContractorService.js","components/popup/inviteContactor/components/NipRow.js","components/MaskedTextInput.js","components/popup/inviteContactor/components/PostCodeRow.js","components/popup/inviteContactor/InviteContactorForm.js","components/popup/inviteContactor/InviteContactor.js","pages/contractor/demand/scenes/offer/components/common/commonData/ConsorciumTable.js","components/YesNo.js","pages/contractor/demand/scenes/offer/components/common/positions/OfferPositionConsorciants.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/positions/constants/APIOfferPlacingType.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/SnapshotListPopup.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/VerificationsPopup.js","hooks/useSalesNotification.js","components/popup/salesNotification/constants/salesNotification.keys.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/positions/components/OfferPositionForm.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/positions/OfferMultiPositions.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/positions/OfferSinglePosition.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/positions/OfferPositions.js","components/complex/floatingMenu/ButtonsBar.js","components/complex/floatingMenu/NavigationBar.js","components/complex/floatingMenu/createButton.js","components/PartsRadioTable.js","pages/contractor/demand/scenes/offer/components/common/OfferPositionsSelectPopup.js","pages/contractor/demand/scenes/offer/components/common/commonData/OfferCommonDataForm.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/commonData/OfferCommonData.js","pages/contractor/demand/scenes/offer/components/common/contractorData/OfferContractorData.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/VerificationBeforePlaceOfferPopup.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/ImportOfferFormPopup.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/OfferEditPanel.js","pages/contractor/demand/scenes/offer/components/common/OfferExpansionSectionTitle.js","pages/contractor/demand/scenes/offer/components/panels/offerEdit/components/OfferEditSectionTitle.js","pages/contractor/demand/scenes/offer/components/panels/offerPlaced/OfferPlacedPanel.js","pages/contractor/demand/scenes/offer/components/panels/offerPlaced/components/OfferPlacedSectionTitle.js","pages/contractor/demand/scenes/offer/components/panels/additionalOfferEdit/components/commonData/AdditionalOfferCommonData.js","pages/contractor/demand/scenes/offer/components/panels/additionalOfferEdit/components/EnvelopeOfferDatePopup.js","pages/contractor/demand/scenes/offer/components/panels/additionalOfferEdit/AdditionalOfferEditPanel.js","pages/contractor/demand/scenes/offer/components/panels/additionalOfferPlaced/AdditionalOfferPlacedPanel.js","constants/AuctionRule.js","constants/AuctionStatus.js","constants/AuctionType.js","libs/openInNewTab.js","pages/contractor/demand/scenes/offer/components/panels/auctionOfferEdit/components/AuctionRow.js","pages/contractor/demand/scenes/offer/components/panels/auctionOfferEdit/components/AuctionsTable.js","pages/contractor/demand/scenes/offer/components/panels/auctionOfferEdit/AuctionOfferEditPanel.js","pages/contractor/demand/scenes/offer/components/panels/auctionOfferPlaced/AuctionOfferPlacedPanel.js","pages/contractor/demand/scenes/offer/components/panels/additionalOfferPlaced/components/AdditionalOfferPlacedSectionTitle.js","pages/contractor/demand/scenes/offer/components/panels/additionalOfferEdit/components/AdditionalOfferEditSectionTitle.js","pages/contractor/demand/scenes/offer/components/panels/additionalOfferEditAlt/AdditionalOfferEditAltPanel.js","pages/contractor/demand/scenes/offer/components/panels/generalInfo/components/DeneralInfoSectionTitle.js","pages/contractor/demand/scenes/offer/components/panels/auctionOfferPlaced/components/AuctionOfferPlacedSectionTitle.js","pages/contractor/demand/scenes/offer/constants/StageSections.js","components/complex/offer/components/OfferTableRow.js","components/complex/offer/components/OfferTable.js","libs/contractorImport.js","components/popup/addContactor/AddContactor.js","components/complex/offer/components/envelope/RegisterEnvelopeForm.js","components/complex/offer/components/envelope/RegisterEnvelopePopup.js","components/complex/offer/Offers.js","pages/purchaser/MyProcedure/scenes/part3/panels/offers/OffersPanel.js","pages/purchaser/MyProcedure/scenes/part3/panels/offers/index.js","libs/isBzpAttachmentNoticeType.js","components/complex/documentsTables/swz/AddBzpNoticePopup.js","components/complex/documentsTables/swz/SelectSiwzDocumentType.js","components/popup/DownloadHistoryPopup.js","components/button/WorkableIconDownloadCountButton.js","components/button/WarningRoundedButton.js","context/DemandValidationContext.js","components/complex/documentsTables/swz/SiwzVersionsTableRow.js","components/complex/documentsTables/swz/SiwzVersionsTable.js","components/complex/documentsTables/swz/SiwzFileTableRow.js","components/complex/documentsTables/swz/SiwzFileTable.js","components/complex/documentsTables/swz/SelectSiwzDocument.js","components/complex/documentsTables/swz/SiwzDocuments.js","components/complex/documentsTables/repo/CreateFolderPopup.js","components/complex/documentsTables/repo/SelectFolderPopup.js","components/complex/documentsTables/repo/ChangeRepoVisibilityPopup.js","components/button/WorkableIconEjectButton.js","components/complex/documentsTables/repo/RepoFileTableRow.js","components/complex/documentsTables/repo/RepoFileTable.js","components/complex/documentsTables/repo/RepoFolder.js","components/complex/documentsTables/repo/SelectRepoDocument.js","components/complex/documentsTables/repo/RepoDocuments.js","components/complex/documentsTables/DocumentsTables.js","pages/purchaser/MyProcedure/scenes/part3/panels/documents/DocumentsPanel.js","pages/purchaser/MyProcedure/scenes/part3/panels/documents/index.js","constants/ContractorVerificationProcedureType.js","pages/purchaser/MyProcedure/scenes/part3/panels/contractorVerification/components/VerificationProcedureType.js","constants/ContractorVerificationOfferStatus.js","services/ContractorVerificationService.js","pages/purchaser/MyProcedure/scenes/part3/panels/contractorVerification/components/ContractorVerificationRow.js","pages/purchaser/MyProcedure/scenes/part3/panels/contractorVerification/components/ContractorVerificationTable.js","pages/purchaser/MyProcedure/scenes/part3/panels/contractorVerification/ContractorVerification.js","pages/purchaser/MyProcedure/scenes/part3/panels/contractorVerification/index.js","services/OfferEvaluationService.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/constants/OfferEvaluationViewMode.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/constants/OfferEvaluationPositionStatus.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/components/OffersEvaluationScoreColumn.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/components/OffersEvaluationRow.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/components/OffersEvaluationTable.js","components/DottedPagination.js","components/PaginationButton.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/constants/OfferEvaluationRoundType.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/components/OfferEvaluationSearch.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/OffersEvaluation.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersEvaluation/index.js","services/OfferChoiceService.js","components/Pagination.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/OfferChoiceContractorRowPart.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/AuctionTypeList.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/AuctionHistoryPopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/OfferChoiceSummaryCell.js","constants/AdditionalRoundStatus.js","libs/durations.js","services/AdditionalRoundService.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/additionalRound/OfferChoiceEditAdditionalRoundsDatesPopup.js","constants/ProgressStatus.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/additionalRound/OfferChoiceSummaryCellAdditionalRound.js","services/AuctionService.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/constants/AuctionItemBidType.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/OfferChoiceCreateAuctionTable.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/OfferChoiceCreateAuctionPopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/AuctionTypePart.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/EditDatesAuctionPopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/ConfirmAuction.js","components/popup/save/SaveDialogBase.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/AuctionSaveError.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/auction/OfferChoiceSummaryCellAuction.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/constants/OfferChoiceState.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/OfferChoiceRow.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/OfferChoiceTable.js","components/popup/alert/Alert.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/OfferChoiceCancelWhereNoOffersPopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/OfferChoiceSearch.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/constants/OfferChoiceDecision.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/additionalRound/CreateAdditionalRoundTable.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/additionalRound/OfferChoiceCreateAdditionalRoundPopup.js","components/complex/realizationAmount/RealizationAmountForm.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/components/FinalRealizationValuePopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/OfferChoice.js","pages/purchaser/MyProcedure/scenes/part3/panels/offerChoice/index.js","services/OffersChoiceResultService.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/constants/OfferChoiceResultFileState.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/components/OfferChoiceResultFilesTableRow.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/components/OfferChoiceResultFilesTable.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/components/OfferChoiceResultFiles.js","components/button/WorkableIconPrintButton.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/components/OfferChoiceResultFilePublishPopup.js","components/button/WorkableIconCalendarButton.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/components/OfferChoiceResultRow.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/constants/OfferChoiceResultState.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/components/OfferChoiceResultTable.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/OffersChoiceResult.js","pages/purchaser/MyProcedure/scenes/part3/panels/offersChoiceResult/index.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/constants/AgreementListType.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/components/AgreementsListType.js","services/AgreementsService.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/components/AgreementCreatePopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/components/AgreementsAvailablePanel.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/components/AgreementsCreatedPanel.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/constants/AgreementType.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/constants/AgreementState.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/AgreementsPanel.js","pages/purchaser/MyProcedure/scenes/part3/panels/agreements/index.js","services/EvaluationFinishService.js","services/RfxRoundService.js","components/popup/invalidate/InvalidateDemandPopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/evaluationFinish/EvaluationFinish.js","pages/purchaser/MyProcedure/scenes/part3/panels/evaluationFinish/index.js","services/AdditionalRoundPassiveService.js","pages/purchaser/MyProcedure/scenes/part3/panels/additionalRoundPassive/components/AdditionalRoundPassiveStatusCell.js","pages/purchaser/MyProcedure/scenes/part3/panels/additionalRoundPassive/components/AdditionalRoundPassiveRow.js","pages/purchaser/MyProcedure/scenes/part3/panels/additionalRoundPassive/components/AdditionalRoundPassiveTable.js","pages/purchaser/MyProcedure/scenes/part3/panels/additionalRoundPassive/components/AdditionalRoundPassiveCreatePopup.js","pages/purchaser/MyProcedure/scenes/part3/panels/additionalRoundPassive/AdditionalRoundPassive.js","pages/purchaser/MyProcedure/scenes/part3/panels/additionalRoundPassive/index.js","pages/purchaser/MyProcedure/scenes/part3/panels/stageFinish/StageFinish.js","pages/purchaser/MyProcedure/scenes/part3/panels/stageFinish/index.js","pages/purchaser/MyProcedure/scenes/part3/panels/primaryTenderChoice/PrimaryTenderChoice.js","pages/purchaser/MyProcedure/scenes/part3/panels/primaryTenderChoice/index.js","services/DemandAdditionalInfoService.js","context/FormTranslationContext.js","components/complex/nationalNotice/components/inputs/NoticeYesNoInput.js","components/complex/nationalNotice/components/inputs/NoticeIntegerInput.js","components/SelectTreeView.js","components/complex/nationalNotice/components/inputs/NoticeGlossaryInput.js","components/complex/nationalNotice/components/inputs/NoticeNumericInput.js","pages/purchaser/MyProcedure/scenes/part1/panels/additionalInfo/PreparingAdditionalInfo.js","pages/purchaser/MyProcedure/scenes/part3/panels/additionalInfo/index.js","pages/purchaser/MyProcedure/scenes/part3/part3.panels.components.js","services/ResultNoticeService.js","pages/purchaser/MyProcedure/scenes/part4/panels/resultNotice/components/AttachmentResultNoticeRow.js","pages/purchaser/MyProcedure/scenes/part4/panels/resultNotice/components/AttachmentResultNotice.js","constants/PublicationConst.js","pages/purchaser/MyProcedure/scenes/part4/panels/resultNotice/constants/ResultNoticeType.js","pages/purchaser/MyProcedure/scenes/part4/panels/resultNotice/components/OjsResultNotice.js","components/complex/documentsTables/swz/AddBzpResultNoticePopup.js","pages/purchaser/MyProcedure/scenes/part4/panels/resultNotice/ResultNoticePanel.js","pages/purchaser/MyProcedure/scenes/part4/panels/resultNotice/index.js","services/ArchivingService.js","pages/purchaser/MyProcedure/scenes/part4/panels/archiving/constants/ArchivingStatus.js","pages/purchaser/MyProcedure/scenes/part4/panels/archiving/ArchivingPanel.js","pages/purchaser/MyProcedure/scenes/part4/panels/archiving/index.js","services/FinishDemandService.js","pages/purchaser/MyProcedure/scenes/part4/panels/finish/components/UnpublishNoticePopup.js","pages/purchaser/MyProcedure/scenes/part4/panels/finish/FinishDemandPanel.js","pages/purchaser/MyProcedure/scenes/part4/panels/finish/index.js","pages/purchaser/MyProcedure/scenes/part4/panels/documents/FinishDocumentsPanel.js","pages/purchaser/MyProcedure/scenes/part4/panels/documents/index.js","services/DemandPlanRealizationService.js","components/icon/CalcIcon.js","components/button/WorkableIconCalcButton.js","components/complex/netGrossCalc/NetGrossCalcPopup.js","components/complex/netGrossCalc/NetGrossCalc.js","pages/purchaser/MyProcedure/scenes/part4/panels/plan/components/DemandPlanRealizationRow.js","pages/purchaser/MyProcedure/scenes/part4/panels/plan/components/DemandPlanRealizationTable.js","pages/purchaser/MyProcedure/scenes/part4/panels/plan/DemandPlanRealizationPanel.js","pages/purchaser/MyProcedure/scenes/part4/panels/additionalInfo/index.js","pages/purchaser/MyProcedure/scenes/part4/part4.panels.components.js","pages/purchaser/MyProcedure/scenes/part4/panels/plan/index.js","services/helpers/validateSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/dealings/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/schedule/deadlinesEdit/FormElement.js","pages/purchaser/MyProcedure/scenes/part1/panels/schedule/constants/period.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/schedule/deadlinesEdit/DateBind.js","services/ScheduleService.js","pages/purchaser/MyProcedure/scenes/part1/panels/schedule/deadlinesEdit/DeadlinesEdit.js","pages/purchaser/MyProcedure/scenes/part1/panels/schedule/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/commission/DemandCommissionForm.js","pages/purchaser/MyProcedure/scenes/part1/panels/commission/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/constants/exclusion.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/constants/selection.values.js","services/EspdService.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/constants/procedureType.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/constants/buyerType.values.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/ProcedureSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/components/Section.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/components/Element.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/components/AllElements.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/components/AllSections.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/ExclusionSection.js","constants/EspdBooleanItems.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/SelectionSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/components/ExportJedzButtons.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/components/DealingJedzSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/JEDZFormContent.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/jedz/JEDZ.js","pages/purchaser/MyProcedure/scenes/part1/panels/espd/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/siwz/documents/Documents.js","pages/purchaser/MyProcedure/scenes/part1/panels/siwz/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/guarantee/components/WadiumField.js","pages/purchaser/MyProcedure/scenes/part1/panels/guarantee/components/WadiumTable.js","services/GuaranteeService.js","pages/purchaser/MyProcedure/scenes/part1/panels/guarantee/constants/validation.js","pages/purchaser/MyProcedure/scenes/part1/panels/guarantee/Wadium.js","pages/purchaser/MyProcedure/scenes/part1/panels/guarantee/index.js","components/button/IconExternalSignButton.js","components/complex/contractor/ContractorTable.js","pages/purchaser/MyProcedure/scenes/part1/panels/contractor/ContactorPage.js","pages/purchaser/MyProcedure/scenes/part1/panels/contractor/index.js","services/NoticeService.js","pages/purchaser/MyProcedure/scenes/part1/panels/notice/NoticePage.js","pages/purchaser/MyProcedure/scenes/part1/panels/notice/index.js","services/NationalNoticeService.js","pages/purchaser/MyProcedure/scenes/part1/panels/nationalNotice/NationalNoticeSection.js","pages/purchaser/MyProcedure/scenes/part1/panels/nationalNotice/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/papersGenerator/PreparingPapersGenerator.js","pages/purchaser/MyProcedure/scenes/part1/panels/papersGenerator/index.js","services/PublishService.js","pages/purchaser/MyProcedure/scenes/part1/panels/publication/ConfirmPublish.js","pages/purchaser/MyProcedure/scenes/part1/panels/publication/PublishSection.js","libs/getUncompletedSections.js","components/complex/nationalNotice/constants/NationalNoticeStatus.js","libs/isPublishButtonActive.js","pages/purchaser/MyProcedure/scenes/part1/panels/publication/NoticeButtons.js","pages/purchaser/MyProcedure/scenes/part1/panels/publication/InformationSection.js","libs/isCancelModificationButtonActive.js","libs/isPreviewNoticeButtonActive.js","constants/EzamowieniaRequiredGroups.js","pages/purchaser/MyProcedure/scenes/part1/panels/publication/BzpNoticeButtons.js","pages/purchaser/MyProcedure/scenes/part1/panels/publication/Publication.js","libs/isPreviewButtonActive.js","pages/purchaser/MyProcedure/scenes/part1/panels/exPostGoToFinish/ExPostGoToFinish.js","pages/purchaser/MyProcedure/scenes/part1/panels/questionnaire/Questionnaire.js","pages/purchaser/MyProcedure/scenes/part1/part1.panels.components.js","pages/purchaser/MyProcedure/scenes/part1/panels/exPostGoToFinish/index.js","pages/purchaser/MyProcedure/scenes/part1/panels/additionalInfo/index.js","pages/purchaser/MyProcedure/scenes/components/AccordionPart.js","components/popup/relatedObjects/DemandRelatedObjectsPopup.js","pages/purchaser/MyProcedure/scenes/part1/Part1.js","components/Workspace.js","hooks/useNodeTopPosition.js","pages/purchaser/MyProcedure/scenes/part2/components/Section.js","services/RfxSupplierService.js","pages/purchaser/MyProcedure/scenes/part2/sections/ContractorSection.js","pages/purchaser/MyProcedure/scenes/part2/sections/OfferSection.js","components/complex/countdown/ProgressRing.js","components/complex/countdown/RingCountdown.js","pages/purchaser/MyProcedure/scenes/part2/sections/StatisticSection.js","pages/purchaser/MyProcedure/scenes/part2/components/ExpansionProgressPanel.js","pages/purchaser/MyProcedure/scenes/part2/components/OfferDecryptionProgress.js","pages/purchaser/MyProcedure/scenes/part2/constants/OnlinePlatforms.js","pages/purchaser/MyProcedure/scenes/part2/components/EditSessionOnlinePopup.js","pages/purchaser/MyProcedure/scenes/part2/components/PublicSessionOnlineProgress.js","pages/purchaser/MyProcedure/scenes/part2/components/RealizationAmountProgress.js","pages/purchaser/MyProcedure/scenes/part2/sections/OfferDecryptionSection.js","pages/purchaser/MyProcedure/scenes/part2/sections/DocumentsSection.js","pages/purchaser/MyProcedure/scenes/part2/components/ResendOfferInvitationPopup.js","components/Tile.js","pages/purchaser/MyProcedure/scenes/part2/components/TilesRow.js","services/PollService.js","components/popup/poll/PollNpsSwitch.js","components/popup/poll/Poll.js","pages/purchaser/MyProcedure/scenes/part2/Part2.js","pages/purchaser/MyProcedure/scenes/part3/panels/components/RealizationValuePopup.js","pages/purchaser/MyProcedure/scenes/part3/Part3.js","pages/purchaser/MyProcedure/scenes/part4/Part4.js","components/OrganizationsSelect.js","libs/contractorNameBuilder.js","components/complex/correspondence/CorrespondenceEmailList.js","components/complex/correspondence/AddThreadPopup.js","components/complex/correspondence/AddThreadAsSupplierForm.js","components/complex/correspondence/AddThreadAsSupplierPopup.js","components/complex/correspondence/MessageEmailDeliveryPopup.js","components/complex/correspondence/Message.js","components/complex/correspondence/NewMessageForm.js","components/complex/correspondence/PublishMessageConfirmationPopup.js","components/complex/correspondence/NewMessage.js","components/complex/correspondence/MessagesList.js","components/complex/correspondence/Thread.js","components/complex/correspondence/AddBulkMessagePopup.js","components/complex/correspondence/ThreadsPanel.js","components/complex/correspondence/CorrespondenceSearch.js","components/complex/correspondence/Correspondence.js","pages/purchaser/MyProcedure/scenes/correspondence/sections/CorrespondenceSection.js","pages/purchaser/MyProcedure/scenes/correspondence/CorrespondencePanel.js","services/EmailListService.js","pages/purchaser/MyProcedure/scenes/emailList/components/EmailListSearch.js","pages/purchaser/MyProcedure/scenes/emailList/components/EmailDeliveriesTable.js","pages/purchaser/MyProcedure/scenes/emailList/components/EmailDetailsPopup.js","pages/purchaser/MyProcedure/scenes/emailList/components/EmailListSection.js","pages/purchaser/MyProcedure/scenes/emailList/EmailListPanel.js","components/complex/nationalNotice/components/inputs/NoticeTextInput.js","components/complex/nationalNotice/contractNotice/components/BasicData.js","components/complex/nationalNotice/components/inputs/NoticeTypography.js","components/complex/nationalNotice/contractNotice/components/PurchaserDataTogetherList.js","components/complex/nationalNotice/contractNotice/components/PurchaserDataTogether.js","components/complex/nationalNotice/contractNotice/components/PurchaserDataEntrusted.js","components/complex/nationalNotice/contractNotice/components/PurchaserData.js","components/complex/nationalNotice/components/FormNavigator.js","components/complex/nationalNotice/contractNotice/contractNoticeSteps.js","components/complex/nationalNotice/contractNotice/contractNoticeValidation.js","components/complex/nationalNotice/contractNotice/components/RealizationTypeData.js","components/complex/nationalNotice/contractNotice/components/DocumentsAccessData.js","components/CPVSingleInput.js","components/complex/nationalNotice/components/inputs/NoticeCpvInput.js","components/complex/nationalNotice/components/inputs/NoticeDateInput.js","components/complex/nationalNotice/contractNotice/components/OrderObjectNotDivided.js","components/complex/nationalNotice/components/DealingsNavigator.js","components/complex/nationalNotice/contractNotice/components/OrderObjectDividedList.js","components/complex/nationalNotice/contractNotice/components/OrderObjectDivided.js","components/complex/nationalNotice/contractNotice/components/OrderObjectData.js","components/complex/nationalNotice/contractNotice/components/QualificationData.js","components/complex/nationalNotice/contractNotice/components/ObjectiveEvidenceData.js","components/complex/nationalNotice/contractNotice/components/OrderTermsData.js","components/complex/nationalNotice/contractNotice/components/ContractDraftData.js","components/complex/nationalNotice/contractNotice/components/OrderDetailsFrameworkAgreement.js","components/complex/nationalNotice/contractNotice/components/OrderDetailsLotCriterion.js","components/complex/nationalNotice/contractNotice/components/OrderDetailsPrimaryLot.js","components/complex/nationalNotice/components/inputs/NoticeDateTimeInput.js","components/complex/nationalNotice/contractNotice/components/OrderDetailsPrimary.js","components/complex/nationalNotice/contractNotice/components/OrderDetailsPartnership.js","components/complex/nationalNotice/contractNotice/components/OrderDetailsPartnershipLot.js","components/complex/nationalNotice/contractNotice/components/OrderDetailsData.js","components/complex/nationalNotice/contractNotice/components/AdditionalInfoData.js","components/complex/nationalNotice/contractNotice/ContractNoticeForm.js","components/complex/nationalNotice/xmlUzpPresidentPaper/XmlUzpPresidentPaper.js","components/complex/nationalNotice/NationalNoticePage.js","pages/purchaser/MyProcedure/scenes/nationalNotice/NationalNoticePanel.js","pages/purchaser/MyProcedure/scenes/PartsRouter.js","components/Page.js","components/complex/infobar/InfoDataElement.js","components/complex/infobar/InfoData.js","components/complex/infobar/OpenBarText.js","components/complex/infobar/InfoBarTitleButton.js","components/complex/infobar/InfoBarTitle.js","libs/extendFindSectionEditable.js","components/complex/infobar/InfoBar.js","components/complex/stagebar/components/StageElement.js","components/complex/stagebar/StageBar.js","pages/purchaser/MyProcedure/scenes/StepperPages.js","components/SearchInput.js","pages/purchaser/MyProcedure/scenes/home/started/components/SearchBar.js","services/DemandsService.js","hooks/usePathParams.js","components/button/WorkableIconDuplicateButton.js","pages/purchaser/MyProcedure/scenes/home/started/Started.js","pages/purchaser/MyProcedure/scenes/home/HomeRoute.js","pages/purchaser/MyProcedure/scenes/home/MyProcedureHome.js","pages/purchaser/MyProcedure/MyProcedure.js","pages/purchaser/PurchasingGroup/stages/components/PurchasingGroupStageSection.js","pages/purchaser/PurchasingGroup/stages/components/PurchasingGroupStage.js","pages/purchaser/PurchasingGroup/stages/stage2/PurchasingGroupStage2.js","pages/purchaser/PurchasingGroup/stages/stage1/PurchasingGroupStage1.js","pages/purchaser/PurchasingGroup/stages/PurchasingGroupStageNr.js","pages/purchaser/PurchasingGroup/stages/PurchasingGroupStagesRouter.js","pages/purchaser/PurchasingGroup/stages/components/PurchaserGroupInfoBar.js","components/complex/stagebar/StageBarCommon.js","pages/purchaser/PurchasingGroup/constants/PurchasingGroupStatus.js","pages/purchaser/PurchasingGroup/stages/components/PurchaserGroupStageBar.js","pages/purchaser/PurchasingGroup/stages/PurchasingGroupStages.js","pages/purchaser/PurchasingGroup/list/PurchasingGroupSearch.js","pages/purchaser/PurchasingGroup/list/PurchasingGroupList.js","pages/purchaser/PurchasingGroup/list/PurchasingGroupMemberList.js","services/PurchasingGroupTemplateService.js","components/button/WorkableIconDeactivateButton.js","components/button/WorkableIconActivateButton.js","pages/purchaser/PurchasingGroup/templates/PurchasingGroupTemplatesList.js","components/button/IconDragButton.js","components/complex/sortable/SortableHandle.js","components/RadioGroupYesNo.js","pages/purchaser/PurchasingGroup/templates/components/PurchasingGroupTemplateField.js","pages/purchaser/PurchasingGroup/templates/components/PurchasingGroupTemplateAggregatedFieldsPopup.js","pages/purchaser/PurchasingGroup/templates/components/PurchasingGroupTemplateForm.js","pages/purchaser/PurchasingGroup/templates/PurchasingGroupTemplate.js","pages/purchaser/PurchasingGroup/PurchasingGroup.js","services/RegistrationService.js","pages/purchaser/Admin/registrations/constants/RegistrationStatus.js","pages/purchaser/Admin/registrations/list/RegistrationsSearch.js","pages/purchaser/Admin/registrations/list/RegistrationsList.js","pages/purchaser/Admin/registrations/registration/InfoEntry.js","pages/purchaser/Admin/registrations/registration/UserRegistrationRejectPopup.js","pages/purchaser/Admin/registrations/registration/UserRegistrationAddOrganizationUnit.js","pages/purchaser/Admin/registrations/registration/UserRegistration.js","pages/purchaser/Admin/Admin.js","pages/contractor/demand/scenes/offer/components/common/OfferExpansionSections.js","pages/contractor/demand/scenes/offer/components/common/DefineOfferPasswordPopup.js","pages/contractor/demand/scenes/offer/components/OfferSections.js","pages/purchaser/demand/scenes/offer/PurchaserOfferPanel.js","pages/purchaser/demand/scenes/PurchaserScenesRouter.js","components/complex/stagebar/ContractorStageBar.js","pages/purchaser/demand/scenes/PurchaserStepperPages.js","pages/purchaser/demand/scenes/preview/PurchaserPreviewPanel.js","pages/purchaser/demand/PurchaserDemand.js","pages/purchaser/annualReport/report/constants/AnnualReportStatus.js","services/AnnualReportsService.js","pages/purchaser/annualReport/list/components/AddAnnualReportPopup.js","pages/purchaser/annualReport/list/components/AnnualReportListTableRow.js","pages/purchaser/annualReport/list/AnnualReportsList.js","pages/purchaser/annualReport/report/constants/annualReportSteps.js","pages/purchaser/annualReport/report/constants/annulaReportClasses.js","pages/purchaser/annualReport/report/components/common/AnnualReportNavigator.js","pages/purchaser/annualReport/report/constants/AnnualReportNoticeSource.js","pages/purchaser/annualReport/report/constants/annualReportValidation.js","pages/purchaser/annualReport/report/components/purchaser/AnnualReportPurchaserForm.js","pages/purchaser/annualReport/report/components/common/AnnualReportTableCell.js","pages/purchaser/annualReport/report/components/common/AnnualReportEditPopup.js","libs/scrollToContainer.js","pages/purchaser/annualReport/report/components/aboveEu/AnnualReportAboveEuEditForm.js","libs/formatBoolean.js","libs/formatInteger.js","pages/purchaser/annualReport/report/components/common/AnnualReportSearchBar.js","pages/purchaser/annualReport/report/components/common/AnnualReportTableHeadCell.js","pages/purchaser/annualReport/report/components/common/MoveAnnualReportEntry.js","components/button/WorkableIconErrorButton.js","pages/purchaser/annualReport/report/components/common/AnnualReportTablePart.js","pages/purchaser/annualReport/report/components/aboveEu/AnnualReportAboveEuForm.js","pages/purchaser/annualReport/report/components/belowEu/AnnualReportBelowEuEditForm.js","pages/purchaser/annualReport/report/components/belowEu/AnnualReportBelowEuTablePart.js","pages/purchaser/annualReport/report/components/belowEu/AnnualReportBelowEuForm.js","pages/purchaser/annualReport/report/components/conflict/AnnualReportConflictEditForm.js","pages/purchaser/annualReport/report/constants/annualReportTenderMode.js","pages/purchaser/annualReport/report/components/conflict/AnnualReportConflictForm.js","pages/purchaser/annualReport/report/components/community/AnnualReportCommunityEditForm.js","pages/purchaser/annualReport/report/components/community/AnnualReportCommunityForm.js","pages/purchaser/annualReport/report/components/social/AnnualReportSocialEditForm.js","pages/purchaser/annualReport/report/components/social/AnnualReportSocialForm.js","pages/purchaser/annualReport/report/components/innovative/AnnualReportInnovativeEditForm.js","pages/purchaser/annualReport/report/components/innovative/AnnualReportInnovativeForm.js","pages/purchaser/annualReport/report/components/exception/AnnualReportExceptionEditForm.js","pages/purchaser/annualReport/report/components/exception/AnnualReportExceptionTablePart.js","pages/purchaser/annualReport/report/components/exception/AnnualReportExceptionForm.js","pages/purchaser/annualReport/report/components/notIncluded/AnnualReportNotIncludedEditForm.js","pages/purchaser/annualReport/report/components/notIncluded/AnnualReportNotIncludedTablePart.js","pages/purchaser/annualReport/report/components/notIncluded/AnnualReportNotIncludedForm.js","pages/purchaser/annualReport/report/constants/dictToTranslationMap.js","components/Link.js","pages/purchaser/annualReport/report/components/common/AnnualReportError.js","pages/purchaser/annualReport/report/components/common/ReloadAnnualReportTableFromPrevVersionButton.js","pages/purchaser/annualReport/report/components/common/ReloadAnnualReportTableButton.js","pages/purchaser/annualReport/report/AnnualReportPage.js","pages/purchaser/annualReport/AnnualReport.js","pages/purchaser/PurchaserRouter.js","services/SalesService.js","components/popup/salesNotification/SalesNotificationPopup.js","components/popup/confirm/ConfirmThreeButtons.js","components/popup/confirmCloseStepper/ConfirmCloseStepper.js","components/complex/feedback/FeedbackContentOpen.js","components/complex/feedback/FeedbackContentClosed.js","components/complex/feedback/Feedback.js","components/complex/ezamowienia/EzamowieniaOauth.js","pages/purchaser/PurchaserRoot.js","pages/contractor/demand/scenes/correspondence/sections/CtrCorrespondenceSection.js","pages/contractor/demand/scenes/correspondence/CtrCorrespondencePanel.js","pages/contractor/demand/scenes/offer/components/ContractorClock.js","pages/contractor/demand/scenes/offer/components/OfferTilesRow.js","pages/contractor/demand/scenes/offer/CtrOfferPanel.js","pages/contractor/demand/scenes/CtrScenesRouter.js","components/complex/signature/ChooseSignatureTypePopup.js","libs/loadExternalLibrary.js","components/complex/signature/Szafir.js","components/complex/signature/ExternalSignature.js","components/complex/signature/Signature.js","pages/contractor/demand/scenes/CtrStepperPages.js","pages/contractor/demand/CtrDemand.js","pages/contractor/ContractorRouter.js","pages/contractor/ContractorRoot.js","pages/Router.js","components/complex/tutorial/WelcomeTutorial.js","components/complex/tutorial/TourTooltip.js","components/complex/tutorial/tutorial.steps.js","components/complex/tutorial/Tutorial.js","components/popup/save/SaveDialog.js","components/popup/save/SaveDialogError.js","components/popup/save/SaveDialogInfo.js","components/popup/save/Save.js","hooks/useInterval.js","components/popup/session/Session.js","components/popup/registerPopup/RegisterPopup.js","services/UserNavigationService.js","services/ClientService.js","hooks/useInitialize.js","components/popup/confirm/HookConfirmPopup.js","components/popup/alert/HookAlertPopup.js","components/complex/loadingScreen/HookLoadingScreen.js","pages/Root.js","theme/ThemeProvider.js","App.js","serviceWorker.js","index.js"],"names":["getLocale","cname","name","ca","document","cookie","split","i","length","c","charAt","substring","indexOf","getCookie","Tr","key","obj","translateObj","tr","en","pl","undefined","k","find","replace","RegExp","action","type","payload","setResource","id","value","clearResource","addObjectResource","setPrivileges","setSignature","clearSignature","__setStoreValue","__setStoreMultiValue","setContrastColors","setMenuOpen","setSalesNotification","salesNotification","setEzamowieniaOauth","ezamowieniaOauth","clearEzamowieniaOauth","setConfirmCloseStepper","handleConfirm","sectionName","handleSecondConfirm","setConfirmNotifications","confirmNotification","setAlertNotifications","alertNotification","__setSaveStatus","setSaveStatusLoading","saveStatusValues","setSaveStatusClosed","setSaveStatusDialog","setSaveStatusInfo","message","saveStatus","saveStatusMessage","setSaveStatusError","errorMessage","setOpenTutorial","setInnerMenuOpen","setOpenRegisterPopup","setOpenForm","setOpenImporter","setFormDraftLoaded","draftLoaded","setStepperState","state","setStepperStateCloseValidator","closeValidationFunction","clearStepperStateCloseValidator","setStepperStateDeleteFormDraftFunction","deleteFormDraftFunc","clearStepperStateDeleteFormDraftFunction","setStepperStateSaveFormDraftFunction","clearStepperStateSaveFormDraftFunction","createPath","route","params","compile","purchaserBaseRoute","purchaserBaseRoute2","contractorBaseRoute","root","BASE","buyerPaths","BUYER_INIT","MY_PROCEDURE","FAQ","PURCHASER_INIT","PURCHASING_GROUP","ANNUAL_REPORT","ADMIN","DEMAND","ctrPaths","CTR_INIT","CTR_DEMAND","ctrDemand","old","CTR_DEMAND_CORRESPONDENCE_ID","steps","CTR_DEMAND_ID","CTR_DEMAND_ID_CORRESPONDENCE","CTR_DEMAND_ID_OFFER","CTR_DEMAND_ID_OFFER_STAGE","CTR_DEMAND_ID_OFFER_STAGE_ID","CTR_DEMAND_ID_OFFER_STAGE_ID_SECTION","myProcedureSteps","MP_1","MP_2","MP_3","MP_4","MP_CORRESPONDENCE","MP_EMAIL_LIST","MP_NATIONAL_NOTICE","myProcedureStepsTabsEdit","MP_1_ID","MP_2_ID","MP_3_ID","MP_4_ID","MP_CORRESPONDENCE_ID","MP_EMAIL_LIST_ID","MP_NATIONAL_NOTICE_FORM_TYPE_ID","myProcedure","annualReport","MP_ANNUAL_REPORT","MP_ANNUAL_REPORT_YEAR_LIST","MP_ANNUAL_REPORT_REPORT","MP_ANNUAL_REPORT_REPORT_ID","MP_ANNUAL_REPORT_REPORT_ID_TABLE","purchasingGroup","MP_PURCHASING_GROUP","MP_PURCHASING_GROUP_LIST","MP_PURCHASING_GROUP_MEMBER_LIST","MP_PURCHASING_GROUP_TEMPLATES","MP_PURCHASING_GROUP_TEMPLATES_LIST","MP_PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID","MP_PURCHASING_GROUP_GROUP","MP_PURCHASING_GROUP_GROUP_ID","MP_PURCHASING_GROUP_GROUP_ID_EMAIL_LIST","MP_PURCHASING_GROUP_GROUP_ID_STAGE","MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR","MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR_SECTION","purchaserDemand","PURCHASER_DEMAND_ID","PURCHASER_DEMAND_ID_OFFER","PURCHASER_DEMAND_ID_PREVIEW","PURCHASER_DEMAND_ID_PREVIEW_ID_STAGE_ID_SECTION","PURCHASER_DEMAND_ID_OFFER_CONTRACTOR","PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID","PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE","PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID","PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID_SECTION","admin","ADMIN_REGISTRATIONS","ADMIN_REGISTRATIONS_LIST","ADMIN_REGISTRATION_ID","matchOpenDrawerMenu","matchOpenDrawerMenuNotExact","setMenuOpenOnPath","path","window","location","pathname","store","reduxStore","getState","open","includes","item","startsWith","isMenuOpen","dispatch","redirect","setSearchObj","searchObj","search","querystring","stringify","redirectWithoutHistory","redirectReplace","redirectWithSearch","baseRoute","DemandValidation","DemandValidationKeys","COMMISSION","QUESTIONNAIRE","DEALINGS","SCHEDULE","SIWZ","PUBLICATION","EX_POST_GO_TO_FINISH","ESPD","NOTICE","NATIONAL_NOTICE","CONTRACTOR","GUARANTEE","PREPARING_PAPERS_GENERATOR","PREPARING_ADDITIONAL_INFO","OFFERS","DOCUMENTS","CONTRACTOR_VERIFICATION","OFFERS_EVALUATION","OFFER_CHOICE","PRIMARY_TENDER_CHOICE","ADDITIONAL_ROUND_PASSIVE","OFFERS_CHOICE_RESULT","EVALUATION_FINISH","STAGE_FINISH","PAPERS_GENERATOR","AGREEMENTS","EVALUATION_ADDITIONAL_INFO","RESULT_NOTICE","FINISH_DOCUMENTS","DEMAND_PLAN_REALIZATION","FINISH_DEMAND","ARCHIVING","FINISH_ADDITIONAL_INFO","DemandValidationTr","Object","keys","reduce","prev","createItem","trKey","href","hrefExpand","title","createStep","apiId","confirmClosing","label","rp","RouterPath","initialState","stateCloseValidator","stateCloseFunction","createStore","combineReducers","resources","idObject","keyValuePairObject","forEach","privileges","contrast","largeText","clientColors","openTutorial","form","authorize","counter","innerMenu","stepper","saveFormDraftFunc","formValues","dirty","signature","composeWithDevTools","NotFound","Typography","variant","align","ListItem","Icon","onClick","className","classes","classesObj","iconPosition","openInner","url","innerKey","singleLink","tooltip","renderItem","component","shouldRender","isSelected","iconBase","ListItemIcon","clsx","iconOpen","contrastColor","iconContrast","icon","Tooltip","itemClass","onHover","elementColor","mainPadding","button","x","onArrowClick","Box","epmptySpace","iconInnerOpen","innerArrow","leftMargin","ListItemText","textBox","primary","primaryTypographyProps","noWrap","text","rightIcon","defaultProps","withRouter","withStyles","theme","marginLeft","spacing","minWidth","transform","color","palette","contrastText","components","navigation","paddingLeft","whiteSpace","fill","main","background","light","secondary","width","maxWidth","memo","prevProps","nextProps","JSON","paddingTop","paddingBottom","setOpen","ArrowIcon","Logo","purchaser","isContrast","logoLongMem","useMemo","logoLongContrast","logoIconMem","to","image","imageOpen","imageClose","src","alt","connect","height","objectFit","Button","hideTooltip","placement","children","others","disabled","transparentBorder","Boolean","marginRight","border","ListElement","onMouseEnter","onMouseLeave","NewProcedureMenu","anchorEl","onClose","items","useState","anchorItem","setAnchorItem","useEffect","handleClickElement","e","handleMouseEnter","currentTarget","Popper","relatedTarget","attributes","role","Paper","List","map","zIndex","isNonpublicProcedure","procedureType","ProcedureType","NATIONAL_NONPUBLIC_TYPE","NATIONAL_LOWCOST_TYPE","isNationalProcedure","NATIONAL_PUBLIC","NATIONAL_SOCIAL_SERVICES","isEuropeProcedure","EUROPE_PUBLIC","EUROPE_SOCIAL_SERVICES","COMPETITION","DYNAMICPURCHASINGSYSTEM","FRAMEWORKDEMAND","LOWCOST","PUBLIC","RESEARCH","RESEARCHTECHNICAL","SOCIALSERVICES","STANDARDPURCHASEREQUEST","NONPUBLICEXECUTIVE","NATIONAL_LOWCOST","NATIONAL_RESEARCH_TYPE","CONCESSION","ProcedureTypeTr","ProcedureType_PZP_2021","values","newDeamandFunction","passive","procedures","proc","system","push","ListAddButton","setAnchorEl","buttonLabel","fullWidth","size","buttonTooltipWraper","menuItems","padding","marginBottom","display","devMode","process","redirect_uri","origin","SERVER_URL","EXT_JS_LIBRARIES","jquery","encodeURIComponent","pjson","version","szafir","BASE_MP","oauth","AUTHORIZE","TOKEN","LOGOUT","base","DEMANDS","RFX","CPV_LIST","MEASURE_UNITS","ITEMS","USER","SALES","POLL","UPLOAD","csrf","encryptRoundId","CHANG_LANGUAGE","language","country","backUrl","sales","SALES_NOTIFICATION_SEND","functionalityName","poll","POLL_SAVE_RATING","POLL_GET","pollType","DEMAND_BASE","RFX_BASE","__DEMAND_AUTOSAVE","__DEMAND_EXPOST_AUTOSAVE","demand","DEMAND_SAVE","DEMAND_SAVE_EX_POST","DEMAND_GET_NEW","DEMAND_GET_BY_ID","DEMAND_COMMISION_USER_HISTORY","DEMAND_AUTOSAVE","DEMAND_AUTOSAVE_CHECK","DEMAND_EXPOST_AUTOSAVE","DEMAND_EXPOST_AUTOSAVE_CHECK","DEMAND_PREVIEW","DEMAND_ACTIONS","DEMAND_DELETE","DEMAND_CLONE","DEMAND_REALTED_OBJECTS","DEMAND_PRIVILEGES","DEMAND_RFX_PRIVILEGES","DEMAND_UPDATE_NUMBER","DEALINGS_AUTOSAVE_DEALING","dealingId","dealings","DEALINGS_SINGLE","demandId","DEALINGS_LIST","DEALINGS_SAVE","DEALINGS_VALIDATE","DEALINGS_DELETE","DEALINGS_AUTOSAVE","DEALINGS_AUTOSAVE_CHECK","DEALINGS_AUTOSAVE_BATCH","DEALINGS_IMPORT","DEALINGS_EXPORT","DEALINGS_WITH_CRITERION","critId","DEALINGS_MATCHING_CRITERION","stageId","criteriumType","DEALING","dealing","DEALING_REALIZATION_VALUE","DEALING_FINAL_REALIZATION_VALUE","DEALING_REALIZATION_VALUE_STATUS","DEALING_REALIZATION_VALUE_PUBLISH","DEALING_REALIZATION_VALUE_UNPUBLISH","papersGenerator","RFX_REQUEST_POSITION","SWZ_PARAMS","RFX_INVITED_SUPPLIER_WITH_OFFER","RFX_INVITED_SUPPLIER_POSITION","supplierId","SIWZ_GET_GENERATOR_PARAMS","XMM_UZP_PRESIDENT_PAPER","GET_SUPPLIER_ATTACHMENTS_VERIFICATION","PAPERS_GENERATOR_PRINT","identity","paper","PAPERS_GENERATOR_PRINT_SHARE","shareSystem","PAPERS_GENERATOR_DEMAND_REPORT","report","PAPERS_GENERATOR_DEMAND_ATTACHMENT_VERIFICATION_REPORT","PAPERS_GENERATOR_CORRESPONDENCE_ATTACHMENT_VERIFICATION_REPORT","PAPERS_GENERATOR_DEMAND_PROCESS_HISTORY","EMAIL_LIST","emailList","EMAIL_LIST_ACTIONS","EMAIL_DETAILS","emailId","EMAIL_PRINT","schedule","SCHEDULE_AUTOSAVE","SCHEDULE_AUTOSAVE_CHECK","SCHEDULE_SAVE","SCHEDULE_VALIDATE","commission","COMMISSION_AUTOSAVE","COMMISSION_AUTOSAVE_CHECK","COMMISSION_VALIDATE","COMMISSION_AVAILABLE","COMMISSION_HISTORY","COMMISSION_DELETE_COMMISION_MEMBER","COMMISSION_MARK_HISTORICAL_MEMBER","COMMISSION_EXTERNAL","GUARANTEE_AUTOSAVE","guarantee","GUARANTEE_VALIDATE","GUARANTEE_AUTOSAVE_CHECK","ESPD_AUTOSAVE","espd","ESPD_SAVE","ESPD_VALIDATE","ESPD_AUTOSAVE_CHECK","ESPD_EXPORT_FOR_DEMAND","ESPD_EXPORT_FOR_DEALING","ESPD_PRINT_FOR_DEMAND","ESPD_PRINT_FOR_DEALING","CONTRACTOR_INVITE","contractor","CONTRACTOR_ADD","CONTRACTOR_GET_LIST","CONTRACTOR_GET_DETAILS","contractorDepartmentId","CONTRACTOR_REMOVE","CONTRACTOR_ONEPLACE","CONTRACTOR_VALIDATE","CONTRACTOR_CHECK","CONTRACTOR_GET_NIP_LIST","contractorVerification","CONTRACTOR_VERIFICATION_LIST","CONTRACTOR_VERIFICATION_STATUS","CONTRACTOR_VERIFICATION_PROCEDURE","CONTRACTOR_VERIFICATION_VALIDATE","user","USER_DATA","USER_PROFILE","USER_LOGGED_MENU_LIST","USER_SESSION_TIME","USER_SERVER_TIME","header","HEADER","client","CLIENT_LOGO","CLIENT_COLORS","publish","PUBLISH_DEMAND","IS_PUBLISH_DEMAND","PUBLISH_OJS_NOTICE","ROLLBACK_OJS_NOTICE","CHECK_OJS_NOTICE","CHECK_PUBLICATION_LIMIT","PUBLISH_DEMAND_EX_POST","notice","NOTICE_PREVIEW","NOTICE_VALIDATE","SIWZ_ID","source","siwz","SIWZ_MOVE_FROM_REPO","SIWZ_VALIDATE","SIWZ_VALIDATE_DOCUMENTS","SIWZ_ID_DOWNLOAD_HISTORY","SIWZ_ID_UPDATE_DESCRIPTION","SIWZ_ID_UPDATE_SHARE","SIWZ_ID_UPDATE_STATUS","SIWZ_ID_PUBLISH","SIWZ_ID_VERSIONS","SIWZ_ID_UNPUBLISH","SIWZ_ID_GET_DOWNLOAD_URL","openInBrowser","SIWZ_EDITABLE","SIWZ_TYPES","SIWZ_DOWNLOAD_ALL","SIWZ_ADD_BZP_NOTICE","SIWZ_POST_PRINT_SWZ","SIWZ_POST_SHARE_SWZ","statistic","STATISTIC_CURRENT_ROUND","STATISTIC","roundId","SUPPLIERS","supplier","SUPPLIERS_ADD","SUPPLIERS_INVITE","SUPPLIERS_LIST","SUPPLIERS_CHANGE_EXTERNAL_SIGN","rfxRound","RFX_ROUND_CANCEL","RFX_ROUND_PRIVILEGES","RFX_OFFERS_BASE","RFX_DECRYPTION_BASE","offers","RFX_OFFERS_LIST","RFX_OFFERS_SEND_INVITE","RFX_OFFERS_ATTACHMENTS","RFX_OFFERS_ENVELOPE","RFX_OFFERS_ENVELOPE_ID","offerEnvelopeId","RFX_OFFERS_ADDITIONAL_ROUND_OFFERS","RFX_OFFERS_ACTIONS","RFX_OFFERS_SUMMARY","RFX_OFFERS_PUBLIC_SESSION_START","RFX_OFFERS_PUBLIC_SESSION_STATUS","RFX_OFFERS_PUBLIC_SESSION_PROGRESS","RFX_OFFERS_DECRYPTION_START","RFX_OFFERS_DECRYPTION_STATUS","RFX_OFFERS_DECRYPTION_STATUS_LIGHT","RFX_OFFERS_DECRYPTION_PROGRESS","RFX_OFFERS_PUBLIC_SESSION_ONLINE_SAVE","RFX_OFFERS_PUBLIC_SESSION_ONLINE_STATUS","REPO","REPO_FOLDER","folderId","REPO_FILE","fileId","repo","REPO_EDITABLE","REPO_PUBLISH_OPENING_OFFER_FOLDER","REPO_VISIBILITY_TYPES","REPO_FILES_VISIBILITY","REPO_FOLDER_SHARE","REPO_DOWNLOAD_ALL","REPO_DELETE_ALL_FOLDER_FILES","REPO_FILE_VISIBILITY","REPO_FILE_SHARE","REPO_FILE_DOWNLOAD_HISTORY","REPO_FILE_UPDATE_DESCRIPTION","REPO_FILE_GET_DOWNLOAD_URL","DEMAND_MODIFICATION","modification","DEMAND_MODIFICATION_PUBLISH","DEMAND_MODIFICATION_CANCEL","DEMAND_MODIFICATION_PUBLISH_OJS","DEMAND_MODIFICATION_ROLLBACK_OJS","DEMAND_MODIFICATION_OJS_STATUS","DEMAND_MODIFICATION_CHANGED","DEMAND_SECTIONS","sections","DEMAND_PREPARING_SECTIONS","DEMAND_EVALUATION_SECTIONS","DEMAND_FINISHING_SECTIONS","OFFER_EVALUATION","offerEvaluation","OFFER_EVALUATION_LIST","viewMode","roundType","OFFER_EVALUATION_LIST_UPDATE_STATUS","OFFER_EVALUATION_LIST_UPDATE_SCORE","OFFER_EVALUATION_VALIDATE","offerChoice","OFFER_CHOICE_CANCEL_WHERE_NO_OFFERS","OFFER_CHOICE_POSITIONS_WITH_NO_OFFER","OFFER_CHOICE_PREPARE_ADDITIONAL_ROUND","toLowerCase","OFFER_CHOICE_PREPARE_AUCTION_INFO","positionId","OFFER_CHOICE_REVOKE","OFFER_CHOICE_CREATE_ADDITIONAL_ROUND","OFFER_CHOICE_GET_POSITION","OFFER_CHOICE_VALIDATE","OFFER_CHOICE_JUSTIFICATIONS","OFFER_CHOICE_PRIMARY_CHECK","OFFER_CHOICE_PRIMARY_DO_NEGOTIATIONS","OFFER_CHOICE_PRIMARY_DO_OFFER_CHOICE","additionalRound","ADDITIONAL_ROUND_CHANGE_DATES","ADDITIONAL_ROUND","DEMAND_ADDITIONAL_INFO","demandAdditionalInfo","DEMAND_ADDITIONAL_INFO_VALIDATE","DEMAND_ADDITIONAL_INFO_AUTOSAVE","DEMAND_ADDITIONAL_INFO_AUTOSAVE_CHECK","AUCTION_RFX","AUCTION","auction","AUCTION_PREPARE","AUCTION_CREATE","AUCTION_EDIT_DATES","AUCTION_PUBLISH","AUCTION_UNPUBLISH","AUCTION_PAUSE","AUCTION_RESUME","AUCTION_CANCEL","AUCTION_DELETE","AUCTION_DOWNLOAD_INVITATION","AUCTION_ACCEPT","auctionId","AUCTION_DETAILS","OFFER_CHOICE_RESULT","OFFER_CHOICE_RESULT_ID","roundResultId","OFFER_CHOICE_RESULT_FILE","OFFER_CHOICE_RESULT_FILE_ID","resultFileId","offerChoiceResult","OFFER_CHOICE_RESULT_GET","OFFER_CHOICE_RESULT_PRINT","OFFER_CHOICE_RESULT_SHARE","OFFER_CHOICE_RESULT_PUBLISH_UNTIL_DATE","OFFER_CHOICE_RESULT_FILE_PUBLISH","OFFER_CHOICE_RESULT_FILE_UNPUBLISH","OFFER_CHOICE_RESULT_FILE_DELETE","OFFER_CHOICE_RESULT_FILE_DOWNLOAD_HISTORY","OFFER_CHOICE_RESULT_FILE_SHARE","OFFER_CHOICE_RESULT_FILE_DOWNLOAD_URL","OFFER_CHOICE_RESULT_VALIDATE","agreements","AGREEMENTS_AVAILABLE","AGREEMENTS_CREATED","AGREEMENTS_CREATE_NO_AGREEMENT","AGREEMENTS_CREATE_AGREEMENT","AGREEMENTS_AVAILABLE_ORGANIZATIONS","AGREEMENTS_DELETE","objId","AGREEMENTS_DELETE_AGR","AGREEMENTS_VALIDATE","RESULT_NOTICE_ID","resultNoticeId","RESULT_NOTICE_ATTACHMENT_ID","resultNoticeAttachmentId","resultNotice","RESULT_NOTICE_BZP","RESULT_NOTICE_PUBLISH_OJS_NOTICE","RESULT_NOTICE_CHECK_OJS_NOTICE","RESULT_NOTICE_ROLLBACK_OJS_NOTICE","RESULT_NOTICE_VALIDATE","RESULT_NOTICE_DELETE","RESULT_NOTICE_PUBLISH","RESULT_NOTICE_UNPUBLISH","RESULT_NOTICE_ATTACHMENT_PUBLISH","RESULT_NOTICE_ATTACHMENT_UNPUBLISH","RESULT_NOTICE_DESCRIPTION","RESULT_NOTICE_DOWNLOAD_FILE_URL","RESULT_NOTICE_DOWNLOAD_FILE_HISTORY","evaluationFinish","demandPlanRealization","DEMAND_PLAN_REALIZATION_VALIDATE","finishDemand","FINISH_DEMAND_BACK_TO_OFFER_EVALUATION","FINISH_DEMAND_BACK_TO_RESULT_NOTICE","FINISH_DEMAND_WITHDRAWAL_NOTICE_DATE","FINISH_DEMAND_CANCEL","FINISH_DEMAND_FINISH","FINISH_DEMAND_VALIDATE","archiving","ARCHIVING_SCHEDULE","ARCHIVING_VALIDATE","ADDITIONAL_ROUNDS_PASSIVE","additionalRoundsPassive","ADDITIONAL_ROUNDS_PASSIVE_ROUND","ADDITIONAL_ROUNDS_PASSIVE_AVAILABLE_CONTRACTORS","ADDITIONAL_ROUNDS_PASSIVE_VALIDATE","CORRESPONDENCE_BASE","CORRESPONDENCE_BUYER_BASE","correspondenceBuyer","CORRESPONDENCE_BUYER_CTR_IN_ROUND","CORRESPONDENCE_BUYER_THREAD_LIST","CORRESPONDENCE_BUYER_NEW_MESSAGES","CORRESPONDENCE_BUYER_SEARCH","CORRESPONDENCE_BUYER_THREAD_ADD","CORRESPONDENCE_BUYER_THREAD_AS_CRT_SEND","CORRESPONDENCE_BUYER_BULK_MESSAGES_SEND","CORRESPONDENCE_BUYER_BULK_MESSAGES_PUBLISH","CORRESPONDENCE_BUYER_PRIVILEGES","CORRESPONDENCE_BUYER_PRINT","before","CORRESPONDENCE_BUYER_SHARE","CORRESPONDENCE_BUYER_MESSAGE_LIST","threadId","CORRESPONDENCE_BUYER_MESSAGE_CREATE","CORRESPONDENCE_BUYER_MESSAGE_MARK_AS_READ","CORRESPONDENCE_BUYER_FLAG","CORRESPONDENCE_BUYER_UNFLAG","CORRESPONDENCE_BUYER_THREAD_EMAIL_LIST","CORRESPONDENCE_BUYER_MESSAGE_SEND","messageId","CORRESPONDENCE_BUYER_MESSAGE_PUBLISH","CORRESPONDENCE_BUYER_MESSAGE_UPDATE","CORRESPONDENCE_BUYER_MESSAGE_DELETE","CORRESPONDENCE_BUYER_ATTACHMENT_URL","attachmentId","CORRESPONDENCE_BUYER_MESSAGE_EMAIL_DELIVERY","CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_ZIP","CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_CHECK_LIMIT","CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_VERIFY","CORRESPONDENCE_BUYER_CONTRACTOR_EMAIL_LIST","departmentId","CORRESPONDENCE_CONTRACTOR_BASE","correspondenceContractor","CORRESPONDENCE_CONTRACTOR_THREAD_LIST","CORRESPONDENCE_CONTRACTOR_NEW_MESSAGES","CORRESPONDENCE_CONTRACTOR_SEARCH","CORRESPONDENCE_CONTRACTOR_THREAD_ADD","CORRESPONDENCE_CONTRACTOR_PRIVILEGES","CORRESPONDENCE_CONTRACTOR_PRINT","CORRESPONDENCE_CONTRACTOR_MESSAGE_LIST","CORRESPONDENCE_CONTRACTOR_MESSAGE_CREATE","CORRESPONDENCE_CONTRACTOR_MESSAGE_MARK_AS_READ","CORRESPONDENCE_CONTRACTOR_FLAG","CORRESPONDENCE_CONTRACTOR_UNFLAG","CORRESPONDENCE_CONTRACTOR_MESSAGE_UPDATE","CORRESPONDENCE_CONTRACTOR_MESSAGE_SEND","CORRESPONDENCE_CONTRACTOR_MESSAGE_DELETE","CORRESPONDENCE_CONTRACTOR_ATTACHMENT_URL","CORRESPONDENCE_CONTRACTOR_MESSAGE_ATTACHMENTS_ZIP","DEMAND_OFFERS_BASE","DEMAND_OFFERS_STAGE_BASE","demandOffers","DEMAND_OFFERS_CONTRACTOR_STAGES_LIST","DEMAND_OFFERS_CONTRACTOR_STAGE_SECTIONS_LIST","DEMAND_OFFERS_CONTRACTOR_STAGE_TRANSLATIONS","DEMAND_OFFERS_CONTRACTOR_STAGE_SECTION","section","DEMAND_OFFERS_STAGE_CURRENT_ROUND","DEMAND_OFFERS_CONTRACTOR_STAGE_PASSWORD","DEMAND_OFFERS_VALIDATE","DEMAND_OFFERS_STAGE_CONTRACTOR_GENERAL_INFO_BASE","demandOffersGeneralInfo","DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_BASIC_DATA","DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS","DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS_DOWNLOAD_URL","documentId","DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS_DOWNLOAD_ZIP","DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_PUBLIC_ANSWERS","DEMAND_OFFERS_STAGE_OFFER_BASE","demandOffersOffer","DEMAND_OFFERS_STAGE_CONTRACTOR_OFFER","DEMAND_OFFERS_OFFER_MODE","stage","mode","DEMAND_OFFERS_OFFER_MODE_POSITIONS","DEMAND_OFFERS_OFFER_MODE_FILES","DEMAND_OFFERS_OFFER_MODE_TEMPLATE","DEMAND_OFFERS_OFFER_MODE_FILE_DOWNLOAD_URL","DEMAND_OFFERS_OFFER_MODE_FILE_DOWNLOAD_ZIP","DEMAND_OFFERS_OFFER_FILE","DEMAND_OFFERS_OFFER_FILES","DEMAND_OFFERS_OFFER_FILE_ID","DEMAND_OFFERS_OFFER_FILE_ID_SIGN_FILE","DEMAND_OFFERS_OFFER_ESPD","DEMAND_OFFERS_OFFER_ESPDS","DEMAND_OFFERS_OFFER_ESPD_ID","espdId","DEMAND_OFFERS_OFFER_ESPD_ID_SIGN_FILE","DEMAND_OFFERS_OFFER_ESPD_MP_APP_URL","DEMAND_OFFERS_OFFER_ESPD_EXPORT_FILE_URL","DEMAND_OFFERS_OFFER_MODE_ESPD_DOWNLOAD_URL","DEMAND_OFFERS_OFFER_PLACE_OFFER","DEMAND_OFFERS_OFFER_WITHDRAW_OFFER","DEMAND_OFFERS_OFFER_SIGN_OFFER","DEMAND_OFFERS_OFFER_SIGN_WITHDRAW","DEMAND_OFFERS_OFFER_DOC_TO_SIGN","DEMAND_OFFERS_OFFER_WITHDRAW_DOC_TO_SIGN","DEMAND_OFFERS_OFFER_STOP_SIGNING_OPERATION","DEMAND_OFFERS_OFFER_REQUIRE_WITHDRAW_ENCRYPTION","DEMAND_OFFERS_OFFER_DELETE_OFFER","DEMAND_OFFERS_OFFER_POSITION","DEMAND_OFFERS_OFFER_MODE_POSITION_ID","DEMAND_OFFERS_OFFER_SNAPSHOTS","DEMAND_OFFERS_OFFER_SNAPSHOT_ID","snapshotId","DEMAND_OFFERS_OFFER_VERIFICATIONS","DEMAND_OFFERS_OFFER_VERIFICATION_BEFORE_PLACE","DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE","demandAdditionalOffersOffer","DEMAND_ADDITIONAL_OFFERS_OFFER_MODE","DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_POSITIONS","DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILES","DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILE_DOWNLOAD_URL","DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILE_DOWNLOAD_ZIP","DEMAND_ADDITIONAL_OFFERS_OFFER_FILE","DEMAND_ADDITIONAL_OFFERS_OFFER_FILES","DEMAND_ADDITIONAL_OFFERS_OFFER_FILE_ID","DEMAND_ADDITIONAL_OFFERS_OFFER_FILE_ID_SIGN_FILE","DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_ESPD_DOWNLOAD_URL","DEMAND_ADDITIONAL_OFFERS_OFFER_PLACE_OFFER","DEMAND_ADDITIONAL_OFFERS_OFFER_WITHDRAW_OFFER","DEMAND_ADDITIONAL_OFFERS_OFFER_SIGN_OFFER","DEMAND_ADDITIONAL_OFFERS_OFFER_SIGN_WITHDRAW","DEMAND_ADDITIONAL_OFFERS_OFFER_DOC_TO_SIGN","DEMAND_ADDITIONAL_OFFERS_OFFER_WITHDRAW_DOC_TO_SIGN","DEMAND_ADDITIONAL_OFFERS_OFFER_STOP_SIGNING_OPERATION","DEMAND_ADDITIONAL_OFFERS_OFFER_REQUIRE_WITHDRAW_ENCRYPTION","DEMAND_ADDITIONAL_OFFERS_OFFER_DELETE_OFFER","DEMAND_ADDITIONAL_OFFERS_OFFER_POSITION","DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_POSITION_ID","DEMAND_ADDITIONAL_OFFERS_OFFER_SNAPSHOTS","DEMAND_ADDITIONAL_OFFERS_OFFER_SNAPSHOT_ID","DEMAND_ADDITIONAL_OFFERS_OFFER_VERIFICATIONS","DEMAND_ADDITIONAL_OFFERS_OFFER_VERIFICATION_BEFORE_PLACE","DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE","demandAdditionalAuction","DEMAND_ADDITIONAL_AUCTIONS_OFFER_AUCTIONS","DEMAND_ADDITIONAL_AUCTIONS_OFFER_AUCTIONS_ASSIGN","DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE","DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_ESPD_DOWNLOAD_URL","DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_FILE_DOWNLOAD_URL","DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_FILES","DEMAND_ADDITIONAL_AUCTIONS_OFFER_POSITION","DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_POSITION_ID","DEMAND_ADDITIONAL_AUCTIONS_OFFER_SNAPSHOTS","DEMAND_ADDITIONAL_AUCTIONS_OFFER_SNAPSHOT_ID","DEMAND_PREVIEW_STAGE_OFFER_BASE","demandPublicationPreview","DEMAND_PREVIEW_OFFER_MODE","DEMAND_PREVIEW_OFFER_MODE_SECTION","DEMAND_PREVIEW_OFFER_MODE_POSITION_ID","DEMAND_PREVIEW_OFFER_MODE_POSITION_ID_PRINT","integrations","SHAREPOINT","EZDRP","EZDPUW","EZDPUW_DOCUMENTS","caseId","EZAMOWIENIA_BASE","ezamowienia","EZAMOWIENIA_AUTHORIZATION_STATUS","EZAMOWIENIA_REVOKE_TOKEN","ANNUAL_REPORT_BASE","ANNUAL_REPORT_REPORT_YEAR","year","ANNUAL_REPORT_REPORT_YEAR_AVAILABLE_ORGS","ANNUAL_REPORT_REPORT_ID","reportId","ANNUAL_REPORT_REPORT_ID_ACTION","ANNUAL_REPORT_REPORT_ID_FORM_NAME","formName","ANNUAL_REPORT_REPORT_ID_INITIALIZE_FORM_NAME","ANNUAL_REPORT_REPORT_ID_INITIALIZE_FROM_PREV_FORM_NAME","ANNUAL_REPORT_REPORT_ID_INITIALIZE_FORM_NAME_TABLE_ID","tableIdentity","ANNUAL_REPORT_DICTIONARIES","ANNUAL_REPORT_TRANSLATIONS","CONTRACT_NOTICE","nationalNotice","NATIONAL_NOTICE_VALIDATE","NATIONAL_NOTICE_CONTRACT_NOTICE","NATIONAL_NOTICE_CONTRACT_NOTICE_CREATE_NEW_VERSION","NATIONAL_NOTICE_CONTRACT_NOTICE_DRAFT","NATIONAL_NOTICE_CONTRACT_NOTICE_TRANSLATIONS","NATIONAL_NOTICE_CONTRACT_NOTICE_DICTIONARIES","NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH","NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_UPDATE","NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_ROLLBACK","NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_UPDATE_ROLLBACK","NATIONAL_NOTICE_CONTRACT_NOTICE_STATUS","NATIONAL_NOTICE_CONTRACT_MODIFICATION_NOTICE_STATUS","NATIONAL_NOTICE_CONTRACT_NOTICE_DYNAMIC_DICTIONARIES","PURCHASING_GROUP_ID","groupId","PURCHASING_GROUP_LIST","PURCHASING_GROUP_LIST_ACTIONS","PURCHASING_GROUP_MEMBER_LIST","PURCHASING_GROUP_HEADER","PURCHASING_GROUP_RELATED_OBJECTS","PURCHASING_GROUP_BASIC_DATA","PURCHASING_GROUP_ARCHIVE_LIST","archiveType","PURCHASING_GROUP_ARCHIVE_ID","archiveId","PURCHASING_GROUP_COMMISSION","PURCHASING_GROUP_COMMISSION_HISTORY","PURCHASING_GROUP_SCHEDULE","PURCHASING_GROUP_MEMBERS","PURCHASING_GROUP_MEMBERS_AVAILABLE_CONCERNS","PURCHASING_GROUP_MEMBERS_MEMBER","PURCHASING_GROUP_MEMBERS_MEMBER_ID","memberId","PURCHASING_GROUP_MEMBERS_MEMBER_ID_REJECT","PURCHASING_GROUP_MEMBERS_MEMBER_ID_RESTORE","PURCHASING_GROUP_MEMBERS_MEMBER_ID_CONFIRM_PARTICIPATION","PURCHASING_GROUP_MEMBERS_MEMBER_ID_WITHDRAW_PARTICIPATION","PURCHASING_GROUP_MEMBERS_MEMBER_ID_RESEND_INVITE_NOTIFICATION","PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT","PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT_ID","PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT_ID_URL","PURCHASING_GROUP_MEMBERS_MEMBER_ID_USER","PURCHASING_GROUP_MEMBERS_MEMBER_ID_USER_ID","userId","PURCHASING_GROUP_MEMBERS_DOCUMENTS","apiPath","PURCHASING_GROUP_MEMBERS_DOCUMENTS_GENERATE_GROUP_AGREEMENT","PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID","PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_PUBLISH","PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_UNPUBLISH","PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_URL","PURCHASING_GROUP_SWZ_DOCUMENTS","PURCHASING_GROUP_SWZ_DOCUMENTS_ID","PURCHASING_GROUP_SWZ_DOCUMENTS_ID_PUBLISH","PURCHASING_GROUP_SWZ_DOCUMENTS_ID_UNPUBLISH","PURCHASING_GROUP_SWZ_DOCUMENTS_ID_URL","PURCHASING_GROUP_OPINION","PURCHASING_GROUP_OPINION_ID","opinionId","PURCHASING_GROUP_OPINION_ID_MARK_AS_READ","PURCHASING_GROUP_OPINION_AVAILABLE_MEMBERS","PURCHASING_GROUP_OPINION_MEMBER_ID","PURCHASING_GROUP_OPINION_ID_MESSAGE_NEW","PURCHASING_GROUP_OPINION_ID_MESSAGE_ID","PURCHASING_GROUP_FINISH_PREPARING","PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_TEMPLATE_FORM_EXPORT","PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_LEADING_DOCUMENT","PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_MANAGEMENT_RESOLUTION","PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DRAFT_GROUP_AGREEMENT","PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DOCUMENT_TO_SIGN","PURCHASING_GROUP_COLLECTING_SCHEDULE","PURCHASING_GROUP_COLLECTING_TEMPLATE","PURCHASING_GROUP_COLLECTING_TEMPLATE_AVAILABLE","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_ID","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID","formId","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_DRAFT","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_CLEAR_DRAFT","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ACCEPT","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_REJECT","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ASK_FOR_EDIT","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ALLOW_EDIT","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_REJECT_EDIT","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ARCHIVE_LIST","PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ARCHIVE_ID","PURCHASING_GROUP_FINISH","PURCHASING_GROUP_FINISH_DEALINGS_CHANGED","PURCHASING_GROUP_SECTIONS","purchasingGroupSections","PURCHASING_GROUP_SECTIONS_PREPARING","PURCHASING_GROUP_SECTIONS_COLLECTING_DATA","PURCHASING_GROUP_SECTIONS_SECTION","PURCHASING_GROUP_TEMPLATES","purchasingGroupTemplate","PURCHASING_GROUP_TEMPLATES_LIST","PURCHASING_GROUP_TEMPLATES_LIST_HAS_EDIT","PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID","templateId","PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_ACTIVATE","PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_DEACTIVATE","PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_CLONE","ADMIN_USER_REGISTRATION","adminUserRegistrations","ADMIN_USER_REGISTRATION_LIST","ADMIN_USER_REGISTRATION_AVAILABLE_ORGS","ADMIN_USER_REGISTRATION_ID","regId","ADMIN_USER_REGISTRATION_ID_REJECT","ADMIN_USER_REGISTRATION_ID_ACCEPT","ADMIN_USER_REGISTRATION_ID_ORGANIZATION","extensions","hotJarSettings","hjid","hjsv","a","createElement","target","setAttribute","click","_sem","semaphore","_paramsSerializer","_executeRequest","async","headers","auth","parse","localStorage","getItem","request","Axios","access_token","paramsSerializer","sessionTime","endTime","moment","add","time","_refreshSessionTime","_logout","removeItem","substr","btoa","redUrl","_refresToken","console","info","res","method","Endpoints","client_id","grant_type","refresh_token","setItem","data","error","_restRequest","acquire","args","response","status","HttpCodes","release","RestRequest","RestRequestGET","other","RestRequestDELETE","RestRequestPOST","RestRequestPUT","RestRequestBLOB","responseType","ob","success","contentDisposition","decodeURIComponent","fileUrl","URL","createObjectURL","Blob","downloadFile","revokeObjectURL","RestRequestBLOBBase64Encoded","blob","Promise","resolve","_","reader","FileReader","onloadend","result","readAsDataURL","resp","SoftLogout","code","LogoutButton","LogoutIcon","OAuthService","navElements","userLoggedMenuList","justifyContent","borderRightColor","onlyContrast","drawerOpen","transition","transitions","default","overflowX","drawerClose","close","innerListItem","icons","my_demands","StarIcon","purchasingGroups","GroupWorkIcon","all_demands","ShoppingCartIcon","deputy","PeopleIcon","public_area","PublicIcon","edocument","DescriptionIcon","GavelIcon","intranet","LocalLibraryIcon","InsertDriveFileIcon","administration","HowToRegIcon","contractor_area","MonetizationOnIcon","AssessmentIcon","Drawer","OpenElement","newDemandProcedures","elements","Fragment","menuElementList","pop","innerItem","j","InvertColorsOffIcon","InvertColorsIcon","IconButton","setLargeText","userData","userProfile","linkText","textDecoration","login","Grid","container","direction","alignItems","fontWeight","link","props","xmlns","viewBox","d","useStyle","makeStyles","column","flexGrow","GridBlock","itemClassName","justify","wrap","gridClasses","React","Children","child","CancelButton","HelpDialog","Dialog","PaperProps","DialogTitle","DialogContent","content","dialogButtons","handleClickButton","DialogActions","textAlign","popup","smallContainer","marginTop","common","white","Help","flag","ChangeLanguageButtonButtons","locale","setLocale","csrfInput","append","body","appendChild","submit","margin","left","appBar","borderBottom","backgroundColor","greyBackground","rootBorder","menuMargin","toolbar","rightGrid","beta","buttonLight","logo","maxHeight","demandHeader","goSoStatus","oldPlatformRoundStatusUrl","changeLocale","redirectUsingPOST","AppBar","elevation","position","Toolbar","PolandSvg","GreatBritainSvg","AcUnitIcon","IconCloseButton","CloseIcon","minHeight","top","ref","CircularProgress","centered","closeButtonBox","right","closeButton","loading","contentClassName","titleCentered","transitionDuration","paperClassName","dialogActions","htmlId","buttonContainer","isOpera","opr","addons","opera","navigator","userAgent","isFirefox","InstallTrigger","isSafari","test","HTMLElement","pushNotification","toString","isIE","documentMode","isEdge","StyleMedia","isChrome","chrome","webstore","runtime","isBlink","CSS","object","checkCondition","changes","isEqual","isObject","changesObj","DEMAND_VALIDATION_RESOURCE_ID","getPreparingSections","clear","getSections","getEvaluationSections","getFinishingSections","urlFn","clearDemandValidationResources","getPrivileges","cleanupPrivileges","clearPrivileges","CORRESPONDENCE_PRIVILEGE_STORE_KEY","RFX_PRIVILEGE_STORE_KEY","DEMAND_PRIVILEGE_STORE_KEY","DEMAND_RESOURCE_ID","DEMAND_AVAILABLE_FORM_TYPES_RESOURCE_ID","DEMAND_AVAILABLE_REALIZATIONS_RESOURCE_ID","DEMAND_AVAILABLE_ORGANIZATIONS_RESOURCE_ID","DEMAND_NUMBER_AUTOMATED","DEMAND_CASE_CLASSIFICATION_SYMBOL_REQUIRED","createParams","exPost","queryParams","_save","enableOptional","termOption","termDate","termDescription","orderValueDecisionDate","auctionMade","digitalSign","euFunded","formatDate","format","agreementRealizationDate","date","_formatFormValues","objectExtension","getValidate","DemandSectionsService","required","_handleSaveResponse","msg","prop","errors","prototype","hasOwnProperty","call","Array","isArray","demandAvailableRealizationTypes","demandAvailableOrganizations","demandAvailableFormTypes","numberingAutomated","caseClassificationSymbolRequired","resource","PrivilegeService","basicInformation","NUMBER","NAME","DESCRIPTION","CONTACT_PERSON","CONTACT_PERSON_PHONE","PURCHASER_PHONE","PURCHASER_FAX","PURCHASER_EMAIL","PURCHASER_ADDITIONAL_INFO","EOD","SINGLE_DEALING_JUSTIFICATION","ESTIMATION_BASE","FINANCIAL_SOURCE","TERM_DESCRIPTION","FULL_NAME","EU_PROJECT_NUMBER","POSTCODE_PL","POSTCODE","EMAIL","NIP_MIN","NIP_MAX","PESEL_PL","NIP_PL","CITY","ADDRESS","organization","PLANNED_CONTRACTOR_NUMBER","condition","OTHER_NAME","criteriaSection","parameters","itemParameters","documents","correspondence","SUBJECT","fn","toJSON","this","emailRegexp","contractorlimits","InputLimits","Yup","usedMessage","trim","maxStringFunc","max","minStringFunc","min","number","Math","abs","amountMin","inclusive","val","fVal","parseFloat","isNaN","amountMaxDecimal100","noZero","pValue","positive","matches","stringExactlyBase","nullable","vatinPL","optional","weight","sum","controlNumber","parseInt","weightCount","dateOrDateTimeValid","isMoment","isValid","String","dateMax","dateToCompare","endOf","isBefore","dateMin","startOf","dateTimeMin","dateTimeMax","stringNoRq","string","defTrKey","noOnlyWhitespaces","stringExactly","stringNotOneOf","notOneOf","stringNotOneOfBase","stringExactlyMax","stringMax","stringMin","stringMinAndMax","stringMaxNoRq","typeError","numberMax","numberMin","numberMin0","numberMaxNoZero","numberPositiveOptional","numberPositiveNoZero","numberMaxMin","keyMin","keyMax","fieldName","decimalNumber","bigDecimal","bigDecimalOptional","integerMin","integer","integerMax","integerMinMax","email","emailMax","emailMaxNoRq","amount","amountBasicRequired","amountOptional","amountBasicOptional","amountMax100NoZero","amountMax100","amountMax100Optional","arrayOfShape","shape","arrayOf","shema","of","fields","lazy","arrayRequired","formValue","any","anyRequired","immediatelyError","dateMaxNoRq","dateMinNoRq","dateTimeNoReq","dateTimeValid","dateTimeMinNoRq","dateTimeMaxNoRq","vatinPLOptional","vatinOrPeselPL","vatinValid","peselValid","peselPL","requiredBoolean","mixed","requiredObject","urlOptional","urlMax","urlMaxOptional","phoneOptional","InnerForm","htmlFormId","setForm","formikProps","submitLabel","afterSubmitFunc","submitForm","then","resetForm","style","autoComplete","onSubmit","handleSubmit","Form","onReset","initialValues","initialTouched","validationSchema","ValidationShema","onChange","validateOnMount","validateOnChange","validateOnBlur","enableReinitialize","actions","setSubmitting","Title","Divider","titleClassName","divider","defaultValue","idArray","innerReg","reg","_value","TextInput","placeholder","noError","noErrorSpace","multiline","endAdornment","limit","step","onBlur","showErrorImmediately","skipCheckTouched","errorValue","getObjectValue","touched","editable","isError","lettersLeft","_label","_placeholder","setFieldTouched","inputType","INPUT_TYPE","TextField","withMin","toNumberType","valueSplit","slice","join","valueSplitAmount","valueSplit1","filter","handleChange","setFieldValue","handleBlur","v","formatValue","helperText","InputProps","maxRows","inputProps","bottom","labelClassName","FormControlLabel","control","Radio","RadioGroup","FormControl","FormLabel","event","isStr","FormHelperText","createSelectItem","subLabel","Select","alwaysEditable","showErrorWithoutTouched","findIndex","select","SelectProps","MenuProps","MenuItem","selected","contrastSelectValue","fontStyle","PrimaryTenderVariant","VARIANT_1","VARIANT_2","VARIANT_3","PrimaryTenderVariantTr","entries","jedzTranslations","itemsHidedExecutive","itemsWithExecutive","hideExecutiveDemandVariant","Checkbox","checkboxClassName","checked","checkbox","dangerouslySetInnerHTML","__html","useStyles","fabProgress","WorkableIconButton","working","rotate","WorkableIconExpandButton","expanded","_tooltip","radioGroup","filteredItemRoot","itemValue","searchKeys","multiple","handleSave","publicCode","shouldOpen","otherItemValues","boldLabel","setBoldLabel","checkboxId","openRow","RawHTML","Collapse","in","fastEnd","filteredChildrens","element","findEl","fullName","every","match","curr","el","overflow","paddingRight","scrollSize","maxSize","page","loadMore","containerRef","useRef","hasMore","setHasMore","setTimeout","initialLoad","pageStart","loader","useWindow","threshold","getScrollParent","current","getSize","list","count","typingStopTimeout","countItems","setPage","elementLength","setElementLength","filtered","setFiltered","setSearchKeys","searchChanged","setSearchChanged","itemsCount","setItemsCount","clearTimeout","filterItems","newItems","newSearchKeys","countItemsFunc","random","p","index","progress","contained","WorkableButton","stopPropagation","DoubleButton","labelFirst","labelSecond","onClickFirst","onClickSecond","buttonTypeFirst","buttonTypeSecond","disabledFirst","disabledSecond","workingFirst","workingSecond","after","buttons","get","formSubmit","onCancel","initCPVValues","useId","cpvList","setCpvList","countCpvList","CpvService","onConfirm","initValues","hierarchicalId","Chip","onDelete","getLabelBody","deleteIcon","cloneDeep","splice","newTouched","chipLabel","textOverflow","buttonSelect","openSelectCPV","setOpenSelectCPV","handleClosePoup","errorLabel","removeFormikListElement","prevValue","currValue","iconColor","active","tooltipWidth","dangerouslySetTextHTML","VALUES","ALL","PREPARING","MODIFICATION","OFFER_COLLECTION","OFFER_DECRYPTION","FINISHING","CANCELLED","ANNULLED","FINISHED","LABELS","PZPType","PZP_OLD","PZP_2021","wasEverPublished","demandStatus","isDemandPreparing","isDemandModification","isDemandOfferCollection","isDemandOfferDecryption","isDemandOfferEvaluation","isDemandFinishing","isDemandFinished","getDemandPZPType","isNonpubProc","isNatProc","isEuProc","buttonsWrapper","availableOrganizations","initOrganization","setItems","allItems","setAllItems","addEventListener","escFunction","all","removeEventListener","orgId","changeSearch","debounce","useCallback","keyEvent","charCode","keyCode","preventDefault","org","SelectOrganization","openSelectOrganization","setOpenSelectOrganization","GreyBox","borderRadius","flexDirection","cursor","defaultChildrenGrid","Dropzone","submitOnChange","acceptExtensionList","onDrop","acceptedFiles","files","getRootProps","getInputProps","useDropzone","accept","setTouched","rootProps","VALID_EXTENSIONS_LIST_RESOURCE_ID","file","onUploadChange","formData","FormData","onUploadProgress","ProgressBar","labelItem","progressItem","progressGrid","LinearProgress","flexShrink","SingleButton","buttonType","DEMAND_STAGES_LIST","DEMAND_STAGE_SECTIONS_LIST","DEMAND_CONTRACTOR_PASSWORD_POPUP","successCallback","errorCallback","password","newList","isResponseValid","setError","errorSet","ContractorPasswordState","alignSelf","UploadFilePopup","downloadFiles","onUpload","errorTranslate","setRefresh","filesStatus","uploadedFiles","useParams","dialogClosed","setDialogClosed","DemandOffersService","onError","doUpload","catch","config","loaded","total","uploadStatus","UploadService","handleUploadProgressChange","uploadSuccess","originalIndex","st","fileData","TitledComponent","additionalElement","componentRef","typography","fontWeightBold","FilesList","customAction","onDownload","inaccessible","showError","getFilesAdnFolders","folderPath","downloadFileFromSharepoint","MultiButton","afterAfter","createButton","SharepointIcon","SvgIcon","breadcrumbText","selDocuments","dialogContent","titleIcon","SharepointExplorer","filesAndFolders","setFilesAndFolders","selectedFileMap","setSelectedFilesMap","Map","setWorking","SharepointService","finally","handleBreadcrumbClick","serverRelativeUrl","getAttribute","handleClick","folders","from","getButtons","Breadcrumbs","separator","fontSize","maxItems","elem","arr","Link","dense","uniqueId","disableRipple","newMap","has","delete","set","toggleSelectFile","edge","tabIndex","wait","uploading","done","SharepointDownloadPopup","setFiles","next","getSecondaryText","Error","downloadFileFromEzdrp","attachmentIcon","attachmentsCount","line","dark","italic","FileTypes","EzdrpList","toggleExpandFile","expandedFileMap","level","toggleCheckbox","attachments","hasExpand","timeout","unmountOnExit","EzdrpExplorer","setExpandedFilesMap","EzdrpService","EzdrpDownloadPopup","EzdpuwDownloadPopup","EzdpuwService","WorkableIconFolderButton","FolderIcon","CASE","FILE","EzdpuwList","toggleExpandCase","workingCase","EMPTY","EzdpuwExplorer","setWorkingCase","dropzone","dropzoneParent","integrationButton","SupportedTypes","defaultValidExtensionList","demandPrivileges","onUploadPopupClosed","onOpenConfigureFiles","configuredFiles","currentProcess","browserDownloadFiles","setBrowserDownloadFiles","sharepointExplorerOpen","setSharepointExplorerOpen","sharepointDownloadFiles","setSharepointDownloadFiles","ezdrpExplorerOpen","setEzdrpExplorerOpen","ezdDownloadFiles","setEzdDownloadFiles","ezdpuwExplorerOpen","setEzdpuwExplorerOpen","ezdpuwDownloadFiles","setEzdpuwDownloadFiles","handleDownloadedFiles","formikFiles","fileElements","selectedFiles","INTEGRATIONS_DOWNLOAD","sharepoint","applicationClientSettings","sharepointIntegration","ezdrp","ezdrpIntegration","ezdpuw","ezdpuwIntegration","connected","getIntegrationButtons","PriceType","PriceTypeLabel","priceType","PriceTypeItems","UseNetOverGrossForAuctionPopup","PriceTypeItemsForAuction","NET_FIELD_VISIBLE","GROSS_FIELD_VISIBLE","VAT_FIELD_VISIBLE","PriceTypeNetFieldVisible","PriceTypeGrossFieldVisible","PriceTypeVatFieldVisible","NET_SUM_PRICE_TYPES","NetSumPriceVisible","TOTAL_NET_FIELD_VISIBLE","TOTAL_GROSS_FIELD_VISIBLE","TotalPriceTypeNetFieldVisible","TotalPriceTypeGrossFieldVisible","DemandCategoryType","CLASSIC","SECTOR","DEFENSE_AND_SECURITY","DemandCategoryTypeLabel","DemandCategoryTypesForProcedure","procedure","limits","RequiredFields","demandRealizationTypes","numberAutomated","passiveOfferForm","creatingDemand","realizationType","withNotice","europeProcedure","nationalProcedure","nonpublicProcedure","demandRealizationTypesTranslated","prefix","demandCategoryType","caseClassificationSymbols","primaryTenderVariantValues","onDemandRealizationTypeChanged","pzpExclusionValues","concessionOrderTypeValues","orderTypeValues","contractTypeValues","booleanValues","jedzValues","uploadFile","minDate","maxDate","minDateMessage","maxDateMessage","momentVal","validateField","DateFormats","clone","err","setFieldError","cancelLabel","invalidDateMessage","OptionalFields","Date","CheckboxButton","DEFAULT_CONFIG","ignoreInitialCall","useDebouncedEffect","callback","deps","currentConfig","firstTime","clearFunc","handler","SaveFormikValues","setFormValues","clearFormValues","save","debounceTimeout","propTypes","PropTypes","inputLimits","VS","demandRealizationType","baseObj","when","is","otherwise","description","formType","primaryTenderVariant","demandOrderType","categoryItemCpv","contactPerson","contactPersonPhone","contactPersonEmail","purchaserPhone","purchaserFax","purchaserEmail","purchaserAdditionalInfo","euProjectNumber","caseClassificationSymbol","requiredJEDZ","pzpExclusion","demandVariant","externalPurchaseRequestNumber","singleDealingJustification","estimationBase","financialSource","fullNameOrderValueDecisionPerson","managerEntrustedPerson","isErrors","ShowErrorOnFailedSubmit","setCheckError","checkError","log","_get","forceRedirectOldPlatform","supportedNoApiScreens","updateHeader","HeaderService","modify","cancel","publishOjsNotice","rollbackOjsNotice","noticeOjsStatus","isDemandChanged","clearDemandChanged","useStepperStateCloseValidator","customCloseValidatorFunction","defaultCloseValidatorFunction","AutoSaveFormValues","saveFunc","throttleTimeout","customDirtyRef","timeoutSetTime","throttleHandler","debounceHandler","now","saveFormDraft","MainForm","stepperState","demandValidation","FORM_ID","autoSaveFormDraftActive","autoSaveFormDraft","DemandService","getField","getTimeField","_editable","authorUser","plannedContractorNumberForAgreement","fundingInstitutionLogo","purchaserName","demandJustification","planPropositionText","ezdrpId","ezdpuwId","ModificationService","demandNumberAutomated","createItemText","SELECT_VALUE","DEFAULT","NOT_APPLICABLE","VatType","CANCEL","REVERSED","DIFFRENT_VAT","OTHER","calcGrossValue","netValue","vatOptionValue","optionOtherValue","newGrossValue","round","calcNetValue","grossValue","vatMultipler","newNetValue","useDidUpdateEffect","effect","didMountRef","grid","iconButton","otherTextInput","regularTitle","fontWeightRegular","pathPrefix","net","gross","option","optionOther","toFloat","optionValue","curGross","toFixed","doCalcGrossValue","InputAdornment","VATItems","doCalcNetValue","ExPostFields","estimatedValue","s","vatRate","vatRateOther","realizationGrossValue","MainFormExPost","realizatedValue","validationSchemaExPost","Confirm","confirmTitle","confirmText","confirmText2","labelConfirm","labelCancel","translateConfirmTexts","urlParams","draftConfirm","setDraftConfirm","autoSaveFormDraftEnabled","loadDemandDraft","Index","trPrefix","owner","history","operationType","operationDatetime","firstName","lastName","member","boldDouble","bold","t","textVariant","DELETE","ADD","toUpperCase","MODIFY","purchasingGroupHeader","historyTab","newHistoryTab","inner","sortTable","sort","b","reverse","createTab","onFormOpen","onImporterOpen","_prepareIncomingDealing","_formatSinglePartValues","_open","_edit","_touched","_load","otherValues","otherAmount","newVatRate","vatType","curName","iNewVatRate","offerVatRate","iVatType","offerVatRateOther","offerVatType","offerVatValue","_getDeleteElements","dealingsList","RESOURCE_DEALING_REALIZATION_VALUE_STATUS","getList","modRes","dealingsToDelete","dealingsToSave","some","dealingWithErrorId","dealingWithErrorIndex","checkForDraft","loadDraft","saveDraft","deleteDraft","clearResources","getDealingsMatchingCriterion","getDealingsMatchingCriterionName","getFullList","dealingIds","getRealizationValues","getFinalRealizationValues","getRealizationValueStatus","saveRealizationValues","publishMode","saveFinalRealizationValues","publishRealizationAmountValue","unpublishRealizationAmountValue","validate","SOURCE_TYPES","ITEM_TYPES","ItemTypes","netGross","newItem","quantity","uom","offerVatPredefined","offerSourceType","allowQuantityEditInOffer","newElement","realizationBeforeOfferAmount","stages","conditions","conditionsInSiwz","criterions","AddIcon","LoadingScreen","Backdrop","modal","ImporterForm","downloadingInProgress","downloadImportTemplate","table","tableLayout","head","Table","TableHead","TableBody","SortIcon","STableRow","cellClassName","cellClassNames","TableRow","ccn","TableCell","colSpan","TableSortLabel","IconComponent","SimpleTable","columnClasses","rowClasses","rowElements","lpColumn","reasonColumn","buttonRow","setUploadOpened","importErrors","setImportErrors","processingUpload","setProcessingUpload","openSuccessPopup","setOpenSuccessPopup","clearImportErrors","handleCloseSuccessPopup","DealingsService","isPublished","isPublic","confirmExportPopup","setConfirmExportPopup","setDownloadingInProgress","uploadOpened","hideDownloadingTemplate","nextId","newElementsList","SortableItem","SortableElement","SortableList","SortableContainer","onSortEnd","oldIndex","newIndex","arrayMoveMutable","useDragHandle","CONDITION_TYPE_OTHER","CONDITION_TYPE","COMPETENCES","FINANCIAL_SITUATION","TECHNICAL_CAPACITY","EMPLOYMENT","CONDITION_TYPE_PZP_2021","COURSE_OF_TRADE","CONDITIONS_LABEL","CONDITIONS_LABEL_PZP_2021","conditionValues_PZP_2021","CRYTERIUM_TYPE","TIME_LIMIT","PAYMENT","OPERATING_COST","SERVICE","CONTRACT_SECURITY","OWNERSHIP","PRICE","CRYTERIUM_TYPE_LABEL","VARIANT_CODE","criteriaLabels","Directions","ASCENDING","DESCENDING","PriceDirections","DESCENDING_BY_PRICE_ITEMS","CriterionDictionaryItems","PriceCriterionDictionaryItems","repeadedElement","getNameFunc","y","schema","formItem","weightVisible","criteriaSum","planItemIdentity","planRequired","_weightSum","offerValue","offerGrossValue","vsObj","criterion","uiType","CRITERIA_TYPE","maxListPoints","valuesList","o","maxRangePoints","intervalList","stage0","conditionRepeaded","demandPzpType","conditionLabels","getName","otherName","findRepeatedConditionName","_conditionsError","criterionRepeaded","findRepeatedCriterionName","_criterionsError","WorkableIconDeleteButton","DeleteIcon","WorkableIconEditButton","EditIcon","dealingElement","rootId","createId","emptyStage","oldStage","concatNoDuplicates","concat","bElement","aElement","newDealingElement","WorkableIconConfirmButton","DoneIcon","rootEdit","editInput","wordBreak","cursorPointer","onOpen","disableDelete","elementId","_editId","_touchedId","editTitle","setEditTitle","titleId","titleError","titleTouched","demendId","handleEdit","mergeDealing","localeCompare","flexBasis","idPrefix","unitDisabled","quantityId","unitId","measureUnits","setMeasureUnits","MeasureUnitService","WorkableIconPreviewButton","VisibilityIcon","WorkableIconAddButton","rootWeight","handleEditItem","nameId","typeId","allowQuantityEditInOfferId","predefinedVatId","offerSourceTypeId","weightId","optionalItem","BooleanItems","OfferSourceTypes","showConfirmBeforeDelete","objectPath","oneBaseItem","vatRateId","vatOption","OFFER_VAT_ITEMS","itemElement","baseItemId","handleClose","baseItemName","editingItem","setEditingItem","deleteConfirm","setDeleteConfirm","deleteFunctionParams","setDeleteFunctionParams","criteriaSumError","handleShowItem","clonedItem","elId","showDeleteConfirm","idParam","indexParam","oldItem","mindIdFound","x1","x2","newId","onEdit","textBold","samllColumn","orderColumn","ipColumn","checkboxColumn","cells","elementList","orderLabel","isAllChecked","hasOrder","order","newElements","acc","htmlFor","ImputLimits","selectedItems","otherNameRegExp","partId","typeElements","conditionValues","parts","getInitialValues","initValuesName","getNames","onAdd","showParts","setObjectValue","shift","subObj","doElement","critArray","editedCriterion","originalCriterion","stageName","doDelete","_formikCritArrayCopy","_editedCritCopy","oldFieldIndex","stageValues","oldField","priceIndex","cur","priceWeight","hasElement","crit","objectValue","removeElementsfromParts","doElementsManipulation","addElementsToParts","splitId","fieldId","partsIds","currentDealingList","missingArray","newDownloaded","processedDealings","delaingIndex","currentDealing","newDealingList","processed","initCrit","setElementList","critName","setCritName","critDisplayName","getCritDisplayName","dealingsContains","ids","remoteDealingIds","curDeal","findTemporaryDealingIds","found","filterByCurrentLoadedDealings","dirtyListenerSemaphore","openPopup","setOpenPopup","openDeletePopup","setOpenDeletePopup","editElement","setEditElement","thisId","handleDeleteButtonPress","weightInput","curIndex","newSum","priceWeightId","min0MaxWeight","CRYTERIUM_VARIANT","tab","TABS","errorKeys","pointsLessThanWeight","z","validation","curRowValidation","CRITERIA_ELEMENT_TYPE","smallerError","biggerError","rangeSameError","fromInclusive","toInclusive","curFrom","inservalStartToPrevEndError","inservalStartLesThanEndError","elementErrors","fromValue","tabVertical","textTransform","tabVerticalSelected","tabsVertical","borderRight","Tabs","tabs","vertical","newValue","indicatorColor","orientation","Tab","wrapper","FormTabs","tabsValues","edit","setRepeatValue","fieldValue","criteriumVariant","typeValues","MEASURE_UNIT","MEASURE_UNIT_LABEL","unit","criteria","createCriteria2","points","createCriteriaSmaller","createCriteriaBigger","createCriteriaL","units","nameItem","typeItem","descriptionItem","cutLines","setValues","ErrorText","idList","errorText","CriteriaElement","unitLabel","mu","unitsId","pointsId","inputkey","input","criteriaKey","CriteriaListBase","Element","errorWholeTabValue","render","arrayHelpers","isLast","CriteriaList","hideElement","hide","pairId","pairValue","BaseVariant","disableMin","disableMax","criterionId","minId","maxId","minRadioId","maxRadioId","nextMinRadioId","RangeVariant","SmallerVariant","BiggerVariant","variantId","arrayIds","getErrorIds","criteriaElementVariants","getVariant","lastItem","arrayExtension","isEdit","change","TABS_VALUES","apiVersion","validationSheme","NewCriteria","addCheckbox","setAddCheckbox","criteriaSumId","criteriaPopup","setCriteriaPopup","POSITION_TYPE","POSITION_TYPE_LABEL","showCommentField","shapeObj","positionTypes","ITEM_TYPE","ITEM_TYPE_LABEL","itemTypes","grossNetGrid","cpvBox","isDealingElement","setLoaded","planItems","elementsLength","ExecuteFunction","func","shouldExecute","DemandValidationMessages","messages","infoMessages","saveSuccessCallback","saveErrorCallback","afterSave","setAfterSave","realDirty","dealingValuesAndActionsForSave","setDealingValuesAndActionsForSave","getDraftsAndSaveDealingsConfirm","setGetDraftsAndSaveDealingsConfirm","doSaveDealings","draftPromises","promisesValues","_openTouched","formatDealingList","_formikProps","field","newTouchedObject","getTouchedKeys","setFormikValuesTouched","doNotInitializeDraftsThenSaveDealings","dealingDraft","tmpArr","getAndInitializeDraftsThenSaveDealings","downloadImportTemplateClick","DownloadIcon","PAPERS_GENERATOR_LIST_RESOURCE_ID","WorkableIcon","WorkableIconShareButton","ShareIcon","PaperLink","paperWorking","paperClick","showShare","shareClick","available","waiting","salesModule","customPopup","ExitToAppIcon","PrintIcon","paperId","ListItemSecondaryAction","useSnackbar","useSnackbarNotistack","closeSnackbar","enqueueSnackbar","doSnackbar","options","enqueueInfoSnackbar","enqueueSuccessSnackbar","enqueueWarningSnackbar","enqueueErrorSnackbar","PapersGeneratorSelectPopup","onSelect","onBack","selectGeneratesDocument","workingSupplier","setWorkingSupplier","rowClick","PapersGeneratorService","PapersGeneratorRfxInvitedSupplierWithOfferPopup","invitedSuppliers","setInvitedSuppliers","PapersGeneratorRfxRequestPosition","requestPositions","setRequestPositions","PapersGeneratorRfxInvitedSupplierPosition","chosenSupplier","setChosenSupplier","downloadFileWithPreloadUrl","preloadUrl","previewFile","SiwzSourceType","potentiallyValidMomentObject","VISIBILITY_TYPES_RESOURCE_ID","FOLDER_LIST_RESOURCE_ID","REPO_EDITABLE_RESOURCE_ID","updateFileRowInStore","folderList","folderIndex","folder","fileIndex","f","newFolderList","_updateFolderInStore","respFolder","updateTrash","_doUpdateTrash","workingFolderIdentity","trashIndex","RepoFolderTypes","trash","addFolder","insertIndex","temp","resourcesName","__get","addFiles","refreshFolder","deleteItem","deleteAll","deleteFolder","downloadAll","updateFolderName","updateFolderDescription","getDownloadHistory","pagination","getVisibilityTypes","types","changeFileVisibility","visibilityEndDate","getOnlyValidMomentObjectOrDefault","visibility","changeFolderFilesVisibility","updateDescription","getDownloadFile","shareRepo","shareRepoFolder","isRepoEditable","buildIdentity","SIWZ_TYPE_LIST_RESOURCE_ID","SIWZ_LIST_RESOURCE_ID","SIWZ_EDITABLE_RESOURCE_ID","updateAfterAdd","addResp","demandValidationSectionId","validateSection","updateSiwzRowInStore","siwzRow","preserveVersions","rootRowIdentity","rootRowId","versionRowId","siwzList","versions","r","validateSIWZ","validateDocuments","getTypes","send","repositoryId","parentSiwzId","parent","autopublish","moveFromRepo","rootIdentity","curList","itemToRemove","RepoService","unpublish","getVersions","clearVersions","addBzpNotice","bzpNoticeId","siwzType","generateSWZ","finallyCallback","shareGenerateSWZ","shareSiwz","isSiwzEditable","buildSiwzIdentity","SwzGeneratorQuestionSelect","question","selectValue","SwzGeneratorQuestionCheckbox","changeMain","fPName","qKey","opt","subOptions","sub","changeSub","so","SwzGeneratorQuestion","helpMessage","DOMParser","parseFromString","documentElement","textContent","helpText","textIndent","SwzGeneratorSection","questions","helpTexts","setSections","getActions","inits","q","SiwzService","PapersGeneratorSelectFilesPopup","onGenerate","selectedPos","setSelectedPos","generateClick","added","PapersGeneratOfferFilesVerification","PapersGeneratorMessageFilesVerification","getJavaKey","jsKey","snakeCase","getParamSerializedValue","applySearchParams","curParams","searchIndex","applySortParams","PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID","transformer","__sectionResponseTranformer","getStage1Sections","getStage2Sections","respTransformed","curSections","newSections","resourceId","DemandValidationSectionStatus","querySelector","extraOffset","scrollElement","boundingClientRect","getBoundingClientRect","stageBar","toolBar","offsetTop","scrollY","clientHeight","scrollTo","behavior","PurchasingGroupStage1BasicDataForm","basicData","propertyTransformer","HistoryButton","HistoryIcon","dateColumn","dateTimeColumn","buttonColumn","HistoryListPopup","historyList","selectElem","selectedElem","dateInserted","replacedUser","getUserFullNameWithEmailAndDeputy","apiUser","getUserFullNameWithEmail","getUserFullNameWithDeputy","getUserFullName","noChanges","buttonShow","HistoryElementComparator","selectedElemLoaded","clearSelectedElem","customParamTransformer","showTheSame","setShowTheSame","rows","changesCount","fieldsCount","leftContent","rightContent","leftVal","rightVal","theSame","ArrowBackIosIcon","loadHistoryList","loadHistoryElement","setHistoryList","setSelectedElem","setSelectedElemLoaded","HistoryList","PurchasingGroupStage1BasicData","panelRef","validationSection","setBasicData","setHistory","PurchasingGroupSectionService","PurchasingGroupStage1Service","getBasicData","closeSection","saveBasicData","getArchiveElement","getArchiveList","TransferList","leftColumn","rightColumn","Column","grow","Header","childClassName","childrenItem","transferList","row","SearchHeader","ItemComponent","itemProps","disablePadding","POSITION_VALUE","IconAddButton","WorkableIconHighlightOffButton","HighlightOffIcon","FullNameItem","marked","addedId","markHistorical","elementsCount","externalUser","userType","CommissionUserType","secondaryText","organizationName","pgMode","pgPositionValue","demandPositionValue","otherRole","TypographyWithIcon","userList","validateObj","ErrorOutlineIcon","COMMISSION_USER_LIST_RESOURCE_ID","COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID","COMMISSION_ESTABLISHMENT_RESOURCE_ID","saveUserList","commissionUserList","users","addExternal","getHistory","getUsers","establishmentDate","getAvailableUsers","deleteCommissionMember","CommissionService","EmptyOptions","CandidateColumn","filteredItems","setFilteredItems","searchFilter","setSearchFilter","addPopup","setAddPopup","addedItems","FullNamePositionItem","selectTextId","otherValue","selectId","primaryAction","secondaryAction","pgPositionsItems","positionsItems","CommissionColumn","doLoadHistory","establishmentId","commissionHistoryList","setCommissionHistoryList","helperTextHidden","userListAvailable","CommissionForm","saveDraftFunc","PurchasingGroupStage1Commission","setCommission","getCommission","getCommissionHistory","saveCommission","DateTimePicker","ampm","picker","stageHead","PurchasingGroupStage1ScheduleForm","joiningStartDateEditable","joiningEndDateEditable","opinionStartDateEditable","opinionEndDateEditable","submissionStartDateEditable","submissionEndDateEditable","scheduleReloadTimeout","serverTime","reloadTimeout","nowServerTime","joiningStartDate","joiningEndDate","opinionStartDate","opinionEndDate","submissionStartDate","submissionEndDate","swzOpinionStartDate","swzOpinionEndDate","collectingDataStartDate","collectingDataEndDate","isAfter","diff","PurchasingGroupStage1Schedule","setSchedule","getSchedule","saveSchedule","PurchasingGroupStageSections","STAGE_1_SECTION","EMPTY_SEARCH_OBJECT","BasicSearch","searchInProgress","doSearch","clearSearch","setValue","submitState","setSubmitState","valueFiltered","doClearSearch","onKeyUp","maxLength","SearchIcon","ClearIcon","iconWorksReducer","newState","works","anyWorks","simpleConfirm","confirmComplex","simpleConfirmNoTranslate","WorkableIconMailButton","MailIcon","buttonReject","rejected","coordinatorView","editName","setEditName","rejectionDate","canReject","canRestore","iconWorks","dispatchIconWorks","useReducer","reject","restore","resend","submitName","updateMemberName","deleteMember","MEMBERS","onReject","rejectMember","onRestore","restoreMember","complete","RestoreIcon","activeStage","resendInviteNotification","disabledEmpty","textField","createEditDescriptionFile","isFolder","editDescriptionFile","onUpdated","service","WorkableIconSearchButton","WorkableIconDownloadButton","GetAppIcon","WorkableIconPublishButton","LaunchIcon","WorkableIconUnpublishButton","warnIcon","descriptionTooltip","versionsCell","MembersDocumentsListTableRow","mainDocs","onEditDescriptionFile","allMemberDocumentsApiPath","memberMode","download","deleteMemberDocument","deleteAllMembersDocument","typeTranslated","createDate","publishDate","downloadMemberDocument","downloadAllMembersDocument","unpublishAllMembersDocument","publishAllMembersDocument","gridContainer","fileName","generateItems","generateInitialValues","generateValidationSchema","typeColumn","MembersDocumentsList","membersDocs","availableTypes","setEditDescriptionFile","generateWorking","setGenerateWorking","addFilesWorking","setAddFilesWorking","setSelectedFiles","setConfiguredFiles","hasUpload","openEditDescription","documentsApiPathType","editDescription","afterDocumentAdd","docs","group_agreement","generateGroupAgreementDocument","doc","addMemberDocuments","addAllMembersDocuments","updateMemberDocument","updateAllMembersDocument","membersList","setMembersList","getAvailableMemberUsers","respMapped","selectedUsers","addMemberUser","addButton","memberData","PURCHASING_GROUP_MEMBER_RESOURCE_ID","stage1Sections","deleteWorkingId","setDeleteWorkingId","participationWorking","setParticipationWorking","getMember","mainSection","UserService","deleteMemberUser","canConfirm","confirmationDate","CancelIcon","withdrawParticipationMember","CheckCircleOutlineIcon","confirmParticipationMember","memberDocuments","MembersElement","getMembersAvailableConcerns","concerns","selectedOrgs","addMembers","MembersList","members","addWindowOpen","setAddWindowOpen","setSearch","PurchasingGroupRole","stageSections","PURCHASING_GROUP_MEMBERS_RESOURCE_ID","PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID","PURCHASING_GROUP_HEADER_RESOURCE_ID","userRole","getMembers","getAllMembersDocuments","STAGE_2_SECTION","PurchasingGroupStage1PapersGenerator","apiPathType","sendType","contractorList","setContractorList","getOpinionAvailableMembers","contents","opinion","addOpinionForMember","newOpinion","saveOpinionMessage","rootMine","contentWrapper","contentWrapperUnread","borderWidth","contentWrapperMine","sendDate","newBadge","OpinionMessage","mine","memberMessage","unread","read","Badge","badgeContent","author","remove","sendMode","handleDelete","deleteOpinionMessage","getOpinions","opinionMessages","PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID","addWorking","setAddWorking","getOpinionMessages","addEmptyOpinionMessage","OpinionElementTitle","memberName","unreadCount","OpinionElement","opinions","PURCHASING_GROUP_OPINIONS_RESOURCE_ID","newOpinionPopup","setNewOpinionPopup","PurchasingGroupStage1FinishPreparing","canFinish","setCanFinish","FINISH_PREPARING","canFinishPreparing","finishPreparingStage","getHeader","PurchasingGroupStage2ScheduleForm","swzOpinionStartDateEditable","swzOpinionEndDateEditable","collectingDataStartDateEditable","collectingDataEndDateEditable","PURCHASING_GROUP_TEMPLATE_RESOURCE_ID","PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID","__save","getCollectingSchedule","saveCollectingSchedule","getTemplate","saveTemplate","newRes","getAvailableTemplates","getTemplateMember","getTemplateMemberForm","updateReduxLists","formListElement","formWrapper","memberListElement","curTemplate","newTemplate","memberList","curMember","newMember","formList","saveTemplateMemberForm","saveTemplateMemberFormDraft","saveTemplateMemberFormClearDraft","saveTemplateMemberFormAccept","saveTemplateMemberFormReject","saveTemplateMemberFormAskForEdit","saveTemplateMemberFormAllowEdit","saveTemplateMemberFormRejectEdit","getFinish","saveFinish","createDemand","maxRedirects","sendDealingsChangedNotification","PurchasingGroupStage2Schedule","PurchasingGroupStage2Service","TemplateMembersElementTitle","allFormsAccepted","askForEditPending","PurchasingGroupTemplateFieldType","TEXT","DATE","PERCENTAGE","AGGREGATE","TemplateMemberFormField","enabled","lastArchiveField","getViewField","fieldBox","emptyValue","textValue","decimalValue","replaceAll","getInputType","difference","fieldGrid","gridFieldComparing","getReadonlyField","PurchasingGroupTemplateFormState","fieldValues","decisionType","showOnGrid","warning","uxFormId","onDiscardChanges","newForm","formEditable","submitter","setSubmitter","historyPopup","setHistoryPopup","draftMode","getReadonlyNameField","lastArchive","getViewNameField","allOptional","getFieldVS","hasAskedForEdit","canAskForEdit","hasDraftSaved","flexWrap","groupHeader","selectedFormId","setSelectedFormId","addFormWorking","setAddFormWorking","setFormWrapper","loadForm","checkFormDirty","doDiscardChanges","getIcon","addTplAvailable","formIdPrefix","TemplateMembersList","template","availableTemplates","setAvailableTemplates","endsWith","canChooseTemplate","templateName","canFillForm","FINISH","SplitButton","buttonClassName","hideEmpty","anchorRef","handleToggle","prevOpen","ButtonGroup","zindex","disablePortal","ClickAwayListener","onClickAway","contains","MenuList","finishData","setFinishData","getSectionData","procedureTypes","createSplitButton","hasDemandPrivilege","sectionErrors","hasDemandCreated","buttonPrint","canSendDealingsChangedNotification","BASIC_DATA","OPINION","SWZ","COLLECTING_SCHEDULE","OPINION_SWZ","TEMPLATE","COLLECTING_PAPERS_GENERATOR","StageSectionNameToSectionParam","kebabCase","StageSectionParamToSectionName","StageSectionsComponents","PurchasingGroupStage1Members","PurchasingGroupStage1Opinion","PurchasingGroupStage2Template","PurchasingGroupStage2Dealing","PurchasingGroupStage2Finish","getMembersRow","newMessage","modifiedDate","__print","getRelatedObjects","getPurchasingGroupList","searchData","getPurchasingGroupListActions","getPurchasingGroupMemberList","noErrorsDocs","userIds","getGzmManagementResolution","printGzmManagementResolution","getGzmLeadingDocument","printGzmLeadingDocument","getGzmDocumentToSign","printGzmDocumentToSign","getGzmDraftGroupAgreement","printGzmDraftGroupAgreement","initData","setInitData","resolutionNumber","resolutionDate","projectName","memberIds","documentNumber","documentDeadline","agreementConclusionDate","agreementStartDate","useEzamowieniaOauth","authorizeEzamowienia","requiredGroups","EZamowieniaIcon","getAuthorizationStatus","revokeToken","PapersGeneratorXmpUzpPresidentPaperContent","goto","EzamowieniaService","ezamowieniaOrigin","PapersGeneratorXmpUzpPresidentPaperPopup","shareSystemsActive","sharePopupData","onChoose","activeShareSystems","connectedShareSystems","shareSystemsConnected","SendIcon","DEF_CUSTOM_POPUP","PAPERS_SHARE_SUPPORTED_CUSTOM_POPUPS","REPORT_SHARE_SUPPORTED_CUSTOM_POPUPS","papersGeneratorList","setCustomPopup","setPaperWorking","sharePopupPaper","setSharePopupPaper","shareSystems","share","dictionary","INTEGRATIONS_UPLOAD","showShareReport","modules","papers","reports","doShare","getPaginationConfig","pageSize","setSearchData","totalCount","setTotalCount","contractorTotalCount","setContractorTotalCount","setPaginationConfig","setSearchConfig","preservePagination","setSortConfig","lineHeight","MoreButton","loadedCount","setConfig","captionTrKey","RESOURCE_ID_RFX_OFFER_LIST","RESOURCE_ID_RFX_OFFERS_ACTIONS","RESOURCE_ID_RFX_OFFER_DECRYPTION_STATUS","RESOURCE_ID_RFX_OFFER_PUBLIC_SESSION_STATUS","RESOURCE_ID_RFX_PUBLIC_SESSION_ONLINE_STATUS","getOffers","res2","getAvailableActions","getAdditionalRoundsOffers","_doAdditionalRoundsOffers","clearAdditionalRoundsOffers","additionalOffers","sendIvniteToOffers","emailsTab","emails","getOffersDecryptionStatus","getOffersDecryptionProgress","startOffersDecryptionProcess","getOffersPublicSessionStatus","getOffersPublicSessionProgress","startOffersPublicSessionProcess","getOffersPublicSessionOnlineStatus","saveOffersPublicSessionOnline","downloadOffersAttachments","downloadOffersSummary","saveEnvelope","envelope","getEnvelope","envelopeId","OfferStatusLabel","OfferEncryptionStatuses","OfferEncryptionStatusLabel","pointer","TooltipIcon","tooltipClasses","iconClasses","otherProps","cell","statusColumn","OfferAdditionalOffersTable","redirectToOffer","encryptionStatus","offerDate","offerDetailsUrl","encIcon","LockOpenOutlinedIcon","LockOutlinedIcon","InsertDriveFileOutlinedIcon","dateStr","GENERAL_INFO_BASIC_DATA","GENERAL_INFO_DOCUMENTS","GENERAL_INFO_PUBLIC_ANSWERS","resId","subject","unreadElements","GeneralInfoExpansionPanelTitle","toggleThread","toggleThread2","titleRoot","titleCollapsible","GeneralInfoEntry","collapsible","defaultCollapsed","biggerLabel","collapsed","setCollapsed","ExpansionPanel","defaultExpanded","highlighted","square","titleAdornment","Accordion","AccordionSummary","expandedSummary","titleGrid","AccordionDetails","details","AccordionActions","bottomButton","appBarBackground","formatAmountNumber","undefinedValue","fixed","Number","OfferStageTranslationsContext","createContext","OfferStageTranslationsContextProvider","Provider","textarea","GeneralInfoBasicData","panelsClassesObject","generalInfoBasicData","setExpanded","stageTr","useContext","isExpanded","procedureTypeTranslated","realizationTypeTranslated","orderType","canCreateAuction","guaranteeList","dealingsCount","ordinalNumber","procedureStartDate","stageTypeTranslated","stageEndDate","openOfferDate","stageSecondEndDate","demandFinishDate","ProcedureStatus","WorkableIconForwardButton","ForwardIcon","GeneralInfoDocumentsFileTableRow","DemandOffersGeneralInfoService","GeneralInfoDocumentsFileTable","generalInfoDocuments","downloadZipWorking","setDownloadZipWorking","PurchaserOfferContext","PurchaserOfferContextProvider","demandStageSectionsList","purchaserOfferContext","unreadDemandDocuments","StageSections","GENERAL_INFO","CORRESPONDENCE_RES_PREFIX","CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID","CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID","CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID","CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID","CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID","cleanupThreadList","_processNewMessagesUpdate","checkTime","correspondenceSplitDate","newReadMessageIds","listResourceId","reqResource","threads","threadsObject","th","reqThread","unreadMessagesCount","newMessageList","unshift","_setMessagesInThread","reqMessages","_addThreadToList","thread","_updateMessageInThread","_removeMessagesFromThread","removedLast","messagesFiltered","_updateMessagesInThreads","respTh","mesMap","_addMessagesToThreads","threadList","_sendFlagUnflagThread","hasRedFlag","_modifyFlag","getSearchResult","searchObject","beforeBiddingEndThreads","afterBiddingEndThreads","notSplicedThreads","print","threadIds","getBuyerThreadList","getBuyerNewMessages","dateFrom","unreadIds","getBuyerSearchResult","getBuyerThreadMessageList","contractorUser","publicQuestion","addBuyerThread","sendBuyerMessage","publishBuyerMessage","updateBuyerMessage","saveBuyerThreadAsContractor","createBuyerMessage","deleteBuyerMessage","sendBuyerBulkMessages","bulkMessages","publishBuyerBulkMessages","getBuyerContractorInRoundList","getBuyerMessageDelivery","downloadBuyerMessageAttachmentsZip","downloadBuyerMessageAttachment","checkVerificationLimit","printBuyerMessageAttachmentsVerification","sendBuyerFlagThread","sendBuyerUnflagThread","getBuyerPrivileges","getBuyerPrint","getBuyerThreadEmailList","getBuyerContractorEmailList","shareCorrespondencePrint","clearThreadMessages","getContractorThreadList","getContractorNewMessages","getContractorSearchResult","getContractorThreadMessageList","buyerUser","createContractorMessage","updateContractorMessage","sendContractorMessage","deleteContractorMessage","addContractorThread","downloadContractorMessageAttachmentsZip","downloadContractorMessageAttachment","sendContractorFlagThread","sendContractorUnflagThread","getContractorPrivileges","getContractorPrint","GeneralInfoPublicAnswersMessage","currentRfxRoundId","attachment","CorrespondenceService","messagesDiv","generalInfoPublicAnswers","unreadAnswers","unreadRfxMessages","DEMAND_STATISTICS_RESOURCE_ID","CURRENT_RFX_RESOURCE_ID","getStats","getCurrentRound","clearStats","clearCurrentRound","GeneralInfoRealizationAmount","realizationList","rootExpanded","currentRfxRound","StatisticsService","sectionId","dataLoading","isResponseValidWithStoredPasswordCheck","passwordSetSuccessCallback","passwordSetErrorCallback","setErrors","skipShowError","noValidPassword","offerErrors","Done","Finished","Required","Optional","Pending","Progress","Wait","avatar","icoTab","PriorityHighIcon","PlaylistAddIcon","HourglassFullIcon","CheckCircleIcon","AvatarStatus","ExpansionPanelTitleAvatar","Avatar","OfferMode","OfferPositionStatusType","OfferPositionStatusesReadyToOffering","OfferPositionStatusesReadyToOfferSign","OfferPositionStatusesReadyToWithdraw","OfferPositionStatusesReadyToWithdrawSign","OfferPositionStatusesReadyToDelete","SignatureType","QUALIFIED","PERSONAL_ID","E_PUAP","UNKNOWN","OfferStatusType","OFFER_EDIT","OFFER_POSITIONS_LOADED","postSaveCommonData","defErrorCallback","commonData","postSavePositionData","newLoaded","getLoadedPositionKey","placingType","filesResp","curEdit","positions","offerFiles","postOfferEspdFiles","_processAddNewEspdFiles","touchedPositions","tmpEspdFiles","espdFiles","updatedOf","placeOffer","onePositionMode","missingSignatures","deleteOffer","positionIds","withdrawOffer","signOffer","signWithdraw","stopSigningOperation","getDocumentToSign","signatureType","getDownloadOfferFile","getDownloadEspdFile","postOfferFiles","_processAddNewFiles","Set","tmpOfferFiles","pos","deleteOfferFile","editEspdFile","editEspdFiles","deleteEspdFile","editOfferFile","editOfferFiles","getOfferEdit","preview","endpoint","getOfferPosition","redirectContractorESPDMpAppUrl","resp2","downloadContractorESPDExportFile","downloadSnapshot","getDownloadOfferFileUrl","getDownloadOfferFilesZip","signFile","signEspdFile","getDownloadEspdFileUrl","printOfferPosition","getDocumentBase64EncodedToSignDocument","getDocumentToWithdraw","requireWithdrawEncryption","getSnapshots","getVerifications","downloadVerifications","verifyBeforePlaceOffer","getPreviewSection","getDownloadOfferTemplate","OFFER_PLACED","ContractorDocumentType","SECRET","RODO","ContractorDocumentTypeSelectItems","curVal","ContractorDocumentTypeLabel","RoundType","TRUE_FALSE_VALUE","TrueFalseWithEmpty","rodoSelect","typeSelect","containsRodoId","getPositionItems","onUpdate","documentType","containsRodo","ADDITIONAL_OFFER_EDIT","ADDITIONAL_OFFER_POSITIONS_LOADED","ADDITIONAL_OFFER_EDIT_ALT","DemandOffersOfferService","OFFER_AUCTIONS_LIST_DATA","AUCTIONS_OFFER_EDIT","AUCTIONS_OFFER_POSITIONS_LOADED","AUCTION_OFFER_PLACED","getOfferAuctionsList","assignToAuction","OfferSectionContext","OfferSectionProvider","SignatureIcon","OfferFileSignStatus","signature_file","not_signed","signed","wrong_sign_type","OfferFilesTableSignStatus","signState","SupportModeContext","SupportModeContextProvider","OfferFilesTableRow","positionIdToOrderMap","bulkEdit","signFileAvailable","onSignDocument","editFile","setEditFile","supportMode","contextSection","promise","DemandAdditionalOffersOfferService","insertDate","fileSize","sha256","signatureConfiguration","DemandOffersAuctionService","updateFile","doSignDocContent","signatureTypes","docContentFunc","cancelCallback","getEncryptionRoundId","makeTaskListConfig","breakSigning","setLoadingScreenShow","show","hideLoadingScreen","showLoadingScreen","simpleAlert","translateTexts","alertComplex","buttonText","OfferFilesTable","offerEdit","setBulkEdit","bulkEditWorking","setBulkEditWorking","realOnePositionMode","signFileRef","useSignature","useLoadingScreen","onDownloadZip","doBreakSigning","encryptionEnabled","SaveIcon","OfferFiles","portFilesWorking","setPostFilesWorking","OfferEspdType","OfferEspdTypeLabel","help","helpNotSelected","OfferEspdTypeSwitch","espdType","setEspdType","ToggleButtonGroup","exclusive","newEspdProcedure","ToggleButton","SimpleSelect","menuItemClassName","getItemProps","fieldValueInput","xVal","hidden","flex","OfferEspdInternal","positionItems","visible","setPositionId","espdOnPositions","parentSelect","OfferEspdExternalUploadFile","handleSendFiles","OfferEspdExternal","OfferEspdTableRow","OfferEspdTable","OfferEspd","envelopeOffer","modifyDisabled","ContractorOfferEspdType","criterionValidation","criterium","gVal","vatValue","quantityShape","baseCriterion","optionalItemId","optionCriterion","parameterOffers","showComment","comment","offerValidation","consorciants","consorciumOnPosition","criteriums","itemOffers","YESNO_ITEMS","OfferYesNoInput","OfferTextInput","OfferNumberInput","vat","currency","gridBlock","VAT_TYPE_ITEMS","calculateGrossValue","newGross","calcNetGros","sumNet","sumGross","roundedGross","roundedNet","OfferPriceInput","parsedQuantity","netField","grossField","vatField","copyVat","totalGross","totalNet","quantityDisabled","offer","optionalItemIndex","baseParameterOffer","parameterId","vatError","copyVats","offerValuesPredefined","getSelectValue","selValue","ImportExportIcon","po","OfferListInput","listValues","marginTop1","marginTop2","OfferInput","customQuantity","Input","offerInput","inpDisabled","canEditQuantity","OfferPositionConditions","OfferPositionCriteriums","sumElem","OfferPositionItems","showOptionSumValues","totalValues","positionOfferValue","positionOfferGrossValue","positionOptionOfferValue","positionOptionOfferGrossValue","positionTotalOfferValue","positionTotalOfferGrossValue","newOptionSum","OfferPositionParameters","parameter","ContractorConsorciumTypesOnePosition","NONE","ContractorConsorciumTypes","POSITION","ContractorConsorciumTypesLabel","ContractorCompanySize","MICRO","SMALL","MEDIUM","SELFTRADER","NONBUSINESSINDIVIDUAL","OTHERSIZE","LARGE","IGNORE","ContractorCompanySizeLabel","CONTRACTOR_LIST_ID","CONTRACTOR_ONE_PLACE_ID","NIP_LIST_RESOURCE_ID","reduxId","getContractorDetails","getOnePlace","__appendContractors","__removeContractor","sendTabContractor","contractors","invite","deleteUser","getNipList","check","NipRow","nipList","listSorted","ContractorService","MaskedTextInput","mask","maskChar","prevFormikProps","nextFormikProps","PostCodeRow","postCodeId","postCodeValue","postCode","FirstPart","SecondPart","PL_PREFIX","translationsMap","InviteContactorForm","defaultValues","collectPostCode","collectAddress","addressRequired","collectCity","cityRequired","collectRegon","collectCompanySize","collectIdentity","checkForExistingVatins","ctrMap","setCtrMap","vatin","address","city","regon","companySize","errorList","nipAndPostCodeError","numberLength","valueKey","countryCode","objShape","fixedname","PESEL","onBlurNip","nameExist","handleInvite","submitButtonLabel","setLoading","emailColumn","commonColumn","ConsorciumTable","invitePopup","setInvitePopup","TableContainer","removeContractor","lastId","toggle","YesNo","newProcedure","OfferPositionConsorciants","consorciumType","consorciumEnabled","APIOfferPlacingType","getConfig","SnapshotListPopup","snapshotList","setSnapshotList","workingId","setWorkingId","offerSubmitDate","offerPlacedInTime","digitalSignature","digitalSignatureDate","offerStatus","empty","verificationDate","getVerificationConfig","verificationsList","setVerificationsList","verificationsListFiltered","setVerificationsListFiltered","searchText","setSearchText","fillFilteredList","positionName","useSalesNotification","functionality","SIGNATURE_VERIFICATOR","OfferPositionForm","loadedPosition","loadedPositionCounted","setLoadedPositionCounted","chooseSnapshotPopup","setChooseSnapshotPopup","verifyPopup","setVerifyPopup","counted","printVerificationSalesCheck","salesNotificationKeys","SpellcheckIcon","additionalOfferAltMode","formDisabled","hadStageWithOffer","rootGrid","adornmentGrid","discardButton","positionsLoaded","OfferPositionStatusToAvatar","statusTranslated","endDate","offerTmpDate","createTitle","borderTop","floatingMenu","menuBarPaper","ownProps","positionsRef","searchReg","setSearchReg","hideNoOfferPositionsOperator","setHideNoOfferPositionsOperator","onKeyPress","inputRef","VisibilityOff","Visibility","ButtonsBar","toLeft","buttonListLeft","buttonList","memoButtons","bb","propDefault","progressBar","NavigationBar","menuBar","translateLabel","createSubmitFormButton","isSaveButton","nameColumn","POPUP_MODE","getListText","onSuccess","popupMode","contractorOfferStatus","isSupported","positionsFiltered","setPositionsFiltered","part","getButtonText","posIds","requiredSignatures","CONTRACTOR_OFFER_EDIT_COMMON_DATA_FORM_ID","OfferCommonData","headColumn","borderBottomColor","getVerificationBeforePlaceOfferPopupConfig","VerificationBeforePlaceOfferPopup","signedFile","signatureFiles","sFile","partColumn","errorColumn","entryLpColumn","entryColumn","ImportOfferFormPopup","setResult","upload","cellAddress","StageSectionsUrlParams","choosePositionPopup","setChoosePositionPopup","importTemplatePopup","setImportTemplatePopup","verifyBeforePlacePopup","setVerifyBeforePlacePopup","unsavedPos","readyPositions","submitChoosePositions","submitChoosePositionsWithdraw","submitDeleteOffer","espdComplete","offerEspdType","missing","posId","missingPos","doSubmitChoosePositions","sigType","signatureFileId","submitPlaceOffer","submitWithdrawOffer","requireEncryption","signWithdrawOffer","placingOffer","createMultiButton","navigationBarButtons","OfferExpansionSectionTitle","getSectionVariant","OfferEditSectionTitle","passResp","OfferPlacedPanel","OfferPlacedSectionTitle","submitSignWithdrawOffer","encryptionRoundId","offerCollectionEnded","AdditionalOfferCommonData","envelopeOfferDate","startMoment","startDate","endMoment","additionalOfferEdit","chooseEnvelopeOfferDatePopup","setChooseEnvelopeOfferDatePopup","doSignOffer","doDeleteOffer","doSignWithdrawOffer","doStopSigningOperation","AdditionalOfferPlacedPanel","AuctionRule","ENGLISH","DYNAMIC","JAPANESE","DUTCH","AuctionRuleLabel","AuctionStatus","AuctionStatusLabel","AuctionType","AuctionTypeLabel","AuctionTypeItems","TooltipRow","AuctionRow","handleAssignToAuction","confirmOpened","setConfirmOpened","customWidth","HelpOutlineIcon","overtime","overtimeCount","rule","decisionTime","openInNewTab","idColumn","userColumn","AuctionsTable","auctions","auctionWrapper","offerAuctionsListData","AUCTION_OFFER_EDIT","AdditionalOfferPlacedSectionTitle","AdditionalOfferEditSectionTitle","GeneralInfoSectionTitle","StageSectionsOrder","ADDITIONAL_OFFER_PLACED","DASHBOARD","GeneralInfoPanel","OfferEditPanel","AdditionalOfferEditPanel","AdditionalOfferEditAltPanel","AuctionOfferEditPanel","AuctionOfferPlacedPanel","StageSectionsTitles","OfferTableRow","openEnvelopeEdit","collectionFinished","addLoading","contractorName","offerUser","contractorAddress","dateOfEnvelopeReceipt","hasAdditionalRounds","consorciumOffer","outOfDateOffer","apiOffers","WarningRoundedIcon","RfxOfferService","supplierColumn","authorColumn","addressColumn","OfferTable","headRow","addContractorsTab","onclose","receiveMessage","onePlaceContractor","dialog","iframe","contractorImport","inlineBlock","nameError","RegisterEnvelopeForm","newEnvelope","handleClearContractor","suggestContractor","contractorNameError","getFormButtons","platformAdded","rfxRoundId","loadedEnvelope","setLoadedEnvelope","dateOfReceipt","req","invitation","offersActions","demandStatistics","offerLoading","setOfferLoading","registerEnvelopePopupOpened","setRegisterEnvelopePopupOpened","downloadWorking","setDownloadWorking","useSearch","refreshCurrentRows","loadedRows","curPageSize","numberOfOffers","runDownload","getAdditionalButtons","itemSummaryXls","itemParametersXls","summaryXls","summaryPdf","curDemandValidation","downloadOffersEnabled","registerEnvelopeEnabled","PROCEDURE_TYPES","noticeOjsType","noticeBzpType","siwzTypes","setErrorText","downloadSuccess","setDownloadSuccess","processResponse","bzpSiwzType","pickAutopublish","pickParent","parentId","autopublishId","createParentSelectTab","createDownloadHistoryFile","DownloadHistoryPopup","downloadHistoryFile","downloadHistory","setDownloadHistory","historyLoading","setHistoryLoading","handleHistoryLoad","paginator","curState","downloadCount","downloadUserFullName","ipAddress","downloadDate","WorkableIconDownloadCountButton","CloudDoneIcon","WarningRoundedButton","DemandValidationContext","DemandValidationProvider","SiwzVersionsTableRow","onOpenDownloadHistory","shareFilePopup","setShareFilePopup","getPublishDateCellValue","onShareFile","downloadDetails","versionColumn","SiwzVersionsTable","SiwzFileTableRow","currentDemandValidation","expand","hasVersions","checkRealizationAmountValue","openConfirmDeleteAll","setOpenConfirmDeleteAll","openDownloadHistory","parentRowIdentity","SelectSiwzDocument","topButtons","addBzpNoticePopupOpened","setAddBzpNoticePopupOpened","swzParamsOpen","setSwzParamsOpen","isBzpAttachmentNotice","isBzpAttachmentNoticeType","isOfferCollectionOrModification","validationShema","SelectFolderPopup","repoVisibilityTypes","repoVisibility","visibilityStatus","isFile","visibilityTypes","setVisibilityTypes","WorkableIconEjectButton","RepoFileTableRow","onSetRepoVisibility","onMoveToSiwz","moveToSiwz","changeVisibility","visibilityColumn","sizeColumn","RepoFileTable","setRepoVisibility","folderType","onSelectFileToMoveToSiwz","updateFolderFilesVisibility","deleteFolderFiles","headTable","nameCell","descriptionCell","verticalAlign","iconColumn","nameEdited","setNameEdited","openConfirmDeleteFolder","setOpenConfirmDeleteFolder","curDisabled","nameFormId","onShareFolder","getItems","SelectRepoDocument","moveToSiwzFolderAndFile","setMoveToSiwzFolderAndFile","openFolderPopup","setOpenFolderPopup","CreateNewFolderIcon","firstTable","showInternalDocuments","setShowInternalDocuments","siwzEditable","repoEditable","documentsLoading","setDocumentsLoading","siwzListPromise","siwzTypesPromise","repoFolderListPromise","repoVsibilityTypesPromise","ContractorVerificationProcedureType","ContractorVerificationProcedureTypeLabel","VerificationProcedureType","contractorVerificationProcedure","handleProcedureChange","verificationProcedure","ContractorVerificationOfferStatus","ALLOWED","ALLOWED_PARTIALLY","EXCLUDED","REVERSE_PROCEDURE","OFFER_REJECTED","NOT_SCORED","NOT_VERIFIED","CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID","CONTRACTOR_VERIFICATION_PROCEDURE_RESOURCE_ID","getContractors","updateContractorStatus","curRes","getProcedure","updateProcedure","statusCell","ContractorVerificationRow","contractorElem","rowWorking","setRowWorking","statusToConfirm","setStatusToConfirm","statusesList","changeable","newStatus","confirmed","ContractorVerificationService","ContractorVerificationTable","marginBottomItalic","contractorVerificationList","readonly","OFFER_EVALUATION_LIST_RESOURCE_ID","handleUpdate","offerItem","rowItem","changeType","AVAILABLE_CHANGE_TYPES","STATUS","ROW","offerEvaluations","list2","newList2","updateStatus","updateScore","score","criteriaEvaluation","OfferEvaluationViewMode","SUPPLIER","OfferEvaluationPositionStatus","EXTREMELY_LOW","OUT_OF_DATE","EXCLUDED_FROM_CONTRACT","scoreRegex","emptyRegex","emptyEditMode","OffersEvaluationScoreColumn","offerEvaluationRow","offerEvaluationCriterion","editMode","setEditMode","onScoreClick","userSelect","evenRow","lastRow","scoreColumn","statusSelect","OffersEvaluationRow","rowNumber","even","statusWorking","setStatusWorking","scoreWorking","setScoreWorking","onUpdateScore","onUpdateStatus","array","first","last","rowSpan","ViewMode","scoreTotalColumn","critColumn","weightColumn","valueColumn","OffersEvaluationTable","offerEvaluationItem","pageInputInput","pageInput","emptyWidth","goToPage","DottedPagination","showManualInputField","pageValue","setPageValue","handleConfirmPageValue","Pagination","ceil","newPage","showFirstButton","showLastButton","siblingCount","boundaryCount","intVal","Types","PaginationButton","variantDisabled","OfferEvaluationRoundType","ADDITIONAL_OFFERS","decisionsList","OfferEvaluationSearch","paginationClear","center","offerEvaluationList","OfferEvaluationService","setMode","searchOb","PaginationButtonTypes","OFFER_CHOICE_LIST_RESOURCE_ID","updateInProgress","callSectionsValidation","sectionsToRefresh","_doUpdatePosition","newPos","_doUpdateAuction","currentAdditionalRoundInfo","auc","getChoiceList","getPositionsWithNoOffer","getChoiceJustificationBasis","createAdditionalRound","filteredContractors","departmentIds","prepareAdditionalRound","cancelPositionsWithNoOffer","offerChoiceDate","saveOfferChoice","canceled","chosenSupplierIds","offerChoiceJustification","updateAuctionInAdditionalRoundInfo","addAuctionToAdditionalRoundInfo","removeAuctionFromAdditionalRoundInfo","updatePosition","modifyChoice","getPositionAuctions","checkForPrimaryTenderChoiceOptions","postPrimaryTenderDoOfferChoice","postPrimaryTenderDoNegotiations","rowsPerPageOptions","TablePagination","rowsPerPage","onPageChange","onRowsPerPageChange","labelRowsPerPage","labelDisplayedRows","backIconButtonProps","nextIconButtonProps","columnChecked","unavailable","maxPoints","iconMax","OfferChoiceContractorRowPart","chosen","chooseSupplierCountReached","offerChoiceContractor","offerChoiceRow","chooseSupplier","maxPartScore","maxScore","offerScore","unavailableReason","maxOfferChoiceCount","getTooltip","CheckBoxIcon","CheckBoxOutlineBlankIcon","IndeterminateCheckBoxIcon","AuctionTypeList","auctionType","AuctionHistoryPopup","setAuctions","OfferChoiceService","prod","choiceSize","body2","choiceStatus","choiceControls","choiceControlsEnd","auctionHistory","float","offerChoiceJustifications","chosenStatusDone","setChosenStatusDone","chosenSuppliers","auctionHistoryPopup","setAuctionHistoryPopup","offerChoiceDateError","setOfferChoiceDateError","modifyConfirmOpen","setModifyConfirmOpen","setOfferChoiceJustification","setOfferChoiceDate","disabledInputs","auctionHistoryVisible","dateValue","AdditionalRoundStatus","AdditionalRoundStatusesPending","HOUR_SECONDS","DAY_SECONDS","zeroTable","getDaysHoursMinutesSeconds","sec","zeroValue","secLeft","days","floor","hours","minutes","formatDaysHoursMinutesSeconds","ret","changeDates","dateTimePicker","roundName","additionalRoundId","additionalRoundEndDate","additionalRoundStatus","additionalRoundOpenOfferDate","offerOpenDate","AdditionalRoundService","handleEndDate","countTimeFunction","serverBrowserTimeDiffSeconds","setLeftTable","timerInterval","endTimeCallback","end","nowBrowserTime","secondsDiff","clearInterval","OfferChoiceSummaryCellAdditionalRound","refreshRow","serverBrowserTimeDiff","leftTableToOfferEnd","setLeftTableToOfferEnd","leftTableToOpenOffer","setLeftTableToOpenOffer","editDatesOpened","setEditDatesOpened","decryptionStatus","setDecryptionStatus","decryptionProgress","setDecryptionProgress","decryptionInterval","decryptionFinished","secondsLeftToOfferEnd","setInterval","openOffer","ProgressStatus","formatValues","create","editDates","pause","resume","prepare","netOverGross","downloadAuctionInvitation","AuctionItemBidType","AuctionItemBidTypeLabel","AuctionItemBidTypeItems","auctionRule","fixedOfferVat","inputColumn","boundaryColumn","OfferChoiceCreateAuctionTable","isCriterion","bidType","criterias","biddableDisabled","biddable","minOfferValue","measureUnit","maxOfferValue","minOfferPrice","maxOfferPrice","tableItems","formElement","dd","preparedAuction","setPreparedAuction","AuctionService","textYesNoOrList","critShape","itemShape","rules","handleUseNetOverGrossChange","priceItemCount","offerCount","AuctionTypePart","buttonWorks","setCreatePopupOpened","deleteAuction","editAuction","publishAuction","unpublishAuction","cancelAuction","pauseAuction","acceptAuction","resumeAuction","auctionDetails","prodAuctionStatus","secondsLeftToStart","secondsFromStart","secondsToWindowEnd","secondsLeftToEnd","btns","createConfirmAuctionCfg","sendEmail","confirmButtonLabel","ConfirmAuction","cfg","setSendEmail","SaveDialogBase","iconClassName","enter","AuctionSaveError","inviteButton","OfferChoiceSummaryCellAuction","createPopupAuctionType","setCreatePopupAuctionType","editPopupAuction","setEditPopupAuction","auctionError","setAuctionError","confirmCfg","setConfirmCfg","downloadInvitationWorking","setDownloadInvitationWorking","prodButtonWorks","dispatchProdButtonWorks","testButtonWorks","dispatchTestButtonWorks","dispatchButtonWorks","_DECISION_STATES","noOffer","OfferChoiceRow","offerChoices","setChosenSuppliers","curWorking","setCurWorking","doUpdateStatus","doModifyChoice","isAdditionalOffers","isAuction","getRow","contractorColumn","checkColumn","OfferChoiceTable","offerChoiceList","Alert","positionsWithNoOffer","setPositionsWithNoOffer","decision","OFFER_CHOSEN","CANCELED","OfferChoiceSearch","smallColumn","contractorsTable","rowHidden","divHidden","divOpen","elemTransition","showContractors","positionChecked","allContractorsChecked","elemId","handleContractorsHeadCheckboxChange","rounds","setRounds","setShowContractors","relative","realizationValues","getValidationSchema","xs","realizationPublishDate","setRealizationValues","toCompare","errorDialogOpen","setErrorDialogOpen","realizationDialogOpen","setRealizationDialogOpen","cancelWhereNoOffersPopupOpen","setCancelWhereNoOffersPopupOpen","createPopupType","setCreatePopupType","refreshData","createRoundButton","additionalActionsButton","OFFER_CHOICE_RESULT_LIST_RESOURCE_ID","roundResult","publishUntilDate","positionOrders","repositoryFiles","repositoryIds","OfferChoiceResultFileState","buttonCell","OfferChoiceResultFilesTableRow","offerChoiceResultItem","onDeleteFile","onUpdateFile","doPublishChange","OffersChoiceResultService","datePublished","unpublishFile","publishFile","deleteFile","OfferChoiceResultFilesTable","fileToDelete","fileToUpdate","OfferChoiceResultFiles","filesWorking","setFilesWorking","WorkableIconPrintButton","WorkableIconCalendarButton","EventIcon","openFilesCell","OfferChoiceResultRow","publishPopupOpened","setPublishPopupOpened","load","filesLoaded","ArrowUpIcon","ArrowDownIcon","offerChoiceResultList","AgreementListType","CREATED","AVAILABLE","AgreementsListType","listType","setListType","AGREEMENTS_RESOURCE_ID","AGREEMENTS_AVAILABLE_RESOURCE_ID","AGREEMENTS_AVAILABLE_ORGANIZATIONS_RESOURCE_ID","getAgreementsList","getAgreementsAvailableList","getAgreementsAvailableOrganizationsList","createNoAgreements","deleteAgreement","objType","createAgreements","orgForAgreement","oneAgreement","agreementsAvailableOrganizationsList","AgreementsService","confirmOpen","setConfirmOpen","InfoOutlinedIcon","agreementsAvailableList","confirmNoAgrOpened","setConfirmNoAgrOpened","createOpened","setCreateOpened","setSelected","checkClick","agreementsList","confirmDelete","setConfirmDelete","extObjId","doFinishEvaluation","cancelRound","onInvalidate","prevErrors","openInvalidate","setOpenInvalidate","hasPrevErrors","cancelVisible","cancelVisibleEnabled","EvaliationFinishService","RfxRoundService","ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID","getAdditionalPassiveRoundsList","updateAdditionalPassiveRound","getAvailableContractors","createAdditionalPassiveRound","AdditionalRoundPassiveStatusCell","AdditionalRoundPassiveRow","AdditionalRoundPassiveService","AdditionalRoundPassiveTable","additionalPassiveRounds","setContractors","refresh","createPopupOpened","negotiationButton","setNegotiationButton","foundExtremelyLowOfferStatus","setFoundExtremelyLowOfferStatus","choicePending","showNegotiationPathButton","extremelyLowOfferStatusFound","makeNegotiations","skipNegotiations","negotiationsCreated","choiceDate","NoticeYesNoInput","formTr","formTip","FormTranslationContext","tip","NoticeIntegerInput","dialogPaper","breakpoints","sm","opacity","max100","SelectTreeView","useObjectInsteadOfValues","prefixLabelsWithKeys","itemsFiltered","setItemsFiltered","keyToData","doItem","hasChildren","getLabel","node","renderTree","nodes","TreeItem","nodeId","nodeValue","fExp","parentVisible","childrenFiltered","itemsF","onClosePopup","startAdornment","newSelected","TreeView","defaultCollapseIcon","defaultExpandIcon","onNodeToggle","nodeIds","onNodeSelect","elemObject","NoticeGlossaryInput","NoticeNumericInput","exceptionChip","getKey","dictionaries","setDictionaries","translations","setTranslations","DemandAdditionalInfoService","labels","tips","getDict","mp_3_offers","OffersPanel","mp_3_documents","DocumentsPanel","mp_3_contractor_verification","ContractorVerification","mp_3_offers_evaluation","OffersEvaluation","mp_3_offer_choice","OfferChoice","mp_3_additional_round_passive","AdditionalRoundPassive","mp_3_primary_tender_choice","PrimaryTenderChoice","mp_3_offers_choice_result","OffersChoiceResult","mp_3_evaluation_finish","EvaluationFinish","mp_3_stage_finish","StageFinish","mp_3_papers_generator","PapersGenerator","mp_3_agreements","AgreementsPanel","mp_3_evaluation_additional_info","panelsValidationKeys","RESULT_NOTICE_RESOURCE_ID","checkAndUpdateAttachment","getResultNotice","publishOjsResultNotice","checkOjsResultNotice","rollbackOjsResultNotice","addResultNoticeAttachments","deleteResultNotice","publishResultNotice","unpublishResultNotice","unpublishResultNoticeAttachment","publishResultNoticeAttachment","clearResultNoticeResources","AttachmentResultNoticeRow","onDownloadHistory","ResultNoticeService","noticePublication","published","AttachmentResultNotice","PublishConst","ResultNoticeType","OJS","ATTACHMENT","text1","resultOjsPublicationStatus","ojsAdmin","ojsResultNoticeSend","canPublishOjsResultNotice","hasOjsNotice","resultNoticeStatusInterval","setResultNoticeStatusInterval","startResultNoticeStatusInterval","interval","bzpEditable","DEMAND_ARCHIVING_RESOURCE_ID","getDemandArchiving","scheduleArchive","clearDemandArchiving","ArchivingStatus","demandArchiving","ArchivingService","downloadArchive","archiveUrl","archivingStatus","demandNumber","demandName","orderDate","getButton","FINISH_DEMAND_RESOURCE_ID","getFinishDemand","backToOfferEvaluation","clearFinishDemand","backToResultNotice","withdrawalNoticeDate","unpublishDate","cancelDemand","initialDate","FinishDemandService","exPostButton","exPostBackButton","backConfirm","setBackConfirm","backToResultConfirm","setBackToResultConfirm","unpublishDatePopup","setUnpublishDatePopup","ProcedureStatusValues","ProcedureStatusLabels","canCancel","ojsResultNoticeSent","canBackState","canBackToResultNotice","canSetWithdrawalNoticeDate","DEMAND_PLAN_REALIZATIONS_RESOURCE_ID","valuesTouched","CalcIcon","WorkableIconCalcButton","NetGrossCalcPopup","setNetValue","setGrossValue","setOptionValue","setOtherValue","notSelected","otherVatValue","handleOtherChange","NetGrossCalc","calcOpen","setCalcOpen","noValues","cancelColumn","valueInput","DemandPlanRealizationRow","realization","isCancelled","dealingName","planItemName","planItemNumber","partName","DemandPlanRealizationTable","demandPlanRealizations","realizationId","DemandPlanRealizationService","realizationValue","mp_4_result_notice","ResultNoticePanel","mp_4_finish_documents","FinishDocumentsPanel","mp_4_demand_plan_realization","mp_4_finish_demand","FinishDemandPanel","mp_4_archiving","ArchivingPanel","mp_4_finish_additional_info","objectId","panelsValidationKeys1","panelsValidationKeys3","panelsValidationKeys4","validateAfterSave","sectionIndex","openForm","openImporter","historyOpen","setHistoryOpen","validationObj","hasPlanItems","isOpenForm","FormElement","initialPickDateInsteadOfPeriod","radioId","dateId","conditionalValue","getRadioValues","periodValues","SCHEDULE_RESOURCE_ID","_prepareData","offerEndDate","bindWithOfferPeriodOrDate","isDate","pickDateInsteadOfPeriod","period","schedules","Deadlines","scheduleList","ScheduleService","offerOpenDateClone","getPickDateInsteadOfPeriod","stageNumber","questionEndDate","errorObj","errorId","erId","DeadlinesEdit","memnerId","titleKey","descriptionKey","e1","e2","e3","e4","getInitValues","espdList","s1","s2","s3","s4","elements2","n1","true","false","ESPD_LIST_RESOURCE_KEY","_formatSingleEspd","qualifications","selection","declaration","_formatData","separateForEachDealing","espds","separate","force","onBuyerTypeChanged","buyerTypes","selectItems","arrow","noCheckbox","isChecked","checkedValue","descArr","titleComponent","AllElements","AllSections","sectorBuyer","exclusionValues","EspdBooleanItems","setConfirmPopupData","defaultConfirmData","JEDZFormContent","handleJedzTypeChange","sectionCompleted","confirmPopupData","isSectorBuyer","buyerType","handleBuyerTypeChanged","newBuyerType","fieldPath","separateForDealing","demandSectorBuyer","espdBuyerType","dealingIdPrefix","dealingSectorBuyer","EspdService","exportTemplate","JEDZ","typeChanged","getSingleJedzValue","noticeReferenceNumber","getExInitValues","getSeInitValues","orgName","orgCountry","searchForBooleanValue","searchedBooleanValue","findBooleanValue","initVal","getEspdVSObject","qualiOk","buyerTypeOk","estimatedNetValueId","warningThreshold","isWarning","guaranteeValue","estimatedNetValue","setWarning","wadiumColumn","createItems","GUARANTEE_LIST_RESOURCE_ID","GuaranteeService","IconExternalSignButton","LocationDisabledIcon","LocationSearchingIcon","nipColumn","ContractorTable","handleExternalSign","showJoinDate","showExternalSignColumn","externalOfferSign","invitationDate","joinMethod","joinDate","NOTICE_LINK_RESOURCE_ID","NOTICE_PREVIEW_RESOURCE_ID","getLink","getPreviewUrl","noticeLink","NoticeService","BZP_CONTRACT_NOTICE_STATUS","reqSectionsError","errorSections","NationalNoticeService","_FIRST_PUBLICATION_RESOURCE_ID","checkPublishOjs","publishExPost","clearOjsStatus","markFirstPublication","isFirstPublication","wasPublished","PublishSection","isPublishActive","isCancelActive","moveToOfferCollection","classesRoot","clearPublishResources","openCancelModificationPopup","setOpenCancelModificationPopup","openPublishPopup","setOpenPublishPopup","showPublishLimitUsedAlert","setShowPublishLimitUsedAlert","handleConfirmCancelModification","handleConfirmPublish","PublishService","ojsPublicationStatus","bzpContractNoticeStatus","getUncompletedSections","NationalNoticeStatus","minusMargin","noticePreview","isPublicOjsActive","isPreviewOjsActive","checkNoticeStatus","handleRollback","isPreviewActive","isPreviewNoticeActive","isOjsProcessing","uncompletedSections","isBzpPublishActive","isBzpProcessing","isPreparing","competitivenessBaseLink","focus","isNoticeAvailable","bzpNotice","isBzpNoticeAvailable","previewNoticeDisabled","PP_REQUIRED_GROUPS","MO_REQUIRED_GROUPS","MMiA_REQUIRED_GROUPS","ezWorking","setEzWorking","noticeStatusInterval","setNoticeStatusInterval","compareSection","hasBzpNotice","startNoticeStatusInterval","isPublishButtonActive","isCancelModificationButtonActive","isPreviewButtonActive","isPreviewNoticeButtonActive","finishButton","openGoToFinishPopup","setOpenGoToFinishPopup","isDemandFinish","mp_1_demand","Demand","mp_1_dealings","Dealings","mp_1_schedule","Schedule","mp_1_commission","Commission","mp_1_espd","Espd","mp_1_siwz","Siwz","mp_1_guarantee","Guarantee","mp_1_contractor","Contractor","mp_1_notice","Notice","mp_1_national_notice","NationalNotice","mp_1_publication","Publication","mp_1_ex_post_go_to_finish","mp_1_preparing_papers_generator","PreparingPapersGenerator","mp_1_preparing_additional_info","mp_1_questionnaire","questionnaireTabUrl","redirectOldPlatform","panels","doHandleClick","_doHandleClick","doHandleClickWithDraftSave","sectionStatus","Component","DemandRelatedObjects","rels","DemandRelatedObjectsPopup","relatedObjectServiceFunction","rel","setRel","purchaseRequests","demands","rfxPrivileges","relatedObjectPopup","setRelatedObjectPopup","openDemandPublicLinkPopup","setOpenDemandPublicLinkPopup","isModification","isNew","isDemandNew","isExPost","isOfferCollection","handleModifyClick","updateDemandNumber","hasPurchaseRequests","ListIcon","demandPublicLink","showUpdateNumber","EDIT","RefreshIcon","getNavigationBarButtons","stepsFiltered","URLSearchParams","isInitialHidden","filterSteps","Workspace","fullHeight","rootRef","topOffset","setTopOffset","useNodeTopPosition","nodeRef","withTheme","titleAdditional","RESOURCE_ID","getSuppliers","rfxSupplier","changeExternalSign","suppliers","suppliers2","clearSuppliers","RfxSupplierService","supplierLoading","setSupplierLoading","externalOfferSignConfirm","setExternalOfferSignConfirm","numberOfSuppliers","ADD_CONTRACTOR","circle","transformOrigin","stroke","ProgressRing","percent","radius","circumference","PI","offset","ring","strokeWidth","cx","cy","strokeDasharray","strokeDashoffset","RingCountdown","duration","baseDuration","setDays","setHours","setMinutes","seconds","setSeconds","baseDays","setBaseDays","durationLeft","setDurationLeft","setPeriods","dayPercent","hourPercent","minutePercent","secondsPercent","getTime","newSeconds","intervalFunction","StatisticSection","durations","setDurations","nowTime","asSeconds","startTime","offerStartDate","startNumber","summary","summaryContent","summaryButton","summaryGrid","gridItemCommon","gridItemButton","iconWait","iconWaitOptional","iconFinish","ExpansionProgressPanel","queue","progressAtlText","showProgress","buttonDisabled","onButtonClick","alwaysExpanded","IconWait","PlaylistAddRoundedIcon","ErrorIcon","IconFinish","PlaylistAddCheckRoundedIcon","summaryExpanded","expandIcon","onFocus","rfxOfferDecryptionStatus","setProgress","progressInterval","statusInterval","startProgressInterval","startOfferDecryptionStatusInterval","decryptionEnabled","warnings","getDetails","streamPlatformLabel","sessionOnlineStatus","getTypeElements","streamPlatforms","platform","sessionOnline","onlineSession","editPopupOpen","setEditPopupOpen","EditSessionOnlinePopup","dealingsRealizationValueStatus","curOfferCount","serviceMethod","processPublishUnpublish","handleCancel","handlePublish","realizationOfferAmountPublished","notFilledCount","onlineSessionStatus","isOfferDecryption","offerOpenTimeout","offerDeadline","sent","setSent","getEmailsTab","emailValidator","invalidEmails","isValidSync","fp","Tile","numberText","dangerouslySetText","mirror","tile","TilesRow","offerCollectionOrModification","numberOfUnreadMessagesFromSuppliers","numberOfMessagesFromSuppliers","operatorQnALink","handleCorrespondenceClick","numberOfAttachments","numberOfEmails","getPoll","savePollRating","rating","ratings","PollNpsSwitch","scoreChange","Poll","setPoll","PollService","rate","objectType","refreshStats","setRefreshStats","resendInvitationPopupOpen","setResendInvitationPopup","firstPublication","setFirstPublication","intervalId","loadingInProgress","offerCollection","handlePrevClick","RESEND_INVITATION","changePublication","realizationValuePublished","realizationValuesPopupOpened","setRealizationValuesPopupOpened","p2","p1","p3","p4","CORRESPONDENCE","ForumIcon","showUpdateRealizationValue","stepsMemo","OrganizationsSelect","onChipClick","chipTitle","Autocomplete","noOptionsText","getOptionLabel","filterSelectedOptions","disableCloseOnSelect","ChipProps","renderInput","CorrespondenceEmailList","contractorNameBuilder","recipient","toggleButton","ctrEmailList","ctrEmailListTitle","setSendType","withOfferSwitch","setWithOfferSwitch","contractorEmailList","setContractorEmailList","contractorListForSelect","hasOffer","contractorInRoundList","handleSaveResponse","handleSendResponse","saveResponse","chipClick","ctr","innerText","supplierRecipientIds","recipients","withOffer","onChangeWithOffer","InfoIcon","AddThreadAsSupplierForm","sender","MessageEmailDeliveryPopup","deliveryList","setDeliveryList","invitedSupplier","getStatusCellContent","Mail","MailOutline","deliveryDate","recipientsRoot","Message","hasEdit","emailDeliveryRecipient","setEmailDeliveryRecipient","verificationWorking","setVerificationWorking","buyerAsContractorUser","showVerifyLimitUsedAlert","setShowVerifyLimitUsedAlert","showEmailDelivery","getRecipient","firstEmailDeliveryDate","firstReadDate","linkToSection","threadsAfterEndDate","autoSave","updateMessage","deleteMessage","currentActive","availableRecipients","doAutoSave","rec","createConfirmObject","confirmFn","cancelFn","confirm","actionWrap","PublishMessageConfirmationPopup","publishMessageInfo","autoSaveSemaphore","setPublishMessageInfo","messageOut","holdSetWorking","isSaveRespValid","sendResp","publishResp","cancelPublish","delResp","abortEarly","autoSaveDebounced","correspondencePrivileges","addInProgress","setAddInProgress","summaryRoot","summaryItem","subjectExpanded","hasUnread","redFlag","Thread","onThreadSelectChange","selectedThreads","redFlagWorking","setRedFlagWorking","loadingMessagesWorking","setLoadingMessagesWorking","threadSelected","selectThreadChange","scrollToMessage","doScrollToMessage","flagClick","FlagRoundedIcon","OutlinedFlagRoundedIcon","chip","chipSupplier","chipSubject","threadsList","processMessage","getChips","selectedThreadsIds","reqMessage","shareButton","addAsSupplierOpened","setAddAsSupplierOpened","addPopupOpened","setAddPopupOpened","bulkPopupOpened","setBulkPopupOpened","setSelectedThreads","printWorking","setPrintWorking","shareWorking","setShareWorking","printCorrespondence","printPromise","hasSelected","getPrintButton","getShareButton","chipsGrid","dateTo","CorrespondenceSearch","parsed","parsedFiltered","n","dat","getInitValue","setContractorListForSelect","valueFilteredForSearch","prepareContractorList","respList","handleChangeDate","handleKeyUp","newFlag","threadsBeforeEndDate","correspondenceCheckTime","loadingNewInProgress","searchSelected","setSearchInProgress","setBefore","checkNewMessages","searchPromise","CorrespondencePanel","EMAIL_LIST_RESOURCE_ID","EMAIL_LIST_ACTIONS_RESOURCE_ID","EmailListSearch","handleKeyPress","EmailDeliveriesTable","secContent","preLine","previewBox","previewHtml","previewNoHtml","EmailDetailsPopup","detailed","emailDetails","setEmailDetails","EmailListService","cc","bcc","html","srcDoc","deliveries","recColumn","tooltipContent","recContent","more","emailListActions","exportWorking","setExportWorking","exportEmailList","getHeaders","getColumnClasses","EmailListPanel","NoticeTextInput","inputWithButton","BasicData","updateNotice","gId","defaultVal","getDynamicDict","loadDynamicDictionaries","bzpNumber","NoticeTypography","formTrKey","PurchaserDataTogetherList","removePurchaser","ExposureNeg1Icon","pe","ne","deepEq","PurchaserDataTogether","purchaserData","together","PlusOneIcon","addPurchaser","PurchaserDataEntrusted","PurchaserData","FormNavigator","onSave","onCreateNewVersion","memoItems","curStep","lastSave","ArrowIconLeft","ArrowIconRight","newVersion","draft","contractNoticeStepsOrder","strip","orderDealing","primaryDealing","partnershipDealing","refersTo","partialOffers","realization_primary_1","realization_primary_2","realization_primary_3","realization_partnership_2","primaryRealizationType","criteriaValidator","criteriaWeightStrategy","qualityCriterionType","criterionName","criterionPctgWeight","criterionPktWeight","criterionOrder","primaryLotValidator","lot","negotiationsPossible","evaluationMethodDescription","criteriaEvaluationStrategy","evaluationSocialAspects3","evaluationSocialAspects3Info","evaluationSocialAspects12","evaluationSocialAspects12Info","partnershipLotValidator","nonNegotiableRequirements","refersToSocialServices","tenderPlanRelated","tenderPlanNumber","tenderPlanItemIdentities","onlyArt94Suppliers","art94Suppliers","onlyArt361Suppliers","ueFunded","ueProgramName","phoneNumber","faxNumber","typeOther","activitySubject","activitySubjectOther","togetherCount","togetherDuties","togetherRegulations","branch","nationalIdNumber","street","nuts3","phone","fax","www","entrusted","orderRealizationType","frameworkRealizationType","documentsAccess","ezamowieniaDemand","restrictedAccess","restrictedAccessInfo","electronicOffersOnly","electronicOffersInfo","electronicOffersRequirements","toolsWww","toolsNotWidelyAvailable","notWidelyAvailableToolsInfo","offerCatalog","notElectronicOffersReason","notElectronicOffersMethod","offerLang","rodoInfo","rodoLimitations","offerCatalogUsage","orderObject","marketConsultations","dividedIntoLots","lotsValueNet","lotsValueNetCurrency","orderValueNet","orderValueNetCurrency","frameworkAgreementValueNet","frameworkAgreementValueNetCurrency","dealingCount","offerType","dealingLimited","dealingLimitPerSupplier","socialAspectsConsidered","socialAspects","notDivided","purchaserNeedsDescription","innovationProductNeed","orderSubjectDescription","mainCpv","additionalCpv","includesOptions","includesOptionsInfo","realizationPeriod","realizationPeriodDateFrom","realizationPeriodDateTo","realizationPeriodAmount","planRenewals","planRenewalsInfo","planOtherOrderForCurrentSupplier","planOtherOrderForCurrentSupplierInfo","divided","dealingValue","dealingValueCurrency","qualification","predictedExclusion","predictedExclusionInfo","participationConditions","participationConditionsInfo","art125Statement","inclusionSubjectiveEvidence","exclusionSubjectiveEvidence","objectiveEvidence","objectiveEvidenceInfo","plansEvidence","plansEvidenceInfo","otherDocumentsList","orderTerms","variantsAllowed","variantsAllowedInfo","auctionPlanned","auctionUrl","auctionPlannedInfo","guaranteeRequired","guaranteeRequiredInfo","properExecutionGuarantee","togetherRequirements","possibleDemandInvalidation","contractDraft","advancePayment","advancePaymentInfo","contractChanges","contractChangesInfo","socialAspectsInfo","orderDetails","frameworkAgreement","suppliersNumber","suppliersNumberLimited","suppliersNumberLimit","art314Order","periodExceedInfo","offerSubmitPlace","bindWithOffer","bindWithOfferDays","bindWithOfferDate","maxSupplierNumber","limitSuppliersNumberInfo","noNegotiationsTermsDescription","primaryLots","primaryNoLots","partnership","phasedNegotiations","suppliersLimited","suppliersLimitedInfo","criteriaComplianceDeclaration","criteriaComplianceList","minSuppliersCount","maxSuppliersCount","partnershipLots","partnershipNoLots","additionalInfo","RealizationTypeData","DocumentsAccessData","NoticeCpvInput","NoticeDateInput","OrderObjectNotDivided","DealingsNavigator","addPart","onlyNotice","OrderObjectDivided","removePart","OrderObjectDividedList","OrderObjectData","basicDataRefersTo","QualificationData","ObjectiveEvidenceData","OrderTermsData","ContractDraftData","OrderDetailsFrameworkAgreement","OrderDetailsLotCriterion","removeCriterion","deleteAvailable","CRITERION_TYPE","COST","QUALITY","OrderDetailsPrimaryLot","lotNumber","realizationTypeX11","realizationTypeX12","realizationTypeX13","addAvailable","strategy","newCriterions","getDefaultCriteria","addCriterion","NoticeDateTimeInput","OrderDetailsPrimary","dateTimeInput","OrderDetailsPartnership","OrderDetailsPartnershipLot","OrderDetailsData","realization_x_1_1","realization_x_1_2","realization_x_1_3","realization_1_2","curPrimaryDealingIndex","curPartnershipDealingIndex","AdditionalInfoData","collapse","confirmRemove","setConfirmRemove","navigateToError","errorpath","formikPath","createNewVersion","deleteLastVersion","canLoadDynamicDictionaries","_passive","_onlyNotice","_updateNotice","contractNoticeValidation","ezamowieniaErrors","casted","isString","XmlUzpPresidentPaper","NationalNoticePage","NationalNoticePanel","PartsRouter","Part1","Part2","Part3","Part4","Page","floatingWorkspace","mixins","InfoData","headerData","procedureTypeTr","demandRealizationTypeTr","linkRow","IconAfter","titleWrapped","attach","openDelete","setOpenDelete","stepsId","extendFindSectionEditable","isDeleteActive","isInvalidationActive","CancelOutlinedIcon","InfoBar","setAttach","infoContainer","borderColor","borderStyle","currentText","borderBottomWidth","StageElement","thin","gridItem","label2","stageClick","preparing","offerDecryption","evaluation","StepperPages","SearchInput","hadleClick","SearchBar","setFilters","filters","getObj","WorkableIconDuplicateButton","DuplicateIcon","numberColumn","oneLine","Started","openDeleteId","setOpenDeleteId","openCloneId","setOpenCloneId","usePathParams","DemandsService","fetchData","getSortProps","handleSortChange","hasClone","hasDelete","headerClasses","datePublish","deadlineForOffers","createDeleteButton","createCloneButton","stepOne","stepTwo","stepThree","stepFour","oldSystemUrl","handleEnterDemand","handleClone","HomeRoute","exact","MyProcedureHome","MyProcedure","rps","openedSectionParam","openedSection","mainSectionName","stageSection","emailListAvailable","hasDemand","newReloadTimeout","PurchasingGroupStageNr","PurchasingGroupStagesRouter","PurchaserGroupInfoBar","purchaserGroupHeader","createStageBarElement","historyPush","StageBarCommon","PurchasingGroupStatus","DATA_COLLECTION","REALIZATION","PurchasingGroupStatusLabel","stageBarElements","elems","lastStageStarted","PurchasingGroupSearch","PurchasingGroupList","purchasingGroupList","setPurchasingGroupList","setActions","goToGroup","hasAdd","dateModified","PurchasingGroupMemberList","getTemplatesList","getTemplateListHasEdit","cloneTemplate","deleteTemplate","activateTemplate","deactivateTemplate","WorkableIconDeactivateButton","ToggleOnIcon","WorkableIconActivateButton","ToggleOffIcon","PurchasingGroupTemplatesList","templatesList","setTemplatesList","setHasEdit","workingIds","setWorkingIds","PurchasingGroupTemplateService","goToTpl","clearWorkingId","doDeactivate","doActivate","doClone","IconDragButton","DragIndicator","SortableHandle","SortableHandleComponent","RadioGroupYesNo","yesNo","ol","paddingInlineStart","PurchasingGroupTemplateField","setAggregatedFieldId","aggregatedFieldErrorValue","allFields","updated","newAllFields","aggregatedFields","fieldsList","setFieldsList","curSelected","fieldsListTmp","uniqueIds","PurchasingGroupTemplateForm","aggregatedFieldId","fieldsErrorValue","newFields","back","bar","tpl","setTpl","testContext","PurchasingGroup","PurchasingGroupTemplate","PurchasingGroupStages","getRegistrationsList","acceptRegistration","rejectRegistration","getRegistration","getAvailableOrgs","getRegistrationOrganization","saveRegistrationOrganization","RegistrationStatusLabel","NEW","ACCEPTED","REJECTED","RegistrationsSearch","initSearch","organizationNameColumn","RegistrationsList","registrationsList","setRegistrationsList","RegistrationService","decisionDate","goToRegistration","InfoEntry","rejectionReason","representativeGrid","EMPTY_REPRESENTATIVE","registrationId","onCreate","setWrapper","externalId","nip","representatives","representativesTitleDictionary","representativesRoleDictionary","OrganizationUnitRepresentative","removeRepresentative","addRepresentative","backGrid","registration","setRegistration","setAvailableOrganizations","rejectPopup","setRejectPopup","addOrgPopup","setAddOrgPopup","emailAlreadyUsed","orgs","goToList","RemoveCircleIcon","notes","decisionUser","curRoles","roles","availableRoles","attrKeys","availableAttributes","attrKey","initAttr","rest","selectOrganization","Admin","UserRegistration","TitleComponent","popupConfig","passwordInfo","setPasswordInfo","setPassword","passwordError","setPasswordError","onStorePassword","messageHtml","OfferSections","oldPlatformOfferTabUrl","demandStagesList","stageTranslations","setStageTranslations","getStageTranslation","PurchaserScenesRouter","PurchaserOfferPanel","setContextSection","PurchaserDemand","PurchaserPreviewPanel","PurchaserStepperPages","AnnualReportStatus","DRAFT","SENDING","SENT","APPROVED","APPROVED_MODIFIED","annualReportStatusTr","ANNUAL_REPORT_TABLES_RESOURCE_ID","ANNUAL_REPORT_LIST_RESOURCE_ID","ANNUAL_REPORT_RESOURCE_ID","getAnnualReportList","getAnnualReport","getAnnualReportFormValues","markDraft","getAnnualReportListAvailableOrgs","addAnnualReport","getAnnualReportPrevVersions","sendAnnualReportToEzamowienia","submitAnnualReportToEzamowienia","correctAnnualReportToEzamowienia","downloadAnnualReportPdfFromEzamowienia","saveAnnualReportTableEntry","reportStep","currentType","distType","distArr","entry","moveAnnualReportTableEntry","tableEntryId","destination","formPart","deleteAnnualReportTableEntry","initializeTable","initializeTableFromPrevVersion","initializeTableEntry","saveAnnualReportForm","getAnnualReportDictionaries","getAnnualReportTranslations","AnnualReportsService","AnnualReportListTableRow","parentWorking","correct","prevVersions","setPrevVersions","goToReport","ezamowieniaNumber","dateSend","AddBoxIcon","versionsTable","orgColumn","empty_object","reportsList","years","minYear","maxYear","annualReportSteps","belowEu","aboveEu","conflict","community","social","innovative","exception","notIncluded","annualReportStepsOrder","annualReportTablesWithInitialize","tableCell","tableCellBorderRight","tableCellBorderLeft","borderLeft","variantRow","variantRow2","demandsRow","lightGreen","lightRed","demandsCell","demandsTable","addCell","sectionErrorIcon","tableMainHeaderRow","noOptions","moveEntryRadio","exceptionName","AnnualReportNavigator","onCurStepChange","onSendToEzamowienia","onSubmitInEzamowienia","AnnualReportNoticeSource","BZP","TED","dataLoaded","purchaserPartName","purchaserIdentifier","purchaserType","purchaserOtherType","purchaserActivityType","purchaserStreet","purchaserCity","purchaserCode","purchaserProvince","purchaserCountry","purchaserUrl","issueNumber","noticeNumber","codeCPV","tenderMode","contractorCountryList","contractValue","numberOfAwardedLots","numberOfRejectedOffers","numberOfOffersSubmittedByMMSP","contractAwardedToMMSP","codeCpv","tenderModeBzp","tenderModeTed","numberOfCasesOfConflictOfInterest","numberOfDetectedAgreements","numberOfContractorsWithRejectedOffer","serviceDescription","reservedTender","numberOfOffersMMSP","inDescriptionRequirementsForAccessibility","definedSocialAspectsInOfferEvaluationCriteria","definedRequirementsBasedOnEmploymentRelationship","definedSocialAspectsRequirements","definedLabelRelatedToSocialAspects","contractorType","environmentalRequirements","environmentalManagementSystemAndStandards","environmentalAspectsInEvaluationCriteria","costCriterionUsingLifeCycleCostingApplied","environmentalAspectsRequirements","labelRelatedToEnvAspectsOrMeasureOfEvidence","innovativeAspectsInEvaluationCriteria","innovativeAspectsRequirements","AnnualReportPurchaserForm","setFrom","submitSemaphore","annualReportValidation","isRequired","bool","AnnualReportTableCell","annulaReportClasses","getAnnualReportEditPopup","newEntry","autoValidate","AnnualReportEditPopup","FormComponent","reload","scrollContainer","scrollToContainer","ReplayIcon","AnnualReportAboveEuEditForm","formatBoolean","formatInteger","AnnualReportSearchBar","setEditPopup","AnnualReportTableHeadCell","getMoveAnnualReportEntryConfig","inputLabel","WorkableIconErrorButton","AnnualReportTablePart","setMovePopup","columnCount","getRowValues","hasIncomplete","setHasIncomplete","entriesFilteres","changeComplete","incompleteEntry","incomplete","RadioButtonUncheckedIcon","SwapVerticalCircleIcon","columns","AnnualReportAboveEuForm","dictTranslations","editPopup","movePopup","AnnualReportBelowEuEditForm","AnnualReportBelowEuTablePart","entriesCounted","setEntriesCounted","worksCount","worksAmount","deliveriesCount","deliveriesAmount","servicesCount","servicesAmount","AnnualReportSteps","AnnualReportBelowEuForm","AnnualReportConflictEditForm","annualReportTenderMode","AnnualReportConflictForm","AnnualReportCommunityEditForm","AnnualReportCommunityForm","AnnualReportSocialEditForm","AnnualReportSocialForm","AnnualReportInnovativeEditForm","AnnualReportInnovativeForm","AnnualReportExceptionEditForm","AnnualReportExceptionTablePart","exceptions","AnnualReportExceptionForm","AnnualReportNotIncludedEditForm","agreementStateId","AnnualReportNotIncludedTablePart","AnnualReportNotIncludedForm","doItems","trMap","oneLevel","dictToTranslationMap","dict","AnnualReportError","getMapKeys","iterator","getTranslatedErrorsView","translatedErrors","getErrors","errorsDescribed","described","wholeKey","subKey","getDescribedErrors","ReloadAnnualReportTableFromPrevVersionButton","ReloadAnnualReportTableButton","initFormValues","currentForm","setDictTranslations","setCurStep","newStep","pdf","dictTr","previewUrl","AnnualReport","AnnualReportsList","AnnualReportPage","PurchaserRouter","notificationSend","img","confirmationMessage","clearSalesNotification","setProcessed","handleCloseDialog","SalesService","ConfirmThreeButtons","onSecondConfirm","labelSecondConfirm","confirmCloseStepper","clearConfirmCloseStepper","openQuestion","FeedbackContentOpen","openQuestionRef","setScore","sendPool","answer","FeedbackContentClosed","showTimeout","nextPollDate","nextPoll","confirmationWindow","setConfirmationWindow","authWindowInterval","authWindow","ezamowieniaOauthRef","callbackUrlRef","closeWindow","openWindow","closed","callFail","authorized","authorizationUrl","logoutUrl","userInfo","callbackOrigin","missingRoles","groups","continueEnabled","organization_role","given_name","family_name","PurchaserRoot","Browser","ieOpen","setIeOpen","CtrCorrespondencePanel","ContractorClock","dashboardSection","setEndTime","secondEndTime","setSecondEndTime","clockTitle","setClockTitle","noOfferStage","secondEnd","offerSecondEndDate","cancelled","isSameOrAfter","setupDuration","highlight","OfferTilesRow","digitalSignCheckUrl","publicKnowledgeBaseUrl","messagesCount","getMessagesLabel","infoMsg","setDashboardSection","offerOutOfDateDueToRfxModification","CtrScenesRouter","CtrOfferPanel","loadExternalLibrary","existingScript","getElementById","script","onload","onabort","SUPPORTED_SIG_TYPES","isSupportedSigType","Szafir","setSignatureType","loadedLibrary","startComponentURIErrorCalback","onLoadError","onConfigError","onErrorNoExtension","onErrorNoHostApp","taskListErrorCallback","resultTaskList","successLoadSzafir","SZAFIR_SDK","startComponentURI","startComponentURISuccessCalback","signatureFormat","dataEmbedding","makeTaskList","getTaskList","taskList","doTaskList","taskListSuccessCallback","xmlDoc","jQuery","parseXML","attr","desc","resultCode","descriptionCode","loadSzafir","sdk_location_url","versions_file","debug","ExternalSignature","setFile","handlePlaceOffer","ExternalSignatureWrapper","supported","setSupported","setEncryptionRoundId","Signature","setSigType","selectedType","CtrDemand","CtrStepperPages","ContractorRoot","Router","WelcomeTutorial","TourTooltip","primaryProps","tooltipProps","isLastStep","onEnd","changePage","disableBeacon","Tutorial","setStep","run","setRun","handleEndTour","TEST","EVENTS","STEP_AFTER","TARGET_NOT_FOUND","ACTIONS","PREV","SKIPPED","PAUSED","tooltipComponent","stepIndex","disableOverlayClose","continuous","styles","SaveDialog","showDelete","setIsChecked","Save","useInterval","delay","setIntervalId","savedCallback","Session","timeLeft","setTimeLeft","utc","registerPopup","objKey","authorizeCounter","setRedirectFunc","setRedirectWithoutHistoryFunc","isNewToken","setIsNewToken","firstLoad","canRender","setCanRender","isTokenValid","setIsTokenValid","token","atob","ClientService","UserNavigationService","clearConfirmNotification","clearAlertNotification","loadingScreen","lg","useInitialize","maxSnack","anchorOrigin","horizontal","enrichTheme","isLargeText","appConfig","colors","basicColorLight","basicColorLightDarken","basicColorDark","basicColorDarkDarken","applayClientColors","baseThemeRes","createTheme","baseTheme","overrideTheme","fontFamily","num","lineClamp","disabledBackground","gray","chips","MuiTooltip","overrides","MuiAppBar","colorDefault","MuiAccordion","MuiInput","underline","inputBorder","MuiListItem","MuiButton","outlinedPrimary","containedPrimary","containedSecondary","textSecondary","outlinedSecondary","MuiRadio","colorPrimary","MuiToggleButton","alpha","pointerEvents","MuiTableCell","MuiPaginationItem","textPrimary","MuiPickersModal","dialogRoot","MuiInputAdornment","positionEnd","MuiTreeItem","iconContainer","MuiChip","outlined","transitionProp","easing","sharp","leavingScreen","topOffsetExpanded","enteringScreen","ThemeProvider","App","utils","MomentUtils","hostname","ReactDOM","serviceWorker","ready","unregister"],"mappings":"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","file":"static/js/main.42bc632a.chunk.js","sourcesContent":["export default {\r\n\tCLOSED: 'c',\r\n\tLOADING: 'l',\r\n\tDIALOG: 'd',\r\n\tDELETE: 'r',\r\n\tERROR: 'e',\r\n\tINFO: 'i',\r\n}","\r\nfunction getCookie(cname) {\r\n let name = cname + \"=\";\r\n let ca = document.cookie.split(';');\r\n for(let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) === ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) === 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport const getLocale = () => {\r\n return getCookie(\"locale\") || \"pl_PL\";\r\n}","import pl from './pl_PL.json'\r\nimport en from './en_EN.json'\r\nimport {getLocale} from \"libs/locale\";\r\n\r\n\r\nconst Tr = (key, obj, translateObj = false) => {\r\n const localeTr = getLocale() === \"en_EN\" ? en : pl;\r\n\r\n let tr = localeTr[key];\r\n if (tr === undefined) {\r\n if (process.env.NODE_ENV === 'development') {\r\n console.warn(`Key \"${key}\" not exist in translation`);\r\n }\r\n return key\r\n }\r\n if (obj) {\r\n for (let k in obj) {\r\n const find = `{{${k}}}`\r\n tr = tr.replace(new RegExp(find, 'g'), translateObj ? Tr(obj[k]) : obj[k])\r\n }\r\n }\r\n return tr;\r\n};\r\nexport default Tr;","import saveStatusValues from 'constants/status.save'\r\n\r\nfunction action(type, payload) {\r\n return {\r\n type,\r\n payload,\r\n }\r\n}\r\n\r\n//RESOURCE\r\n\r\nexport function setResource(id, value) {\r\n return action('SET_RESOURCE', {id, value})\r\n}\r\n\r\nexport function clearResource(id) {\r\n return setResource(id, undefined);\r\n}\r\n\r\nexport function addObjectResource(id, key, value) {\r\n return action('ADD_OBJECT_RESOURCE', {id, key, value})\r\n}\r\n\r\nexport function addObjectResources(id, keyValuePairObject) {\r\n return action('ADD_OBJECT_RESOURCES', {id, keyValuePairObject})\r\n}\r\n\r\n//PRIVILEGE\r\n\r\nexport function setPrivileges(id, value) {\r\n return action('SET_PRIVILEGES', {id, value})\r\n}\r\n\r\nexport function clearPrivileges(id) {\r\n return setPrivileges(id, undefined);\r\n}\r\n\r\n//SIGNATURE\r\n\r\nexport function setSignature(id, value) {\r\n return action('SET_SIGNATURE', {id, value})\r\n}\r\n\r\nexport function clearSignature(id) {\r\n return setSignature(id, undefined);\r\n}\r\n\r\n//STORE\r\n\r\nfunction __setStoreValue(id, value) {\r\n return action('SET_STORE_VALUE', {id, value})\r\n}\r\n\r\nfunction __setStoreMultiValue(obj) {\r\n return action('SET_STORE_MULTI_VALUE', obj)\r\n}\r\n\r\nexport function setRedirectWithoutHistoryFunc(func) {\r\n return __setStoreValue('redirectReplace', func)\r\n}\r\n\r\nexport function setRedirectFunc(func) {\r\n return __setStoreValue('redirect', func)\r\n}\r\n\r\nexport function setClientColors(value) {\r\n return __setStoreValue('clientColors', value)\r\n}\r\n\r\nexport function setContrastColors(value) {\r\n return __setStoreValue('contrast', value)\r\n}\r\n\r\nexport function setLargeText(value) {\r\n return __setStoreValue('largeText', value)\r\n}\r\n\r\nexport function setMenuOpen(value) {\r\n return __setStoreValue('isMenuOpen', value)\r\n}\r\n\r\nexport function setSalesNotification(salesNotification) {\r\n return __setStoreValue('salesNotification', salesNotification)\r\n}\r\n\r\nexport function clearSalesNotification() {\r\n return setSalesNotification(undefined)\r\n}\r\n\r\nexport function setEzamowieniaOauth(ezamowieniaOauth) {\r\n return __setStoreValue('ezamowieniaOauth', ezamowieniaOauth)\r\n}\r\n\r\nexport function clearEzamowieniaOauth() {\r\n return setEzamowieniaOauth(undefined)\r\n}\r\n\r\nexport function setConfirmCloseStepper(handleConfirm, sectionName, handleSecondConfirm) {\r\n return __setStoreValue('confirmCloseStepper', {handleConfirm, sectionName, handleSecondConfirm})\r\n}\r\n\r\nexport function clearConfirmCloseStepper() {\r\n return __setStoreValue('confirmCloseStepper', undefined)\r\n}\r\n\r\nexport function setConfirmNotifications(confirmNotification) {\r\n return __setStoreValue('confirmNotification', confirmNotification)\r\n}\r\nexport function clearConfirmNotification() {\r\n return setConfirmNotifications(undefined)\r\n}\r\n\r\nexport function setAlertNotifications(alertNotification) {\r\n return __setStoreValue('alertNotification', alertNotification)\r\n}\r\nexport function clearAlertNotification() {\r\n return setAlertNotifications(undefined)\r\n}\r\nexport function setLoadingScreen(loadingScreen) {\r\n return __setStoreValue('loadingScreen', loadingScreen)\r\n}\r\nexport function clearLoadingScreen() {\r\n return setAlertNotifications(undefined)\r\n}\r\n\r\nfunction __setSaveStatus(value) {\r\n return __setStoreValue('saveStatus', value)\r\n}\r\n\r\nexport function setSaveStatusLoading() {\r\n return __setSaveStatus(saveStatusValues.LOADING)\r\n}\r\n\r\nexport function setSaveStatusDeleted() {\r\n return __setSaveStatus(saveStatusValues.DELETE)\r\n}\r\n\r\nexport function setSaveStatusClosed() {\r\n return __setSaveStatus(saveStatusValues.CLOSED)\r\n}\r\n\r\nexport function setSaveStatusDialog() {\r\n return __setSaveStatus(saveStatusValues.DIALOG)\r\n}\r\n\r\nexport function setSaveStatusInfo(message) {\r\n return __setStoreMultiValue({\r\n saveStatus: saveStatusValues.INFO,\r\n saveStatusMessage: message,\r\n })\r\n}\r\n\r\nexport function setSaveStatusError(errorMessage) {\r\n return __setStoreMultiValue({\r\n saveStatus: saveStatusValues.ERROR,\r\n saveStatusMessage: errorMessage,\r\n })\r\n}\r\n\r\nexport function setOpenTutorial(value = true) {\r\n return __setStoreValue('openTutorial', value)\r\n}\r\n\r\nexport function setInnerMenuOpen(obj) {\r\n return {\r\n type: 'SET_INNER_MENU',\r\n payload: obj\r\n }\r\n}\r\n\r\nexport function setOpenRegisterPopup(value = null) {\r\n return __setStoreValue('registerPopup', value)\r\n}\r\n\r\n//OPEN DEALINGS PARTS FORM\r\nexport function setOpenForm(value) {\r\n return __setStoreValue('openForm', value)\r\n}\r\n\r\n//OPEN DEALINGS IMPORTER FORM\r\nexport function setOpenImporter(value) {\r\n return __setStoreValue('openImporter', value)\r\n}\r\n\r\n// FORM\r\nexport function setForm(id, value) {\r\n return action('SET_FORM_SUBMIT_FUNC', {id, value})\r\n}\r\n\r\n// FORM VALUES\r\nexport function setFormValues(id, form, dirty) {\r\n return action('SET_FORM_VALUES', {id, form, dirty})\r\n}\r\n\r\n// FORM AUTO SAVE LOADED\r\nexport function setFormDraftLoaded(id, draftLoaded) {\r\n return action('SET_FORM_DRAFT_LOADED', {id, draftLoaded})\r\n}\r\n\r\nexport function clearFormValues(id) {\r\n return action('CLEAR_FORM_VALUES', {id})\r\n}\r\n\r\n//AUTHORIZE\r\nexport function setAuthorizeCounter() {\r\n return action('SET_AUTHORIZE_COUNTER');\r\n}\r\n\r\n//STEPPER\r\n\r\nexport function setStepperState(state = null) {\r\n return action('SET_STEPPER_STATE', state);\r\n}\r\n\r\nexport function setStepperStateCloseValidator(closeValidationFunction) {\r\n return action('SET_STEPPER_STATE_CLOSE_VALIDATOR', closeValidationFunction);\r\n}\r\n\r\nexport function clearStepperStateCloseValidator() {\r\n return setStepperStateCloseValidator(undefined)\r\n}\r\n\r\nexport function setStepperStateDeleteFormDraftFunction(deleteFormDraftFunc) {\r\n return action('SET_STEPPER_STATE_DEL_FORM_DRAFT_FUNCTION', deleteFormDraftFunc);\r\n}\r\n\r\nexport function clearStepperStateDeleteFormDraftFunction() {\r\n return setStepperStateDeleteFormDraftFunction(undefined)\r\n}\r\n\r\nexport function setStepperStateSaveFormDraftFunction(deleteFormDraftFunc) {\r\n return action('SET_STEPPER_STATE_SAVE_FORM_DRAFT_FUNCTION', deleteFormDraftFunc);\r\n}\r\n\r\nexport function clearStepperStateSaveFormDraftFunction() {\r\n return setStepperStateSaveFormDraftFunction(undefined)\r\n}","import reduxStore from 'redux/store'\r\nimport {compile} from 'path-to-regexp';\r\nimport {setMenuOpen} from 'redux/actions';\r\nimport querystring from 'querystring';\r\n\r\nexport const createPath = (route, params) => compile(route)(params);\r\n\r\nconst purchaserBaseRoute = \"/react\"\r\nconst purchaserBaseRoute2 = \"/purchaser\"\r\nconst contractorBaseRoute = \"/contractor\"\r\n\r\nconst root = {\r\n BASE: '/',\r\n}\r\n\r\nconst buyerPaths = {\r\n BUYER_INIT: purchaserBaseRoute,\r\n MY_PROCEDURE: purchaserBaseRoute + '/my-procedure',\r\n FAQ: purchaserBaseRoute + '/faq',\r\n PURCHASER_INIT: purchaserBaseRoute2,\r\n PURCHASING_GROUP: purchaserBaseRoute2 + '/purchasing-group',\r\n ANNUAL_REPORT: purchaserBaseRoute2 + '/annual-report',\r\n ADMIN: purchaserBaseRoute2 + '/admin',\r\n DEMAND: purchaserBaseRoute2 + '/demand',\r\n}\r\n\r\n\r\nconst ctrPaths = {\r\n CTR_INIT: contractorBaseRoute,\r\n CTR_DEMAND: contractorBaseRoute + '/demand',\r\n}\r\n\r\nconst ctrDemand = {\r\n\told: {\r\n\t\tCTR_DEMAND_CORRESPONDENCE_ID: ctrPaths.CTR_DEMAND + '/correspondence/:id(\\\\d+)'\r\n\t},\r\n\tsteps: {\r\n CTR_DEMAND_ID: ctrPaths.CTR_DEMAND + '/:id(\\\\d+)',\r\n CTR_DEMAND_ID_CORRESPONDENCE: ctrPaths.CTR_DEMAND + '/:id(\\\\d+)/correspondence',\r\n CTR_DEMAND_ID_OFFER: ctrPaths.CTR_DEMAND + '/:id(\\\\d+)/offer',\r\n CTR_DEMAND_ID_OFFER_STAGE: ctrPaths.CTR_DEMAND + '/:id(\\\\d+)/offer/stage',\r\n CTR_DEMAND_ID_OFFER_STAGE_ID: ctrPaths.CTR_DEMAND + '/:id(\\\\d+)/offer/stage/:stageId(\\\\d+)',\r\n CTR_DEMAND_ID_OFFER_STAGE_ID_SECTION:ctrPaths.CTR_DEMAND + '/:id(\\\\d+)/offer/stage/:stageId(\\\\d+)/:section'\r\n\t}\r\n}\r\n\r\n\r\nconst myProcedureSteps = {\r\n MP_1: buyerPaths.MY_PROCEDURE + '/1',\r\n MP_2: buyerPaths.MY_PROCEDURE + '/2',\r\n MP_3: buyerPaths.MY_PROCEDURE + '/3',\r\n MP_4: buyerPaths.MY_PROCEDURE + '/4',\r\n MP_CORRESPONDENCE: buyerPaths.MY_PROCEDURE + '/correspondence',\r\n MP_EMAIL_LIST: buyerPaths.MY_PROCEDURE + '/email-list',\r\n MP_NATIONAL_NOTICE: buyerPaths.MY_PROCEDURE + '/nationalNotice',\r\n}\r\n\r\nconst myProcedureStepsTabsEdit = {\r\n\tMP_1_ID: myProcedureSteps.MP_1 + '/:id(\\\\d+)?',\r\n\tMP_2_ID: myProcedureSteps.MP_2 + '/:id(\\\\d+)?',\r\n\tMP_3_ID: myProcedureSteps.MP_3 + '/:id(\\\\d+)?',\r\n\tMP_4_ID: myProcedureSteps.MP_4 + '/:id(\\\\d+)?',\r\n\tMP_CORRESPONDENCE_ID: myProcedureSteps.MP_CORRESPONDENCE + '/:id(\\\\d+)',\r\n\tMP_EMAIL_LIST_ID: myProcedureSteps.MP_EMAIL_LIST + '/:id(\\\\d+)',\r\n\tMP_NATIONAL_NOTICE_FORM_TYPE_ID: myProcedureSteps.MP_NATIONAL_NOTICE + '/:formType/:id',\r\n}\r\n\r\n\r\nconst myProcedure = {\r\n steps: {\r\n ...myProcedureSteps,\r\n ...myProcedureStepsTabsEdit,\r\n }\r\n}\r\n\r\nconst annualReport = {\r\n MP_ANNUAL_REPORT: buyerPaths.ANNUAL_REPORT,\r\n MP_ANNUAL_REPORT_YEAR_LIST: buyerPaths.ANNUAL_REPORT + '/year/:year(\\\\d+)',\r\n\r\n MP_ANNUAL_REPORT_REPORT: buyerPaths.ANNUAL_REPORT + '/report',\r\n MP_ANNUAL_REPORT_REPORT_ID: buyerPaths.ANNUAL_REPORT + '/report/:id(\\\\d+)',\r\n MP_ANNUAL_REPORT_REPORT_ID_TABLE: buyerPaths.ANNUAL_REPORT + '/report/:id(\\\\d+)/:table',\r\n}\r\n\r\nconst purchasingGroup = {\r\n //bez kontekstu grupy zakupowej\r\n MP_PURCHASING_GROUP: buyerPaths.PURCHASING_GROUP,\r\n MP_PURCHASING_GROUP_LIST: buyerPaths.PURCHASING_GROUP + '/list',\r\n MP_PURCHASING_GROUP_MEMBER_LIST: buyerPaths.PURCHASING_GROUP + '/member/list',\r\n MP_PURCHASING_GROUP_TEMPLATES: buyerPaths.PURCHASING_GROUP + '/templates',\r\n MP_PURCHASING_GROUP_TEMPLATES_LIST: buyerPaths.PURCHASING_GROUP + '/templates/list',\r\n MP_PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID: buyerPaths.PURCHASING_GROUP + '/templates/template/:id(\\\\d+)',\r\n\r\n //kontekst konkretnej rejestracji\r\n MP_PURCHASING_GROUP_GROUP: buyerPaths.PURCHASING_GROUP + '/group',\r\n MP_PURCHASING_GROUP_GROUP_ID: buyerPaths.PURCHASING_GROUP + '/group/:id(\\\\d+)',\r\n MP_PURCHASING_GROUP_GROUP_ID_EMAIL_LIST: buyerPaths.PURCHASING_GROUP + '/group/:id(\\\\d+)/email-list',\r\n MP_PURCHASING_GROUP_GROUP_ID_STAGE: buyerPaths.PURCHASING_GROUP + '/group/:id(\\\\d+)/stage',\r\n MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR: buyerPaths.PURCHASING_GROUP + '/group/:id(\\\\d+)/stage/:stage(\\\\d+)',\r\n MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR_SECTION: buyerPaths.PURCHASING_GROUP + '/group/:id(\\\\d+)/stage/:stage(\\\\d+)/:section',\r\n}\r\n\r\nconst purchaserDemand = {\r\n PURCHASER_DEMAND_ID: buyerPaths.DEMAND + '/:id(\\\\d+)',\r\n PURCHASER_DEMAND_ID_OFFER: buyerPaths.DEMAND + '/:id(\\\\d+)/offer',\r\n PURCHASER_DEMAND_ID_PREVIEW: buyerPaths.DEMAND + '/:id(\\\\d+)/preview',\r\n PURCHASER_DEMAND_ID_PREVIEW_ID_STAGE_ID_SECTION: buyerPaths.DEMAND + '/:id(\\\\d+)/preview/stage/:stageId(\\\\d+)/:section',\r\n PURCHASER_DEMAND_ID_OFFER_CONTRACTOR: buyerPaths.DEMAND + '/:id(\\\\d+)/offer/contractor',\r\n PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID: buyerPaths.DEMAND + '/:id(\\\\d+)/offer/contractor/:contractorDepartmentId(\\\\d+)',\r\n PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE: buyerPaths.DEMAND + '/:id(\\\\d+)/offer/contractor/:contractorDepartmentId(\\\\d+)/stage',\r\n PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID: buyerPaths.DEMAND + '/:id(\\\\d+)/offer/contractor/:contractorDepartmentId(\\\\d+)/stage/:stageId(\\\\d+)',\r\n PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID_SECTION: buyerPaths.DEMAND + '/:id(\\\\d+)/offer/contractor/:contractorDepartmentId(\\\\d+)/stage/:stageId(\\\\d+)/:section'\r\n}\r\n\r\n\r\nconst admin = {\r\n ADMIN_REGISTRATIONS: buyerPaths.ADMIN + '/registrations',\r\n ADMIN_REGISTRATIONS_LIST: buyerPaths.ADMIN + '/registrations/list',\r\n ADMIN_REGISTRATION_ID: buyerPaths.ADMIN + '/registrations/:id',\r\n}\r\n\r\n\r\nconst matchOpenDrawerMenu = [\r\n root.MY_PROCEDURE\r\n]\r\n\r\nconst matchOpenDrawerMenuNotExact = []\r\n\r\nexport const setMenuOpenOnPath = (path = window.location.pathname) => {\r\n const {store} = reduxStore.getState()\r\n let open = matchOpenDrawerMenu.includes(path);\r\n for (let i in matchOpenDrawerMenuNotExact) {\r\n const item = matchOpenDrawerMenuNotExact[i];\r\n if (path.startsWith(item)) {\r\n open = true;\r\n break;\r\n }\r\n }\r\n if (store.isMenuOpen === open) return;\r\n\r\n reduxStore.dispatch(\r\n setMenuOpen(open)\r\n )\r\n}\r\n\r\nexport const redirect = (path, state) => {\r\n const { store } = reduxStore.getState()\r\n store.redirect(path, state)\r\n\tsetMenuOpenOnPath(path)\r\n}\r\n\r\nexport const redirectWithoutHistory = (path, state) => {\r\n\tconst { store } = reduxStore.getState()\r\n\tstore.redirectReplace(path, state)\r\n setMenuOpenOnPath(path)\r\n}\r\n\r\nexport const setSearchObj = searchObj => {\r\n const {store} = reduxStore.getState()\r\n const search = querystring.stringify(searchObj)\r\n const path = window.location.pathname;\r\n store.redirect(`${path}?${search}`)\r\n}\r\n\r\nexport const redirectWithSearch = (path, searchObj) => {\r\n const search = querystring.stringify(searchObj)\r\n redirect(`${path}?${search}`)\r\n}\r\n\r\n\r\nexport default {\r\n ...root,\r\n ...buyerPaths,\r\n ...ctrPaths,\r\n\r\n myProcedure,\r\n purchaserDemand,\r\n purchasingGroup,\r\n annualReport,\r\n admin,\r\n\r\n //ctr... dla wykonawcy, reszta dla zamawiającego\r\n ctrDemand,\r\n\r\n redirectWithoutHistory,\r\n redirect,\r\n redirectWithSearch,\r\n createPath,\r\n setSearchObj,\r\n setMenuOpenOnPath,\r\n baseRoute: purchaserBaseRoute\r\n}","import Tr from 'translations/Translations';\r\n\r\nexport const DemandValidation = {\r\n //part1\r\n DEMAND: \"DEMAND\",\r\n COMMISSION: \"COMMISSION\",\r\n QUESTIONNAIRE: \"QUESTIONNAIRE\",\r\n DEALINGS: \"DEALINGS\",\r\n SCHEDULE: \"SCHEDULE\",\r\n SIWZ: \"SIWZ\",\r\n PUBLICATION: \"PUBLICATION\",\r\n EX_POST_GO_TO_FINISH: \"EX_POST_GO_TO_FINISH\",\r\n ESPD: \"ESPD\",\r\n NOTICE: \"NOTICE\",\r\n NATIONAL_NOTICE: \"NATIONAL_NOTICE\",\r\n CONTRACTOR: \"CONTRACTOR\",\r\n GUARANTEE: \"GUARANTEE\",\r\n PREPARING_PAPERS_GENERATOR: \"PREPARING_PAPERS_GENERATOR\",\r\n PREPARING_ADDITIONAL_INFO: \"PREPARING_ADDITIONAL_INFO\",\r\n //part3\r\n PART_3_SECTION: \"PART_3_SECTION\",\r\n OFFERS: \"OFFERS\",\r\n DOCUMENTS: \"DOCUMENTS\",\r\n CONTRACTOR_VERIFICATION: \"CONTRACTOR_VERIFICATION\",\r\n OFFERS_EVALUATION: \"OFFERS_EVALUATION\",\r\n OFFER_CHOICE: \"OFFER_CHOICE\",\r\n PRIMARY_TENDER_CHOICE: \"PRIMARY_TENDER_CHOICE\",\r\n ADDITIONAL_ROUND_PASSIVE: \"ADDITIONAL_ROUND_PASSIVE\",\r\n OFFERS_CHOICE_RESULT: \"OFFERS_CHOICE_RESULT\",\r\n EVALUATION_FINISH: \"EVALUATION_FINISH\",\r\n STAGE_FINISH: \"STAGE_FINISH\",\r\n PAPERS_GENERATOR: \"PAPERS_GENERATOR\",\r\n AGREEMENTS: \"AGREEMENTS\",\r\n EVALUATION_ADDITIONAL_INFO: \"EVALUATION_ADDITIONAL_INFO\",\r\n //part 4\r\n RESULT_NOTICE: \"RESULT_NOTICE\",\r\n FINISH_DOCUMENTS: \"FINISH_DOCUMENTS\",\r\n DEMAND_PLAN_REALIZATION: \"DEMAND_PLAN_REALIZATION\",\r\n FINISH_DEMAND: \"FINISH_DEMAND\",\r\n ARCHIVING: \"ARCHIVING\",\r\n FINISH_ADDITIONAL_INFO: \"FINISH_ADDITIONAL_INFO\",\r\n}\r\n\r\nexport const DemandValidationKeys = {\r\n //part1\r\n DEMAND: 'mp_1_demand',\r\n COMMISSION: 'mp_1_commission',\r\n QUESTIONNAIRE: 'mp_1_questionnaire',\r\n DEALINGS: 'mp_1_dealings',\r\n SCHEDULE: 'mp_1_schedule',\r\n SIWZ: 'mp_1_siwz',\r\n PUBLICATION: 'mp_1_publication',\r\n EX_POST_GO_TO_FINISH: 'mp_1_ex_post_go_to_finish',\r\n ESPD: 'mp_1_espd',\r\n NOTICE: 'mp_1_notice',\r\n NATIONAL_NOTICE: 'mp_1_national_notice',\r\n CONTRACTOR: 'mp_1_contractor',\r\n GUARANTEE: 'mp_1_guarantee',\r\n PREPARING_PAPERS_GENERATOR: 'mp_1_preparing_papers_generator',\r\n PREPARING_ADDITIONAL_INFO: 'mp_1_preparing_additional_info',\r\n //part3\r\n OFFERS: 'mp_3_offers',\r\n DOCUMENTS: 'mp_3_documents',\r\n CONTRACTOR_VERIFICATION: 'mp_3_contractor_verification',\r\n OFFERS_EVALUATION: 'mp_3_offers_evaluation',\r\n OFFER_CHOICE: 'mp_3_offer_choice',\r\n PRIMARY_TENDER_CHOICE: 'mp_3_primary_tender_choice',\r\n ADDITIONAL_ROUND_PASSIVE: 'mp_3_additional_round_passive',\r\n OFFERS_CHOICE_RESULT: 'mp_3_offers_choice_result',\r\n EVALUATION_FINISH: 'mp_3_evaluation_finish',\r\n STAGE_FINISH: 'mp_3_stage_finish',\r\n PAPERS_GENERATOR: 'mp_3_papers_generator',\r\n AGREEMENTS: 'mp_3_agreements',\r\n EVALUATION_ADDITIONAL_INFO: 'mp_3_evaluation_additional_info',\r\n //part 4\r\n RESULT_NOTICE: 'mp_4_result_notice',\r\n FINISH_DOCUMENTS: 'mp_4_finish_documents',\r\n DEMAND_PLAN_REALIZATION: 'mp_4_demand_plan_realization',\r\n FINISH_DEMAND: 'mp_4_finish_demand',\r\n ARCHIVING: 'mp_4_archiving',\r\n FINISH_ADDITIONAL_INFO: \"mp_4_finish_additional_info\",\r\n}\r\n\r\nexport const DemandValidationTr = Object.keys(DemandValidationKeys).reduce((prev, key) => {\r\n return {...prev, [key]: Tr(DemandValidationKeys[key])}\r\n}, {});\r\n","import Tr from 'translations/Translations';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport {DemandValidation, DemandValidationKeys, DemandValidationTr} from 'constants/DemandValidation';\r\n\r\nconst createItem = (trKey, steps = [], href, hrefExpand = []) => ({\r\n title: Tr(trKey),\r\n steps,\r\n href,\r\n hrefExpand\r\n})\r\n\r\nconst createStep = (apiId, confirmClosing= false) => ({\r\n key: DemandValidationKeys[apiId],\r\n label: DemandValidationTr[apiId],\r\n apiId,\r\n confirmClosing\r\n});\r\n\r\nconst rp = RouterPath.myProcedure.steps;\r\n\r\nexport default [\r\n createItem('mp_1', [\r\n createStep(DemandValidation.DEMAND, true),\r\n createStep(DemandValidation.COMMISSION, true),\r\n createStep(DemandValidation.QUESTIONNAIRE),\r\n createStep(DemandValidation.DEALINGS, true),\r\n createStep(DemandValidation.SCHEDULE, true),\r\n createStep(DemandValidation.SIWZ),\r\n createStep(DemandValidation.ESPD),\r\n createStep(DemandValidation.NOTICE),\r\n createStep(DemandValidation.NATIONAL_NOTICE),\r\n createStep(DemandValidation.PREPARING_ADDITIONAL_INFO),\r\n createStep(DemandValidation.PUBLICATION),\r\n createStep(DemandValidation.CONTRACTOR),\r\n createStep(DemandValidation.GUARANTEE),\r\n createStep(DemandValidation.EX_POST_GO_TO_FINISH),\r\n createStep(DemandValidation.PREPARING_PAPERS_GENERATOR),\r\n ], rp.MP_1, [rp.MP_1]),\r\n createItem('mp_2', [], rp.MP_2),\r\n createItem('mp_3', [\r\n createStep(DemandValidation.OFFERS),\r\n createStep(DemandValidation.DOCUMENTS),\r\n createStep(DemandValidation.CONTRACTOR_VERIFICATION),\r\n createStep(DemandValidation.OFFERS_EVALUATION),\r\n createStep(DemandValidation.OFFER_CHOICE),\r\n createStep(DemandValidation.ADDITIONAL_ROUND_PASSIVE),\r\n createStep(DemandValidation.PRIMARY_TENDER_CHOICE),\r\n createStep(DemandValidation.OFFERS_CHOICE_RESULT),\r\n createStep(DemandValidation.EVALUATION_ADDITIONAL_INFO),\r\n createStep(DemandValidation.EVALUATION_FINISH),\r\n createStep(DemandValidation.STAGE_FINISH),\r\n createStep(DemandValidation.PAPERS_GENERATOR),\r\n createStep(DemandValidation.AGREEMENTS),\r\n ], rp.MP_3, [rp.MP_3]),\r\n createItem('mp_4', [\r\n createStep(DemandValidation.RESULT_NOTICE),\r\n createStep(DemandValidation.FINISH_DOCUMENTS),\r\n createStep(DemandValidation.DEMAND_PLAN_REALIZATION),\r\n createStep(DemandValidation.FINISH_ADDITIONAL_INFO),\r\n createStep(DemandValidation.FINISH_DEMAND),\r\n createStep(DemandValidation.ARCHIVING),\r\n ], rp.MP_4, [rp.MP_4]),\r\n]","import steps from './initValues/stepper.values'\r\n\r\nconst initialState = {\r\n state: null,\r\n steps,\r\n stateCloseValidator: null,\r\n stateCloseFunction: null\r\n}\r\n\r\nexport default (state = initialState, {type, payload}) => {\r\n switch (type) {\r\n\r\n case 'SET_STEPPER_STATE':\r\n return {\r\n ...state,\r\n stateCloseValidator: null,\r\n state: payload,\r\n }\r\n\r\n case 'SET_STEPPER_STATE_CLOSE_VALIDATOR':\r\n return {\r\n ...state,\r\n stateCloseValidator: payload\r\n }\r\n\r\n case 'SET_STEPPER_STATE_DEL_FORM_DRAFT_FUNCTION':\r\n return {\r\n ...state,\r\n deleteFormDraftFunc: payload\r\n }\r\n\r\n case 'SET_STEPPER_STATE_SAVE_FORM_DRAFT_FUNCTION':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\tsaveFormDraftFunc: payload\r\n\t\t\t}\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n","import { createStore, combineReducers } from 'redux'\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\nimport resources from './reducers/ResourcesReducer'\r\nimport storeReducer from './reducers/StoreReducer'\r\nimport form from './reducers/FormReducer'\r\nimport authorize from './reducers/AuthorizeReducer'\r\nimport stepper from './reducers/StepperReducer'\r\nimport innerMenu from './reducers/InnerMenuReducer'\r\nimport formValues from './reducers/FormValuesReducer'\r\nimport privileges from './reducers/PrivilegeReducer'\r\nimport signature from './reducers/SignatureReducer'\r\n\r\nconst store = createStore(\r\n\tcombineReducers({\r\n\t\tresources,\r\n\t\tprivileges,\r\n\t\tstore: storeReducer,\r\n\t\tform,\r\n\t\tauthorize,\r\n\t\tinnerMenu,\r\n\t\tstepper,\r\n\t\tformValues,\r\n\t\tsignature\r\n\t}),\r\n\tcomposeWithDevTools()\r\n)\r\n\r\nexport default store;","export default (state = {}, {type, payload}) => {\r\n switch (type) {\r\n case 'SET_RESOURCE':\r\n return {\r\n ...state,\r\n [payload.id]: payload.value\r\n };\r\n case 'ADD_OBJECT_RESOURCE':\r\n return {\r\n ...state,\r\n [payload.id]: {\r\n ...state[payload.id],\r\n [payload.key]: payload.value,\r\n }\r\n };\r\n case 'ADD_OBJECT_RESOURCES':\r\n const idObject = {};\r\n Object.keys(payload.keyValuePairObject).forEach(key => {\r\n idObject[key] = payload.keyValuePairObject[key];\r\n });\r\n return {\r\n ...state,\r\n [payload.id]: {\r\n ...state[payload.id],\r\n ...idObject\r\n }\r\n };\r\n default:\r\n return state\r\n }\r\n}\r\n","export default (state = {}, {type, payload}) => {\r\n\tswitch (type) {\r\n\t\tcase 'SET_PRIVILEGES':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t[payload.id]: payload.value,\r\n\t\t\t}\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n","import saveStatusValues from 'constants/status.save'\r\nexport default (state = {\r\n\tredirect: () => { },\r\n\tredirectReplace: () => { },\r\n\tcontrast: false,\r\n\tlargeText: false,\r\n\tclientColors: null,\r\n\tisMenuOpen: true,\r\n\tsaveStatus: saveStatusValues.CLOSED,\r\n\tsaveStatusMessage: '',\r\n\topenTutorial: false,\r\n}, { type, payload }) => {\r\n\tswitch (type) {\r\n\r\n\t\tcase 'SET_STORE_VALUE':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t[payload.id]: payload.value,\r\n\t\t\t}\r\n\t\tcase 'SET_STORE_MULTI_VALUE':\r\n\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t...payload,\r\n\t\t\t}\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n","export default (state = {\r\n\r\n}, { type, payload }) => {\r\n\tswitch (type) {\r\n\t\tcase 'SET_FORM_SUBMIT_FUNC':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t[payload.id]: payload.value\r\n\t\t\t}\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n","export default (state = {\r\n\tcounter: 0\r\n}, { type }) => {\r\n\tswitch (type) {\r\n\r\n\t\tcase 'SET_AUTHORIZE_COUNTER':\r\n\t\t\treturn {\r\n\t\t\t\tcounter: state.counter + 1\r\n\t\t\t}\r\n\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n","export default (state = {}, { type, payload }) => {\r\n switch (type) {\r\n\r\n case 'SET_INNER_MENU':\r\n return payload\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n","export default (state = {\r\n\r\n}, { type, payload }) => {\r\n\tswitch (type) {\r\n\t\tcase 'SET_FORM_VALUES':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t[payload.id]: payload.form,\r\n\t\t\t\t[payload.id + \"_dirty\"]: payload.dirty\r\n\t\t\t}\r\n\t\tcase 'SET_FORM_DRAFT_LOADED':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t[payload.id + \"_draftLoaded\"]: payload.draftLoaded\r\n\t\t\t}\r\n\t\tcase 'CLEAR_FORM_VALUES':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t[payload.id]: undefined,\r\n\t\t\t\t[payload.id + \"_dirty\"]: undefined,\r\n\t\t\t\t[payload.id + \"_draftLoaded\"]: undefined\r\n\t\t\t}\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n","export default (state = {}, {type, payload}) => {\r\n\tswitch (type) {\r\n\t\tcase 'SET_SIGNATURE':\r\n\t\t\treturn {\r\n\t\t\t\t...state,\r\n\t\t\t\t[payload.id]: payload.value,\r\n\t\t\t}\r\n\t\tdefault:\r\n\t\t\treturn state\r\n\t}\r\n}\r\n","import React from 'react'\r\nimport { Typography } from '@material-ui/core';\r\n\r\nfunction NotFound() {\r\n\treturn (\r\n\t\t\r\n\t\t\t404 Page not found.\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default NotFound\r\n","import React, {memo} from 'react'\r\nimport {Box, ListItem as ListItemUI, ListItemIcon, ListItemText, Tooltip} from '@material-ui/core';\r\nimport PropTypes from 'prop-types'\r\nimport {withStyles} from '@material-ui/styles';\r\nimport clsx from 'clsx';\r\n// import { redirect } from 'libs/RouterPath';\r\nimport {withRouter} from \"react-router\";\r\nimport ArrowRightIcon from '@material-ui/icons/ArrowRight';\r\n\r\nconst style = theme => ({\r\n\tleftMargin: {\r\n\t\tmarginLeft: theme.spacing(3)\r\n\t},\r\n\trightIcon: {\r\n\t\tminWidth: 'unset'\r\n\t},\r\n\ticonOpen: {\r\n\t\ttransform: 'rotate(-180deg)',\r\n\t},\r\n\tcontrastColor: {\r\n\t\tcolor: theme.palette.primary.contrastText,\r\n\t},\r\n\telementColor: {\r\n\t\t...theme.components.navigation.item.primary\r\n\t},\r\n\tmainPadding: {\r\n\t\tpaddingLeft: 0,\r\n\t},\r\n\ticonInnerOpen: {\r\n\t\ttransform: 'rotate(90deg)',\r\n\t},\r\n\tinnerArrow: {\r\n\t\tminWidth: theme.spacing(3)\r\n\t},\r\n\ttext: {\r\n\t\twhiteSpace: \"normal\"\r\n\t},\r\n\ticonContrast: {\r\n\t\tfill: theme.palette.primary.main,\r\n\t},\r\n\tonHover: {\r\n\t\t'&:hover': {\r\n\t\t\tbackground: theme.palette.primary.light,\r\n\t\t\tcolor: theme.palette.secondary.contrastText,\r\n\t\t\t'& $iconContrast': {\r\n\t\t\t\tfill: theme.palette.secondary.contrastText,\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tepmptySpace: {\r\n\t\twidth: theme.spacing(3)\r\n\t},\r\n\ttextBox: {\r\n\t\tmaxWidth: 200\r\n\t}\r\n})\r\n\r\nfunction ListItem({\r\n\tIcon = \"\",\r\n\tonClick,\r\n\tclassName,\r\n\tclasses,\r\n\tclassesObj,\r\n\ticonPosition,\r\n\topen,\r\n\t// href,\r\n\tlocation,\r\n\tsetInnerMenuOpen,\r\n\tinnerMenu,\r\n\t// innerKey,\r\n\t// directLink,\r\n\topenInner,\r\n\tname,\r\n\turl,\r\n\tinnerKey,\r\n\tsingleLink,\r\n\tsetMenuOpen,\r\n\ttooltip\r\n}) {\r\n\tconst renderItem = (component, shouldRender) => {\r\n\t\t// return Icon && (shouldRender ? component : '')\r\n\t\treturn (shouldRender ? component : '')\r\n\t}\r\n\r\n\tconst isSelected = (() => {\r\n\t\tif (!url) return false;\r\n\t\tconst path = location.pathname;\r\n\r\n\t\treturn (path.startsWith(url) && url.length > 1) || path === url;\r\n\t})();\r\n\r\n\tconst iconBase = (className = '') => (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n\r\n\tconst icon = (tooltip, className) => {\r\n\t\tif (!tooltip) {\r\n\t\t\treturn iconBase(className);\r\n\t\t}\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{iconBase(className)}\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\r\n\tconst onArrowClick = () => {\r\n\t\tif (setInnerMenuOpen) {\r\n\t\t\tif (iconPosition === \"right\") {\r\n\t\t\t\tfor (const x in innerMenu) innerMenu[x] = false\r\n\t\t\t\tsetInnerMenuOpen({ ...innerMenu })\r\n\t\t\t} else {\r\n\t\t\t\tsetInnerMenuOpen({\r\n\t\t\t\t\t...innerMenu,\r\n\t\t\t\t\t[innerKey]: !innerMenu[innerKey]\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t\tsetMenuOpen(true);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tconst handleClick = () => {\r\n\t\tonClick();\r\n\t\t// if (href) { redirect(href) }\r\n\t\tif (url) window.location.href = url\r\n\r\n\t\tif (singleLink) window.location.href = singleLink\r\n\t\telse onArrowClick()\r\n\t}\r\n\r\n\tconst itemClass = clsx(className, classes.onHover, {\r\n\t\t[classes.elementColor]: isSelected,\r\n\t\t[classes.mainPadding]: openInner\r\n\t})\r\n\treturn (\r\n\t\t\r\n\t\t\t{singleLink ?\r\n\t\t\t\t\r\n\t\t\t\t:\r\n\t\t\t\topenInner && (\r\n\t\t\t\t\tinnerKey ?\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t\t{Icon && renderItem(icon(name), iconPosition === 'left')}\r\n\t\t\t\r\n\t\t\t{renderItem(icon(tooltip, classes.rightIcon), iconPosition === 'right')}\r\n\t\t\r\n\t)\r\n}\r\n\r\nListItem.propTypes = {\r\n\t// text: PropTypes.string,\r\n\t// icon: PropTypes.object,\r\n\tonClick: PropTypes.func,\r\n\tclassName: PropTypes.string,\r\n\tclassesObj: PropTypes.shape({\r\n\t\ticon: PropTypes.string,\r\n\t}),\r\n\ticonPosition: PropTypes.oneOf(['left', 'right']),\r\n\t// href: PropTypes.string,\r\n}\r\n\r\nListItem.defaultProps = {\r\n\t// text: '',\r\n\tclassesObj: {\r\n\t\ticon: '',\r\n\t},\r\n\ticonPosition: 'left',\r\n\topen: false,\r\n\tonClick: () => { },\r\n}\r\n\r\nexport default withRouter(withStyles(style)(memo(ListItem, (prevProps, nextProps) => {\r\n\tif (prevProps.location.pathname !== nextProps.location.pathname) return false;\r\n\tif (prevProps.open !== nextProps.open) return false;\r\n\tif (prevProps.openInner !== nextProps.openInner) return false;\r\n\tif (prevProps.className !== nextProps.className) return false;\r\n\tif (JSON.stringify(prevProps.classes) !== JSON.stringify(nextProps.classes)) return false;\r\n\tif (JSON.stringify(prevProps.classesObj) !== JSON.stringify(nextProps.classesObj)) return false;\r\n\tif (JSON.stringify(prevProps.innerMenu) !== JSON.stringify(nextProps.innerMenu)) return false;\r\n\treturn true;\r\n})))\r\n","import React from 'react'\r\nimport ArrowIcon from '@material-ui/icons/ArrowForward'\r\nimport ListItem from './ListItem';\r\nimport { withStyles } from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tpaddingTop: 0,\r\n\t\tpaddingBottom: 0,\r\n\r\n\t\t...theme.components.navigation.item.primary\r\n\t},\r\n\ticon: {\r\n\t\tfill: theme.palette.primary.contrastText\r\n\t}\r\n})\r\n\r\nfunction RolingElement({\r\n\topen,\r\n\tsetOpen,\r\n\tsetInnerMenuOpen,\r\n\tclasses,\r\n}) {\r\n\tconst handleClick = () => {\r\n\t\tsetOpen(!open)\r\n\t\tsetInnerMenuOpen({})\r\n\t}\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default withStyles(style)(RolingElement)\r\n","export default __webpack_public_path__ + \"static/media/logo-long-contrast.f29674e8.png\";","import React, {useMemo} from 'react'\r\nimport logoLong from 'images/logo-long.png'\r\nimport logoIcon from 'images/logo-icon.png'\r\nimport logoLongContrast from 'images/logo-long-contrast.png'\r\nimport logoIconContrast from 'images/logo-icon-contrast.png'\r\nimport { withStyles } from '@material-ui/styles';\r\nimport PropTypes from 'prop-types'\r\nimport { ListItem, Tooltip } from '@material-ui/core';\r\nimport clsx from 'clsx';\r\nimport RouterPath from 'libs/RouterPath';\r\nimport { Link } from 'react-router-dom'\r\nimport { connect } from 'react-redux'\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\theight: theme.spacing(6),\r\n\t},\r\n\timage: {\r\n\t\tobjectFit: 'contain',\r\n\t},\r\n\timageOpen: {\r\n\t\twidth: theme.components.navigation.width - theme.spacing(8),\r\n\t\tmarginLeft: theme.spacing(2)\r\n\t},\r\n\timageClose: {\r\n\t\twidth: theme.spacing(3) + 1,\r\n\t}\r\n})\r\n\r\nfunction Logo({\r\n\topen,\r\n\tpurchaser,\r\n\tclasses,\r\n\tisContrast\r\n}) {\r\n\r\n\tconst logoLongMem = useMemo(()=> isContrast ? logoLongContrast : logoLong, [isContrast])\r\n\tconst logoIconMem = useMemo(()=> isContrast ? logoIconContrast : logoIcon, [isContrast])\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nLogo.propTypes = {\r\n\topen: PropTypes.bool,\r\n}\r\n\r\nLogo.defaultProps = {\r\n\topen: false,\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n\tisContrast: state.store.contrast,\r\n}), {\r\n\r\n})(withStyles(style)(Logo));","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIsAAACPCAMAAAD9VtjbAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAAFxEAABcRAcom8z8AAAA5UExURUdwTBWamheXlxSYmBObmw+fnxWamhSZmROYmBOZmROamhSXlxOZmRSamhSamhKYmBOZmRKXl///AMorUa4AAAASdFJOUwAwIO9AEGC/n4Df71CvcM+PzzbFZ/cAAAN0SURBVHja7VxZstwgDDSbQdh44f6HzUeSSj6GTYvHr4o+wFRbElLTwCzLxMTExMSPgbUA4P8gAKxWfYGF3sFv+RPOBPZBInuIuY4THgnQmnIXTBCmo8KW+xHByeXG51EELZOcmDEQYGPvjEXgzZT2mQBzMFKBTMTJtabUnekAFipHZoGnV41LmQmGOhpUzHxYad1ty5wIlPaWmRHeQwVPRoAKlowIFRwZISoYMjaLYXRpq02OSx5req5zBPkAu7V6WRZr7QHe9HXgoXEQembvJ72v19TBx7PWbTzKcm1vj7D+qa1bxeIbGdfNuHbrmYaIix2112JzsgiWrTO+tj7h+2Snq2bo7o6uu+hrKbBp+tUQ26+lR/Zfx6yR0bTCHRZm6qQExvJqRHcSAuPZEtRMU8CHBSnJFDow5fZ9Y/c35YFy1dtlucXhd6EJ12NAYg/qDGoxFPv2TdplYbTDziTFuhenRrR/T6JSXkuVNrHJhKX8ked4cyGGpfLLxZV0yRgEtYop/nJJ/G8MJuhgM3cSVsVfFHpMHE3qzsAljBUMyKWo3Lr2sfpKLBbk2GyJYquoMiHTEHNZxKddjhoGB6MolIjpz2jGfInLOiZ1RQEId2FyeRZ+cunnEmdcJpcBATv7y2cu4UVc3jSnS1yMF4Ua0ZjmC1fDFMEUZofktnEUN8pulEEinvVwAl5UMFbOCuIrXv8FLv5FSToETG/2bmfc82TiiwJzvSgwKosExkXMkflNP/QfCXe1c63kQ/8hw6ua+sqZPfBnqDF1K6J35+6grR6qKzcQcCUT8Ce7gZlMINwi0JmVTCDdrgicZKp7rvbErV5QMkNSRp81Kj3Stb5nu/qnwW7Il3Fc3RSKneeguuHR9t3UaJnxPa8PHBiE7YJxnVtsmkyy6ZWKrn0ZM1W6sO1wLA6Gafbfl6X1w7e59tukUTV/9fkVxsPx+2ro4qxdIXV6oWPSTNakUlyDXsj+qclNucvE416BetRERV5B+AKVV70PeNW7iWWx22uosK8m2lbY3XxMNrKnxGbN3wzv55jeQ/G8ctQMw2ljM4kPamgSo2fiSFUTmR93K3SitmNhh0Wx2YTeUNvhTMVDzlzTMKKxkvQJiw19dPz6iN+ooPUSJ6xPGp/2CB8JRQ/7Nw7iFmctAMDlfQL41t9WTExMTExg8Qv3czrSIXb/HQAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIsAAACPCAMAAAD9VtjbAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAAFxEAABcRAcom8z8AAAAzUExURUdwTBWamhWamheXlxOZmRObmw+fnxSZmROZmRSZmROamhOZmROZmRSamhSamhOZmRSamtUGjvcAAAAQdFJOUwBgMCCAQBC/n+/fz1CvcI+CN945AAADb0lEQVQYGe3BRw7kOBAEwKSvolz+/7U7h70Ni3KUhAE6Aj8/Pz8//46UYozlfxKjSx7vC3MsypZpiQnvmaWyb4oeL3ALD1HxeJQX5XE1ZjxlLjxLAp7gKq+QgNHSxKskY6RQeIOuGCfypsljDD/xvogRVg5RMu7KCwfRhHt85TgOd8zKkQTXOQ4muMpxOME1jg8QXOH4CMF5jg8RnJX4GIdzvPI5CWfkiYcUiXNKAUBKaY1FeYRmnCDcN8WEvwS3KHcVHOe4p64BlnnhnoijgrKvJHQF4Q6Pgwq7asKuIOyacMzKHo04JFX2rDgiKzsmj4Pyxg7NOEDYIRnHOaVNsC+xY8UpXmkL2FVoczjJTzQJ9iTaHE7LE00BOwpNKy7wSougL9EkuMTTFNC10DJlXONo2dATaFGPqxYaNKMj0hJxWVYaHDoqDRNumGkosM20JNxRaAgwCQ0Ft3gaVpiUhoR7hG0TLImGgpsSDRmGjQaHuwrbHAwT2xS3ObYJ2jINgvuUTRVtiYYZ9wnbMpoi2xQDzGyb0VTYtmAEtkU0VbY5jLCwaUETv1DRkvgJtMz8hEdD5CcSGiI/4dCw8BMRDYWfiGgo/EREQ+EnChoKP1HQUPiJgobKTxQ0FH6ioKHwEwUNhZ8QNBR+IqKh8BMRDcJPRDREfsKhIbJNy6M8GhLbFO/zNAS8j4YZ75vYtuF9C9smvC/SEPC6RIPD+2goeF+hIeB1Kw0Rr/M0aMbrKg0Rr9to0Iy3eVoibsiVhgm2iRaP6zZaHGyOlgmXJVo0w5aVloiLcqVlQ4/QNOOaQlNAT6BJPa4QmgR9QpN6nCe0BfQF2tTjLKFNsEdoU49zhB0Be4LSpg4nhIkdG/ZF9mwZR83KDs3Ylyt7asIhYWHXiiNm9knArhyVXQXHLNwhAV05Kvs04Jis3LPMMCXhrhVHJe7TxQX8Jc9Sua/guI2HaIlrSgF/5JRcXCoP0YwTCp/kcUaufI7DOV75lA1neT5EcJ7jIwRXOD5AcI3jcIKrknIswXVeOVLEHXniMOpwk3CQyeO2WTmCZAwQCm/TGYOsynuWjGGy8IaaMJQvvEhXDJcKL9CY8YQkPKmuGU8JsfK4ZcazklQeUVzGC3ws7KriMt6TVilsqCXOAR/IKcU/tlKW+IdLHj8/Pz8//47/AP6//ENfH7fNAAAAAElFTkSuQmCC\"","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {Button as ButtonUI, Tooltip} from '@material-ui/core'\r\nimport {withStyles} from '@material-ui/styles';\r\nimport {connect} from 'react-redux'\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n icon: {\r\n marginRight: theme.spacing(1)\r\n },\r\n disabled: {\r\n border: `1px solid ${theme.palette.action.disabled}`,\r\n },\r\n transparentBorder: {\r\n border: `1px solid rgba(255,255,255,0.0)`\r\n }\r\n})\r\n\r\nfunction Button(\r\n {\r\n tooltip,\r\n hideTooltip = false,\r\n placement,\r\n classes,\r\n Icon,\r\n children,\r\n isContrast,\r\n ...others\r\n }) {\r\n\r\n const button = (\r\n {Icon &&\r\n \r\n }\r\n {children}\r\n )\r\n\r\n if (hideTooltip || !Boolean(tooltip)) {\r\n return button\r\n }\r\n\r\n return (\r\n \r\n\t\t\t\r\n\t\t\t\t{button}\r\n\t\t\t\r\n \r\n )\r\n}\r\n\r\nButton.propTypes = {\r\n variant: PropTypes.oneOf([ 'text', 'outlined', 'contained']),\r\n color: PropTypes.string,\r\n onClick: PropTypes.func,\r\n disabled: PropTypes.bool\r\n}\r\n\r\nButton.defaultProps = {\r\n variant: 'contained',\r\n color: 'primary',\r\n onClick: () => {\r\n },\r\n}\r\n\r\nexport default connect((state) => ({\r\n isContrast: state.store.contrast,\r\n}), {})(withStyles(style)(Button));\r\n","import React from 'react'\r\nimport { withStyles, ListItem } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&:hover': {\r\n\t\t\tbackground: theme.palette.primary.light,\r\n\t\t\tcolor: theme.palette.secondary.contrastText\r\n\t\t}\r\n\t}\r\n})\r\n\r\nfunction ListElement({\r\n\tclasses,\r\n\tonClick,\r\n\tonMouseEnter,\r\n\tonMouseLeave,\r\n\tlabel,\r\n\tdisabled,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t{label}\r\n\t\t\r\n\t)\r\n}\r\n\r\nListElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nListElement.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(ListElement);","import React, { useState, useEffect } from 'react'\r\nimport { withStyles, Paper, Popper, List } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ListElement from './ListElement';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tzIndex: theme.zIndex.tooltip,\r\n\t},\r\n})\r\n\r\nfunction NewProcedureMenu({\r\n\tclasses,\r\n\tanchorEl,\r\n\tonClose = () => { },\r\n\titems,\r\n\tplacement = 'right-start',\r\n}) {\r\n\tconst [anchorItem, setAnchorItem] = useState(null)\r\n\r\n\tuseEffect(() => {\r\n\t\tif (Boolean(anchorItem)) {\r\n\t\t\tsetAnchorItem(null)\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [anchorEl])\r\n\r\n\tconst handleClickElement = item => (e) => {\r\n\t\tif (Boolean(item.onClick)) {\r\n\t\t\titem.onClick();\r\n\t\t\tonClose();\r\n\t\t}\r\n\t}\r\n\r\n\tconst handleMouseEnter = item => e => {\r\n\t\tif (Boolean(item.items)) {\r\n\t\t\tsetAnchorItem({\r\n\t\t\t\tanchorEl: e.currentTarget,\r\n\t\t\t\t...item,\r\n\t\t\t})\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\tconst handleMouseLeave = e => {\r\n\t\tif (e.relatedTarget.attributes.role === undefined) {\r\n\t\t\t\tonClose();\r\n\t\t}\r\n\t}\r\n\r\n\tconst createSubMenu = () => {\r\n\t\tif (Boolean(anchorItem) && Boolean(anchorItem.items)) {\r\n\t\t\treturn \r\n\t\t}\r\n\t\treturn '';\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{items.map((item, i) => (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t{createSubMenu()}\r\n\t\t\r\n\t)\r\n}\r\n\r\nNewProcedureMenu.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nNewProcedureMenu.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(NewProcedureMenu);","import Tr from 'translations/Translations';\r\n\r\nexport const isNonpublicProcedure = (procedureType) => {\r\n\treturn procedureType === ProcedureType.NATIONAL_NONPUBLIC_TYPE || procedureType === ProcedureType.NATIONAL_LOWCOST_TYPE;\r\n}\r\nexport const isNationalProcedure = (procedureType) => {\r\n\treturn procedureType === ProcedureType.NATIONAL_PUBLIC || procedureType === ProcedureType.NATIONAL_SOCIAL_SERVICES;\r\n}\r\nexport const isEuropeProcedure = (procedureType) => {\r\n\t return procedureType === ProcedureType.EUROPE_PUBLIC || procedureType === ProcedureType.EUROPE_SOCIAL_SERVICES;\r\n}\r\n\r\nexport const ProcedureType = {\r\n\tCOMPETITION: \"competition\",\r\n\tDEMAND: \"demand\",\r\n\tDYNAMICPURCHASINGSYSTEM: \"dynamicPurchasingSystem\",\r\n\tFRAMEWORKDEMAND: \"frameworkdemand\",\r\n\tLOWCOST: \"lowcost\",\r\n\tPUBLIC: \"public\",\r\n\tRESEARCH: \"research\",\r\n\tRESEARCHTECHNICAL: \"researchtechnical\",\r\n\tSOCIALSERVICES: \"socialservices\",\r\n\tSTANDARDPURCHASEREQUEST: \"standardpurchaserequest\",\r\n\tNONPUBLICEXECUTIVE: \"nonpublicExecutive\",\r\n\tEUROPE_PUBLIC: \"europePublic\",\r\n\tNATIONAL_PUBLIC: \"nationalPublic\",\r\n\tNATIONAL_SOCIAL_SERVICES: \"nationalSocialServices\",\r\n\tEUROPE_SOCIAL_SERVICES: \"europeSocialServices\",\r\n\tNATIONAL_NONPUBLIC_TYPE: \"nationalNonpublic\",\r\n\tNATIONAL_LOWCOST_TYPE: \"nationalLowcost\",\r\n\tNATIONAL_LOWCOST: \"nationalLowcost\",\r\n\tNATIONAL_RESEARCH_TYPE: \"nationalResearch\",\r\n\tCONCESSION: \"concession\"\r\n}\r\n\r\nexport const ProcedureTypeTr = {\r\n\t[ProcedureType.COMPETITION]: Tr(\"competition\"),\r\n\t[ProcedureType.DEMAND]: Tr(\"demand\"),\r\n\t[ProcedureType.DYNAMICPURCHASINGSYSTEM]: Tr(\"dynamicpurchasingsystem\"),\r\n\t[ProcedureType.FRAMEWORKDEMAND]: Tr(\"frameworkdemand\"),\r\n\t[ProcedureType.LOWCOST]: Tr(\"lowcost\"),\r\n\t[ProcedureType.PUBLIC]: Tr(\"public\"),\r\n\t[ProcedureType.RESEARCH]: Tr(\"research\"),\r\n\t[ProcedureType.RESEARCHTECHNICAL]: Tr(\"researchtechnical\"),\r\n\t[ProcedureType.SOCIALSERVICES]: Tr(\"socialservices\"),\r\n\t[ProcedureType.STANDARDPURCHASEREQUEST]: Tr(\"standardpurchaserequest\"),\r\n\t[ProcedureType.NONPUBLICEXECUTIVE]: Tr(ProcedureType.NONPUBLICEXECUTIVE),\r\n\t[ProcedureType.EUROPE_PUBLIC]: Tr(ProcedureType.EUROPE_PUBLIC),\r\n\t[ProcedureType.EUROPE_SOCIAL_SERVICES]: Tr(ProcedureType.EUROPE_SOCIAL_SERVICES),\r\n\t[ProcedureType.NATIONAL_PUBLIC]: Tr(ProcedureType.NATIONAL_PUBLIC),\r\n\t[ProcedureType.NATIONAL_SOCIAL_SERVICES]: Tr(ProcedureType.NATIONAL_SOCIAL_SERVICES),\r\n\t[ProcedureType.NATIONAL_NONPUBLIC_TYPE]: Tr(ProcedureType.NATIONAL_NONPUBLIC_TYPE),\r\n\t[ProcedureType.NATIONAL_LOWCOST_TYPE]: Tr(ProcedureType.NATIONAL_LOWCOST_TYPE),\r\n\t[ProcedureType.NATIONAL_LOWCOST]: Tr(ProcedureType.NATIONAL_LOWCOST_TYPE),\r\n\t[ProcedureType.NATIONAL_RESEARCH_TYPE]: Tr(ProcedureType.NATIONAL_RESEARCH_TYPE),\r\n\t[ProcedureType.CONCESSION]: Tr(ProcedureType.CONCESSION)\r\n}\r\n\r\nexport const ProcedureType_PZP_2021 = [\r\n\tProcedureType.EUROPE_PUBLIC,\r\n\tProcedureType.NATIONAL_PUBLIC,\r\n\tProcedureType.EUROPE_SOCIAL_SERVICES,\r\n\tProcedureType.NATIONAL_SOCIAL_SERVICES,\r\n\tProcedureType.NATIONAL_NONPUBLIC_TYPE,\r\n\tProcedureType.NATIONAL_LOWCOST_TYPE,\r\n\tProcedureType.NATIONAL_RESEARCH_TYPE,\r\n\tProcedureType.CONCESSION\r\n]\r\n\r\nexport default Object.values(ProcedureTypeTr)\r\n","import RouterPath from 'libs/RouterPath';\r\nimport {clearResource, setStepperState} from 'redux/actions';\r\nimport reduxStore from 'redux/store'\r\nimport {ProcedureTypeTr} from \"constants/ProcedureType\";\r\nimport Tr from 'translations/Translations';\r\n\r\nconst createItem = (label, items, onClick, disabled = false) => ({\r\n label,\r\n items,\r\n onClick,\r\n disabled,\r\n})\r\n\r\n//#TODO: translations\r\n\r\nconst newDeamandFunction = (passive, procedureType) => {\r\n reduxStore.dispatch(clearResource('demand'))\r\n reduxStore.dispatch(clearResource('dealingsList'))\r\n reduxStore.dispatch(clearResource('dealing'))\r\n reduxStore.dispatch(clearResource('demandHeader'));\r\n //reduxStore.dispatch(clearResource('demandActions'));\r\n reduxStore.dispatch(setStepperState())\r\n RouterPath.redirectWithSearch(RouterPath.myProcedure.steps.MP_1, {passive, procedureType})\r\n}\r\nexport default (procedures) => {\r\n\r\n return procedures.map(proc => {\r\n\r\n const items = [];\r\n if (proc.system) {\r\n items.push(createItem(Tr('activeForm'), undefined, () => newDeamandFunction(false, proc.procedureType)))\r\n }\r\n if (proc.passive) {\r\n items.push(\r\n createItem(Tr('passiveForm'), undefined, () => newDeamandFunction(true, proc.procedureType)))\r\n }\r\n return createItem(ProcedureTypeTr[proc.procedureType], items)\r\n })\r\n}\r\n\r\n","import React, {useState} from 'react'\r\nimport {ListItem, Tooltip, Typography, withStyles} from '@material-ui/core';\r\nimport Button from 'components/Button';\r\nimport PropTypes from 'prop-types'\r\nimport AddIcon from '@material-ui/icons/Add'\r\nimport Tr from 'translations/Translations'\r\n// import NewForm from 'components/popup/newForm/NewForm';\r\nimport NewProcedureMenu from './newProcedureMenu/NewProcedureMenu';\r\nimport menuItems from './newProcedureMenu/ListElements.values'\r\n\r\nconst style = theme => ({\r\n button: {\r\n minWidth: 'unset',\r\n padding: 0,\r\n },\r\n text: {\r\n marginBottom: -1,\r\n marginLeft: theme.spacing(1)\r\n },\r\n buttonTooltipWraper: {\r\n display: 'flex'\r\n }\r\n})\r\n\r\nfunction ListAddButton(\r\n {\r\n open,\r\n procedures,\r\n classes\r\n }) {\r\n // const [openCreateNew, setOpenCreateNew] = useState(false)\r\n const [anchorEl, setAnchorEl] = useState(null)\r\n\r\n const handleClick = (e) => {\r\n // setOpenCreateNew(true)\r\n setAnchorEl(anchorEl ? null : e.currentTarget)\r\n }\r\n const handleClose = () => {\r\n setAnchorEl(null)\r\n }\r\n\r\n const buttonLabel = open ?\r\n <>\r\n \r\n \r\n {Tr('new2')}\r\n \r\n \r\n : \r\n\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {buttonLabel}\r\n
\r\n
\r\n \r\n {/* */}\r\n \r\n
\r\n\r\n )\r\n}\r\n\r\nListAddButton.propTypes = {\r\n open: PropTypes.bool,\r\n className: PropTypes.string,\r\n}\r\n\r\nListAddButton.defaultProps = {\r\n open: false,\r\n}\r\n\r\nexport default withStyles(style)(ListAddButton)\r\n","export const devMode = !process.env.NODE_ENV || process.env.NODE_ENV === 'development';\r\nexport default () => devMode;","import RouterPath from \"libs/RouterPath\";\r\nimport {devMode} from \"../libs/isDevMode\";\r\nimport pjson from '../../package.json'\r\n\r\nconst redirect_uri = window.location.origin + RouterPath.baseRoute;\r\n\r\nlet SERVER_URL = window.location.origin\r\n\r\nif (devMode) {\r\n SERVER_URL = \"http://localhost/app-ezam\";\r\n //nie można innych używać, bo przeszliśmy na sesję http a jeśli różne domeny to sa różne sesje\r\n //jak coś gtrzeba skonfigurowac lokalne proxy https://confluence.marketplanet.pl/pages/viewpage.action?pageId=19693610\r\n}\r\n\r\nconst EXT_JS_LIBRARIES = {\r\n jquery: SERVER_URL + \"/js/jquery-3.3.1.min.js?v=\" + encodeURIComponent(pjson.version),\r\n szafir: SERVER_URL + \"/js/signature/szafirsdk-module.js?v=\" + encodeURIComponent(pjson.version)\r\n}\r\n\r\n\r\nconst BASE = SERVER_URL + \"/api\"\r\nconst BASE_MP = SERVER_URL + \"/mp\"\r\n\r\nconst oauth = {\r\n AUTHORIZE: (state) => BASE_MP + `/oauth/authorize?client_id=mp&response_type=code&state=${state}&redirect_uri=${redirect_uri}`,\r\n TOKEN: BASE_MP + '/oauth/token',\r\n LOGOUT: `${BASE}/oauth/logout`\r\n}\r\n\r\nconst base = {\r\n BASE,\r\n DEMANDS: BASE + \"/demands\",\r\n DEMAND: BASE + \"/demand\",\r\n RFX: BASE + \"/rfx\",\r\n CPV_LIST: BASE + '/cpv/list',\r\n MEASURE_UNITS: BASE + '/measureUnitTypes/list',\r\n DEALINGS: BASE + '/dealings',\r\n ITEMS: BASE + '/items',\r\n USER: BASE + '/user',\r\n SALES: BASE + '/sales',\r\n POLL: BASE + '/poll',\r\n UPLOAD: (csrf, encryptRoundId) => `${SERVER_URL}/repository/upload/api${encryptRoundId ? \"/encrypt?roundId=\" + encryptRoundId + \"&\" : \"?\"}CSRFToken=${csrf}`,\r\n //UPLOAD: (csrf) => `${BASE}/upload?CSRFToken=${csrf}`,\r\n ESPD: BASE + '/espd',\r\n PURCHASING_GROUP: BASE + \"/purchasingGroup\",\r\n ADMIN: BASE + \"/admin\",\r\n CHANG_LANGUAGE: (language, country, csrf, backUrl) => `${SERVER_URL}/servlet/HomeServlet?MP_module=common&MP_action=changeLocale&language=${language}&country=${country}&CSRFToken=${csrf}&backUrl=${encodeURIComponent(backUrl)}`\r\n}\r\n\r\nconst sales = {\r\n SALES_NOTIFICATION_SEND: (functionalityName) => `${base.SALES}/notification/${functionalityName}/send`\r\n}\r\n\r\nconst poll = {\r\n POLL_SAVE_RATING: () => `${base.POLL}`,\r\n POLL_GET: (pollType) => `${base.POLL}/${pollType}`\r\n}\r\n\r\nconst DEMAND_BASE = (id) => `${base.DEMAND}/${id}`;\r\nconst RFX_BASE = (id) => `${base.RFX}/${id}`;\r\n\r\nconst __DEMAND_AUTOSAVE = (id) => base.DEMAND + \"/autoSave/\" + id;\r\nconst __DEMAND_EXPOST_AUTOSAVE = (id) => base.DEMAND + \"/exPost/autoSave/\" + id;\r\nconst demand = {\r\n DEMAND_SAVE: base.DEMAND + \"/save\",\r\n DEMAND_SAVE_EX_POST: base.DEMAND + \"/exPost/save\",\r\n DEMAND_GET_NEW: (params) => base.DEMAND + `/-1${params}`,\r\n DEMAND_GET_BY_ID: (id, params) => `${DEMAND_BASE(id)}${params}`,\r\n DEMAND_COMMISION_USER_HISTORY: (id) => base.DEMAND + `/${id}/commission/users/history`,\r\n DEMAND_AUTOSAVE: (id) => __DEMAND_AUTOSAVE(id),\r\n DEMAND_AUTOSAVE_CHECK: (id) => __DEMAND_AUTOSAVE(id) + '/check',\r\n DEMAND_EXPOST_AUTOSAVE: (id) => __DEMAND_EXPOST_AUTOSAVE(id),\r\n DEMAND_EXPOST_AUTOSAVE_CHECK: (id) => __DEMAND_EXPOST_AUTOSAVE(id) + '/check',\r\n DEMAND_PREVIEW: (id) => DEMAND_BASE(id) + '/preview',\r\n DEMAND_ACTIONS: (id) => `${DEMAND_BASE(id)}/actions`,\r\n DEMAND_DELETE: (id) => `${DEMAND_BASE(id)}/delete`,\r\n DEMAND_CLONE: (id) => `${DEMAND_BASE(id)}/clone`,\r\n DEMAND_REALTED_OBJECTS: (id) => `${DEMAND_BASE(id)}/relatedObjects`,\r\n DEMAND_PRIVILEGES: (id) => `${DEMAND_BASE(id)}/privileges`,\r\n DEMAND_RFX_PRIVILEGES: (id) => `${DEMAND_BASE(id)}/rfxPrivileges`,\r\n DEMAND_UPDATE_NUMBER: (id) => `${DEMAND_BASE(id)}/updateNumber`\r\n}\r\n\r\nconst DEALINGS = (id) => `${base.DEALINGS}/${id}`\r\nconst DEALINGS_AUTOSAVE_DEALING = (id, dealingId) => DEALINGS(id) + '/autoSaveDealing/' + (dealingId)\r\n\r\nconst dealings = {\r\n DEALINGS,\r\n DEALINGS_SINGLE: (demandId, dealingId) => DEALINGS(demandId) + '/' + dealingId,\r\n DEALINGS_LIST: (demandId) => DEALINGS(demandId) + '/list',\r\n DEALINGS_SAVE: (id) => DEALINGS(id) + '/save',\r\n DEALINGS_VALIDATE: (id) => DEALINGS(id) + '/validate',\r\n DEALINGS_DELETE: (id) => DEALINGS(id) + '/delete',\r\n DEALINGS_AUTOSAVE: (id, dealingId) => DEALINGS_AUTOSAVE_DEALING(id, dealingId),\r\n DEALINGS_AUTOSAVE_CHECK: (id, dealingId) => DEALINGS_AUTOSAVE_DEALING(id, dealingId) + '/check',\r\n DEALINGS_AUTOSAVE_BATCH: (id) => DEALINGS(id) + '/autoSaveDealing',\r\n DEALINGS_IMPORT: (id) => DEALINGS(id) + '/import',\r\n DEALINGS_EXPORT: (id) => DEALINGS(id) + '/export',\r\n DEALINGS_WITH_CRITERION: (demandId, critId) => DEALINGS(demandId) + `/criterion/${critId}/matching`,\r\n DEALINGS_MATCHING_CRITERION: (demandId, stageId, criteriumType) => DEALINGS(demandId) + `/stage/${stageId}/criterium/${criteriumType}/matching`\r\n}\r\n\r\nconst DEALING = (id) => `${base.DEMAND}/${id}/dealing`;\r\n\r\nconst dealing = {\r\n DEALING_REALIZATION_VALUE: (demandId) => `${DEALING(demandId)}/realizationValue`,\r\n DEALING_FINAL_REALIZATION_VALUE: (demandId) => `${DEALING(demandId)}/finalRealizationValue`,\r\n DEALING_REALIZATION_VALUE_STATUS: (demandId) => `${DEALING(demandId)}/realizationValueStatus`,\r\n DEALING_REALIZATION_VALUE_PUBLISH: (demandId) => `${DEALING(demandId)}/realizationOfferAmount/publish`,\r\n DEALING_REALIZATION_VALUE_UNPUBLISH: (demandId) => `${DEALING(demandId)}/realizationOfferAmount/unpublish`,\r\n}\r\n\r\nconst PAPERS_GENERATOR = (id) => `${DEMAND_BASE(id)}/papersGenerator`;\r\n\r\nconst PAPERS_GENERATOR_PRINT = (identity, paper) => `${SERVER_URL}/servlet/HomeServlet?MP_module=common&MP_action=papersGeneratorPrinter&paper=${paper}&identity=${identity}`;\r\nconst PAPERS_GENERATOR_PRINT_SHARE = (identity, paper, shareSystem) => `${SERVER_URL}/servlet/HomeServlet?MP_module=common&MP_action=papersGeneratorPrinter&paper=${paper}&identity=${identity}&shareSystem=${shareSystem}`;\r\nconst PAPERS_GENERATOR_DEMAND_REPORT = (identity, report) => `${SERVER_URL}/servlet/HomeServlet?MP_module=demand&MP_action=${report}&demandIdentity=${identity}`;\r\n\r\nconst PAPERS_GENERATOR_DEMAND_ATTACHMENT_VERIFICATION_REPORT = (demandId) => `${SERVER_URL}/app/rfx/${demandId}/offer/attachment/verify/report`;\r\nconst PAPERS_GENERATOR_CORRESPONDENCE_ATTACHMENT_VERIFICATION_REPORT = (demandId) => `${SERVER_URL}/app/rfx/correspondence/buyer/${demandId}/supplier/attachments/printVerification/report`;\r\nconst PAPERS_GENERATOR_DEMAND_PROCESS_HISTORY = (demandId) => `${SERVER_URL}/servlet/HomeServlet?MP_module=demand&MP_action=demandPrintProcessHistory&documentIdentity=${demandId}&documentType=DEMAND&processConfigName=Demand`;\r\n\r\nconst papersGenerator = {\r\n PAPERS_GENERATOR,\r\n RFX_REQUEST_POSITION: (id) => PAPERS_GENERATOR(id) + `/rfxRequestPosition`,\r\n SWZ_PARAMS: (id) => PAPERS_GENERATOR(id) + `/swzParams`,\r\n RFX_INVITED_SUPPLIER_WITH_OFFER: (id) => PAPERS_GENERATOR(id) + `/rfxInvitedSupplierWithOffer`,\r\n RFX_INVITED_SUPPLIER_POSITION: (id, supplierId) => PAPERS_GENERATOR(id) + `/${supplierId}/rfxInvitedSupplierPosition`,\r\n SIWZ_GET_GENERATOR_PARAMS: (id) => PAPERS_GENERATOR(id) + `/swzParams`,\r\n XMM_UZP_PRESIDENT_PAPER: (id) => PAPERS_GENERATOR(id) + `/xmlUzpPresidentPaper`,\r\n GET_SUPPLIER_ATTACHMENTS_VERIFICATION: (id, supplierId) => PAPERS_GENERATOR(id) + `/${supplierId}/supplierAttachmentsVerification`,\r\n PAPERS_GENERATOR_PRINT,\r\n PAPERS_GENERATOR_PRINT_SHARE,\r\n PAPERS_GENERATOR_DEMAND_REPORT,\r\n PAPERS_GENERATOR_DEMAND_ATTACHMENT_VERIFICATION_REPORT,\r\n PAPERS_GENERATOR_CORRESPONDENCE_ATTACHMENT_VERIFICATION_REPORT,\r\n PAPERS_GENERATOR_DEMAND_PROCESS_HISTORY\r\n}\r\n\r\nconst EMAIL_LIST = (id) => `${DEMAND_BASE(id)}/emailList`;\r\n\r\nconst emailList = {\r\n EMAIL_LIST,\r\n EMAIL_LIST_ACTIONS: (demandId) => `${EMAIL_LIST(demandId)}/actions`,\r\n EMAIL_DETAILS: (demandId, emailId) => `${EMAIL_LIST(demandId)}/${emailId}/details`,\r\n EMAIL_PRINT: (demandId, emailId) => `${EMAIL_LIST(demandId)}/${emailId}/print`,\r\n}\r\n\r\nconst SCHEDULE = (id) => `${DEMAND_BASE(id)}/schedule`;\r\n\r\nconst schedule = {\r\n SCHEDULE,\r\n SCHEDULE_AUTOSAVE: (id) => SCHEDULE(id) + '/autoSave/' + id,\r\n SCHEDULE_AUTOSAVE_CHECK: (id) => SCHEDULE(id) + '/autoSave/' + id + '/check',\r\n SCHEDULE_SAVE: (id) => SCHEDULE(id) + '/save',\r\n SCHEDULE_VALIDATE: (id) => SCHEDULE(id) + '/validate',\r\n}\r\n\r\nconst COMMISSION = (id) => `${base.DEMAND}/${id}/commission/users`;\r\n\r\nconst commission = {\r\n COMMISSION,\r\n COMMISSION_AUTOSAVE: (demandId) => COMMISSION(demandId) + `/autoSave/${demandId}`,\r\n COMMISSION_AUTOSAVE_CHECK: (demandId) => COMMISSION(demandId) + `/autoSave/${demandId}/check`,\r\n COMMISSION_VALIDATE: (id) => COMMISSION(id) + '/validate',\r\n COMMISSION_AVAILABLE: (id) => COMMISSION(id) + `/available`,\r\n COMMISSION_HISTORY: (id) => COMMISSION(id) + `/history`,\r\n COMMISSION_DELETE_COMMISION_MEMBER: (demandId, id) => COMMISSION(demandId) + `/${id}`,\r\n COMMISSION_MARK_HISTORICAL_MEMBER: (demandId, id) => COMMISSION(demandId) + `/markHistorical/${id}`,\r\n COMMISSION_EXTERNAL: `${base.BASE}/commission/external-users`,\r\n}\r\n\r\nconst GUARANTEE = (id) => `${base.DEMAND}/${id}/guarantee`;\r\nconst GUARANTEE_AUTOSAVE = (id) => `${GUARANTEE(id)}/autoSave/${id}`;\r\n\r\nconst guarantee = {\r\n GUARANTEE,\r\n GUARANTEE_VALIDATE: (id) => GUARANTEE(id) + '/validate',\r\n GUARANTEE_AUTOSAVE: (id) => GUARANTEE_AUTOSAVE(id),\r\n GUARANTEE_AUTOSAVE_CHECK: (id) => GUARANTEE_AUTOSAVE(id) + '/check'\r\n}\r\n\r\nconst ESPD = (id) => `${base.ESPD}/${id}`;\r\nconst ESPD_AUTOSAVE = (id) => `${base.ESPD}/autoSave/${id}`;\r\n\r\nconst espd = {\r\n ESPD,\r\n ESPD_SAVE: (id) => ESPD(id) + `/save`,\r\n ESPD_VALIDATE: (id) => ESPD(id) + '/validate',\r\n ESPD_AUTOSAVE: (id) => ESPD_AUTOSAVE(id),\r\n ESPD_AUTOSAVE_CHECK: (id) => ESPD_AUTOSAVE(id) + `/check`,\r\n ESPD_EXPORT_FOR_DEMAND: (dealingId) => `${ESPD(dealingId)}/export`,\r\n ESPD_EXPORT_FOR_DEALING: (demandId, dealingId) => `${ESPD(demandId)}/dealing/${dealingId}/export`,\r\n ESPD_PRINT_FOR_DEMAND: (dealingId) => `${ESPD(dealingId)}/print`,\r\n ESPD_PRINT_FOR_DEALING: (demandId, dealingId) => `${ESPD(demandId)}/dealing/${dealingId}/print`,\r\n}\r\n\r\nconst CONTRACTOR = (id) => `${DEMAND_BASE(id)}/contractor`;\r\nconst CONTRACTOR_INVITE = (id) => CONTRACTOR(id) + '/invite';\r\n\r\nconst contractor = {\r\n CONTRACTOR_ADD: (id) => CONTRACTOR(id) + '/add',\r\n CONTRACTOR_GET_LIST: (id) => CONTRACTOR(id) + '/list',\r\n CONTRACTOR_GET_DETAILS: (id, contractorDepartmentId) => CONTRACTOR(id) + `/getContractorData/${contractorDepartmentId}`,\r\n CONTRACTOR_REMOVE: (id) => CONTRACTOR(id) + '/remove',\r\n CONTRACTOR_ONEPLACE: (id) => CONTRACTOR(id) + `/onePlace`,\r\n CONTRACTOR_VALIDATE: (id) => CONTRACTOR(id) + '/validate',\r\n CONTRACTOR_INVITE,\r\n CONTRACTOR_CHECK: (id) => CONTRACTOR_INVITE(id) + '/check',\r\n CONTRACTOR_GET_NIP_LIST: (id) => CONTRACTOR_INVITE(id) + '/nipprefix',\r\n}\r\n\r\nconst CONTRACTOR_VERIFICATION = (id) => `${DEMAND_BASE(id)}/evaluation/contractor`;\r\nconst contractorVerification = {\r\n CONTRACTOR_VERIFICATION_LIST: (id) => CONTRACTOR_VERIFICATION(id) + \"/list\",\r\n CONTRACTOR_VERIFICATION_STATUS: (id) => CONTRACTOR_VERIFICATION(id) + \"/status\",\r\n CONTRACTOR_VERIFICATION_PROCEDURE: (id) => CONTRACTOR_VERIFICATION(id) + \"/procedure\",\r\n CONTRACTOR_VERIFICATION_VALIDATE: (id) => CONTRACTOR_VERIFICATION(id) + \"/validate\"\r\n}\r\n\r\nconst user = {\r\n USER_DATA: base.USER + '/data',\r\n USER_PROFILE: base.USER + '/profile',\r\n USER_LOGGED_MENU_LIST: base.USER + '/logged/menu/list',\r\n USER_SESSION_TIME: base.USER + '/sessionTime',\r\n USER_SERVER_TIME: base.USER + '/serverTime',\r\n}\r\n\r\nconst header = {\r\n HEADER: (id) => DEMAND_BASE(id) + '/header'\r\n}\r\n\r\nconst client = {\r\n CLIENT_LOGO: BASE + '/client/logo',\r\n CLIENT_COLORS: BASE + '/client/colors'\r\n}\r\n\r\nconst publish = {\r\n PUBLISH_DEMAND: (id) => DEMAND_BASE(id) + '/publish',\r\n IS_PUBLISH_DEMAND: (id) => DEMAND_BASE(id) + '/published',\r\n PUBLISH_OJS_NOTICE: (id) => DEMAND_BASE(id) + '/publication/ojs/publish',\r\n ROLLBACK_OJS_NOTICE: (id) => DEMAND_BASE(id) + '/publication/ojs/rollback',\r\n CHECK_OJS_NOTICE: (id) => DEMAND_BASE(id) + '/publication/ojs/status',\r\n CHECK_PUBLICATION_LIMIT: (id) => DEMAND_BASE(id) + '/publication/checkLimit',\r\n PUBLISH_DEMAND_EX_POST: (id) => DEMAND_BASE(id) + '/exPost/goToFinish'\r\n}\r\n\r\nconst NOTICE = (id) => `${DEMAND_BASE(id)}/notice`;\r\n\r\nconst notice = {\r\n NOTICE,\r\n NOTICE_PREVIEW: (id) => NOTICE(id) + '/preview',\r\n NOTICE_VALIDATE: (id) => NOTICE(id) + '/validate',\r\n}\r\n\r\nconst SIWZ = (demandId) => `${base.DEMAND}/${demandId}/siwz`;\r\nconst SIWZ_ID = (demandId, id, source) => `${SIWZ(demandId)}/${source}/${id}`;\r\n\r\nconst siwz = {\r\n SIWZ,\r\n SIWZ_MOVE_FROM_REPO: (demandId) => SIWZ(demandId) + '/moveFromRepo',\r\n SIWZ_VALIDATE: (demandId) => SIWZ(demandId) + '/validate',\r\n SIWZ_VALIDATE_DOCUMENTS: (demandId) => SIWZ(demandId) + '/validate/documents',\r\n SIWZ_ID,\r\n SIWZ_ID_DOWNLOAD_HISTORY: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/downloadHistory`,\r\n SIWZ_ID_UPDATE_DESCRIPTION: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/updateDescription`,\r\n SIWZ_ID_UPDATE_SHARE: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/share`,\r\n SIWZ_ID_UPDATE_STATUS: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/updateStatus`,\r\n SIWZ_ID_PUBLISH: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/publish`,\r\n SIWZ_ID_VERSIONS: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/versions`,\r\n SIWZ_ID_UNPUBLISH: (demandId, id, source) => SIWZ_ID(demandId, id, source) + `/unpublish`,\r\n SIWZ_ID_GET_DOWNLOAD_URL: (demandId, id, source, openInBrowser) => SIWZ_ID(demandId, id, source) + `/url/${openInBrowser ? 'open' : 'download'}`,\r\n SIWZ_EDITABLE: (demandId) => SIWZ(demandId) + '/editable',\r\n SIWZ_TYPES: (demandId) => SIWZ(demandId) + `/types`,\r\n SIWZ_DOWNLOAD_ALL: (demandId) => SIWZ(demandId) + `/downloadZip`,\r\n SIWZ_ADD_BZP_NOTICE: (demandId) => SIWZ(demandId) + `/bzpNotice`,\r\n SIWZ_POST_PRINT_SWZ: (demandId) => SIWZ(demandId) + `/printSwz`,\r\n SIWZ_POST_SHARE_SWZ: (demandId) => SIWZ(demandId) + `/shareSwz`,\r\n}\r\n\r\nconst STATISTIC_CURRENT_ROUND = (demandId) => `${base.DEMAND}/${demandId}/statistic/getCurrentRound`;\r\nconst STATISTIC = (demandId, roundId) => `${base.DEMAND}/${demandId}/statistic/${roundId}`;\r\n\r\nconst statistic = {\r\n STATISTIC_CURRENT_ROUND,\r\n STATISTIC,\r\n}\r\n\r\nconst SUPPLIERS = (demandId, roundId) => `${base.DEMAND}/${demandId}/rfx/${roundId}/supplier`;\r\nconst supplier = {\r\n SUPPLIERS_ADD: (demandId, roundId) => `${SUPPLIERS(demandId, roundId)}/add`,\r\n SUPPLIERS_INVITE: (demandId, roundId) => `${SUPPLIERS(demandId, roundId)}/invite`,\r\n SUPPLIERS_LIST: (demandId, roundId) => `${SUPPLIERS(demandId, roundId)}/list`,\r\n SUPPLIERS_CHANGE_EXTERNAL_SIGN: (demandId, roundId, supplierId) => `${SUPPLIERS(demandId, roundId)}/${supplierId}/externalOfferSign`\r\n}\r\n\r\nconst rfxRound = {\r\n RFX_ROUND_CANCEL: (roundId) => `${RFX_BASE(roundId)}/cancel`,\r\n RFX_ROUND_PRIVILEGES: (roundId) => `${RFX_BASE(roundId)}/privileges`,\r\n}\r\n\r\nconst RFX_OFFERS_BASE = (roundId) => `${RFX_BASE(roundId)}/offer`;\r\nconst RFX_DECRYPTION_BASE = (roundId) => `${RFX_BASE(roundId)}/decryption`;\r\nconst offers = {\r\n RFX_OFFERS_LIST: (roundId) => `${RFX_OFFERS_BASE(roundId)}/list`,\r\n RFX_OFFERS_SEND_INVITE: (roundId) => `${RFX_OFFERS_BASE(roundId)}/sendInvite`,\r\n RFX_OFFERS_ATTACHMENTS: (roundId) => `${RFX_OFFERS_BASE(roundId)}/attachments`,\r\n RFX_OFFERS_ENVELOPE: (roundId) => `${RFX_OFFERS_BASE(roundId)}/envelope`,\r\n RFX_OFFERS_ENVELOPE_ID: (roundId, offerEnvelopeId) => `${RFX_OFFERS_BASE(roundId)}/envelope/${offerEnvelopeId}`,\r\n RFX_OFFERS_ADDITIONAL_ROUND_OFFERS: (roundId, supplierId) => `${RFX_OFFERS_BASE(roundId)}/supplier/${supplierId}/additionalRoundOffers`,\r\n RFX_OFFERS_ACTIONS: (roundId) => `${RFX_OFFERS_BASE(roundId)}/actions`,\r\n RFX_OFFERS_SUMMARY: (roundId, type) => `${RFX_OFFERS_BASE(roundId)}/summary/${type}`,\r\n RFX_OFFERS_PUBLIC_SESSION_START: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/processPublicSession`,\r\n RFX_OFFERS_PUBLIC_SESSION_STATUS: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/publicSessionStatus`,\r\n RFX_OFFERS_PUBLIC_SESSION_PROGRESS: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/publicSessionProgress`,\r\n RFX_OFFERS_DECRYPTION_START: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/processOfferDecryption`,\r\n RFX_OFFERS_DECRYPTION_STATUS: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/offerDecryptionStatus`,\r\n RFX_OFFERS_DECRYPTION_STATUS_LIGHT: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/offerDecryptionStatusLight`,\r\n RFX_OFFERS_DECRYPTION_PROGRESS: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/offerDecryptionProgress`,\r\n RFX_OFFERS_PUBLIC_SESSION_ONLINE_SAVE: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/saveSessionOnline`,\r\n RFX_OFFERS_PUBLIC_SESSION_ONLINE_STATUS: (roundId) => `${RFX_DECRYPTION_BASE(roundId)}/publicSessionOnlineStatus`\r\n}\r\n\r\nconst REPO = (demandId) => `${DEMAND_BASE(demandId)}/repo`;\r\nconst REPO_FOLDER = (demandId, folderId) => REPO(demandId) + `/folder/${folderId}`;\r\nconst REPO_FILE = (demandId, fileId) => REPO(demandId) + `/file/${fileId}`;\r\n\r\nconst repo = {\r\n REPO,\r\n REPO_EDITABLE: (demandId) => REPO(demandId) + \"/editable\",\r\n REPO_PUBLISH_OPENING_OFFER_FOLDER: (demandId) => REPO(demandId) + \"/publishOpeningOfferFolder\",\r\n REPO_VISIBILITY_TYPES: (demandId) => REPO(demandId) + \"/visibilityTypes\",\r\n REPO_FOLDER,\r\n REPO_FILES_VISIBILITY: (demandId, folderId) => REPO_FOLDER(demandId, folderId) + \"/filesVisibility\",\r\n REPO_FOLDER_SHARE: (demandId, folderId) => REPO_FOLDER(demandId, folderId) + \"/share\",\r\n REPO_DOWNLOAD_ALL: (demandId, folderId) => REPO_FOLDER(demandId, folderId) + \"/downloadZip\",\r\n REPO_DELETE_ALL_FOLDER_FILES: (demandId, folderId) => REPO_FOLDER(demandId, folderId) + \"/allFiles\",\r\n REPO_FILE,\r\n REPO_FILE_VISIBILITY: (demandId, fileId) => REPO_FILE(demandId, fileId) + \"/visibility\",\r\n REPO_FILE_SHARE: (demandId, fileId) => REPO_FILE(demandId, fileId) + \"/share\",\r\n REPO_FILE_DOWNLOAD_HISTORY: (demandId, fileId) => REPO_FILE(demandId, fileId) + \"/downloadHistory\",\r\n REPO_FILE_UPDATE_DESCRIPTION: (demandId, fileId) => REPO_FILE(demandId, fileId) + \"/updateDescription\",\r\n REPO_FILE_GET_DOWNLOAD_URL: (demandId, fileId, openInBrowser) => REPO_FILE(demandId, fileId) + `/url/${openInBrowser ? 'open' : 'download'}`\r\n}\r\n\r\nconst DEMAND_MODIFICATION = (demandId) => `${DEMAND_BASE(demandId)}/modify`;\r\n\r\nconst modification = {\r\n DEMAND_MODIFICATION,\r\n DEMAND_MODIFICATION_PUBLISH: (demandId) => DEMAND_MODIFICATION(demandId) + \"/publish\",\r\n DEMAND_MODIFICATION_CANCEL: (demandId) => DEMAND_MODIFICATION(demandId) + \"/rollback\",\r\n DEMAND_MODIFICATION_PUBLISH_OJS: (demandId) => DEMAND_MODIFICATION(demandId) + \"/ojs/publish\",\r\n DEMAND_MODIFICATION_ROLLBACK_OJS: (demandId) => DEMAND_MODIFICATION(demandId) + \"/ojs/rollback\",\r\n DEMAND_MODIFICATION_OJS_STATUS: (demandId) => DEMAND_MODIFICATION(demandId) + \"/ojs/status\",\r\n DEMAND_MODIFICATION_CHANGED: (demandId) => DEMAND_MODIFICATION(demandId) + \"/changed\"\r\n}\r\n\r\nconst DEMAND_SECTIONS = (demandId) => `${DEMAND_BASE(demandId)}/sections`;\r\n\r\nconst sections = {\r\n DEMAND_PREPARING_SECTIONS: (demandId) => `${DEMAND_SECTIONS(demandId)}/preparing`,\r\n DEMAND_EVALUATION_SECTIONS: (demandId) => `${DEMAND_SECTIONS(demandId)}/evaluation`,\r\n DEMAND_FINISHING_SECTIONS: (demandId) => `${DEMAND_SECTIONS(demandId)}/finishing`\r\n}\r\n\r\nconst OFFER_EVALUATION = (demandId) => `${DEMAND_BASE(demandId)}/evaluation/offer`;\r\n\r\nconst offerEvaluation = {\r\n OFFER_EVALUATION_LIST: (demandId, viewMode, roundType) => `${OFFER_EVALUATION(demandId)}/${viewMode}/${roundType}`,\r\n OFFER_EVALUATION_LIST_UPDATE_STATUS: (demandId, viewMode, roundType) => `${OFFER_EVALUATION(demandId)}/${viewMode}/${roundType}/changeOfferStatus`,\r\n OFFER_EVALUATION_LIST_UPDATE_SCORE: (demandId, viewMode, roundType) => `${OFFER_EVALUATION(demandId)}/${viewMode}/${roundType}/changeCriterionScore`,\r\n OFFER_EVALUATION_VALIDATE: (demandId) => `${OFFER_EVALUATION(demandId)}/validate`\r\n}\r\n\r\n\r\nconst OFFER_CHOICE = (demandId) => `${DEMAND_BASE(demandId)}/evaluation/choice`;\r\n\r\nconst offerChoice = {\r\n OFFER_CHOICE: (demandId) => `${OFFER_CHOICE(demandId)}`,\r\n OFFER_CHOICE_CANCEL_WHERE_NO_OFFERS: (demandId) => `${OFFER_CHOICE(demandId)}/cancelWhereNoOffers`,\r\n OFFER_CHOICE_POSITIONS_WITH_NO_OFFER: (demandId) => `${OFFER_CHOICE(demandId)}/positionWithNoOffer`,\r\n OFFER_CHOICE_PREPARE_ADDITIONAL_ROUND: (demandId, roundType) => `${OFFER_CHOICE(demandId)}/prepareAdditionalRound/${roundType.toLowerCase()}`,\r\n OFFER_CHOICE_PREPARE_AUCTION_INFO: (demandId, positionId) => `${OFFER_CHOICE(demandId)}/prepareAuctionInfo/${positionId}`,\r\n OFFER_CHOICE_REVOKE: (demandId, positionId) => `${OFFER_CHOICE(demandId)}/position/${positionId}/revoke`,\r\n OFFER_CHOICE_CREATE_ADDITIONAL_ROUND: (demandId) => `${OFFER_CHOICE(demandId)}/createAdditionalRound`,\r\n OFFER_CHOICE_GET_POSITION: (demandId, positionId) => `${OFFER_CHOICE(demandId)}/position/${positionId}`,\r\n OFFER_CHOICE_VALIDATE: (demandId) => `${OFFER_CHOICE(demandId)}/validate`,\r\n OFFER_CHOICE_JUSTIFICATIONS: (demandId) => `${OFFER_CHOICE(demandId)}/choiceJustificationBasis`,\r\n OFFER_CHOICE_PRIMARY_CHECK: (demandId) => `${OFFER_CHOICE(demandId)}/primaryTenderPathChoice/check`,\r\n OFFER_CHOICE_PRIMARY_DO_NEGOTIATIONS: (demandId) => `${OFFER_CHOICE(demandId)}/primaryTenderPathChoice/doNegotiations`,\r\n OFFER_CHOICE_PRIMARY_DO_OFFER_CHOICE: (demandId) => `${OFFER_CHOICE(demandId)}/primaryTenderPathChoice/chooseOffers`,\r\n}\r\n\r\nconst ADDITIONAL_ROUND = (demandId) => `${DEMAND_BASE(demandId)}/evaluation/additionalRound`;\r\nconst additionalRound = {\r\n ADDITIONAL_ROUND_CHANGE_DATES: (demandId) => `${ADDITIONAL_ROUND(demandId)}/changeDates`\r\n}\r\n\r\nconst DEMAND_ADDITIONAL_INFO = (demandId) => `${DEMAND_BASE(demandId)}/additionalInfo`;\r\nconst demandAdditionalInfo = {\r\n DEMAND_ADDITIONAL_INFO: DEMAND_ADDITIONAL_INFO,\r\n DEMAND_ADDITIONAL_INFO_VALIDATE: (id) => DEMAND_ADDITIONAL_INFO(id) + \"/validate\",\r\n DEMAND_ADDITIONAL_INFO_AUTOSAVE: (id) => `${DEMAND_ADDITIONAL_INFO(id)}/autoSave/${id}`,\r\n DEMAND_ADDITIONAL_INFO_AUTOSAVE_CHECK: (id) => `${DEMAND_ADDITIONAL_INFO(id)}/autoSave/${id}/check`\r\n}\r\n\r\nconst AUCTION = (demandId) => `${DEMAND_BASE(demandId)}/auction`;\r\nconst AUCTION_RFX = (demandId, roundId) => `${AUCTION(demandId)}/${roundId}`;\r\n\r\nconst auction = {\r\n AUCTION_PREPARE: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/prepare`,\r\n AUCTION_CREATE: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/create`,\r\n AUCTION_EDIT_DATES: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/editDates`,\r\n AUCTION_PUBLISH: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/publish`,\r\n AUCTION_UNPUBLISH: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/unpublish`,\r\n AUCTION_PAUSE: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/pause`,\r\n AUCTION_RESUME: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/resume`,\r\n AUCTION_CANCEL: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/cancel`,\r\n AUCTION_DELETE: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/delete`,\r\n AUCTION_DOWNLOAD_INVITATION: (demandId, roundId) => `${AUCTION_RFX(demandId, roundId)}/auctionInvitation`,\r\n AUCTION_ACCEPT: (demandId, roundId, auctionId) => `${AUCTION_RFX(demandId, roundId)}/accept/${auctionId}`,\r\n AUCTION_DETAILS: (demandId, roundId, auctionId) => `${AUCTION_RFX(demandId, roundId)}/details/${auctionId}`,\r\n}\r\n\r\nconst OFFER_CHOICE_RESULT = (demandId) => `${DEMAND_BASE(demandId)}/evaluation/result`;\r\nconst OFFER_CHOICE_RESULT_ID = (demandId, roundResultId) => `${OFFER_CHOICE_RESULT(demandId)}/${roundResultId}`;\r\nconst OFFER_CHOICE_RESULT_FILE = (demandId, roundResultId) => `${OFFER_CHOICE_RESULT_ID(demandId, roundResultId)}/file`;\r\nconst OFFER_CHOICE_RESULT_FILE_ID = (demandId, roundResultId, resultFileId) => `${OFFER_CHOICE_RESULT_FILE(demandId, roundResultId)}/${resultFileId}`;\r\n\r\nconst offerChoiceResult = {\r\n OFFER_CHOICE_RESULT: (demandId) => `${OFFER_CHOICE_RESULT(demandId)}`,\r\n OFFER_CHOICE_RESULT_GET: (demandId, roundResultId) => `${OFFER_CHOICE_RESULT_ID(demandId, roundResultId)}/get`,\r\n OFFER_CHOICE_RESULT_PRINT: (demandId, roundResultId) => `${OFFER_CHOICE_RESULT_ID(demandId, roundResultId)}/print`,\r\n OFFER_CHOICE_RESULT_SHARE: (demandId, roundResultId) => `${OFFER_CHOICE_RESULT_ID(demandId, roundResultId)}/share`,\r\n OFFER_CHOICE_RESULT_PUBLISH_UNTIL_DATE: (demandId, roundResultId) => `${OFFER_CHOICE_RESULT_ID(demandId, roundResultId)}/publishUntilDate`,\r\n OFFER_CHOICE_RESULT_FILE: (demandId, roundResultId) => OFFER_CHOICE_RESULT_FILE(demandId, roundResultId),\r\n OFFER_CHOICE_RESULT_FILE_PUBLISH: (demandId, roundResultId, resultFileId) => `${OFFER_CHOICE_RESULT_FILE_ID(demandId, roundResultId, resultFileId)}/publish`,\r\n OFFER_CHOICE_RESULT_FILE_UNPUBLISH: (demandId, roundResultId, resultFileId) => `${OFFER_CHOICE_RESULT_FILE_ID(demandId, roundResultId, resultFileId)}/unpublish`,\r\n OFFER_CHOICE_RESULT_FILE_DELETE: (demandId, roundResultId, resultFileId) => `${OFFER_CHOICE_RESULT_FILE_ID(demandId, roundResultId, resultFileId)}/delete`,\r\n OFFER_CHOICE_RESULT_FILE_DOWNLOAD_HISTORY: (demandId, roundResultId, resultFileId) => `${OFFER_CHOICE_RESULT_FILE_ID(demandId, roundResultId, resultFileId)}/history`,\r\n OFFER_CHOICE_RESULT_FILE_SHARE: (demandId, roundResultId, resultFileId) => `${OFFER_CHOICE_RESULT_FILE_ID(demandId, roundResultId, resultFileId)}/share`,\r\n OFFER_CHOICE_RESULT_FILE_DOWNLOAD_URL: (demandId, roundResultId, resultFileId, openInBrowser) => `${OFFER_CHOICE_RESULT_FILE_ID(demandId, roundResultId, resultFileId)}/url/${openInBrowser ? \"open\" : \"download\"}`,\r\n OFFER_CHOICE_RESULT_VALIDATE: (demandId) => `${OFFER_CHOICE_RESULT(demandId)}/validate`\r\n}\r\n\r\nconst AGREEMENTS = (demandId) => `${DEMAND_BASE(demandId)}/evaluation/agreement`;\r\n\r\nconst agreements = {\r\n AGREEMENTS_AVAILABLE: (demandId) => `${AGREEMENTS(demandId)}/without`,\r\n AGREEMENTS_CREATED: (demandId) => `${AGREEMENTS(demandId)}/created`,\r\n AGREEMENTS_CREATE_NO_AGREEMENT: (demandId) => `${AGREEMENTS(demandId)}/createNoAgreement`,\r\n AGREEMENTS_CREATE_AGREEMENT: (demandId) => `${AGREEMENTS(demandId)}/createAgreement`,\r\n AGREEMENTS_AVAILABLE_ORGANIZATIONS: (demandId) => `${AGREEMENTS(demandId)}/organizations`,\r\n AGREEMENTS_DELETE: (demandId, objId) => `${AGREEMENTS(demandId)}/delete/extObj/${objId}`,\r\n AGREEMENTS_DELETE_AGR: (demandId, objId) => `${AGREEMENTS(demandId)}/delete/agreement/${objId}`,\r\n AGREEMENTS_VALIDATE: (demandId) => `${AGREEMENTS(demandId)}/validate`\r\n}\r\n\r\nconst RESULT_NOTICE = (demandId) => `${DEMAND_BASE(demandId)}/resultNotice`;\r\nconst RESULT_NOTICE_ID = (demandId, resultNoticeId) => `${DEMAND_BASE(demandId)}/resultNotice/${resultNoticeId}`;\r\nconst RESULT_NOTICE_ATTACHMENT_ID = (demandId, resultNoticeId, resultNoticeAttachmentId) => `${RESULT_NOTICE_ID(demandId, resultNoticeId)}/file/${resultNoticeAttachmentId}`;\r\n\r\nconst resultNotice = {\r\n RESULT_NOTICE: (demandId) => `${RESULT_NOTICE(demandId)}`,\r\n RESULT_NOTICE_BZP: (demandId) => RESULT_NOTICE(demandId) + `/bzpNotice`,\r\n RESULT_NOTICE_PUBLISH_OJS_NOTICE: (demandId) => `${RESULT_NOTICE(demandId)}/publication/ojs/publish`,\r\n RESULT_NOTICE_CHECK_OJS_NOTICE: (demandId) => `${RESULT_NOTICE(demandId)}/publication/ojs/check`,\r\n RESULT_NOTICE_ROLLBACK_OJS_NOTICE: (demandId) => `${RESULT_NOTICE(demandId)}/publication/ojs/rollback`,\r\n RESULT_NOTICE_ID: (demandId, resultNoticeId) => `${RESULT_NOTICE_ID(demandId, resultNoticeId)}`,\r\n RESULT_NOTICE_VALIDATE: (demandId) => `${RESULT_NOTICE(demandId)}/validate`,\r\n RESULT_NOTICE_DELETE: (demandId, resultNoticeId, resultNoticeAttachmentId) => `${RESULT_NOTICE_ATTACHMENT_ID(demandId, resultNoticeId, resultNoticeAttachmentId)}/delete`,\r\n RESULT_NOTICE_PUBLISH: (demandId) => `${RESULT_NOTICE(demandId)}/publish`,\r\n RESULT_NOTICE_UNPUBLISH: (demandId) => `${RESULT_NOTICE(demandId)}/unpublish`,\r\n RESULT_NOTICE_ATTACHMENT_PUBLISH: (demandId, resultNoticeId, resultNoticeAttachmentId) => `${RESULT_NOTICE_ATTACHMENT_ID(demandId, resultNoticeId, resultNoticeAttachmentId)}/publish`,\r\n RESULT_NOTICE_ATTACHMENT_UNPUBLISH: (demandId, resultNoticeId, resultNoticeAttachmentId) => `${RESULT_NOTICE_ATTACHMENT_ID(demandId, resultNoticeId, resultNoticeAttachmentId)}/unpublish`,\r\n RESULT_NOTICE_DESCRIPTION: (demandId, resultNoticeId, resultNoticeAttachmentId) => `${RESULT_NOTICE_ATTACHMENT_ID(demandId, resultNoticeId, resultNoticeAttachmentId)}/description`,\r\n RESULT_NOTICE_DOWNLOAD_FILE_URL: (demandId, resultNoticeId, resultNoticeAttachmentId, openInBrowser) =>\r\n `${RESULT_NOTICE_ATTACHMENT_ID(demandId, resultNoticeId, resultNoticeAttachmentId)}/url/${openInBrowser ? \"open\" : \"download\"}`,\r\n RESULT_NOTICE_DOWNLOAD_FILE_HISTORY: (demandId, resultNoticeId, resultNoticeAttachmentId) =>\r\n `${RESULT_NOTICE_ATTACHMENT_ID(demandId, resultNoticeId, resultNoticeAttachmentId)}/downloadHistory`\r\n}\r\n\r\nconst EVALUATION_FINISH = (demandId) => `${DEMAND_BASE(demandId)}/evaluation/finish`;\r\nconst evaluationFinish = {\r\n EVALUATION_FINISH: (demandId) => `${EVALUATION_FINISH(demandId)}`\r\n}\r\n\r\nconst DEMAND_PLAN_REALIZATION = (demandId) => `${DEMAND_BASE(demandId)}/planRealization`;\r\nconst demandPlanRealization = {\r\n DEMAND_PLAN_REALIZATION: (demandId) => `${DEMAND_PLAN_REALIZATION(demandId)}`,\r\n DEMAND_PLAN_REALIZATION_VALIDATE: (demandId) => `${DEMAND_PLAN_REALIZATION(demandId)}/validate`\r\n}\r\n\r\nconst FINISH_DEMAND = (demandId) => `${DEMAND_BASE(demandId)}/finish`;\r\nconst finishDemand = {\r\n FINISH_DEMAND: (demandId) => `${FINISH_DEMAND(demandId)}`,\r\n FINISH_DEMAND_BACK_TO_OFFER_EVALUATION: (demandId) => `${FINISH_DEMAND(demandId)}/backToOfferEvaluation`,\r\n FINISH_DEMAND_BACK_TO_RESULT_NOTICE: (demandId) => `${FINISH_DEMAND(demandId)}/backToResultNotice`,\r\n FINISH_DEMAND_WITHDRAWAL_NOTICE_DATE: (demandId) => `${FINISH_DEMAND(demandId)}/withdrawalNoticeDate`,\r\n FINISH_DEMAND_CANCEL: (demandId) => `${FINISH_DEMAND(demandId)}/cancelDemand`,\r\n FINISH_DEMAND_FINISH: (demandId) => `${FINISH_DEMAND(demandId)}/finishDemand`,\r\n FINISH_DEMAND_VALIDATE: (demandId) => `${FINISH_DEMAND(demandId)}/validate`\r\n}\r\n\r\nconst ARCHIVING = (demandId) => `${DEMAND_BASE(demandId)}/archiving`;\r\nconst archiving = {\r\n ARCHIVING: (demandId) => `${ARCHIVING(demandId)}`,\r\n ARCHIVING_SCHEDULE: (demandId) => `${ARCHIVING(demandId)}/scheduleArchive`,\r\n ARCHIVING_VALIDATE: (demandId) => `${ARCHIVING(demandId)}/validate`\r\n}\r\n\r\nconst ADDITIONAL_ROUNDS_PASSIVE = (demandId) => `${DEMAND_BASE(demandId)}/additionalRoundPassive`;\r\nconst additionalRoundsPassive = {\r\n ADDITIONAL_ROUNDS_PASSIVE: (demandId) => `${ADDITIONAL_ROUNDS_PASSIVE(demandId)}`,\r\n ADDITIONAL_ROUNDS_PASSIVE_ROUND: (demandId, roundId) => `${ADDITIONAL_ROUNDS_PASSIVE(demandId)}/round/${roundId}`,\r\n ADDITIONAL_ROUNDS_PASSIVE_AVAILABLE_CONTRACTORS: (demandId) => `${ADDITIONAL_ROUNDS_PASSIVE(demandId)}/availableContractors`,\r\n ADDITIONAL_ROUNDS_PASSIVE_VALIDATE: (demandId) => `${ADDITIONAL_ROUNDS_PASSIVE(demandId)}/validate`\r\n}\r\n\r\nconst CORRESPONDENCE_BASE = `${base.RFX}/correspondence`;\r\n\r\nconst CORRESPONDENCE_BUYER_BASE = (roundId) => `${CORRESPONDENCE_BASE}/buyer/${roundId}`;\r\n\r\nconst correspondenceBuyer = {\r\n CORRESPONDENCE_BUYER_CTR_IN_ROUND: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/getContractorsInRound`,\r\n CORRESPONDENCE_BUYER_THREAD_LIST: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/thread/list`,\r\n CORRESPONDENCE_BUYER_NEW_MESSAGES: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/newMessages`,\r\n CORRESPONDENCE_BUYER_SEARCH: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/search`,\r\n\r\n CORRESPONDENCE_BUYER_THREAD_ADD: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/thread/add`,\r\n CORRESPONDENCE_BUYER_THREAD_AS_CRT_SEND: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/asContractor/thread/send`,\r\n CORRESPONDENCE_BUYER_BULK_MESSAGES_SEND: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/bulk/message/send`,\r\n CORRESPONDENCE_BUYER_BULK_MESSAGES_PUBLISH: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/bulk/message/publish`,\r\n CORRESPONDENCE_BUYER_PRIVILEGES: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/privileges`,\r\n CORRESPONDENCE_BUYER_PRINT: (roundId, type, before) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/${type}/${before === true ? \"before\" : (before === false ? \"after\" : \"all\")}/print`,\r\n CORRESPONDENCE_BUYER_SHARE: (roundId, type, before) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/${type}/${before === true ? \"before\" : (before === false ? \"after\" : \"all\")}/share`,\r\n\r\n CORRESPONDENCE_BUYER_MESSAGE_LIST: (roundId, threadId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/thread/${threadId}/message/list`,\r\n CORRESPONDENCE_BUYER_MESSAGE_CREATE: (roundId, threadId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/thread/${threadId}/message/create`,\r\n CORRESPONDENCE_BUYER_MESSAGE_MARK_AS_READ: (roundId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/messages/markAsRead`,\r\n CORRESPONDENCE_BUYER_FLAG: (roundId, threadId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/thread/${threadId}/flag`,\r\n CORRESPONDENCE_BUYER_UNFLAG: (roundId, threadId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/thread/${threadId}/unflag`,\r\n CORRESPONDENCE_BUYER_THREAD_EMAIL_LIST: (roundId, threadId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/thread/${threadId}/emailList`,\r\n\r\n CORRESPONDENCE_BUYER_MESSAGE_SEND: (roundId, messageId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/send`,\r\n CORRESPONDENCE_BUYER_MESSAGE_PUBLISH: (roundId, messageId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/publish`,\r\n CORRESPONDENCE_BUYER_MESSAGE_UPDATE: (roundId, messageId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/update`,\r\n CORRESPONDENCE_BUYER_MESSAGE_DELETE: (roundId, messageId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/delete`,\r\n\r\n CORRESPONDENCE_BUYER_ATTACHMENT_URL: (roundId, attachmentId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/attachment/${attachmentId}/url`,\r\n\r\n CORRESPONDENCE_BUYER_MESSAGE_EMAIL_DELIVERY: (roundId, messageId, type, identity) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/emailDelivery/${type}/${identity}`,\r\n CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_ZIP: (roundId, messageId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/attachments`,\r\n CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_CHECK_LIMIT: (roundId, messageId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/attachments/checkVerificationLimit`,\r\n CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_VERIFY: (roundId, messageId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/message/${messageId}/attachments/printVerification`,\r\n CORRESPONDENCE_BUYER_CONTRACTOR_EMAIL_LIST: (roundId, departmentId) => `${CORRESPONDENCE_BUYER_BASE(roundId)}/contractor/${departmentId}/emailList`,\r\n}\r\n\r\nconst CORRESPONDENCE_CONTRACTOR_BASE = (roundId) => `${CORRESPONDENCE_BASE}/contractor/${roundId}`;\r\n\r\nconst correspondenceContractor = {\r\n CORRESPONDENCE_CONTRACTOR_THREAD_LIST: (roundId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/thread/list`,\r\n CORRESPONDENCE_CONTRACTOR_NEW_MESSAGES: (roundId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/newMessages`,\r\n CORRESPONDENCE_CONTRACTOR_SEARCH: (roundId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/search`,\r\n\r\n CORRESPONDENCE_CONTRACTOR_THREAD_ADD: (roundId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/thread/add`,\r\n CORRESPONDENCE_CONTRACTOR_PRIVILEGES: (roundId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/privileges`,\r\n CORRESPONDENCE_CONTRACTOR_PRINT: (roundId, type, before) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/${type}/${before === true ? \"before\" : (before === false ? \"after\" : \"all\")}/print`,\r\n\r\n CORRESPONDENCE_CONTRACTOR_MESSAGE_LIST: (roundId, threadId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/thread/${threadId}/message/list`,\r\n CORRESPONDENCE_CONTRACTOR_MESSAGE_CREATE: (roundId, threadId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/thread/${threadId}/message/create`,\r\n CORRESPONDENCE_CONTRACTOR_MESSAGE_MARK_AS_READ: (roundId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/messages/markAsRead`,\r\n CORRESPONDENCE_CONTRACTOR_FLAG: (roundId, threadId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/thread/${threadId}/flag`,\r\n CORRESPONDENCE_CONTRACTOR_UNFLAG: (roundId, threadId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/thread/${threadId}/unflag`,\r\n\r\n CORRESPONDENCE_CONTRACTOR_MESSAGE_UPDATE: (roundId, messageId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/message/${messageId}/update`,\r\n CORRESPONDENCE_CONTRACTOR_MESSAGE_SEND: (roundId, messageId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/message/${messageId}/send`,\r\n CORRESPONDENCE_CONTRACTOR_MESSAGE_DELETE: (roundId, messageId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/message/${messageId}/delete`,\r\n\r\n CORRESPONDENCE_CONTRACTOR_ATTACHMENT_URL: (roundId, attachmentId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/attachment/${attachmentId}/url`,\r\n\r\n CORRESPONDENCE_CONTRACTOR_MESSAGE_ATTACHMENTS_ZIP: (roundId, messageId) => `${CORRESPONDENCE_CONTRACTOR_BASE(roundId)}/message/${messageId}/attachments`,\r\n}\r\n\r\nconst DEMAND_OFFERS_BASE = (id) => `${DEMAND_BASE(id)}/offers`\r\nconst DEMAND_OFFERS_STAGE_BASE = (id, stageId) => `${DEMAND_OFFERS_BASE(id)}/${stageId}`\r\n\r\nconst demandOffers = {\r\n DEMAND_OFFERS_CONTRACTOR_STAGES_LIST: (id, contractorDepartmentId) => `${DEMAND_OFFERS_BASE(id)}/stages/${contractorDepartmentId ? 'operator' : 'contractor'}`,\r\n DEMAND_OFFERS_CONTRACTOR_STAGE_SECTIONS_LIST: (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/sections/${supplierId ? 'operator' : 'contractor'}`,\r\n DEMAND_OFFERS_CONTRACTOR_STAGE_TRANSLATIONS: (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/translations/${supplierId ? 'operator' : 'contractor'}`,\r\n DEMAND_OFFERS_CONTRACTOR_STAGE_SECTION: (id, stageId, section, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/sections/${section}/${supplierId ? 'operator' : 'contractor'}`,\r\n DEMAND_OFFERS_STAGE_CURRENT_ROUND: (id, stageId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/currentRound`,\r\n DEMAND_OFFERS_CONTRACTOR_STAGE_PASSWORD: (id, stageId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/password`,\r\n DEMAND_OFFERS_VALIDATE: (demandId) => `${DEMAND_OFFERS_BASE(demandId)}/validate`\r\n}\r\n\r\nconst DEMAND_OFFERS_STAGE_CONTRACTOR_GENERAL_INFO_BASE = (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/${supplierId ? \"operator\" : \"contractor\"}/generalInfo`\r\nconst demandOffersGeneralInfo = {\r\n DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_BASIC_DATA: (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_CONTRACTOR_GENERAL_INFO_BASE(id, stageId, supplierId)}/basicData`,\r\n DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS: (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_CONTRACTOR_GENERAL_INFO_BASE(id, stageId, supplierId)}/documents`,\r\n DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS_DOWNLOAD_URL: (id, stageId, type, documentId, supplierId) => `${DEMAND_OFFERS_STAGE_CONTRACTOR_GENERAL_INFO_BASE(id, stageId, supplierId)}/documents/downloadUrl/${type}/${documentId}`,\r\n DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS_DOWNLOAD_ZIP: (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_CONTRACTOR_GENERAL_INFO_BASE(id, stageId, supplierId)}/documents/download/zip`,\r\n DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_PUBLIC_ANSWERS: (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_CONTRACTOR_GENERAL_INFO_BASE(id, stageId, supplierId)}/publicAnswers`,\r\n}\r\n\r\nconst DEMAND_OFFERS_STAGE_OFFER_BASE = (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/${supplierId ? 'operator' : 'contractor'}/offer`;\r\n\r\nconst demandOffersOffer = {\r\n DEMAND_OFFERS_STAGE_CONTRACTOR_OFFER: (demandId, stageId, supplierId) => DEMAND_OFFERS_STAGE_OFFER_BASE(demandId, stageId, supplierId),\r\n DEMAND_OFFERS_OFFER_MODE: (id, stage, supplierId, mode) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}`,\r\n DEMAND_OFFERS_OFFER_MODE_POSITIONS: (id, stage, mode, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/positions`,\r\n DEMAND_OFFERS_OFFER_MODE_FILES: (id, stage, mode, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/files`,\r\n DEMAND_OFFERS_OFFER_MODE_TEMPLATE: (id, stage, mode, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/template`,\r\n DEMAND_OFFERS_OFFER_MODE_FILE_DOWNLOAD_URL: (id, stage, mode, fileId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/file/${fileId}`,\r\n DEMAND_OFFERS_OFFER_MODE_FILE_DOWNLOAD_ZIP: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/documents/download/zip`,\r\n DEMAND_OFFERS_OFFER_FILE: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/file`,\r\n DEMAND_OFFERS_OFFER_FILES: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/files`,\r\n DEMAND_OFFERS_OFFER_FILE_ID: (id, stage, fileId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/file/${fileId}`,\r\n DEMAND_OFFERS_OFFER_FILE_ID_SIGN_FILE: (id, stage, fileId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/file/${fileId}/signFile`,\r\n\r\n DEMAND_OFFERS_OFFER_ESPD: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/espd`,\r\n DEMAND_OFFERS_OFFER_ESPDS: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/espds`,\r\n DEMAND_OFFERS_OFFER_ESPD_ID: (id, stage, espdId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/espd/${espdId}`,\r\n DEMAND_OFFERS_OFFER_ESPD_ID_SIGN_FILE: (id, stage, espdId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/espd/${espdId}/signFile`,\r\n DEMAND_OFFERS_OFFER_ESPD_MP_APP_URL: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/espd/mpAppUrl`,\r\n DEMAND_OFFERS_OFFER_ESPD_EXPORT_FILE_URL: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/espd/exportFileUrl`,\r\n DEMAND_OFFERS_OFFER_MODE_ESPD_DOWNLOAD_URL: (id, stage, mode, espdId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/espd/${espdId}`,\r\n\r\n DEMAND_OFFERS_OFFER_PLACE_OFFER: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/placeOffer`,\r\n DEMAND_OFFERS_OFFER_WITHDRAW_OFFER: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/withdrawOffer`,\r\n DEMAND_OFFERS_OFFER_SIGN_OFFER: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/signOffer`,\r\n DEMAND_OFFERS_OFFER_SIGN_WITHDRAW: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/signWithdraw`,\r\n DEMAND_OFFERS_OFFER_DOC_TO_SIGN: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/offerDocumentToSign`,\r\n DEMAND_OFFERS_OFFER_WITHDRAW_DOC_TO_SIGN: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/withdrawDocumentToSign`,\r\n DEMAND_OFFERS_OFFER_STOP_SIGNING_OPERATION: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/stopSigningOperation`,\r\n DEMAND_OFFERS_OFFER_REQUIRE_WITHDRAW_ENCRYPTION: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/requireWithdrawEncryption`,\r\n DEMAND_OFFERS_OFFER_DELETE_OFFER: (id, stage) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage)}/deleteOffer`,\r\n\r\n DEMAND_OFFERS_OFFER_POSITION: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/position`,\r\n DEMAND_OFFERS_OFFER_MODE_POSITION_ID: (id, stage, mode, positionId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/position/${positionId}`,\r\n\r\n DEMAND_OFFERS_OFFER_SNAPSHOTS: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/snapshots`,\r\n DEMAND_OFFERS_OFFER_SNAPSHOT_ID: (id, stage, snapshotId, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/snapshot/${snapshotId}`,\r\n DEMAND_OFFERS_OFFER_VERIFICATIONS: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/verifications`,\r\n DEMAND_OFFERS_OFFER_VERIFICATION_BEFORE_PLACE: (id, stage, supplierId) => `${DEMAND_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/verificationBeforePlaceOffer`,\r\n\r\n}\r\n\r\nconst DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE = (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/${supplierId ? 'operator' : 'contractor'}/additionalOffers`;\r\n\r\nconst demandAdditionalOffersOffer = {\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_MODE: (id, stage, mode, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_POSITIONS: (id, stage, mode, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/positions`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILES: (id, stage, mode, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/files`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILE_DOWNLOAD_URL: (id, stage, mode, fileId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/file/${fileId}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_FILE_DOWNLOAD_ZIP: (id, stage, mode, fileId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/documents/download/zip`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_FILE: (id, stage, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/file`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_FILES: (id, stage, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/files`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_FILE_ID: (id, stage, fileId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/file/${fileId}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_FILE_ID_SIGN_FILE: (id, stage, fileId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/file/${fileId}/signFile`,\r\n\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_ESPD_DOWNLOAD_URL: (id, stage, mode, espdId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/espd/${espdId}`,\r\n\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_PLACE_OFFER: (id, stage, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/placeOffer`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_WITHDRAW_OFFER: (id, stage) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/withdrawOffer`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_SIGN_OFFER: (id, stage) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/signOffer`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_SIGN_WITHDRAW: (id, stage) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/signWithdraw`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_DOC_TO_SIGN: (id, stage) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/offerDocumentToSign`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_WITHDRAW_DOC_TO_SIGN: (id, stage) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/withdrawDocumentToSign`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_STOP_SIGNING_OPERATION: (id, stage, positionId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/stopSigningOperation/${positionId}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_REQUIRE_WITHDRAW_ENCRYPTION: (id, stage) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/requireWithdrawEncryption`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_DELETE_OFFER: (id, stage) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage)}/deleteOffer`,\r\n\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_POSITION: (id, stage, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/position`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_MODE_POSITION_ID: (id, stage, mode, positionId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/position/${positionId}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_SNAPSHOTS: (id, stage, positionId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/snapshots/${positionId}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_SNAPSHOT_ID: (id, stage, positionId, snapshotId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/snapshot/${positionId}/${snapshotId}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_VERIFICATIONS: (id, stage, positionId, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/verifications/${positionId}`,\r\n DEMAND_ADDITIONAL_OFFERS_OFFER_VERIFICATION_BEFORE_PLACE: (id, stage, supplierId) => `${DEMAND_ADDITIONAL_OFFERS_STAGE_OFFER_BASE(id, stage, supplierId)}/verificationBeforePlaceOffer`,\r\n}\r\n\r\nconst DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE = (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/${supplierId ? 'operator' : 'contractor'}/additionalAuction`;\r\n\r\nconst demandAdditionalAuction = {\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_AUCTIONS: (id, stage) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage)}/auctions`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_AUCTIONS_ASSIGN: (id, stage, auctionId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage)}/${auctionId}/assignToAuction`,\r\n\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE: (id, stage, mode, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_ESPD_DOWNLOAD_URL: (id, stage, mode, espdId, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/espd/${espdId}`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_FILE_DOWNLOAD_URL: (id, stage, mode, fileId, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/file/${fileId}`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_FILES: (id, stage, mode, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/files`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_POSITION: (id, stage, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/position`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_MODE_POSITION_ID: (id, stage, mode, positionId, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/position/${positionId}`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_SNAPSHOTS: (id, stage, positionId, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/snapshots/${positionId}`,\r\n DEMAND_ADDITIONAL_AUCTIONS_OFFER_SNAPSHOT_ID: (id, stage, positionId, snapshotId, supplierId) => `${DEMAND_ADDITIONAL_AUCTIONS_STAGE_OFFER_BASE(id, stage, supplierId)}/snapshot/${positionId}/${snapshotId}`,\r\n}\r\n\r\n\r\nconst DEMAND_PREVIEW_STAGE_OFFER_BASE = (id, stageId, supplierId) => `${DEMAND_OFFERS_STAGE_BASE(id, stageId)}/${supplierId ? 'operator' : 'contractor'}/preview`;\r\nconst demandPublicationPreview = {\r\n DEMAND_PREVIEW_OFFER_MODE: (id, stage, supplierId, mode) => `${DEMAND_PREVIEW_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}`,\r\n DEMAND_PREVIEW_OFFER_MODE_SECTION: (id, stage, supplierId, mode) => `${DEMAND_PREVIEW_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/section`,\r\n DEMAND_PREVIEW_OFFER_MODE_POSITION_ID: (id, stage, mode, positionId, supplierId) => `${DEMAND_PREVIEW_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/position/${positionId}`,\r\n DEMAND_PREVIEW_OFFER_MODE_POSITION_ID_PRINT: (id, stage, mode, positionId, supplierId) => `${DEMAND_PREVIEW_STAGE_OFFER_BASE(id, stage, supplierId)}/${mode}/position/${positionId}/print`,\r\n}\r\n\r\nconst integrations = {\r\n SHAREPOINT: (demandId) => `${DEMAND_BASE(demandId)}/sharepoint`,\r\n EZDRP: (demandId) => `${DEMAND_BASE(demandId)}/ezdrp`,\r\n EZDPUW: (demandId) => `${DEMAND_BASE(demandId)}/ezdpuw`,\r\n EZDPUW_DOCUMENTS: (demandId, caseId) => `${DEMAND_BASE(demandId)}/ezdpuw/${caseId}/documents`\r\n}\r\n\r\nconst EZAMOWIENIA_BASE = `${BASE}/ezamowienia`\r\nconst ezamowienia = {\r\n EZAMOWIENIA_AUTHORIZATION_STATUS: `${EZAMOWIENIA_BASE}/authorizationStatus`,\r\n EZAMOWIENIA_REVOKE_TOKEN: `${EZAMOWIENIA_BASE}/revokeToken`,\r\n}\r\n\r\nconst ANNUAL_REPORT_BASE = `${BASE}/annualReport`\r\nconst annualReport = {\r\n ANNUAL_REPORT: ANNUAL_REPORT_BASE,\r\n ANNUAL_REPORT_REPORT_YEAR: (year) => `${ANNUAL_REPORT_BASE}/year/${year}`,\r\n ANNUAL_REPORT_REPORT_YEAR_AVAILABLE_ORGS: (year) => `${ANNUAL_REPORT_BASE}/year/${year}/availableOrgs`,\r\n ANNUAL_REPORT_REPORT_ID: (reportId) => `${ANNUAL_REPORT_BASE}/report/${reportId}`,\r\n ANNUAL_REPORT_REPORT_ID_ACTION: (reportId, action) => `${ANNUAL_REPORT_BASE}/report/${reportId}/${action}`,\r\n ANNUAL_REPORT_REPORT_ID_FORM_NAME: (reportId, formName) => `${ANNUAL_REPORT_BASE}/report/${reportId}/form/${formName}`,\r\n ANNUAL_REPORT_REPORT_ID_INITIALIZE_FORM_NAME: (reportId, formName) => `${ANNUAL_REPORT_BASE}/report/${reportId}/initialize/${formName}`,\r\n ANNUAL_REPORT_REPORT_ID_INITIALIZE_FROM_PREV_FORM_NAME: (reportId, formName) => `${ANNUAL_REPORT_BASE}/report/${reportId}/copyFromPrev/${formName}`,\r\n ANNUAL_REPORT_REPORT_ID_INITIALIZE_FORM_NAME_TABLE_ID: (reportId, formName, tableIdentity) => `${ANNUAL_REPORT_BASE}/report/${reportId}/initialize/${formName}/${tableIdentity}`,\r\n ANNUAL_REPORT_DICTIONARIES: ANNUAL_REPORT_BASE + \"/dictionaries\",\r\n ANNUAL_REPORT_TRANSLATIONS: ANNUAL_REPORT_BASE + \"/translations\",\r\n}\r\n\r\nconst CONTRACT_NOTICE = (demandId) => `${DEMAND_BASE(demandId)}/nationalNotice/contractNotice`\r\nconst nationalNotice = {\r\n NATIONAL_NOTICE_VALIDATE: (demandId) => `${DEMAND_BASE(demandId)}/nationalNotice/validate`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE: (demandId) => `${CONTRACT_NOTICE(demandId)}`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_CREATE_NEW_VERSION: (demandId) => `${CONTRACT_NOTICE(demandId)}/createNewVersion`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_DRAFT: (demandId) => `${CONTRACT_NOTICE(demandId)}/draft`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_TRANSLATIONS: (demandId) => `${CONTRACT_NOTICE(demandId)}/translations`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_DICTIONARIES: (demandId) => `${CONTRACT_NOTICE(demandId)}/dictionaries`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH: (demandId) => `${CONTRACT_NOTICE(demandId)}/publish`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_UPDATE: (demandId) => `${CONTRACT_NOTICE(demandId)}/publishUpdate`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_ROLLBACK: (demandId) => `${CONTRACT_NOTICE(demandId)}/publish/rollback`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_UPDATE_ROLLBACK: (demandId) => `${CONTRACT_NOTICE(demandId)}/publishUpdate/rollback`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_STATUS: (demandId) => `${CONTRACT_NOTICE(demandId)}/status`,\r\n NATIONAL_NOTICE_CONTRACT_MODIFICATION_NOTICE_STATUS: (demandId) => `${CONTRACT_NOTICE(demandId)}/modification/status`,\r\n NATIONAL_NOTICE_CONTRACT_NOTICE_DYNAMIC_DICTIONARIES: (demandId) => `${CONTRACT_NOTICE(demandId)}/dynamicDictionaries`,\r\n}\r\n\r\nconst PURCHASING_GROUP_ID = (groupId) => `${base.PURCHASING_GROUP}/${groupId}`\r\nconst purchasingGroup = {\r\n PURCHASING_GROUP_LIST: () => `${base.PURCHASING_GROUP}/list`,\r\n PURCHASING_GROUP_LIST_ACTIONS: () => `${base.PURCHASING_GROUP}/list/actions`,\r\n PURCHASING_GROUP_MEMBER_LIST: () => `${base.PURCHASING_GROUP}/member/list`,\r\n PURCHASING_GROUP_HEADER: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/header`,\r\n PURCHASING_GROUP_RELATED_OBJECTS: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/relatedObjects`,\r\n PURCHASING_GROUP_BASIC_DATA: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/basicData`,\r\n PURCHASING_GROUP_ARCHIVE_LIST: (groupId, archiveType) => `${PURCHASING_GROUP_ID(groupId)}/archiveList/${archiveType}`,\r\n PURCHASING_GROUP_ARCHIVE_ID: (groupId, archiveType, archiveId) => `${PURCHASING_GROUP_ID(groupId)}/archive/${archiveType}/${archiveId}`,\r\n\r\n PURCHASING_GROUP_COMMISSION: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/commission`,\r\n PURCHASING_GROUP_COMMISSION_HISTORY: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/commission/history`,\r\n\r\n PURCHASING_GROUP_SCHEDULE: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/schedule`,\r\n\r\n PURCHASING_GROUP_MEMBERS: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/members`,\r\n PURCHASING_GROUP_MEMBERS_AVAILABLE_CONCERNS: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/members/availableConcerns`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/members/member`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_REJECT: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/reject`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_RESTORE: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/restore`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_CONFIRM_PARTICIPATION: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/confirmParticipation`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_WITHDRAW_PARTICIPATION: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/withdrawParticipation`,\r\n\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_RESEND_INVITE_NOTIFICATION: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/resendInviteNotification`,\r\n\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/document`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT_ID: (groupId, memberId, documentId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/document/${documentId}`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT_ID_URL: (groupId, memberId, documentId, open) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/document/${documentId}/url/${open ? \"open\" : \"download\"}`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_USER: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/user`,\r\n PURCHASING_GROUP_MEMBERS_MEMBER_ID_USER_ID: (groupId, memberId, userId) => `${PURCHASING_GROUP_ID(groupId)}/members/member/${memberId}/user/${userId}`,\r\n\r\n\r\n PURCHASING_GROUP_MEMBERS_DOCUMENTS: (groupId, apiPath) => `${PURCHASING_GROUP_ID(groupId)}/${apiPath}/documents`,\r\n PURCHASING_GROUP_MEMBERS_DOCUMENTS_GENERATE_GROUP_AGREEMENT: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/members/documents/generateGroupAgreementDocument`,\r\n PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID: (groupId, apiPath, documentId) => `${PURCHASING_GROUP_ID(groupId)}/${apiPath}/documents/${documentId}`,\r\n PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_PUBLISH: (groupId, apiPath, documentId) => `${PURCHASING_GROUP_ID(groupId)}/${apiPath}/documents/${documentId}/publish`,\r\n PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_UNPUBLISH: (groupId, apiPath, documentId) => `${PURCHASING_GROUP_ID(groupId)}/${apiPath}/documents/${documentId}/unpublish`,\r\n PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_URL: (groupId, apiPath, documentId, open) => `${PURCHASING_GROUP_ID(groupId)}/${apiPath}/documents/${documentId}/url/${open ? \"open\" : \"download\"}`,\r\n\r\n PURCHASING_GROUP_SWZ_DOCUMENTS: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/swz/documents`,\r\n PURCHASING_GROUP_SWZ_DOCUMENTS_ID: (groupId, documentId) => `${PURCHASING_GROUP_ID(groupId)}/swz/documents/${documentId}`,\r\n PURCHASING_GROUP_SWZ_DOCUMENTS_ID_PUBLISH: (groupId, documentId) => `${PURCHASING_GROUP_ID(groupId)}/swz/documents/${documentId}/publish`,\r\n PURCHASING_GROUP_SWZ_DOCUMENTS_ID_UNPUBLISH: (groupId, documentId) => `${PURCHASING_GROUP_ID(groupId)}/swz/documents/${documentId}/unpublish`,\r\n PURCHASING_GROUP_SWZ_DOCUMENTS_ID_URL: (groupId, documentId, open) => `${PURCHASING_GROUP_ID(groupId)}/swz/documents/${documentId}/url/${open ? \"open\" : \"download\"}`,\r\n\r\n\r\n PURCHASING_GROUP_OPINION: (groupId, type) => `${PURCHASING_GROUP_ID(groupId)}/opinion/${type}`,\r\n PURCHASING_GROUP_OPINION_ID: (groupId, type, opinionId) => `${PURCHASING_GROUP_ID(groupId)}/opinion/${type}/${opinionId}`,\r\n PURCHASING_GROUP_OPINION_ID_MARK_AS_READ: (groupId, type, opinionId) => `${PURCHASING_GROUP_ID(groupId)}/opinion/${type}/${opinionId}/markAsRead`,\r\n PURCHASING_GROUP_OPINION_AVAILABLE_MEMBERS: (groupId, type) => `${PURCHASING_GROUP_ID(groupId)}/opinion/${type}/availableMembers`,\r\n PURCHASING_GROUP_OPINION_MEMBER_ID: (groupId, type, memberId) => `${PURCHASING_GROUP_ID(groupId)}/opinion/${type}/member/${memberId}`,\r\n PURCHASING_GROUP_OPINION_ID_MESSAGE_NEW: (groupId, type, opinionId) => `${PURCHASING_GROUP_ID(groupId)}/opinion/${type}/${opinionId}/message/new`,\r\n PURCHASING_GROUP_OPINION_ID_MESSAGE_ID: (groupId, type, opinionId, messageId) => `${PURCHASING_GROUP_ID(groupId)}/opinion/${type}/${opinionId}/message/${messageId}`,\r\n\r\n\r\n PURCHASING_GROUP_FINISH_PREPARING: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/finishPreparing`,\r\n\r\n PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_TEMPLATE_FORM_EXPORT: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/papersGenerator/templateFormExport`,\r\n PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_LEADING_DOCUMENT: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/papersGenerator/gzmLeadingDocument`,\r\n PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_MANAGEMENT_RESOLUTION: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/papersGenerator/gzmManagementResolution`,\r\n PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DRAFT_GROUP_AGREEMENT: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/papersGenerator/gzmDraftGroupAgreement`,\r\n PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DOCUMENT_TO_SIGN: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/papersGenerator/gzmDocumentToSign`,\r\n\r\n PURCHASING_GROUP_COLLECTING_SCHEDULE: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/collectingSchedule`,\r\n\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/template`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_AVAILABLE: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/template/availableTemplates`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_ID: (groupId, memberId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_DRAFT: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/draft`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_CLEAR_DRAFT: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/clearDraft`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ACCEPT: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/accept`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_REJECT: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/reject`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ASK_FOR_EDIT: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/askForEdit`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ALLOW_EDIT: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/allowEdit`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_REJECT_EDIT: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/rejectEdit`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ARCHIVE_LIST: (groupId, memberId, formId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/archiveList`,\r\n PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ARCHIVE_ID: (groupId, memberId, formId, archiveId) => `${PURCHASING_GROUP_ID(groupId)}/template/member/${memberId}/form/${formId}/archive/${archiveId}`,\r\n\r\n PURCHASING_GROUP_FINISH: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/finish`,\r\n PURCHASING_GROUP_FINISH_DEALINGS_CHANGED: (groupId) => `${PURCHASING_GROUP_ID(groupId)}/finish/sendDealingsChangedNotification`\r\n\r\n}\r\n\r\nconst PURCHASING_GROUP_SECTIONS = (groupId) => `${PURCHASING_GROUP_ID(groupId)}/sections`\r\n\r\nconst purchasingGroupSections = {\r\n PURCHASING_GROUP_SECTIONS_PREPARING: (groupId) => `${PURCHASING_GROUP_SECTIONS(groupId)}/preparing`,\r\n PURCHASING_GROUP_SECTIONS_COLLECTING_DATA: (groupId) => `${PURCHASING_GROUP_SECTIONS(groupId)}/collectingData`,\r\n PURCHASING_GROUP_SECTIONS_SECTION: (groupId) => `${PURCHASING_GROUP_SECTIONS(groupId)}/section`\r\n}\r\n\r\nconst PURCHASING_GROUP_TEMPLATES = `${base.PURCHASING_GROUP}/template`\r\n\r\nconst purchasingGroupTemplate = {\r\n PURCHASING_GROUP_TEMPLATES_LIST: () => `${PURCHASING_GROUP_TEMPLATES}/list`,\r\n PURCHASING_GROUP_TEMPLATES_LIST_HAS_EDIT: () => `${PURCHASING_GROUP_TEMPLATES}/list/hasEdit`,\r\n PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID: (templateId) => `${PURCHASING_GROUP_TEMPLATES}/${templateId}`,\r\n PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_ACTIVATE: (templateId) => `${PURCHASING_GROUP_TEMPLATES}/${templateId}/activate`,\r\n PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_DEACTIVATE: (templateId) => `${PURCHASING_GROUP_TEMPLATES}/${templateId}/deactivate`,\r\n PURCHASING_GROUP_TEMPLATES_TEMPLATE_ID_CLONE: (templateId) => `${PURCHASING_GROUP_TEMPLATES}/${templateId}/clone`,\r\n}\r\n\r\nconst ADMIN_USER_REGISTRATION = `${base.ADMIN}/user/registration`\r\n\r\nconst adminUserRegistrations = {\r\n ADMIN_USER_REGISTRATION_LIST: `${ADMIN_USER_REGISTRATION}/list`,\r\n ADMIN_USER_REGISTRATION_AVAILABLE_ORGS: `${ADMIN_USER_REGISTRATION}/availableOrgs`,\r\n ADMIN_USER_REGISTRATION_ID: (regId) => `${ADMIN_USER_REGISTRATION}/${regId}`,\r\n ADMIN_USER_REGISTRATION_ID_REJECT: (regId) => `${ADMIN_USER_REGISTRATION}/${regId}/reject`,\r\n ADMIN_USER_REGISTRATION_ID_ACCEPT: (regId) => `${ADMIN_USER_REGISTRATION}/${regId}/accept`,\r\n ADMIN_USER_REGISTRATION_ID_ORGANIZATION: (regId) => `${ADMIN_USER_REGISTRATION}/${regId}/organization`\r\n}\r\n\r\nconst extensions = () => `${base.BASE}/file/extensions`\r\nconst hotJarSettings = {hjid: 1296211, hjsv: 6}\r\n\r\nexport default {\r\n redirect_uri,\r\n oauth,\r\n ...base,\r\n ...sales,\r\n ...demand,\r\n ...user,\r\n ...schedule,\r\n ...siwz,\r\n ...contractor,\r\n ...commission,\r\n ...espd,\r\n ...guarantee,\r\n ...contractor,\r\n ...user,\r\n ...header,\r\n ...client,\r\n ...notice,\r\n ...repo,\r\n ...publish,\r\n ...dealings,\r\n ...dealing,\r\n ...statistic,\r\n ...supplier,\r\n ...offers,\r\n ...modification,\r\n ...rfxRound,\r\n ...correspondenceBuyer,\r\n ...correspondenceContractor,\r\n ...papersGenerator,\r\n ...emailList,\r\n ...sections,\r\n ...contractorVerification,\r\n ...offerEvaluation,\r\n ...offerChoice,\r\n ...offerChoiceResult,\r\n ...agreements,\r\n ...evaluationFinish,\r\n ...resultNotice,\r\n ...finishDemand,\r\n ...archiving,\r\n ...additionalRound,\r\n ...demandAdditionalInfo,\r\n ...auction,\r\n ...additionalRoundsPassive,\r\n ...demandPlanRealization,\r\n ...poll,\r\n ...integrations,\r\n ...demandOffers,\r\n ...ezamowienia,\r\n ...nationalNotice,\r\n ...purchasingGroup,\r\n ...purchasingGroupSections,\r\n ...purchasingGroupTemplate,\r\n ...adminUserRegistrations,\r\n ...demandOffers,\r\n ...demandOffersGeneralInfo,\r\n ...demandOffersOffer,\r\n ...demandAdditionalOffersOffer,\r\n ...demandAdditionalAuction,\r\n ...demandPublicationPreview,\r\n ...annualReport,\r\n extensions,\r\n SERVER_URL,\r\n EXT_JS_LIBRARIES,\r\n hotJarSettings,\r\n}","\r\nexport default {\r\n\tBAD_REQUEST: 400,\r\n\tUNAUTHORIZED: 401,\r\n\tFORBIDDEN: 403,\r\n\tNOT_FOUND: 404,\r\n\tINTERNAL_SERVER_ERROR: 500,\r\n}","export default ({url, name}) => {\r\n\tlet a = document.createElement('a');\r\n\ta.href=url;\r\n\ta.target='_blank'\r\n\ta.setAttribute(\"download\", name)\r\n\ta.click();\r\n}","import Axios from 'axios';\r\nimport reduxStore from 'redux/store'\r\nimport HttpCodes from 'constants/HttpCodes';\r\nimport RouterPath from './RouterPath';\r\nimport querystring from 'querystring'\r\nimport downloadFile from './downloadFile';\r\nimport {setResource, setSaveStatusError} from 'redux/actions';\r\nimport Tr from 'translations/Translations';\r\nimport Endpoints from 'constants/Endpoints';\r\nimport {Sema as semaphore} from 'async-sema';\r\nimport moment from 'moment';\r\n\r\nconst _sem = new semaphore(1);\r\n\r\nconst _refreshSessionTime = () => {\r\n\tconst state = reduxStore.getState();\r\n\tconst sessionTime = state.resources.sessionTime;\r\n\tif (sessionTime) {\r\n\t\tconst endTime = moment().add(sessionTime.time, 's')\r\n\t\treduxStore.dispatch(setResource('sessionTime', {\r\n\t\t\ttime: sessionTime.time,\r\n\t\t\tendTime\r\n\t\t}))\r\n\t}\r\n}\r\n\r\nconst _paramsSerializer = (params) => {\r\n\treturn querystring.stringify(params)\r\n}\r\n\r\nconst _executeRequest = async ({ headers, ...params }) => {\r\n\tlet auth = JSON.parse(localStorage.getItem(\"authorize\"))\r\n\tconst request = await Axios({\r\n\t\theaders: {\r\n\t\t\t'Authorization': 'Bearer ' + auth.access_token,\r\n\t\t\t...headers,\r\n\t\t},\r\n\t\t...params,\r\n\t\tparamsSerializer: _paramsSerializer,\r\n\t});\r\n\t_refreshSessionTime();\r\n\treturn request;\r\n}\r\n\r\nconst _logout = (url) => {\r\n\tlocalStorage.removeItem('authorize');\r\n\tconst location = window.location;\r\n\tconst search = location.search\r\n\tconst params = querystring.parse(search.substr(1))\r\n\tlet state = params['state'];\r\n\tif (!state) {\r\n\t\tstate = window.btoa(location.pathname + location.search);\r\n\t}\r\n\r\n\tconst redUrl = url ? url : RouterPath.BUYER_INIT + '?' + querystring.stringify({\r\n\t\tstate\r\n\t})\r\n\twindow.location.href = redUrl;\r\n}\r\n\r\nexport const SoftLogout = async (url) => {\r\n\ttry {\r\n\t\tawait _logout(url);\r\n\t} catch (error) {\r\n\t\tthrow error;\r\n\t}\r\n}\r\n\r\nconst _refresToken = async () => {\r\n\tconst auth = JSON.parse(localStorage.getItem(\"authorize\"))\r\n\ttry {\r\n\t\tconsole.info(\"RestRequest - refreshing token...\");\r\n\t\tconst res = await Axios({\r\n\t\t\tmethod: 'post',\r\n\t\t\turl: Endpoints.oauth.TOKEN,\r\n\t\t\tparams: {\r\n\t\t\t\tclient_id: 'mp',\r\n\t\t\t\tgrant_type: 'refresh_token',\r\n\t\t\t\trefresh_token: auth.refresh_token\r\n\t\t\t},\r\n\t\t});\r\n\t\tlocalStorage.setItem(\"authorize\", JSON.stringify(res.data))\r\n\t} catch (error) {\r\n\t\tthrow error;\r\n\t}\r\n}\r\nexport const RefreshToken = async () => {\r\n\ttry {\r\n\t\tawait _refresToken();\r\n\t} catch (error) {\r\n\t\tthrow error;\r\n\t}\r\n}\r\n\r\nconst _restRequest = async (args) => {\r\n\tawait _sem.acquire();\r\n\ttry {\r\n\t\treturn await _executeRequest(args);\r\n\t} catch (error) {\r\n\t\tconst response = error.response;\r\n\r\n\t\tswitch (response.status) {\r\n\t\t\tcase HttpCodes.UNAUTHORIZED:\r\n\t\t\t\ttry {\r\n\t\t\t\t\tawait _refresToken();\r\n\t\t\t\t\treturn await _executeRequest(args);\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\t_logout();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase HttpCodes.FORBIDDEN:\r\n\t\t\t\treduxStore.dispatch(setSaveStatusError(Tr('forbidden_error')));\r\n\t\t\t\tthrow error;\r\n\t\t\tcase HttpCodes.BAD_REQUEST:\r\n\t\t\t\treduxStore.dispatch(setSaveStatusError(Tr('bad_request_error')));\r\n\t\t\t\tthrow error;\r\n\t\t\tcase HttpCodes.NOT_FOUND:\r\n\t\t\t\treduxStore.dispatch(setSaveStatusError(Tr('not_found_request_error')));\r\n\t\t\t\tthrow error;\r\n\t\t\tcase HttpCodes.INTERNAL_SERVER_ERROR:\r\n\t\t\t\treduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n\t\t\t\tthrow error;\r\n\t\t\tdefault:\r\n\t\t\t\tthrow error;\r\n\t\t}\r\n\t} finally {\r\n\t\t_sem.release()\r\n\t}\r\n}\r\n\r\nconst RestRequest = async (params) => {\r\n\tconst res = await _restRequest(params);\r\n\treturn res.data;\r\n}\r\n\r\nexport const RestRequestGET = async (url, other) => RestRequest({ url, method: 'get', ...other });\r\nexport const RestRequestDELETE = async (url, other) => RestRequest({ url, method: 'delete', ...other });\r\nexport const RestRequestPOST = async (url, data, other) => RestRequest({ url, data, method: 'post', ...other });\r\nexport const RestRequestPUT = async (url, data, other) => RestRequest({ url, data, method: 'put', ...other });\r\n\r\nexport const RestRequestBLOB = async (url, other) => {\r\n\tconst res = await _restRequest({\r\n\t\turl,\r\n\t\tmethod: 'get',\r\n\t\tresponseType: 'blob',\r\n\t\t...other\r\n\t});\r\n\r\n\tconst type = res.headers['content-type'];\r\n\tif(type.startsWith(\"application/json\")) {\r\n\t\tconst ob = JSON.parse(await res.data.text());\r\n\t\tif(ob.success === false) {\r\n\t\t\treturn ob;\r\n\t\t}\r\n\t}\r\n\r\n\tconst contentDisposition = res.headers['content-disposition'];\r\n\tlet name = contentDisposition.indexOf(\"filename*=\") >= 0\r\n\t\t? contentDisposition.split(\"filename*=\")[1]\r\n\t\t: contentDisposition.split(\"filename=\")[1];\r\n\tname = decodeURIComponent(name);\r\n\tconst fileUrl = window.URL.createObjectURL(\r\n\t\tnew Blob([res.data], { type })\r\n\t)\r\n\tdownloadFile({ url: fileUrl, name })\r\n\twindow.URL.revokeObjectURL(fileUrl)\r\n}\r\n\r\nexport const RestRequestBLOBBase64Encoded = async (url, other) => {\r\n\tconst res = await _restRequest({\r\n\t\turl,\r\n\t\tmethod: 'get',\r\n\t\tresponseType: 'blob',\r\n\t\t...other\r\n\t});\r\n\r\n\tconst type = res.headers['content-type'];\r\n\tif(type.startsWith(\"application/json\")) {\r\n\t\tconst ob = JSON.parse(await res.data.text());\r\n\t\tif(ob.success === false || ob.success === true) {\r\n\t\t\treturn ob;\r\n\t\t}\r\n\t}\r\n\tconst b64 = await blobToBase64(res.data)\r\n\r\n\tconst result = {\"success\":true,\r\n\t\t\"result\":b64.split(\",\")[1],\r\n \"errors\":null\r\n }\r\n\r\n\treturn result;\r\n\r\n}\r\n\r\nfunction blobToBase64(blob) {\r\n\treturn new Promise((resolve, _) => {\r\n\t\tconst reader = new FileReader();\r\n\t\treader.onloadend = () => resolve(reader.result);\r\n\t\treader.readAsDataURL(blob);\r\n\t});\r\n}\r\n\r\nexport default RestRequest;","import Endpoints from 'constants/Endpoints'\r\nimport { RestRequestGET, SoftLogout } from 'libs/RestRequest';\r\nimport Axios from 'axios';\r\n\r\nconst logout = async () => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.oauth.LOGOUT);\r\n\t\tawait SoftLogout(resp.result);\r\n\t} catch (error) {\r\n\t\tconsole.error({error})\r\n\t}\r\n}\r\n\r\nconst getToken = async (code) => {\r\n\ttry {\r\n\t\tconst res = await Axios({\r\n\t\t\tmethod: 'post',\r\n\t\t\turl: Endpoints.oauth.TOKEN,\r\n\t\t\tparams: {\r\n\t\t\t\tgrant_type: 'authorization_code',\r\n\t\t\t\tcode,\r\n\t\t\t\tredirect_uri: Endpoints.redirect_uri,\r\n\t\t\t\tclient_id: 'mp'\r\n\t\t\t},\r\n\t\t});\r\n\t\tlocalStorage.setItem(\"authorize\", JSON.stringify(res.data));\r\n\t\treturn true;\r\n\t} catch (error) {\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\nexport default {\r\n\tlogout,\r\n\tgetToken,\r\n};","import React from 'react'\r\nimport LogoutIcon from '@material-ui/icons/PowerSettingsNew'\r\nimport ListItem from './ListItem';\r\nimport OAuthService from 'services/OAuthService';\r\nimport Tr from 'translations/Translations';\r\n\r\nfunction LogoutButton() {\r\n\treturn (\r\n\t\t OAuthService.logout()}\r\n\t\t/>\r\n\t)\r\n}\r\n\r\nexport default LogoutButton\r\n","\r\nimport React from 'react'\r\nimport { Drawer, List } from '@material-ui/core';\r\nimport { withStyles } from '@material-ui/styles';\r\nimport clsx from 'clsx';\r\nimport ListItem from './ListItem';\r\nimport OpenElement from './OpenElement';\r\nimport Logo from './Logo';\r\nimport ListAddButton from './ListAddButton';\r\nimport LogoutButton from './LogoutButton';\r\nimport { setMenuOpen, setInnerMenuOpen } from 'redux/actions'\r\nimport { connect } from 'react-redux'\r\n\r\nimport GroupWorkIcon from '@material-ui/icons/GroupWork';\r\nimport StarIcon from '@material-ui/icons/Star';\r\nimport ShoppingCartIcon from '@material-ui/icons/ShoppingCart';\r\nimport PeopleIcon from '@material-ui/icons/People';\r\nimport PublicIcon from '@material-ui/icons/Public';\r\nimport DescriptionIcon from '@material-ui/icons/Description';\r\nimport GavelIcon from '@material-ui/icons/Gavel';\r\nimport LocalLibraryIcon from '@material-ui/icons/LocalLibrary';\r\nimport InsertDriveFileIcon from '@material-ui/icons/InsertDriveFile';\r\nimport HowToRegIcon from '@material-ui/icons/HowToReg';\r\nimport MonetizationOnIcon from '@material-ui/icons/MonetizationOn';\r\nimport AssessmentIcon from '@material-ui/icons/Assessment';\r\n\r\nconst style = theme => ({\r\n\tpaper: {\r\n\t\tjustifyContent: 'space-between',\r\n\t\tborderRightColor: theme.palette.border.onlyContrast ? theme.palette.border.onlyContrast : undefined\r\n\t},\r\n\tdrawerOpen: {\r\n\t\twidth: theme.components.navigation.width,\r\n\t\ttransition: theme.transitions.default.open('width'),\r\n\t\toverflowX: 'hidden',\r\n\t},\r\n\tdrawerClose: {\r\n\t\ttransition: theme.transitions.default.close('width'),\r\n\t\toverflowX: 'hidden',\r\n\t\twidth: theme.spacing(7) + 1,\r\n\t},\r\n\tinnerListItem: {\r\n\t\tpaddingLeft: theme.spacing(3),\r\n\t}\r\n})\r\n\r\nfunction Navigation({\r\n\tpurchaser,\r\n\tclasses,\r\n\tisMenuOpen,\r\n\tsetMenuOpen,\r\n\tinnerMenu,\r\n\tsetInnerMenuOpen,\r\n\tnavElements\r\n}) {\r\n\r\n\tconst icons = {\r\n\t\tmy_demands: StarIcon,\r\n\t\tpurchasingGroups: GroupWorkIcon,\r\n\t\tall_demands: ShoppingCartIcon,\r\n\t\tdeputy: PeopleIcon,\r\n\t\tpublic_area: PublicIcon,\r\n\t\tedocument: DescriptionIcon,\r\n\t\tauction: GavelIcon,\r\n\t\tintranet: LocalLibraryIcon,\r\n\t\treport: InsertDriveFileIcon,\r\n\t\tadministration: HowToRegIcon,\r\n\t\tcontractor_area: MonetizationOnIcon,\r\n\t\tannualReport: AssessmentIcon,\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t{navElements && navElements.newDemandProcedures && }\r\n\r\n\t\t\t\t{navElements && navElements.elements.map((item, i) => (\r\n\r\n\t\t\t\t\t\titem.href ?\r\n\t\t\t\t\t\t\t :\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t(innerMenu[item.key.split(\".\")[1]] &&\r\n\t\t\t\t\t\t\t\t\t\titem.menuElementList.length > 1)\r\n\t\t\t\t\t\t\t\t\t&&\r\n\t\t\t\t\t\t\t\t\titem.menuElementList.map((innerItem, j) => {\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tisMenuOpen: state.store.isMenuOpen,\r\n\tinnerMenu: state.innerMenu,\r\n\tnavElements: state.resources.userLoggedMenuList\r\n}), {\r\n\t\tsetMenuOpen,\r\n\t\tsetInnerMenuOpen\r\n\t})(withStyles(style)(Navigation));\r\n","import React from 'react'\r\nimport InvertColorsIcon from '@material-ui/icons/InvertColors'\r\nimport {IconButton, Tooltip} from '@material-ui/core';\r\nimport InvertColorsOffIcon from '@material-ui/icons/InvertColorsOff'\r\nimport {connect} from 'react-redux'\r\nimport {setContrastColors} from 'redux/actions'\r\nimport Tr from 'translations/Translations';\r\n\r\nfunction InvertColorsButton(\r\n\t{\r\n\t\tcontrast,\r\n\t\tsetContrastColors\r\n\t}) {\r\n\tconst Icon = contrast ? InvertColorsOffIcon : InvertColorsIcon;\r\n\r\n\tconst handleClick = () => {\r\n\t\tsetContrastColors(!contrast);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tcontrast: state.store.contrast\r\n}), {\r\n\tsetContrastColors\r\n})(InvertColorsButton);\r\n","import React from 'react'\r\nimport TextFieldIcon from '@material-ui/icons/TextFields'\r\nimport {IconButton, Tooltip} from '@material-ui/core';\r\nimport {connect} from 'react-redux'\r\nimport {setLargeText} from 'redux/actions'\r\nimport Tr from 'translations/Translations';\r\n\r\nfunction TextSizeButton(\r\n\t{\r\n\t\tlargeText,\r\n\t\tsetLargeText\r\n\t}) {\r\n\r\n\tconst handleClick = () => {\r\n\t\tsetLargeText(!largeText);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tlargeText: state.store.largeText\r\n}), {\r\n\tsetLargeText\r\n})(TextSizeButton);\r\n","import React from 'react'\r\nimport { Grid, Box, Typography } from '@material-ui/core';\r\nimport { withStyles } from '@material-ui/styles';\r\nimport Tr from 'translations/Translations';\r\nimport { connect } from 'react-redux'\r\nimport Endpoints from \"../../../constants/Endpoints\";\r\n\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\twidth: 'unset',\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t},\r\n\tlinkText: {\r\n\t\tcolor: 'inherit',\r\n\t\ttextDecoration: 'none',\r\n\t}\r\n})\r\n\r\nfunction Profile({\r\n\tclasses,\r\n\tuser = { login: '' },\r\n\tuserProfile\r\n}) {\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{user.login}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{Tr('show_profile')}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tuser: state.resources.userData,\r\n\tuserProfile: state.resources.userProfile,\r\n}), {\r\n\r\n})(withStyles(style)(Profile));\r\n","import React from 'react'\r\n\r\nexport default (props) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\n","import React from 'react'\r\n\r\nexport default (props) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {Grid} from '@material-ui/core';\r\nimport clsx from 'clsx';\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n column: {\r\n width: '100%'\r\n },\r\n flexGrow: {\r\n flexGrow: 1\r\n }\r\n}));\r\n\r\nfunction GridBlock(\r\n {\r\n direction,\r\n className,\r\n itemClassName,\r\n children,\r\n alignItems,\r\n spacing,\r\n justify,\r\n wrap,\r\n column = false,\r\n onClick,\r\n flexGrow = false,\r\n gridClasses,\r\n id\r\n }) {\r\n\r\n const classes = useStyle();\r\n return (\r\n \r\n {React.Children.map(children, child => {\r\n return child &&\r\n \r\n {child}\r\n \r\n\r\n }\r\n )}\r\n \r\n )\r\n}\r\n\r\nGridBlock.propTypes = {\r\n className: PropTypes.string,\r\n}\r\n\r\nGridBlock.defaultProps = {}\r\n\r\nexport default GridBlock;","import Tr from 'translations/Translations';\r\nimport reduxStore from 'redux/store'\r\nimport { setOpenTutorial, setOpenRegisterPopup } from 'redux/actions'\r\nimport RouterPath from 'libs/RouterPath';\r\n\r\nconst createItem = (trKey, action, disabled = true) => ({ label: Tr(trKey), action, disabled })\r\n\r\nexport default [\r\n\tcreateItem('tutorial', () => {\r\n\t\treduxStore.dispatch(setOpenTutorial())\r\n\t}),\r\n\tcreateItem('faq', () => {\r\n\t\tRouterPath.redirect(RouterPath.FAQ)\r\n\t}),\r\n\tcreateItem('contact', () => {\r\n\t\treduxStore.dispatch(setOpenRegisterPopup(true))\r\n\t},\r\n\t\tfalse\r\n\t),\r\n]","import React from 'react'\r\nimport { withStyles, Button } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction CancelButton({\r\n\tclasses,\r\n\tonClick,\r\n\tclassName\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t{Tr('cancel')}\r\n\t\t\r\n\t)\r\n}\r\n\r\nCancelButton.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tclasses: PropTypes.any,\r\n\tonClick: PropTypes.func,\r\n}\r\n\r\nCancelButton.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(CancelButton);","import React from 'react'\r\nimport { withStyles, Dialog, DialogTitle, DialogContent, DialogActions } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Button from 'components/Button';\r\nimport dialogButtons from './dialog.buttons'\r\nimport Tr from 'translations/Translations';\r\nimport CancelButton from '../components/CancelButton';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\ttitle: {\r\n\t\ttextAlign: 'center'\r\n\t},\r\n\tcontent: {\r\n\t\t...theme.components.popup.smallContainer,\r\n\t\t'&>*': {\r\n\t\t\t'&:not(:first-child)': {\r\n\t\t\t\tmarginTop: theme.spacing(1)\r\n\t\t\t},\r\n\t\t\t'&:last-child': {\r\n\t\t\t\tmarginTop: theme.spacing(4)\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tborder: {\r\n\t\tborder: `1px solid ${theme.palette.common.white}`,\r\n\t}\r\n})\r\n\r\nfunction HelpDialog({\r\n\tclasses,\r\n\tonClose,\r\n\t...other\r\n}) {\r\n\r\n\tconst handleClickButton = (action) => {\r\n\t\tonClose()\r\n\t\taction()\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{Tr('help_center')}\r\n\t\t\t\r\n\t\t\t\t{dialogButtons.map(({ label, action, disabled }, i) => (\r\n\t\t\t\t\t handleClickButton(action)}\r\n\t\t\t\t\t\tfullWidth\r\n\t\t\t\t\t\tdisabled={disabled}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{label}\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nHelpDialog.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\topen: PropTypes.bool.isRequired,\r\n\tonClose: PropTypes.func,\r\n}\r\n\r\nHelpDialog.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(HelpDialog);","import React, {useState} from 'react'\r\nimport {IconButton, Tooltip} from '@material-ui/core';\r\nimport HelpDialog from './HelpDialog';\r\nimport HelpIcon from '@material-ui/icons/Help'\r\nimport Tr from 'translations/Translations';\r\n\r\nfunction Help() {\r\n\tconst [open, setOpen] = useState(false)\r\n\treturn (<>\r\n\t\t\r\n\t\t\t setOpen(true)}>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t setOpen(false)} />\r\n\t\t\r\n\t)\r\n}\r\n\r\nHelp.propTypes = {\r\n}\r\n\r\nHelp.defaultProps = {\r\n}\r\n\r\nexport default Help;\r\n","import React from 'react'\r\nimport {IconButton, Tooltip} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n\tflag: {\r\n\t\twidth: theme.spacing(3)\r\n\t}\r\n}))\r\n\r\nfunction ChangeLanguageButtonButtons(\r\n\t{\r\n\t\tlocale,\r\n\t\tsetLocale,\r\n\t\tIcon\r\n\t}) {\r\n\tconst classes = useStyle();\r\n\tconst handleClick = () => {\r\n\t\tsetLocale(locale);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default ChangeLanguageButtonButtons;\r\n","import reduxStore from 'redux/store'\r\n\r\nexport default (url) => {\r\n const form = document.createElement(\"form\");\r\n form.setAttribute('action', url);\r\n form.setAttribute('method', 'post');\r\n form.setAttribute('hidden', 'true');\r\n const csrfInput = document.createElement(\"input\");\r\n csrfInput.setAttribute('name', 'CSRFToken');\r\n csrfInput.setAttribute('hidden', 'true');\r\n csrfInput.setAttribute('type', 'text');\r\n csrfInput.value = reduxStore.getState().resources.userData.csrf;\r\n form.append(csrfInput);\r\n document.body.appendChild(form);\r\n form.submit();\r\n}","import React from 'react'\r\nimport {AppBar as AppBarUI, Toolbar} from '@material-ui/core';\r\nimport InvertColorsButton from './InvertColorsButton';\r\nimport TextSizeButton from './TextSizeButton';\r\nimport Profile from './Profile';\r\nimport PolandSvg from 'images/Poland'\r\nimport GreatBritainSvg from 'images/GreatBritain'\r\nimport {connect} from 'react-redux'\r\nimport GridBlock from 'components/GridBlock';\r\nimport clsx from 'clsx';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport SwapHorizIcon from '@material-ui/icons/SwapHoriz';\r\nimport Endpoints from 'constants/Endpoints';\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport {withRouter} from \"react-router\";\r\nimport Help from \"../../popup/help/Help\";\r\nimport ChangeLanguageButtonButtons from \"./ChangeLanguageButtonButtons\";\r\nimport redirectUsingPOST from \"libs/redirectUsingPOST\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n paddingLeft: theme.components.navigation.margin.left,\r\n zIndex: theme.zIndex.appBar + 10,\r\n borderBottom: `solid 3px ${theme.palette.primary.main}`,\r\n backgroundColor: theme.palette.background.greyBackground,\r\n },\r\n rootBorder: {},\r\n menuMargin: {\r\n paddingLeft: theme.components.navigation.width,\r\n transition: theme.transitions.default.open('margin-left'),\r\n },\r\n toolbar: {\r\n justifyContent: 'space-between'\r\n },\r\n rightGrid: {\r\n width: 'unset'\r\n },\r\n beta: {\r\n paddingLeft: theme.spacing(1),\r\n color: theme.palette.primary.contrastText\r\n },\r\n buttonLight: {\r\n whiteSpace: 'nowrap',\r\n marginRight: theme.spacing(1),\r\n },\r\n logo: {\r\n maxHeight: 55,\r\n maxWidth: 200\r\n }\r\n}))\r\n\r\nfunction AppBar(\r\n {\r\n logo = {},\r\n isMenuOpen,\r\n demandHeader,\r\n id,\r\n location\r\n }) {\r\n\r\n const classes = useStyle();\r\n const goSoStatus = !!(demandHeader?.oldPlatformRoundStatusUrl);\r\n\r\n const handleRedirectToOldSystemVersion = () => {\r\n if (goSoStatus) {\r\n window.location.href = demandHeader.oldPlatformRoundStatusUrl;\r\n } else {\r\n window.location.href = Endpoints.SERVER_URL;\r\n }\r\n };\r\n\r\n const changeLocale = (locale) => {\r\n const split = locale.split(\"_\");\r\n const auth = JSON.parse(localStorage.getItem(\"authorize\"));\r\n const url = Endpoints.CHANG_LANGUAGE(split[0], split[1], auth.csrf, window.location.href);\r\n redirectUsingPOST(url);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {/*{Tr(\"beta_version\")}*/}\r\n \r\n \r\n \r\n \r\n {Tr(goSoStatus ? 'redirectToOldVersionStatus' : 'redirectToOldVersion')}\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n logo: state.resources.logo,\r\n isMenuOpen: state.store.isMenuOpen,\r\n demandHeader: state.resources.demandHeader,\r\n}), {})(withRouter(AppBar));\r\n","import React from 'react'\r\nimport {IconButton as MuiIconButton, Tooltip} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport AcUnitIcon from '@material-ui/icons/AcUnit';\r\n\r\n\r\nfunction IconButton(\r\n {\r\n tooltip,\r\n placement = 'top',\r\n hideTooltip = false,\r\n Icon = AcUnitIcon,\r\n children,\r\n disabled,\r\n color,\r\n ...props\r\n }) {\r\n const button = (\r\n \r\n \r\n {children}\r\n \r\n )\r\n\r\n if (hideTooltip || !Boolean(tooltip)) {\r\n return button\r\n }\r\n return (\r\n \r\n\t\t\t\r\n\t\t\t\t{button}\r\n\t\t\t\r\n \r\n )\r\n}\r\n\r\nIconButton.propTypes = {\r\n tooltip: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\r\n placement: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n Icon: PropTypes.elementType,\r\n disabled: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default IconButton;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport IconButton from './IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\n\r\nfunction IconCloseButton({\r\n\tclasses,\r\n\ttooltip = Tr('close'),\r\n\t...props\r\n}) {\r\n\treturn \r\n}\r\n\r\nIconCloseButton.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default IconCloseButton;","import React from 'react'\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { withStyles } from '@material-ui/styles';\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\twidth: '100%',\r\n\t\theight: '100%',\r\n\t\tminHeight: 40,\r\n\t\tposition: 'relative',\r\n\r\n\t\t'&>*': {\r\n\t\t\tposition: 'absolute',\r\n\t\t\ttop: '50%',\r\n\t\t\tleft: 'calc(50% - 20px)',\r\n\t\t\ttransform: 'translate(-50%, -50%)',\r\n\t\t}\r\n\t}\r\n})\r\n\r\nfunction Loading({\r\n\tclasses,\r\n\tsize,\r\n\tclassName,\r\n\tref,\r\n}) {\r\n\treturn (\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t)\r\n}\r\n\r\nexport default withStyles(style)(Loading);\r\n","import React from 'react'\r\nimport {Box, Dialog as DialogUI, DialogActions, DialogContent, DialogTitle} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport IconCloseButton from './button/IconCloseButton';\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport Loading from \"./Loading\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n\troot: {\r\n\t\tposition: 'relative'\r\n\t},\r\n\tcontent: {\r\n\t\tminHeight: 50\r\n\t},\r\n\tcentered: {\r\n\t\ttextAlign: 'center'\r\n\t},\r\n\tborder: {\r\n\t\tborder: theme.palette.border.onlyContrast ? `1px solid ${theme.palette.border.onlyContrast}` : undefined,\r\n\t},\r\n\tcloseButtonBox: {\r\n\t\tposition: 'absolute',\r\n\t\tright: theme.spacing(1),\r\n\t\ttop: theme.spacing(1),\r\n\t},\r\n\tcloseButton: {\r\n\t\tcolor: theme.palette.primary.main,\r\n\t},\r\n\tloading: {\r\n\t\twidth: '92%'\r\n\t}\r\n}));\r\n\r\nfunction Dialog({\r\n\ttitle,\r\n\tchildren,\r\n\tfullWidth = true,\r\n\tmaxWidth,\r\n\topen,\r\n\tclassName,\r\n\tcontentClassName,\r\n\ttitleCentered = false,\r\n\ttransitionDuration,\r\n\tonClose,\r\n\tpaperClassName,\r\n\tdialogActions,\r\n\tloading,\r\n\thtmlId\r\n}) {\r\n\tconst classes = useStyle();\r\n\treturn (\r\n\t\t\r\n\t\t\t{title &&\r\n\t\t\t\t{title}\r\n\t\t\t\t\t{onClose ? (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t) : null}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t\t{\r\n\t\t\t\t\t!!loading ?\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\tchildren\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nDialog.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tmaxWidth: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false])\r\n}\r\n\r\nexport default Dialog;","import React from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tbuttonContainer: {\r\n\t\tdisplay: 'flex',\r\n\t\tjustifyContent: 'flex-end',\r\n\t\tmarginTop: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction IEInfo({\r\n\tclasses,\r\n\topen = false,\r\n\tonClose,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{Tr('ie_info')}\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t{Tr('understand')}\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\r\n\t)\r\n}\r\n\r\nIEInfo.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(IEInfo);","\r\n\r\n//https://stackoverflow.com/questions/9847580/how-to-detect-safari-chrome-ie-firefox-and-opera-browser\r\n\r\n// Opera 8.0+\r\nconst isOpera = (!!window.opr && !!window.opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;\r\n\r\n// Firefox 1.0+\r\nconst isFirefox = typeof InstallTrigger !== 'undefined';\r\n\r\n// Safari 3.0+ \"[object HTMLElementConstructor]\" \r\nconst isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === \"[object SafariRemoteNotification]\"; })(!window['safari'] || (typeof window['safari'] !== 'undefined' && window['safari'].pushNotification));\r\n\r\n// Internet Explorer 6-11\r\nconst isIE = /*@cc_on!@*/false || !!document.documentMode;\r\n\r\n// Edge 20+\r\nconst isEdge = !isIE && !!window.StyleMedia;\r\n\r\n// Chrome 1 - 71\r\nconst isChrome = !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);\r\n\r\n// Blink engine detection\r\nconst isBlink = (isChrome || isOpera) && !!window.CSS;\r\n\r\nexport default {\r\n\tisOpera,\r\n\tisFirefox,\r\n\tisSafari,\r\n\tisIE,\r\n\tisEdge,\r\n\tisChrome,\r\n\tisBlink,\r\n}","import _ from 'lodash'\r\n/**\r\n * Deep diff between two object, using lodash\r\n * @param {Object} object Object compared\r\n * @param {Object} base Object to compare with\r\n * @return {Object} Return a new object who represent the diff. If no diff it will return null.\r\n * \r\n * Source: https://gist.github.com/Yimiprod/7ee176597fef230d1451\r\n */\r\n\r\nexport default {\r\n\tdiff: (object, base, checkCondition = false) => {\r\n\t\tif (!object || !base) {\r\n\t\t\tconsole.error('Can not diff object if one of them is undefined.')\r\n\t\t\treturn object !== base\r\n\t\t}\r\n\t\tconst changes = (object, base) => _.transform(object, function (result, value, key) {\r\n\t\t\tif (!_.isEqual(value, base[key])) {\r\n\t\t\t\tconst res = (_.isObject(value) && _.isObject(base[key])) ? changes(value, base[key]) : value;\r\n\t\t\t\tif (!_.isObject(res)) {\r\n\t\t\t\t\tresult[key] = res;\r\n\t\t\t\t} else if (Object.keys(res).length > 0) {\r\n\t\t\t\t\tresult[key] = res;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\tconst changesObj = changes(object, base)\r\n\t\tif (Object.keys(changesObj).length > 0) return changesObj;\r\n\t\tif (checkCondition) return changesObj;\r\n\t\treturn null;\r\n\t}\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestGET} from \"libs/RestRequest\";\r\n\r\nconst DEMAND_VALIDATION_RESOURCE_ID = \"demandValidation\";\r\n\r\n\r\nconst getPreparingSections = async (id, clear = true) => {\r\n await getSections(id, clear, Endpoints.DEMAND_PREPARING_SECTIONS);\r\n}\r\n\r\nconst getEvaluationSections = async (id, clear = true) => {\r\n await getSections(id, clear, Endpoints.DEMAND_EVALUATION_SECTIONS);\r\n}\r\n\r\nconst getFinishingSections = async (id, clear = true) => {\r\n await getSections(id, clear, Endpoints.DEMAND_FINISHING_SECTIONS);\r\n}\r\n\r\nconst getSections = async (id, clear = true, urlFn) => {\r\n if (clear) {\r\n clearResource(DEMAND_VALIDATION_RESOURCE_ID)\r\n }\r\n\r\n try {\r\n const res = await RestRequestGET(urlFn(id));\r\n reduxStore.dispatch(setResource(DEMAND_VALIDATION_RESOURCE_ID, res))\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst clearDemandValidationResources = () => reduxStore.dispatch(clearResource(DEMAND_VALIDATION_RESOURCE_ID));\r\n\r\nexport default {\r\n getPreparingSections,\r\n getEvaluationSections,\r\n getFinishingSections,\r\n clearDemandValidationResources,\r\n DEMAND_VALIDATION_RESOURCE_ID\r\n}","import {RestRequestGET} from 'libs/RestRequest';\r\nimport reduxStore from 'redux/store';\r\nimport {clearPrivileges, setPrivileges} from 'redux/actions';\r\n\r\nconst CORRESPONDENCE_PRIVILEGE_STORE_KEY = 'correspondence';\r\nconst RFX_PRIVILEGE_STORE_KEY = 'rfx';\r\nconst DEMAND_PRIVILEGE_STORE_KEY = 'demand';\r\n\r\nconst cleanupPrivileges = (id) => {\r\n reduxStore.dispatch(clearPrivileges(id));\r\n}\r\n\r\nconst getPrivileges = async (url, key) => {\r\n const resp = await RestRequestGET(url);\r\n if (resp.success === true)\r\n reduxStore.dispatch(setPrivileges(key, resp.map))\r\n}\r\n\r\nexport default {\r\n getPrivileges,\r\n cleanupPrivileges,\r\n CORRESPONDENCE_PRIVILEGE_STORE_KEY,\r\n RFX_PRIVILEGE_STORE_KEY,\r\n DEMAND_PRIVILEGE_STORE_KEY\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {\r\n clearResource,\r\n setResource,\r\n setSaveStatusClosed,\r\n setSaveStatusDeleted,\r\n setSaveStatusDialog,\r\n setSaveStatusError,\r\n setSaveStatusLoading,\r\n setStepperState\r\n} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport RouterPath, {createPath} from 'libs/RouterPath';\r\nimport Tr from 'translations/Translations';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport objectExtension from 'libs/objectExtension'\r\nimport querystring from 'querystring';\r\nimport {ProcedureType} from \"../constants/ProcedureType\";\r\nimport DemandSectionsService from \"./DemandSectionsService\";\r\nimport PrivilegeService from \"./PrivilegeService\";\r\n\r\nconst DEMAND_RESOURCE_ID = 'demand';\r\nconst DEMAND_AVAILABLE_FORM_TYPES_RESOURCE_ID = 'demandAvailableFormTypes';\r\nconst DEMAND_AVAILABLE_REALIZATIONS_RESOURCE_ID = 'demandRealizationTypes';\r\nconst DEMAND_AVAILABLE_ORGANIZATIONS_RESOURCE_ID = 'demandAvailableOrganizations';\r\nconst DEMAND_NUMBER_AUTOMATED = 'demandNumberAutomated';\r\nconst DEMAND_CASE_CLASSIFICATION_SYMBOL_REQUIRED = 'caseClassificationSymbolRequired';\r\n\r\n\r\nconst createParams = (params, defaultProps = {\r\n procedureType: ProcedureType.EUROPE_PUBLIC,\r\n passive: false,\r\n exPost: false\r\n}) => {\r\n const {procedureType, passive, exPost} = params;\r\n let queryParams = {}\r\n if (passive) {\r\n queryParams['passive'] = passive;\r\n } else if (defaultProps.passive) {\r\n queryParams['passive'] = defaultProps.passive;\r\n }\r\n\r\n if (procedureType) {\r\n queryParams['procedureType'] = procedureType;\r\n } else if (defaultProps.procedureType) {\r\n queryParams['procedureType'] = defaultProps.procedureType;\r\n }\r\n\r\n if (exPost) {\r\n queryParams['exPost'] = exPost;\r\n } else if (defaultProps.exPost) {\r\n queryParams['exPost'] = defaultProps.exPost;\r\n }\r\n\r\n return `?${querystring.stringify(queryParams)}`\r\n}\r\n\r\nconst get = async (id, params) => {\r\n const res = await RestRequestGET(Endpoints.DEMAND_GET_BY_ID(id, createParams(params, {})));\r\n reduxStore.dispatch(setResource(DEMAND_RESOURCE_ID, res.demand));\r\n reduxStore.dispatch(setResource(DEMAND_AVAILABLE_REALIZATIONS_RESOURCE_ID, res.demandAvailableRealizationTypes));\r\n reduxStore.dispatch(setResource(DEMAND_AVAILABLE_ORGANIZATIONS_RESOURCE_ID, res.demandAvailableOrganizations));\r\n reduxStore.dispatch(setResource(DEMAND_AVAILABLE_FORM_TYPES_RESOURCE_ID, res.demandAvailableFormTypes));\r\n reduxStore.dispatch(setResource(DEMAND_NUMBER_AUTOMATED, res.numberingAutomated));\r\n reduxStore.dispatch(setResource(DEMAND_CASE_CLASSIFICATION_SYMBOL_REQUIRED, res.caseClassificationSymbolRequired));\r\n return res;\r\n}\r\n\r\nconst getCreateNew = async (params) => {\r\n const res = await RestRequestGET(Endpoints.DEMAND_GET_BY_ID(-1, createParams(params)));\r\n reduxStore.dispatch(setResource(DEMAND_RESOURCE_ID, res.demand));\r\n reduxStore.dispatch(setResource(DEMAND_AVAILABLE_REALIZATIONS_RESOURCE_ID, res.demandAvailableRealizationTypes));\r\n reduxStore.dispatch(setResource(DEMAND_AVAILABLE_ORGANIZATIONS_RESOURCE_ID, res.demandAvailableOrganizations));\r\n reduxStore.dispatch(setResource(DEMAND_AVAILABLE_FORM_TYPES_RESOURCE_ID, res.demandAvailableFormTypes));\r\n reduxStore.dispatch(setResource(DEMAND_NUMBER_AUTOMATED, res.numberingAutomated));\r\n reduxStore.dispatch(setResource(DEMAND_CASE_CLASSIFICATION_SYMBOL_REQUIRED, res.caseClassificationSymbolRequired));\r\n}\r\n\r\nconst _formatFormValues = (values) => {\r\n const {\r\n identity,\r\n enableOptional,\r\n termOption,\r\n termDate,\r\n termDescription,\r\n orderValueDecisionDate,\r\n auctionMade,\r\n digitalSign,\r\n euFunded,\r\n ...other\r\n } = values;\r\n\r\n const formatDate = (x) => (x ? x.format() : x);\r\n\r\n return {\r\n identity: identity,\r\n agreementRealizationDate: {\r\n date: termOption === 'date' ? formatDate(termDate) : null,\r\n text: termOption === 'text' ? termDescription : null,\r\n },\r\n orderValueDecisionDate: formatDate(orderValueDecisionDate),\r\n auctionMade: auctionMade === 'true',\r\n digitalSign: digitalSign === 'true',\r\n euFunded: euFunded === 'true',\r\n ...other\r\n }\r\n}\r\n\r\nconst _save = async (url, values) => {\r\n const data = _formatFormValues(values)\r\n const {resources} = reduxStore.getState()\r\n const {demand} = resources;\r\n const diff = objectExtension.diff(data, demand);\r\n if (diff === null) return null;\r\n\r\n try {\r\n return await RestRequestPOST(url, data)\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nconst getValidate = async (id = -1, clear = true) => {\r\n if (id === -1) {\r\n if (clear) {\r\n reduxStore.dispatch(clearResource(DemandSectionsService.DEMAND_VALIDATION_RESOURCE_ID))\r\n }\r\n const data = [\r\n {\r\n section: DemandValidation.DEMAND,\r\n status: \"EMPTY\",\r\n required: true,\r\n }\r\n ]\r\n reduxStore.dispatch(setResource(DemandSectionsService.DEMAND_VALIDATION_RESOURCE_ID, data))\r\n return;\r\n }\r\n\r\n await DemandSectionsService.getPreparingSections(id, clear)\r\n}\r\n\r\nconst save = async (values) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n\r\n const res = await _save(Endpoints.DEMAND_SAVE, values)\r\n await _handleSaveResponse(res);\r\n}\r\n\r\nconst saveExPost = async (values) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n\r\n const res = await _save(Endpoints.DEMAND_SAVE_EX_POST, values)\r\n await _handleSaveResponse(res);\r\n}\r\n\r\nconst _handleSaveResponse = async (res) => {\r\n try {\r\n if (res === null) {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n reduxStore.dispatch(setStepperState())\r\n } else if (res.success) {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n reduxStore.dispatch(setStepperState())\r\n\r\n const path = createPath(RouterPath.myProcedure.steps.MP_1_ID, {id: res.result})\r\n if (path === window.location.pathname) {\r\n await getValidate(res.result, false)\r\n } else {\r\n RouterPath.redirect(path)\r\n }\r\n } else {\r\n let msg;\r\n\r\n for (let prop in res.errors) {\r\n if (Object.prototype.hasOwnProperty.call(res.errors, prop)) {\r\n if (prop === 'number') {\r\n msg = res.errors[prop];\r\n } else if (prop.startsWith('fundingInstitutionLogo')) {\r\n msg = Tr('funding_institution_logo_error');\r\n } else if (prop === 'ezdrpId' || prop === 'ezdpuwId') {\r\n msg = Array.isArray(res.errors[prop]) ? res.errors[prop][0] : res.errors[prop];\r\n } else if (prop === 'name') {\r\n if(Array.isArray(res.errors[prop]))\r\n msg = res.errors[prop][0];\r\n else if(typeof res.errors[prop] === 'string')\r\n msg = res.errors[prop];\r\n }\r\n }\r\n if (msg) {\r\n break;\r\n }\r\n }\r\n\r\n if (!msg) {\r\n msg = Tr('unknown_error_message');\r\n }\r\n reduxStore.dispatch(setSaveStatusError(msg));\r\n }\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst preview = async (id = -1) => {\r\n\r\n try {\r\n const res = await RestRequestGET(Endpoints.DEMAND_PREVIEW(id))\r\n window.location.href = res.url\r\n } catch (error) {\r\n }\r\n\r\n}\r\n\r\n// const autoSave = async (id = -1) => {\r\n// \tconst { formValues } = reduxStore.getState()\r\n// \tconst values = formValues['mp_1_demand']\r\n// \tif (values === undefined) return;\r\n//\r\n// \ttry {\r\n// \t\tawait _save(Endpoints.DEMAND_AUTOSAVE(id), values)\r\n// \t} catch (error) {\r\n// \t}\r\n// }\r\n//\r\n// const autoSaveCheck = async (id = -1) => {\r\n// \ttry {\r\n// \t\treturn await RestRequestGET(Endpoints.DEMAND_AUTOSAVE_CHECK(id))\r\n// \t} catch (error) {\r\n// \t}\r\n// }\r\n//\r\n// const autoSaveDelete = async (id = -1) => {\r\n// \ttry {\r\n// \t\treturn await RestRequestDELETE(Endpoints.DEMAND_AUTOSAVE(id))\r\n// \t} catch (error) {\r\n// \t}\r\n// }\r\n//\r\n// const autoSaveLoad = async (id = -1) => {\r\n// \ttry {\r\n// \t\tconst res = await RestRequestGET(Endpoints.DEMAND_AUTOSAVE(id))\r\n// \t\treduxStore.dispatch(\r\n// \t\t\tsetResource(DEMAND_RESOURCE_ID, res)\r\n// \t\t)\r\n// \t} catch (error) {\r\n// \t}\r\n// }\r\n//\r\n// const restoreAutosave = async (id = -1) => {\r\n// \tawait autoSaveLoad(id);\r\n// }\r\n//\r\n// const getDemandActions = async (id = -1) => {\r\n// \ttry {\r\n// \t\tlet res = await RestRequestGET(Endpoints.DEMAND_ACTIONS(id))\r\n// \t\treduxStore.dispatch(setResource(\"demandActions\", res))\r\n// \t} catch (error) { }\r\n// }\r\n\r\nconst deteleUrl = async (url) => {\r\n try {\r\n await RestRequestDELETE(url);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst action = async (url) => {\r\n try {\r\n await RestRequestGET(url);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst deleteDemand = async (id) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n await RestRequestDELETE(Endpoints.DEMAND_DELETE(id));\r\n reduxStore.dispatch(setSaveStatusDeleted());\r\n } catch (error) {\r\n reduxStore.dispatch(setSaveStatusError());\r\n }\r\n}\r\n\r\nconst clone = async (id) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_CLONE(id))\r\n if (res.success) {\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n const path = createPath(RouterPath.myProcedure.steps.MP_1_ID, {id: res.result})\r\n RouterPath.redirect(path)\r\n } else {\r\n }\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst clearResources = (resource) => reduxStore.dispatch(clearResource(resource));\r\n\r\nconst getRelatedObjects = async (id) => {\r\n return await RestRequestGET(Endpoints.DEMAND_REALTED_OBJECTS(id));\r\n}\r\nconst getBuyerPrivileges = async (id) => {\r\n await PrivilegeService.getPrivileges(Endpoints.DEMAND_PRIVILEGES(id), PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY);\r\n}\r\nconst getBuyerRfxPrivileges = async (id) => {\r\n await PrivilegeService.getPrivileges(Endpoints.DEMAND_RFX_PRIVILEGES(id), PrivilegeService.RFX_PRIVILEGE_STORE_KEY);\r\n}\r\n\r\nconst updateNumber = async (id) => {\r\n return await RestRequestPOST(Endpoints.DEMAND_UPDATE_NUMBER(id));\r\n}\r\n\r\nconst checkForDraft = async (id) => {\r\n return await RestRequestGET(Endpoints.DEMAND_AUTOSAVE_CHECK(id));\r\n}\r\n\r\nconst loadDraft = async (id) => {\r\n const res = await RestRequestGET(Endpoints.DEMAND_AUTOSAVE(id));\r\n reduxStore.dispatch(setResource(DEMAND_RESOURCE_ID, res.result));\r\n return res;\r\n}\r\n\r\nconst saveDraft = async (id, formValues) => {\r\n await RestRequestPOST(Endpoints.DEMAND_AUTOSAVE(id), formValues)\r\n}\r\n\r\nconst deleteDraft = async (id) => {\r\n await RestRequestDELETE(Endpoints.DEMAND_AUTOSAVE(id));\r\n}\r\n\r\nconst checkForDraftExPost = async (id) => {\r\n return await RestRequestGET(Endpoints.DEMAND_EXPOST_AUTOSAVE_CHECK(id));\r\n}\r\n\r\nconst loadDraftExPost = async (id) => {\r\n const res = await RestRequestGET(Endpoints.DEMAND_EXPOST_AUTOSAVE(id));\r\n reduxStore.dispatch(setResource(DEMAND_RESOURCE_ID, res.result));\r\n return res;\r\n}\r\n\r\nconst saveDraftExPost = async (id, formValues) => {\r\n await RestRequestPOST(Endpoints.DEMAND_EXPOST_AUTOSAVE(id), formValues)\r\n}\r\n\r\nconst deleteDraftExPost = async (id) => {\r\n await RestRequestDELETE(Endpoints.DEMAND_EXPOST_AUTOSAVE(id));\r\n}\r\n\r\nexport default {\r\n get,\r\n getCreateNew,\r\n save,\r\n saveExPost,\r\n clone,\r\n getValidate,\r\n preview,\r\n //getDemandActions,\r\n deteleUrl,\r\n action,\r\n deleteDemand,\r\n clearResources,\r\n getRelatedObjects,\r\n getBuyerPrivileges,\r\n getBuyerRfxPrivileges,\r\n updateNumber,\r\n checkForDraft,\r\n loadDraft,\r\n saveDraft,\r\n deleteDraft,\r\n checkForDraftExPost,\r\n loadDraftExPost,\r\n saveDraftExPost,\r\n deleteDraftExPost,\r\n DEMAND_RESOURCE_ID,\r\n DEMAND_AVAILABLE_REALIZATIONS_RESOURCE_ID,\r\n DEMAND_AVAILABLE_ORGANIZATIONS_RESOURCE_ID,\r\n DEMAND_AVAILABLE_FORM_TYPES_RESOURCE_ID,\r\n DEMAND_NUMBER_AUTOMATED,\r\n DEMAND_CASE_CLASSIFICATION_SYMBOL_REQUIRED\r\n}","\r\nexport default {\r\n\tprocedure: {\r\n\t\tbasicInformation: {\r\n\t\t\tNUMBER: 50,\r\n\t\t\tNAME: 400,\r\n\t\t\tDESCRIPTION: 4000,\r\n\r\n\t\t\tCONTACT_PERSON: 200,\r\n\t\t\tCONTACT_PERSON_PHONE: 20,\r\n\r\n\t\t\tPURCHASER_PHONE: 20,\r\n\t\t\tPURCHASER_FAX: 20,\r\n\t\t\tPURCHASER_EMAIL: 255,\r\n\t\t\tPURCHASER_ADDITIONAL_INFO: 500,\r\n\r\n\t\t\tEOD: 100,\r\n\t\t\tSINGLE_DEALING_JUSTIFICATION: 4000,\r\n\t\t\tESTIMATION_BASE: 255,\r\n\t\t\tFINANCIAL_SOURCE: 4000,\r\n\t\t\tTERM_DESCRIPTION: 1000,\r\n\t\t\tFULL_NAME: 200,\r\n\t\t\tEU_PROJECT_NUMBER: 100\r\n\t\t},\r\n\t\tcontractor: {\r\n\t\t\tNAME: 1000,\r\n\t\t\tPOSTCODE_PL: 6,\r\n\t\t\tPOSTCODE: 50,\r\n\t\t\tEMAIL: 255,\r\n\t\t\tNIP_MIN: 5,\r\n\t\t\tNIP_MAX: 20,\r\n\t\t\tPESEL_PL: 11,\r\n\t\t\tNIP_PL: 10,\r\n\t\t\tCITY: 100,\r\n\t\t\tADDRESS: 500\r\n\t\t},\r\n\t\torganization: {\r\n\t\t\tNAME: 500,\r\n\t\t},\r\n\t\tdealings: {\r\n\t\t\tNAME: 400,\r\n\t\t\tPLANNED_CONTRACTOR_NUMBER: 5\r\n\t\t},\r\n\t\tcondition: {\r\n\t\t\tOTHER_NAME: 400,\r\n\t\t},\r\n\t\tcriteriaSection: {\r\n\t\t\tNAME: 400\r\n\t\t},\r\n\t\tparameters: {\r\n\t\t\tNAME: 400\r\n\t\t},\r\n\t\titemParameters: {\r\n\t\t\tNAME: 30\r\n\t\t},\r\n\t\tdocuments: {\r\n\t\t\tNAME: 255\r\n\t\t},\r\n\t\tcorrespondence: {\r\n\t\t\tSUBJECT: 255\r\n\t\t}\r\n\t},\r\n}","import moment, {isMoment} from \"moment\";\r\nmoment.fn.toJSON = function() { return this.format(); }\r\n\r\nexport {isMoment}\r\nexport default moment","import * as Yup from 'yup'\r\nimport Tr from 'translations/Translations';\r\nimport InputLimits from \"./InputLimits\";\r\nimport moment, {isMoment} from \"libs/moment\";\r\n\r\nconst emailRegexp = /^[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?$/;\r\nconst contractorlimits = InputLimits.procedure.contractor\r\n\r\nYup.addMethod(Yup.string, 'noOnlyWhitespaces', function (message) {\r\n const usedMessage = message ? message : Tr('not_only_whitespaces')\r\n return this.test('only-whitespace', usedMessage, function (value) {\r\n if (value != null && value !== undefined) {\r\n return value.trim().length > 0;\r\n }\r\n return true;\r\n });\r\n});\r\n\r\nconst maxStringFunc = ({value, max}) => {\r\n return Tr('too_many_characters', {max})\r\n}\r\n\r\nconst minStringFunc = ({value, min}) => {\r\n const number = Math.abs(value.length - min)\r\n return Tr('too_low_characters', {number})\r\n}\r\n\r\nconst amountMin = (min, inclusive) => Yup.string().test('amountMin',\r\n inclusive ? Tr('v_number_min', {min}) : Tr('v_number_min_exclusive', {min}),\r\n (val) => {\r\n if (val) {\r\n const fVal = parseFloat(val);\r\n return !isNaN(fVal) && inclusive ? min <= fVal : min < fVal;\r\n }\r\n return true;\r\n })\r\n\r\nconst amountBasicOptional = (min, inclusive) => amountMin(min, inclusive)\r\n .matches(/^$|^[^-].*$/, Tr('v_positive')).matches(/^$|^[-]?\\d+([,.]|([,.]\\d{1,2})?)$/, Tr(\"amount_error\"))\r\n\r\nconst amountBasicRequired = (min, inclusive) => amountMin(min, inclusive)\r\n .matches(/^[^-].*$/, Tr('v_positive')).matches(/^[-]?\\d+([,.]|([,.]\\d{1,2})?)$/, Tr(\"amount_error\"))\r\n\r\nconst amountMaxDecimal100 = (value, noZero = true) => {\r\n let tr = \"\"\r\n const pValue = parseFloat(value)\r\n if (noZero && pValue <= 0) return Yup.number().positive(Tr(\"v_positive\"));\r\n else if (pValue > 100) tr = \"number_cant_be_bigger_than\"\r\n else tr = \"amount_error\"\r\n return Yup.string().matches(/(^\\d{1,2}([,.]\\d{1,2})?|100)$/, Tr(tr))\r\n}\r\n\r\nconst stringExactlyBase = (value, message) => Yup.string()\r\n .matches(value, message)\r\n .required(Tr('required_field'))\r\n .nullable();\r\nconst stringNotOneOfBase = (value, message) => Yup.string()\r\n .notOneOf(value, message)\r\n .required(Tr('required_field'))\r\n .nullable();\r\n\r\nconst stringMinAndMax = (min, max) => Yup.string()\r\n .min(min, minStringFunc)\r\n .max(max, maxStringFunc)\r\n .required(Tr('required_field'));\r\n\r\nconst vatinPL = (val, optional) => {\r\n if (!val && optional)\r\n return true;\r\n if (val?.length !== 10) {\r\n return false;\r\n }\r\n if (val.charAt(0) === '0' || val.charAt(2) === '0') {\r\n return false;\r\n }\r\n\r\n let weight = [6, 5, 7, 2, 3, 4, 5, 6, 7];\r\n let sum = 0;\r\n let controlNumber = parseInt(val.substring(9, 10));\r\n let weightCount = weight.length;\r\n for (let i = 0; i < weightCount; i++) {\r\n sum += (parseInt(val.substr(i, 1)) * weight[i]);\r\n }\r\n\r\n return sum % 11 === controlNumber;\r\n}\r\n\r\nconst peselPL = (val) => {\r\n if (val?.length !== contractorlimits.PESEL_PL) {\r\n return false;\r\n }\r\n\r\n let weight = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3];\r\n let sum = 0;\r\n let controlNumber = parseInt(val.substring(10, 11));\r\n for (let i = 0; i < weight.length; i++) {\r\n sum += ((parseInt(val.substring(i, i + 1)) * weight[i]) % 10);\r\n }\r\n sum = sum % 10;\r\n return (10 - sum) % 10 === controlNumber;\r\n}\r\n\r\nconst dateOrDateTimeValid = () => {\r\n return Yup.mixed().test('dateOrDateTimeValid', Tr('invalid_date_format'), (value) => {\r\n if (!value) {\r\n return true;\r\n }\r\n if (isMoment(value)) {\r\n return value.isValid();\r\n } else if (typeof value === 'string' || value instanceof String) {\r\n return moment(value, \"YYYY-MM-DD[T]HH:mm:ssZ\", true).isValid() || moment(value, \"YYYY-MM-DD[T]HH:mm:ss.SSSZ\", true).isValid();\r\n }\r\n return false;\r\n })\r\n};\r\n\r\nconst dateMax = (date, tr) => {\r\n return dateOrDateTimeValid().test('dateValidMax', tr, (value) => {\r\n if (!value) {\r\n return true;\r\n }\r\n\r\n let dateToCompare = date;\r\n if (!isMoment(date)) {\r\n dateToCompare = moment(date);\r\n }\r\n let result;\r\n if (!dateToCompare.isValid()) {\r\n result = false;\r\n } else {\r\n result = !dateToCompare.endOf('day').isBefore(value);\r\n }\r\n\r\n return result;\r\n })\r\n}\r\n\r\n\r\nconst dateMin = (date, tr) => {\r\n return dateOrDateTimeValid().test('dateValidMin', tr, (value) => {\r\n if (!value || !value.isValid()) {\r\n return true;\r\n }\r\n let dateToCompare = date;\r\n if (!isMoment(date)) {\r\n dateToCompare = moment(date);\r\n }\r\n let result;\r\n if (!dateToCompare.isValid()) {\r\n result = false;\r\n } else {\r\n result = !value.isBefore(dateToCompare.startOf(\"day\"));\r\n }\r\n return result;\r\n })\r\n}\r\n\r\n\r\nconst dateTimeMin = (date, tr) => {\r\n return dateOrDateTimeValid().test('dateTimeMin', tr, (value) => {\r\n if (!value || !value.isValid()) {\r\n return true;\r\n }\r\n let dateToCompare = date;\r\n if (!isMoment(date)) {\r\n dateToCompare = moment(date);\r\n }\r\n let result;\r\n if (!dateToCompare.isValid()) {\r\n result = false;\r\n } else {\r\n result = !value.isBefore(moment(dateToCompare));\r\n }\r\n return result;\r\n })\r\n}\r\nconst dateTimeMax = (date, tr) => {\r\n return dateOrDateTimeValid().test('dateTimeMax', tr, (value) => {\r\n if (!value || !value.isValid()) {\r\n return true;\r\n }\r\n let dateToCompare = date;\r\n if (!isMoment(date)) {\r\n dateToCompare = moment(date);\r\n }\r\n let result;\r\n if (!dateToCompare.isValid()) {\r\n result = false;\r\n } else {\r\n result = !dateToCompare.isBefore(value);\r\n }\r\n return result;\r\n })\r\n}\r\n\r\n\r\nexport default {\r\n stringNoRq: () => Yup.string(),\r\n string: (value, defTrKey) => {\r\n let trKey = defTrKey ? defTrKey : 'required_field'\r\n if (!defTrKey && value !== undefined) {\r\n trKey = 'v_string_required'\r\n }\r\n return Yup.string()\r\n .required(Tr(trKey, {value}))\r\n .noOnlyWhitespaces()\r\n .nullable()\r\n },\r\n stringExactly: (value, message) => stringExactlyBase(value, message),\r\n stringNotOneOf: (value, message) => stringNotOneOfBase(value, message),\r\n stringExactlyMax: (value, message, max) => stringExactlyBase(value, message)\r\n .max(max, maxStringFunc),\r\n stringMax: (max) => Yup.string()\r\n .max(max, maxStringFunc)\r\n .noOnlyWhitespaces().nullable()\r\n .required(Tr('required_field')),\r\n stringMin: (min) => Yup.string()\r\n .min(min, minStringFunc)\r\n .noOnlyWhitespaces()\r\n .required(Tr('required_field')),\r\n stringMinAndMax,\r\n stringMaxNoRq: (max) => Yup.string()\r\n .max(max, maxStringFunc).nullable(),\r\n number: (value) => {\r\n if (value !== undefined) {\r\n return Yup.number()\r\n .typeError(Tr('v_number_value', {value}))\r\n .min(0, Tr('v_positive_value', {value}))\r\n .required(Tr('v_number'))\r\n }\r\n return Yup.number()\r\n .typeError(Tr('v_number'))\r\n // .integer(Tr('v_integer'))\r\n .min(0, Tr('v_positive'))\r\n .required(Tr('v_number'))\r\n },\r\n numberMax: (value, key) => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .min(0, Tr('v_positive'))\r\n .max(value, Tr(key ? key : 'v_number_max', {value}))\r\n .required(Tr('v_number')),\r\n numberMin: (value, key) => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .min(value, Tr(key ? key : 'v_number_min', {min: value}))\r\n .required(Tr('v_number')),\r\n numberMin0: () => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .min(0, Tr('v_positive'))\r\n .required(Tr('v_number')),\r\n numberMaxNoZero: (value, key) => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .positive(Tr('v_positive'))\r\n .max(value, Tr(key ? key : 'v_number_max', {value}))\r\n .required(Tr('v_number')),\r\n numberPositiveOptional: () => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .positive(Tr('v_positive')).nullable(),\r\n numberPositiveNoZero: () => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .positive(Tr('v_positive'))\r\n .required(Tr('v_number')),\r\n numberMaxMin: (min, max, keyMin, keyMax, fieldName) => Yup.number()\r\n .typeError(fieldName ? Tr('v_number_value_field', {value: fieldName}) : Tr('v_number'))\r\n .min(min, Tr(keyMin ? keyMin : 'v_number_min', {min}))\r\n .max(max, Tr(keyMax ? keyMax : 'v_number_max', {value: max}))\r\n .required(Tr('v_number')),\r\n decimalNumber: (value) => Yup.string()\r\n .matches(/^[-]?\\d+([,.]|([,.]\\d{1,2})?)$/, Tr('decimal_number', {value}))\r\n .required(Tr('v_number_value_field', {value})).nullable(),\r\n bigDecimal: () => Yup.string()\r\n .matches(/^[-]?\\d{1,17}([,.]|([,.]\\d{1,10})?)$/, Tr('v_number'))\r\n .required(Tr('required_field')).nullable(),\r\n bigDecimalOptional: () => Yup.string()\r\n .matches(/^[-]?\\d{1,17}([,.]|([,.]\\d{1,10})?)$/, Tr('v_number'))\r\n .nullable(),\r\n integerMin: (value = 0) => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .min(value, Tr('v_number_min',{min: value}))\r\n .required(Tr('v_number'))\r\n .integer(Tr('integer_number')),\r\n integerMax: (value, key) => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .min(1, Tr('v_number_min_0'))\r\n .max(value, Tr(key ? key : 'v_number_max', {value}))\r\n .required(Tr('v_number'))\r\n .integer(Tr('integer_number')),\r\n integerMinMax: (min, max, keyMin, keyMax) => Yup.number()\r\n .typeError(Tr('v_number'))\r\n .min(min, Tr(keyMin ? keyMin : min === 0 ? 'v_number_min_0' : 'v_number_min', {min: min}))\r\n .max(max, Tr(keyMax ? keyMax : 'v_number_max', {value: max}))\r\n .required(Tr('v_number'))\r\n .integer(Tr('integer_number')),\r\n email: () => Yup.string().email(Tr('invalid_email')).matches(emailRegexp, Tr('invalid_email')),\r\n emailMax: (max) => Yup.string()\r\n .max(max, maxStringFunc)\r\n .email(Tr('invalid_email'))\r\n .matches(emailRegexp, Tr('invalid_email'))\r\n .nullable()\r\n .required(Tr('required_field')),\r\n emailMaxNoRq: (max) => Yup.string()\r\n .max(max, maxStringFunc)\r\n .email(Tr('invalid_email')).matches(emailRegexp, Tr('invalid_email')).nullable(),\r\n amount: (min = 0, inclusive = true) => amountBasicRequired(min, inclusive)\r\n .nullable()\r\n .required(Tr('required_field')),\r\n amountOptional: (min = 0, inclusive = true) => amountBasicOptional(min, inclusive)\r\n .nullable(),\r\n amountMax100NoZero: () => Yup.lazy((value) => amountMaxDecimal100(value)\r\n .nullable()\r\n .required(Tr('required_field'))\r\n ),\r\n amountMax100: () => Yup.lazy((value) => amountMaxDecimal100(value, false)\r\n .nullable()\r\n .required(Tr('required_field'))\r\n ),\r\n amountMax100Optional: () => Yup.lazy((value) => amountMaxDecimal100(value, false)\r\n .nullable()\r\n ),\r\n arrayOfShape: (shape) => Yup.array(Yup.object().shape(shape)),\r\n arrayOf: (shema) => Yup.array().of(shema),\r\n object: (shape, fields) => Yup.object().shape(shape, fields),\r\n lazy: (fn) => Yup.lazy(fn),\r\n arrayRequired: (tr) => Yup.array().nullable().min(1, Tr(tr ? tr : 'required_field')).test(\r\n 'arrayRequired',\r\n Tr(tr ? tr : 'required_field'),\r\n (formValue) => {\r\n return Array.isArray(formValue) && formValue.length >= 0;\r\n }\r\n ),\r\n any: () => Yup.mixed(),\r\n anyRequired: () => Yup.mixed().required(Tr('required_field')),\r\n immediatelyError: (tr) => Yup.mixed().test('immediatelyError', tr, (val) => {\r\n return false;\r\n }),\r\n dateMaxNoRq: (date, tr) => dateMax(date, tr),\r\n dateMax: (date, tr) => dateMax(date, tr).required(Tr('required_field')),\r\n dateMinNoRq: (date, tr) => dateMin(date, tr),\r\n dateMin: (date, tr) => dateMin(date, tr).required(Tr('required_field')),\r\n dateTimeNoReq: () => dateOrDateTimeValid(),\r\n dateTimeValid: () => dateOrDateTimeValid().required(Tr('required_field')),\r\n dateTimeMinNoRq: (date, tr) => dateTimeMin(date, tr),\r\n dateTimeMin: (date, tr) => dateTimeMin(date, tr).required(Tr('required_field')),\r\n dateTimeMaxNoRq: (date, tr) => dateTimeMax(date, tr),\r\n dateTimeMax: (date, tr) => dateTimeMax(date, tr).required(Tr('required_field')),\r\n vatinPLOptional: () => Yup.string().test('vatinPL', Tr(\"invalid_vatin\"), (val) => {\r\n return vatinPL(val, true);\r\n }).nullable(),\r\n vatinOrPeselPL: (tr) => Yup.string().test('vatinOrPeselPL', tr, (val) => {\r\n const vatinValid = vatinPL(val);\r\n const peselValid = peselPL(val);\r\n\r\n return vatinValid || peselValid;\r\n\r\n }),\r\n requiredBoolean: () => Yup.boolean().required(Tr('required_field')).nullable(),\r\n mixed: () => Yup.mixed(),\r\n requiredObject: () => Yup.object().required(Tr('required_field')).nullable(),\r\n ref: Yup.ref,\r\n url: () => Yup.string().url(Tr('invalid_url')).nullable().required(Tr('required_field')),\r\n urlOptional: () => Yup.string().url(Tr('invalid_url')).nullable(),\r\n urlMax: (max) => Yup.string().max(max, maxStringFunc).url(Tr('invalid_url')).nullable().required(Tr('required_field')),\r\n urlMaxOptional: (max) => Yup.string().max(max, maxStringFunc).url(Tr('invalid_url')).nullable(),\r\n phoneOptional: () => Yup.string().matches(/(^[+]\\d{2}\\s?\\d{9}$)|^\\d{9}$/, Tr('invalid_telephone')).nullable()\r\n}","import React, {useEffect} from 'react'\r\nimport {Formik} from 'formik';\r\nimport Button from './Button';\r\nimport PropTypes from 'prop-types'\r\nimport {setForm} from 'redux/actions'\r\nimport {connect} from 'react-redux'\r\nimport ValidationShema from \"../constants/ValidationShema\";\r\n\r\nfunction InnerForm(\r\n {\r\n id,\r\n htmlFormId,\r\n setForm,\r\n formikProps,\r\n submitLabel,\r\n children,\r\n className,\r\n afterSubmitFunc = () => {\r\n },\r\n }) {\r\n\r\n useEffect(() => {\r\n if (id !== undefined) {\r\n // setForm(id, formikProps.submitForm)\r\n setForm(id, () => {\r\n formikProps.submitForm().then(afterSubmitFunc)\r\n })\r\n setForm(id + \"_reset\", formikProps.resetForm)\r\n }\r\n return () => {\r\n if (id !== undefined) {\r\n setForm(id);\r\n setForm(id + \"_reset\");\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n return (\r\n \r\n {children(formikProps)}\r\n {submitLabel &&\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nfunction Form(\r\n {\r\n children,\r\n onSubmit,\r\n onReset,\r\n submitLabel,\r\n initialValues,\r\n initialTouched,\r\n validationSchema = ValidationShema.any(),\r\n id,\r\n htmlFormId,\r\n setForm,\r\n className,\r\n afterSubmitFunc,\r\n onChange,\r\n validateOnMount,\r\n validateOnChange,\r\n validateOnBlur\r\n }) {\r\n\r\n useEffect(() => {\r\n return () => {\r\n setForm(id)\r\n };\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n return (\r\n {\r\n actions.setSubmitting(false);\r\n onSubmit(values, actions)\r\n }}\r\n onReset={onReset}\r\n >{(props) => ()}\r\n )\r\n}\r\n\r\nForm.propTypes = {\r\n id: PropTypes.string,\r\n htmlFormId: PropTypes.string,\r\n initialValues: PropTypes.any,\r\n submitLabel: PropTypes.any,\r\n onSubmit: PropTypes.func,\r\n onReset: PropTypes.func,\r\n validationSchema: PropTypes.object,\r\n className: PropTypes.string,\r\n}\r\n\r\nForm.defaultProps = {\r\n onSubmit: () => {\r\n },\r\n initialValues: {},\r\n validationSchema: {},\r\n}\r\n\r\nexport default connect((state) => ({}), {\r\n setForm\r\n})(Form);\r\n","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction Title(\r\n {\r\n children,\r\n align,\r\n className,\r\n variant='h5'\r\n }) {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nTitle.propTypes = {\r\n align: PropTypes.string,\r\n className: PropTypes.string,\r\n}\r\n\r\nTitle.defaultProps = {}\r\n\r\nexport default Title;","import React from 'react'\r\nimport { withStyles, Divider as DividerUI } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Title from 'components/Title';\r\nimport clsx from \"clsx\";\r\n\r\nconst style = theme => ({\r\n\ttitle: {\r\n\t\tmarginTop: theme.spacing(2),\r\n\t},\r\n\tdivider: {\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t}\r\n})\r\n\r\nfunction Divider({\r\n\tclasses,\r\n\ttitleClassName,\r\n\tchildren,\r\n\tvariant\r\n}) {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nDivider.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nDivider.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(Divider);","\r\nexport default (id, obj, defaultValue) => {\r\n\tif(id === undefined) return defaultValue;\r\n\tlet idArray = id.split('.')\r\n\tlet value = obj;\r\n\tfor (let i in idArray) {\r\n\t\tlet key = idArray[i]\r\n\t\tvalue = value[key]\r\n\t\tif (value === undefined\r\n\t\t|| value === null) return defaultValue;\r\n\t}\r\n\treturn value;\r\n}","export default {\r\n\tNUMBER_19: 'number_19',\r\n\tNUMBER_19_WITH_NEGATIVE: 'number_19_neg',\r\n\tNUMBER_POSITIVE_AMOUNT: 'number_positive_amount',\r\n\tNUMBER_DECIMAL: 'number_decimal',\r\n\tINTEGER_POSITIVE_AMOUNT: 'integer_positive_amount',\r\n\tPHONE: 'phone'\r\n}","export default (value, innerReg) => {\r\n let reg = innerReg ? innerReg : /(?!(\\d|[.,]))\\D/\r\n let _value = value.toString();\r\n\r\n if (_value.length > 0) {\r\n _value = _value.replace(reg, \"\")\r\n }\r\n\r\n\r\n _value = _value.replace(/,/g, '.')\r\n\r\n _value = _value.replace(/\\.\\./g, '.')\r\n\r\n return _value;\r\n}","import React, {useEffect} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {TextField, Typography, withStyles} from '@material-ui/core';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport Tr from 'translations/Translations';\r\nimport clsx from 'clsx';\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE'\r\nimport toNumberType from \"libs/toNumberType\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n position: 'relative',\r\n },\r\n limit: {\r\n position: 'absolute',\r\n bottom: 0,\r\n right: 0,\r\n color: theme.palette.text.secondary,\r\n },\r\n error: {\r\n marginBottom: 10,\r\n }\r\n})\r\n\r\nfunction TextInput({\r\n formikProps,\r\n id,\r\n label,\r\n placeholder,\r\n className,\r\n noError,\r\n noErrorSpace,\r\n multiline,\r\n disabled,\r\n required,\r\n endAdornment,\r\n limit,\r\n type = \"text\",\r\n onChange = () => {\r\n },\r\n classes,\r\n step,\r\n onBlur = () => {\r\n },\r\n showErrorImmediately = false,\r\n fullWidth = true,\r\n\tskipCheckTouched,\r\n\t...other\r\n}) {\r\n\tconst errorValue = getObjectValue(id, formikProps.errors, '')\r\n\tconst touched = getObjectValue(id, formikProps.touched, !!skipCheckTouched)\r\n\tconst value = getObjectValue(id, formikProps.values, '')\r\n\tconst editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const isError = !noError && (!!errorValue && Boolean(touched))\r\n const lettersLeft = limit - value.toString().length\r\n\r\n let _label = label;\r\n let _placeholder = placeholder;\r\n if (_label && required) _label += '*';\r\n if (_placeholder && required) _placeholder += '*';\r\n\r\n\r\n useEffect(() => {\r\n if (showErrorImmediately && lettersLeft < 0) {\r\n formikProps.setFieldTouched(id, true)\r\n }\r\n // eslint-disable-next-line\r\n }, [lettersLeft])\r\n\r\n\tconst handleChange = (e) => {\r\n\t\tlet value = e.target.value;\r\n\t\tswitch (type) {\r\n\t\t\tcase INPUT_TYPE.NUMBER_19:\r\n\t\t\tcase INPUT_TYPE.NUMBER_19_WITH_NEGATIVE:\r\n\t\t\t\tconst withMin = INPUT_TYPE.NUMBER_19_WITH_NEGATIVE === type;\r\n\t\t\t\tvalue = toNumberType(value, withMin ? /(?!(^([-]?)\\d|[.,]|^[-]))\\D/ : undefined);\r\n\t\t\t\tlet valueSplit = value.split('.')\r\n\t\t\t\tif(valueSplit.length > 2) {\r\n\t\t\t\t\tvalueSplit = valueSplit.slice(0, 2)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (valueSplit.length > 1) {\r\n\t\t\t\t\tvalueSplit[0] = valueSplit[0].slice(0, withMin && value.startsWith(\"-\") ? 14 : 13)\r\n\t\t\t\t\tvalueSplit[1] = valueSplit[1].slice(0, 2);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalueSplit[0] = valueSplit[0].slice(0, withMin && value.startsWith(\"-\") ? 14 : 13)\r\n\t\t\t\t}\r\n\t\t\t\tvalue = valueSplit.join('.');\r\n\t\t\t\tbreak;\r\n\t\t\tcase INPUT_TYPE.NUMBER_POSITIVE_AMOUNT:\r\n\t\t\t\tvalue = toNumberType(value);\r\n\t\t\t\tlet valueSplitAmount = value.split('.')\r\n\t\t\t\tif(valueSplitAmount.length > 2) {\r\n\t\t\t\t\tvalueSplit = valueSplit.slice(0, 2)\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (valueSplitAmount.length > 1) {\r\n\t\t\t\t\tvalueSplitAmount[0] = valueSplitAmount[0].slice(0, 17)\r\n\t\t\t\t\tvalueSplitAmount[1] = valueSplitAmount[1].slice(0, 10);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalueSplitAmount[0] = valueSplitAmount[0].slice(0, 17)\r\n\t\t\t\t}\r\n\t\t\t\tvalue = valueSplitAmount.join('.');\r\n\t\t\t\tbreak;\r\n\t\t\tcase INPUT_TYPE.INTEGER_POSITIVE_AMOUNT:\r\n\t\t\t\tvalue = toNumberType(value, /\\D/);\r\n\t\t\t\tbreak;\r\n\t\t\tcase INPUT_TYPE.NUMBER_DECIMAL:\r\n\t\t\t\tif (value !== \"-\") {\r\n\r\n\t\t\t\t\tvalue = toNumberType(value, /(?!(^([-]?)\\d|[.,]))\\D/);\r\n\t\t\t\t\tconst valueSplit1 = value.split('.')\r\n\t\t\t\t\tif (valueSplit1.length > 1) {\r\n\t\t\t\t\t\tvalueSplit1[1] = valueSplit1[1].slice(0, 10);\r\n\t\t\t\t\t\tvalueSplit1[0] = valueSplit1[0].slice(0, 17)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvalueSplit1[0] = valueSplit1[0].slice(0, 17)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvalue = valueSplit1.filter((x, i) => i < 2).join('.');\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase INPUT_TYPE.PHONE:\r\n\t\t\t\tvalue = toNumberType(value, /(?!(^([+]?)[ ]*\\d|[ ]|^[+]))\\D/);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n onChange(value);\r\n if (type === 'number' || type === 'text') formikProps.handleChange(e)\r\n else {\r\n formikProps.setFieldValue(id, value)\r\n formikProps.setFieldTouched(id, true)\r\n }\r\n }\r\n\r\n const handleBlur = (e) => {\r\n onBlur(e)\r\n formikProps.handleBlur(e)\r\n }\r\n\r\n\tconst inputType = ((type) => {\r\n\t\tswitch (type) {\r\n\t\t\tcase INPUT_TYPE.NUMBER_19:\r\n\t\t\tcase INPUT_TYPE.NUMBER_19_WITH_NEGATIVE:\r\n\t\t\tcase INPUT_TYPE.NUMBER_POSITIVE_AMOUNT: return 'text';\r\n\t\t\tdefault: return type;\r\n\t\t}\r\n\t})(type)\r\n\r\n const formatValue = () => {\r\n let v = '' + value;\r\n if (type !== \"text\") v = v.replace(/\\./g, ',')\r\n return v;\r\n }\r\n\r\n return (\r\n \r\n \r\n {limit &&\r\n \r\n {Tr('characters_left', {number: lettersLeft < 0 ? 0 : lettersLeft})}\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nTextInput.propTypes = {\r\n formikProps: PropTypes.object,\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n noError: PropTypes.bool,\r\n}\r\n\r\nTextInput.defaultProps = {\r\n noError: false,\r\n}\r\n\r\nexport default withStyles(style)(TextInput)\r\n","import React from 'react'\r\nimport {FormControlLabel, Radio, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n})\r\n\r\nfunction RadioGroupElement(\r\n {\r\n classes,\r\n value,\r\n children,\r\n size,\r\n labelClassName,\r\n className,\r\n disabled,\r\n htmlId\r\n }) {\r\n return (\r\n }\r\n label={children}\r\n classes={{\r\n label: labelClassName\r\n }}\r\n disabled={disabled}\r\n />\r\n )\r\n}\r\n\r\nRadioGroupElement.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(RadioGroupElement);","import React, { memo } from 'react'\r\nimport { RadioGroup as RadioGroupUI, FormControl, FormLabel, FormHelperText } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport RadioGroupElement from './RadioGroupElement';\r\n\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport { withStyles } from '@material-ui/styles';\r\n\r\nconst style = theme => ({\r\n\terror: {\r\n\t\tmarginTop: 0,\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t}\r\n})\r\n\r\nfunction RadioGroup({\r\n\tclasses,\r\n\tformikProps,\r\n\tlabel,\r\n\tid,\r\n\titems,\r\n\tchildren,\r\n\tclassName,\r\n\trequired,\r\n\tnoError,\r\n\tonChange = ()=> {},\r\n\tdisabled\r\n}) {\r\n\tconst errorValue = getObjectValue(id, formikProps.errors, '')\r\n\tconst touched = getObjectValue(id, formikProps.touched, false)\r\n\tconst value = getObjectValue(id, formikProps.values, '')\r\n\tconst editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n\tconst isError = !noError && (!!errorValue && touched)\r\n\r\n\t// const isError = !!formikProps.errors[id] && formikProps.touched[id]\r\n\tconst helperText = (isError && errorValue) || ' ';\r\n\r\n\tlet _label = label;\r\n\tif (required) _label += '*';\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{_label}\r\n\t\t\t {\r\n\t\t\t\t\tonChange(event);\r\n\t\t\t\t\tformikProps.handleChange(event);\r\n\t\t\t\t}}\r\n\t\t\t\tonBlur={formikProps.handleBlur}\r\n\t\t\t\t// value={formikProps.values[id]}\r\n\t\t\t\tvalue={value}\r\n\t\t\t>\r\n\t\t\t\t{items.map((item, i) => {\r\n\t\t\t\t\tconst isStr = typeof item === 'string';\r\n\t\t\t\t\tconst value = isStr ? item : String(item.value);\r\n\t\t\t\t\tconst label = isStr ? item : item.label;\r\n\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{label}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)\r\n\t\t\t\t})}\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\t{helperText}\r\n\t\t\r\n\t)\r\n}\r\n\r\nRadioGroup.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tlabel: PropTypes.string,\r\n\tid: PropTypes.string,\r\n\titems: PropTypes.arrayOf(\r\n\t\tPropTypes.oneOfType([\r\n\t\t\tPropTypes.shape({\r\n\t\t\t\tvalue: PropTypes.any.isRequired,\r\n\t\t\t\tlabel: PropTypes.string.isRequired,\r\n\t\t\t}),\r\n\t\t\tPropTypes.string.isRequired,\r\n\t\t])\r\n\t),\r\n\tformikProps: PropTypes.object,\r\n}\r\n\r\nRadioGroup.defaultProps = {\r\n\titems: []\r\n}\r\n\r\nexport default withStyles(style)(memo(RadioGroup, (prevProps, nextProps) => {\r\n\tif (prevProps.label !== nextProps.label) return false;\r\n\tif (prevProps.id !== nextProps.id) return false;\r\n\tif (JSON.stringify(prevProps.items) !== JSON.stringify(nextProps.items)) return false;\r\n\tif (prevProps.children !== nextProps.children) return false;\r\n\tconst id = nextProps.id;\r\n\t// if (prevProps.formikProps.values[id] !== nextProps.formikProps.values[id]) return false;\r\n\t// if (prevProps.formikProps.errors[id] !== nextProps.formikProps.errors[id]) return false;\r\n\t// if (prevProps.formikProps.touched[id] !== nextProps.formikProps.touched[id]) return false;\r\n\tif (getObjectValue(id, prevProps.formikProps.values) !== getObjectValue(id, nextProps.formikProps.values)) return false;\r\n\tif (getObjectValue(id, prevProps.formikProps.errors) !== getObjectValue(id, nextProps.formikProps.errors)) return false;\r\n\tif (getObjectValue(id, prevProps.formikProps.touched) !== getObjectValue(id, nextProps.formikProps.touched)) return false;\r\n\treturn true;\r\n}))","import React from 'react'\r\nimport TypographyUI from '@material-ui/core/Typography';\r\n\r\nfunction Typography(props) {\r\n return (\r\n \r\n )\r\n}\r\n\r\n\r\nexport default (Typography);","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {Box, MenuItem, TextField} from '@material-ui/core';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport {withStyles} from '@material-ui/styles';\r\nimport clsx from 'clsx';\r\nimport Typography from \"./Typography\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n marginBottom: theme.spacing(),\r\n },\r\n contrastSelectValue: {\r\n minHeight: theme.spacing(4)\r\n },\r\n selected: {\r\n background: `${theme.palette.primary.main} !important`,\r\n color: `${theme.palette.secondary.contrastText} !important`\r\n\r\n },\r\n border: {\r\n border: `1px solid ${theme.palette.common.white}`,\r\n },\r\n subLabel: {\r\n fontStyle: 'italic'\r\n }\r\n})\r\nexport const createSelectItem = (value, label, subLabel) => ({\r\n value,\r\n label: label !== undefined ? label : value,\r\n subLabel\r\n})\r\n\r\nfunction Select(\r\n {\r\n formikProps,\r\n id,\r\n label,\r\n items,\r\n noError,\r\n className,\r\n required,\r\n classes,\r\n disabled,\r\n onChange = () => {\r\n },\r\n alwaysEditable = false,\r\n showErrorWithoutTouched = false\r\n }) {\r\n const errorValue = getObjectValue(id, formikProps.errors, '')\r\n const touched = getObjectValue(id, formikProps.touched, false)\r\n const value = getObjectValue(id, formikProps.values, '')\r\n const editable = alwaysEditable || getObjectValue('_editable', formikProps.values, true);\r\n\r\n const isError = !noError && !!errorValue && (showErrorWithoutTouched || !!touched)\r\n\r\n let _label = label;\r\n if (_label && required) _label += '*';\r\n\r\n const _value = items.findIndex(x => {\r\n if (typeof x === 'string') return x === value\r\n return x.value === value\r\n }) < 0 ? '' : value;\r\n\r\n return (\r\n {\r\n formikProps.handleChange(event);\r\n onChange(event)\r\n }}\r\n onBlur={formikProps.handleBlur}\r\n value={_value}\r\n error={isError}\r\n helperText={noError ? undefined : isError ? errorValue : ' '}\r\n fullWidth\r\n classes={{\r\n root: classes.contrast,\r\n // selectMenu: classes.selected,\r\n }}\r\n SelectProps={{\r\n MenuProps: {\r\n classes: {\r\n paper: classes.border\r\n }\r\n },\r\n }}\r\n >\r\n {\r\n items.map((item, i) => {\r\n const isStr = typeof item === 'string';\r\n const value = isStr ? item : item.value;\r\n const label = isStr ? item : item.label;\r\n const subLabel = isStr ? undefined : item.subLabel;\r\n\r\n return (\r\n \r\n \r\n {label}\r\n { !!subLabel &&\r\n {subLabel}\r\n }\r\n \r\n\r\n \r\n )\r\n })\r\n }\r\n \r\n )\r\n}\r\n\r\nSelect.propTypes = {\r\n className: PropTypes.string,\r\n formikProps: PropTypes.object,\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n items: PropTypes.arrayOf(\r\n PropTypes.oneOfType([\r\n PropTypes.shape({\r\n value: PropTypes.any.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }),\r\n PropTypes.string.isRequired,\r\n ])\r\n )\r\n}\r\n\r\nSelect.defaultProps = {\r\n items: []\r\n}\r\n\r\nexport default withStyles(style)(Select)\r\n","import Tr from 'translations/Translations';\r\n\r\nconst PrimaryTenderVariant = {\r\n\tVARIANT_1: \"variant_1\",\r\n\tVARIANT_2: \"variant_2\",\r\n\tVARIANT_3: \"variant_3\",\r\n}\r\n\r\nexport const PrimaryTenderVariantTr = {\r\n\t[PrimaryTenderVariant.VARIANT_1]: Tr(\"primarytendervariant.variant_1\"),\r\n\t[PrimaryTenderVariant.VARIANT_2]: Tr(\"primarytendervariant.variant_2\"),\r\n\t[PrimaryTenderVariant.VARIANT_3]: Tr(\"primarytendervariant.variant_3\")\r\n}\r\n\r\nexport default PrimaryTenderVariant;\r\n","import {PrimaryTenderVariantTr} from \"constants/PrimaryTenderVariant\";\r\n\r\nexport default Object.entries(PrimaryTenderVariantTr).map(([value, label]) => ({label, value}))","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (value) => ({label: Tr('pzp_exclusion.' + value), value})\r\n\r\nexport default [\r\n {label: '---', value: ''},\r\n createItem('exclusion10'),\r\n createItem('exclusion1'),\r\n createItem('exclusion2'),\r\n createItem('exclusion3'),\r\n createItem('exclusion4'),\r\n createItem('exclusion5'),\r\n createItem('exclusion6'),\r\n createItem('exclusion7'),\r\n createItem('exclusion8'),\r\n createItem('exclusion9'),\r\n createItem('exclusion11'),\r\n createItem('exclusion12'),\r\n]","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value) => ({label: Tr(trKey), value})\r\n\r\nexport default [\r\n\tcreateItem('p1s1_ot_1', 'supplies'),\r\n\tcreateItem('p1s1_ot_2', 'services'),\r\n\tcreateItem('p1s1_ot_3', 'works'),\r\n]","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value) => ({label: Tr(trKey), value})\r\n\r\nexport default [\r\n\tcreateItem('p1s1_ot_2', 'services'),\r\n\tcreateItem('p1s1_ot_3', 'works'),\r\n]","import Tr from 'translations/Translations';\r\nimport {createSelectItem} from \"../components/Select\";\r\n\r\nexport default [\r\n createSelectItem(true, Tr('yes')),\r\n createSelectItem(false, Tr('no'))\r\n]\r\n\r\n","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value) => ({label: Tr(trKey), value})\r\n\r\nexport default [\r\n // createItem('p1s1_jedz_1', 'yes'),\r\n createItem('p1s1_jedz_2', 'yes'),\r\n createItem('p1s1_jedz_3', 'yesPostpone'),\r\n createItem('p1s1_jedz_4', 'no'),\r\n]\r\n\r\nexport const jedzTranslations = (value) => {\r\n switch (value) {\r\n case \"yes\":\r\n return Tr(\"p1s1_jedz_2\");\r\n case \"yesPostpone\":\r\n return Tr(\"p1s1_jedz_3\");\r\n case \"no\":\r\n return Tr(\"p1s1_jedz_4\");\r\n default:\r\n return \"\"\r\n }\r\n\r\n}","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value) => ({label: Tr(trKey), value})\r\n\r\nconst itemsHidedExecutive = [\r\n\tcreateItem('p1s1_ct_1', 'Standard'),\r\n\tcreateItem('p1s1_ct_2', 'Framework')\r\n]\r\n\r\nconst itemsWithExecutive = [\r\n\t...itemsHidedExecutive,\r\n\tcreateItem('p1s1_ct_3', 'Executive')\r\n]\r\n\r\n\r\nexport default (hideExecutiveDemandVariant) => {\r\n if (hideExecutiveDemandVariant) {\r\n \treturn itemsHidedExecutive;\r\n } else {\r\n \treturn itemsWithExecutive;\r\n\t}\r\n}\r\n","import React from 'react'\r\nimport {Checkbox as CheckboxUI, FormControlLabel, Tooltip} from '@material-ui/core';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport Tr from 'translations/Translations';\r\n\r\nfunction Checkbox(\r\n {\r\n formikProps,\r\n id,\r\n htmlId,\r\n label,\r\n disabled,\r\n checkboxClassName,\r\n fullWidth,\r\n checked,\r\n className,\r\n labelClassName,\r\n onChange = () => {\r\n },\r\n }) {\r\n\r\n const value = checked === undefined ? getObjectValue(id, formikProps.values, false) : checked\r\n\r\n const checkbox = \r\n {\r\n if (formikProps) formikProps.handleChange(event);\r\n onChange(event);\r\n }}\r\n onBlur={formikProps ? formikProps.handleBlur : undefined}\r\n disabled={disabled}\r\n className={checkboxClassName}\r\n id={htmlId}\r\n />\r\n \r\n\r\n if (Boolean(label)) {\r\n return (\r\n \r\n )\r\n }\r\n return checkbox;\r\n}\r\n\r\nexport default Checkbox\r\n","import React from 'react'\r\n\r\nexport default ({ type = 'div', children, props = {} }) => {\r\n\treturn React.createElement(\r\n\t\ttype,\r\n\t\t{\r\n\t\t\tdangerouslySetInnerHTML: {\r\n\t\t\t\t__html: children\r\n\t\t\t},\r\n\t\t\t...props,\r\n\t\t}\r\n\t)\r\n}\r\n","import React from 'react'\r\nimport {CircularProgress, makeStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport IconButton from \"./IconButton\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n fabProgress: {\r\n position: 'absolute',\r\n left: 0,\r\n top: 0\r\n }\r\n}))\r\n\r\nfunction WorkableIconButton(\r\n {\r\n working,\r\n disabled,\r\n ...props\r\n }) {\r\n const classes = useStyles();\r\n return (\r\n \r\n {working && }\r\n \r\n )\r\n}\r\n\r\nWorkableIconButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.elementType]),\r\n hideTooltip: PropTypes.bool,\r\n Icon: PropTypes.elementType,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconButton;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowDown'\r\nimport clsx from 'clsx';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nconst useStyles = makeStyles({\r\n\trotate: {\r\n\t\ttransform: 'rotate(180deg)'\r\n\t},\r\n})\r\n\r\nfunction WorkableIconExpandButton({\r\n\texpanded,\r\n\ttooltip,\r\n\t...props\r\n}) {\r\n\tconst classes = useStyles();\r\n\tlet _tooltip = tooltip;\r\n\tif (!_tooltip && !props.disabled) {\r\n\t\t_tooltip = expanded ? Tr('collapse') : Tr('expand');\r\n\t}\r\n\r\n\treturn \r\n\r\n}\r\n\r\nWorkableIconExpandButton.propTypes = {\r\n\texpanded: PropTypes.bool,\r\n\tworking: PropTypes.bool,\r\n\tdisabled: PropTypes.bool,\r\n\ttooltip: PropTypes.string,\r\n\thideTooltip: PropTypes.bool,\r\n\tcolor: PropTypes.string,\r\n\tonClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconExpandButton;","import React, { useState, useEffect } from 'react'\r\nimport { withStyles, Typography, Collapse } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Checkbox from 'components/Checkbox';\r\nimport clsx from 'clsx';\r\nimport RawHTML from 'components/RawHTML';\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t},\r\n\tradioGroup: {\r\n\t\twidth: '100%',\r\n\t\tmargin: 0,\r\n\t},\r\n\trotate: {\r\n\t\ttransform: 'rotate(180deg)'\r\n\t},\r\n\tmargin: {\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t},\r\n\tfilteredItemRoot: {\r\n\t\tdisplay: 'flex',\r\n\t\twidth: '100%',\r\n\t\talignItems: 'center'\r\n\t}\r\n})\r\n\r\nfunction ListElement({\r\n\tclasses,\r\n\tclassName,\r\n\tformikProps,\r\n\titemValue,\r\n\tsearchKeys,\r\n\t multiple,\r\n\t handleSave\r\n}) {\r\n\r\n\tconst {\r\n\t\tidentity,\r\n\t\tpublicCode,\r\n\t\tname,\r\n\t\tchildren,\r\n\t\tshouldOpen = false,\r\n\t\t...otherItemValues\r\n\t} = itemValue;\r\n\r\n\tconst [boldLabel, setBoldLabel] = useState('')\r\n\tconst [open, setOpen] = useState(shouldOpen)\r\n\r\n\tuseEffect(() => {\r\n\t\tsetOpen(shouldOpen)\r\n\t}, [shouldOpen])\r\n\r\n\r\n\tconst handleArrowClick = () => {\r\n\t\tsetOpen(!open)\r\n\t}\r\n\r\n\tconst checkboxId = JSON.stringify({\r\n\t\tidentity,\r\n\t\tpublicCode,\r\n\t\tname,\r\n\t\t...otherItemValues\r\n\t})\r\n\r\n\tconst _label = `${publicCode} ${name}`;\r\n\r\n\tuseEffect(() => {\r\n\t\tlet label = _label;\r\n\t\tsearchKeys.forEach(key => {\r\n\t\t\tif (key === '') return;\r\n\t\t\tconst reg = new RegExp(`(${key})`, 'ig')\r\n\t\t\tlabel = label.replace(reg, `$1`);\r\n\t\t});\r\n\t\tsetBoldLabel(label)\r\n\t}, [searchKeys, _label])\r\n\r\n\tconst openRow = open;\r\n\r\n\tconst label = (\r\n\t\t\r\n\t\t\t{boldLabel}\r\n\t\t\r\n\t)\r\n\r\n\t// const checkbox = (id) => {\r\n\t// \tconst value = getObjectValue(id, formikProps.values, false);\r\n\t// \treturn (\r\n\t// \t\t\r\n\t// \t)\r\n\t// }\r\n\r\n\tconst renderChildren = () => {\r\n\t\treturn children.map((item, i) => {\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t)\r\n\t\t})\r\n\t}\r\n\r\n\t// if (isFiltered) {\r\n\t// \treturn (\r\n\t// \t\t<>\r\n\t// \t\t\t
\r\n\t// \t\t\t\t{checkbox(checkboxId)}\r\n\t// \t\t\t\t{label}\r\n\t// \t\t\t
\r\n\t// \t\t\t{\r\n\t// \t\t\t\tchildren.length > 0 &&\r\n\t// \t\t\t\t
\r\n\t// \t\t\t\t\t{renderChildren()}\r\n\t// \t\t\t\t
\r\n\t// \t\t\t}\r\n\t// \t\t\r\n\t// \t)\r\n\t// }\r\n\r\n\tconst onChange = (e) => {\r\n\t\tif(!multiple && e.target.checked)\r\n\t\t\thandleSave();\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\t\t{label}\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tchildren.length > 0 &&\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t/>\r\n\r\n\t\t\t{\r\n\t\t\t\tchildren.length > 0 &&\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{openRow ? renderChildren() : ''}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t}\r\n\t\t\r\n\r\n\t)\r\n}\r\n\r\nListElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ListElement);","export default (items, search, size) => {\r\n\tif (search.trim().length === 0) return [items, [], false];\r\n\tconst s = search.toLowerCase().replace(/,/g, ' ').replace(/ +/g, ' ');\r\n\tlet searchKeys = s.split(' ');\r\n\tlet counter = 0;\r\n\tlet fastEnd = false;\r\n\r\n\tconst match = (x) => {\r\n\t\tconst publicCode = x.publicCode.toLowerCase();\r\n\t\tconst name = x.name.toLowerCase().replace(/,/g, ' ').replace(/ +/g, ' ');\r\n\t\tconst fullName = publicCode + ' ' + name;\r\n\r\n\t\treturn searchKeys.every(k => k === '' || fullName.includes(k))\r\n\t}\r\n\r\n\tconst find = (object) => {\r\n\t\tlet filteredChildrens = [];\r\n\t\tif (object.children && object.children.length > 0) {\r\n\t\t\tobject.children.forEach((element) => {\r\n\t\t\t\tif (counter > size) {\r\n\t\t\t\t\tfastEnd = true;\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tconst findEl = find(element);\r\n\t\t\t\tif (findEl !== null) {\r\n\t\t\t\t\tfilteredChildrens.push(findEl);\r\n\t\t\t\t\tcounter += 1;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t\tif (filteredChildrens.length > 0) {\r\n\t\t\tcounter += 1;\r\n\t\t\treturn {\r\n\t\t\t\t...object,\r\n\t\t\t\tshouldOpen: true,\r\n\t\t\t\tchildren: filteredChildrens\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (counter > size) {\r\n\t\t\tfastEnd = true\r\n\t\t\treturn null\r\n\t\t}\r\n\t\tconst isMatch = match(object);\r\n\t\tif (isMatch) return object;\r\n\r\n\t\treturn null;\r\n\t}\r\n\tconst newItems = items.reduce((prev, curr) => {\r\n\t\tconst el = find(curr);\r\n\t\tif (el === null) return prev;\r\n\t\treturn [\r\n\t\t\t...prev,\r\n\t\t\tel,\r\n\t\t]\r\n\t}, [])\r\n\treturn [newItems, searchKeys, fastEnd]\r\n}","import React, { useRef, useEffect, useState } from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport InfiniteScroller from 'react-infinite-scroller'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\theight: '45vh',\r\n\t\toverflow: 'auto',\r\n\t\tpaddingRight: theme.scrollSize,\r\n\t}\r\n})\r\n\r\n\r\nfunction RadioListInfiniteScroller({\r\n\tclasses,\r\n\tchildren,\r\n\tsize,\r\n\tmaxSize,\r\n\tpage,\r\n\tloadMore,\r\n}) {\r\n\tconst containerRef = useRef();\r\n\tconst [hasMore, setHasMore] = useState(false)\r\n\tconst threshold = 200;\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!hasMore) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tsetHasMore(maxSize > size);\r\n\t\t\t}, 500)\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [size])\r\n\r\n\tconst load = (page) => {\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (hasMore) {\r\n\t\t\t\tsetHasMore(false);\r\n\t\t\t\tloadMore();\r\n\t\t\t}\r\n\t\t}, 500)\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t containerRef.current}\r\n\t\t\t>\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t
\r\n\t)\r\n}\r\n\r\nRadioListInfiniteScroller.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(RadioListInfiniteScroller);","export default (items) => {\r\n\r\n\tconst getSize = (list) => {\r\n\t\treturn list.length + list.reduce((count, item) => {\r\n\t\t\treturn count + getSize(item.children);\r\n\t\t}, 0);\r\n\t}\r\n\r\n\treturn !items ? 0 : getSize(items);\r\n}","import React, { useState, useEffect } from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n// import RadioGroup from 'components/RadioGroup';\r\nimport ListElement from './ListElement';\r\nimport filterItems from './libs/filterItems';\r\nimport RadioListInfiniteScroller from './RadioListInfiniteScroller';\r\nimport countItemsFunc from './libs/countItems'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\twidth: '100%'\r\n\t},\r\n})\r\n\r\nlet typingStopTimeout = null;\r\n\r\nfunction RadioList({\r\n\tclasses,\r\n\tformikProps,\r\n\titems = [],\r\n\tcountItems,\r\n multiple,\r\n handleSave\r\n}) {\r\n\tconst PAGE_SIZE = 30;\r\n\tconst [page, setPage] = useState(1)\r\n\tconst size = page * PAGE_SIZE;\r\n\tconst [elementLength, setElementLength] = useState(size);\r\n\tconst [filtered, setFiltered] = useState(items)\r\n\tconst [searchKeys, setSearchKeys] = useState([])\r\n\tconst [searchChanged, setSearchChanged] = useState(null)\r\n\tconst [itemsCount, setItemsCount] = useState(countItems)\r\n\r\n\tconst search = formikProps.values.search;\r\n\r\n\tuseEffect(() => {\r\n\t\tclearTimeout(typingStopTimeout);\r\n\t\ttypingStopTimeout = setTimeout(() => {\r\n\t\t\tconst [newItems, newSearchKeys, fastEnd] = filterItems(items, search, size)\r\n\t\t\tsetFiltered(newItems);\r\n\t\t\tsetSearchKeys(newSearchKeys)\r\n\t\t\tif (fastEnd) {\r\n\t\t\t\tif (countItems !== itemsCount) {\r\n\t\t\t\t\tsetItemsCount(countItems)\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tsetItemsCount(countItemsFunc(newItems))\r\n\t\t\t}\r\n\t\t\tif (JSON.stringify(newSearchKeys) !== JSON.stringify(searchKeys)) {\r\n\t\t\t\tsetPage(1);\r\n\t\t\t\tsetElementLength(PAGE_SIZE);\r\n\t\t\t\tsetSearchChanged(Math.random())\r\n\t\t\t} else {\r\n\t\t\t\tsetElementLength(size);\r\n\t\t\t}\r\n\t\t}, 500);\r\n\t\treturn () => {\r\n\t\t\tclearTimeout(typingStopTimeout);\r\n\t\t}\r\n\t// eslint-disable-next-line\r\n\t}, [search, items, size])\r\n\r\n\tconst getItems = () => {\r\n\t\treturn filtered;\r\n\t}\r\n\r\n\tconst loadFunc = () => {\r\n\t\tsetPage((p) => p += 1);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{getItems().map((item, i) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t})}\r\n\t\t\r\n\t)\r\n}\r\n\r\n/* \r\n\t\r\n */\r\n\r\nRadioList.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(RadioList);","import React from 'react'\r\nimport {CircularProgress, makeStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Button from \"../Button\";\r\nimport clsx from \"clsx\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n progress: {\r\n marginLeft: theme.spacing()\r\n },\r\n contained: {\r\n color: theme.palette.text.button,\r\n },\r\n text: {\r\n color: theme.palette.primary.main,\r\n }\r\n}))\r\n\r\nfunction WorkableButton(\r\n {\r\n working,\r\n children,\r\n variant = 'contained',\r\n onClick,\r\n ...props\r\n }) {\r\n const classes = useStyles();\r\n return (\r\n e.stopPropagation() : onClick}\r\n {...props}>\r\n {children}\r\n {working && }\r\n \r\n )\r\n}\r\n\r\nWorkableButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.elementType]),\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func,\r\n variant: PropTypes.oneOf([ 'text', 'outlined', 'contained']),\r\n}\r\n\r\nexport default WorkableButton;","import React from 'react'\r\nimport {Grid, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport WorkableButton from \"../../button/WorkableButton\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n item: {\r\n minWidth: theme.components.popup.buttons.width,\r\n '&:nth-child(2)': {\r\n marginRight: theme.spacing(1)\r\n },\r\n '&:nth-child(3)': {\r\n marginLeft: theme.spacing(1)\r\n }\r\n }\r\n})\r\n\r\nfunction DoubleButton(\r\n {\r\n className,\r\n classes,\r\n labelFirst,\r\n labelSecond,\r\n onClickFirst,\r\n onClickSecond,\r\n buttonTypeFirst,\r\n buttonTypeSecond,\r\n disabledFirst,\r\n disabledSecond,\r\n workingFirst,\r\n workingSecond,\r\n justify,\r\n before,\r\n after,\r\n }) {\r\n return (\r\n \r\n {before}\r\n \r\n \r\n {labelFirst}\r\n \r\n \r\n \r\n \r\n {labelSecond}\r\n \r\n \r\n {after}\r\n \r\n )\r\n}\r\n\r\nDoubleButton.propTypes = {\r\n className: PropTypes.string,\r\n classes: PropTypes.any,\r\n labelFirst: PropTypes.string,\r\n labelSecond: PropTypes.string,\r\n onClickFirst: PropTypes.func,\r\n onClickSecond: PropTypes.func,\r\n buttonTypeFirst: PropTypes.string,\r\n buttonTypeSecond: PropTypes.string,\r\n disabledFirst: PropTypes.bool,\r\n disabledSecond: PropTypes.bool,\r\n workingFirst: PropTypes.bool,\r\n workingSecond: PropTypes.bool,\r\n}\r\n\r\nDoubleButton.defaultProps = {}\r\n\r\nexport default withStyles(style)(DoubleButton);","import createId from 'libs/createId';\r\nimport { useState } from 'react';\r\n\r\nexport default () => {\r\n\tconst [id] = useState(createId())\r\n\treturn id;\r\n}","export default () => {\r\n\treturn '_'+Math.random().toString(36).substring(2);\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET} from 'libs/RestRequest';\r\n\r\nconst get = async () => {\r\n try {\r\n return await RestRequestGET(Endpoints.CPV_LIST);\r\n } catch (error) {\r\n }\r\n};\r\n\r\n\r\nexport default {\r\n get\r\n}","import React, {useEffect, useState} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport GridBlock from 'components/GridBlock';\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport RadioList from './RadioList';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport * as Yup from 'yup'\r\n// import ValidationShema from 'constants/ValidationShema'\r\nimport {connect} from 'react-redux'\r\nimport Loading from 'components/Loading';\r\nimport useId from 'hooks/useId';\r\nimport countItems from './libs/countItems';\r\nimport CpvService from \"../../../services/CpvService\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n loading: {\r\n height: 100,\r\n }\r\n})\r\n\r\nfunction SelectForm(\r\n {\r\n classes,\r\n onSubmit,\r\n onCancel,\r\n formSubmit,\r\n initCPVValues,\r\n multiple\r\n }) {\r\n const formId = useId();\r\n const [cpvList, setCpvList] = useState(null)\r\n const countCpvList = countItems(cpvList)\r\n\r\n const handleSubmit = ({search, ...values}) => {\r\n onSubmit(values)\r\n }\r\n\r\n const handleSave = () => {\r\n formSubmit[formId]();\r\n }\r\n\r\n\r\n useEffect(() => {\r\n CpvService.get().then((resp) => setCpvList(resp));\r\n }, []);\r\n\r\n return (\r\n <>\r\n {!cpvList ?\r\n \r\n :\r\n \r\n {(formikProps) => (\r\n \r\n \r\n {Boolean(cpvList) ?\r\n \r\n :\r\n }\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nSelectForm.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(withStyles(style)(SelectForm));\r\n","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport SelectForm from './SelectForm';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction SelectCPV({\r\n\tclasses,\r\n\topen,\r\n\tonConfirm,\r\n\tonCancel,\r\n\tinitValues,\r\n\tlabel=Tr('cpv_code'),\r\n\tmultiple = true\r\n}) {\r\n\tconst createInitCPV = () => initValues.reduce((obj, value) => {\r\n\t\tconst {\r\n\t\t\tidentity,\r\n\t\t\tpublicCode,\r\n\t\t\tname,\r\n\t\t\thierarchicalId,\r\n\t\t} = value;\r\n\t\treturn {\r\n\t\t\t...obj,\r\n\t\t\t[JSON.stringify({\r\n\t\t\t\tidentity,\r\n\t\t\t\tpublicCode,\r\n\t\t\t\tname,\r\n\t\t\t\thierarchicalId,\r\n\t\t\t})]: true,\r\n\t\t}\r\n\t}, {})\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nSelectCPV.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(SelectCPV);","import React from 'react'\r\nimport {Box, Chip as ChipUI, Tooltip, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport Tr from 'translations/Translations';\r\n\r\n\r\nfunction Chip({\r\n\tlabel,\r\n\tvalue,\r\n\tonDelete,\r\n\tclassName,\r\n\tlabelClassName,\r\n\tonClick,\r\n\ttooltip,\r\n\tdisabled = false\r\n}) {\r\n\r\n\tconst getLabelBody = () => {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{label && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{label}:\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t{' '}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{value}\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\tconst getLabel = () => {\r\n\t\tif (!tooltip) {\r\n\t\t\treturn getLabelBody();\r\n\t\t}\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{getLabelBody()}\r\n\t\t\t
\r\n\t\t)\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t}\r\n\t\t\tonDelete={onDelete}\r\n\t\t\tonClick={onClick}\r\n\t\t\tdisabled={disabled}\r\n\t\t/>\r\n\t)\r\n}\r\n\r\nChip.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nChip.defaultProps = {\r\n}\r\n\r\nexport default Chip;","import getObjectValue from './getObjectValue';\r\nimport _ from 'lodash';\r\n\r\nexport default (formikProps, id, index) => {\r\n\r\n\tlet values;\r\n\tif (id === undefined) {\r\n\t\tvalues = formikProps.values\r\n\t} else {\r\n\t\tvalues = getObjectValue(id, formikProps.values)\r\n\t}\r\n\tvalues = _.cloneDeep(values);\r\n\tvalues.splice(index, 1)\r\n\tformikProps.setFieldValue(id, values)\r\n\r\n\tlet touched = getObjectValue(id, formikProps.touched)\r\n\r\n\tif (typeof touched === 'boolean') {\r\n\t\tformikProps.setFieldTouched(id, [])\r\n\t} else if (touched) {\r\n\t\tlet newTouched = [...touched]\r\n\t\tnewTouched.splice(index, 1)\r\n\t\tformikProps.setFieldTouched(id, newTouched)\r\n\t}\r\n}","import React, { useState } from 'react'\r\nimport { withStyles, FormLabel, FormHelperText } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport SelectCPV from 'components/popup/selectCpv/SelectCPV';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport Chip from './Chip';\r\nimport removeFormikListElement from 'libs/removeFormikListElement';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tmarginTop: theme.spacing()\r\n\t},\r\n\tchipLabel: {\r\n\t\tmaxWidth: 250,\r\n\t\toverflow: 'hidden',\r\n\t\ttextOverflow: 'ellipsis',\r\n\t},\r\n\tbuttonSelect: {\r\n\t\tmarginRight: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction CPVInput({\r\n\tclasses,\r\n\tformikProps,\r\n\tid,\r\n\trequired,\r\n\tdisabled,\r\n\tlabel=Tr('cpv_code'),\r\n\tskipCheckTouched\r\n}) {\r\n\r\n\tconst [openSelectCPV, setOpenSelectCPV] = useState(false)\r\n\r\n\tconst handleClick = () => {\r\n\t\tsetOpenSelectCPV(true)\r\n\t\tformikProps.setFieldTouched(id, true)\r\n\t}\r\n\r\n\tconst handleClosePoup = () => {\r\n\t\tsetOpenSelectCPV(false)\r\n\t\tformikProps.setFieldTouched(id, true)\r\n\t}\r\n\r\n\tconst handleConfirm = (values) => {\r\n\t\tconst elements = Object.keys(values).reduce((prevValue, currValue) => {\r\n\t\t\tif (!values[currValue]) return prevValue;\r\n\t\t\treturn [\r\n\t\t\t\t...prevValue,\r\n\t\t\t\tJSON.parse(currValue)\r\n\t\t\t]\r\n\t\t}, [])\r\n\t\thandleClosePoup();\r\n\t\tformikProps.setFieldValue(id, elements)\r\n\t}\r\n\r\n\tconst elements = getObjectValue(id, formikProps.values, [])\r\n\tconst errorValue = getObjectValue(id, formikProps.errors, '')\r\n\tconst touched = getObjectValue(id, formikProps.touched, !!skipCheckTouched)\r\n\tconst editable = getObjectValue('_editable', formikProps.values, true);\r\n\tconst errorLabel = touched && errorValue ? errorValue : ' '\r\n\r\n\r\n\tconst handleDelete = (index) => {\r\n\t\tremoveFormikListElement(formikProps, id, index)\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{label} {required && '*'}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{editable && !disabled && \r\n\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 previewNoticeDisabled = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ?\r\n resources.demandHeader.demandRealizationType === 'rfq_no_invitation' || resources.demandHeader.demandRealizationType === 'public_exclusion_closed'\r\n : undefined;\r\n}\r\n\r\nexport const isDemandModification = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? demandStatus.MODIFICATION === resources.demandHeader.status : undefined;\r\n}\r\nexport const isDemandOfferCollection = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? demandStatus.OFFER_COLLECTION === resources.demandHeader.status : undefined;\r\n}\r\n\r\nexport const isDemandOfferDecryption = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? demandStatus.OFFER_DECRYPTION === resources.demandHeader.status : undefined;\r\n}\r\n\r\nexport const isDemandOfferEvaluation = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? demandStatus.OFFER_EVALUATION === resources.demandHeader.status : undefined;\r\n}\r\n\r\nexport const isDemandFinishing = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? demandStatus.FINISHING === resources.demandHeader.status : undefined;\r\n}\r\n\r\nexport const isDemandFinished = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? demandStatus.FINISHED === resources.demandHeader.status : undefined;\r\n}\r\n\r\nexport const getDemandPZPType = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? (ProcedureType_PZP_2021.includes(resources.demandHeader.procedureType) ? PZPType.PZP_2021 : PZPType.PZP_OLD) : undefined;\r\n}\r\n\r\nexport const isNonpublicProcedure = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? isNonpubProc(resources.demandHeader.procedureType) : undefined;\r\n}\r\nexport const isNationalProcedure = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? isNatProc(resources.demandHeader.procedureType) : undefined;\r\n}\r\nexport const isEuropeProcedure = () => {\r\n const {resources} = reduxStore.getState();\r\n return resources.demandHeader ? isEuProc(resources.demandHeader.procedureType) : undefined;\r\n}","export default (items, search) => {\r\n if (search.trim().length === 0) return items;\r\n\r\n const s = search.toLowerCase().replace(/,/g, ' ').replace(/ +/g, ' ');\r\n let searchKeys = s.split(' ');\r\n\r\n const match = (x) => {\r\n const name = x.label.toLowerCase().replace(/,/g, ' ').replace(/ +/g, ' ');\r\n return searchKeys.every(k => k === '' || name.includes(k))\r\n }\r\n\r\n return items.filter(x => match(x));\r\n}","import React, {useCallback, useEffect, useState} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport * as Yup from 'yup'\r\nimport {connect} from 'react-redux'\r\nimport useId from 'hooks/useId';\r\nimport RadioGroup from \"../../RadioGroup\";\r\nimport Loading from \"../../Loading\";\r\nimport TextInput from \"../../TextInput\";\r\nimport _ from 'lodash';\r\nimport filterItems from \"libs/filterItems\";\r\nimport Typography from \"../../Typography\";\r\nimport getObjectValue from \"../../../libs/getObjectValue\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n height: '45vh',\r\n overflow: 'auto',\r\n paddingRight: theme.scrollSize,\r\n paddingLeft: theme.spacing(2),\r\n marginRight: -1 * theme.scrollSize,\r\n marginLeft: -1 * theme.spacing(2),\r\n marginBottom: theme.spacing(2),\r\n },\r\n buttonsWrapper: {},\r\n loading: {\r\n height: 100,\r\n }\r\n})\r\n\r\nfunction SelectOrganizationForm(\r\n {\r\n classes,\r\n onSubmit,\r\n onCancel,\r\n availableOrganizations,\r\n formSubmit,\r\n initOrganization,\r\n }) {\r\n const formId = useId();\r\n\r\n const [items, setItems] = useState();\r\n const [allItems, setAllItems] = useState();\r\n\r\n useEffect(() => {\r\n document.addEventListener(\"keydown\", escFunction, false);\r\n\r\n const all = availableOrganizations ? availableOrganizations.map((x => createItem(x))) : [];\r\n setItems(all);\r\n setAllItems(all);\r\n\r\n return () => {\r\n document.removeEventListener(\"keydown\", escFunction, false);\r\n };\r\n\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n const createItem = (organization) => ({\r\n label: organization.name,\r\n value: organization.orgId\r\n })\r\n\r\n const handleSubmit = (values) => {\r\n const {orgId} = values\r\n const org = availableOrganizations.find((x => x.orgId === orgId))\r\n onSubmit(org)\r\n }\r\n\r\n const handleSave = () => {\r\n formSubmit[formId]();\r\n }\r\n\r\n const getInitvalues = () => {\r\n let initOrgId;\r\n if (initOrganization) {\r\n initOrgId = initOrganization.orgId;\r\n } else {\r\n initOrgId = availableOrganizations.length > 0 ? availableOrganizations[0].orgId : null;\r\n }\r\n return {\r\n search: '',\r\n orgId: initOrgId\r\n }\r\n }\r\n\r\n const changeSearch = _.debounce((event) => {\r\n setItems(filterItems(allItems, event));\r\n }, 700);\r\n\r\n const escFunction = useCallback((keyEvent) => {\r\n const code = (keyEvent.charCode || keyEvent.keyCode);\r\n if (code === 13) {\r\n keyEvent.preventDefault();\r\n } else if (code === 27) {\r\n onCancel()\r\n }\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n if (!availableOrganizations || !items) return \r\n\r\n return (\r\n \r\n {(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);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from './GridBlock';\r\nimport Chip from './Chip';\r\nimport Tr from 'translations/Translations';\r\nimport downloadFile from \"../libs/downloadFile\";\r\n\r\nfunction FilesList(\r\n {\r\n elements = [],\r\n onDelete,\r\n customAction,\r\n onDownload,\r\n }) {\r\n\r\n return (\r\n {elements.map((element, i) => {\r\n const {file} = element;\r\n return (\r\n onDelete(i) : undefined}\r\n onClick={() => !!onDownload ? onDownload(element) : downloadFile(file) }\r\n key={i}\r\n tooltip={Tr('download')}\r\n disabled={element.inaccessible}\r\n />\r\n )\r\n })}\r\n {customAction}\r\n )\r\n}\r\n\r\nFilesList.propTypes = {\r\n classes: PropTypes.any,\r\n elements: PropTypes.array,\r\n onDelete: PropTypes.func,\r\n onDownload: PropTypes.func,\r\n customAction: PropTypes.any\r\n};\r\n\r\nexport default FilesList;","import Endpoints from \"../constants/Endpoints\";\r\nimport {RestRequestGET, RestRequestPOST} from \"../libs/RestRequest\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {setSaveStatusError} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst showError = (message) => {\r\n\treduxStore.dispatch(setSaveStatusError(message))\r\n}\r\n\r\nconst getFilesAdnFolders = async (demandId, folderPath) => {\r\n\tlet params = {\r\n\t\tfolderPath\r\n\t}\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.SHAREPOINT(demandId), {params});\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst downloadFileFromSharepoint = async (demandId, file) => {\r\n\ttry {\r\n\t\treturn await RestRequestPOST(Endpoints.SHAREPOINT(demandId), file);\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t}\r\n\treturn {uploadStatus: \"ERROR\"}\r\n}\r\n\r\nexport default {\r\n\tgetFilesAdnFolders,\r\n\tdownloadFileFromSharepoint\r\n};\r\n\r\n","import React from 'react'\r\nimport {Grid, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport clsx from \"clsx\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n item: {\r\n minWidth: theme.components.popup.buttons.width,\r\n marginRight: theme.spacing(1)\r\n },\r\n before: {\r\n flexGrow: 1,\r\n marginLeft: theme.spacing(1)\r\n }\r\n})\r\n\r\nfunction MultiButton(\r\n {\r\n className,\r\n classes,\r\n buttons,//created by createButton\r\n justify = 'flex-end',\r\n before,\r\n after,\r\n afterAfter,\r\n }) {\r\n return (\r\n \r\n {!!before && {before}}\r\n {!!buttons && buttons.map(\r\n ({\r\n label,\r\n onClick,\r\n variant,\r\n disabled,\r\n className,\r\n working,\r\n Icon\r\n }, i) => (\r\n \r\n {label}\r\n \r\n ))}\r\n {!!after && {after}}\r\n {!!afterAfter && {afterAfter}}\r\n \r\n )\r\n}\r\n\r\nMultiButton.propTypes = {\r\n className: PropTypes.string,\r\n classes: PropTypes.any,\r\n}\r\n\r\nMultiButton.defaultProps = {}\r\n\r\nexport const createButton = (label, onClick, variant, disabled = false, className, working = false, Icon) => ({\r\n label,\r\n onClick,\r\n variant,\r\n disabled,\r\n className,\r\n working,\r\n Icon\r\n});\r\n\r\nexport default withStyles(style)(MultiButton);","import React from 'react'\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\n//https://www.svgrepo.com/svg/306418/microsoftsharepoint\r\nfunction SharepointIcon(props) {\r\n return (\r\n \r\n \r\n );\r\n}\r\n\r\nexport default SharepointIcon;\r\n\r\n\r\n\r\n","import React, {useEffect, useMemo, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport SharepointService from \"../../../services/SharepointService\";\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport Loading from \"components/Loading\";\r\nimport Typography from \"components/Typography\";\r\nimport {Breadcrumbs, Checkbox, List, ListItem, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport FolderIcon from \"@material-ui/icons/Folder\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport SubdirectoryArrowLeftIcon from '@material-ui/icons/SubdirectoryArrowLeft';\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport NavigateNextIcon from \"@material-ui/icons/NavigateNext\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport SharepointIcon from \"components/icon/SharepointIcon\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n rotate: {\r\n transform: 'rotate(90deg)'\r\n },\r\n breadcrumbText: {\r\n marginRight: theme.spacing(2)\r\n },\r\n checkbox: {\r\n padding: \"0 11px\"\r\n },\r\n selDocuments: {\r\n marginRight: 200\r\n },\r\n dialogContent: {\r\n minHeight: 500\r\n },\r\n loading: {\r\n position: 'absolute',\r\n width: 900,\r\n height: 50\r\n },\r\n titleIcon: {\r\n position: 'absolute',\r\n left: theme.spacing(2),\r\n color: theme.palette.primary.main,\r\n }\r\n}))\r\n\r\n\r\nfunction SharepointExplorer(\r\n {\r\n demandId,\r\n onClose,\r\n handleSubmit\r\n }) {\r\n const classes = useStyle();\r\n const [filesAndFolders, setFilesAndFolders] = useState(null);\r\n const [selectedFileMap, setSelectedFilesMap] = useState(new Map());\r\n const [working, setWorking] = useState(true);\r\n\r\n useEffect(() => {\r\n SharepointService.getFilesAdnFolders(demandId).then((resp) => setFilesAndFolders(resp)).finally(() => setWorking(false));\r\n }, [demandId])\r\n\r\n\r\n const toggleSelectFile = (file) => {\r\n const newMap = new Map(selectedFileMap);\r\n if (newMap.has(file.uniqueId)) {\r\n newMap.delete(file.uniqueId);\r\n setSelectedFilesMap(new Map(newMap));\r\n } else {\r\n newMap.set(file.uniqueId, file)\r\n setSelectedFilesMap(new Map(newMap));\r\n }\r\n }\r\n\r\n const handleBreadcrumbClick = (event) => {\r\n event.preventDefault();\r\n const serverRelativeUrl = event.target.getAttribute('data-serverrelativeurl');\r\n handleClick(serverRelativeUrl);\r\n }\r\n\r\n const handleClick = (serverRelativeUrl) => {\r\n if (!working) {\r\n setWorking(true);\r\n SharepointService.getFilesAdnFolders(demandId, serverRelativeUrl).then((resp) => {\r\n if(!!resp)\r\n setFilesAndFolders(resp);\r\n }).finally(() => setWorking(false));\r\n }\r\n }\r\n\r\n const folders = useMemo(() => {\r\n\r\n return filesAndFolders ? filesAndFolders.serverRelativeUrl.split(\"/\") : null;\r\n }, [filesAndFolders]);\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined'));\r\n buttons.push(createButton(Tr('add'), () => handleSubmit(Array.from(selectedFileMap).map(([key, value]) => value)), undefined, selectedFileMap.size === 0));\r\n return buttons;\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n {Tr(\"int_explorer_dialog_title_x\", {x: \"sharepoint\"}, true)}\r\n\r\n }\r\n titleCentered\r\n maxWidth=\"md\"\r\n onClose={onClose}\r\n contentClassName={classes.dialogContent}\r\n dialogActions={\r\n <>\r\n {`${Tr('documents_selected')}: ${selectedFileMap.size}`} }\r\n />\r\n \r\n }\r\n >\r\n\r\n {working && }\r\n {!!filesAndFolders && <>\r\n \r\n {Tr('you_are_here')}:\r\n } maxItems={3}>\r\n\r\n {\r\n folders.map((elem, index, arr) => {\r\n if (index !== arr.length - 1) {\r\n return \r\n {index === 0 ? Tr('documents') : elem}\r\n \r\n } else {\r\n return {index === 0 ? Tr('documents') : elem}\r\n }\r\n })\r\n }\r\n \r\n \r\n\r\n \r\n {\r\n folders.length > 1 && handleClick(folders.slice(0, folders.length - 1).join(\"/\"))}>\r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n\r\n {\r\n filesAndFolders.folders.map(x => ( handleClick(x.serverRelativeUrl)}>\r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n {\r\n filesAndFolders.files.map(x => ( toggleSelectFile(x)}>\r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n {\r\n filesAndFolders.files.length === 0 && filesAndFolders.folders.length === 0 &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n\r\n \r\n }\r\n\r\n\r\n \r\n )\r\n}\r\n\r\nSharepointExplorer.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n handleSubmit: PropTypes.func.isRequired\r\n}\r\n\r\nexport default SharepointExplorer;","import React, {useEffect, useRef, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport {CircularProgress, List, ListItem, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport SingleButton from \"../../popup/components/SingleButton\";\r\n\r\n\r\nimport QueryBuilderIcon from '@material-ui/icons/QueryBuilder';\r\nimport SharepointService from \"../../../services/SharepointService\";\r\nimport CheckCircleOutlineIcon from '@material-ui/icons/CheckCircleOutline';\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport Typography from \"../../Typography\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n wait: {color: theme.palette.action.disabled},\r\n uploading: {\r\n color: theme.palette.primary.main,\r\n },\r\n done: {color: theme.palette.common.success},\r\n error: {color: theme.palette.common.error},\r\n\r\n}))\r\n\r\n\r\nfunction SharepointDownloadPopup(\r\n {\r\n demandId,\r\n downloadFiles,\r\n handleSubmit,\r\n onUpload\r\n }) {\r\n const classes = useStyle();\r\n const [files, setFiles] = useState([]);\r\n const [working, setWorking] = useState(true);\r\n const uploadedFiles = useRef([]);\r\n const errorTranslate = Tr('file_response')\r\n\r\n useEffect(() => {\r\n setFiles(downloadFiles.files.map(x => ({...x})));\r\n (async () => {\r\n for (let i = 0; i < downloadFiles.files.length; i++) {\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = {uploadStatus: \"UPLOADING\"};\r\n return next;\r\n })\r\n\r\n try {\r\n const resp = await SharepointService.downloadFileFromSharepoint(demandId, downloadFiles.files[i]);\r\n\r\n if (resp.uploadStatus === 'OK') {\r\n uploadSuccess({...resp, originalIndex: i});\r\n }\r\n\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = resp;\r\n return next;\r\n })\r\n } catch (e) {\r\n console.error(e)\r\n if (files && files[i])\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = {uploadStatus: \"ERROR\"};\r\n return next;\r\n })\r\n }\r\n }\r\n setWorking(false);\r\n })()\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const uploadSuccess = (fileData) => {\r\n uploadedFiles.current.push(fileData);\r\n if (onUpload)\r\n onUpload(fileData);\r\n };\r\n\r\n\r\n const getIcon = (file) => {\r\n if (!file.file) {\r\n return \r\n } else if (file.file.uploadStatus === \"UPLOADING\") {\r\n return \r\n } else if (file.file.uploadStatus === \"OK\") {\r\n return \r\n } else {\r\n return \r\n }\r\n }\r\n\r\n const getSecondaryText = (file) => {\r\n if (file.file && file.file.uploadStatus !== \"UPLOADING\" && file.file.uploadStatus !== \"OK\") {\r\n return {errorTranslate[file.file.uploadStatus]}\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n handleSubmit({\r\n files: uploadedFiles.current,\r\n config: downloadFiles.config\r\n })\r\n }\r\n\r\n return (\r\n \r\n }\r\n >\r\n\r\n \r\n {files.map(x => (\r\n \r\n {getIcon(x)}\r\n \r\n \r\n ))\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nSharepointDownloadPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n downloadFiles: PropTypes.shape({\r\n files: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n serverRelativeUrl: PropTypes.string.isRequired,\r\n length: PropTypes.number.isRequired,\r\n uniqueId: PropTypes.string.isRequired\r\n })).isRequired,\r\n config: PropTypes.any\r\n }),\r\n handleSubmit: PropTypes.func.isRequired\r\n}\r\n\r\nexport default SharepointDownloadPopup;","import Endpoints from \"../constants/Endpoints\";\r\nimport {RestRequestGET, RestRequestPOST} from \"../libs/RestRequest\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {setSaveStatusError} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst showError = (message) => {\r\n\treduxStore.dispatch(setSaveStatusError(message))\r\n}\r\n\r\nconst getFilesAdnFolders = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.EZDRP(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n\tthrow new Error();\r\n}\r\n\r\nconst downloadFileFromEzdrp = async (demandId, file) => {\r\n\ttry {\r\n\t\treturn await RestRequestPOST(Endpoints.EZDRP(demandId), file);\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t}\r\n\treturn {uploadStatus: \"ERROR\"}\r\n}\r\n\r\nexport default {\r\n\tgetFilesAdnFolders,\r\n\tdownloadFileFromEzdrp\r\n};\r\n\r\n","import React from 'react'\r\nimport {Checkbox, Collapse, List, ListItem, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport FolderIcon from \"@material-ui/icons/Folder\";\r\nimport DescriptionIcon from '@material-ui/icons/Description';\r\nimport UnfoldLessIcon from '@material-ui/icons/UnfoldLess';\r\nimport UnfoldMoreIcon from '@material-ui/icons/UnfoldMore';\r\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n checkbox: {\r\n padding: \"0 11px\"\r\n },\r\n attachmentIcon: {\r\n position: \"absolute\",\r\n fontSize: \"1.3rem\"\r\n },\r\n attachmentsCount: {\r\n marginLeft: theme.spacing(2),\r\n fontWeight: \"bold\"\r\n },\r\n list: {\r\n marginLeft: theme.spacing(3)\r\n },\r\n line: {\r\n borderBottom: \"solid 1px \" + theme.palette.border.dark\r\n },\r\n italic: {\r\n fontStyle: 'italic'\r\n }\r\n}))\r\n\r\nconst FileTypes = {\r\n FILE: \"FILE\",\r\n PAPER: \"PAPER\",\r\n FOLDER: \"FOLDER\",\r\n EMPTY: \"EMPTY\"\r\n}\r\n\r\nfunction EzdrpList(\r\n {\r\n documents,\r\n toggleSelectFile,\r\n toggleExpandFile,\r\n selectedFileMap,\r\n expandedFileMap,\r\n level = 0\r\n }) {\r\n const classes = useStyle();\r\n const toggleCheckbox = (e, file) => {\r\n e.stopPropagation();\r\n if (file.type === FileTypes.FILE)\r\n toggleSelectFile(file);\r\n }\r\n\r\n if (documents.length === 0) {\r\n documents = [{id: \"id\", name: {Tr('no_files_in_directory')}, type: FileTypes.EMPTY, attachments: []}]\r\n }\r\n\r\n return (\r\n \r\n {\r\n documents.map(x => {\r\n const hasExpand = x.type === FileTypes.PAPER || x.type === FileTypes.FOLDER || x.attachments.length > 0;\r\n const expanded = expandedFileMap.has(x.id);\r\n\r\n return (
\r\n toggleExpandFile(x) : (e) => toggleCheckbox(e, x)}>\r\n \r\n {x.type === FileTypes.FILE && toggleCheckbox(e, x)}\r\n />}\r\n {x.type === FileTypes.FOLDER && }\r\n {x.type === FileTypes.PAPER && }\r\n \r\n \r\n {x.name}\r\n {hasExpand && <>\r\n \r\n {'[' + x.attachments.length + ']'}\r\n }\r\n \r\n }\r\n />\r\n {hasExpand ? expanded ? : : null}\r\n \r\n \r\n \r\n \r\n {level === 0 &&
}\r\n
)\r\n })}\r\n )\r\n}\r\n\r\nEzdrpList.propTypes = {\r\n documents: PropTypes.array.isRequired\r\n}\r\n\r\nexport default EzdrpList;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport Loading from \"components/Loading\";\r\nimport Typography from \"components/Typography\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport EzdrpService from \"services/EzdrpService\";\r\nimport EzdrpList from \"./EzdrpList\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n rotate: {\r\n transform: 'rotate(90deg)'\r\n },\r\n breadcrumbText: {\r\n marginRight: theme.spacing(2)\r\n },\r\n checkbox: {\r\n padding: \"0 11px\"\r\n },\r\n selDocuments: {\r\n marginRight: 200\r\n },\r\n dialogContent: {\r\n minHeight: 500\r\n },\r\n loading: {\r\n position: 'absolute',\r\n width: 900,\r\n height: 50\r\n },\r\n titleIcon: {\r\n position: 'absolute',\r\n left: theme.spacing(2),\r\n color: theme.palette.primary.main,\r\n }\r\n}))\r\n\r\n\r\nfunction EzdrpExplorer(\r\n {\r\n demandId,\r\n onClose,\r\n handleSubmit\r\n }) {\r\n const classes = useStyle();\r\n const [filesAndFolders, setFilesAndFolders] = useState(null);\r\n const [selectedFileMap, setSelectedFilesMap] = useState(new Map());\r\n const [expandedFileMap, setExpandedFilesMap] = useState(new Map());\r\n const [working, setWorking] = useState(true);\r\n\r\n useEffect(() => {\r\n EzdrpService.getFilesAdnFolders(demandId).then((resp) => setFilesAndFolders(resp)).then(() => setWorking(false)).catch(onClose);\r\n // eslint-disable-next-line\r\n }, [demandId])\r\n\r\n\r\n const toggleSelectFile = (file) => {\r\n const newMap = new Map(selectedFileMap);\r\n if (newMap.has(file.id)) {\r\n newMap.delete(file.id);\r\n setSelectedFilesMap(newMap);\r\n } else {\r\n const {attachments, ...others} = file;\r\n newMap.set(file.id, others)\r\n setSelectedFilesMap(newMap);\r\n }\r\n }\r\n const toggleExpandFile = (file) => {\r\n const newMap = new Map(expandedFileMap);\r\n if (newMap.has(file.id)) {\r\n newMap.delete(file.id);\r\n setExpandedFilesMap(newMap);\r\n } else {\r\n newMap.set(file.id, file.id)\r\n setExpandedFilesMap(newMap);\r\n }\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined'));\r\n buttons.push(createButton(Tr('add'), () => handleSubmit(Array.from(selectedFileMap).map(([key, value]) => value)), undefined, selectedFileMap.size === 0));\r\n return buttons;\r\n }\r\n\r\n return (\r\n \r\n {Tr(\"int_explorer_dialog_title_x\", {x: \"ezdrp\"}, true)}\r\n }\r\n titleCentered\r\n maxWidth=\"md\"\r\n onClose={onClose}\r\n contentClassName={classes.dialogContent}\r\n dialogActions={\r\n <>\r\n {`${Tr('documents_selected')}: ${selectedFileMap.size}`} }\r\n />\r\n \r\n }\r\n >\r\n\r\n {working && }\r\n {!!filesAndFolders && <>\r\n \r\n }\r\n\r\n\r\n \r\n )\r\n}\r\n\r\nEzdrpExplorer.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n handleSubmit: PropTypes.func.isRequired\r\n}\r\n\r\nexport default EzdrpExplorer;","import React, {useEffect, useRef, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport {CircularProgress, List, ListItem, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport SingleButton from \"../../popup/components/SingleButton\";\r\n\r\n\r\nimport QueryBuilderIcon from '@material-ui/icons/QueryBuilder';\r\nimport CheckCircleOutlineIcon from '@material-ui/icons/CheckCircleOutline';\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport Typography from \"../../Typography\";\r\nimport EzdrpService from \"../../../services/EzdrpService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n wait: {color: theme.palette.action.disabled},\r\n uploading: {\r\n color: theme.palette.primary.main,\r\n },\r\n done: {color: theme.palette.common.success},\r\n error: {color: theme.palette.common.error},\r\n\r\n}))\r\n\r\n\r\nfunction EzdrpDownloadPopup(\r\n {\r\n demandId,\r\n downloadFiles,\r\n handleSubmit,\r\n onUpload\r\n }) {\r\n const classes = useStyle();\r\n const [files, setFiles] = useState([]);\r\n const [working, setWorking] = useState(true);\r\n const uploadedFiles = useRef([]);\r\n const errorTranslate = Tr('file_response')\r\n\r\n useEffect(() => {\r\n setFiles(downloadFiles.files.map(x => ({...x})));\r\n (async () => {\r\n for (let i = 0; i < downloadFiles.files.length; i++) {\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = {uploadStatus: \"UPLOADING\"};\r\n return next;\r\n })\r\n\r\n try {\r\n const resp = await EzdrpService.downloadFileFromEzdrp(demandId, downloadFiles.files[i]);\r\n\r\n if (resp.uploadStatus === 'OK') {\r\n uploadSuccess({...resp, originalIndex: i});\r\n }\r\n\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = resp;\r\n return next;\r\n })\r\n } catch (e) {\r\n console.error(e)\r\n if (files && files[i])\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = {uploadStatus: \"ERROR\"};\r\n return next;\r\n })\r\n }\r\n }\r\n setWorking(false);\r\n })()\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const uploadSuccess = (fileData) => {\r\n uploadedFiles.current.push(fileData);\r\n if (onUpload)\r\n onUpload(fileData);\r\n };\r\n\r\n\r\n const getIcon = (file) => {\r\n if (!file.file) {\r\n return \r\n } else if (file.file.uploadStatus === \"UPLOADING\") {\r\n return \r\n } else if (file.file.uploadStatus === \"OK\") {\r\n return \r\n } else {\r\n return \r\n }\r\n }\r\n\r\n const getSecondaryText = (file) => {\r\n if (file.file && file.file.uploadStatus !== \"UPLOADING\" && file.file.uploadStatus !== \"OK\") {\r\n return {errorTranslate[file.file.uploadStatus]}\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n handleSubmit({\r\n files: uploadedFiles.current,\r\n config: downloadFiles.config\r\n })\r\n }\r\n\r\n return (\r\n \r\n }\r\n >\r\n\r\n \r\n {files.map(x => (\r\n \r\n {getIcon(x)}\r\n \r\n \r\n ))\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nEzdrpDownloadPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n downloadFiles: PropTypes.shape({\r\n files: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n serverRelativeUrl: PropTypes.string.isRequired,\r\n length: PropTypes.number.isRequired,\r\n uniqueId: PropTypes.string.isRequired\r\n })).isRequired,\r\n config: PropTypes.any\r\n }),\r\n handleSubmit: PropTypes.func.isRequired\r\n}\r\n\r\nexport default EzdrpDownloadPopup;","import Endpoints from \"../constants/Endpoints\";\r\nimport {RestRequestGET, RestRequestPOST} from \"../libs/RestRequest\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {setSaveStatusError} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst showError = (message) => {\r\n reduxStore.dispatch(setSaveStatusError(message))\r\n}\r\n\r\nconst getCases = async (demandId) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.EZDPUW(demandId));\r\n if (isResponseValid(resp, showError)) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n throw new Error();\r\n}\r\nconst getDocuments = async (demandId, caseId) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.EZDPUW_DOCUMENTS(demandId, caseId));\r\n if (isResponseValid(resp, showError)) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n throw new Error();\r\n}\r\n\r\nconst downloadFileFromEzdpuw = async (demandId, file) => {\r\n try {\r\n return await RestRequestPOST(Endpoints.EZDPUW(demandId), file);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n return {uploadStatus: \"ERROR\"}\r\n}\r\n\r\nexport default {\r\n getCases,\r\n getDocuments,\r\n downloadFileFromEzdpuw\r\n};\r\n\r\n","import React, {useEffect, useRef, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport {CircularProgress, List, ListItem, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport SingleButton from \"../../popup/components/SingleButton\";\r\n\r\n\r\nimport QueryBuilderIcon from '@material-ui/icons/QueryBuilder';\r\nimport CheckCircleOutlineIcon from '@material-ui/icons/CheckCircleOutline';\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport Typography from \"../../Typography\";\r\nimport EzdpuwService from \"services/EzdpuwService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n wait: {color: theme.palette.action.disabled},\r\n uploading: {\r\n color: theme.palette.primary.main,\r\n },\r\n done: {color: theme.palette.common.success},\r\n error: {color: theme.palette.common.error},\r\n}))\r\n\r\n\r\nfunction EzdpuwDownloadPopup(\r\n {\r\n demandId,\r\n downloadFiles,\r\n handleSubmit,\r\n onUpload\r\n }) {\r\n const classes = useStyle();\r\n const [files, setFiles] = useState([]);\r\n const [working, setWorking] = useState(true);\r\n const uploadedFiles = useRef([]);\r\n const errorTranslate = Tr('file_response')\r\n\r\n useEffect(() => {\r\n setFiles(downloadFiles.files.map(x => ({...x})));\r\n (async () => {\r\n for (let i = 0; i < downloadFiles.files.length; i++) {\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = {uploadStatus: \"UPLOADING\"};\r\n return next;\r\n })\r\n\r\n try {\r\n const resp = await EzdpuwService.downloadFileFromEzdpuw(demandId, downloadFiles.files[i]);\r\n\r\n if (resp.uploadStatus === 'OK') {\r\n uploadSuccess({...resp, originalIndex: i});\r\n }\r\n\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = resp;\r\n return next;\r\n })\r\n } catch (e) {\r\n console.error(e)\r\n if (files && files[i])\r\n setFiles(prev => {\r\n const next = [...prev];\r\n next[i].file = {uploadStatus: \"ERROR\"};\r\n return next;\r\n })\r\n }\r\n }\r\n setWorking(false);\r\n })()\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const uploadSuccess = (fileData) => {\r\n uploadedFiles.current.push(fileData);\r\n if (onUpload)\r\n onUpload(fileData);\r\n };\r\n\r\n\r\n const getIcon = (file) => {\r\n if (!file.file) {\r\n return \r\n } else if (file.file.uploadStatus === \"UPLOADING\") {\r\n return \r\n } else if (file.file.uploadStatus === \"OK\") {\r\n return \r\n } else {\r\n return \r\n }\r\n }\r\n\r\n const getSecondaryText = (file) => {\r\n if (file.file && file.file.uploadStatus !== \"UPLOADING\" && file.file.uploadStatus !== \"OK\") {\r\n return {errorTranslate[file.file.uploadStatus]}\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n handleSubmit({\r\n files: uploadedFiles.current,\r\n config: downloadFiles.config\r\n })\r\n }\r\n\r\n return (\r\n \r\n }\r\n >\r\n \r\n {files.map(x => (\r\n \r\n {getIcon(x)}\r\n \r\n \r\n ))\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nEzdpuwDownloadPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n downloadFiles: PropTypes.shape({\r\n files: PropTypes.arrayOf(PropTypes.shape({\r\n id: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n })).isRequired,\r\n config: PropTypes.any\r\n }),\r\n handleSubmit: PropTypes.func.isRequired\r\n}\r\n\r\nexport default EzdpuwDownloadPopup;","import React from 'react'\r\nimport FolderIcon from \"@material-ui/icons/Folder\";\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconFolderButton(\r\n {\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconFolderButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconFolderButton;","import React from 'react'\r\nimport {Checkbox, Collapse, List, ListItem, ListItemIcon, ListItemText} from \"@material-ui/core\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport UnfoldLessIcon from '@material-ui/icons/UnfoldLess';\r\nimport UnfoldMoreIcon from '@material-ui/icons/UnfoldMore';\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconFolderButton from \"components/button/WorkableIconFolderButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n checkbox: {\r\n padding: \"0 11px\"\r\n },\r\n attachmentIcon: {\r\n position: \"absolute\",\r\n fontSize: \"1.3rem\"\r\n },\r\n attachmentsCount: {\r\n marginLeft: theme.spacing(2),\r\n fontWeight: \"bold\"\r\n },\r\n list: {\r\n marginLeft: theme.spacing(3)\r\n },\r\n line: {\r\n borderBottom: \"solid 1px \" + theme.palette.border.dark\r\n },\r\n italic: {\r\n fontStyle: 'italic'\r\n }\r\n}))\r\n\r\nconst FileTypes = {\r\n CASE: \"CASE\",\r\n FILE: \"FILE\"\r\n}\r\n\r\nfunction EzdpuwList(\r\n {\r\n documents,\r\n toggleSelectFile,\r\n toggleExpandCase,\r\n selectedFileMap,\r\n level = 0,\r\n workingCase\r\n }) {\r\n const classes = useStyle();\r\n const toggleCheckbox = (e, file) => {\r\n e.stopPropagation();\r\n if (file.type === FileTypes.FILE)\r\n toggleSelectFile(file);\r\n }\r\n\r\n if (documents && documents.length === 0) {\r\n documents = [{id: \"id\", name: {Tr(level === 0 ? \"no_cases_associated\" : \"no_files_in_directory\")}, type: FileTypes.EMPTY, attachments: null}]\r\n }\r\n\r\n return (\r\n \r\n {\r\n documents.map(x => {\r\n const hasExpand = x.type === FileTypes.CASE;\r\n const expanded = x.attachments !== null\r\n\r\n return (
\r\n toggleExpandCase(x) : (e) => toggleCheckbox(e, x)}>\r\n \r\n {x.type === FileTypes.FILE && toggleCheckbox(e, x)}\r\n />}\r\n {x.type === FileTypes.CASE && }\r\n \r\n \r\n {hasExpand ? expanded ? : : null}\r\n \r\n \r\n {expanded &&\r\n }\r\n \r\n {level === 0 &&
}\r\n
)\r\n })}\r\n )\r\n}\r\n\r\nEzdpuwList.propTypes = {\r\n documents: PropTypes.array\r\n}\r\n\r\nexport default EzdpuwList;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport Loading from \"components/Loading\";\r\nimport Typography from \"components/Typography\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport EzdpuwList from \"./EzdpuwList\";\r\nimport EzdpuwService from \"services/EzdpuwService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n rotate: {\r\n transform: 'rotate(90deg)'\r\n },\r\n breadcrumbText: {\r\n marginRight: theme.spacing(2)\r\n },\r\n checkbox: {\r\n padding: \"0 11px\"\r\n },\r\n selDocuments: {\r\n marginRight: 200\r\n },\r\n dialogContent: {\r\n minHeight: 500\r\n },\r\n loading: {\r\n position: 'absolute',\r\n width: 900,\r\n height: 50\r\n },\r\n titleIcon: {\r\n position: 'absolute',\r\n left: theme.spacing(2),\r\n color: theme.palette.primary.main,\r\n }\r\n}))\r\n\r\n\r\nfunction EzdpuwExplorer(\r\n {\r\n demandId,\r\n onClose,\r\n handleSubmit\r\n }) {\r\n const classes = useStyle();\r\n const [filesAndFolders, setFilesAndFolders] = useState(null);\r\n const [selectedFileMap, setSelectedFilesMap] = useState(new Map());\r\n const [working, setWorking] = useState(true);\r\n const [workingCase, setWorkingCase] = useState(null);\r\n\r\n useEffect(() => {\r\n EzdpuwService.getCases(demandId).then((resp) => {\r\n setFilesAndFolders(resp);\r\n }).then(() => setWorking(false)).catch(onClose);\r\n // eslint-disable-next-line\r\n }, [demandId])\r\n\r\n\r\n const toggleSelectFile = (file) => {\r\n const newMap = new Map(selectedFileMap);\r\n if (newMap.has(file.id)) {\r\n newMap.delete(file.id);\r\n setSelectedFilesMap(newMap);\r\n } else {\r\n const {attachments, ...others} = file;\r\n newMap.set(file.id, others)\r\n setSelectedFilesMap(newMap);\r\n }\r\n }\r\n const toggleExpandCase = (file) => {\r\n if (working || workingCase)\r\n return;\r\n\r\n if ((file.attachments !== null)) {\r\n setFilesAndFolders(filesAndFolders.map(x => x.id === file.id ? {...x, attachments: null} : x))\r\n } else {\r\n setWorkingCase(file.id);\r\n EzdpuwService.getDocuments(demandId, file.id).then((resp) => {\r\n setFilesAndFolders(filesAndFolders.map(x => x.id === file.id ? {...x, attachments: resp} : x));\r\n }).finally(() => {\r\n setWorkingCase(null);\r\n })\r\n }\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working || !!workingCase));\r\n buttons.push(createButton(Tr('add'), () => handleSubmit(Array.from(selectedFileMap).map(([key, value]) => value)), undefined, working || !!workingCase || selectedFileMap.size === 0));\r\n return buttons;\r\n }\r\n\r\n return (\r\n \r\n {Tr(\"int_explorer_dialog_title_x\", {x: \"ezdpuw\"}, true)}\r\n }\r\n titleCentered\r\n maxWidth=\"md\"\r\n onClose={onClose}\r\n contentClassName={classes.dialogContent}\r\n dialogActions={\r\n <>\r\n {`${Tr('documents_selected')}: ${selectedFileMap.size}`} }\r\n />\r\n \r\n }\r\n >\r\n\r\n {working && }\r\n {!!filesAndFolders && <>\r\n \r\n }\r\n\r\n\r\n \r\n )\r\n}\r\n\r\nEzdpuwExplorer.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n handleSubmit: PropTypes.func.isRequired\r\n}\r\n\r\nexport default EzdpuwExplorer;","import React, {useEffect, useRef, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dropzone from 'components/Dropzone'\r\nimport UploadService from 'services/UploadService';\r\nimport UploadFilePopup from './popup/uploadFile/UploadFilePopup';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport removeFormikListElement from 'libs/removeFormikListElement';\r\nimport TitledComponent from './TitledComponent';\r\nimport {makeStyles} from '@material-ui/core';\r\nimport FilesList from \"./FilesList\";\r\nimport {connect} from 'react-redux';\r\nimport PrivilegeService from \"../services/PrivilegeService\";\r\nimport GridBlock from \"./GridBlock\";\r\nimport SharepointExplorer from \"./complex/sharepointExplorer/SharepointExplorer\";\r\nimport Tr from \"../translations/Translations\";\r\nimport SharepointIcon from \"./icon/SharepointIcon\";\r\nimport Button from \"./Button\";\r\nimport SharepointDownloadPopup from \"./complex/sharepointExplorer/SharepointDownloadPopup\";\r\nimport {useParams} from \"react-router\";\r\nimport EzdrpExplorer from \"./complex/ezdrpExplorer/EzdrpExplorer\";\r\nimport EzdrpDownloadPopup from \"./complex/ezdrpExplorer/EzdrpDownloadPopup\";\r\nimport EzdpuwDownloadPopup from \"./complex/ezdpuwExplorer/EzdpuwDownloadPopup\";\r\nimport EzdpuwExplorer from \"./complex/ezdpuwExplorer/EzdpuwExplorer\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n dropzone: {\r\n marginTop: theme.spacing(1)\r\n },\r\n dropzoneParent: {\r\n '&>*:first-child': {\r\n flexGrow: 1,\r\n },\r\n '&>*:nth-child(2)': {\r\n marginLeft: theme.spacing(2),\r\n marginTop: theme.spacing()\r\n }\r\n },\r\n integrationButton: {\r\n width: \"100%\",\r\n marginBottom: theme.spacing()\r\n }\r\n}));\r\n\r\nconst SupportedTypes = {\r\n BROWSER: \"BROWSER\",\r\n SHAREPOINT: \"SHAREPOINT\",\r\n EZDRP: \"EZDRP\",\r\n EZDPUW: \"EZDPUW\",\r\n}\r\n\r\nfunction UploadFile(\r\n {\r\n //common\r\n label,\r\n onUpload,\r\n onUploadPopupClosed,\r\n acceptExtensionList,\r\n disabled,\r\n working,\r\n\r\n //formikProps\r\n multiple = true,\r\n id,\r\n formikProps,\r\n onDelete,\r\n onDownload,\r\n onOpenConfigureFiles,\r\n configuredFiles,\r\n defaultValidExtensionList,\r\n demandHeader,\r\n demandPrivileges = {},\r\n encryptRoundId\r\n }) {\r\n const params = useParams();\r\n const demandId = params.id;\r\n\r\n const classes = useStyle();\r\n const editable = formikProps ? getObjectValue('_editable', formikProps.values, true) : true;\r\n\r\n const currentProcess = useRef(null);\r\n\r\n const [browserDownloadFiles, setBrowserDownloadFiles] = useState(null);\r\n\r\n const [sharepointExplorerOpen, setSharepointExplorerOpen] = useState(false);\r\n const [sharepointDownloadFiles, setSharepointDownloadFiles] = useState(null);\r\n\r\n const [ezdrpExplorerOpen, setEzdrpExplorerOpen] = useState(false);\r\n const [ezdDownloadFiles, setEzdDownloadFiles] = useState(null);\r\n\r\n const [ezdpuwExplorerOpen, setEzdpuwExplorerOpen] = useState(false);\r\n const [ezdpuwDownloadFiles, setEzdpuwDownloadFiles] = useState(null);\r\n\r\n useEffect(() => {\r\n if (configuredFiles) {\r\n if (currentProcess.current === SupportedTypes.BROWSER)\r\n setBrowserDownloadFiles(configuredFiles)\r\n else if (currentProcess.current === SupportedTypes.SHAREPOINT)\r\n setSharepointDownloadFiles(configuredFiles)\r\n else if (currentProcess.current === SupportedTypes.EZDRP)\r\n setEzdDownloadFiles(configuredFiles)\r\n else if (currentProcess.current === SupportedTypes.EZDPUW)\r\n setEzdpuwDownloadFiles(configuredFiles)\r\n currentProcess.current = null;\r\n\r\n }\r\n }, [configuredFiles])\r\n\r\n\r\n const handleBrowserUpload = ({files, config}) => {\r\n setBrowserDownloadFiles(null);\r\n handleDownloadedFiles(files, config);\r\n };\r\n\r\n const handleSubmitSharepointDownloadFiles = ({files, config}) => {\r\n setSharepointDownloadFiles(null)\r\n handleDownloadedFiles(files, config);\r\n }\r\n\r\n const handleSubmitEzdrpDownloadFiles = ({files, config}) => {\r\n setEzdDownloadFiles(null)\r\n handleDownloadedFiles(files, config);\r\n }\r\n\r\n const handleSubmitEzdpuwDownloadFiles = ({files, config}) => {\r\n setEzdpuwDownloadFiles(null)\r\n handleDownloadedFiles(files, config);\r\n }\r\n\r\n const handleDownloadedFiles = (files, config) => {\r\n if (formikProps) {\r\n const formikFiles = getObjectValue(id, formikProps.values, []);\r\n files.forEach((fileData, i) => {\r\n const fileId = `${id}.${formikFiles.length + i}.file`;\r\n formikProps.setFieldValue(fileId, fileData)\r\n })\r\n }\r\n if (onUploadPopupClosed)\r\n onUploadPopupClosed(files, config);\r\n }\r\n\r\n\r\n const handleBrowserFileSelect = (selectedFiles) => {\r\n if (onOpenConfigureFiles) {\r\n currentProcess.current = SupportedTypes.BROWSER;\r\n onOpenConfigureFiles(selectedFiles);\r\n } else {\r\n setBrowserDownloadFiles({files: selectedFiles, config: null});\r\n }\r\n }\r\n\r\n const handleSharepointExplorerSubmit = (selectedFiles) => {\r\n setSharepointExplorerOpen(false);\r\n if (onOpenConfigureFiles) {\r\n currentProcess.current = SupportedTypes.SHAREPOINT;\r\n onOpenConfigureFiles(selectedFiles)\r\n } else {\r\n setSharepointDownloadFiles({files: selectedFiles, config: null})\r\n }\r\n }\r\n const handleEzdrpExplorerSubmit = (selectedFiles) => {\r\n setEzdrpExplorerOpen(false);\r\n if (onOpenConfigureFiles) {\r\n currentProcess.current = SupportedTypes.EZDRP;\r\n onOpenConfigureFiles(selectedFiles)\r\n } else {\r\n setEzdDownloadFiles({files: selectedFiles, config: null})\r\n }\r\n }\r\n const handleEzdpuwExplorerSubmit = (selectedFiles) => {\r\n setEzdpuwExplorerOpen(false);\r\n if (onOpenConfigureFiles) {\r\n currentProcess.current = SupportedTypes.EZDPUW;\r\n onOpenConfigureFiles(selectedFiles)\r\n } else {\r\n setEzdpuwDownloadFiles({files: selectedFiles, config: null})\r\n }\r\n }\r\n\r\n\r\n const deleteFile = (index) => {\r\n if (onDelete)\r\n onDelete(index);\r\n\r\n if (formikProps)\r\n removeFormikListElement(formikProps, id, index);\r\n };\r\n\r\n const fileElements = formikProps ? getObjectValue(id, formikProps.values, []) : [];\r\n\r\n const getIntegrationButtons = () => {\r\n if (demandPrivileges?.INTEGRATIONS_DOWNLOAD && !!demandId) {\r\n const sharepoint = demandHeader?.applicationClientSettings?.sharepointIntegration || {};\r\n const ezdrp = demandHeader?.applicationClientSettings?.ezdrpIntegration || {};\r\n const ezdpuw = demandHeader?.applicationClientSettings?.ezdpuwIntegration || {};\r\n\r\n if (sharepoint.active || ezdrp.active || ezdpuw.active) {\r\n return (\r\n {\r\n !!sharepoint.active && setSharepointExplorerOpen(true)}\r\n disabled={disabled || working || !sharepoint.connected}\r\n tooltip={!sharepoint.connected ? Tr(\"int_demand_not_connected_x\", {x: \"sharepoint\"}, true) : undefined}\r\n >{Tr(\"int_download_from_x\", {x: \"sharepoint\"}, true)}\r\n }\r\n {\r\n !!ezdrp.active && setEzdrpExplorerOpen(true)}\r\n disabled={disabled || working || !ezdrp.connected}\r\n tooltip={!ezdrp.connected ? Tr(\"int_demand_not_connected_x\", {x: \"ezdrp\"}, true) : undefined}\r\n >{Tr(\"int_download_from_x\", {x: \"ezdrp\"}, true)}\r\n }\r\n {\r\n !!ezdpuw.active && setEzdpuwExplorerOpen(true)}\r\n disabled={disabled || working || !ezdpuw.connected}\r\n tooltip={!ezdpuw.connected ? Tr(\"int_demand_not_connected_x\", {x: \"ezdpuw\"}, true) : undefined}\r\n >{Tr(\"int_download_from_x\", {x: \"ezdpuw\"}, true)}\r\n }\r\n )\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n return (\r\n \r\n {!!formikProps && }\r\n {editable && <>\r\n \r\n \r\n {\r\n getIntegrationButtons()\r\n }\r\n\r\n \r\n\r\n {browserDownloadFiles && }\r\n\r\n\r\n {sharepointExplorerOpen && setSharepointExplorerOpen(false)}\r\n handleSubmit={handleSharepointExplorerSubmit}\r\n demandId={demandId}\r\n />}\r\n\r\n {ezdrpExplorerOpen && setEzdrpExplorerOpen(false)}\r\n handleSubmit={handleEzdrpExplorerSubmit}\r\n demandId={demandId}\r\n />}\r\n\r\n {ezdpuwExplorerOpen && setEzdpuwExplorerOpen(false)}\r\n handleSubmit={handleEzdpuwExplorerSubmit}\r\n demandId={demandId}\r\n />}\r\n\r\n {!!sharepointDownloadFiles &&\r\n \r\n }\r\n\r\n {!!ezdDownloadFiles &&\r\n \r\n }\r\n\r\n {!!ezdpuwDownloadFiles &&\r\n \r\n }\r\n\r\n }\r\n \r\n )\r\n}\r\n\r\nUploadFile.propTypes = {\r\n onDelete: PropTypes.func,\r\n onDownload: PropTypes.func,\r\n\r\n configuredFiles: PropTypes.shape({\r\n files: PropTypes.array.isRequired,\r\n config: PropTypes.any.isRequired\r\n }),\r\n working: PropTypes.bool\r\n\r\n};\r\n\r\nexport default connect((state) => ({\r\n defaultValidExtensionList: state.resources[UploadService.VALID_EXTENSIONS_LIST_RESOURCE_ID],\r\n demandHeader: state.resources.demandHeader,\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY]\r\n}))(UploadFile);","import Tr from 'translations/Translations';\r\nimport {createSelectItem} from \"../components/Select\";\r\n\r\nexport const PriceType = {\r\n NET: 'NET',\r\n NET_VAT: 'NET_VAT',\r\n NET_GROSS: 'NET_GROSS',\r\n GROSS_VAT: 'GROSS_VAT',\r\n GROSS: 'GROSS',\r\n}\r\nconst _TR_PREFIX = 'price_type_';\r\n\r\nexport const PriceTypeLabel = (priceType) => (Tr(_TR_PREFIX + priceType.toLowerCase()));\r\n\r\nexport const PriceTypeItems = [\r\n createSelectItem(PriceType.NET, PriceTypeLabel(PriceType.NET)),\r\n createSelectItem(PriceType.NET_VAT, PriceTypeLabel(PriceType.NET_VAT)),\r\n createSelectItem(PriceType.NET_GROSS, PriceTypeLabel(PriceType.NET_GROSS)),\r\n createSelectItem(PriceType.GROSS_VAT, PriceTypeLabel(PriceType.GROSS_VAT)),\r\n createSelectItem(PriceType.GROSS, PriceTypeLabel(PriceType.GROSS))\r\n]\r\n\r\nconst UseNetOverGrossForAuctionPopup = {\r\n NET: true,\r\n GROSS: false\r\n}\r\n\r\nexport const PriceTypeItemsForAuction = [\r\n createSelectItem(UseNetOverGrossForAuctionPopup.GROSS, PriceTypeLabel(PriceType.GROSS)),\r\n createSelectItem(UseNetOverGrossForAuctionPopup.NET, PriceTypeLabel(PriceType.NET))\r\n]\r\n\r\n\r\nconst NET_FIELD_VISIBLE = [PriceType.NET, PriceType.NET_VAT, PriceType.NET_GROSS];\r\nconst GROSS_FIELD_VISIBLE = [PriceType.GROSS, PriceType.GROSS_VAT, PriceType.NET_GROSS];\r\nconst VAT_FIELD_VISIBLE = [PriceType.NET_VAT, PriceType.GROSS_VAT, PriceType.NET_GROSS];\r\n\r\nexport const PriceTypeNetFieldVisible = (priceType) => NET_FIELD_VISIBLE.includes(priceType);\r\nexport const PriceTypeGrossFieldVisible = (priceType) => GROSS_FIELD_VISIBLE.includes(priceType);\r\nexport const PriceTypeVatFieldVisible = (priceType) => VAT_FIELD_VISIBLE.includes(priceType);\r\n\r\n\r\nconst NET_SUM_PRICE_TYPES = [PriceType.NET, PriceType.NET_VAT]\r\nexport const NetSumPriceVisible = (priceType) => NET_SUM_PRICE_TYPES.includes(priceType);\r\n\r\nconst TOTAL_NET_FIELD_VISIBLE = [PriceType.NET, PriceType.NET_VAT, PriceType.NET_GROSS];\r\nconst TOTAL_GROSS_FIELD_VISIBLE = [PriceType.NET_GROSS, PriceType.GROSS_VAT, PriceType.GROSS];\r\nexport const TotalPriceTypeNetFieldVisible = (priceType) => TOTAL_NET_FIELD_VISIBLE.includes(priceType);\r\nexport const TotalPriceTypeGrossFieldVisible = (priceType) => TOTAL_GROSS_FIELD_VISIBLE.includes(priceType);","import Tr from 'translations/Translations';\r\nimport {ProcedureType} from \"./ProcedureType\";\r\n\r\nexport const DemandCategoryType = {\r\n CLASSIC: \"CLASSIC\",\r\n SECTOR: \"SECTOR\",\r\n DEFENSE_AND_SECURITY: \"DEFENSE_AND_SECURITY\",\r\n}\r\nconst _TR_PREFIX = 'demand_category_type_';\r\nexport const DemandCategoryTypeLabel = (type) => (Tr(_TR_PREFIX + type));\r\n\r\n\r\nexport const DemandCategoryTypesForProcedure = (procedure) =>\r\n ProcedureType.NATIONAL_SOCIAL_SERVICES === procedure || ProcedureType.EUROPE_SOCIAL_SERVICES === procedure ?\r\n Object.keys(DemandCategoryType).filter(x => x !== DemandCategoryType.DEFENSE_AND_SECURITY) : Object.keys(DemandCategoryType);","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (value) => ({label: Tr('caseClassificationSymbol.' + value), value})\r\n\r\nexport default [\r\n {label: '---', value: ''},\r\n createItem('270'),\r\n createItem('271'),\r\n createItem('272')\r\n]","import React from 'react'\r\nimport {Box, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport RadioGroup from 'components/RadioGroup';\r\nimport Select, {createSelectItem} from 'components/Select';\r\nimport GridBlock from 'components/GridBlock';\r\nimport primaryTenderVariantValues from './fieldsOptions/primaryTenderVariant.values'\r\nimport pzpExclusionValues from './fieldsOptions/pzpExclusion.values'\r\nimport orderTypeValues from 'constants/orderType.values'\r\nimport concessionOrderTypeValues from 'constants/concessionOrderType.values'\r\nimport booleanValues from 'constants/BooleanItems'\r\nimport jedzValues from './fieldsOptions/jedz.values'\r\nimport contractTypeValues from './fieldsOptions/contractType.values'\r\nimport CPVInput from 'components/CPVInput';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport HelpComponent from 'components/HelpComponent';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {isDemandPreparing} from \"libs/getDemandStatus\";\r\nimport OrganizationInput from \"components/OrganizationInput\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport {isEuropeProcedure, isNationalProcedure, isNonpublicProcedure} from \"constants/ProcedureType\";\r\nimport {PriceTypeItems} from \"constants/PriceTypes\";\r\nimport {DemandCategoryTypeLabel, DemandCategoryTypesForProcedure} from \"constants/DemandCategoryType\";\r\nimport caseClassificationSymbols from './fieldsOptions/caseClassificationSymbol.values'\r\n\r\n\r\nconst limits = InputLimits.procedure.basicInformation;\r\n\r\nconst style = theme => ({\r\n root: {},\r\n uploadFile: {\r\n marginTop: theme.spacing(4)\r\n }\r\n})\r\n\r\nfunction RequiredFields(\r\n {\r\n classes,\r\n formikProps,\r\n demandAvailableOrganizations,\r\n demandRealizationTypes,\r\n demandAvailableFormTypes,\r\n demandHeader,\r\n numberAutomated,\r\n caseClassificationSymbolRequired,\r\n hideExecutiveDemandVariant\r\n }) {\r\n const passiveOfferForm = getObjectValue('passiveOfferForm', formikProps.values, false);\r\n const creatingDemand = getObjectValue('identity', formikProps.values, false) <= 0 || isDemandPreparing();\r\n //const demandVariant = getObjectValue('demandVariant', formikProps.values, false);\r\n const procedureType = getObjectValue('procedureType', formikProps.values, \"\");\r\n const realizationType = getObjectValue('demandRealizationType', formikProps.values, \"\");\r\n const withNotice = realizationType ? demandRealizationTypes.find(x => x.name === realizationType).withNotice : false;\r\n const europeProcedure = isEuropeProcedure(procedureType);\r\n const nationalProcedure = isNationalProcedure(procedureType);\r\n const nonpublicProcedure = isNonpublicProcedure(procedureType);\r\n const createItem = (prefix, value) => ({label: Tr(prefix + '.' + value), value});\r\n const demandRealizationTypesTranslated = demandRealizationTypes.map(x => !!x.label ? {value: x.name, label: x.label} : createItem(procedureType, x.name));\r\n const demandCategoryType = getObjectValue(\"demandCategoryType\", formikProps.values, null);\r\n\r\n const onDemandRealizationTypeChanged = (realizationType) => {\r\n\r\n if (realizationType === 'primary_tender') {\r\n formikProps.setFieldValue('primaryTenderVariant', primaryTenderVariantValues[0].value);\r\n }\r\n\r\n const newWithNotice = realizationType ? demandRealizationTypes.find(x => x.name === realizationType).withNotice : false;\r\n if(!newWithNotice) {\r\n formikProps.setFieldValue('formType', null);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n\r\n {\r\n (creatingDemand || !!demandCategoryType) && createSelectItem(x, DemandCategoryTypeLabel(x)))}\r\n required\r\n disabled={!creatingDemand}\r\n />\r\n }\r\n\r\n \r\n\r\n {demandHeader.applicationClientSettings.ezdrpIntegration.active &&\r\n \r\n }\r\n\r\n {demandHeader.applicationClientSettings.ezdpuwIntegration.active &&\r\n \r\n }\r\n\r\n \r\n\r\n \r\n \r\n \r\n onDemandRealizationTypeChanged(e.target.value)}\r\n required\r\n disabled={!creatingDemand}\r\n />\r\n \r\n\r\n {nationalProcedure &&\r\n \r\n }\r\n {withNotice &&\r\n ({value: x.key, label: x.value}))}\r\n required\r\n disabled={!creatingDemand}\r\n />\r\n }\r\n {nonpublicProcedure &&\r\n \r\n }\r\n \r\n \r\n {!passiveOfferForm &&\r\n \r\n \r\n \r\n }\r\n {europeProcedure &&\r\n \r\n \r\n \r\n }\r\n {!passiveOfferForm &&\r\n \r\n }\r\n {!passiveOfferForm &&\r\n \r\n \r\n \r\n }\r\n \r\n \r\n \r\n {!nonpublicProcedure &&\r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nRequiredFields.propTypes = {\r\n classes: PropTypes.any,\r\n formikProps: PropTypes.object,\r\n}\r\n\r\nRequiredFields.defaultProps = {}\r\n\r\nexport default withStyles(style)(RequiredFields);","export default {\r\n DATE_FORMAT: \"DD.MM.YYYY\",\r\n DATETIME_FORMAT: \"DD.MM.YYYY HH:mm\",\r\n DATETIME_WITH_SECONDS_FORMAT: \"YYYY.MM.DD HH:mm:ss\"\r\n}\r\n","import React, {useEffect} from 'react'\r\nimport {KeyboardDatePicker} from \"@material-ui/pickers\";\r\nimport {withStyles} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport clsx from 'clsx';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport moment from \"libs/moment\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n width: 320,\r\n }\r\n})\r\n\r\nfunction DatePicker(\r\n {\r\n formikProps,\r\n id,\r\n label,\r\n minDate,\r\n maxDate,\r\n required = false,\r\n classes,\r\n className,\r\n minDateMessage = Tr(\"v_data_can_not_be_past\"),\r\n maxDateMessage = Tr(\"v_data_can_not_be_future\"),\r\n onChange = () => {},\r\n disabled,\r\n skipCheckTouched\r\n }) {\r\n const errorValue = getObjectValue(id, formikProps.errors, '')\r\n const value = getObjectValue(id, formikProps.values, null)\r\n const touched = getObjectValue(id, formikProps.touched, !!skipCheckTouched)\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const isError = !!errorValue && Boolean(touched)\r\n const helperText = errorValue || ' ';\r\n\r\n useEffect(()=> {\r\n if( typeof value === 'string' || value instanceof String) {\r\n const momentVal = moment(value);\r\n if(momentVal.isValid()) {\r\n formikProps.setFieldValue(id, momentVal);\r\n formikProps.validateField(id);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n },[])\r\n\r\n const handleChange = (date) => {\r\n const value = date ? //\r\n (date.isValid() ? date.startOf(\"day\") : date)\r\n :\r\n null;\r\n formikProps.setFieldValue(id, value);\r\n formikProps.setFieldTouched(id, true);\r\n setTimeout((id)=> {try {formikProps.validateField(id)} catch (e){}}, 1, id);\r\n onChange(value ? value.clone() : null)\r\n }\r\n\r\n const handleError = (err) => {\r\n if (!Boolean(errorValue)) {\r\n if (errorValue !== err && err.length > 0) {\r\n formikProps.setFieldError(id, err)\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default withStyles(style)(DatePicker);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport TextInput from 'components/TextInput';\r\nimport RadioGroup from 'components/RadioGroup';\r\nimport DatePicker from 'components/DatePicker';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport booleanValues from 'constants/BooleanItems'\r\nimport InputLimits from 'constants/InputLimits';\r\nimport getObjectValue from 'libs/getObjectValue'\r\n\r\nconst limits = InputLimits.procedure.basicInformation;\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction OptionalFields({\r\n\tformikProps,\r\n\tclasses,\r\n}) {\r\n\tconst euFunded = getObjectValue('euFunded', formikProps.values, false)\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t{euFunded === \"true\" &&\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t{formikProps.values.termOption === 'date' ?\r\n\t\t\t\t\r\n\t\t\t\t:\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nOptionalFields.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tformikProps: PropTypes.object,\r\n}\r\n\r\nOptionalFields.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(OptionalFields);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Button from './Button';\r\n\r\nfunction CheckboxButton({\r\n\tclassName,\r\n\tid,\r\n\tlabel,\r\n\tformikProps,\r\n\tonClick\r\n}) {\r\n\t\r\n\tconst handleClick = () => {\r\n\t\tconst value = formikProps.values[id];\r\n\t\tformikProps.setFieldValue(id, !value);\r\n\t\tonClick();\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{label}\r\n\t\t\r\n\t)\r\n}\r\n\r\nCheckboxButton.propTypes = {\r\n\tformikProps: PropTypes.object,\r\n\tid: PropTypes.string.isRequired,\r\n\tlabel: PropTypes.string,\r\n\tonClick: PropTypes.func,\r\n}\r\n\r\nCheckboxButton.defaultProps = {\r\n\tonClick: () => {}\r\n}\r\n\r\nexport default CheckboxButton","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE';\r\nimport {isDemandPreparing} from \"libs/getDemandStatus\";\r\n\r\nconst limits = InputLimits.procedure.basicInformation;\r\n\r\nconst style = theme => ({\r\n root: {},\r\n text: {\r\n margin: `${theme.spacing(2)}px 0`\r\n },\r\n})\r\n\r\nfunction ContactFields(\r\n {\r\n classes,\r\n formikProps,\r\n }) {\r\n\r\n const creatingDemand = getObjectValue('identity', formikProps.values, false) <= 0 || isDemandPreparing();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nContactFields.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ContactFields);","//https://github.com/samanmohamadi/use-debounced-effect\r\nimport { useEffect, useRef } from 'react';\r\n\r\nconst DEFAULT_CONFIG = {\r\n timeout: 0,\r\n ignoreInitialCall: true,\r\n};\r\nexport function useDebouncedEffect(callback, config, deps = []) {\r\n let currentConfig;\r\n if (typeof config === 'object') {\r\n currentConfig = {\r\n ...DEFAULT_CONFIG,\r\n ...config,\r\n };\r\n } else {\r\n currentConfig = {\r\n ...DEFAULT_CONFIG,\r\n timeout: config,\r\n };\r\n }\r\n\r\n const { timeout, ignoreInitialCall } = currentConfig;\r\n const data = useRef({ firstTime: true });\r\n useEffect(() => {\r\n const { firstTime, clearFunc } = data.current;\r\n\r\n if (firstTime && ignoreInitialCall) {\r\n data.current.firstTime = false;\r\n return;\r\n }\r\n\r\n const handler = setTimeout(() => {\r\n if (clearFunc && typeof clearFunc === 'function') {\r\n clearFunc();\r\n }\r\n data.current.clearFunc = callback();\r\n }, timeout);\r\n\r\n return () => {\r\n clearTimeout(handler);\r\n };\r\n // eslint-disable-next-line\r\n }, [timeout, ...deps]);\r\n}\r\n\r\nexport default useDebouncedEffect;\r\n","import {useEffect} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {clearFormValues, setFormValues} from 'redux/actions'\r\nimport {connect} from 'react-redux'\r\nimport useDebouncedEffect from \"../hooks/useDebouncedEffect\";\r\n\r\n\r\nfunction SaveFormikValues({\r\n\tid,\r\n\tformikProps,\r\n\tsetFormValues,\r\n\tclearFormValues,\r\n\tsave=true,\r\n\tdebounceTimeout = 500\r\n}) {\r\n\tuseEffect(()=> {\r\n\t\treturn ()=> {\r\n\t\t\tclearFormValues(id);\r\n\t\t}\r\n\t},[id, clearFormValues])\r\n\r\n\tuseDebouncedEffect(() => {\r\n\t\tif(save) {\r\n\t\t\tsetFormValues(id, formikProps.values, formikProps.dirty)\r\n\t\t}\r\n\t}, {timeout: debounceTimeout, ignoreInitialCall: false},[save, setFormValues, id, formikProps.values, formikProps.dirty])\r\n\r\n\treturn null;\r\n}\r\n\r\nSaveFormikValues.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tdebounceTimeout: PropTypes.number\r\n}\r\n\r\nexport default connect((state) => ({\r\n\r\n}), {\r\n\tsetFormValues,\r\n\tclearFormValues\r\n})(SaveFormikValues);","import VS from 'constants/ValidationShema';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport Tr from 'translations/Translations';\r\nimport {isEuropeProcedure, isNonpublicProcedure, isNationalProcedure} from \"constants/ProcedureType\";\r\nimport {isDemandPreparing} from \"libs/getDemandStatus\";\r\n\r\nconst inputLimits = InputLimits.procedure.basicInformation;\r\n\r\nexport default (demandRealizationTypes, numberAutomated, caseClassificationSymbolRequired) => {\r\n return VS.lazy((values) => {\r\n const passiveOfferForm = values.passiveOfferForm;\r\n const euFunded = values.euFunded;\r\n const procedureType = values.procedureType;\r\n const realizationType = values.demandRealizationType;\r\n const europeProcedure = isEuropeProcedure(procedureType);\r\n const nonpublicProcedure = isNonpublicProcedure(procedureType);\r\n const nationalProcedure = isNationalProcedure(procedureType);\r\n const withNotice = realizationType ? demandRealizationTypes.find(x => x.name === realizationType).withNotice : false;\r\n const creatingDemand = values.identity <= 0 || isDemandPreparing();\r\n\r\n let baseObj = {\r\n number: VS.any().when(\"name\", {is: (x) => numberAutomated === true, then: VS.any(), otherwise: VS.stringMax(inputLimits.NUMBER)}),\r\n demandCategoryType: creatingDemand ? VS.string() : VS.any(),\r\n name: VS.stringMax(inputLimits.NAME),\r\n description: VS.stringMax(inputLimits.DESCRIPTION),\r\n formType: withNotice ? VS.string() : VS.any(),\r\n demandRealizationType: VS.string(),\r\n primaryTenderVariant: nationalProcedure ? VS.string() : VS.stringNoRq(),\r\n demandOrderType: VS.string(),\r\n categoryItemCpv: VS.arrayRequired(),\r\n\r\n contactPerson: VS.stringMaxNoRq(inputLimits.CONTACT_PERSON),\r\n\r\n contactPersonPhone: VS.stringMaxNoRq(inputLimits.CONTACT_PERSON_PHONE),\r\n contactPersonEmail: VS.emailMaxNoRq(inputLimits.PURCHASER_EMAIL),\r\n purchaserPhone: VS.stringMaxNoRq(inputLimits.PURCHASER_PHONE),\r\n purchaserFax: VS.stringMaxNoRq(inputLimits.PURCHASER_FAX),\r\n\r\n purchaserEmail: VS.emailMaxNoRq(inputLimits.PURCHASER_EMAIL),\r\n purchaserAdditionalInfo: VS.stringMaxNoRq(inputLimits.PURCHASER_ADDITIONAL_INFO),\r\n\r\n euProjectNumber: euFunded === \"true\" && VS.stringMax(inputLimits.EU_PROJECT_NUMBER),\r\n caseClassificationSymbol: VS.any().when(\"name\", {is: (x) => caseClassificationSymbolRequired === true, then: VS.string(), otherwise: VS.any()})\r\n }\r\n\r\n if (europeProcedure) {\r\n baseObj.requiredJEDZ = VS.string();\r\n }\r\n if (nonpublicProcedure) {\r\n baseObj.pzpExclusion = VS.stringNoRq();\r\n }\r\n\r\n baseObj.demandVariant = VS.string()\r\n\r\n if (passiveOfferForm) {\r\n return VS.object(baseObj)\r\n }\r\n\r\n // if (values.termOption === 'date') {\r\n // baseObj['termDate'] = VS.dateMinNoRq(new Date(), Tr(\"v_data_can_not_be_past\"))\r\n // }\r\n\r\n baseObj = {\r\n ...baseObj,\r\n\r\n auctionMade: VS.string(),\r\n digitalSign: VS.string(),\r\n priceType: VS.string(),\r\n\r\n externalPurchaseRequestNumber: VS.stringMaxNoRq(inputLimits.EOD),\r\n singleDealingJustification: VS.stringMaxNoRq(inputLimits.SINGLE_DEALING_JUSTIFICATION),\r\n estimationBase: VS.stringMaxNoRq(inputLimits.ESTIMATION_BASE),\r\n financialSource: VS.stringMaxNoRq(inputLimits.FINANCIAL_SOURCE),\r\n termDescription: VS.stringMaxNoRq(inputLimits.TERM_DESCRIPTION),\r\n orderValueDecisionDate: VS.dateMaxNoRq(new Date(), Tr('v_data_can_not_be_future')),\r\n fullNameOrderValueDecisionPerson: VS.stringMaxNoRq(inputLimits.FULL_NAME),\r\n managerEntrustedPerson: VS.stringMaxNoRq(inputLimits.FULL_NAME),\r\n }\r\n\r\n return VS.object(baseObj)\r\n })\r\n}","import { useEffect } from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport reduxStore from 'redux/store'\r\nimport { setSaveStatusError } from 'redux/actions'\r\n\r\nconst isErrors = (errors) => {\r\n\tif (Object.keys(errors).length <= 0) return false;\r\n\tfor (let k in errors) {\r\n\t\tconst e = errors[k];\r\n\t\tif (typeof e === 'object') {\r\n\t\t\tif(isErrors(e)) return true;\r\n\t\t} else {\r\n\t\t\tif(e.length > 0) return true;\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}\r\n\r\nfunction ShowErrorOnFailedSubmit({\r\n\tsetCheckError,\r\n\tcheckError,\r\n\tformikProps,\r\n}) {\r\n\tuseEffect(() => {\r\n\t\tif (checkError) {\r\n\t\t\tsetCheckError(false)\r\n\t\t\tconst errors = formikProps.errors\r\n\t\t\tif (isErrors(errors)) {\r\n\t\t\t\tconsole.log(errors);\r\n\t\t\t\tconst msg = Tr('submit_error')\r\n\t\t\t\treduxStore.dispatch(setSaveStatusError(msg));\r\n\t\t\t}\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [checkError])\r\n\treturn ''\r\n}\r\n\r\nexport default ShowErrorOnFailedSubmit;","export default () => {\r\n const href = window.location.href;\r\n return (href.includes(\"/correspondence/\") || href.includes(\"/nationalNotice/\") || href.includes(\"/offer/contractor/\") || //\r\n (href.includes(\"/purchaser/demand\") && href.includes(\"/preview\")));\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport { RestRequestGET } from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport supportedNoApiScreens from \"libs/supportedNoApiScreens\";\r\n\r\nconst _get = async (url) => {\r\n\ttry {\r\n\t\tconst res = await RestRequestGET(url);\r\n\t\tif (res.forceRedirectOldPlatform && !supportedNoApiScreens()) {\r\n\t\t\treduxStore.dispatch(setResource(\"redirectOldPlatform\", true));\r\n\t\t\twindow.location.replace(res.forceRedirectOldPlatform);\r\n\t\t} else {\r\n\t\t\treduxStore.dispatch(\r\n\t\t\t\tsetResource('demandHeader', res)\r\n\t\t\t);\r\n\t\t}\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nconst get = async (id = -1) => {\r\n\tlet url = Endpoints.HEADER(id)\r\n\r\n\tawait _get(url)\r\n}\r\n\r\nconst clear = () => {\r\n\treduxStore.dispatch(clearResource('demandHeader'))\r\n}\r\n\r\nexport default {\r\n\tget,\r\n\tclear\r\n}\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport HeaderService from 'services/HeaderService';\r\nimport reduxStore from 'redux/store';\r\nimport {clearResource, setResource} from 'redux/actions';\r\n\r\nconst updateHeader = (resp, demandId) => {\r\n if (resp.success) {\r\n HeaderService.get(demandId);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nexport const modify = async (demandId) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_MODIFICATION(demandId));\r\n return updateHeader(resp, demandId);\r\n } catch (error) {\r\n }\r\n return false;\r\n};\r\n\r\nexport const publish = async (demandId) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_MODIFICATION_PUBLISH(demandId));\r\n return updateHeader(resp, demandId);\r\n } catch (error) {\r\n }\r\n};\r\n\r\nexport const cancel = async (demandId) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_MODIFICATION_CANCEL(demandId));\r\n return updateHeader(resp, demandId);\r\n } catch (error) {\r\n }\r\n};\r\n\r\nexport const publishOjsNotice = async (demandId) => {\r\n try {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_MODIFICATION_PUBLISH_OJS(demandId));\r\n return res;\r\n } catch (error) {\r\n }\r\n};\r\n\r\nexport const rollbackOjsNotice = async (demandId) => {\r\n try {\r\n const res = await RestRequestPOST(Endpoints.DEMAND_MODIFICATION_ROLLBACK_OJS(demandId))\r\n return res\r\n } catch (error) {\r\n }\r\n};\r\n\r\nexport const noticeOjsStatus = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.DEMAND_MODIFICATION_OJS_STATUS(demandId));\r\n reduxStore.dispatch(\r\n setResource('ojsPublicationStatus', res)\r\n );\r\n return res;\r\n } catch (error) {\r\n }\r\n};\r\n\r\nexport const clearDemandChanged = () => {\r\n reduxStore.dispatch(clearResource('isDemandChanged'));\r\n}\r\nexport const isDemandChanged = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.DEMAND_MODIFICATION_CHANGED(demandId));\r\n reduxStore.dispatch(\r\n setResource('isDemandChanged', res)\r\n );\r\n } catch (error) {\r\n }\r\n};\r\n\r\nexport default {\r\n modify,\r\n publish,\r\n cancel,\r\n publishOjsNotice,\r\n rollbackOjsNotice,\r\n noticeOjsStatus,\r\n isDemandChanged,\r\n clearDemandChanged,\r\n}","import {useCallback, useEffect} from 'react'\r\nimport reduxStore from \"../redux/store\";\r\nimport {clearStepperStateCloseValidator, setStepperStateCloseValidator, setStepperStateDeleteFormDraftFunction, clearStepperStateDeleteFormDraftFunction,\r\n setStepperStateSaveFormDraftFunction, clearStepperStateSaveFormDraftFunction} from \"../redux/actions\";\r\n\r\n\r\nconst useStepperStateCloseValidator = (formId, customCloseValidatorFunction, deleteFormDraftFunc, saveFormDraftFunc) => {\r\n\r\n const defaultCloseValidatorFunction = useCallback(() => {\r\n //domyślna implementacja zakłada, że formularz zawiera {\r\n reduxStore.dispatch(\r\n setStepperStateCloseValidator(customCloseValidatorFunction ? customCloseValidatorFunction : defaultCloseValidatorFunction));\r\n if (!!deleteFormDraftFunc && typeof deleteFormDraftFunc === 'function')\r\n reduxStore.dispatch(setStepperStateDeleteFormDraftFunction(deleteFormDraftFunc));\r\n if (!!saveFormDraftFunc && typeof saveFormDraftFunc === 'function')\r\n reduxStore.dispatch(setStepperStateSaveFormDraftFunction(saveFormDraftFunc))\r\n return () => {\r\n reduxStore.dispatch(clearStepperStateCloseValidator());\r\n reduxStore.dispatch(clearStepperStateDeleteFormDraftFunction());\r\n reduxStore.dispatch(clearStepperStateSaveFormDraftFunction());\r\n }\r\n }, [customCloseValidatorFunction, defaultCloseValidatorFunction, formId, deleteFormDraftFunc, saveFormDraftFunc])\r\n}\r\n\r\nexport default useStepperStateCloseValidator;","import PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux'\r\nimport {useEffect, useRef} from \"react\";\r\nimport reduxStore from \"redux/store\";\r\nimport moment from \"moment\";\r\n\r\n\r\nfunction AutoSaveFormValues({\r\n\tid,\r\n\tformId,\r\n\tsaveFunc,\r\n\tformikProps,\r\n\tthrottleTimeout = 30000,\r\n\tdebounceTimeout = 10000,\r\n\tignoreInitialCall = true,\r\n\tcustomDirtyRef\r\n}) {\r\n\r\n\tconst data = useRef({ firstTime: true, timeoutSetTime: null });\r\n\r\n\tuseEffect(() => {\r\n\t\tconst { firstTime, timeoutSetTime } = data.current;\r\n\t\tif (firstTime && ignoreInitialCall) {\r\n\t\t\tdata.current.firstTime = false;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet throttleHandler;\r\n\t\tlet debounceHandler;\r\n\t\tif (!!customDirtyRef ? customDirtyRef.current === \"tak\" : formikProps.dirty) {\r\n\t\t\tif (!timeoutSetTime || moment.now() - timeoutSetTime > throttleTimeout) {\r\n\t\t\t\tdata.current.timeoutSetTime = moment.now();\r\n\t\t\t}\r\n\t\t\tthrottleHandler = setTimeout(() => {\r\n\t\t\t\tclearTimeout(debounceHandler)\r\n\t\t\t\tconst state = reduxStore.getState();\r\n\t\t\t\tsaveFunc(state.formValues[formId]);\r\n\t\t\t}, throttleTimeout - (moment.now() - data.current.timeoutSetTime));\r\n\t\t\tdebounceHandler = setTimeout(() => {\r\n\t\t\t\tclearTimeout(throttleHandler);\r\n\t\t\t\tdata.current.timeoutSetTime = null;\r\n\t\t\t\tconst state = reduxStore.getState();\r\n\t\t\t\tsaveFunc(state.formValues[formId]);\r\n\t\t\t}, debounceTimeout);\r\n\t\t}\r\n\r\n\t\treturn () => {\r\n\t\t\tclearTimeout(throttleHandler);\r\n\t\t\tclearTimeout(debounceHandler);\r\n\t\t};\r\n\t\t// eslint-disable-next-line\r\n\t}, [throttleTimeout, debounceTimeout, id, formikProps.values, !!customDirtyRef ? customDirtyRef.current : formikProps.dirty]);\r\n\r\n\treturn null;\r\n}\r\n\r\nAutoSaveFormValues.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\ttimeout: PropTypes.number\r\n}\r\n\r\nexport default connect((state) => ({\r\n}))(AutoSaveFormValues);","import reduxStore from \"redux/store\";\r\n\r\nconst saveFormDraft = (id, saveFunc, formId) => {\r\n const state = reduxStore.getState();\r\n saveFunc(id, state.formValues[formId]);\r\n}\r\n\r\nexport default saveFormDraft;","import React, {useState} from 'react'\r\nimport {Collapse} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport Tr from 'translations/Translations';\r\nimport Divider from '../../../../../../../../components/Divider';\r\nimport RequiredFields from './RequiredFields';\r\nimport OptionalFields from './OptionalFields';\r\nimport moment from 'moment';\r\nimport CheckboxButton from 'components/CheckboxButton';\r\nimport GridBlock from 'components/GridBlock';\r\nimport {connect} from 'react-redux'\r\nimport Loading from 'components/Loading';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport DemandService from 'services/DemandService';\r\nimport ContactFields from './ContactFields';\r\nimport HelpTooltip from 'components/HelpTooltip';\r\nimport SaveFormikValues from 'components/SaveFormikValues';\r\nimport validationSchema from './constants/validationSchema';\r\nimport ShowErrorOnFailedSubmit from 'components/ShowErrorOnFailedSubmit';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport {useParams, withRouter} from \"react-router\";\r\nimport {isNonpublicProcedure} from \"constants/ProcedureType\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\n\r\nfunction MainForm(\r\n {\r\n data,\r\n demandAvailableOrganizations,\r\n demandRealizationTypes,\r\n demandAvailableFormTypes,\r\n numberAutomated,\r\n caseClassificationSymbolRequired,\r\n stepperState,\r\n demandValidation,\r\n demandHeader\r\n }) {\r\n const [checkError, setCheckError] = useState(false)\r\n const section = demandValidation.find(x => x.section === DemandValidation.DEMAND);\r\n const FORM_ID = 'mp_1_demand'\r\n const params = useParams();\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active;\r\n useStepperStateCloseValidator(FORM_ID, undefined,\r\n autoSaveFormDraftActive ? () => DemandService.deleteDraft(params.id) : undefined,\r\n autoSaveFormDraftActive ? () => saveFormDraft(params.id, DemandService.saveDraft, FORM_ID) : undefined);\r\n\r\n if (!data || !demandAvailableOrganizations || !demandRealizationTypes || !demandAvailableFormTypes || !demandHeader) {\r\n return \r\n }\r\n\r\n\r\n const handleSubmit = (values) => {\r\n DemandService.save(values).then(() => {\r\n if (data.identity !== -1) {\r\n HeaderService.get(data.identity)\r\n }\r\n });\r\n }\r\n\r\n const getField = (id, defaultValue = '') => getObjectValue(id, data, defaultValue)\r\n const getTimeField = (id, defaultValue = null) => {\r\n const v = getField(id, defaultValue);\r\n\r\n if (v) return moment(v);\r\n return v;\r\n }\r\n\r\n return (\r\n {\r\n setCheckError(true);\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(data.identity);\r\n }\r\n }}\r\n >\r\n {(formikProps) => {\r\n const passiveOfferForm = getObjectValue('passiveOfferForm', formikProps.values, false);\r\n const procedureType = getObjectValue('procedureType', formikProps.values, \"\");\r\n const nonpublicProcedure = isNonpublicProcedure(procedureType);\r\n const _editable = getObjectValue('_editable', formikProps.values, true);\r\n return (\r\n \r\n \r\n \r\n {autoSaveFormDraftActive &&\r\n {\r\n DemandService.saveDraft(getField('identity'), formValues)\r\n }}\r\n />\r\n }\r\n \r\n\r\n \r\n {`${Tr('contact_data')} (${Tr('optional')})`}\r\n \r\n\r\n \r\n\r\n {!passiveOfferForm && !nonpublicProcedure &&\r\n \r\n {`${Tr('additional_data')} (${Tr('optional')})`}\r\n \r\n \r\n }\r\n\r\n {!passiveOfferForm && !nonpublicProcedure &&\r\n \r\n \r\n \r\n }\r\n\r\n {!passiveOfferForm && !nonpublicProcedure &&\r\n \r\n }\r\n\r\n \r\n )\r\n }}\r\n \r\n )\r\n}\r\n\r\nMainForm.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nMainForm.defaultProps = {}\r\n\r\n\r\nexport default connect((state) => ({\r\n data: state.resources.demand,\r\n demandAvailableOrganizations: state.resources.demandAvailableOrganizations,\r\n demandRealizationTypes: state.resources.demandRealizationTypes,\r\n demandAvailableFormTypes: state.resources.demandAvailableFormTypes,\r\n numberAutomated: state.resources.demandNumberAutomated,\r\n caseClassificationSymbolRequired: state.resources.caseClassificationSymbolRequired,\r\n demandHeader: state.resources.demandHeader,\r\n stepperState: state.stepper.state,\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(MainForm));\r\n","export default {\r\n\tSTANDARD: 'STANDARD', //ze słownika\r\n\tNOT_APPLICABLE: 'NOT_APPLICABLE', //nie dotyczy\r\n\tEXEMPTED: 'EXEMPTED', //zwolniony = value null\r\n\tREVERSED: 'REVERSED', //odwrócony = value null\r\n\tMIXED: 'MIXED', //mieszany, value null, wpisujemy netto i brutto ręcznie\r\n\tOTHER: 'OTHER', //spoza słownika wartość wpisywana recznie, brutto obliczmy\r\n}","import Tr from 'translations/Translations';\r\nimport VatType from './VatType';\r\n\r\nconst createItem = (value) => ({\r\n\tlabel: value + '%',\r\n\tvalue: '' + value,\r\n})\r\n\r\nconst createItemText = (label, value) => ({\r\n\tlabel,\r\n\tvalue,\r\n})\r\n\r\n// [0,3,5,7,8,23].map( x => createItem(x))\r\n\r\nexport const SELECT_VALUE = {\r\n\tDEFAULT: null,\r\n\tNOT_APPLICABLE: VatType.NOT_APPLICABLE,\r\n\tCANCEL: VatType.EXEMPTED,\r\n\tREVERSED: VatType.REVERSED,\r\n\tDIFFRENT_VAT: VatType.MIXED,\r\n\tOTHER: VatType.OTHER,\r\n}\r\n\r\nexport default [\r\n\tcreateItemText(Tr('not_applicable'), SELECT_VALUE.NOT_APPLICABLE),\r\n\tcreateItemText(Tr('released'), SELECT_VALUE.CANCEL),\r\n\tcreateItemText(Tr('reversed'), SELECT_VALUE.REVERSED),\r\n\tcreateItem(0),\r\n\tcreateItem(3),\r\n\tcreateItem(5),\r\n\tcreateItem(7),\r\n\tcreateItem(8),\r\n\tcreateItem(23),\r\n\tcreateItemText(Tr('different_vat_rates'), SELECT_VALUE.DIFFRENT_VAT),\r\n\tcreateItemText(Tr('other_2'), SELECT_VALUE.OTHER),\r\n]\r\n\r\n","export default (value) => {\r\n\tconst reg = /[,.]+$/g\r\n\r\n\tlet _value = '' + value\r\n\t_value.replace(reg, '')\r\n\t\r\n\treturn parseFloat(_value, 10)\r\n}","import {SELECT_VALUE} from \"../constants/VATItems\";\r\n\r\nexport const calcGrossValue = (netValue, vatOptionValue, optionOtherValue) => {\r\n\r\n if (vatOptionValue === null) return;\r\n\r\n if (isNaN(netValue)) return;\r\n\r\n if (vatOptionValue === SELECT_VALUE.DIFFRENT_VAT) {\r\n return;\r\n }\r\n\r\n if(vatOptionValue === SELECT_VALUE.CANCEL) {\r\n vatOptionValue = 0;\r\n }\r\n\r\n if (vatOptionValue === SELECT_VALUE.OTHER) {\r\n vatOptionValue = optionOtherValue;\r\n }\r\n\r\n let vatMultipler = vatOptionValue / 100\r\n\r\n let newGrossValue = netValue + netValue * vatMultipler;\r\n if (isNaN(newGrossValue)) return\r\n\r\n return Math.round(newGrossValue * 100) / 100;\r\n}\r\n\r\n\r\nexport const calcNetValue = (grossValue, vatOptionValue, optionOtherValue) => {\r\n if (vatOptionValue === null) return;\r\n if (isNaN(grossValue)) return\r\n\r\n if (vatOptionValue === SELECT_VALUE.DIFFRENT_VAT) {\r\n return;\r\n } else if(vatOptionValue === SELECT_VALUE.CANCEL) {\r\n vatOptionValue = 0;\r\n } else if (vatOptionValue === SELECT_VALUE.OTHER) {\r\n vatOptionValue = optionOtherValue;\r\n }\r\n\r\n const vatMultipler = vatOptionValue / 100;\r\n\r\n let newNetValue = grossValue;\r\n if (vatMultipler !== 0) newNetValue = Math.round((grossValue / (1 + vatMultipler)) * 100) / 100;\r\n\r\n if (isNaN(newNetValue)) return\r\n\r\n return newNetValue;\r\n}","import {useEffect, useRef} from 'react'\r\nimport {devMode} from \"../libs/isDevMode\";\r\n\r\n\r\nexport const useDidUpdateEffect = (effect, deps) => {\r\n if (devMode) {\r\n if (deps !== undefined && !Array.isArray(deps)) {\r\n throw new Error('Deps should be an Array');\r\n }\r\n }\r\n\r\n const didMountRef = useRef(false);\r\n\r\n useEffect(() => {\r\n if (didMountRef.current)\r\n return effect();\r\n else\r\n didMountRef.current = true;\r\n // eslint-disable-next-line\r\n }, deps);\r\n}","import React from 'react'\r\nimport {IconButton, InputAdornment, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from './GridBlock';\r\nimport TitledComponent from './TitledComponent';\r\nimport Select from './Select';\r\nimport TextInput from './TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport VATItems, {SELECT_VALUE} from 'constants/VATItems'\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport CloseIcon from '@material-ui/icons/Close'\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE';\r\nimport toFloat from 'libs/toFloat';\r\nimport {calcGrossValue, calcNetValue} from \"../libs/netGrosCalculations\";\r\nimport {useDidUpdateEffect} from \"../hooks/useDidUpdateEffect\";\r\nimport {PriceType, PriceTypeNetFieldVisible, PriceTypeVatFieldVisible, PriceTypeGrossFieldVisible} from \"constants/PriceTypes\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tgrid: {\r\n\t\t'&>*': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\t'&:not(:first-child)': {\r\n\t\t\t\tmarginLeft: theme.spacing(2)\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\ticonButton: {\r\n\t\tpadding: theme.spacing(1) / 2,\r\n\t},\r\n\totherTextInput: {\r\n\t\t'& input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button': {\r\n\t\t\t'-webkit-appearance': 'none',\r\n\t\t\tmargin: 0\r\n\t\t}\r\n\t},\r\n\tregularTitle: {\r\n\t\tfontWeight: theme.typography.fontWeightRegular,\r\n\t},\r\n})\r\n\r\nfunction NetGrossField({\r\n\tclasses,\r\n\tformikProps,\r\n\tid,\r\n\tpathPrefix,\r\n\ttitle,\r\n\trequired,\r\n\tpriceType = PriceType.NET_GROSS\r\n}) {\r\n\tconst net = !!pathPrefix ? `${pathPrefix}Value` : `${id}.value`;\r\n\tconst gross = !!pathPrefix ? `${pathPrefix}GrossValue` : `${id}.grossValue`\r\n\tconst option = !!pathPrefix ? `${pathPrefix}VatRate` : `${id}.vatRate`\r\n\tconst optionOther = !!pathPrefix ? `${pathPrefix}VatRateOther` : `${id}.vatRateOther`\r\n\r\n\r\n\tconst netValue = toFloat(getObjectValue(net, formikProps.values, 0))\r\n\tconst grossValue = toFloat(getObjectValue(gross, formikProps.values, 0))\r\n\tconst optionValue = getObjectValue(option, formikProps.values, null)\r\n\tconst optionOtherValue = getObjectValue(optionOther, formikProps.values, '')\r\n\tconst editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n\tconst doCalcGrossValue = () => {\r\n\t\tconst curGross = getObjectValue(gross, formikProps.values, 0);\r\n\t\tlet newGrossValue = calcGrossValue(netValue, optionValue, optionOtherValue);\r\n\t\tif(newGrossValue !== undefined && curGross !== newGrossValue)\r\n\t\t\tformikProps.setFieldValue(gross, newGrossValue.toFixed(2))\r\n\t}\r\n\r\n\tconst doCalcNetValue = () => {\r\n\t\tconst newNetValue = calcNetValue(grossValue, optionValue, optionOtherValue);\r\n\t\tif(newNetValue !== undefined)\r\n\t\t\tformikProps.setFieldValue(net, newNetValue.toFixed(2))\r\n\t}\r\n\r\n\tuseDidUpdateEffect(() => {\r\n\t\tdoCalcGrossValue()\r\n\t}, [netValue, optionValue, optionOtherValue])\r\n\r\n\tconst handleGrossBlur = () => {\r\n\t\tdoCalcNetValue()\r\n\t}\r\n\r\n\tconst closeTextInput = () => {\r\n\t\tformikProps.setFieldValue(option, \"\")\r\n\t}\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{PriceTypeNetFieldVisible(priceType) &&\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\t{PriceTypeVatFieldVisible(priceType) &&\r\n\t\t\t\t\t(optionValue === SELECT_VALUE.OTHER ?\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t%\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\r\n\t\t\t\t{PriceTypeGrossFieldVisible(priceType) &&\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nNetGrossField.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(NetGrossField);","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport RadioGroup from 'components/RadioGroup';\r\nimport Select, {createSelectItem} from 'components/Select';\r\nimport GridBlock from 'components/GridBlock';\r\nimport primaryTenderVariantValues from './fieldsOptions/primaryTenderVariant.values'\r\nimport orderTypeValues from 'constants/orderType.values'\r\nimport InputLimits from 'constants/InputLimits';\r\nimport HelpComponent from 'components/HelpComponent';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {isDemandPreparing} from \"libs/getDemandStatus\";\r\nimport OrganizationInput from \"components/OrganizationInput\";\r\nimport {isNationalProcedure} from \"constants/ProcedureType\";\r\nimport NetGrossField from \"components/NetGrossField\";\r\nimport TitledComponent from \"components/TitledComponent\";\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE';\r\nimport {DemandCategoryTypeLabel, DemandCategoryTypesForProcedure} from \"constants/DemandCategoryType\";\r\n\r\n\r\nconst limits = InputLimits.procedure.basicInformation;\r\n\r\nconst style = theme => ({\r\n root: {}\r\n})\r\n\r\nfunction ExPostFields(\r\n {\r\n formikProps,\r\n demandAvailableOrganizations,\r\n demandRealizationTypes,\r\n numberAutomated,\r\n demandHeader,\r\n }) {\r\n const creatingDemand = getObjectValue('identity', formikProps.values, false) <= 0 || isDemandPreparing();\r\n const procedureType = getObjectValue('procedureType', formikProps.values, \"\");\r\n const nationalProcedure = isNationalProcedure(procedureType);\r\n const realizationType = getObjectValue('demandRealizationType', formikProps.values, \"\");\r\n const createItem = (prefix, value) => ({label: Tr(prefix + '.' + value), value});\r\n const demandRealizationTypesTranslated = demandRealizationTypes.map(x => createItem(procedureType, x.name));\r\n const demandCategoryType = getObjectValue(\"demandCategoryType\", formikProps.values, null)\r\n \r\n const onDemandRealizationTypeChanged = (realizationType) => {\r\n\r\n if (realizationType === 'primary_tender') {\r\n formikProps.setFieldValue('primaryTenderVariant', primaryTenderVariantValues[0].value);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n\r\n {\r\n (creatingDemand || !!demandCategoryType) && createSelectItem(x, DemandCategoryTypeLabel(x)))}\r\n required\r\n />\r\n }\r\n\r\n {demandHeader?.applicationClientSettings?.ezdrpIntegration?.active &&\r\n \r\n }\r\n\r\n {demandHeader?.applicationClientSettings?.ezdpuwIntegration?.active &&\r\n \r\n }\r\n\r\n \r\n\r\n \r\n\r\n \r\n onDemandRealizationTypeChanged(e.target.value)}\r\n required\r\n disabled={!creatingDemand}\r\n />\r\n \r\n\r\n {nationalProcedure && realizationType === 'primary_tender' &&\r\n \r\n }\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nExPostFields.propTypes = {\r\n classes: PropTypes.any,\r\n formikProps: PropTypes.object,\r\n};\r\n\r\nExPostFields.defaultProps = {};\r\n\r\nexport default withStyles(style)(ExPostFields);","import VS from 'constants/ValidationShema';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport {SELECT_VALUE} from 'constants/VATItems';\r\n\r\nconst inputLimits = InputLimits.procedure.basicInformation;\r\n\r\nexport default (demandRealizationTypes, numberAutomated) => {\r\n return VS.lazy(() => {\r\n let baseObj = {\r\n number: VS.any().when(\"name\", {is: (x) => numberAutomated === true, then: VS.any(), otherwise: VS.stringMax(inputLimits.NUMBER)}),\r\n demandCategoryType: VS.string(),\r\n name: VS.stringMax(inputLimits.NAME),\r\n demandRealizationType: VS.string(),\r\n demandOrderType: VS.string(),\r\n primaryTenderVariant: VS.any().when(\"demandRealizationType\", {is: (x) => x === 'primary_tender', then: VS.string(), otherwise: VS.any()}),\r\n\r\n estimatedValue: VS.lazy(x => {\r\n const s = {\r\n value: VS.amount(0, false),\r\n grossValue: VS.amount(0, false),\r\n vatRate: VS.amount(),\r\n }\r\n if (x.vatRate === SELECT_VALUE.CANCEL ||\r\n x.vatRate === SELECT_VALUE.DIFFRENT_VAT) {\r\n s.vatRate = VS.any();\r\n }\r\n if (x.vatRate === SELECT_VALUE.OTHER) {\r\n return VS.object({\r\n ...s,\r\n vatRate: VS.any(),\r\n vatRateOther: VS.amountMax100()\r\n })\r\n }\r\n return VS.object(s);\r\n }),\r\n realizationGrossValue: VS.amountOptional(0, false),\r\n }\r\n\r\n return VS.object(baseObj)\r\n })\r\n}","import React, {useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport GridBlock from 'components/GridBlock';\r\nimport {connect} from 'react-redux'\r\nimport Loading from 'components/Loading';\r\nimport ExPostFields from './ExPostFields';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport DemandService from 'services/DemandService';\r\nimport SaveFormikValues from 'components/SaveFormikValues';\r\nimport validationSchemaExPost from './constants/validationSchemaExPost';\r\nimport ShowErrorOnFailedSubmit from 'components/ShowErrorOnFailedSubmit';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport {useParams, withRouter} from \"react-router\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\n\r\nfunction MainFormExPost(\r\n {\r\n data,\r\n demandAvailableOrganizations,\r\n demandRealizationTypes,\r\n numberAutomated,\r\n stepperState,\r\n demandValidation,\r\n demandHeader\r\n }) {\r\n const [checkError, setCheckError] = useState(false)\r\n const section = demandValidation.find(x => x.section === DemandValidation.DEMAND);\r\n const FORM_ID = 'mp_1_demand';\r\n const params = useParams();\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active;\r\n useStepperStateCloseValidator(FORM_ID, undefined,\r\n autoSaveFormDraftActive ? () => DemandService.deleteDraftExPost(params.id) : undefined,\r\n autoSaveFormDraftActive ? () => saveFormDraft(params.id, DemandService.saveDraftExPost, FORM_ID) : undefined);\r\n\r\n if (!data || !demandAvailableOrganizations || !demandRealizationTypes) {\r\n return \r\n }\r\n\r\n\r\n const handleSubmit = (values) => {\r\n DemandService.saveExPost(values).then(() => {\r\n if (data.identity !== -1) {\r\n HeaderService.get(data.identity)\r\n }\r\n });\r\n }\r\n\r\n const getField = (id, defaultValue = '') => getObjectValue(id, data, defaultValue);\r\n\r\n return (\r\n {\r\n setCheckError(true);\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(data.identity);\r\n }\r\n }}\r\n >\r\n {(formikProps) => {\r\n return (\r\n \r\n \r\n \r\n {autoSaveFormDraftActive &&\r\n {\r\n DemandService.saveDraftExPost(getField('identity'), formValues)\r\n }}\r\n />\r\n }\r\n \r\n\r\n \r\n )\r\n }}\r\n \r\n )\r\n}\r\n\r\nMainFormExPost.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nMainFormExPost.defaultProps = {}\r\n\r\n\r\nexport default connect((state) => ({\r\n data: state.resources.demand,\r\n demandAvailableOrganizations: state.resources.demandAvailableOrganizations,\r\n demandRealizationTypes: state.resources.demandRealizationTypes,\r\n numberAutomated: state.resources.demandNumberAutomated,\r\n demandHeader: state.resources.demandHeader,\r\n stepperState: state.stepper.state,\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(MainFormExPost));\r\n","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport DoubleButton from '../components/DoubleButton';\r\n\r\nfunction Confirm(\r\n {\r\n open,\r\n confirmTitle,\r\n confirmText,\r\n confirmText2,\r\n onConfirm,\r\n onCancel,\r\n labelConfirm = \"yes\",\r\n labelCancel = \"no\",\r\n translateConfirmTexts = true\r\n }) {\r\n\r\n return (\r\n }\r\n >\r\n {!!confirmText && \r\n {translateConfirmTexts ? Tr(confirmText) : confirmText}\r\n }\r\n {!!confirmText2 && \r\n {translateConfirmTexts ? Tr(confirmText2) : confirmText2}\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nConfirm.propTypes = {\r\n open: PropTypes.bool.isRequired,\r\n confirmText: PropTypes.string.isRequired,\r\n confirmText2: PropTypes.string,\r\n onConfirm: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n labelConfirm: PropTypes.string,\r\n labelCancel: PropTypes.string,\r\n translateConfirmTexts: PropTypes.bool\r\n}\r\n\r\nexport default Confirm;","import {withRouter} from \"react-router\";\r\nimport React, {useEffect, useMemo, useState} from \"react\";\r\nimport DemandService from 'services/DemandService';\r\nimport querystring from \"querystring\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from 'components/Loading';\r\nimport MainForm from \"./MainForm\";\r\nimport MainFormExPost from \"./MainFormExPost\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport {setFormDraftLoaded} from \"redux/actions\";\r\n\r\nfunction MainFormWrapper(\r\n {\r\n match,\r\n location,\r\n data,\r\n setFormDraftLoaded\r\n }) {\r\n const demandId = match.params.id;\r\n const search = location.search.slice(1);\r\n const urlParams = useMemo(() => querystring.parse(search), [search]);\r\n const [draftConfirm, setDraftConfirm] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n\r\n useEffect(() => {\r\n if (demandId) {\r\n DemandService.get(demandId, urlParams).then(res => {\r\n if (res.autoSaveFormDraftEnabled) {\r\n if (!!res.demand.exPost)\r\n DemandService.checkForDraftExPost(res.demand.identity).then(res => setDraftConfirm(res.result));\r\n else\r\n DemandService.checkForDraft(res.demand.identity).then(res => setDraftConfirm(res.result));\r\n }\r\n });\r\n } else {\r\n DemandService.getCreateNew(urlParams);\r\n HeaderService.get(demandId);\r\n }\r\n\r\n return () => {\r\n DemandService.clearResources(DemandService.DEMAND_RESOURCE_ID);\r\n DemandService.clearResources(DemandService.DEMAND_AVAILABLE_REALIZATIONS_RESOURCE_ID);\r\n DemandService.clearResources(DemandService.DEMAND_AVAILABLE_ORGANIZATIONS_RESOURCE_ID);\r\n DemandService.clearResources(DemandService.DEMAND_AVAILABLE_FORM_TYPES_RESOURCE_ID);\r\n DemandService.clearResources(DemandService.DEMAND_NUMBER_AUTOMATED);\r\n DemandService.clearResources(DemandService.DEMAND_CASE_CLASSIFICATION_SYMBOL_REQUIRED);\r\n }\r\n }, [demandId, urlParams]);\r\n\r\n const loadDemandDraft = (exPost) => {\r\n setDraftConfirm(false);\r\n setWorking(true);\r\n if (exPost)\r\n DemandService.loadDraftExPost(demandId).then(res => setFormDraftLoaded('mp_1_demand', res.success));\r\n else\r\n DemandService.loadDraft(demandId).then(res => setFormDraftLoaded('mp_1_demand', res.success));\r\n setWorking(false);\r\n }\r\n\r\n if (!data || working) {\r\n return \r\n } else if (data.exPost) {\r\n return <>\r\n \r\n loadDemandDraft(true)}\r\n onCancel={() => setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n \r\n } else {\r\n return <>\r\n \r\n loadDemandDraft(false)}\r\n onCancel={() => setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n \r\n }\r\n}\r\n\r\nexport default connect((state) => ({\r\n data: state.resources.demand,\r\n}), {setFormDraftLoaded})(withRouter(MainFormWrapper));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport MainFormWrapper from \"./dataEdit/MainFormWrapper\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Index;","import React from 'react'\r\nimport {Box, ListItem, Typography, withStyles} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport moment from 'moment';\r\nimport DateFormats from \"constants/DateFormats\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n grid: {\r\n '&>*:first-child': {\r\n flexGrow: 1,\r\n marginRight: theme.spacing(2),\r\n },\r\n '&>*:nth-child(2)': {\r\n width: 130\r\n }\r\n },\r\n})\r\n\r\nfunction ListElement({\r\n classes,\r\n item,\r\n trPrefix = \"\"\r\n\r\n }) {\r\n\r\n const {owner, history} = item\r\n const {operationType, operationDatetime, role} = history\r\n const {firstName, lastName, member} = owner\r\n\r\n const boldDouble = (firstName, lastName) => {`${firstName} ${lastName}`}\r\n const bold = (t) => {t}\r\n\r\n const textVariant = {\r\n DELETE: (<>\r\n {Tr('history_popup_del_1')}{' '}\r\n {bold(Tr('history_popup_del_2'))}{' '}\r\n {Tr('history_popup_del_3')}\r\n ),\r\n ADD: (<>\r\n {Tr('history_popup_add_1')}{' '}\r\n {bold(Tr('history_popup_add_2'))}{' '}\r\n {Tr('history_popup_add_3')}{' '}\r\n {Tr('history_popup_add_4')}{' '}\r\n {bold(Tr(trPrefix + role.toUpperCase()))}\r\n ),\r\n MODIFY: (<>\r\n {Tr('history_popup_role_0')}{' '}\r\n {bold(Tr(trPrefix + role.toUpperCase()))}\r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {member ? boldDouble(member.firstName, member.lastName) : boldDouble(firstName, lastName)}\r\n {' '}\r\n {textVariant[operationType.trim()]}\r\n \r\n \r\n {moment(operationDatetime).format(DateFormats.DATE_FORMAT)}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default withStyles(style)(ListElement);","import React from 'react'\r\nimport {List, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations'\r\nimport GridBlock from 'components/GridBlock';\r\nimport ListElement from './ListElement';\r\nimport Loading from \"../../Loading\";\r\nimport SingleButton from \"../components/SingleButton\";\r\nimport {connect} from \"react-redux\";\r\n\r\n\r\nfunction ChangeHistory(\r\n {\r\n open,\r\n onClose,\r\n historyTab,\r\n purchasingGroupHeader\r\n }) {\r\n\r\n const createTab = () => {\r\n let newHistoryTab = []\r\n historyTab.forEach(x => {\r\n let {history, ...other} = x\r\n history.forEach(inner => {\r\n newHistoryTab.push({\r\n history: inner,\r\n owner: {...other}\r\n })\r\n });\r\n });\r\n\r\n let sortTable = newHistoryTab.sort((a, b) => {\r\n return a.history.operationDatetime - b.history.operationDatetime\r\n })\r\n\r\n if (sortTable.length === 0) return (\r\n {Tr('empty_history')}\r\n )\r\n\r\n return sortTable.reverse().slice(0, 5).map((item, i) => {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n\r\n return (\r\n }\r\n >\r\n {!historyTab ?\r\n \r\n :\r\n \r\n \r\n {createTab()}\r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nChangeHistory.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\nexport default connect((state) => ({\r\n purchasingGroupHeader: state.resources.purchasingGroupHeader\r\n}), {\r\n\r\n})(ChangeHistory);\r\n","import React from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Button from 'components/Button';\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => {\r\n const width = 400;\r\n return {\r\n root: {\r\n marginTop: theme.spacing(2)\r\n },\r\n button: {\r\n width,\r\n height: 60,\r\n },\r\n text: {\r\n width,\r\n textAlign: 'center',\r\n marginTop: theme.spacing(2),\r\n }\r\n }\r\n}\r\n\r\nfunction StartScreen(\r\n {\r\n classes,\r\n onFormOpen,\r\n onImporterOpen\r\n }) {\r\n return (\r\n \r\n \r\n \r\n {Tr('prepare_offer_form')}\r\n \r\n \r\n {Tr('prepare_offer_form_description')}\r\n \r\n \r\n\r\n \r\n \r\n {Tr('import_form_more_than')}\r\n \r\n \r\n {Tr('import_form_more_than_description')}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nStartScreen.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(StartScreen);","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport reduxStore from 'redux/store'\r\nimport {SELECT_VALUE} from 'constants/VATItems';\r\nimport {addObjectResource, addObjectResources, clearResource, setResource, setSaveStatusDialog, setSaveStatusError, setSaveStatusLoading} from 'redux/actions'\r\nimport Tr from 'translations/Translations';\r\nimport VatType from 'constants/VatType';\r\nimport getObjectValue from \"../libs/getObjectValue\";\r\nimport moment from \"libs/moment\";\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n}\r\n\r\nconst getDealingsMatchingCriterion = async (demandId, critId) => {\r\n const res = await RestRequestGET(Endpoints.DEALINGS_WITH_CRITERION(demandId, critId))\r\n return res;\r\n}\r\n\r\n\r\nconst getDealingsMatchingCriterionName = async (demandId, stageId, criteriumType, name) => {\r\n let params = {\r\n name\r\n }\r\n const res = await RestRequestGET(Endpoints.DEALINGS_MATCHING_CRITERION(demandId, stageId, criteriumType), {params});\r\n return res;\r\n}\r\n\r\nconst _prepareIncomingDealing = (dealing) => {\r\n const {agreementRealizationDate, ...other} = dealing;\r\n\r\n const text = getObjectValue('agreementRealizationDate.text', dealing);\r\n const date = getObjectValue('agreementRealizationDate.date', dealing);\r\n return {\r\n ...other,\r\n termOption: text ? \"text\" : \"date\",\r\n termDate: date ? moment(date) : null,\r\n termDescription: text\r\n }\r\n};\r\n\r\nconst getList = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.DEALINGS(demandId));\r\n\r\n const modRes = {\r\n ...res,\r\n dealings: res.dealings.map(x => _prepareIncomingDealing(x)),\r\n };\r\n\r\n\r\n reduxStore.dispatch(\r\n setResource('dealingsList', modRes)\r\n )\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n}\r\n\r\nconst get = async (demandId, dealingId) => {\r\n const {resources} = reduxStore.getState()\r\n const dealing = resources.dealing ? resources.dealing[dealingId] : undefined\r\n if (dealing) return;\r\n\r\n try {\r\n const res = await RestRequestGET(Endpoints.DEALINGS_SINGLE(demandId, dealingId));\r\n const modRes = _prepareIncomingDealing(res);\r\n reduxStore.dispatch(\r\n addObjectResource('dealing', dealingId, modRes)\r\n )\r\n return modRes;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getFullList = async (demandId, dealingIds) => {\r\n\r\n const data = {\r\n items: dealingIds\r\n };\r\n\r\n const res = await RestRequestPOST(Endpoints.DEALINGS_LIST(demandId), data);\r\n const payload = {};\r\n res.forEach(item => {\r\n payload[item.identity] = _prepareIncomingDealing(item)\r\n });\r\n reduxStore.dispatch(\r\n addObjectResources('dealing', payload)\r\n );\r\n return payload;\r\n\r\n}\r\n\r\nconst _formatSinglePartValues = (values) => {\r\n // eslint-disable-next-line\r\n const {\r\n _open,\r\n _edit,\r\n _touched,\r\n _load,\r\n amount,\r\n items,\r\n name,\r\n termOption,\r\n termDescription,\r\n termDate,\r\n agreementRealizationDate,\r\n ...otherValues\r\n } = values;\r\n\r\n const {\r\n vatRate,\r\n vatRateOther,\r\n ...otherAmount\r\n } = amount;\r\n\r\n let newVatRate = vatRate;\r\n let vatType = VatType.STANDARD;\r\n if (vatRate === SELECT_VALUE.OTHER) {\r\n newVatRate = vatRateOther\r\n vatType = VatType.OTHER;\r\n } else if (vatRate === SELECT_VALUE.CANCEL) {\r\n newVatRate = 0\r\n vatType = VatType.EXEMPTED\r\n } else if (vatRate === SELECT_VALUE.DIFFRENT_VAT) {\r\n newVatRate = 0\r\n vatType = VatType.MIXED\r\n }\r\n\r\n let newItems = items;\r\n if (newItems.length === 1) {\r\n const curName = items[0].name ? items[0].name.trim() : null;\r\n newItems = [{\r\n ...newItems[0],\r\n name: !curName ? name : curName\r\n }]\r\n }\r\n\r\n newItems = newItems.map(i => {\r\n let iNewVatRate = i.offerVatRate;\r\n let iVatType = VatType.STANDARD;\r\n if (i.offerVatRate === SELECT_VALUE.OTHER) {\r\n iNewVatRate = i.offerVatRateOther\r\n iVatType = VatType.OTHER;\r\n } else if (i.offerVatRate === SELECT_VALUE.CANCEL) {\r\n iNewVatRate = 0\r\n iVatType = VatType.EXEMPTED\r\n } else if (i.offerVatRate === SELECT_VALUE.DIFFRENT_VAT) {\r\n iNewVatRate = 0\r\n iVatType = VatType.MIXED\r\n } else if (i.offerVatRate === SELECT_VALUE.NOT_APPLICABLE) {\r\n iNewVatRate = 0\r\n iVatType = VatType.NOT_APPLICABLE\r\n } else if (i.offerVatRate === SELECT_VALUE.REVERSED) {\r\n iNewVatRate = 0\r\n iVatType = VatType.REVERSED\r\n }\r\n return {\r\n ...i,\r\n offerVatType: iVatType,\r\n offerVatValue: iNewVatRate\r\n }\r\n });\r\n\r\n const formatDate = (x) => (x ? x.format() : x);\r\n return {\r\n ...otherValues,\r\n name,\r\n agreementRealizationDate: {\r\n date: termOption === 'date' ? formatDate(termDate) : null,\r\n text: termOption === 'text' ? termDescription : null,\r\n },\r\n amount: {\r\n ...otherAmount,\r\n vatRate: newVatRate,\r\n vatType,\r\n },\r\n items: newItems\r\n }\r\n}\r\n\r\nconst _formatFormValues = (values) => {\r\n const onlyTouchedAndNew = values.form.filter(\r\n element => element._touched || element.identity < 0\r\n )\r\n const formatedValues = onlyTouchedAndNew.reduce((prevValue, currValue) => {\r\n return [\r\n ...prevValue,\r\n _formatSinglePartValues(currValue)\r\n ]\r\n }, [])\r\n return formatedValues\r\n}\r\n\r\nconst _getDeleteElements = (values) => {\r\n const {resources} = reduxStore.getState()\r\n const dealings = resources.dealingsList.dealings;\r\n\r\n return dealings.reduce((prev, curr) => {\r\n const id = curr.identity;\r\n const el = values.form.find(x => x.identity === id)\r\n if (!!el) return prev;\r\n return [\r\n ...prev,\r\n id\r\n ]\r\n }, [])\r\n}\r\n\r\nconst _save = async (url, values, demandId) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n\r\n const dealingsToDelete = _getDeleteElements(values)\r\n const dealingsToSave = _formatFormValues(values)\r\n\r\n if (dealingsToSave.length <= 0 && dealingsToDelete.length <= 0) {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n return true;\r\n }\r\n\r\n const data = {\r\n dealingsToDelete,\r\n dealingsToSave,\r\n }\r\n\r\n try {\r\n let res = await RestRequestPOST(url, data)\r\n if (res.success) {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n return true;\r\n } else {\r\n let msg;\r\n if (res.errors) {\r\n if (dealingsToSave.some((d, i) => !!res.errors[`dealingsToSave[${i}].items`])) {\r\n const dealingWithErrorId = dealingsToSave.filter((d, i) => !!res.errors[`dealingsToSave[${i}].items`]).map(d => d.identity)[0];\r\n const dealingWithErrorIndex = dealingsToSave.map(d => d.identity).indexOf(dealingWithErrorId);\r\n msg = res.errors[`dealingsToSave[${dealingWithErrorIndex}].items`];\r\n } else if (dealingsToSave.some((d, i) => !!res.errors[`dealingsToSave[${i}].stages[0].criterions`])) {\r\n const dealingWithErrorId = dealingsToSave.filter((d, i) => !!res.errors[`dealingsToSave[${i}].stages[0].criterions`]).map(d => d.identity)[0];\r\n const dealingWithErrorIndex = dealingsToSave.map(d => d.identity).indexOf(dealingWithErrorId);\r\n msg = res.errors[`dealingsToSave[${dealingWithErrorIndex}].stages[0].criterions`];\r\n if (msg === 'wrongWeightSum') {\r\n msg = Tr('v_number_min_criteria', {min: 100});\r\n }\r\n } else if (dealingsToSave.some((d, i) => !!res.errors[`dealingsToSave[${i}].amount.value`])) {\r\n const dealingWithErrorId = dealingsToSave.filter((d, i) => !!res.errors[`dealingsToSave[${i}].amount.value`]).map(d => d.identity)[0];\r\n const dealingWithErrorIndex = dealingsToSave.map(d => d.identity).indexOf(dealingWithErrorId);\r\n msg = `${Tr('part')} ${dealingWithErrorIndex + 1}: ${res.errors[`dealingsToSave[${dealingWithErrorIndex}].amount.value`]}`;\r\n }\r\n }\r\n if (!msg) {\r\n msg = Tr('unknown_error_message');\r\n }\r\n reduxStore.dispatch(setSaveStatusError(msg));\r\n\r\n }\r\n } catch (error) {\r\n }\r\n return false;\r\n}\r\n\r\nconst save = async (demandId, values) => {\r\n return await _save(Endpoints.DEALINGS_SAVE(demandId), values, demandId)\r\n}\r\n\r\nconst validate = async (demandId) => {\r\n return RestRequestGET(Endpoints.DEALINGS_VALIDATE(demandId));\r\n}\r\n\r\nconst checkForDraft = async (id, dealingId) => {\r\n return await RestRequestGET(Endpoints.DEALINGS_AUTOSAVE_CHECK(id, dealingId));\r\n}\r\n\r\nconst loadDraft = async (id, dealingId) => {\r\n const res = await RestRequestGET(Endpoints.DEALINGS_AUTOSAVE(id, dealingId));\r\n if (res.success)\r\n res.result = _prepareIncomingDealing(res.result);\r\n return res;\r\n}\r\n\r\nconst saveDraft = async (id, formValues) => {\r\n const dealingsToDelete = _getDeleteElements(formValues);\r\n const dealingsToSave = _formatFormValues(formValues);\r\n const data = {\r\n dealingsToDelete,\r\n dealingsToSave,\r\n }\r\n await RestRequestPOST(Endpoints.DEALINGS_AUTOSAVE_BATCH(id), data)\r\n}\r\n\r\nconst deleteDraft = async (id) => {\r\n await RestRequestDELETE(Endpoints.DEALINGS_AUTOSAVE_BATCH(id));\r\n}\r\n\r\nconst getRealizationValues = async (demandId) => {\r\n return await RestRequestGET(Endpoints.DEALING_REALIZATION_VALUE(demandId));\r\n}\r\nconst saveRealizationValues = async (demandId, values, publishMode) => {\r\n return await RestRequestPOST(Endpoints.DEALING_REALIZATION_VALUE(demandId) + (publishMode != null ? '?publishMode=' + publishMode : ''), values);\r\n}\r\n\r\nconst getFinalRealizationValues = async (demandId) => {\r\n return await RestRequestGET(Endpoints.DEALING_FINAL_REALIZATION_VALUE(demandId));\r\n}\r\nconst saveFinalRealizationValues = async (demandId, values) => {\r\n return await RestRequestPOST(Endpoints.DEALING_FINAL_REALIZATION_VALUE(demandId), values);\r\n}\r\n\r\nconst getRealizationValueStatus = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.DEALING_REALIZATION_VALUE_STATUS(demandId));\r\n reduxStore.dispatch(setResource(RESOURCE_DEALING_REALIZATION_VALUE_STATUS, resp));\r\n return resp;\r\n}\r\n\r\nconst publishRealizationAmountValue = async (demandId) => {\r\n await RestRequestPUT(Endpoints.DEALING_REALIZATION_VALUE_PUBLISH(demandId));\r\n}\r\n\r\nconst unpublishRealizationAmountValue = async (demandId) => {\r\n await RestRequestPUT(Endpoints.DEALING_REALIZATION_VALUE_UNPUBLISH(demandId));\r\n}\r\n\r\nconst RESOURCE_DEALING_REALIZATION_VALUE_STATUS = 'dealingsRealizationValueStatus';\r\n\r\nexport default {\r\n getList,\r\n get,\r\n save,\r\n checkForDraft,\r\n loadDraft,\r\n saveDraft,\r\n deleteDraft,\r\n clearResources,\r\n getDealingsMatchingCriterion,\r\n getDealingsMatchingCriterionName,\r\n getFullList,\r\n getRealizationValues,\r\n getFinalRealizationValues,\r\n getRealizationValueStatus,\r\n saveRealizationValues,\r\n saveFinalRealizationValues,\r\n publishRealizationAmountValue,\r\n unpublishRealizationAmountValue,\r\n validate,\r\n RESOURCE_DEALING_REALIZATION_VALUE_STATUS\r\n}","import Tr from \"translations/Translations\";\r\n\r\nconst createItem = (value, key) => ({\r\n value,\r\n label: Tr(key),\r\n})\r\n\r\nexport const SOURCE_TYPES = {\r\n SUPPLIER: \"SUPPLIER\",\r\n INITIATOR: \"INITIATOR\"\r\n}\r\n\r\nexport default [\r\n createItem(SOURCE_TYPES.SUPPLIER, 'offerSourceType.supplier'),\r\n createItem(SOURCE_TYPES.INITIATOR, 'offerSourceType.initiator')\r\n]","import {createSelectItem} from \"components/Select\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nexport const ITEM_TYPES = {\r\n BASIC: \"basic\",\r\n OPTIONAL: \"optional\",\r\n}\r\n\r\nexport const ItemTypes = [\r\n createSelectItem(ITEM_TYPES.BASIC, Tr('position_type.basic')),\r\n createSelectItem(ITEM_TYPES.OPTIONAL, Tr('position_type.optional'))\r\n]","import {SELECT_VALUE} from 'constants/VATItems'\r\nimport {SOURCE_TYPES} from 'constants/OfferSourceTypes'\r\nimport {ITEM_TYPES} from \"./itemTypes\";\r\n\r\n\r\nconst netGross = {\r\n grossValue: '',\r\n value: '',\r\n vatRate: SELECT_VALUE.DEFAULT,\r\n}\r\n\r\nexport const newItem = {\r\n name: '',\r\n description: '',\r\n quantity: {\r\n value: \"1\",\r\n uom: 'SZT'\r\n },\r\n type: ITEM_TYPES.BASIC,\r\n offerVatPredefined: false,\r\n offerSourceType: SOURCE_TYPES.SUPPLIER,\r\n allowQuantityEditInOffer: false,\r\n}\r\n\r\nexport const newElement = (identity, demandId) => ({\r\n identity,\r\n demandId,\r\n _edit: true,\r\n _open: true,\r\n _touched: true,\r\n name: null,\r\n description: '',\r\n categoryItemCpv: [],\r\n termOption: \"date\",\r\n amount: netGross,\r\n realizationBeforeOfferAmount: netGross,\r\n items: [newItem],\r\n stages: [\r\n {\r\n conditions: [],\r\n conditionsInSiwz: true,\r\n criterions: [],\r\n parameters: [],\r\n }\r\n ],\r\n})\r\n\r\n\r\nexport default [\r\n newElement(-1),\r\n]\r\n","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Button from 'components/Button';\r\nimport AddIcon from '@material-ui/icons/AddBoxOutlined'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction AddButton({\r\n\tclasses,\r\n\tchildren,\r\n\t...others\r\n}) {\r\n\t\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t)\r\n}\r\n\r\nAddButton.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(AddButton);","import React from 'react'\r\nimport { withStyles, Backdrop } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Loading from '../../Loading';\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\ttop: 0,\r\n\t\tleft: 0,\r\n\t\tright: 0,\r\n\t\tbottom: 0,\r\n\t\tzIndex: theme.zIndex.modal,\r\n\t\tposition: 'fixed',\r\n\t},\r\n})\r\n\r\nfunction LoadingScreen({\r\n\t\t\t\t\t\t classes,\r\n\t\t\t\t\t\t open = true,\r\n\t\t\t\t\t }) {\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t{open && }\r\n\t\t
\r\n\t)\r\n}\r\n\r\nLoadingScreen.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nLoadingScreen.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(LoadingScreen);","import React from 'react';\r\nimport LoadingScreen from \"components/complex/loadingScreen/LoadingScreen\";\r\n\r\n\r\nconst ImporterForm = (\r\n {\r\n downloadingInProgress\r\n }) => {\r\n\r\n\r\n return (\r\n <>\r\n {downloadingInProgress ? : ''}\r\n \r\n )\r\n};\r\n\r\n\r\nexport default ImporterForm\r\n\r\n","import {RestRequestBLOB} from \"libs/RestRequest\";\r\nimport Endpoints from \"constants/Endpoints\";\r\n\r\nexport const downloadImportTemplate = async (demandId, successCallback = () => {}, errorCallback = () => {}) => {\r\n try {\r\n RestRequestBLOB(Endpoints.DEALINGS_EXPORT(demandId))\r\n .then(successCallback)\r\n .catch(errorCallback);\r\n } catch (error) {\r\n }\r\n}\r\n\r\n","import React from 'react'\r\nimport { withStyles, Table, TableHead, TableBody } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n\ttable: {\r\n\t\ttableLayout: 'fixed',\r\n\r\n\t\t'& td, th': {\r\n\t\t\toverflow: 'hidden',\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction STableContainer({\r\n\tclasses,\r\n\tchildren,\r\n\thead,\r\n\tclassName,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{head}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t
\r\n\t)\r\n}\r\n\r\nSTableContainer.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(STableContainer);","import React from 'react'\r\nimport {TableCell, TableRow, TableSortLabel, Tooltip} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';\r\nimport Tr from 'translations/Translations';\r\n\r\nfunction SortIcon(props) {\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nfunction STableRow(\r\n {\r\n items = [],\r\n className,\r\n cellClassName,\r\n cellClassNames = []\r\n }) {\r\n\r\n if (items.length <= 0) return '';\r\n\r\n return (\r\n \r\n {items.map((item, i) => {\r\n let ccn;\r\n if (cellClassNames.length > i) {\r\n ccn = cellClassNames[i];\r\n }\r\n\r\n if (item === null) item = '';\r\n let obj = item;\r\n if ((typeof item !== 'object') || (typeof item === 'object' && item.value === undefined)) {\r\n obj = {value: item}\r\n }\r\n\r\n const cellBody = () => {\r\n if (obj.sort) {\r\n return (\r\n \r\n {obj.value}\r\n \r\n )\r\n }\r\n return obj.value;\r\n }\r\n\r\n return \r\n {cellBody()}\r\n \r\n })}\r\n \r\n )\r\n}\r\n\r\nSTableRow.propTypes = {\r\n classes: PropTypes.any,\r\n items: PropTypes.arrayOf(PropTypes.oneOfType([\r\n PropTypes.shape({\r\n value: PropTypes.any,\r\n className: PropTypes.string,\r\n }),\r\n PropTypes.any,\r\n ]))\r\n}\r\n\r\n\r\nexport default STableRow;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport STableContainer from './STableContainer';\r\nimport STableRow from './STableRow';\r\n\r\nfunction SimpleTable({\r\n\theaders,\r\n\titems = [],\r\n\tclassName,\r\n\tcellClassName = '',\r\n\tcolumnClasses = [],\r\n\trowClasses = []\r\n\r\n}) {\r\n\t\r\n\treturn (\r\n\t\t: undefined}\r\n\t\t>\r\n\t\t\t{items.map( (rowElements, i) => {\r\n\t\t\t\treturn( rowElements !== null ?\r\n\t\t\t\t\t : null\r\n\t\t\t\t)\r\n\t\t\t})}\r\n\t\t\r\n\t)\r\n}\r\n\r\nSimpleTable.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default SimpleTable;","import React, {useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dropzone from 'components/Dropzone'\r\nimport UploadService from 'services/UploadService';\r\nimport {Typography} from '@material-ui/core';\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport Dialog from \"components/Dialog\";\r\nimport Tr from \"translations/Translations\";\r\nimport Button from \"components/Button\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport clsx from \"clsx\";\r\nimport {clearResource, setOpenForm, setOpenImporter, setStepperState} from \"redux/actions\";\r\nimport {connect} from \"react-redux\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport DealingsService from \"services/DealingsService\";\r\nimport LoadingScreen from \"components/complex/loadingScreen/LoadingScreen\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n dropzone: {\r\n marginTop: theme.spacing(1)\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n reasonColumn: {\r\n color: theme.palette.error.main\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n }\r\n\r\n}));\r\n\r\nfunction UploadImportFile(\r\n {\r\n id,\r\n clearResource,\r\n setStepperState,\r\n setUploadOpened,\r\n setOpenImporter,\r\n setOpenForm,\r\n ...others\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n // eslint-disable-next-line\r\n const [importErrors, setImportErrors] = useState([]);\r\n const [processingUpload, setProcessingUpload] = useState(false);\r\n const [openSuccessPopup, setOpenSuccessPopup] = useState(false);\r\n\r\n const handlePickFile = (files) => {\r\n setProcessingUpload(true);\r\n\r\n //start upload\r\n files.forEach((element, index) => {\r\n UploadService.upload(element, () => {\r\n }, Endpoints.DEALINGS_IMPORT(id)).then(res => {\r\n if (res.success) {\r\n setOpenSuccessPopup(true);\r\n } else {\r\n setImportErrors(res.errors)\r\n }\r\n }).catch((e) => {\r\n console.error(e);\r\n setImportErrors([Tr(\"unknown_error_message\")])\r\n }).finally(() => setProcessingUpload(false))\r\n });\r\n };\r\n const clearImportErrors = () => {\r\n setImportErrors([]);\r\n };\r\n\r\n const handleCloseSuccessPopup = () => {\r\n setOpenSuccessPopup(false);\r\n DealingsService.clearResources('dealing');\r\n DealingsService.clearResources('dealingsList');\r\n DealingsService.getList(id).then(() => {\r\n setOpenImporter(false);\r\n setOpenForm(true);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n 0}\r\n titleCentered\r\n maxWidth={'md'}\r\n fullWidth={true}\r\n onClose={clearImportErrors}\r\n >\r\n \r\n {Tr('import_upload_dialog_error')}\r\n \r\n
\r\n [(index + 1), e])}\r\n />\r\n\r\n
\r\n \r\n {Tr('close')}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {Tr('import_upload_dialog_success_line1')}\r\n \r\n \r\n {Tr('import_upload_dialog_success_line2')}\r\n \r\n
\r\n \r\n {Tr('close')}\r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nUploadImportFile.propTypes = {\r\n classes: PropTypes.any,\r\n\r\n};\r\n\r\nexport default connect((state) => ({}), {\r\n setOpenImporter,\r\n setOpenForm,\r\n setStepperState,\r\n clearResource\r\n})(UploadImportFile);","import React, {useMemo, useState} from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport AddButton from 'components/button/AddButton';\r\nimport Tr from 'translations/Translations';\r\nimport {newElement} from '../constants/initialValues'\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {withRouter} from \"react-router\"\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport ImporterForm from \"./ImporterForm\";\r\nimport {downloadImportTemplate} from \"../lib/downloadImportTemplate\";\r\nimport clsx from \"clsx\";\r\nimport UploadImportFile from \"./UploadImportFile\";\r\nimport {connect} from \"react-redux\";\r\nimport {wasEverPublished, isNationalProcedure, isEuropeProcedure} from \"libs/getDemandStatus\";\r\n\r\n\r\nconst style = theme => ({\r\n root: {}\r\n})\r\n\r\nfunction AdditionalButtons(\r\n {\r\n classes,\r\n id,\r\n formikProps,\r\n match,\r\n demandHeader\r\n }) {\r\n\r\n const demandId = match.params.id;\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const isPublished = useMemo(() => demandHeader ? wasEverPublished() : undefined, [demandHeader]);\r\n const isPublic = useMemo(() => demandHeader ? isNationalProcedure() || isEuropeProcedure() : undefined, [demandHeader]);\r\n\r\n const [confirmExportPopup, setConfirmExportPopup] = useState(false);\r\n const [downloadingInProgress, setDownloadingInProgress] = useState(false);\r\n const [uploadOpened, setUploadOpened] = useState(false);\r\n\r\n const handleAdd = () => {\r\n const elements = getObjectValue(id, formikProps.values);\r\n\r\n const lastElement = elements.reduce((prev, curr) => {\r\n if (prev.identity < curr.identity) return prev;\r\n return curr;\r\n }, {identity: 0});\r\n const nextId = lastElement.identity - 1;\r\n let newElementsList = [...elements];\r\n newElementsList.forEach((x, i) => {\r\n newElementsList[i]._open = false;\r\n });\r\n newElementsList = [\r\n ...newElementsList,\r\n newElement(nextId, demandId)\r\n ];\r\n\r\n formikProps.setFieldValue(id, newElementsList)\r\n\r\n };\r\n\r\n const hideDownloadingTemplate = () => {\r\n setDownloadingInProgress(false);\r\n };\r\n const downloadImportTemplateClick = () => {\r\n setConfirmExportPopup(false);\r\n setDownloadingInProgress(true);\r\n downloadImportTemplate(demandId, hideDownloadingTemplate, hideDownloadingTemplate);\r\n }\r\n\r\n const toggleUploadOpened = () => {\r\n setUploadOpened(uploadOpened => !uploadOpened);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n {Tr('add_part')}\r\n \r\n setConfirmExportPopup(true)}\r\n >\r\n {Tr('export_form')}\r\n \r\n \r\n {Tr('import_form')}\r\n \r\n \r\n {\r\n uploadOpened &&\r\n <>\r\n \r\n {Tr('dealings_import_step_two_upload')}\r\n \r\n \r\n {Tr('dealings_import_step_two_upload_warning')}\r\n \r\n \r\n \r\n }\r\n \r\n setConfirmExportPopup(false)}\r\n onConfirm={downloadImportTemplateClick}\r\n open={confirmExportPopup}\r\n labelConfirm='export'\r\n labelCancel='cancel'\r\n />\r\n \r\n )\r\n}\r\n\r\nAdditionalButtons.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader\r\n}), {})(withStyles(style)(withRouter(AdditionalButtons)));","import { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport { SortableElement } from 'react-sortable-hoc'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tdivider: {\r\n\t\tmarginTop: theme.spacing(1),\r\n\t\tmarginBottom: theme.spacing(1),\r\n\t}\r\n})\r\n\r\nconst SortableItem = SortableElement(({\r\n\tformikProps,\r\n\ti,\r\n\tid,\r\n\tclasses,\r\n\tchildren,\r\n\t...other\r\n}) => {\r\n\treturn children(formikProps, id, i)\r\n})\r\n\r\n\r\nSortableItem.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(SortableItem);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport { SortableContainer } from 'react-sortable-hoc';\r\nimport SortableItem from './SortableItem'\r\nimport getObjectValue from 'libs/getObjectValue';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nconst SortableList = SortableContainer(({\r\n\tclasses,\r\n\tformikProps,\r\n\tid,\r\n\tchildren\r\n}) => {\r\n\tconst elements = getObjectValue(id, formikProps.values)\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{elements.map((item, i) => (\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t
\r\n\t)\r\n})\r\n\r\nSortableList.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(SortableList);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport SortableList from './SortableList';\r\nimport {arrayMoveMutable} from 'array-move';\r\nimport getObjectValue from 'libs/getObjectValue';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction SortableContainer({\r\n\tclasses,\r\n\tformikProps,\r\n\tid,\r\n\tchildren,\r\n}) {\r\n\r\n\tconst onSortEnd = ({oldIndex, newIndex}) => {\r\n\t\tconst elements = getObjectValue(id, formikProps.values)\r\n\t\tarrayMoveMutable(elements, oldIndex, newIndex)\r\n\t\tformikProps.setFieldValue(id, elements);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nSortableContainer.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(SortableContainer);","import Tr from 'translations/Translations';\r\n\r\nexport const CONDITION_TYPE_OTHER = \"OTHER\";\r\n\r\nexport const CONDITION_TYPE = {\r\n\tCOMPETENCES: \"COMPETENCES\",\r\n\tFINANCIAL_SITUATION: \"FINANCIAL_SITUATION\",\r\n\tTECHNICAL_CAPACITY: \"TECHNICAL_CAPACITY\",\r\n\tEMPLOYMENT: \"EMPLOYMENT\",\r\n\tOTHER: CONDITION_TYPE_OTHER\r\n}\r\n\r\nexport const CONDITION_TYPE_PZP_2021 = {\r\n\tCOMPETENCES: \"COMPETENCES\",\r\n\tFINANCIAL_SITUATION: \"FINANCIAL_SITUATION\",\r\n\tTECHNICAL_CAPACITY: \"TECHNICAL_CAPACITY\",\r\n\tEMPLOYMENT: \"EMPLOYMENT\",\r\n\tCOURSE_OF_TRADE: \"COURSE_OF_TRADE\",\r\n\tOTHER: CONDITION_TYPE_OTHER\r\n}\r\n\r\nexport const CONDITIONS_LABEL = {\r\n\t[CONDITION_TYPE.COMPETENCES]: Tr('condition_type_competences'),\r\n\t[CONDITION_TYPE.FINANCIAL_SITUATION]: Tr('condition_type_financial_situation'),\r\n\t[CONDITION_TYPE.TECHNICAL_CAPACITY]: Tr('condition_type_technical_capacity'),\r\n\t[CONDITION_TYPE.EMPLOYMENT]: Tr('condition_type_employment'),\r\n\t[CONDITION_TYPE.OTHER]: Tr('other'),\r\n}\r\n\r\nexport const CONDITIONS_LABEL_PZP_2021 = {\r\n\t[CONDITION_TYPE_PZP_2021.COMPETENCES]: Tr('condition_type_competences_2'),\r\n\t[CONDITION_TYPE_PZP_2021.FINANCIAL_SITUATION]: Tr('condition_type_financial_situation'),\r\n\t[CONDITION_TYPE_PZP_2021.TECHNICAL_CAPACITY]: Tr('condition_type_technical_capacity'),\r\n\t[CONDITION_TYPE_PZP_2021.EMPLOYMENT]: Tr('condition_type_employment'),\r\n\t[CONDITION_TYPE_PZP_2021.COURSE_OF_TRADE]: Tr('condition_type_course_of_trade'),\r\n\t[CONDITION_TYPE_PZP_2021.OTHER]: Tr('other')\r\n}\r\n\r\nconst createItem = (key) => ({\r\n\tlabel: CONDITIONS_LABEL[key],\r\n\tvalue: key\r\n})\r\n\r\nconst createItem_PZP_2021 = (key) => ({\r\n\tlabel: CONDITIONS_LABEL_PZP_2021[key],\r\n\tvalue: key\r\n})\r\n\r\nexport const conditionValues_PZP_2021 = Object.keys(CONDITION_TYPE_PZP_2021).map(x => createItem_PZP_2021(x));\r\n\r\nexport default Object.keys(CONDITION_TYPE).map( x => createItem(x))","import Tr from 'translations/Translations';\r\n\r\nexport const CRYTERIUM_TYPE = {\r\n\tTIME_LIMIT: \"TIME_LIMIT\",\r\n\tGUARANTEE: \"GUARANTEE\",\r\n\tPAYMENT: \"PAYMENT\",\r\n\tOPERATING_COST: \"OPERATING_COST\",\r\n\tSERVICE: \"SERVICE\",\r\n\tCONTRACT_SECURITY: \"CONTRACT_SECURITY\",\r\n\tOWNERSHIP: \"OWNERSHIP\",\r\n\tOTHER: \"OTHER\",\r\n\tPRICE: \"PRICE\",\r\n}\r\n\r\nexport const CRYTERIUM_TYPE_LABEL = {\r\n\t[CRYTERIUM_TYPE.CONTRACT_SECURITY]: Tr('criterion_type_contract_security'),\r\n\t[CRYTERIUM_TYPE.GUARANTEE]: Tr('criterion_type_guarantee'),\r\n\t[CRYTERIUM_TYPE.OPERATING_COST]: Tr('criterion_type_operating_cost'),\r\n\t[CRYTERIUM_TYPE.OWNERSHIP]: Tr('criterion_type_ownership'),\r\n\t[CRYTERIUM_TYPE.PAYMENT]: Tr('criterion_type_payment'),\r\n\t[CRYTERIUM_TYPE.PRICE]: Tr('criterion_type_price'),\r\n\t[CRYTERIUM_TYPE.SERVICE]: Tr('criterion_type_service'),\r\n\t[CRYTERIUM_TYPE.TIME_LIMIT]: Tr('criterion_type_time_limit'),\r\n\t[CRYTERIUM_TYPE.OTHER]: Tr('other'),\r\n}\r\n\r\nconst createItem = (key) => ({\r\n\tlabel: CRYTERIUM_TYPE_LABEL[key],\r\n\tvalue: key\r\n})\r\n\r\nexport default Object.values(CRYTERIUM_TYPE).map( x => createItem(x))","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (label, value) => ({\r\n\tlabel,\r\n\tvalue\r\n})\r\n\r\nexport const VARIANT_CODE = {\r\n\tTEXT: 'TEXT',\r\n\tLIST: 'LIST',\r\n\tNUMBER: 'NUMBER',\r\n\tYESNO: 'YESNO',\r\n\tINTERVAL: 'INTERVAL',\r\n\tPRICE: 'PRICE',\r\n}\r\n\r\nexport const criteriaLabels = {\r\n\t[VARIANT_CODE.TEXT]: Tr('text'),\r\n\t[VARIANT_CODE.YESNO]: `${Tr('yes')}/${Tr('no')}`,\r\n\t[VARIANT_CODE.NUMBER]: Tr('number'),\r\n\t[VARIANT_CODE.LIST]: Tr('list'),\r\n\t[VARIANT_CODE.INTERVAL]: Tr('allocation'),\r\n\t[VARIANT_CODE.PRICE]: Tr('price'),\r\n}\r\n\r\nexport default Object.keys(criteriaLabels).map( x => createItem(criteriaLabels[x], x))\r\n","import Tr from 'translations/Translations'\r\n\r\nexport const Directions = {\r\n ASCENDING: 'ASCENDING',\r\n DESCENDING: 'DESCENDING',\r\n}\r\n\r\nexport const PriceDirections = {\r\n ...Directions,\r\n DESCENDING_BY_PRICE_ITEMS: 'DESCENDING_BY_PRICE_ITEMS'\r\n}\r\n\r\nconst createItem = (key) => ({\r\n label: Tr(`direction.${key}`),\r\n value: key,\r\n})\r\n\r\nexport const CriterionDictionaryItems = Object.keys(Directions).map(key => createItem(key));\r\nexport const PriceCriterionDictionaryItems = Object.keys(PriceDirections).map(key => createItem(key));\r\n","import VS from 'constants/ValidationShema';\r\nimport {SELECT_VALUE} from 'constants/VATItems';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport {CONDITION_TYPE_OTHER, CONDITIONS_LABEL, CONDITIONS_LABEL_PZP_2021} from 'components/popup/newCondition/constants/condition.values';\r\nimport {getDemandPZPType} from \"libs/getDemandStatus\";\r\nimport PZPType from \"constants/PZPType\";\r\nimport Tr from 'translations/Translations';\r\nimport {CRYTERIUM_TYPE, CRYTERIUM_TYPE_LABEL} from 'components/popup/newCriteria/constants/criterium.type';\r\nimport {VARIANT_CODE as CRITERIA_TYPE} from \"components/popup/newCriteria/constants/criteria.variants\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport {PriceDirections} from \"constants/DirectionsItems\";\r\nimport {SOURCE_TYPES} from \"../../../../../../../../constants/OfferSourceTypes\";\r\nimport {PriceTypeGrossFieldVisible, PriceTypeNetFieldVisible, PriceTypeVatFieldVisible} from \"../../../../../../../../constants/PriceTypes\";\r\n\r\nconst inputLimits = InputLimits.procedure.dealings;\r\n\r\nconst repeadedElement = (elements, getNameFunc) => {\r\n return elements.find(x => undefined !== elements\r\n .find(y => {\r\n if (x.identity === y.identity) return false;\r\n const xName = getNameFunc(x);\r\n const yName = getNameFunc(y);\r\n return xName === yName;\r\n }))\r\n}\r\n\r\nconst findRepeatedConditionName = (elements) => {\r\n const demandPzpType = getDemandPZPType();\r\n const conditionLabels = PZPType.PZP_2021 === demandPzpType ? CONDITIONS_LABEL_PZP_2021 : CONDITIONS_LABEL;\r\n const getName = (e) => {\r\n if (e.type === CONDITION_TYPE_OTHER) return e.otherName;\r\n return conditionLabels[e.type]\r\n }\r\n const e = repeadedElement(elements, getName)\r\n if (e === undefined) return undefined;\r\n return getName(e);\r\n}\r\n\r\nconst findRepeatedCriterionName = (elements) => {\r\n const getName = (e) => {\r\n if (e.type === CRYTERIUM_TYPE.PRICE) {\r\n if (Boolean(e.otherName)) return e.otherName;\r\n }\r\n if (e.type === CRYTERIUM_TYPE.OTHER) return e.otherName;\r\n return CRYTERIUM_TYPE_LABEL[e.type]\r\n }\r\n const e = repeadedElement(elements, getName)\r\n if (e === undefined) return undefined;\r\n return getName(e);\r\n}\r\n\r\nconst schema = (dealingsList = {}) => VS.object({\r\n\r\n form: VS.arrayOf(\r\n VS.lazy(formItem => {\r\n if (formItem === null) return VS.any();\r\n\r\n const criterions = getObjectValue('stages.0.criterions', formItem);\r\n const section = criterions.find(x => x.type === CRYTERIUM_TYPE.PRICE);\r\n const weightVisible = section && section.direction === PriceDirections.DESCENDING_BY_PRICE_ITEMS;\r\n\r\n let criteriaSum = 0;\r\n if (weightVisible) {\r\n const items = getObjectValue('items', formItem);\r\n criteriaSum = items.map(item => parseFloat(item.weight)).reduce((prev, next) => prev + next);\r\n criteriaSum = parseFloat(criteriaSum.toFixed(2))\r\n }\r\n\r\n if (formItem._touched || formItem._load) {\r\n return VS.object({\r\n name: VS.stringMax(inputLimits.NAME).nullable(),\r\n description: VS.string(),\r\n plannedContractorNumberForAgreement: 'Framework' === dealingsList.demandVariant && VS.integerMax(99999),\r\n planItemIdentity: !!dealingsList.planRequired && VS.string(),\r\n termDescription: VS.any().when(\r\n 'termOption',\r\n {\r\n is: 'text',\r\n then: VS.stringMaxNoRq(InputLimits.procedure.basicInformation.TERM_DESCRIPTION),\r\n otherwise: VS.any()\r\n }),\r\n termDate: VS.any().when(\r\n 'termOption',\r\n {\r\n is: 'date',\r\n then: VS.dateMinNoRq(new Date(), Tr(\"v_data_can_not_be_past\")),\r\n otherwise: VS.any()\r\n }),\r\n _weightSum: weightVisible ? VS.mixed().test('weightMin100', Tr('v_number_min_criteria', {min: 100}), () => {\r\n return !(criteriaSum < 100)\r\n }).test('weightMax100', Tr('v_number_max_criteria', {value: 100}), () => {\r\n return !(criteriaSum > 100)\r\n }) : VS.any(),\r\n amount: VS.lazy(x => {\r\n const s = {\r\n value: VS.amount(0, false),\r\n grossValue: VS.amount(0, false),\r\n vatRate: VS.amount(),\r\n }\r\n if (x.vatRate === SELECT_VALUE.CANCEL ||\r\n x.vatRate === SELECT_VALUE.DIFFRENT_VAT) {\r\n s.vatRate = VS.any();\r\n }\r\n if (x.vatRate === SELECT_VALUE.OTHER) {\r\n return VS.object({\r\n ...s,\r\n vatRate: VS.any(),\r\n vatRateOther: VS.amountMax100()\r\n })\r\n }\r\n return VS.object(s);\r\n }),\r\n realizationBeforeOfferAmount: VS.lazy((x) => {\r\n return VS.object({\r\n grossValue: VS.amountOptional(0, true)\r\n })\r\n }),\r\n items: VS.arrayOf(VS.lazy(item => {\r\n const shape = {\r\n quantity: VS.object({\r\n value: VS.numberMax(1000000000000000),\r\n uom: VS.string().nullable()\r\n })\r\n }\r\n\r\n shape['name'] = VS.stringMax(inputLimits.NAME).nullable();\r\n shape['description'] = VS.stringMaxNoRq(100000).nullable();\r\n\r\n if (weightVisible) {\r\n shape['weight'] = VS.amountMax100NoZero();\r\n }\r\n\r\n shape['offerSourceType'] = VS.any().test('itemFilled', Tr('item_not_filled'), (e) => {\r\n return ((!item.offerVatPredefined && SOURCE_TYPES.INITIATOR !== item.offerSourceType) || !PriceTypeVatFieldVisible(dealingsList.priceType) || !!item.offerVatRate)\r\n && (SOURCE_TYPES.INITIATOR !== item.offerSourceType || !PriceTypeNetFieldVisible(dealingsList.priceType) || !!item.offerValue)\r\n && (SOURCE_TYPES.INITIATOR !== item.offerSourceType || !PriceTypeGrossFieldVisible(dealingsList.priceType) || !!item.offerGrossValue);\r\n });\r\n\r\n return VS.object(shape);\r\n })),\r\n stages: VS.lazy(stage => {\r\n const vsObj = {\r\n //conditions: [],\r\n criterions: VS.arrayOf(VS.lazy(criterion => {\r\n const shape = {\r\n //weight: VS.amountMax100NoZero()\r\n }\r\n\r\n switch (criterion.uiType) {\r\n case CRITERIA_TYPE.LIST:\r\n const maxListPoints = Math.max(...criterion.valuesList.map(o => o.value), 0);\r\n shape.weight = VS.numberMaxMin(maxListPoints, maxListPoints, 'v_number_weight_min_max_points', 'v_number_weight_less_than_points');\r\n break;\r\n case CRITERIA_TYPE.INTERVAL:\r\n const maxRangePoints = Math.max(...criterion.intervalList.map(o => o.value), 0);\r\n shape.weight = VS.numberMaxMin(maxRangePoints, maxRangePoints, 'v_number_weight_min_max_points', 'v_number_weight_less_than_points');\r\n break;\r\n default:\r\n shape.weight = VS.numberMax(100)\r\n }\r\n\r\n return VS.object(shape);\r\n }))\r\n\r\n }\r\n const stage0 = stage[0];\r\n\r\n let criteriaSum = stage0.criterions.map(item => parseFloat(item.weight)).reduce((prev, next) => prev + next, 0);\r\n criteriaSum = parseFloat(criteriaSum.toFixed(2));\r\n\r\n vsObj['_criteriaSum'] = VS.mixed().test('weightMin100', Tr('v_number_min_criteria', {min: 100}), () => {\r\n return !(criteriaSum < 100)\r\n }).test('weightMax100', Tr('v_number_max_criteria', {value: 100}), () => {\r\n return !(criteriaSum > 100)\r\n });\r\n\r\n\r\n const conditionsElements = stage0.conditions;\r\n const conditionRepeaded = findRepeatedConditionName(conditionsElements);\r\n if (conditionRepeaded) vsObj._conditionsError = VS.immediatelyError(Tr('condition_repeats', {name: conditionRepeaded}))\r\n\r\n const criterionsElements = stage0.criterions;\r\n const criterionRepeaded = findRepeatedCriterionName(criterionsElements);\r\n if (criterionRepeaded) vsObj._criterionsError = VS.immediatelyError(Tr('criterion_repeats', {name: criterionRepeaded}))\r\n\r\n return VS.arrayOfShape(vsObj)\r\n }),\r\n categoryItemCpv: VS.arrayRequired(),\r\n\r\n })\r\n }\r\n return VS.any();\r\n }))\r\n});\r\n\r\nexport default schema;\r\n\r\n\r\n// conditions: VS.lazy(elements => {\r\n// \tlet obj = {};\r\n// \tconst name = findRepeatedConditionName(elements);\r\n// \tif (name) obj._error = Tr('condition_repeats', { name });\r\n// \treturn VS.arrayOfShape(obj)\r\n// }),","import React from 'react'\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconDeleteButton(\r\n {\r\n tooltip = Tr('delete'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconDeleteButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconDeleteButton;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport EditIcon from '@material-ui/icons/Edit'\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction WorkableIconEditButton({\r\n\ttooltip = Tr('edit'),\r\n\t...props\r\n}) {\r\n\treturn \r\n}\r\n\r\nWorkableIconEditButton.propTypes = {\r\n\texpanded: PropTypes.bool,\r\n\tworking: PropTypes.bool,\r\n\tdisabled: PropTypes.bool,\r\n\ttooltip: PropTypes.string,\r\n\thideTooltip: PropTypes.bool,\r\n\tcolor: PropTypes.string,\r\n\tonClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconEditButton;","import getObjectValue from 'libs/getObjectValue'\r\nimport {SELECT_VALUE} from 'constants/VATItems';\r\nimport VatType from 'constants/VatType';\r\nimport {SOURCE_TYPES} from 'constants/OfferSourceTypes'\r\n\r\nexport default async (dealingElement, formikProps, rootId) => {\r\n if (dealingElement === undefined) {\r\n return;\r\n }\r\n const createId = key => `${rootId}.${key}`\r\n\r\n\r\n const emptyStage = {conditions: [], criterions: [], parameters: []}\r\n const oldStage = getObjectValue(createId('stages.0'), formikProps.values, emptyStage)\r\n const _open = getObjectValue(createId('_open'), formikProps.values)\r\n const _edit = getObjectValue(createId('_edit'), formikProps.values)\r\n const _touched = getObjectValue(createId('_touched'), formikProps.values)\r\n let stage = dealingElement.stages[0];\r\n if (!stage) stage = emptyStage\r\n\r\n const concatNoDuplicates = (a, b) => a.concat(\r\n b.filter(bElement => !a.find(\r\n aElement => bElement.identity === aElement.identity\r\n ))\r\n )\r\n\r\n const {amount, items, ...other} = dealingElement;\r\n let vatRate = amount.vatRate ? amount.vatRate : SELECT_VALUE.DEFAULT;\r\n let vatType = amount.vatType;\r\n let vatRateOther = undefined;\r\n if (vatType === VatType.OTHER) {\r\n vatRateOther = vatRate;\r\n vatRate = SELECT_VALUE.OTHER;\r\n } else if (vatType !== VatType.STANDARD) {\r\n vatRateOther = 0;\r\n vatRate = vatType;\r\n }\r\n\r\n const stages = [\r\n {\r\n ...stage,\r\n conditions: concatNoDuplicates(stage.conditions, oldStage.conditions),\r\n criterions: concatNoDuplicates(stage.criterions, oldStage.criterions),\r\n parameters: concatNoDuplicates(stage.parameters, oldStage.parameters),\r\n }\r\n ];\r\n\r\n const newItems = [];\r\n items.forEach(i => {\r\n let offerVatRate = SELECT_VALUE.DEFAULT;\r\n let offerVatRateOther = undefined;\r\n if (i.offerVatPredefined || i.offerSourceType === SOURCE_TYPES.INITIATOR) {\r\n if (i.offerVatType === VatType.OTHER) {\r\n offerVatRateOther = i.offerVatValue;\r\n offerVatRate = SELECT_VALUE.OTHER;\r\n } else if (i.offerVatType !== VatType.STANDARD) {\r\n offerVatRateOther = 0;\r\n offerVatRate = i.offerVatType;\r\n } else {\r\n offerVatRate = i.offerVatValue.toString();\r\n }\r\n }\r\n newItems.push({\r\n ...i,\r\n offerVatRate,\r\n offerVatRateOther\r\n })\r\n });\r\n\r\n const newDealingElement = {\r\n ...other,\r\n amount: {\r\n ...amount,\r\n vatRate,\r\n vatRateOther,\r\n },\r\n _open,\r\n _touched,\r\n _edit,\r\n stages,\r\n items: newItems\r\n }\r\n\r\n formikProps.setFieldValue(rootId, newDealingElement)\r\n}","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport DoneIcon from '@material-ui/icons/Done'\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconConfirmButton({\r\n\ttooltip = Tr('confirm'),\r\n\t...props\r\n}) {\r\n\treturn \r\n}\r\n\r\nWorkableIconConfirmButton.propTypes = {\r\n\tworking: PropTypes.bool,\r\n\tdisabled: PropTypes.bool,\r\n\ttooltip: PropTypes.string,\r\n\thideTooltip: PropTypes.bool,\r\n\tcolor: PropTypes.string,\r\n\tonClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconConfirmButton;","import React from 'react'\r\nimport {Box, Tooltip, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport clsx from 'clsx';\r\nimport DealingsService from 'services/DealingsService';\r\nimport {withRouter} from \"react-router\";\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport WorkableIconEditButton from 'components/button/WorkableIconEditButton';\r\nimport mergeDealing from '../lib/mergeDealing';\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport WorkableIconConfirmButton from \"components/button/WorkableIconConfirmButton\";\r\n\r\nconst limits = InputLimits.procedure.dealings;\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*:nth-child(1)': {\r\n flexGrow: 1,\r\n }\r\n },\r\n rootEdit: {\r\n '&>*:nth-child(2)': {\r\n flexGrow: 1,\r\n paddingLeft: theme.spacing(2),\r\n }\r\n },\r\n editInput: {},\r\n marginLeft: {\r\n marginLeft: theme.spacing(2),\r\n },\r\n title: {\r\n marginLeft: theme.spacing(),\r\n wordBreak: 'break-all',\r\n },\r\n rotate: {\r\n transform: 'rotate(180deg)'\r\n },\r\n cursorPointer: {\r\n cursor: 'pointer'\r\n }\r\n})\r\n\r\nfunction ElementTitle(\r\n {\r\n classes,\r\n index,\r\n id,\r\n onDelete,\r\n onOpen,\r\n formikProps,\r\n open,\r\n disableDelete,\r\n match,\r\n }) {\r\n\r\n const createId = (key) => `${id}.${key}`;\r\n const elementId = getObjectValue(createId('identity'), formikProps.values)\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const _editId = `${id}._edit`;\r\n const _touchedId = `${id}._touched`;\r\n const editTitle = getObjectValue(_editId, formikProps.values, false)\r\n const setEditTitle = x => {\r\n formikProps.setFieldValue(_editId, x);\r\n formikProps.setFieldValue(_touchedId, true);\r\n }\r\n\r\n const titleId = createId('name');\r\n const title = getObjectValue(titleId, formikProps.values)\r\n const titleError = getObjectValue(titleId, formikProps.errors)\r\n const titleTouched = getObjectValue(titleId, formikProps.touched)\r\n\r\n const demendId = match.params.id;\r\n\r\n const handleEdit = () => {\r\n if (editTitle && !(Boolean(titleError) && titleTouched)) {\r\n setEditTitle(false)\r\n } else if (!editTitle) {\r\n DealingsService.get(demendId, elementId).then(res => {\r\n mergeDealing(res, formikProps, id);\r\n setEditTitle(true);\r\n })\r\n }\r\n }\r\n\r\n const errors = getObjectValue(id, formikProps.errors, null);\r\n const touched = getObjectValue(id, formikProps.touched, null);\r\n\r\n const showTitleComponent = () => (\r\n \r\n {title}\r\n \r\n )\r\n\r\n const editTitleComponent = () => (\r\n \r\n )\r\n\r\n return (\r\n \r\n
\r\n \r\n {index + 1}.\r\n {!editTitle && showTitleComponent()}\r\n \r\n
\r\n {editTitle && editTitleComponent()}\r\n {(errors && touched) &&\r\n \r\n \r\n \r\n }\r\n \r\n {editTitle ?\r\n :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nElementTitle.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(withRouter(ElementTitle));","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET} from 'libs/RestRequest';\r\n\r\nconst getRequired = async () => {\r\n return await _get();\r\n};\r\n\r\nconst getWithEmptyOption = async () => {\r\n const list = await _get();\r\n return [{label: '---', value: ''}, ...list];\r\n};\r\n\r\nconst _get = async () => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.MEASURE_UNITS);\r\n resp.sort((a, b) => a.label.localeCompare(b.label));\r\n return resp;\r\n } catch (error) {\r\n }\r\n};\r\n\r\n\r\nexport default {\r\n getRequired, getWithEmptyOption\r\n}","import React, {useEffect, useState} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport Select from 'components/Select';\r\nimport GridBlock from 'components/GridBlock';\r\nimport MeasureUnitService from 'services/MeasureUnitService';\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE';\r\nimport Loading from \"components/Loading\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tflexBasis: 0,\r\n\t\t\t'&:last-child': {\r\n\t\t\t\tflexGrow: 2,\r\n\t\t\t\tmarginLeft: theme.spacing(2),\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n})\r\n\r\nfunction Units({\r\n\tclasses,\r\n\tformikProps,\r\n\tidPrefix,\r\n\tdisabled,\r\n\tunitDisabled\r\n}) {\r\n\tconst quantityId = !!idPrefix ? `${idPrefix}.quantity.value` : `quantity.value`;\r\n\tconst unitId = !!idPrefix ? `${idPrefix}.quantity.uom` : `quantity.uom`\r\n\tconst [measureUnits, setMeasureUnits] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tMeasureUnitService.getRequired().then((resp) => setMeasureUnits(resp));\r\n\t}, []);\r\n\r\n\tif (!measureUnits) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nUnits.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(Units);","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport VisibilityIcon from '@material-ui/icons/Visibility';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconPreviewButton(\r\n {\r\n tooltip = Tr('preview'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconPreviewButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconPreviewButton;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport AddIcon from '@material-ui/icons/AddCircle'\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction WorkableIconAddButton({\r\n\ttooltip = Tr('add'),\r\n\t...props\r\n}) {\r\n\treturn \r\n}\r\n\r\nWorkableIconAddButton.propTypes = {\r\n\texpanded: PropTypes.bool,\r\n\tworking: PropTypes.bool,\r\n\tdisabled: PropTypes.bool,\r\n\ttooltip: PropTypes.string,\r\n\thideTooltip: PropTypes.bool,\r\n\tcolor: PropTypes.string,\r\n\tonClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconAddButton;","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Units from './Units';\r\nimport GridBlock from 'components/GridBlock';\r\nimport TextInput from \"components/TextInput\";\r\nimport Tr from \"translations/Translations\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport clsx from 'clsx';\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport Select from \"components/Select\";\r\nimport BooleanItems from \"constants/BooleanItems\";\r\nimport OfferSourceTypes from \"constants/OfferSourceTypes\";\r\nimport {ItemTypes} from \"../../constants/itemTypes\";\r\nimport WorkableIconAddButton from \"components/button/WorkableIconAddButton\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*': {\r\n flexBasis: 0,\r\n\r\n '&:not(:first-child)': {\r\n marginLeft: theme.spacing(2),\r\n },\r\n '&:last-child': {\r\n marginLeft: theme.spacing(2),\r\n },\r\n '&:nth-child(1)': {\r\n flexGrow: 4\r\n },\r\n '&:nth-child(2)': {\r\n flexGrow: 3\r\n },\r\n '&:nth-child(3)': {\r\n flexGrow: 1\r\n },\r\n '&:nth-child(4)': {\r\n flexGrow: 1\r\n },\r\n '&:nth-child(5)': {\r\n flexGrow: 1\r\n },\r\n '&:nth-child(6)': {\r\n flexGrow: 1.6\r\n }\r\n }\r\n },\r\n rootWeight: {\r\n '&>*': {\r\n '&:nth-child(7)': {\r\n flexGrow: 1\r\n },\r\n }\r\n }\r\n})\r\n\r\nfunction SingleVariant(\r\n {\r\n classes,\r\n formikProps,\r\n id,\r\n handleEditItem,\r\n weightVisible\r\n }) {\r\n\r\n const nameId = `${id}.0.name`;\r\n const typeId = `${id}.0.type`;\r\n const allowQuantityEditInOfferId = `${id}.0.allowQuantityEditInOffer`;\r\n const predefinedVatId = `${id}.0.offerVatPredefined`;\r\n const offerSourceTypeId = `${id}.0.offerSourceType`;\r\n const weightId = `${id}.0.weight`;\r\n const optionalItem = getObjectValue(`${id}.0.optionalItem`, formikProps.values, null);\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {weightVisible && }\r\n {editable ?\r\n handleEditItem(0)}\r\n />\r\n :\r\n handleEditItem(0)}\r\n />\r\n }\r\n handleEditItem(0, true)}\r\n disabled={!editable || !!optionalItem}\r\n />\r\n
\r\n \r\n )\r\n}\r\n\r\nSingleVariant.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(SingleVariant);","import React from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Units from './Units';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport removeFormikListElement from 'libs/removeFormikListElement';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport clsx from 'clsx';\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport BooleanItems from \"constants/BooleanItems\";\r\nimport Select from \"components/Select\";\r\nimport OfferSourceTypes from \"constants/OfferSourceTypes\";\r\nimport {ItemTypes} from \"../../constants/itemTypes\";\r\nimport WorkableIconAddButton from \"components/button/WorkableIconAddButton\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*': {\r\n flexBasis: 0,\r\n\r\n '&:not(:first-child)': {\r\n marginLeft: theme.spacing(2),\r\n },\r\n '&:nth-child(2)': {\r\n flexGrow: 4\r\n },\r\n '&:nth-child(3)': {\r\n flexGrow: 2\r\n },\r\n '&:nth-child(4)': {\r\n flexGrow: 1\r\n },\r\n '&:nth-child(5)': {\r\n flexGrow: 1\r\n },\r\n '&:nth-child(6)': {\r\n flexGrow: 1\r\n },\r\n '&:nth-child(7)': {\r\n flexGrow: 1.6\r\n }\r\n }\r\n },\r\n rootWeight: {\r\n '&>*': {\r\n '&:nth-child(8)': {\r\n flexGrow: 1\r\n },\r\n }\r\n }\r\n})\r\n\r\nfunction MultiVariant(\r\n {\r\n classes,\r\n formikProps,\r\n id,\r\n index,\r\n option = false,\r\n handleEditItem,\r\n weightVisible,\r\n showConfirmBeforeDelete\r\n }) {\r\n const objectPath = option ? `${id}.${index}.optionalItem` : `${id}.${index}`;\r\n const nameId = `${objectPath}.name`;\r\n const typeId = `${objectPath}.type`;\r\n const allowQuantityEditInOfferId = `${objectPath}.allowQuantityEditInOffer`;\r\n const predefinedVatId = `${objectPath}.offerVatPredefined`;\r\n const offerSourceTypeId = `${objectPath}.offerSourceType`;\r\n const weightId = `${objectPath}.weight`;\r\n const optionalItem = getObjectValue(`${objectPath}.optionalItem`, formikProps.values, null);\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const oneBaseItem = getObjectValue(id, formikProps.values, []).length <= 1;\r\n\r\n const handleDelete = () => {\r\n if (option) {\r\n formikProps.setFieldValue(objectPath, null);\r\n } else if (!!optionalItem) {\r\n showConfirmBeforeDelete(id, index);\r\n } else {\r\n removeFormikListElement(formikProps, id, index)\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {option ? '-' : (index + 1)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {weightVisible && }\r\n {editable ?\r\n handleEditItem(index, option)}\r\n />\r\n :\r\n handleEditItem(index, option)}\r\n />\r\n }\r\n \r\n handleEditItem(index, true)}\r\n disabled={!editable || option || !!optionalItem}\r\n />\r\n \r\n )\r\n}\r\n\r\nMultiVariant.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(MultiVariant);","import OFFER_VAT_ITEMS, {SELECT_VALUE} from \"constants/VATItems\";\r\nimport TextInput from \"./TextInput\";\r\nimport Tr from \"translations/Translations\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport {IconButton, InputAdornment, withStyles} from \"@material-ui/core\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Select from \"./Select\";\r\nimport React from \"react\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n\r\n },\r\n grid: {\r\n '&>*': {\r\n flexGrow: 1,\r\n '&:not(:first-child)': {\r\n marginLeft: theme.spacing(2)\r\n }\r\n }\r\n },\r\n iconButton: {\r\n padding: theme.spacing(1) / 2,\r\n },\r\n otherTextInput: {\r\n '& input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button': {\r\n '-webkit-appearance': 'none',\r\n margin: 0\r\n }\r\n }\r\n})\r\n\r\nfunction VatField({\r\n classes,\r\n formikProps,\r\n required,\r\n editable,\r\n title = 'vat'\r\n}) {\r\n const vatRateId = 'offerVatRate';\r\n const vatRateOtherId = 'offerVatRateOther';\r\n const vatOption = getObjectValue(vatRateId, formikProps.values, null);\r\n\r\n const closeTextInput = () => {\r\n formikProps.setFieldValue(vatRateId, \"\")\r\n }\r\n\r\n return (\r\n <>\r\n {vatOption === SELECT_VALUE.OTHER ?\r\n \r\n %\r\n \r\n \r\n \r\n \r\n }\r\n required={required}\r\n />\r\n :\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default withStyles(style)(VatField);","import Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport React from \"react\";\r\nimport useId from \"hooks/useId\";\r\nimport Form from \"components/Form\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Units from \"./Units\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport InputLimits from \"constants/InputLimits\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport {withStyles} from '@material-ui/core';\r\nimport {connect} from \"react-redux\";\r\nimport BooleanItems from \"constants/BooleanItems\";\r\nimport {SOURCE_TYPES} from \"constants/OfferSourceTypes\";\r\nimport OfferSourceTypes from \"constants/OfferSourceTypes\";\r\nimport Select from \"components/Select\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport VatField from \"components/VatField\";\r\nimport {SELECT_VALUE} from \"constants/VATItems\";\r\nimport {PriceTypeVatFieldVisible, PriceTypeNetFieldVisible, PriceTypeGrossFieldVisible} from \"constants/PriceTypes\";\r\nimport NetGrossField from \"components/NetGrossField\";\r\nimport {ItemTypes} from \"../../constants/itemTypes\";\r\n\r\nconst style = theme => ({\r\n actions: {\r\n marginTop: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction ItemPopup(\r\n {\r\n editable,\r\n onClose,\r\n onSubmit,\r\n itemElement,\r\n weightVisible,\r\n classes,\r\n formSubmit,\r\n priceType\r\n }) {\r\n const formId = useId();\r\n const inputLimits = InputLimits.procedure.dealings;\r\n const option = !!itemElement.baseItemId;\r\n\r\n const handleClose = () => {\r\n onClose();\r\n }\r\n\r\n const handleSave = () => {\r\n formSubmit[formId]();\r\n }\r\n\r\n const handleSubmit = (values) => {\r\n onSubmit(values);\r\n }\r\n\r\n const validationSchema = (priceType) => {\r\n return VS.object({\r\n name: VS.stringMax(inputLimits.NAME).nullable(),\r\n description: VS.stringMaxNoRq(100000).nullable(),\r\n quantity: VS.object({\r\n value: VS.numberMax(1000000000000000),\r\n uom: VS.string().nullable()\r\n }),\r\n type: VS.string(),\r\n offerVatPredefined: VS.string(),\r\n offerSourceType: VS.string(),\r\n offerValue: VS.any().when(\"offerSourceType\", {\r\n is: offerSourceType => SOURCE_TYPES.INITIATOR === offerSourceType && PriceTypeNetFieldVisible(priceType),\r\n then: VS.amount(0, false),\r\n otherwise: VS.any()\r\n }),\r\n offerVatRate: VS.any().when([\"offerVatPredefined\", \"offerSourceType\"], {\r\n is: (offerVatPredefined, offerSourceType) => {\r\n return offerVatPredefined === true || offerVatPredefined === 'true' || (SOURCE_TYPES.INITIATOR === offerSourceType && PriceTypeVatFieldVisible(priceType))\r\n },\r\n then: VS.string(),\r\n otherwise: VS.any()\r\n }),\r\n offerVatRateOther: VS.any().when([\"offerVatPredefined\", \"offerSourceType\", \"offerVatRate\"], {\r\n is: (offerVatPredefined, offerSourceType, offerVatRate) => {\r\n return (offerVatPredefined === true || offerVatPredefined === 'true' || SOURCE_TYPES.INITIATOR === offerSourceType) && offerVatRate === SELECT_VALUE.OTHER\r\n },\r\n then: VS.amountMax100(),\r\n otherwise: VS.any()\r\n }),\r\n offerGrossValue: VS.any().when(\"offerSourceType\", {\r\n is: offerSourceType => SOURCE_TYPES.INITIATOR === offerSourceType && PriceTypeGrossFieldVisible(priceType),\r\n then: VS.amount(0, false),\r\n otherwise: VS.any()\r\n }),\r\n weight: weightVisible ? VS.amountMax100NoZero() : VS.amountMax100Optional()\r\n });\r\n }\r\n\r\n return (\r\n \r\n \r\n {(formikProps) => (\r\n <>\r\n \r\n \r\n \r\n \r\n {option && }\r\n {!option && }\r\n {!option && getObjectValue('offerVatPredefined', formikProps.values, false) &&\r\n \r\n }\r\n {!option && }\r\n {!option && getObjectValue('offerSourceType', formikProps.values, SOURCE_TYPES.SUPPLIER) === SOURCE_TYPES.INITIATOR &&\r\n \r\n }\r\n {!option && }\r\n {weightVisible && }\r\n \r\n )}\r\n \r\n
\r\n {editable && }\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(withStyles(style)(ItemPopup));","import React, {useEffect, useState} from 'react'\r\nimport {Divider, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport SingleVariant from './positions/SingleVariant';\r\nimport MultiVariant from './positions/MultiVariant';\r\nimport Tr from 'translations/Translations';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport AddButton from 'components/button/AddButton';\r\nimport {newItem} from '../constants/initialValues';\r\nimport ItemPopup from './positions/ItemPopup';\r\nimport _ from 'lodash';\r\nimport {CRYTERIUM_TYPE} from \"components/popup/newCriteria/constants/criterium.type\";\r\nimport {PriceDirections} from \"constants/DirectionsItems\";\r\nimport {ITEM_TYPES} from \"../constants/itemTypes\";\r\nimport Confirm from \"../../../../../../../../components/popup/confirm/Confirm\";\r\nimport removeFormikListElement from \"../../../../../../../../libs/removeFormikListElement\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n width: '100%',\r\n '&>*': {\r\n width: 'inherit'\r\n }\r\n },\r\n header: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n divider: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n }\r\n})\r\n\r\nfunction PositionsSection({\r\n classes,\r\n formikProps,\r\n id,\r\n dealingId,\r\n priceType\r\n}) {\r\n\r\n const [editingItem, setEditingItem] = useState(null);\r\n const [deleteConfirm, setDeleteConfirm] = useState(false);\r\n const [deleteFunctionParams, setDeleteFunctionParams] = useState(null);\r\n\r\n const criterions = getObjectValue(`${dealingId}.stages.0.criterions`, formikProps.values, [])\r\n const section = criterions.find(x => x.type === CRYTERIUM_TYPE.PRICE);\r\n const weightVisible = section && section.direction === PriceDirections.DESCENDING_BY_PRICE_ITEMS;\r\n const elements = getObjectValue(id, formikProps.values)\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const criteriaSumError = getObjectValue(`${dealingId}._weightSum`, formikProps.errors, [])\r\n const isError = !!criteriaSumError;\r\n\r\n const handleAddItem = () => {\r\n setEditingItem(_.cloneDeep(newItem));\r\n }\r\n\r\n const handleShowItem = (index, option) => {\r\n let clonedItem;\r\n if (option) {\r\n if (elements[index].optionalItem) {\r\n clonedItem = _.cloneDeep(elements[index].optionalItem);\r\n } else {\r\n clonedItem = _.cloneDeep(newItem);\r\n clonedItem.type = ITEM_TYPES.OPTIONAL;\r\n clonedItem.quantity.uom = elements[index].quantity.uom;\r\n }\r\n clonedItem.baseItemId = elements[index].identity;\r\n clonedItem.baseItemName = elements[index].name;\r\n } else {\r\n clonedItem = _.cloneDeep(elements[index]);\r\n }\r\n setEditingItem(clonedItem);\r\n }\r\n\r\n const handleCloseEditItem = () => {\r\n setEditingItem(null);\r\n }\r\n\r\n const handleEditItem = (values) => {\r\n const dealing = getObjectValue(`${dealingId}.identity`, formikProps.values);\r\n if (!!editingItem.baseItemId) {\r\n const index = elements.findIndex(x => x.identity === editingItem.baseItemId);\r\n elements[index].optionalItem = {\r\n ...values,\r\n identity: !!values.identity && values.identity > 0 ? values.identity : -1,\r\n quantity: {\r\n ...values.quantity,\r\n uom: elements[index].quantity.uom\r\n },\r\n offerVatPredefined: elements[index].offerVatPredefined,\r\n offerSourceType: elements[index].offerSourceType,\r\n offerValue: elements[index].offerValue,\r\n offerVatRate: elements[index].offerVatRate,\r\n offerVatRateOther: elements[index].offerVatRateOther,\r\n offerGrossValue: elements[index].offerGrossValue,\r\n allowQuantityEditInOffer: elements[index].allowQuantityEditInOffer\r\n }\r\n } else if (!editingItem.identity) {\r\n const mindIdFound = elements.map(e => e.identity).reduce((x1, x2) => x1 < x2 ? x1 : x2);\r\n const newId = mindIdFound < 0 ? (mindIdFound - 1) : -1;\r\n elements.push({\r\n ...values,\r\n identity: newId,\r\n dealing: dealing\r\n });\r\n } else {\r\n const index = elements.findIndex(x => x.identity === editingItem.identity);\r\n const oldItem = elements[index];\r\n elements[index] = {\r\n ...values,\r\n identity: oldItem.identity,\r\n dealing: oldItem.dealing,\r\n optionalItem: oldItem.optionalItem\r\n };\r\n if (elements[index].optionalItem) {\r\n elements[index].optionalItem.quantity.uom = elements[index].quantity.uom;\r\n elements[index].optionalItem.offerVatPredefined = elements[index].offerVatPredefined;\r\n elements[index].optionalItem.offerSourceType = elements[index].offerSourceType;\r\n elements[index].optionalItem.offerValue = elements[index].offerValue;\r\n elements[index].optionalItem.offerVatRate = elements[index].offerVatRate;\r\n elements[index].optionalItem.offerVatRateOther = elements[index].offerVatRateOther;\r\n elements[index].optionalItem.offerGrossValue = elements[index].offerGrossValue;\r\n elements[index].optionalItem.allowQuantityEditInOffer = elements[index].allowQuantityEditInOffer;\r\n }\r\n }\r\n formikProps.setFieldValue(id, elements);\r\n setEditingItem(null);\r\n }\r\n\r\n const renderSingle = () => {\r\n return (\r\n <>\r\n \r\n \r\n )\r\n }\r\n\r\n useEffect(() => {\r\n if (elements.length < 2) {\r\n const elId = `${id}.0.name`\r\n formikProps.setFieldTouched(elId, false)\r\n }\r\n // eslint-disable-next-line\r\n }, [elements.length]);\r\n\r\n const showDeleteConfirm = (idParam, indexParam) => {\r\n setDeleteConfirm(true);\r\n setDeleteFunctionParams([idParam, indexParam]);\r\n }\r\n\r\n const doDeleteAfterConfirm = () => {\r\n setDeleteConfirm(false);\r\n removeFormikListElement(formikProps, deleteFunctionParams[0], deleteFunctionParams[1])\r\n }\r\n\r\n const renderMulti = () => {\r\n return (\r\n <>\r\n \r\n \r\n {Tr('positions')}({elements.length})\r\n \r\n {\r\n elements.map((item, i) => {\r\n return (\r\n \r\n \r\n {item.optionalItem &&\r\n \r\n }\r\n \r\n )\r\n })\r\n }\r\n \r\n )\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {elements.length < 2 && elements[0].optionalItem == null ? renderSingle() : renderMulti()}\r\n \r\n \r\n {Tr('add_position')}\r\n \r\n {(isError) &&\r\n \r\n {criteriaSumError}\r\n \r\n }\r\n <>\r\n \r\n \r\n \r\n {!!editingItem && }\r\n {deleteConfirm && {\r\n setDeleteConfirm(false);\r\n setDeleteFunctionParams(null);\r\n }}\r\n confirmText=\"positions_with_option_delete\"\r\n />}\r\n )\r\n}\r\n\r\nPositionsSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(PositionsSection);","import React from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport clsx from 'clsx';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport WorkableIconEditButton from 'components/button/WorkableIconEditButton';\r\n\r\nconst style = theme => ({\r\n root: {\r\n marginRight: theme.spacing(1),\r\n },\r\n disableDelete: {\r\n marginRight: theme.spacing(3)\r\n }\r\n})\r\n\r\nfunction ConditionElement(\r\n {\r\n classes,\r\n name,\r\n index,\r\n id,\r\n formikProps,\r\n onEdit,\r\n onDelete,\r\n disableDelete = false,\r\n disabled,\r\n }) {\r\n\r\n return (\r\n \r\n \r\n {name}\r\n \r\n \r\n {!disableDelete &&\r\n onDelete(index)}\r\n disabled={disabled}\r\n />\r\n }\r\n \r\n )\r\n}\r\n\r\nConditionElement.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ConditionElement);","import React from 'react'\r\nimport {Checkbox as MuiCheckbox, FormHelperText, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport SimpleTable from 'components/complex/simpleTable/SimpleTable';\r\nimport Checkbox from 'components/Checkbox';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport clsx from \"clsx\";\r\n\r\n\r\nconst style = theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n textBold: {\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n samllColumn: theme.components.table.lpColumn,\r\n orderColumn: theme.components.table.ipColumn,\r\n checkboxColumn: {\r\n width: theme.spacing()\r\n },\r\n cells: {\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n },\r\n checkbox: {\r\n padding: 0,\r\n },\r\n cursor: {\r\n cursor: \"pointer\"\r\n }\r\n})\r\n\r\nfunction PartsTable(\r\n {\r\n classes,\r\n className,\r\n formikProps,\r\n id,\r\n elementList = [],\r\n label,\r\n orderLabel = \"part_number\",\r\n editable = true,\r\n required=true,\r\n disabled\r\n }) {\r\n const elements = getObjectValue(id, formikProps.values, []);\r\n const errorValue = getObjectValue(id, formikProps.errors, '');\r\n const touched = getObjectValue(id, formikProps.touched, false);\r\n const isAllChecked = elementList.length > 0 && !elementList.find(x => elements[x.identity] !== true)\r\n\r\n const handleHeadCheckboxChange = (e, value) => {\r\n const newElements = elementList.reduce((acc, x) => {\r\n return {\r\n ...acc,\r\n [x.identity]: value\r\n }\r\n }, {})\r\n formikProps.setFieldValue(id, newElements)\r\n }\r\n\r\n const isError = editable && !!errorValue && Boolean(touched);\r\n const helperText = errorValue || ' ';\r\n const hasOrder = !!(elementList?.[0]?.order);\r\n return (\r\n \r\n \r\n {label ? label : Tr('assign_to_part')}{required ? '*' : ''}\r\n \r\n ,\r\n (hasOrder ? Tr(orderLabel) : Tr('column_lp')),\r\n Tr('name')\r\n ]}\r\n items={elementList.map((x, i) => {\r\n return [\r\n ,\r\n ,\r\n ,\r\n ]\r\n })}\r\n cellClassName={classes.cells}\r\n columnClasses={[\r\n classes.checkboxColumn,\r\n hasOrder ? classes.orderColumn : classes.samllColumn\r\n ]}\r\n />\r\n {isError && {helperText}}\r\n \r\n )\r\n}\r\n\r\nPartsTable.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(PartsTable);\r\n","import * as Yup from 'yup'\r\nimport { CONDITION_TYPE_OTHER } from './condition.values'\r\nimport ValidationShema from 'constants/ValidationShema';\r\nimport Tr from 'translations/Translations';\r\nimport ImputLimits from 'constants/InputLimits';\r\n\r\nconst limits = ImputLimits.procedure.condition;\r\n\r\nexport default (selectedItems) => Yup.lazy(values => {\r\n\tif (values.type !== CONDITION_TYPE_OTHER) {\r\n\t\treturn Yup.object()\r\n\t}\r\n\tconst reg = '^(?!(' + selectedItems.map(x => x.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|')+ ')$).*$';\r\n\tconst otherNameRegExp = new RegExp(reg)\r\n\treturn Yup.object().shape({\r\n\t\totherName: ValidationShema.stringExactlyMax(\r\n\t\t\totherNameRegExp,\r\n\t\t\tTr('v_condition_exist'),\r\n\t\t\tlimits.OTHER_NAME\r\n\t\t)\r\n\t})\r\n})","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport Select from 'components/Select';\r\nimport conditionValues, {CONDITION_TYPE_OTHER, CONDITIONS_LABEL, CONDITIONS_LABEL_PZP_2021, conditionValues_PZP_2021} from './constants/condition.values';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport PartsTable from 'components/PartsTable';\r\nimport validationSchema from './constants/validation.form'\r\nimport ImputLimits from 'constants/InputLimits';\r\nimport {getDemandPZPType, isDemandPreparing} from \"libs/getDemandStatus\";\r\nimport PZPType from \"constants/PZPType\";\r\n\r\nconst limits = ImputLimits.procedure.condition;\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t},\r\n\tuploadFile: {\r\n\t\tmarginBottom: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction ConditionForm({\r\n\tclasses,\r\n\tonSubmit = () => { },\r\n\tid,\r\n\tpartId,\r\n\tinitValues,\r\n\telementList,\r\n\tselectedItems,\r\n\teditable,\r\n}) {\r\n\r\n\tconst demandPzpType = getDemandPZPType();\r\n\tconst conditionLabels = PZPType.PZP_2021 === demandPzpType ? CONDITIONS_LABEL_PZP_2021 : CONDITIONS_LABEL;\r\n\tconst conditionValuesDict = PZPType.PZP_2021 === demandPzpType ? conditionValues_PZP_2021 : conditionValues;\r\n\r\n\tconst getInitialValues = (typeElements) => {\r\n\t\tif (initValues !== undefined) {\r\n\t\t\treturn {\r\n\t\t\t\t...initValues,\r\n\t\t\t\tparts: {\r\n\t\t\t\t\t[partId]: true,\r\n\t\t\t\t},\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn {\r\n\t\t\ttype: typeElements[0].value,\r\n\t\t\tdescription: '',\r\n\t\t\tparts: {\r\n\t\t\t\t[partId]: true,\r\n\t\t\t},\r\n\t\t\totherName: '',\r\n\t\t\tfile: null,\r\n\t\t}\r\n\t}\r\n\r\n\tconst getNames = () => {\r\n\t\tlet selected = selectedItems.map(x => {\r\n\t\t\tif (x.type === CONDITION_TYPE_OTHER) return x.otherName;\r\n\t\t\treturn conditionLabels[x.type];\r\n\t\t})\r\n\t\tif (initValues !== undefined) {\r\n\t\t\tlet initValuesName = conditionLabels[initValues.type];\r\n\t\t\tif (initValues.type === CONDITION_TYPE_OTHER) {\r\n\t\t\t\tinitValuesName = initValues.otherName;\r\n\t\t\t}\r\n\t\t\tvar index = selected.indexOf(initValuesName);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tselected.splice(index, 1);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn selected;\r\n\t}\r\n\r\n\r\n\tconst typeElements = conditionValuesDict.reduce((acc, item) => {\r\n\t\tif (item.value === CONDITION_TYPE_OTHER) return [...acc, item];\r\n\t\tif (initValues !== undefined) {\r\n\t\t\tif (item.value === initValues.type) {\r\n\t\t\t\treturn [...acc, item]\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (selectedItems.find(x => x.type === item.value)) {\r\n\t\t\treturn acc;\r\n\t\t}\r\n\t\treturn [...acc, item]\r\n\t}, [])\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{(formikProps) => (\r\n\t\t\t\t<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t{formikProps.values.type === CONDITION_TYPE_OTHER &&\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{/*\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t*/}\r\n\t\t\t\t\t{elementList.length > 1 &&\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t)\r\n}\r\n\r\nConditionForm.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ConditionForm);","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport useId from 'hooks/useId';\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport {connect} from 'react-redux'\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport ConditionForm from './ConditionForm';\r\n\r\nconst style = theme => ({\r\n root: {}\r\n})\r\n\r\nfunction NewCondition(\r\n {\r\n classes,\r\n onAdd,\r\n onClose,\r\n formSubmit,\r\n \tpartId,\r\n initValues,\r\n elementList,\r\n selectedItems,\r\n showParts\r\n }) {\r\n const formId = useId();\r\n\r\n const handleClose = () => {\r\n onClose();\r\n }\r\n\r\n const handleSubmit = () => {\r\n formSubmit[formId]()\r\n }\r\n\r\n const handleAdd = (values) => {\r\n onAdd(values);\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n {showParts && }\r\n
\r\n \r\n )\r\n}\r\n\r\nNewCondition.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(withStyles(style)(NewCondition));","\r\nconst setObjectValue = (idArray, obj, value) => {\r\n\tconst id = idArray.shift();\r\n\tif(idArray.length > 0){\r\n\t\tlet subObj = setObjectValue(idArray, obj[id], value);\r\n\t\tobj[id] = subObj;\r\n\t\treturn obj;\r\n\t} else {\r\n\t\tobj[id] = value;\r\n\t\treturn obj;\r\n\t}\r\n}\r\n\r\nexport default (id, obj, value) => {\r\n\tif(id === undefined) return;\r\n\tlet idArray = id.split('.')\r\n\tsetObjectValue(idArray, obj, value);\r\n};","\r\nexport default {\r\n\tPARAMETERS: \"parameters\",\r\n\tCRITERIONS: \"criterions\",\r\n\tCONDITIONS: \"conditions\",\r\n\tITEM_PARAMETERS: \"itemParameters\"\r\n}","import getObjectValue from 'libs/getObjectValue';\r\nimport reduxStore from 'redux/store'\r\nimport DealingsService from 'services/DealingsService';\r\nimport {setSaveStatusClosed, setSaveStatusLoading} from 'redux/actions';\r\nimport setObjectValue from 'libs/setObjectValue';\r\nimport _ from 'lodash';\r\nimport stageValues from '../constants/stage.values';\r\nimport {CONDITION_TYPE_OTHER, CONDITIONS_LABEL, CONDITIONS_LABEL_PZP_2021} from 'components/popup/newCondition/constants/condition.values';\r\nimport {CRYTERIUM_TYPE, CRYTERIUM_TYPE_LABEL} from 'components/popup/newCriteria/constants/criterium.type';\r\nimport {getDemandPZPType} from \"libs/getDemandStatus\";\r\nimport PZPType from \"constants/PZPType\";\r\n\r\nconst doElement = (critArray, editedCriterion, originalCriterion, stageName, dealingId, doDelete) => {\r\n const _formikCritArrayCopy = _.cloneDeep(critArray);\r\n const _editedCritCopy = _.cloneDeep(editedCriterion);\r\n const demandPzpType = getDemandPZPType();\r\n const conditionLabels = PZPType.PZP_2021 === demandPzpType ? CONDITIONS_LABEL_PZP_2021 : CONDITIONS_LABEL;\r\n if (!originalCriterion) {\r\n //dodanie nowego kryterium, więc nie mamy \"zmienianego\"\r\n originalCriterion = _editedCritCopy;\r\n }\r\n\r\n let oldFieldIndex;\r\n\r\n switch (stageName) {\r\n case stageValues.CONDITIONS:\r\n oldFieldIndex = _formikCritArrayCopy.findIndex(x => {\r\n if (originalCriterion.type === CONDITION_TYPE_OTHER) {\r\n if (x.type === CONDITION_TYPE_OTHER) {\r\n return originalCriterion.otherName === x.otherName;\r\n } else {\r\n return originalCriterion.otherName === conditionLabels[x.type];\r\n }\r\n } else {\r\n if (x.type === CONDITION_TYPE_OTHER) {\r\n return conditionLabels[originalCriterion.type] === x.otherName\r\n } else {\r\n return originalCriterion.type === x.type\r\n }\r\n }\r\n })\r\n break;\r\n case stageValues.CRITERIONS:\r\n oldFieldIndex = _formikCritArrayCopy.findIndex(x => {\r\n if (originalCriterion.type === CRYTERIUM_TYPE.OTHER || originalCriterion.type === CRYTERIUM_TYPE.PRICE) {\r\n if (x.type === CRYTERIUM_TYPE.OTHER || x.type === CRYTERIUM_TYPE.PRICE) {\r\n return originalCriterion.otherName === x.otherName;\r\n } else {\r\n return originalCriterion.otherName === CRYTERIUM_TYPE_LABEL[x.type];\r\n }\r\n } else {\r\n if (x.type === CRYTERIUM_TYPE.OTHER || x.type === CRYTERIUM_TYPE.PRICE) {\r\n return CRYTERIUM_TYPE_LABEL[originalCriterion.type] === x.otherName;\r\n } else {\r\n return originalCriterion.type === x.type\r\n }\r\n }\r\n });\r\n\r\n break;\r\n case stageValues.PARAMETERS:\r\n case stageValues.ITEM_PARAMETERS:\r\n oldFieldIndex = _formikCritArrayCopy.findIndex(x => x.name === originalCriterion.name);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (doDelete) {\r\n if (oldFieldIndex >= 0) {\r\n _formikCritArrayCopy.splice(oldFieldIndex, 1);\r\n }\r\n } else {\r\n if (oldFieldIndex < 0) {\r\n _formikCritArrayCopy.push({\r\n ..._editedCritCopy,\r\n dealingId,\r\n identity: -_formikCritArrayCopy.length - 1,\r\n })\r\n } else {\r\n const oldField = _formikCritArrayCopy[oldFieldIndex];\r\n _formikCritArrayCopy[oldFieldIndex] = {\r\n ..._editedCritCopy,\r\n identity: oldField.identity,\r\n }\r\n }\r\n }\r\n\r\n if (stageName === stageValues.CRITERIONS) {\r\n //aktualizacja wagi ceny\r\n const priceIndex = _formikCritArrayCopy.findIndex(x => x.type === CRYTERIUM_TYPE.PRICE);\r\n\r\n let sum = _formikCritArrayCopy.reduce((prev, cur) => {\r\n if (cur.type !== CRYTERIUM_TYPE.PRICE) {\r\n return prev + parseFloat(cur.weight);\r\n }\r\n return prev;\r\n }, 0);\r\n sum = parseFloat(sum.toFixed(2));\r\n\r\n const priceWeight = (100 - sum) < 0 ? 0 : 100 - sum;\r\n\r\n _formikCritArrayCopy[priceIndex].weight = priceWeight;\r\n }\r\n\r\n return _formikCritArrayCopy;\r\n}\r\n\r\nconst hasElement = (dealing, crit, stageName) => {\r\n const objectValue = getObjectValue(`stages.0.${stageName}`, dealing, []);\r\n let oldFieldIndex = 10;\r\n\r\n const demandPzpType = getDemandPZPType();\r\n const conditionLabels = PZPType.PZP_2021 === demandPzpType ? CONDITIONS_LABEL_PZP_2021 : CONDITIONS_LABEL;\r\n\r\n switch (stageName) {\r\n case stageValues.CONDITIONS:\r\n oldFieldIndex = objectValue.findIndex(x => {\r\n if (crit.type === CONDITION_TYPE_OTHER) {\r\n if (x.type === CONDITION_TYPE_OTHER) {\r\n return crit.otherName === x.otherName;\r\n }\r\n return crit.otherName === conditionLabels[x.type];\r\n }\r\n return crit.type === x.type\r\n })\r\n break;\r\n case stageValues.CRITERIONS:\r\n oldFieldIndex = objectValue.findIndex(x => {\r\n if (crit.type === CRYTERIUM_TYPE.OTHER) {\r\n if (x.type === CRYTERIUM_TYPE.OTHER) {\r\n return crit.otherName === x.otherName;\r\n }\r\n return crit.otherName === CRYTERIUM_TYPE_LABEL[x.type];\r\n }\r\n return crit.type === x.type\r\n })\r\n break;\r\n case stageValues.PARAMETERS:\r\n case stageValues.ITEM_PARAMETERS:\r\n oldFieldIndex = objectValue.findIndex(x => x.name === crit.name);\r\n break;\r\n default:\r\n break;\r\n }\r\n if (oldFieldIndex >= 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\n\r\nexport const findTemporaryDealingIds = (dealingsContains, allItems, id, crit) => {\r\n const splitId = id.split('.');\r\n splitId.shift();// remove index\r\n const stageName = splitId[splitId.length - 1];\r\n\r\n const remoteDealingIds = dealingsContains.map(x => x.identity);\r\n\r\n const dealingIds = [];\r\n allItems.forEach((curDeal, i) => {\r\n if (remoteDealingIds.indexOf(curDeal.identity) > -1 || hasElement(curDeal, crit, stageName)) {\r\n dealingIds.push(curDeal.identity);\r\n }\r\n });\r\n return dealingIds;\r\n\r\n}\r\n\r\nexport const filterByCurrentLoadedDealings = (dealingsContains, allItems, id, crit) => {\r\n const splitId = id.split('.');\r\n splitId.shift();// remove index\r\n const stageName = splitId[splitId.length - 1];\r\n\r\n allItems.forEach((curDeal, i) => {\r\n if (curDeal._touched) {\r\n const found = dealingsContains.findIndex(el => el.identity === curDeal.identity);\r\n if (found !== -1) {\r\n if (!hasElement(curDeal, crit, stageName)) {\r\n dealingsContains.splice(found, 1);\r\n }\r\n }\r\n }\r\n });\r\n\r\n}\r\n\r\n\r\nexport const removeElementsfromParts = (formikProps, id, dealings, criterion, demandId) => {\r\n doElementsManipulation(formikProps, id, dealings, criterion, null, demandId, true);\r\n}\r\n\r\nexport const addElementsToParts = (formikProps, id, dealings, criterion, originalCriterion, demandId) => {\r\n doElementsManipulation(formikProps, id, dealings, criterion, originalCriterion, demandId, false);\r\n}\r\n\r\nconst doElementsManipulation = (formikProps, id, dealings, editedCriterion, originalCriterion, demandId, doDelete) => {\r\n\r\n const splitId = id.split('.');\r\n const rootId = splitId.shift();// remove root\r\n splitId.shift();// remove index\r\n const fieldId = splitId.join('.')\r\n const partsIds = Object.keys(dealings).filter(x => dealings[x]);\r\n\r\n const stageName = splitId[splitId.length - 1];\r\n\r\n (async () => {\r\n if (partsIds.length < 1) {\r\n return;\r\n }\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n\r\n const {resources} = reduxStore.getState();\r\n const currentDealingList = getObjectValue(rootId, formikProps.values)\r\n\r\n const missingArray = [];\r\n for (let i = 0; i < partsIds.length; i++) {\r\n const dealingId = partsIds[i];\r\n const dealing = resources.dealing ? resources.dealing[dealingId] : undefined;\r\n if (!dealing) {\r\n missingArray.push(dealingId)\r\n }\r\n }\r\n let newDownloaded = {};\r\n if (missingArray.length > 0) {\r\n newDownloaded = await DealingsService.getFullList(demandId, missingArray);\r\n }\r\n\r\n\r\n const processedDealings = {};\r\n for (let i = 0; i < partsIds.length; i++) {\r\n const dealingId = partsIds[i];\r\n const dealing = resources.dealing ? resources.dealing[dealingId] : undefined;\r\n const delaingIndex = currentDealingList.findIndex(x => '' + x.identity === dealingId)\r\n let currentDealing;\r\n if (dealing) {\r\n // dealing exist\r\n currentDealing = _.cloneDeep(currentDealingList[delaingIndex]);\r\n } else {\r\n // need get dealing\r\n //currentDealing = await DealingsService.get(demandId, dealingId);\r\n currentDealing = newDownloaded[dealingId]\r\n }\r\n\r\n let critArray = getObjectValue(fieldId, currentDealing)\r\n critArray = doElement(critArray, editedCriterion, originalCriterion, stageName, dealingId, doDelete)\r\n currentDealing._touched = true;\r\n setObjectValue(fieldId, currentDealing, critArray)\r\n // const partId = `${rootId}.${delaingIndex}`\r\n // formikProps.setFieldValue(partId, currentDealing);\r\n processedDealings[currentDealing.identity] = currentDealing;\r\n }\r\n const newDealingList = currentDealingList.map((el) => {\r\n const dealingId = el.identity;\r\n const processed = processedDealings[dealingId];\r\n if (Boolean(processed)) {\r\n return processed\r\n } else {\r\n return el;\r\n }\r\n });\r\n formikProps.setFieldValue(rootId, newDealingList);\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n })();\r\n}","import React, {useEffect, useState} from 'react';\r\nimport Dialog from \"components/Dialog\";\r\nimport Tr from \"translations/Translations\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport Loading from \"components/Loading\";\r\nimport DealingsService from \"services/DealingsService\";\r\nimport PartsTable from \"components/PartsTable\";\r\nimport {connect} from \"react-redux\";\r\nimport {filterByCurrentLoadedDealings, findTemporaryDealingIds} from \"../lib/manipulateElementsOnParts\";\r\nimport stageValues from \"../constants/stage.values\";\r\nimport {CONDITION_TYPE_OTHER, CONDITIONS_LABEL, CONDITIONS_LABEL_PZP_2021} from \"components/popup/newCondition/constants/condition.values\";\r\nimport {CRYTERIUM_TYPE, CRYTERIUM_TYPE_LABEL} from \"components/popup/newCriteria/constants/criterium.type\";\r\nimport {getDemandPZPType} from \"libs/getDemandStatus\";\r\nimport PZPType from \"constants/PZPType\";\r\nimport VS from \"constants/ValidationShema\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n minHeight: 75\r\n }\r\n}));\r\n\r\n\r\nconst getCritDisplayName = (crit, stageName) => {\r\n\r\n const demandPzpType = getDemandPZPType();\r\n const conditionLabels = PZPType.PZP_2021 === demandPzpType ? CONDITIONS_LABEL_PZP_2021 : CONDITIONS_LABEL;\r\n\r\n let name;\r\n switch (stageName) {\r\n case stageValues.CONDITIONS:\r\n name = crit.type === CONDITION_TYPE_OTHER ? crit.otherName : conditionLabels[crit.type];\r\n break;\r\n case stageValues.CRITERIONS:\r\n name = crit.type === CRYTERIUM_TYPE.OTHER ? crit.otherName : CRYTERIUM_TYPE_LABEL[crit.type];\r\n break;\r\n case stageValues.PARAMETERS:\r\n case stageValues.ITEM_PARAMETERS:\r\n name = crit.name;\r\n break;\r\n default:\r\n name = \"\";\r\n break;\r\n }\r\n return name;\r\n\r\n}\r\n\r\nconst ConfirmDeleteCriterion = (\r\n {\r\n onClose = () => {\r\n },\r\n onDelete = () => {\r\n },\r\n partId,\r\n demandId,\r\n stageId,\r\n initCrit, //usuwane kryterium\r\n allItems,\r\n id,\r\n formSubmit,\r\n }) => {\r\n\r\n const [elementList, setElementList] = useState(null);\r\n const [critName, setCritName] = useState(\"\");\r\n const classes = useStyle();\r\n\r\n const formId = useId();\r\n\r\n const handleClose = () => {\r\n setElementList(null);\r\n onClose();\r\n };\r\n\r\n const handleSubmit = (values) => {\r\n onDelete(values);\r\n };\r\n\r\n const handleConfirm = () => {\r\n formSubmit[formId]();\r\n };\r\n\r\n useEffect(() => {\r\n if (initCrit) {\r\n\r\n const splitId = id.split('.');\r\n splitId.shift();// remove index\r\n const stageName = splitId[splitId.length - 1];\r\n const critDisplayName = getCritDisplayName(initCrit, stageName);\r\n setCritName(critDisplayName);\r\n if (initCrit.identity < 0) {\r\n DealingsService.getDealingsMatchingCriterionName(demandId, stageId, stageName, critDisplayName).then((dealingsContains) => {\r\n const ids = findTemporaryDealingIds(dealingsContains, allItems, id, initCrit);\r\n const filtered = allItems.filter(x => ids.indexOf(x.identity) > -1);\r\n setElementList(filtered);\r\n\r\n });\r\n\r\n } else {\r\n DealingsService.getDealingsMatchingCriterion(demandId, initCrit.identity).then((dealingsContains) => {\r\n\r\n filterByCurrentLoadedDealings(dealingsContains, allItems, id, initCrit);\r\n const ids = dealingsContains.map(x => x.identity);\r\n const filtered = allItems.filter(x => ids.indexOf(x.identity) > -1);\r\n setElementList(filtered);\r\n });\r\n }\r\n }\r\n }, [demandId, initCrit, allItems, id, stageId]);\r\n\r\n return (\r\n \r\n {elementList == null && }\r\n\r\n {elementList !== null &&\r\n <>\r\n \r\n {(formikProps) => (\r\n <>\r\n\r\n {elementList.length >= 1 &&\r\n <>\r\n \r\n \r\n }\r\n \r\n )}\r\n \r\n \r\n }\r\n \r\n );\r\n};\r\n\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(ConfirmDeleteCriterion);","import React, {useEffect, useState} from 'react'\r\nimport {Divider, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ConditionElement from './ConditionElement';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport AddButton from 'components/button/AddButton';\r\nimport NewCondition from 'components/popup/newCondition/NewCondition';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {CONDITIONS_LABEL, CONDITIONS_LABEL_PZP_2021, CONDITION_TYPE_OTHER} from 'components/popup/newCondition/constants/condition.values';\r\nimport Checkbox from 'components/Checkbox';\r\nimport {withRouter} from \"react-router\";\r\nimport ConfirmDeleteCriterion from \"./ConfirmDeleteCriterion\";\r\nimport {addElementsToParts, removeElementsfromParts} from \"../lib/manipulateElementsOnParts\";\r\nimport {getDemandPZPType} from \"libs/getDemandStatus\";\r\nimport PZPType from \"constants/PZPType\";\r\nimport _ from 'lodash';\r\n\r\nconst style = theme => ({\r\n root: {\r\n width: '100%',\r\n '&>*': {\r\n width: 'inherit'\r\n }\r\n },\r\n header: {\r\n marginTop: theme.spacing(1),\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n divider: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n }\r\n})\r\n\r\nfunction ConditionsSection(\r\n {\r\n classes,\r\n formikProps,\r\n rootId,\r\n id,\r\n checkboxId,\r\n match,\r\n partId,\r\n stageId,\r\n dirtyListenerSemaphore\r\n }) {\r\n const [openPopup, setOpenPopup] = useState(false);\r\n const [openDeletePopup, setOpenDeletePopup] = useState(false);\r\n const [editElement, setEditElement] = useState();\r\n\r\n const demandId = match.params.id;\r\n\r\n const thisId = id;\r\n\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const elements = getObjectValue(thisId, formikProps.values, []);\r\n\r\n const demandPzpType = getDemandPZPType();\r\n const conditionLabels = PZPType.PZP_2021 === demandPzpType ? CONDITIONS_LABEL_PZP_2021 : CONDITIONS_LABEL;\r\n\r\n const handleAddCondition = ({parts, ...values}) => {\r\n addElementsToParts(formikProps, id, parts, values, editElement, demandId)\r\n setOpenPopup(false)\r\n setEditElement()\r\n }\r\n\r\n const handleEdit = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setOpenPopup(true);\r\n }\r\n\r\n const onClosePopup = () => {\r\n setOpenPopup(false)\r\n setEditElement()\r\n }\r\n\r\n const conditionsInSiwz = getObjectValue(checkboxId, formikProps.values);\r\n\r\n\r\n const handleDeleteButtonPress = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setOpenDeletePopup(true);\r\n }\r\n\r\n const onCloseDeletePopup = () => {\r\n setOpenDeletePopup(false)\r\n setEditElement();\r\n }\r\n\r\n const handleDeleteCondition = ({parts}) => {\r\n removeElementsfromParts(formikProps, id, parts, editElement, demandId);\r\n setOpenDeletePopup(false);\r\n setEditElement();\r\n }\r\n\r\n\r\n useEffect(() => {\r\n dirtyListenerSemaphore.current = true;\r\n if (elements.length > 0) {\r\n formikProps.setFieldValue(checkboxId, false)\r\n } else if (elements.length === 0 && !conditionsInSiwz) {\r\n formikProps.setFieldValue(checkboxId, true)\r\n }\r\n dirtyListenerSemaphore.current = false;\r\n // eslint-disable-next-line\r\n }, [elements.length])\r\n\r\n return (\r\n <>\r\n \r\n \r\n {Tr('conditions')}\r\n {!conditionsInSiwz ?\r\n ` (${elements.length})`\r\n : ''\r\n }\r\n\r\n \r\n\r\n \r\n \r\n {!conditionsInSiwz &&\r\n elements.map((item, i) => {\r\n const name = item.type === CONDITION_TYPE_OTHER ? item.otherName : conditionLabels[item.type];\r\n return (\r\n handleEdit(i)}\r\n disabled={!editable}\r\n />\r\n )\r\n })\r\n }\r\n\r\n setOpenPopup(true)}\r\n disabled={!editable}\r\n >\r\n {Tr('add_condition')}\r\n \r\n \r\n \r\n \r\n {openPopup && onClosePopup()}\r\n partId={partId}\r\n initValues={editElement}\r\n elementList={formikProps.values.form}\r\n selectedItems={elements}\r\n demandId={demandId}\r\n stageId={stageId}\r\n showParts={editable}\r\n />}\r\n {openDeletePopup && onCloseDeletePopup()}\r\n onDelete={handleDeleteCondition}\r\n partId={partId}\r\n demandId={demandId}\r\n stageId={stageId}\r\n initCrit={editElement}\r\n allItems={formikProps.values.form}\r\n id={id}\r\n />}\r\n\r\n\r\n \r\n )\r\n}\r\n\r\nConditionsSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(withRouter(ConditionsSection));","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ConditionElement from './ConditionElement';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport {CRYTERIUM_TYPE} from \"components/popup/newCriteria/constants/criterium.type\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport {isDemandPreparing} from \"libs/getDemandStatus\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n weightInput: {\r\n width: 100\r\n }\r\n})\r\n\r\nfunction CriteriaElement(\r\n {\r\n classes,\r\n formikProps,\r\n name,\r\n type,\r\n id,\r\n index,\r\n onEdit,\r\n onDelete,\r\n disabled,\r\n }) {\r\n\r\n const onWeightChange = (val) => {\r\n\r\n const critArray = getObjectValue(id, formikProps.values, []);\r\n let priceIndex = -1;\r\n let sum = critArray.reduce((prev, cur, curIndex) => {\r\n let newSum = prev;\r\n if (cur.type === CRYTERIUM_TYPE.PRICE) {\r\n priceIndex = curIndex;\r\n } else {\r\n if (curIndex === index) {\r\n newSum += parseFloat(val);\r\n } else {\r\n newSum += parseFloat(cur.weight);\r\n }\r\n }\r\n return newSum;\r\n }, 0);\r\n sum = parseFloat(sum.toFixed(2));\r\n const priceWeight = (100 - sum) < 0 ? 0 : 100 - sum;\r\n const priceWeightId = `${id}.${priceIndex}.weight`;\r\n formikProps.setFieldValue(priceWeightId, priceWeight);\r\n }\r\n\r\n const weightId = `${id}.${index}.weight`\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nCriteriaElement.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(CriteriaElement);","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (label, value,disabled=false) => ({label, value, disabled})\r\n\r\nexport const VALUES = {\r\n\tNEW: 0,\r\n\tMY_CRITERIA: 1,\r\n}\r\n\r\nexport default [\r\n\tcreateItem(Tr('new'), VALUES.NEW),\r\n\tcreateItem(Tr('my_criteria'), VALUES.MY_CRITERIA,true)\r\n]","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (label, value) => ({\r\n\tlabel,\r\n\tvalue\r\n})\r\n\r\nexport const VARIANT_CODE = {\r\n\tRANGE: 'BETWEEN',\r\n\tSMALLER: 'SMALLER_THAN',\r\n\tBIGGER: 'BIGGER_THAN',\r\n}\r\n\r\nexport default [\r\n\tcreateItem(Tr('criteria_element_v_range'), VARIANT_CODE.RANGE),\r\n\tcreateItem(Tr('criteria_element_v_smaller'), VARIANT_CODE.SMALLER),\r\n\tcreateItem(Tr('criteria_element_v_bigger'), VARIANT_CODE.BIGGER),\r\n]","import * as Yup from 'yup'\r\nimport Tr from 'translations/Translations';\r\nimport {CRYTERIUM_TYPE as CRYTERIUM_VARIANT, CRYTERIUM_TYPE_LABEL} from './criterium.type'\r\nimport {VARIANT_CODE as CRITERIA_TYPE} from './criteria.variants'\r\nimport {VARIANT_CODE as CRITERIA_ELEMENT_TYPE} from './criteriaElement.variants'\r\nimport {VALUES as TABS} from './tabs.values'\r\nimport VS from 'constants/ValidationShema'\r\nimport InputLimits from 'constants/InputLimits';\r\nimport toFloat from 'libs/toFloat';\r\n\r\nexport default (selectedItems) => Yup.lazy(values => {\r\n\r\n const weight = values.weight ? parseFloat(parseFloat(values.weight).toFixed(2)) : 0;\r\n\r\n const min0MaxWeight = VS.numberMaxMin(0, weight, null, 'v_number_max_weight', Tr('points'));\r\n\r\n const from = VS.decimalNumber(Tr(\"from\"))\r\n const to = VS.decimalNumber(Tr(\"to\"))\r\n\r\n const reg = '^(?!(' + selectedItems.map(x => x.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|') + ')$).*$';\r\n const otherNameRegExp = new RegExp(reg)\r\n let shape = {\r\n otherName: (values.type === CRYTERIUM_VARIANT.OTHER || values.type === CRYTERIUM_VARIANT.PRICE) ?\r\n VS.stringExactlyMax(\r\n otherNameRegExp,\r\n Tr('v_criteria_exist'),\r\n InputLimits.procedure.criteriaSection.NAME\r\n ) : VS.any(),\r\n isSelected: values.tab === TABS.NEW ?\r\n VS.any() :\r\n VS.immediatelyError(Tr('new_criteria_popup_v_choose')),\r\n weight: VS.numberMax(100)\r\n }\r\n switch (values.type) {\r\n case CRYTERIUM_VARIANT.OTHER:\r\n case CRYTERIUM_VARIANT.PRICE:\r\n //to jest walidowane przy pomocy otherName\r\n break;\r\n default:\r\n shape['type'] = VS.string().test(\r\n 'duplicate',\r\n Tr('v_criteria_exist'),\r\n (formValue) => {\r\n return otherNameRegExp.test(CRYTERIUM_TYPE_LABEL[formValue]);\r\n }\r\n )\r\n }\r\n\r\n switch (values.uiType) {\r\n case CRITERIA_TYPE.LIST:\r\n\r\n shape['valuesList'] = VS.lazy(list => {\r\n let keys = [];\r\n let errorKeys = [];\r\n\r\n const maxListPoints = Math.max(...list.map(o => o.value), 0);\r\n let pointsLessThanWeight = maxListPoints === weight;\r\n\r\n list.forEach((x, i, arr) => {\r\n if (keys.indexOf(x.key) === -1) {\r\n keys.push(x.key);\r\n } else {\r\n errorKeys.push(x.key);\r\n }\r\n });\r\n return VS.arrayOf(VS.lazy((x, y, z) => {\r\n\r\n return VS.object({\r\n value: min0MaxWeight,\r\n key: VS.stringMax(1000)\r\n .test(\r\n 'duplicate',\r\n Tr('v_keys_must_be_unique'),\r\n (formValue) => {\r\n return errorKeys.indexOf(formValue) === -1;\r\n }\r\n )\r\n })\r\n })).min(2, Tr('at_least_two_values'))\r\n .test('weight_less_than_points', Tr('v_number_weight_less_than_points'), () => pointsLessThanWeight)\r\n });\r\n\r\n break;\r\n case CRITERIA_TYPE.INTERVAL:\r\n shape['intervalList'] = VS.lazy(list => {\r\n\r\n const maxListPoints = Math.max(...list.map(o => o.value), 0);\r\n const pointsLessThanWeight = maxListPoints === weight;\r\n\r\n let validation = {};\r\n\r\n list.forEach((x, i) => {\r\n let curRowValidation = {};\r\n validation[x.id] = curRowValidation;\r\n\r\n if (x.type === CRITERIA_ELEMENT_TYPE.SMALLER && i !== 0) {\r\n curRowValidation.smallerError = true;\r\n }\r\n\r\n if (x.type === CRITERIA_ELEMENT_TYPE.BIGGER && i !== (list.length - 1)) {\r\n curRowValidation.biggerError = true;\r\n }\r\n\r\n if (x.type === CRITERIA_ELEMENT_TYPE.RANGE) {\r\n\r\n curRowValidation.rangeSameError = x.from === x.to ? !x.fromInclusive || !x.toInclusive : false;\r\n }\r\n\r\n if (i !== 0) {\r\n const curFrom = toFloat(x.from);\r\n const prevTo = toFloat(list[i - 1].to);\r\n if (curFrom !== prevTo) {\r\n curRowValidation.inservalStartToPrevEndError = true;\r\n }\r\n if (x.type === CRITERIA_ELEMENT_TYPE.RANGE) {\r\n const curTo = toFloat(x.to);\r\n if (curTo < curFrom) {\r\n curRowValidation.inservalStartLesThanEndError = true;\r\n }\r\n }\r\n }\r\n })\r\n\r\n return VS.arrayOf(VS.lazy(x => {\r\n const elementErrors = validation[x.id];\r\n switch (x.type) {\r\n case CRITERIA_ELEMENT_TYPE.RANGE:\r\n return VS.object({\r\n value: min0MaxWeight,\r\n to,\r\n from: from\r\n .test(\r\n 'lessPrev',\r\n Tr('v_interval_contained_within'),\r\n (formValue) => {\r\n return !elementErrors.inservalStartToPrevEndError;\r\n })\r\n .test(\r\n 'less',\r\n Tr('v_number_less_than', {from: Tr('from'), to: Tr('to')}),\r\n (fromValue) => {\r\n return !elementErrors.inservalStartLesThanEndError\r\n }).test(\r\n 'rangeSameError',\r\n Tr('v_interval_contained_within'),\r\n (fromValue) => {\r\n return !elementErrors.rangeSameError;\r\n }\r\n ),\r\n })\r\n\r\n case CRITERIA_ELEMENT_TYPE.SMALLER:\r\n return VS.object({\r\n value: min0MaxWeight,\r\n to: to\r\n .test(\r\n 'smallerFirst',\r\n Tr('v_smaller_not_first'),\r\n (formValue) => {\r\n return !elementErrors.smallerError;\r\n }\r\n ),\r\n })\r\n\r\n case CRITERIA_ELEMENT_TYPE.BIGGER:\r\n default:\r\n return VS.object({\r\n value: min0MaxWeight,\r\n from: from\r\n .test(\r\n 'biggerLast',\r\n Tr('v_bigger_not_last'),\r\n (formValue) => {\r\n return !elementErrors.biggerError;\r\n }\r\n )\r\n .test(\r\n 'lessPrev',\r\n Tr('v_interval_contained_within'),\r\n (formValue) => {\r\n return !elementErrors.inservalStartToPrevEndError;\r\n }),\r\n })\r\n }\r\n })).min(1, Tr('mustNotBeEmpty', {value: Tr('values')})).test('weight_less_than_points', Tr('v_number_weight_less_than_points'), () => pointsLessThanWeight)\r\n })\r\n\r\n break;\r\n case CRITERIA_TYPE.NUMBER:\r\n case CRITERIA_TYPE.PRICE:\r\n shape['direction'] = VS.string();\r\n break;\r\n case CRITERIA_TYPE.TEXT:\r\n case CRITERIA_TYPE.YESNO:\r\n default:\r\n break;\r\n }\r\n\r\n return VS.object(shape)\r\n})","import React from 'react'\r\nimport {Divider, makeStyles, Tab} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport TabsUI from '@material-ui/core/Tabs';\r\nimport Typography from \"./Typography\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n divider: {\r\n margin: `0 ${-theme.spacing(2)}px ${theme.spacing(2)}px`\r\n },\r\n tab: {\r\n flexGrow: '1'\r\n },\r\n tabVertical: {\r\n display: \"flex\",\r\n flexDirection: \"row-reverse\",\r\n justifyContent: \"end\",\r\n textTransform: \"none\",\r\n \"&>.MuiSvgIcon-root\": {\r\n marginLeft: theme.spacing(1)\r\n },\r\n \"&>.MuiTypography-root\": {\r\n flexGrow: 1\r\n }\r\n },\r\n tabVerticalSelected: {\r\n backgroundColor: theme.palette.background.greyBackground,\r\n borderRadius: `${theme.shape.borderRadius}px 0 0 ${theme.shape.borderRadius}px`,\r\n },\r\n tabsVertical: {\r\n borderRight: `1px solid ${theme.palette.divider}`,\r\n marginRight: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction Tabs(\r\n {\r\n tabs,\r\n value,\r\n onChange,\r\n children,\r\n vertical\r\n }) {\r\n const classes = useStyle();\r\n\r\n return (\r\n <>\r\n onChange(newValue)}\r\n indicatorColor='primary'\r\n orientation={vertical ? \"vertical\" : undefined}\r\n >\r\n {tabs.map(({\r\n label,\r\n value,\r\n disabled,\r\n icon\r\n }) => {\r\n return (\r\n {label}}\r\n value={value}\r\n disabled={disabled}\r\n icon={icon}\r\n />\r\n )\r\n })}\r\n \r\n {!vertical && }\r\n {children}\r\n \r\n )\r\n}\r\n\r\nTabs.propTypes = {\r\n tabs: PropTypes.arrayOf(PropTypes.shape({\r\n label: PropTypes.string.isRequired,\r\n value: PropTypes.any.isRequired,\r\n icon: PropTypes.element,\r\n disabled: PropTypes.bool\r\n }))\r\n}\r\n\r\nexport default Tabs;","import React, { memo } from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tabs from 'components/Tabs';\r\nimport tabsValues from '../constants/tabs.values'\r\nimport getObjectValue from 'libs/getObjectValue'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction FormTabs({\r\n\tclasses,\r\n\tid,\r\n\tformikProps,\r\n\tonChange = () => {},\r\n}) {\r\n\tconst value = getObjectValue(id, formikProps.values, '')\r\n\t\r\n\tconst handleChange = (value) => {\r\n\t\tformikProps.setFieldValue(id, value)\r\n\t\tonChange(value)\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nFormTabs.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(memo(FormTabs, (prevProps, nextProps) => {\r\n\tif (prevProps.id !== nextProps.id) return false;\r\n\tconst id = nextProps.id;\r\n\tif (getObjectValue(id, prevProps.formikProps.values) !== getObjectValue(id, nextProps.formikProps.values)) return false;\r\n\treturn true;\r\n}));","import React, { useEffect } from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Select from 'components/Select';\r\nimport Tr from 'translations/Translations';\r\nimport typeValues, { VARIANT_CODE } from '../constants/criteria.variants'\r\nimport TextInput from 'components/TextInput';\r\nimport criteriumVariant, { CRYTERIUM_TYPE } from '../constants/criterium.type'\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport {isDemandPreparing} from 'libs/getDemandStatus';\r\n\r\nconst limits = InputLimits.procedure\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction OtherCriteriaFields({\r\n\tclasses,\r\n\tformikProps,\r\n\tedit,\r\n\tselectedItems,\r\n\tinitValues,\r\n}) {\r\n\r\n\tconst type = getObjectValue(\"type\", formikProps.values, '')\r\n\r\n\tconst setRepeatValue = (direction, fieldValue) => {\r\n\t\tformikProps.setFieldValue(\"uiType\", VARIANT_CODE.NUMBER)\r\n\t\tformikProps.setFieldValue(\"calculation\", true)\r\n\t\tformikProps.setFieldValue(\"direction\", direction)\r\n\t\tif (fieldValue) formikProps.setFieldValue(\"uom\", fieldValue)\r\n\t}\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!edit) {\r\n\t\t\tif (type === CRYTERIUM_TYPE.PAYMENT) setRepeatValue(\"ASCENDING\", \"TG\")\r\n\t\t\telse if (type === CRYTERIUM_TYPE.GUARANTEE) setRepeatValue(\"ASCENDING\", \"MS\")\r\n\t\t\telse if (type === CRYTERIUM_TYPE.TIME_LIMIT) setRepeatValue(\"DESCENDING\", \"TG\")\r\n\t\t\telse if (type === CRYTERIUM_TYPE.PRICE) setRepeatValue(\"DESCENDING\", \"PLN\")\r\n\t\t\telse formikProps.setFieldValue(\"uiType\", VARIANT_CODE.TEXT);\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [type])\r\n\r\n\tconst typeElements = criteriumVariant.reduce((acc, item) => {\r\n\t\tif (item.value === CRYTERIUM_TYPE.OTHER) return [...acc, item];\r\n\t\tif (initValues !== undefined) {\r\n\t\t\tif (item.value === initValues.type) {\r\n\t\t\t\treturn [...acc, item]\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (selectedItems.find(x => x.type === item.value)) {\r\n\t\t\treturn acc;\r\n\t\t}\r\n\t\treturn [...acc, item]\r\n\t}, [])\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t{(formikProps.values.type === CRYTERIUM_TYPE.OTHER ||\r\n\t\t\t\tformikProps.values.type === CRYTERIUM_TYPE.PRICE\r\n\t\t\t) &&\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t{(formikProps.values.uiType !== undefined &&\r\n\t\t\t\tformikProps.values.type !== CRYTERIUM_TYPE.PRICE\r\n\t\t\t) &&\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nOtherCriteriaFields.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(OtherCriteriaFields);","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (label, value) => ({\r\n\tlabel,\r\n\tvalue\r\n})\r\n\r\nexport const MEASURE_UNIT = {\r\n\tDAY: 0,\r\n\tMONTH: 1,\r\n\tWEEKS: 2,\r\n\tYEARS: 3,\r\n}\r\n\r\nexport const MEASURE_UNIT_LABEL = {\r\n\t[MEASURE_UNIT.DAY]: Tr('days'),\r\n\t[MEASURE_UNIT.MONTH]: Tr('months'),\r\n\t[MEASURE_UNIT.WEEKS]: Tr('weeks'),\r\n\t[MEASURE_UNIT.YEARS]: Tr('years'),\r\n}\r\n\r\nconst values = Object.keys(MEASURE_UNIT_LABEL).map( item => \r\n\tcreateItem(MEASURE_UNIT_LABEL[item], item)\r\n)\r\n\r\nexport default values;","import { VARIANT_CODE as CRITERIA_TYPE } from '../constants/criteria.variants'\r\nimport { MEASURE_UNIT } from '../constants/measurePeriodUnits.values'\r\nimport { VARIANT_CODE as CRITERIA_ELEMENT_TYPE } from '../constants/criteriaElement.variants'\r\n\r\nconst createItem = (name, type, description, unit, criteria) => ({\r\n\tname, type, description, unit, criteria\r\n})\r\n\r\nconst createCriteria2 = (min, max, points) => ({min, max, points, variant: CRITERIA_ELEMENT_TYPE.RANGE})\r\nconst createCriteriaSmaller = (max, points) => ({max, points, variant: CRITERIA_ELEMENT_TYPE.SMALLER})\r\nconst createCriteriaBigger = (min, points) => ({min, points, variant: CRITERIA_ELEMENT_TYPE.BIGGER})\r\nconst createCriteriaL = (units, points) => ({units, points})\r\n\r\nexport default [\r\n\tcreateItem('NAME 1', CRITERIA_TYPE.INTERVAL, 'DESCRIPTION 1', MEASURE_UNIT.MONTH, [\r\n\t\tcreateCriteriaBigger(2, 20),\r\n\t\tcreateCriteria2(3, 13, 10),\r\n\t\tcreateCriteriaSmaller(1, 25),\r\n\t\tcreateCriteriaBigger(4, 35),\r\n\t\tcreateCriteria2(1, 7, 30),\r\n\t]),\r\n\tcreateItem('NAME 2', CRITERIA_TYPE.LIST, 'DESCRIPTION 2', MEASURE_UNIT.WEEKS, [\r\n\t\tcreateCriteriaL(3,11),\r\n\t\tcreateCriteriaL(1,21),\r\n\t\tcreateCriteriaL(7,41),\r\n\t\tcreateCriteriaL(2,12),\r\n\t\tcreateCriteriaL(3,26),\r\n\t\tcreateCriteriaL(2,12),\r\n\t]),\r\n\tcreateItem('Lorem ipsum dolor sit amet consectetur', CRITERIA_TYPE.INTERVAL, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut in mi facilisis, iaculis diam ut, lobortis dolor. Morbi venenatis elementum condimentum. Donec commodo quam eget ipsum venenatis, vitae mollis turpis volutpat. Etiam sit amet ullamcorper tortor. Nulla et feugiat massa.', MEASURE_UNIT.DAY, [\r\n\t\tcreateCriteria2(3, 13, 10),\r\n\t\tcreateCriteriaSmaller(1, 25),\r\n\t\tcreateCriteriaBigger(2, 20),\r\n\t\tcreateCriteria2(1, 7, 30),\r\n\t\tcreateCriteriaBigger(4, 35),\r\n\t]),\r\n]","import React from 'react'\r\nimport { withStyles, ListItem, Grid, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport { criteriaLabels } from '../constants/criteria.variants'\r\nimport Button from 'components/Button';\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tgrid: {\r\n\t\t'&>*': {\r\n\t\t\t'&:not(:first-child)': {\r\n\t\t\t\tmarginLeft: theme.spacing(1)\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tnameItem: {\r\n\t\twidth: 200,\r\n\t\tflexShrink: 0,\r\n\t},\r\n\ttypeItem: {\r\n\t\twidth: 100,\r\n\t\tflexShrink: 0,\r\n\t},\r\n\tdescriptionItem: {\r\n\t\tflexGrow: 1,\r\n\t},\r\n\ttext: {\r\n\t\t...theme.typography.cutLines(1),\r\n\t}\r\n})\r\n\r\nfunction ListElement({\r\n\tclasses,\r\n\tname,\r\n\ttype,\r\n\tdescription,\r\n\tonClick\r\n}) {\r\n\tconst text = (t) => ({t})\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{text(name)}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{text(criteriaLabels[type])}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{text(description)}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nListElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ListElement);","import React from 'react'\r\nimport { withStyles, List, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport elements from './mock.elements'\r\nimport ListElement from './ListElement';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction MyCriteriaList({\r\n\tclasses,\r\n\tformikProps,\r\n}) {\r\n\r\n\tconst handleClick = item => {\r\n\t\tformikProps.setValues({\r\n\t\t\t...formikProps.values,\r\n\t\t\t...item,\r\n\t\t\tisSelected: true,\r\n\t\t})\r\n\t}\r\n\r\n\tconst errorValue = formikProps.errors.isSelected;\r\n\tconst touched = formikProps.touched.isSelected;\r\n\tconst isError = !!errorValue && touched\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t{elements.map((item, i) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t handleClick(item)} />\r\n\t\t\t\t\t)\r\n\t\t\t\t})}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{isError && formikProps.errors.isSelected}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nMyCriteriaList.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(MyCriteriaList);","import React from 'react'\r\nimport { withStyles, FormHelperText } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from './GridBlock';\r\nimport getObjectValue from 'libs/getObjectValue'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\ttext: {\r\n\t\tmargin: 0,\r\n\t\tmarginBottom: theme.spacing(1)\r\n\t}\r\n})\r\n\r\nfunction ErrorText({\r\n\tclasses,\r\n\tchildren,\r\n\tidList,\r\n\tformikProps,\r\n}) {\r\n\r\n\tlet errorText = undefined;\r\n\r\n\tfor (let i in idList) {\r\n\t\tconst id = idList[i];\r\n\t\tconst errorValue = getObjectValue(id, formikProps.errors, '')\r\n\t\tconst touched = getObjectValue(id, formikProps.touched, false)\r\n\t\tconst isError = !!errorValue && touched;\r\n\t\tif (isError) {\r\n\t\t\terrorText = errorValue;\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\t{errorText &&\r\n\t\t\t\t{errorText}\r\n\t\t\t}\r\n\t\t\r\n\t)\r\n}\r\n\r\nErrorText.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tchildren: PropTypes.any,\r\n\tidList: PropTypes.array,\r\n\tformikProps: PropTypes.object.isRequired,\r\n}\r\n\r\nErrorText.defaultProps = {\r\n\tidList: []\r\n}\r\n\r\nexport default withStyles(style)(ErrorText);","import React, {useEffect, useState} from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport ErrorText from 'components/ErrorText';\r\nimport MeasureUnitService from 'services/MeasureUnitService';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*:last-child': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\ttextAlign: 'right'\r\n\t\t}\r\n\t},\r\n\tinput: {\r\n\t\twidth: theme.components.input.criteria.width,\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n\tinputkey: {\r\n\t\twidth: theme.components.input.criteriaKey.width,\r\n\t\tmarginLeft: theme.spacing(1),\r\n\t\tmarginRight: theme.spacing(1),\r\n\t},\r\n});\r\n\r\nfunction CriteriaElement({\r\n\tclasses,\r\n\tindex,\r\n\tformikProps,\r\n\tonDelete,\r\n\tdisabled\r\n}) {\r\n\tconst id = 'valuesList';\r\n\tconst [measureUnits, setMeasureUnits] = useState(null);\r\n\tconst editable = getObjectValue('_editable', formikProps.values, false);\r\n\r\n\tuseEffect(() => {\r\n\t\tMeasureUnitService.getRequired().then((resp) => setMeasureUnits(resp));\r\n\t}, []);\r\n\r\n\tconst unitId = formikProps.values.uom;\r\n\tconst unitLabel = unitId && measureUnits ? measureUnits.filter(mu => mu.value === unitId).label : '';\r\n\r\n\tconst unitsId = `${id}.${index}.key`;\r\n\tconst pointsId = `${id}.${index}.value`;\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{index + 1}. {Tr('add_criterium_e_eq')}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{unitLabel} {Tr('admit')}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{Tr('points')}.\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nCriteriaElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tonDelete: PropTypes.func,\r\n};\r\n\r\nCriteriaElement.defaultProps = {\r\n};\r\n\r\nexport default withStyles(style)(CriteriaElement);","import React from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Button from 'components/Button';\r\nimport {FieldArray} from 'formik';\r\nimport Tr from 'translations/Translations';\r\nimport AddIcon from '@material-ui/icons/AddBoxOutlined'\r\nimport removeFormikListElement from 'libs/removeFormikListElement';\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst style = theme => ({\r\n root: {}\r\n})\r\n\r\nfunction CriteriaListBase({\r\n classes,\r\n formikProps,\r\n id,\r\n Element,\r\n onAdd,\r\n disabled\r\n }) {\r\n\r\n const handleDelete = index => {\r\n removeFormikListElement(formikProps, id, index)\r\n }\r\n const errorValue = getObjectValue(id, formikProps.errors, null);\r\n const errorWholeTabValue = Array.isArray(errorValue) ? null : errorValue;\r\n const editable = getObjectValue('_editable', formikProps.values, false);\r\n\r\n return (\r\n
\r\n \r\n \r\n {Tr('values')}\r\n \r\n \r\n formikProps.values[id].map(\r\n (item, i, arr) => {\r\n return (\r\n handleDelete(i)}\r\n isLast={arr.length - 1 === i}\r\n disabled={disabled}\r\n />\r\n )\r\n }\r\n )}\r\n />\r\n\t\t\t{!!errorWholeTabValue && \r\n\t\t\t\t{errorWholeTabValue}\r\n\t\t\t}\r\n\r\n {editable && !disabled &&\r\n \r\n }\r\n
\r\n )\r\n}\r\n\r\nCriteriaListBase.propTypes = {\r\n classes: PropTypes.any,\r\n Element: PropTypes.object,\r\n onDelete: PropTypes.func,\r\n onAdd: PropTypes.func,\r\n}\r\n\r\nCriteriaListBase.defaultProps = {}\r\n\r\nexport default withStyles(style)(CriteriaListBase);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport CriteriaElement from './CriteriaElement';\r\nimport CriteriaListBase from '../components/CriteriaListBase';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\ttitle: {\r\n\t\tfontWeight: theme.typography.fontWeightBold,\r\n\t}\r\n})\r\n\r\nfunction CriteriaList({\r\n\tclasses,\r\n\tformikProps,\r\n\tdisabled = false\r\n}) {\r\n\tconst id = 'valuesList';\r\n\r\n\tconst handleAdd = () => {\r\n\t\tformikProps.setFieldValue(id,\r\n\t\t\t[...formikProps.values[id], {\r\n\t\t\t\tkey: '',\r\n\t\t\t\tvalue: ''\r\n\t\t\t}])\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nCriteriaList.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nCriteriaList.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(CriteriaList);","import React, { useEffect } from 'react'\r\nimport { withStyles, Radio } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport getObjectValue from 'libs/getObjectValue';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\thideElement: {\r\n\t\twidth: 42,\r\n\t}\r\n})\r\n\r\nfunction RadioButton({\r\n\tclasses,\r\n\thide,\r\n\tformikProps,\r\n\tid,\r\n\tpairId,\r\n\tdisabled = false\r\n}) {\r\n\t\r\n\tconst value = getObjectValue(id, formikProps.values, false)\r\n\tconst pairValue = getObjectValue(pairId, formikProps.values, false)\r\n\r\n\tuseEffect(() => {\r\n\t\tif(pairId !== undefined){\r\n\t\t\tformikProps.setFieldValue(id, !pairValue)\r\n\t\t}\r\n\t// eslint-disable-next-line\r\n\t}, [pairValue])\r\n\r\n\tconst handleClick = (e) => {\r\n\t\tconst value = e.target.checked;\r\n\t\tformikProps.setFieldValue(id, value)\r\n\t\tif(pairId !== undefined){\r\n\t\t\tformikProps.setFieldValue(pairId, !value)\r\n\t\t}\r\n\t}\r\n\r\n\tif (hide) {\r\n\t\treturn
\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nRadioButton.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(RadioButton);","import React from 'react'\r\nimport { withStyles, Typography, Tooltip } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport RadioButton from '../../components/RadioButton';\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\tmarginRight: theme.spacing(1),\r\n\t\t}\r\n\t},\r\n\tinput: {\r\n\t\twidth: theme.components.input.criteria.width,\r\n\t}\r\n});\r\n\r\nfunction BaseVariant({\r\n\tclasses,\r\n\tindex,\r\n\tformikProps,\r\n\tdisableMin = false,\r\n\tdisableMax = false,\r\n\tisLast = false,\r\n\tdisabled\r\n}) {\r\n\tconst criterionId = 'intervalList';\r\n\r\n\tconst pointsId = `${criterionId}.${index}.value`;\r\n\tconst minId = `${criterionId}.${index}.from`;\r\n\tconst maxId = `${criterionId}.${index}.to`;\r\n\tconst minRadioId = `${criterionId}.${index}.fromInclusive`;\r\n\tconst maxRadioId = `${criterionId}.${index}.toInclusive`;\r\n\tconst nextMinRadioId = `${criterionId}.${index + 1}.fromInclusive`;\r\n\tconst editable = getObjectValue('_editable', formikProps.values, false);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{Tr('admit')}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{Tr('points')}.\r\n\t\t\t\r\n\t\t
\r\n\t)\r\n}\r\n\r\nBaseVariant.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tchildren: PropTypes.any,\r\n};\r\n\r\nBaseVariant.defaultProps = {\r\n};\r\n\r\nexport default withStyles(style)(BaseVariant);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport BaseVariant from './BaseVariant';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t\r\n\t},\r\n})\r\n\r\nfunction RangeVariant({\r\n\tindex,\r\n\tformikProps,\r\n\tisLast,\r\n\tdisabled\r\n}) {\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nRangeVariant.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nRangeVariant.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(RangeVariant);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport BaseVariant from './BaseVariant';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tinput: {\r\n\t\twidth: theme.components.input.criteria.width,\r\n\t}\r\n})\r\n\r\nfunction SmallerVariant({\r\n\tclasses,\r\n\tindex,\r\n\tformikProps,\r\n\tisLast,\r\n\tdisabled\r\n}) {\r\n\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nSmallerVariant.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nSmallerVariant.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(SmallerVariant);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport BaseVariant from './BaseVariant';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t}\r\n})\r\n\r\nfunction BiggerVariant({\r\n\tclasses,\r\n\tindex,\r\n\tformikProps,\r\n\tisLast,\r\n\tdisabled\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t)\r\n}\r\n\r\nBiggerVariant.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nBiggerVariant.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(BiggerVariant);","import React from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Select from 'components/Select';\r\nimport criteriaElementVariants, { VARIANT_CODE } from '../constants/criteriaElement.variants'\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport RangeVariant from './elementVariants/RangeVariant';\r\nimport SmallerVariant from './elementVariants/SmallerVariant';\r\nimport BiggerVariant from './elementVariants/BiggerVariant';\r\nimport ErrorText from 'components/ErrorText';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\tmarginRight: theme.spacing(1),\r\n\t\t\t'&:last-child': {\r\n\t\t\t\tflexGrow: 1,\r\n\t\t\t\ttextAlign: 'right'\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tselect: {\r\n\t\twidth: 130,\r\n\t},\r\n})\r\n\r\nfunction CriteriaElement({\r\n\tclasses,\r\n\tindex,\r\n\tformikProps,\r\n\tonDelete,\r\n\tisLast,\r\n\tdisabled\r\n}) {\r\n\tconst criterionId = 'intervalList';\r\n\tconst variantId = `${criterionId}.${index}.type`;\r\n\tconst variant = getObjectValue(variantId, formikProps.values);\r\n\tconst editable = getObjectValue('_editable', formikProps.values, false);\r\n\r\n\tconst getVariant = () => {\r\n\r\n\t\tswitch (variant) {\r\n\t\t\tcase VARIANT_CODE.RANGE: return \r\n\t\t\tcase VARIANT_CODE.SMALLER: return \r\n\t\t\tcase VARIANT_CODE.BIGGER: return \r\n\t\t\tdefault: return '';\r\n\t\t}\r\n\t}\r\n\r\n\tconst getErrorIds = () => {\r\n\t\tlet arrayIds = [`${criterionId}.${index}.value`]\r\n\t\tswitch (variant) {\r\n\t\t\tcase VARIANT_CODE.RANGE:\r\n\t\t\t\tarrayIds.push(`${criterionId}.${index}.from`)\r\n\t\t\t\tarrayIds.push(`${criterionId}.${index}.to`)\r\n\t\t\t\tbreak;\r\n\t\t\tcase VARIANT_CODE.SMALLER:\r\n\t\t\t\tarrayIds.push(`${criterionId}.${index}.to`)\r\n\t\t\t\tbreak;\r\n\t\t\tcase VARIANT_CODE.BIGGER:\r\n\t\t\t\tarrayIds.push(`${criterionId}.${index}.from`)\r\n\t\t\t\tbreak;\r\n\t\t\tdefault: break;\r\n\t\t}\r\n\t\treturn arrayIds;\r\n\t}\r\n\t\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{index + 1}.\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{getVariant()}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nCriteriaElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nCriteriaElement.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(CriteriaElement);","export default {\r\n\tlastItem: (arr) => arr[arr.length - 1]\r\n}","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport CriteriaListBase from '../components/CriteriaListBase';\r\nimport CriteriaElement from './CriteriaElement';\r\nimport {VARIANT_CODE} from '../constants/criteriaElement.variants';\r\nimport arrayExtension from 'libs/arrayExtension'\r\n\r\nconst style = theme => ({\r\n root: {}\r\n})\r\n\r\nfunction CriteriaList({\r\n classes,\r\n formikProps,\r\n disabled\r\n }) {\r\n const id = 'intervalList';\r\n\r\n const handleAdd = () => {\r\n let lastItem = arrayExtension.lastItem(formikProps.values[id]);\r\n if (lastItem === undefined) {\r\n lastItem = {\r\n to: '',\r\n id: 0,\r\n fromInclusive: false,\r\n toInclusive: false\r\n }\r\n }\r\n\r\n formikProps.setFieldValue(id,\r\n [...formikProps.values[id], {\r\n type: VARIANT_CODE.RANGE,\r\n from: lastItem.to,\r\n to: '',\r\n fromInclusive: !lastItem.toInclusive,\r\n toInclusive: false,\r\n value: '',\r\n id: lastItem.id + 1,\r\n }])\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nCriteriaList.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nCriteriaList.defaultProps = {}\r\n\r\nexport default withStyles(style)(CriteriaList);","import React, {useEffect, useState} from 'react'\r\nimport {Box, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport FormTabs from './components/FormTabs';\r\nimport MeasureUnitService from 'services/MeasureUnitService';\r\nimport OtherCriteriaFields from './components/OtherCriteriaFields';\r\nimport MyCriteriaList from './myCriteriaList/MyCriteriaList';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport Select from 'components/Select';\r\nimport ListVariantCriteriaList from './listVariant/CriteriaList';\r\nimport AllocationVariantCriteriaList from './intervalVariant/CriteriaList';\r\nimport PartsTable from 'components/PartsTable';\r\nimport {CriterionDictionaryItems, PriceCriterionDictionaryItems} from 'constants/DirectionsItems';\r\nimport UploadFile from 'components/UploadFile';\r\nimport {VARIANT_CODE as CRITERIA_TYPE} from './constants/criteria.variants'\r\nimport {VALUES as TABS_VALUES} from './constants/tabs.values'\r\nimport {CRYTERIUM_TYPE} from './constants/criterium.type';\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport Loading from \"components/Loading\";\r\nimport {connect} from \"react-redux\";\r\nimport {isDemandPreparing} from \"libs/getDemandStatus\";\r\n\r\nconst style = theme => ({\r\n root: {}\r\n})\r\n\r\nfunction CriteriaFormBody(\r\n {\r\n classes,\r\n formikProps,\r\n getInitialValues,\r\n isEdit,\r\n elementList,\r\n selectedItems,\r\n initValues,\r\n showParts,\r\n demandHeader\r\n }) {\r\n\r\n const [measureUnits, setMeasureUnits] = useState(null);\r\n\r\n useEffect(() => {\r\n MeasureUnitService.getWithEmptyOption().then((resp) => setMeasureUnits(resp));\r\n }, []);\r\n\r\n const handleTabChange = (change) => {\r\n if (change !== formikProps.values.tab) {\r\n if (change === TABS_VALUES.MY_CRITERIA) {\r\n formikProps.setFieldValue('type', undefined)\r\n } else if (formikProps.values.type === undefined) {\r\n formikProps.setValues(getInitialValues())\r\n }\r\n formikProps.setTouched({})\r\n }\r\n }\r\n\r\n const uiType = formikProps.values.uiType;\r\n const type = formikProps.values.type;\r\n\r\n if (!measureUnits) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {formikProps.values.tab === TABS_VALUES.NEW &&\r\n \r\n }\r\n {formikProps.values.tab === TABS_VALUES.MY_CRITERIA &&\r\n \r\n }\r\n\r\n \r\n\r\n {(uiType === CRITERIA_TYPE.LIST\r\n || uiType === CRITERIA_TYPE.INTERVAL\r\n || uiType === CRITERIA_TYPE.NUMBER\r\n || uiType === CRITERIA_TYPE.PRICE) &&\r\n <>\r\n {(type !== CRYTERIUM_TYPE.PRICE && uiType !== CRITERIA_TYPE.PRICE) &&\r\n \r\n }\r\n {\r\n (uiType === CRITERIA_TYPE.NUMBER || uiType === CRITERIA_TYPE.PRICE) &&\r\n \r\n }\r\n \r\n }\r\n {uiType === CRITERIA_TYPE.LIST &&\r\n \r\n }\r\n {uiType === CRITERIA_TYPE.INTERVAL &&\r\n \r\n }\r\n\r\n {!!demandHeader && demandHeader.apiVersion < 3 &&\r\n \r\n \r\n \r\n }\r\n\r\n {elementList.length > 1 &&\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nCriteriaFormBody.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n}))(withStyles(style)(CriteriaFormBody));","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport {VALUES as TABS_VALUES} from './constants/tabs.values'\r\nimport {VARIANT_CODE as CRITERIA_TYPE} from './constants/criteria.variants'\r\nimport {CRYTERIUM_TYPE as CRYTERIUM_VARIANT, CRYTERIUM_TYPE, CRYTERIUM_TYPE_LABEL} from './constants/criterium.type'\r\nimport validationSheme from './constants/validation.form'\r\nimport CriteriaFormBody from './CriteriaFormBody';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n weightInput: {\r\n width: 180,\r\n },\r\n uploadFile: {\r\n marginBottom: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction CriteriaForm({\r\n classes,\r\n onSubmit = () => {\r\n },\r\n id,\r\n partId,\r\n initValues,\r\n elementList,\r\n selectedItems,\r\n demandId,\r\n stageId,\r\n showParts = true\r\n }) {\r\n\r\n const handleSubmit = async (value) => {\r\n onSubmit({\r\n ...value,\r\n intervalList: value.intervalList.map(({id, ...x}) => x),\r\n });\r\n }\r\n\r\n const getInitialValues = () => {\r\n if (initValues !== undefined) {\r\n return {\r\n tab: TABS_VALUES.NEW,\r\n parts: {\r\n [partId]: true,\r\n },\r\n ...initValues,\r\n intervalList: initValues.intervalList.map((x, i) => ({id: i, ...x})),\r\n };\r\n }\r\n return {\r\n tab: TABS_VALUES.NEW,\r\n type: CRYTERIUM_VARIANT.OTHER,\r\n uiType: CRITERIA_TYPE.TEXT,\r\n otherName: '',\r\n description: '',\r\n direction: null,\r\n isSelected: false,\r\n uom: '',\r\n intervalList: [],\r\n valuesList: [],\r\n parts: {\r\n [partId]: true,\r\n },\r\n weight: '0',\r\n attachments: null\r\n }\r\n }\r\n\r\n const getNames = () => {\r\n let selected = selectedItems.map(x => {\r\n if (x.type === CRYTERIUM_TYPE.OTHER ||\r\n x.type === CRYTERIUM_TYPE.PRICE) return x.otherName;\r\n return CRYTERIUM_TYPE_LABEL[x.type];\r\n });\r\n if (initValues !== undefined) {\r\n let initValuesName = CRYTERIUM_TYPE_LABEL[initValues.type];\r\n if (initValues.type === CRYTERIUM_TYPE.OTHER || initValues.type === CRYTERIUM_TYPE.PRICE) {\r\n initValuesName = initValues.otherName;\r\n }\r\n var index = selected.indexOf(initValuesName);\r\n if (index > -1) {\r\n selected.splice(index, 1);\r\n }\r\n }\r\n return selected;\r\n }\r\n\r\n return (\r\n \r\n {(formikProps) => {\r\n return ()\r\n }}\r\n \r\n )\r\n}\r\n\r\nCriteriaForm.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(CriteriaForm);\r\n","import React, {useState} from 'react'\r\nimport {Checkbox, FormControlLabel, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport {connect} from 'react-redux'\r\nimport Dialog from 'components/Dialog';\r\nimport CriteriaForm from './CriteriaForm';\r\nimport useId from 'hooks/useId';\r\n\r\nconst style = theme => ({\r\n content: {\r\n marginTop: theme.spacing(2)\r\n },\r\n actions: {\r\n marginTop: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction NewCriteria(\r\n {\r\n classes,\r\n formSubmit,\r\n onClose,\r\n onAdd = () => {\r\n },\r\n initValues,\r\n partId,\r\n elementList,\r\n selectedItems,\r\n demandId,\r\n stageId,\r\n showParts\r\n }) {\r\n const [addCheckbox, setAddCheckbox] = useState(false)\r\n const formId = useId();\r\n\r\n const handleClose = () => {\r\n onClose();\r\n }\r\n\r\n const handleSubmit = () => {\r\n formSubmit[formId]()\r\n }\r\n\r\n const handleAdd = (values) => {\r\n onAdd(values);\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n {showParts && setAddCheckbox(!addCheckbox)}\r\n checked={addCheckbox}\r\n disabled={true}\r\n />}\r\n label={Tr('add_to_my_criterion')}\r\n />\r\n }\r\n />}\r\n
\r\n \r\n )\r\n\r\n\r\n}\r\n\r\nNewCriteria.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nNewCriteria.defaultProps = {}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(withStyles(style)(NewCriteria));","import React, {useState} from 'react'\r\nimport {Divider, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport CriteriaElement from './CriteriaElement';\r\nimport AddButton from 'components/button/AddButton';\r\nimport NewCriteriaPopup from 'components/popup/newCriteria/NewCriteria'\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {CRYTERIUM_TYPE, CRYTERIUM_TYPE_LABEL} from 'components/popup/newCriteria/constants/criterium.type';\r\nimport {withRouter} from \"react-router\";\r\nimport {addElementsToParts, removeElementsfromParts} from \"../lib/manipulateElementsOnParts\";\r\nimport ConfirmDeleteCriterion from \"./ConfirmDeleteCriterion\";\r\nimport _ from 'lodash';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n header: {\r\n marginTop: theme.spacing(1),\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n divider: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n }\r\n})\r\n\r\nfunction CriteriaSection(\r\n {\r\n classes,\r\n formikProps,\r\n id,\r\n partId,\r\n criteriaSumId,\r\n match,\r\n stageId,\r\n }) {\r\n const [criteriaPopup, setCriteriaPopup] = useState(false)\r\n const [editElement, setEditElement] = useState();\r\n const [openDeletePopup, setOpenDeletePopup] = useState(false);\r\n const demandId = match.params.id;\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const thisId = id;\r\n\r\n const elements = getObjectValue(thisId, formikProps.values, [])\r\n\r\n const handleAddCriteria = ({parts, ...values}) => {\r\n addElementsToParts(formikProps, id, parts, values, editElement, demandId);\r\n setCriteriaPopup(false);\r\n setEditElement();\r\n }\r\n\r\n const handleEdit = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setCriteriaPopup(true);\r\n }\r\n\r\n const criteriaSumError = getObjectValue(criteriaSumId, formikProps.errors, [])\r\n const isError = !!criteriaSumError;\r\n\r\n const handleDeleteButtonPress = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setOpenDeletePopup(true);\r\n }\r\n\r\n const onCloseDeletePopup = () => {\r\n setOpenDeletePopup(false)\r\n setEditElement();\r\n }\r\n\r\n const handleDeleteCondition = ({parts}) => {\r\n removeElementsfromParts(formikProps, id, parts, editElement, demandId);\r\n setOpenDeletePopup(false);\r\n setEditElement();\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n {Tr('criteria')}({elements.length})\r\n \r\n \r\n {\r\n elements.map((item, i) => {\r\n let name = item.type === CRYTERIUM_TYPE.OTHER ? item.otherName : CRYTERIUM_TYPE_LABEL[item.type];\r\n if (item.type === CRYTERIUM_TYPE.PRICE\r\n && Boolean(item.otherName)) {\r\n name = item.otherName;\r\n }\r\n return (\r\n handleEdit(i)}\r\n disabled={!editable}\r\n />\r\n )\r\n })\r\n }\r\n\r\n {\r\n setEditElement()\r\n setCriteriaPopup(true)\r\n }}>\r\n {Tr('add_criteria')}\r\n \r\n \r\n\r\n {(isError) &&\r\n \r\n {criteriaSumError}\r\n \r\n }\r\n \r\n \r\n {criteriaPopup && setCriteriaPopup(false)}\r\n partId={partId}\r\n selectedItems={elements}\r\n initValues={editElement}\r\n elementList={formikProps.values.form}\r\n demandId={demandId}\r\n stageId={stageId}\r\n showParts={editable}\r\n />}\r\n {openDeletePopup && onCloseDeletePopup()}\r\n onDelete={handleDeleteCondition}\r\n partId={partId}\r\n demandId={demandId}\r\n stageId={stageId}\r\n initCrit={editElement}\r\n allItems={formikProps.values.form}\r\n id={id}\r\n />}\r\n \r\n )\r\n}\r\n\r\nCriteriaSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(withRouter(CriteriaSection));","import Tr from 'translations/Translations';\r\n\r\nexport const POSITION_TYPE = {\r\n\tTEXT: 'TEXT',\r\n\tYES_NO: 'YESNO',\r\n}\r\n\r\nexport const POSITION_TYPE_LABEL = {\r\n\t[POSITION_TYPE.TEXT]: Tr('text'),\r\n\t[POSITION_TYPE.YES_NO]: Tr('yes')+'/'+Tr('no'),\r\n}\r\n\r\nconst createItem = (key) => ({\r\n\tlabel: POSITION_TYPE_LABEL[key],\r\n\tvalue: key\r\n})\r\n\r\nexport default [\r\n\tcreateItem(POSITION_TYPE.TEXT),\r\n\tcreateItem(POSITION_TYPE.YES_NO),\r\n]","import * as Yup from 'yup'\r\nimport ValidationShema from 'constants/ValidationShema';\r\nimport Tr from 'translations/Translations';\r\nimport ImputLimits from 'constants/InputLimits';\r\nimport {POSITION_TYPE} from \"components/popup/addAdditionalPosition/constants/additionalPositionType.values\";\r\n\r\nconst limits = ImputLimits.procedure.parameters;\r\n\r\nexport default (selectedItems) => Yup.lazy(values => {\r\n\r\n\tconst reg = '^(?!(' + selectedItems.map(x => x.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|')+ ')$).*$';\r\n\tconst otherNameRegExp = new RegExp(reg)\r\n\r\n\tlet shapeObj = {\r\n\t\tname: ValidationShema.stringExactlyMax(\r\n\t\t\totherNameRegExp,\r\n\t\t\tTr('v_position_exist'),\r\n\t\t\tlimits.NAME\r\n\t\t)\r\n\t}\r\n\r\n\tif (values.uiType === POSITION_TYPE.YES_NO) {\r\n\t\tshapeObj = {\r\n\t\t\t...shapeObj,\r\n\t\t\tshowCommentField: ValidationShema.requiredBoolean()\r\n\t\t}\r\n\t}\r\n\r\n\treturn Yup.object().shape(shapeObj);\r\n})","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport positionTypes, {POSITION_TYPE} from './constants/additionalPositionType.values'\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport Select from 'components/Select';\r\nimport PartsTable from 'components/PartsTable';\r\nimport BooleanItems from 'constants/BooleanItems';\r\nimport validationSheme from './constants/validation.form'\r\nimport InputLimits from 'constants/InputLimits';\r\nimport getObjectValue from 'libs/getObjectValue';\r\n\r\nconst limits = InputLimits.procedure.parameters;\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tuploadFile: {\r\n\t\tmarginBottom: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction AddAdditionalPositionForm({\r\n\tclasses,\r\n\tonSubmit = () => { },\r\n\tid,\r\n\tinitValues,\r\n\tpartId,\r\n\telementList,\r\n\tshowParts = true,\r\n}) {\r\n\r\n\tconst getInitialValues = () => {\r\n\t\tif (initValues !== undefined) {\r\n\t\t\treturn {\r\n\t\t\t\t...initValues,\r\n\t\t\t\tparts: {\r\n\t\t\t\t\t[partId]: true,\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tuiType: POSITION_TYPE.TEXT,\r\n\t\t\tshowCommentField: null,\r\n\t\t\tdescription: '',\r\n\t\t\tname: '',\r\n\t\t\tparts: {\r\n\t\t\t\t[partId]: true,\r\n\t\t\t},\r\n\t\t\tattachments: null\r\n\t\t}\r\n\t}\r\n\r\n\tconst getNames = () => {\r\n\t\tlet elementId = elementList.findIndex((x) => x.identity === partId)\r\n\t\tlet selected = elementList[elementId].stages[0].parameters.map(x => {\r\n\t\t\treturn x.name;\r\n\t\t})\r\n\t\tif (initValues !== undefined) {\r\n\t\t\tlet initValuesName = initValues.name;\r\n\t\t\tvar index = selected.indexOf(initValuesName);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tselected.splice(index, 1);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn selected;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{(formikProps) => (\r\n\t\t\t\t<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{getObjectValue('uiType', formikProps.values, false) === POSITION_TYPE.YES_NO &&\r\n\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{/*\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t*/}\r\n\t\t\t\t\t{elementList.length > 1 &&\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t)\r\n}\r\n\r\nAddAdditionalPositionForm.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(AddAdditionalPositionForm);","import React from 'react'\r\nimport useId from 'hooks/useId';\r\nimport Tr from 'translations/Translations';\r\nimport AddAdditionalPositionForm from './AddAdditionalPositionForm';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport Dialog from 'components/Dialog';\r\nimport {connect} from 'react-redux'\r\n\r\nfunction AddAdditionalPosition(\r\n {\r\n onClose = () => {\r\n },\r\n formSubmit,\r\n onAdd,\r\n initValues,\r\n partId,\r\n elementList,\r\n showParts\r\n }) {\r\n const formId = useId();\r\n\r\n const handleClose = () => {\r\n onClose();\r\n }\r\n\r\n const handleSubmit = () => {\r\n formSubmit[formId]()\r\n }\r\n\r\n const handleAdd = (values) => {\r\n onAdd(values);\r\n }\r\n\r\n return (\r\n : undefined}\r\n >\r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddAdditionalPosition);","import React, {useState} from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport AddAdditionalPosition from 'components/popup/addAdditionalPosition/AddAdditionalPosition';\r\nimport Tr from 'translations/Translations';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport GridBlock from 'components/GridBlock';\r\nimport AddButton from 'components/button/AddButton';\r\nimport ConditionElement from './ConditionElement';\r\nimport {withRouter} from \"react-router\";\r\nimport {addElementsToParts, removeElementsfromParts} from \"../lib/manipulateElementsOnParts\";\r\nimport ConfirmDeleteCriterion from \"./ConfirmDeleteCriterion\";\r\nimport _ from 'lodash'\r\nconst style = theme => ({\r\n root: {},\r\n header: {\r\n marginTop: theme.spacing(1),\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n})\r\n\r\nfunction AdditionalPositionsSection(\r\n {\r\n classes,\r\n formikProps,\r\n id,\r\n partId,\r\n stageId,\r\n match,\r\n }) {\r\n const [openPopup, setOpenPopup] = useState(false)\r\n const [editElement, setEditElement] = useState();\r\n const [openDeletePopup, setOpenDeletePopup] = useState(false);\r\n const demandId = match.params.id;\r\n\r\n const thisId = id;\r\n\r\n const elements = getObjectValue(thisId, formikProps.values, [])\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const handleAddPosition = ({parts, ...values}) => {\r\n addElementsToParts(formikProps, thisId, parts, values, editElement, demandId);\r\n setOpenPopup(false)\r\n setEditElement()\r\n }\r\n\r\n // eslint-disable-next-line\r\n const handleEdit = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setOpenPopup(true);\r\n }\r\n\r\n const handleDeleteButtonPress = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setOpenDeletePopup(true);\r\n }\r\n\r\n const onCloseDeletePopup = () => {\r\n setOpenDeletePopup(false)\r\n setEditElement();\r\n }\r\n\r\n const handleDeleteCondition = ({parts}) => {\r\n removeElementsfromParts(formikProps, id, parts, editElement, demandId);\r\n setOpenDeletePopup(false);\r\n setEditElement();\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n {Tr('additional_positions')}({elements.length})\r\n \r\n \r\n {elements.map((item, i) => {\r\n return (\r\n handleEdit(i)}\r\n onDelete={handleDeleteButtonPress}\r\n disabled={!editable}\r\n />\r\n )\r\n })}\r\n\r\n {\r\n setEditElement()\r\n setOpenPopup(true)\r\n }}\r\n disabled={!editable}\r\n >\r\n {Tr('additional_form_items')}\r\n \r\n \r\n \r\n\r\n {openPopup && setOpenPopup(false)}\r\n initValues={editElement}\r\n partId={partId}\r\n elementList={formikProps.values.form}\r\n showParts={editable}\r\n />}\r\n {openDeletePopup && onCloseDeletePopup()}\r\n onDelete={handleDeleteCondition}\r\n partId={partId}\r\n demandId={demandId}\r\n stageId={stageId}\r\n initCrit={editElement}\r\n allItems={formikProps.values.form}\r\n id={id}\r\n />}\r\n \r\n )\r\n}\r\n\r\nAdditionalPositionsSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(withRouter(AdditionalPositionsSection));","import Tr from 'translations/Translations';\r\n\r\nexport const ITEM_TYPE = {\r\n\tTEXT: 'TEXT',\r\n}\r\n\r\nexport const ITEM_TYPE_LABEL = {\r\n\t[ITEM_TYPE.TEXT]: Tr('text'),\r\n}\r\n\r\nconst createItem = (key) => ({\r\n\tlabel: ITEM_TYPE_LABEL[key],\r\n\tvalue: key\r\n})\r\n\r\nexport default [\r\n\tcreateItem(ITEM_TYPE.TEXT)\r\n]","import * as Yup from 'yup'\r\nimport ValidationShema from 'constants/ValidationShema';\r\nimport Tr from 'translations/Translations';\r\nimport ImputLimits from 'constants/InputLimits';\r\n\r\nconst limits = ImputLimits.procedure.itemParameters;\r\n\r\nexport default (selectedItems) => Yup.lazy(values => {\r\n\r\n\tconst reg = '^(?!(' + selectedItems.map(x => x.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|')+ ')$).*$';\r\n\tconst otherNameRegExp = new RegExp(reg)\r\n\r\n\tlet shapeObj = {\r\n\t\tname: ValidationShema.stringExactlyMax(\r\n\t\t\totherNameRegExp,\r\n\t\t\tTr('v_position_exist'),\r\n\t\t\tlimits.NAME\r\n\t\t)\r\n\t}\r\n\r\n\treturn Yup.object().shape(shapeObj);\r\n})","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport itemTypes, {ITEM_TYPE} from './constants/itemParameterType.values'\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport Select from 'components/Select';\r\nimport PartsTable from 'components/PartsTable';\r\nimport validationSheme from './constants/validation.form'\r\nimport InputLimits from 'constants/InputLimits';\r\n\r\nconst limits = InputLimits.procedure.itemParameters;\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tuploadFile: {\r\n\t\tmarginBottom: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction AddItemParameterForm({\r\n\tclasses,\r\n\tonSubmit = () => { },\r\n\tid,\r\n\tinitValues,\r\n\tpartId,\r\n\telementList,\r\n\tshowParts = true,\r\n}) {\r\n\r\n\tconst getInitialValues = () => {\r\n\t\tif (initValues !== undefined) {\r\n\t\t\treturn {\r\n\t\t\t\t...initValues,\r\n\t\t\t\tparts: {\r\n\t\t\t\t\t[partId]: true,\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\treturn {\r\n\t\t\tuiType: ITEM_TYPE.TEXT,\r\n\t\t\tdescription: '',\r\n\t\t\tname: '',\r\n\t\t\tparts: {\r\n\t\t\t\t[partId]: true,\r\n\t\t\t},\r\n\t\t\tattachments: null\r\n\t\t}\r\n\t}\r\n\r\n\tconst getNames = () => {\r\n\t\tlet elementId = elementList.findIndex((x) => x.identity === partId)\r\n\t\tlet selected = elementList[elementId].stages[0].itemParameters.map(x => {\r\n\t\t\treturn x.name;\r\n\t\t})\r\n\t\tif (initValues !== undefined) {\r\n\t\t\tlet initValuesName = initValues.name;\r\n\t\t\tvar index = selected.indexOf(initValuesName);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tselected.splice(index, 1);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn selected;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{(formikProps) => (\r\n\t\t\t\t<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t{/*\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t*/}\r\n\t\t\t\t\t{elementList.length > 1 &&\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t)\r\n}\r\n\r\nAddItemParameterForm.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(AddItemParameterForm);","import React from 'react'\r\nimport useId from 'hooks/useId';\r\nimport Tr from 'translations/Translations';\r\nimport AddItemParameterForm from './AddItemParameterForm';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport Dialog from 'components/Dialog';\r\nimport {connect} from 'react-redux'\r\n\r\nfunction AddItemParameter(\r\n {\r\n onClose = () => {\r\n },\r\n formSubmit,\r\n onAdd,\r\n initValues,\r\n partId,\r\n elementList,\r\n showParts\r\n }) {\r\n const formId = useId();\r\n\r\n const handleClose = () => {\r\n onClose();\r\n }\r\n\r\n const handleSubmit = () => {\r\n formSubmit[formId]()\r\n }\r\n\r\n const handleAdd = (values) => {\r\n onAdd(values);\r\n }\r\n\r\n return (\r\n : undefined}\r\n >\r\n \r\n\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddItemParameter);","import React, {useState} from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport AddItemParameter from 'components/popup/addItemParameter/AddItemParameter';\r\nimport Tr from 'translations/Translations';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport GridBlock from 'components/GridBlock';\r\nimport AddButton from 'components/button/AddButton';\r\nimport ConditionElement from './ConditionElement';\r\nimport {withRouter} from \"react-router\";\r\nimport {addElementsToParts, removeElementsfromParts} from \"../lib/manipulateElementsOnParts\";\r\nimport ConfirmDeleteCriterion from \"./ConfirmDeleteCriterion\";\r\nimport _ from 'lodash';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n header: {\r\n marginTop: theme.spacing(1),\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n})\r\n\r\nfunction PositionsParametersSection(\r\n {\r\n classes,\r\n formikProps,\r\n id,\r\n partId,\r\n stageId,\r\n match,\r\n }) {\r\n const [openPopup, setOpenPopup] = useState(false)\r\n const [editElement, setEditElement] = useState();\r\n const [openDeletePopup, setOpenDeletePopup] = useState(false);\r\n const demandId = match.params.id;\r\n\r\n const thisId = id;\r\n\r\n const elements = getObjectValue(thisId, formikProps.values, [])\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const handleAddPosition = ({parts, ...values}) => {\r\n addElementsToParts(formikProps, thisId, parts, values, editElement, demandId);\r\n setOpenPopup(false)\r\n setEditElement()\r\n }\r\n\r\n // eslint-disable-next-line\r\n const handleEdit = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setOpenPopup(true);\r\n }\r\n\r\n const handleDeleteButtonPress = (index) => {\r\n setEditElement(_.cloneDeep(elements[index]));\r\n setOpenDeletePopup(true);\r\n }\r\n\r\n const onCloseDeletePopup = () => {\r\n setOpenDeletePopup(false)\r\n setEditElement();\r\n }\r\n\r\n const handleDeleteCondition = ({parts}) => {\r\n removeElementsfromParts(formikProps, id, parts, editElement, demandId);\r\n setOpenDeletePopup(false);\r\n setEditElement();\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n {Tr('item_parameters')}({elements.length})\r\n \r\n \r\n {elements.map((item, i) => {\r\n return (\r\n handleEdit(i)}\r\n onDelete={handleDeleteButtonPress}\r\n disabled={!editable}\r\n />\r\n )\r\n })}\r\n\r\n {\r\n setEditElement()\r\n setOpenPopup(true)\r\n }}\r\n disabled={!editable}\r\n >\r\n {Tr('item_parameters_add')}\r\n \r\n \r\n \r\n\r\n {openPopup && setOpenPopup(false)}\r\n initValues={editElement}\r\n partId={partId}\r\n elementList={formikProps.values.form}\r\n showParts={editable}\r\n />}\r\n {openDeletePopup && onCloseDeletePopup()}\r\n onDelete={handleDeleteCondition}\r\n partId={partId}\r\n demandId={demandId}\r\n stageId={stageId}\r\n initCrit={editElement}\r\n allItems={formikProps.values.form}\r\n id={id}\r\n />}\r\n \r\n )\r\n}\r\n\r\nPositionsParametersSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(withRouter(PositionsParametersSection));","import React, {useEffect, useState} from 'react'\r\nimport {Box, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport CPVInput from 'components/CPVInput';\r\nimport NetGrossField from 'components/NetGrossField';\r\nimport PositionsSection from './PositionsSection'\r\nimport ConditionsSection from './ConditionsSection'\r\nimport CriteriaSection from './CriteriaSection'\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport Loading from 'components/Loading';\r\nimport {withRouter} from \"react-router\";\r\nimport DealingsService from 'services/DealingsService';\r\nimport AdditionalPositionsSection from './AdditionalPositionsSection';\r\nimport TitledComponent from 'components/TitledComponent';\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport mergeDealing from '../lib/mergeDealing';\r\nimport RadioGroup from \"components/RadioGroup\";\r\nimport DatePicker from \"components/DatePicker\";\r\nimport Select, {createSelectItem} from \"components/Select\";\r\nimport {isNonpublicProcedure} from \"libs/getDemandStatus\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport PositionsParametersSection from \"./PositionsParametersSection\";\r\n\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*': {\r\n width: 'inherit'\r\n },\r\n paddingLeft: theme.spacing(4)\r\n },\r\n grossNetGrid: {\r\n '&>*': {\r\n flexGrow: 1,\r\n flexBasis: 0,\r\n\r\n '&:not(:first-child)': {\r\n marginLeft: theme.spacing(2),\r\n }\r\n }\r\n },\r\n cpvBox: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n loading: {\r\n height: 100\r\n }\r\n})\r\n\r\nconst limits = InputLimits.procedure.dealings;\r\n\r\nfunction PartForm(\r\n {\r\n classes,\r\n formikProps,\r\n dirtyListenerSemaphore,\r\n id,\r\n match,\r\n isDealingElement,\r\n dealingsList,\r\n autoSaveFormDraftActive\r\n }) {\r\n const createId = (key) => `${id}.${key}`;\r\n const partId = getObjectValue(createId('identity'), formikProps.values)\r\n const demandId = match.params.id;\r\n const [loaded, setLoaded] = useState(isDealingElement);\r\n const [draftConfirm, setDraftConfirm] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n\r\n useEffect(() => {\r\n if (demandId && !isDealingElement) {\r\n DealingsService.get(demandId, partId)\r\n .then(res => {\r\n dirtyListenerSemaphore.current = true;\r\n mergeDealing(res, formikProps, id).then(()=> {\r\n dirtyListenerSemaphore.current = false;\r\n setLoaded(true);\r\n });\r\n if (autoSaveFormDraftActive) {\r\n DealingsService.checkForDraft(demandId, partId).then(res => setDraftConfirm(res.result));\r\n }\r\n });\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n if (!isDealingElement || !loaded || working) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n const stageId = getObjectValue(createId('stages.0.identity'), formikProps.values);\r\n\r\n const loadDealingDraft = () => {\r\n setDraftConfirm(false);\r\n setWorking(true);\r\n DealingsService.loadDraft(demandId, partId).then(res => {\r\n dirtyListenerSemaphore.current = true;\r\n mergeDealing(res.result, formikProps, id).then(()=> {\r\n dirtyListenerSemaphore.current = false;\r\n });\r\n });\r\n setWorking(false);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n {'Framework' === dealingsList.demandVariant &&\r\n \r\n }\r\n { !!dealingsList.planRequired &&\r\n createSelectItem(x.identity, x.name, x.number))}\r\n />\r\n }\r\n\r\n \r\n \r\n \r\n \r\n {getObjectValue(createId('termOption'), formikProps.values) === 'date' ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n loadDealingDraft()}\r\n onCancel={() => setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n \r\n )\r\n}\r\n\r\nPartForm.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(withRouter(PartForm));","import React, {memo, useMemo} from 'react'\r\nimport {Collapse} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ElementTitle from './ElementTitle';\r\nimport PartForm from './PartForm'\r\nimport removeFormikListElement from 'libs/removeFormikListElement';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {withRouter} from \"react-router\";\r\nimport {connect} from 'react-redux'\r\nimport {addObjectResource, setResource} from 'redux/actions'\r\nimport {wasEverPublished, isNationalProcedure, isEuropeProcedure} from \"libs/getDemandStatus\";\r\n\r\nfunction Element({\r\n index,\r\n id,\r\n formikProps,\r\n match,\r\n dealing,\r\n addObjectResource,\r\n dealingsList,\r\n dirtyListenerSemaphore,\r\n demandHeader,\r\n autoSaveFormDraftActive\r\n }) {\r\n const partId = `${id}.${index}`\r\n const createId = key => `${partId}.${key}`\r\n\r\n const elements = getObjectValue(id, formikProps.values, []);\r\n const elementsLength = elements.length;\r\n const isPublished = useMemo(() => demandHeader ? wasEverPublished() : undefined, [demandHeader]);\r\n const isPublic = useMemo(() => demandHeader ? isNationalProcedure() || isEuropeProcedure() : undefined, [demandHeader]);\r\n\r\n const open = getObjectValue(createId('_open'), formikProps.values)\r\n const setOpen = (value) => {\r\n dirtyListenerSemaphore.current = true;\r\n formikProps.setFieldValue(createId('_open'), value)\r\n if (value === true) {\r\n formikProps.setFieldValue(createId('_touched'), true)\r\n }\r\n dirtyListenerSemaphore.current = false;\r\n }\r\n const elementId = getObjectValue(createId('identity'), formikProps.values)\r\n\r\n const handleDelete = () => {\r\n //DealingsService.autoSaveDeleteSingle(demendId, index).then(() => {\r\n addObjectResource('dealing', elementId)\r\n removeFormikListElement(formikProps, id, index)\r\n //})\r\n }\r\n\r\n let isDealingElement = dealing ? dealing[elementId] ? true : false : false;\r\n\r\n // const stageCriterions = getObjectValue(createId('stages.0.criterions'), formikProps.values)\r\n // useEffect(() => {\r\n // \tlet value = sumCriteria(stageCriterions)\r\n // \t//formikProps.setFieldValue(createId('_criteriaSum'), value.toFixed(2))\r\n // \t// formikProps.setFieldTouched(createId('_criteriaSum'), false)\r\n // \t//eslint-disable-next-line\r\n // }, [stageCriterions])\r\n\r\n const renderForm = () => {\r\n if (open) {\r\n return (\r\n \r\n )\r\n }\r\n return ''\r\n }\r\n\r\n return (\r\n <>\r\n setOpen(!open)}\r\n onDelete={handleDelete}\r\n disableDelete={elementsLength < 2 || (isPublic && isPublished)}\r\n />\r\n\r\n \r\n {renderForm()}\r\n \r\n \r\n )\r\n}\r\n\r\nElement.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n dealing: state.resources.dealing,\r\n dealingsList: state.resources.dealingsList,\r\n demandHeader: state.resources.demandHeader\r\n}), {\r\n setResource,\r\n addObjectResource,\r\n})(withRouter(memo(Element, (prevProps, nextProps) => {\r\n if (prevProps.id !== nextProps.id) return false;\r\n if (prevProps.index !== nextProps.index) return false;\r\n if (JSON.stringify(prevProps.classes) !== JSON.stringify(nextProps.classes)) return false;\r\n const partId = nextProps.id + '.' + nextProps.index;\r\n if (JSON.stringify(prevProps.formikProps.values) !==\r\n JSON.stringify(nextProps.formikProps.values)\r\n ) return false;\r\n if (JSON.stringify(getObjectValue(partId, prevProps.formikProps.errors)) !==\r\n JSON.stringify(getObjectValue(partId, nextProps.formikProps.errors))\r\n ) return false;\r\n if (JSON.stringify(getObjectValue(partId, prevProps.formikProps.touched)) !==\r\n JSON.stringify(getObjectValue(partId, nextProps.formikProps.touched))\r\n ) return false;\r\n if (prevProps.dealing !== nextProps.dealing)\r\n return false;\r\n if (prevProps.dealing &&\r\n nextProps.dealing &&\r\n JSON.stringify(Object.keys(prevProps.dealing)) !==\r\n JSON.stringify(Object.keys(nextProps.dealing))\r\n ) return false;\r\n // history\r\n // staticContextx\r\n // location\r\n // match\r\n return true;\r\n})));","import { useEffect } from 'react';\r\n\r\nfunction ExecuteFunction({\r\n\tfunc,\r\n\tshouldExecute = true,\r\n\tconditions = [],\r\n}) {\r\n\tuseEffect(() => {\r\n\t\tif (shouldExecute) {\r\n\t\t\tfunc()\r\n\t\t}\r\n\t}, [func, shouldExecute, conditions])\r\n\treturn ''\r\n}\r\n\r\nexport default ExecuteFunction;","import React from 'react'\r\nimport {makeStyles, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n italic: {\r\n fontStyle: 'italic'\r\n }\r\n}))\r\n\r\nfunction DemandValidationMessages(\r\n {\r\n section,\r\n editable\r\n }) {\r\n const classes = useStyle();\r\n const show = editable && section && (section.messages || section.infoMessages);\r\n return (show &&
\r\n {\r\n !!section?.messages && section.messages.map((x, i) => {x})\r\n }\r\n {\r\n !!section?.infoMessages && section.infoMessages.map((x, i) => {x})\r\n }\r\n
)\r\n}\r\n\r\nDemandValidationMessages.propTypes = {\r\n section: PropTypes.object,\r\n editable: PropTypes.bool,\r\n}\r\n\r\nexport default DemandValidationMessages;","import React, {useEffect, useRef, useState} from 'react'\r\nimport {Divider, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport initialValues from './constants/initialValues'\r\nimport AdditionalButtons from './components/AdditionalButtons';\r\nimport {connect} from 'react-redux'\r\nimport Loading from 'components/Loading';\r\nimport {withRouter} from \"react-router\";\r\nimport SaveFormikValues from 'components/SaveFormikValues';\r\nimport SortableContainer from 'components/complex/sortable/SortableContainer';\r\nimport validationSchema from './constants/validationSchema'\r\nimport DealingsService from 'services/DealingsService';\r\nimport Element from './components/Element';\r\nimport setFormikValuesTouched from 'libs/setFormikValuesTouched';\r\nimport ExecuteFunction from 'components/ExecuteFunction';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport {\r\n clearStepperStateCloseValidator,\r\n setStepperStateCloseValidator,\r\n setStepperStateDeleteFormDraftFunction,\r\n clearStepperStateDeleteFormDraftFunction,\r\n setStepperStateSaveFormDraftFunction,\r\n clearStepperStateSaveFormDraftFunction\r\n} from \"redux/actions\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n width: '100%',\r\n '&>*:last-child': {\r\n marginTop: theme.spacing()\r\n }\r\n },\r\n error: {\r\n color: theme.palette.error.main\r\n }\r\n})\r\n\r\nfunction PositionAndPartsForm(\r\n {\r\n classes,\r\n match,\r\n expanded,\r\n section,\r\n formId,\r\n dealingsList,\r\n dealing,\r\n setStepperStateCloseValidator,\r\n clearStepperStateCloseValidator,\r\n setStepperStateDeleteFormDraftFunction,\r\n clearStepperStateDeleteFormDraftFunction,\r\n setStepperStateSaveFormDraftFunction,\r\n clearStepperStateSaveFormDraftFunction,\r\n saveSuccessCallback,\r\n saveErrorCallback,\r\n demandHeader\r\n }) {\r\n const [afterSave, setAfterSave] = useState(false);\r\n const editable = section ? section.editable : true;\r\n\r\n const realDirty = useRef(\"nie\");\r\n const dirtyListenerSemaphore = useRef(false);\r\n\r\n const id = match.params.id;\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active && dealingsList?.dealings?.length <= 30;\r\n\r\n const [dealingValuesAndActionsForSave, setDealingValuesAndActionsForSave] = useState(null);\r\n const [getDraftsAndSaveDealingsConfirm, setGetDraftsAndSaveDealingsConfirm] = useState(false);\r\n\r\n useEffect(() => {\r\n if (expanded) {\r\n setStepperStateCloseValidator(() => {\r\n return realDirty.current !== \"tak\"\r\n });\r\n if (autoSaveFormDraftActive) {\r\n setStepperStateDeleteFormDraftFunction(() => DealingsService.deleteDraft(id));\r\n setStepperStateSaveFormDraftFunction(() => saveFormDraft(id, DealingsService.saveDraft, formId));\r\n }\r\n } else {\r\n dirtyListenerSemaphore.current = false;\r\n realDirty.current = \"nie\";\r\n }\r\n return () => {\r\n clearStepperStateCloseValidator();\r\n clearStepperStateDeleteFormDraftFunction();\r\n clearStepperStateSaveFormDraftFunction();\r\n }\r\n\r\n }, [id, formId, expanded, autoSaveFormDraftActive, setStepperStateCloseValidator, clearStepperStateCloseValidator,\r\n setStepperStateDeleteFormDraftFunction, clearStepperStateDeleteFormDraftFunction, setStepperStateSaveFormDraftFunction, clearStepperStateSaveFormDraftFunction])\r\n\r\n const handleSubmit = (values, actions) => {\r\n if (autoSaveFormDraftActive && dealingsList.dealings.length > (!!dealing ? Object.keys(dealing).length : 0)) {\r\n const draftPromises = [];\r\n dealingsList.dealings.filter(d => !!dealing ? !dealing[d.identity] : true).forEach(d => draftPromises.push(DealingsService.checkForDraft(id, d.identity)));\r\n Promise.all(draftPromises).then(promisesValues => {\r\n if (promisesValues.some(v => v.result === true)) {\r\n setDealingValuesAndActionsForSave([values, actions]);\r\n setGetDraftsAndSaveDealingsConfirm(true);\r\n } else {\r\n doSaveDealings(values, actions);\r\n }\r\n });\r\n } else {\r\n doSaveDealings(values, actions);\r\n }\r\n }\r\n\r\n const getAndInitializeDraftsThenSaveDealings = () => {\r\n const values = dealingValuesAndActionsForSave[0];\r\n const actions = dealingValuesAndActionsForSave[1];\r\n const draftPromises = [];\r\n dealingsList.dealings.filter(d => !!dealing ? !dealing[d.identity] : true).forEach(d => draftPromises.push(DealingsService.loadDraft(id, d.identity)));\r\n Promise.all(draftPromises).then(promisesValues => {\r\n promisesValues.forEach(v => {\r\n if (v.success) {\r\n const dealingDraft = v.result;\r\n dealingDraft._touched = true;\r\n const tmpArr = values.form.filter(i => i.identity !== dealingDraft.identity);\r\n values.form = [\r\n ...tmpArr,\r\n dealingDraft\r\n ]\r\n\r\n }\r\n });\r\n setDealingValuesAndActionsForSave(null);\r\n doSaveDealings(values, actions);\r\n });\r\n }\r\n\r\n const doNotInitializeDraftsThenSaveDealings = () => {\r\n const values = dealingValuesAndActionsForSave[0];\r\n const actions = dealingValuesAndActionsForSave[1];\r\n setDealingValuesAndActionsForSave(null);\r\n doSaveDealings(values, actions);\r\n }\r\n\r\n const doSaveDealings = (values, actions) => {\r\n DealingsService.save(id, values)\r\n .then((success) => {\r\n\r\n if(success) {\r\n realDirty.current = \"nie\";\r\n saveSuccessCallback();\r\n actions.setValues({\r\n form: values.form.map(element => ({\r\n ...element,\r\n _touched: false,\r\n _open: false,\r\n _edit: false,\r\n }))\r\n })\r\n } else {\r\n saveErrorCallback();\r\n }\r\n\r\n })\r\n }\r\n\r\n if (!dealingsList && id) {\r\n return \r\n }\r\n\r\n const formatDealingList = (list = []) => {\r\n const _openTouched = list.length === 1;\r\n return list.map(item => ({\r\n _open: _openTouched,\r\n _touched: _openTouched,\r\n _edit: false,\r\n ...item,\r\n stages: [{\r\n conditions: [],\r\n criterions: [],\r\n parameters: [],\r\n }],\r\n }));\r\n }\r\n\r\n const getInitialValues = () => {\r\n if (id) {\r\n return formatDealingList(dealingsList.dealings)\r\n }\r\n return initialValues\r\n }\r\n\r\n const handleChange = (e) => {\r\n if (dirtyListenerSemaphore.current === false) {\r\n realDirty.current = \"tak\";\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n setAfterSave(true);\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(match.params.id);\r\n }\r\n }}\r\n >\r\n {(_formikProps) => {\r\n const formikProps = {\r\n ..._formikProps,\r\n setValues: (values, validate) => {\r\n handleChange();\r\n return _formikProps.setValues(values, validate)\r\n },\r\n setFieldValue: (field, value, validate) => {\r\n handleChange();\r\n return _formikProps.setFieldValue(field, value, validate)\r\n },\r\n handleChange: (e) => {\r\n handleChange();\r\n return _formikProps.handleChange(e);\r\n }\r\n }\r\n return (\r\n <>\r\n\r\n \r\n {\r\n setFormikValuesTouched(formikProps)\r\n setAfterSave(false)\r\n }}\r\n shouldExecute={afterSave === true}\r\n />\r\n \r\n {autoSaveFormDraftActive &&\r\n {\r\n DealingsService.saveDraft(id, formValues)\r\n }}\r\n customDirtyRef={realDirty}\r\n />\r\n }\r\n \r\n {(formikProps, id, index) => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n }}\r\n \r\n\r\n \r\n\r\n \r\n )\r\n }}\r\n \r\n {\r\n setGetDraftsAndSaveDealingsConfirm(false);\r\n doNotInitializeDraftsThenSaveDealings();\r\n }}\r\n onConfirm={() => {\r\n setGetDraftsAndSaveDealingsConfirm(false);\r\n getAndInitializeDraftsThenSaveDealings();\r\n }}\r\n open={getDraftsAndSaveDealingsConfirm}\r\n />\r\n \r\n )\r\n}\r\n\r\nPositionAndPartsForm.propTypes = {\r\n expanded: PropTypes.bool.isRequired,\r\n section: PropTypes.shape({\r\n editable: PropTypes.bool,\r\n messages: PropTypes.arrayOf(PropTypes.string),\r\n infoMessages: PropTypes.arrayOf(PropTypes.string),\r\n }),\r\n formId: PropTypes.string.isRequired,\r\n saveSuccessCallback: PropTypes.func.isRequired,\r\n saveErrorCallback: PropTypes.func.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n dealingsList: state.resources.dealingsList,\r\n dealing: state.resources.dealing,\r\n demandHeader: state.resources.demandHeader\r\n}), {setStepperStateCloseValidator, clearStepperStateCloseValidator,\r\n setStepperStateDeleteFormDraftFunction, clearStepperStateDeleteFormDraftFunction,\r\n setStepperStateSaveFormDraftFunction, clearStepperStateSaveFormDraftFunction\r\n})(withStyles(style)(withRouter(PositionAndPartsForm)));","\r\nexport default (formikProps) => {\r\n\tconst getTouchedKeys = (values) => {\r\n\t\tconst obj = Array.isArray(values) ? [] : {}\r\n\r\n\t\tfor (let key in values) {\r\n\t\t\tconst value = values[key];\r\n\t\t\tif (typeof value === 'object') {\r\n\r\n\t\t\t\tobj[key] = getTouchedKeys(value);\r\n\t\t\t} else {\r\n\t\t\t\tobj[key] = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn obj;\r\n\t}\r\n\r\n\tconst newTouchedObject = getTouchedKeys(formikProps.values);\r\n\tformikProps.setTouched(newTouchedObject)\r\n}","import React, {useState} from 'react';\r\nimport Button from \"components/Button\";\r\nimport Tr from \"translations/Translations\";\r\nimport {Typography, withStyles} from \"@material-ui/core\";\r\nimport DownloadIcon from '@material-ui/icons/GetApp';\r\nimport UploadImportFile from \"./components/UploadImportFile\";\r\nimport {downloadImportTemplate} from \"./lib/downloadImportTemplate\";\r\nimport ImporterForm from \"./components/ImporterForm\";\r\nimport GridBlock from \"components/GridBlock\";\r\n\r\nexport const style = theme => {\r\n return {\r\n root: {\r\n marginTop: theme.spacing(2)\r\n },\r\n button: {\r\n width: 400,\r\n height: 60,\r\n marginBottom: theme.spacing(6),\r\n },\r\n text: {\r\n marginBottom: theme.spacing(1),\r\n }\r\n }\r\n}\r\n\r\n\r\nconst ImportScreen = (\r\n {\r\n classes,\r\n id\r\n }\r\n) => {\r\n\r\n const hideDownloadingTemplate = () => {\r\n setDownloadingInProgress(false);\r\n }\r\n const downloadImportTemplateClick = async () => {\r\n setDownloadingInProgress(true);\r\n await downloadImportTemplate(id, hideDownloadingTemplate, hideDownloadingTemplate);\r\n }\r\n const [downloadingInProgress, setDownloadingInProgress] = useState(false);\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n {Tr('dealings_import_step_one_download')}\r\n \r\n\r\n \r\n {Tr('dealings_import_form')}\r\n \r\n\r\n \r\n {Tr('dealings_import_step_two_upload')}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withStyles(style)(ImportScreen)","import {clearResource, setResource, setSaveStatusError} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestBLOB, RestRequestGET} from \"../libs/RestRequest\";\r\nimport Endpoints from \"../constants/Endpoints\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst PAPERS_GENERATOR_LIST_RESOURCE_ID = 'papersGeneratorList';\r\n\r\nconst getAvailablePapers = async (id) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.PAPERS_GENERATOR(id));\r\n\r\n reduxStore.dispatch(\r\n setResource(PAPERS_GENERATOR_LIST_RESOURCE_ID, res)\r\n )\r\n } catch (error) {\r\n }\r\n}\r\n\r\n\r\nconst getRfxRequestPosition = async (id) => {\r\n return await RestRequestGET(Endpoints.RFX_REQUEST_POSITION(id));\r\n}\r\n\r\nconst getSwzParams = async (id) => {\r\n return await RestRequestGET(Endpoints.SWZ_PARAMS(id));\r\n}\r\n\r\nconst getRfxInvitedSupplierWithOffer = async (id) => {\r\n return await RestRequestGET(Endpoints.RFX_INVITED_SUPPLIER_WITH_OFFER(id));\r\n}\r\n\r\nconst getRfxInvitedSupplierPosition = async (id, supplierId) => {\r\n return await RestRequestGET(Endpoints.RFX_INVITED_SUPPLIER_POSITION(id, supplierId));\r\n}\r\n\r\n\r\nconst getSwzGeneratorParams = async (demandId) => {\r\n const swzGeneratorParams = await RestRequestGET(Endpoints.SIWZ_GET_GENERATOR_PARAMS(demandId));\r\n return swzGeneratorParams;\r\n}\r\nconst getRfxSupplierAttachmentsVerification = async (demandId, supplierId) => {\r\n const swzGeneratorParams = await RestRequestGET(Endpoints.GET_SUPPLIER_ATTACHMENTS_VERIFICATION(demandId, supplierId));\r\n return swzGeneratorParams;\r\n}\r\n\r\nconst downloadPaper = async (url, successCallback = () => {\r\n}, errorCallback = () => {\r\n}) => {\r\n try {\r\n RestRequestBLOB(url)\r\n .then(successCallback)\r\n .catch(errorCallback);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst sharePaperByUrl = async (url, shareSystem) => {\r\n let params = {\r\n shareSystem\r\n }\r\n try {\r\n const resp = await RestRequestGET(url, {params});\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return resp.success;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n return false;\r\n}\r\n\r\n\r\n\r\nconst sharePaper = async (id, paper, shareSystem) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.PAPERS_GENERATOR_PRINT_SHARE(id, paper, shareSystem));\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return resp.success;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n return false;\r\n}\r\n\r\nconst clearResources = (resource) => reduxStore.dispatch(clearResource(resource));\r\n\r\nexport default {\r\n getAvailablePapers,\r\n clearResources,\r\n getRfxRequestPosition,\r\n getSwzParams,\r\n getRfxInvitedSupplierWithOffer,\r\n getRfxInvitedSupplierPosition,\r\n getRfxSupplierAttachmentsVerification,\r\n getSwzGeneratorParams,\r\n downloadPaper,\r\n sharePaper,\r\n sharePaperByUrl,\r\n PAPERS_GENERATOR_LIST_RESOURCE_ID\r\n}","import React from 'react'\r\nimport {CircularProgress, makeStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n wrapper: {\r\n position: \"relative\"\r\n },\r\n fabProgress: {\r\n position: 'absolute',\r\n left: -4,\r\n top: -4\r\n }\r\n}))\r\n\r\nfunction WorkableIcon(\r\n {\r\n working,\r\n Icon,\r\n ...props\r\n }) {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n {working && }\r\n \r\n )\r\n}\r\n\r\nWorkableIcon.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n Icon: PropTypes.elementType,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIcon;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport ShareIcon from '@material-ui/icons/Share'\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconShareButton(\r\n {\r\n tooltip = Tr(\"send\"),\r\n ...props\r\n }) {\r\n\r\n return \r\n}\r\n\r\nWorkableIconShareButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.elementType]),\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconShareButton;","import React from \"react\";\r\nimport {ListItem, ListItemIcon, ListItemSecondaryAction, ListItemText} from \"@material-ui/core\";\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport PrintIcon from \"@material-ui/icons/Print\";\r\nimport WorkableIcon from \"components/button/WorkableIcon\";\r\nimport Tr from \"translations/Translations\";\r\nimport Typography from \"components/Typography\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconShareButton from \"components/button/WorkableIconShareButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n italic: {\r\n fontStyle: 'italic',\r\n fontSize: '0.75rem'\r\n }\r\n}))\r\n\r\nconst PaperLink = (\r\n {\r\n paper,\r\n paperWorking,\r\n editable,\r\n paperClick,\r\n showShare,\r\n shareClick\r\n }) => {\r\n\r\n const classes = useStyle();\r\n\r\n return (\r\n <>\r\n paperClick(paper)} disabled={!editable || (paper.available && paper.waiting) || (!paper.available && !paper.salesModule)}>\r\n \r\n \r\n \r\n \r\n {paper.name}\r\n {(paper.available && paper.waiting) &&\r\n {\" (\" + Tr('papers_generator_paper_waiting') + \")\"}}\r\n \r\n {showShare &&\r\n \r\n shareClick(paper)}\r\n />\r\n \r\n }\r\n \r\n\r\n )\r\n}\r\n\r\nPaperLink.propTypes = {\r\n paper: PropTypes.shape({\r\n paperId: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n customPopup: PropTypes.string,\r\n available: PropTypes.bool.isRequired,\r\n waiting: PropTypes.bool.isRequired,\r\n }),\r\n paperWorking: PropTypes.string,\r\n paperClick: PropTypes.func.isRequired,\r\n showShare: PropTypes.bool.isRequired,\r\n shareClick: PropTypes.func.isRequired,\r\n\r\n}\r\n\r\nexport default PaperLink;","import React from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from \"clsx\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tfontWeight: theme.typography.fontWeightBold,\r\n\t}\r\n})\r\n\r\nfunction BoldTypography({\r\n\tclassName,\r\n\tclasses,\r\n\tchildren,\r\n\t...other\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t)\r\n}\r\n\r\nBoldTypography.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tvariant: PropTypes.string\r\n}\r\n\r\nexport default withStyles(style)(BoldTypography);","import {useSnackbar as useSnackbarNotistack} from \"notistack\";\r\n\r\nexport default function useSnackbar() {\r\n\r\n const {closeSnackbar, enqueueSnackbar} = useSnackbarNotistack();\r\n\r\n function enqueueDefaultSnackbar(message, options) {\r\n return doSnackbar(message, options, 'default')\r\n }\r\n\r\n function enqueueInfoSnackbar(message, options) {\r\n return doSnackbar(message, options, 'info')\r\n }\r\n\r\n function enqueueSuccessSnackbar(message, options) {\r\n return doSnackbar(message, options, 'success')\r\n }\r\n\r\n function enqueueWarningSnackbar(message, options) {\r\n return doSnackbar(message, options, 'warning')\r\n }\r\n\r\n function enqueueErrorSnackbar(message, options) {\r\n return doSnackbar(message, options, 'error')\r\n }\r\n\r\n function doSnackbar(message, options, variant) {\r\n const key = enqueueSnackbar(message, {variant, onClick: () => closeSnackbar(key), ...options})\r\n return key;\r\n }\r\n\r\n return {enqueueSnackbar: enqueueDefaultSnackbar, enqueueInfoSnackbar, enqueueSuccessSnackbar, enqueueWarningSnackbar, enqueueErrorSnackbar}\r\n}","import {List, ListItem, ListItemIcon, ListItemText, Typography} from \"@material-ui/core\";\r\nimport PrintIcon from \"@material-ui/icons/Print\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport React, {useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport Loading from \"components/Loading\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport ExitToAppIcon from '@material-ui/icons/ExitToApp';\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport WorkableIcon from \"components/button/WorkableIcon\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n loading: {\r\n width: '92%'\r\n },\r\n}))\r\nconst PapersGeneratorSelectPopup = (\r\n {\r\n paperId,\r\n list,\r\n title,\r\n onClose,\r\n onSelect,\r\n onBack,\r\n selectGeneratesDocument,\r\n working,\r\n shareSystem\r\n }) => {\r\n\r\n const classes = useStyle();\r\n const [workingSupplier, setWorkingSupplier] = useState(0);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const paperClick = (supplier) => {\r\n if (workingSupplier > 0)\r\n return;\r\n\r\n setWorkingSupplier(supplier.id);\r\n\r\n if(!!shareSystem) {\r\n PapersGeneratorService.sharePaper(supplier.id, paperId, shareSystem).then(resp => resp ? enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: shareSystem}, true)) : null).finally(onClose)\r\n } else {\r\n PapersGeneratorService.downloadPaper(Endpoints.PAPERS_GENERATOR_PRINT(supplier.id, paperId), () => setWorkingSupplier(0), () => setWorkingSupplier(0))\r\n\r\n }\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n if (!!onBack) {\r\n buttons.push(createButton(Tr('back'), onBack, 'outlined'));\r\n }\r\n buttons.push(createButton(Tr('close'), onClose, undefined, working));\r\n return buttons;\r\n }\r\n\r\n const rowClick = (supplier) => {\r\n if (working)\r\n return;\r\n onSelect ? onSelect(supplier) : paperClick(supplier)\r\n }\r\n\r\n return (}\r\n >\r\n {(working || !list) && }\r\n {(!!list && list.length > 0) && \r\n {list.map((supplier) =>\r\n rowClick(supplier)}>\r\n \r\n \r\n \r\n \r\n )}\r\n }\r\n {(!!list && list.length === 0) && {Tr('no_options')}}\r\n )\r\n}\r\n\r\nexport default PapersGeneratorSelectPopup;","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PapersGeneratorSelectPopup from \"./PapersGeneratorSelectPopup\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst PapersGeneratorRfxInvitedSupplierWithOfferPopup = (\r\n {\r\n demandId,\r\n paper,\r\n onClose,\r\n shareSystem\r\n }) => {\r\n\r\n const [invitedSuppliers, setInvitedSuppliers] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getRfxInvitedSupplierWithOffer(demandId).then(resp => setInvitedSuppliers(resp));\r\n }, [demandId])\r\n\r\n return (\r\n \r\n )\r\n}\r\nPapersGeneratorRfxInvitedSupplierWithOfferPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\nexport default PapersGeneratorRfxInvitedSupplierWithOfferPopup;","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PapersGeneratorSelectPopup from \"./PapersGeneratorSelectPopup\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst PapersGeneratorRfxRequestPosition = (\r\n {\r\n demandId,\r\n paper,\r\n onClose,\r\n shareSystem\r\n }) => {\r\n\r\n const [requestPositions, setRequestPositions] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getRfxRequestPosition(demandId).then(resp => setRequestPositions(resp));\r\n }, [demandId])\r\n\r\n return (\r\n \r\n )\r\n}\r\nPapersGeneratorRfxRequestPosition.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\nexport default PapersGeneratorRfxRequestPosition;","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PapersGeneratorSelectPopup from \"./PapersGeneratorSelectPopup\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst PapersGeneratorRfxInvitedSupplierPosition = (\r\n {\r\n demandId,\r\n paper,\r\n onClose,\r\n shareSystem\r\n }) => {\r\n\r\n const [invitedSuppliers, setInvitedSuppliers] = useState(null);\r\n const [chosenSupplier, setChosenSupplier] = useState(null);\r\n const [requestPositions, setRequestPositions] = useState(null);\r\n\r\n const onSelectSupplier = (supplier) => {\r\n setChosenSupplier(supplier);\r\n PapersGeneratorService.getRfxInvitedSupplierPosition(demandId, supplier.id).then(resp => setRequestPositions(resp));\r\n }\r\n\r\n const onBack = () => {\r\n setChosenSupplier(null);\r\n setRequestPositions(null);\r\n }\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getRfxInvitedSupplierWithOffer(demandId).then(resp => setInvitedSuppliers(resp));\r\n }, [demandId])\r\n\r\n return (<>\r\n {!chosenSupplier ?\r\n \r\n : \r\n }\r\n )\r\n}\r\nPapersGeneratorRfxInvitedSupplierPosition.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\nexport default PapersGeneratorRfxInvitedSupplierPosition;","export default ({url, name}) => {\r\n\tlet a = document.createElement('a');\r\n\ta.href=url;\r\n\ta.target='_blank'\r\n\ta.click();\r\n}","import {RestRequestGET} from \"./RestRequest\";\r\nimport downloadFile from \"./downloadFile\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {setSaveStatusError} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\nimport previewFile from \"./previewFile\";\r\n\r\n\r\nconst downloadFileWithPreloadUrl = async (preloadUrl, openInBrowser, params) => {\r\n try {\r\n const resp = await RestRequestGET(preloadUrl, {params});\r\n if (resp?.success) {\r\n openInBrowser ?\r\n previewFile({url: resp.result}) :\r\n downloadFile({url: resp.result})\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\nexport default downloadFileWithPreloadUrl;","export const SiwzSourceType = {\r\n REPO: \"REPO\",\r\n SIWZ: \"SIWZ\"\r\n}\r\n","import {isMoment} from \"libs/moment\";\r\n\r\nexport default (potentiallyValidMomentObject, defaultValue) => {\r\n return isMoment(potentiallyValidMomentObject) ? (potentiallyValidMomentObject.isValid() ? potentiallyValidMomentObject : defaultValue) : defaultValue\r\n}","export default {\r\n /**\r\n * Kosz\r\n */\r\n Z_TRASH: \"z.trash\",\r\n /**\r\n * Publiczna Sesja Otwarcia Ofert\r\n */\r\n X_OPEN_OFFERS_PUBLIC_SESSION: \"x.openOffersPublicSession\",\r\n /**\r\n * Informacje z otwarcia ofert\r\n */\r\n X_OPEN_OFFERS: \"x.openOffers\",\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport Tr from 'translations/Translations';\r\nimport {clearResource, setResource, setSaveStatusError} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport getOnlyValidMomentObjectOrDefault from \"libs/getOnlyValidMomentObjectOrDefault\";\r\nimport RepoFolderTypes from \"constants/RepoFolderTypes\";\r\nimport downloadFileWithPreloadUrl from \"libs/downloadFileWithPreloadUrl\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\n\r\nconst VISIBILITY_TYPES_RESOURCE_ID = \"repoVisibilityTypes\";\r\nconst FOLDER_LIST_RESOURCE_ID = \"folderList\";\r\nconst REPO_EDITABLE_RESOURCE_ID = \"repoEditable\";\r\n\r\nconst __get = async (url, resourcesName) => {\r\n try {\r\n let res = await RestRequestGET(url)\r\n reduxStore.dispatch(setResource(resourcesName, res))\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getList = async (demandId) => {\r\n await __get(Endpoints.REPO(demandId), FOLDER_LIST_RESOURCE_ID)\r\n}\r\n\r\nconst getVisibilityTypes = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.REPO_VISIBILITY_TYPES(demandId));\r\n const types = {};\r\n Object.keys(resp).forEach(x => types[x] = Tr(`repo.visibility.${x}`));\r\n reduxStore.dispatch(setResource(VISIBILITY_TYPES_RESOURCE_ID, types));\r\n}\r\n\r\n\r\nconst addFolder = async (demandId, values) => {\r\n const {resources} = reduxStore.getState();\r\n const {folderList} = resources\r\n\r\n let res = await RestRequestPOST(Endpoints.REPO(demandId), values);\r\n\r\n const insertIndex = folderList.findIndex((el) => !(el.type.startsWith('x')));\r\n let temp = [...folderList];\r\n temp.splice(insertIndex < 0 ? 0 : insertIndex, 0, res);\r\n reduxStore.dispatch(setResource(FOLDER_LIST_RESOURCE_ID, temp))\r\n\r\n}\r\n\r\nconst updateDescription = async (demandId, {fileId, folderId}, description) => {\r\n const resp = await RestRequestPUT(Endpoints.REPO_FILE_UPDATE_DESCRIPTION(demandId, fileId), {description});\r\n updateFileRowInStore(resp, folderId);\r\n}\r\n\r\nconst updateFileRowInStore = (resp, folderId) => {\r\n\r\n const {resources} = reduxStore.getState();\r\n const {folderList} = resources;\r\n const folderIndex = folderList.findIndex((x) => {\r\n return x.identity === folderId;\r\n })\r\n const folder = folderList[folderIndex];\r\n const fileIndex = folder.files.findIndex(f => f.identity === resp.identity)\r\n folder.files[fileIndex] = resp;\r\n let newFolderList = [...folderList]\r\n\r\n reduxStore.dispatch(setResource(FOLDER_LIST_RESOURCE_ID, newFolderList))\r\n}\r\n\r\nconst changeFileVisibility = async (demandId, folderId, fileId, values) => {\r\n const visibilityEndDate = getOnlyValidMomentObjectOrDefault(values.visibilityEndDate, null);\r\n const data = {\r\n visibility: values.visibility,\r\n visibilityEndDate: visibilityEndDate ? visibilityEndDate.format() : null,\r\n }\r\n try {\r\n const respFolder = await RestRequestPUT(Endpoints.REPO_FILE_VISIBILITY(demandId, fileId), data);\r\n await _updateFolderInStore(demandId, respFolder, false);\r\n } catch (error) {\r\n }\r\n\r\n}\r\n\r\nconst changeFolderFilesVisibility = async (demandId, folderId, values) => {\r\n const visibilityEndDate = getOnlyValidMomentObjectOrDefault(values.visibilityEndDate, null);\r\n const data = {\r\n visibility: values.visibility,\r\n visibilityEndDate: visibilityEndDate ? visibilityEndDate.format() : null,\r\n }\r\n\r\n try {\r\n let res = await RestRequestPUT(Endpoints.REPO_FILES_VISIBILITY(demandId, folderId), data);\r\n await _updateFolderInStore(demandId, res, false);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst updateFolderName = async (demandId, folderId, name) => {\r\n try {\r\n let respFolder = await RestRequestPUT(Endpoints.REPO_FOLDER(demandId, folderId), {name})\r\n await _updateFolderInStore(demandId, respFolder, false);\r\n\r\n } catch (error) {\r\n }\r\n}\r\nconst updateFolderDescription = async (demandId, folderId, description) => {\r\n try {\r\n let respFolder = await RestRequestPUT(Endpoints.REPO_FOLDER(demandId, folderId), {description})\r\n await _updateFolderInStore(demandId, respFolder, false);\r\n\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst addFiles = async (demandId, folderId, values) => {\r\n let data = {\r\n \"list\": [...values],\r\n }\r\n try {\r\n let respFolder = await RestRequestPOST(Endpoints.REPO_FOLDER(demandId, folderId), data)\r\n await _updateFolderInStore(demandId, respFolder, false);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst refreshFolder = async (demandId, folderId) => {\r\n try {\r\n let respFolder = await RestRequestGET(Endpoints.REPO_FOLDER(demandId, folderId))\r\n await _updateFolderInStore(demandId, respFolder, false);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst _updateFolderInStore = async (demandId, respFolder, updateTrash) => {\r\n const {resources} = reduxStore.getState();\r\n const {folderList} = resources;\r\n\r\n const newFolderList = folderList.map((el, i) => {\r\n if (el.identity === respFolder.identity) {\r\n return respFolder\r\n }\r\n return el;\r\n });\r\n if(updateTrash) {\r\n await _doUpdateTrash(demandId, newFolderList, respFolder.identity)\r\n }\r\n reduxStore.dispatch(setResource(FOLDER_LIST_RESOURCE_ID, newFolderList))\r\n}\r\n\r\nconst updateTrash = async (demandId) => {\r\n const {resources} = reduxStore.getState();\r\n const {folderList} = resources;\r\n const modified = await _doUpdateTrash(demandId, folderList);\r\n if(modified) {\r\n reduxStore.dispatch(setResource(FOLDER_LIST_RESOURCE_ID, [...folderList]))\r\n }\r\n\r\n}\r\n\r\nconst _doUpdateTrash = async (demandId, newFolderList, workingFolderIdentity) => {\r\n if (updateTrash) {\r\n let trashIndex = newFolderList.findIndex(el => el.identity !== workingFolderIdentity && el.type === RepoFolderTypes.Z_TRASH);\r\n if (trashIndex > -1) {\r\n const trash = await RestRequestGET(Endpoints.REPO_FOLDER(demandId, newFolderList[trashIndex].identity));\r\n newFolderList[trashIndex] = trash;\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\n\r\n\r\nconst deleteItem = async (demandId, fileId) => {\r\n try {\r\n const respFolder = await RestRequestDELETE(Endpoints.REPO_FILE(demandId, fileId));\r\n await _updateFolderInStore(demandId, respFolder, true);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n}\r\n\r\nconst deleteFolder = async (demandId, folderId) => {\r\n const {resources} = reduxStore.getState();\r\n const {folderList} = resources;\r\n try {\r\n const res = await RestRequestDELETE(Endpoints.REPO_FOLDER(demandId, folderId));\r\n if (res.success) {\r\n\r\n let newFolderList = folderList.filter(x => x.identity !== folderId);\r\n\r\n const trashIndex = newFolderList.findIndex(x => x.type === RepoFolderTypes.Z_TRASH && x.identity !== folderId);\r\n\r\n if (trashIndex > -1) {\r\n const trash = await RestRequestGET(Endpoints.REPO_FOLDER(demandId, newFolderList[trashIndex].identity));\r\n newFolderList[trashIndex] = trash;\r\n }\r\n\r\n reduxStore.dispatch(setResource(FOLDER_LIST_RESOURCE_ID, newFolderList))\r\n }\r\n } catch (error) {\r\n }\r\n}\r\n\r\n\r\nconst deleteAll = async (demandId, folderId) => {\r\n try {\r\n const respFolder = await RestRequestDELETE(Endpoints.REPO_DELETE_ALL_FOLDER_FILES(demandId, folderId))\r\n await _updateFolderInStore(demandId, respFolder, true);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst downloadAll = async (demandId, folderId) => {\r\n try {\r\n await RestRequestBLOB(Endpoints.REPO_DOWNLOAD_ALL(demandId, folderId));\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getDownloadHistory = async (demandId, fileId, pagination) => {\r\n\r\n const params = {\r\n ...pagination\r\n }\r\n\r\n const url = Endpoints.REPO_FILE_DOWNLOAD_HISTORY(demandId, fileId);\r\n try {\r\n const repoDownloadHistory = await RestRequestGET(url, {params});\r\n return repoDownloadHistory;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst isRepoEditable = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.REPO_EDITABLE(demandId));\r\n reduxStore.dispatch(setResource(REPO_EDITABLE_RESOURCE_ID, resp));\r\n}\r\n\r\nconst clearResources = (id) => {\r\n reduxStore.dispatch(clearResource(id));\r\n}\r\n\r\nconst getDownloadFile = async (demandId, fileId, openInBrowser) => {\r\n await downloadFileWithPreloadUrl(Endpoints.REPO_FILE_GET_DOWNLOAD_URL(demandId, fileId, openInBrowser), openInBrowser);\r\n}\r\n\r\nconst shareRepo = async (demandId, fileId, system) => {\r\n const resp = await RestRequestPOST(Endpoints.REPO_FILE_SHARE(demandId, fileId), {system});\r\n try {\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n return false;\r\n}\r\n\r\nconst shareRepoFolder = async (demandId, folderId, system) => {\r\n const resp = await RestRequestPOST(Endpoints.REPO_FOLDER_SHARE(demandId, folderId), {system});\r\n try {\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n return false;\r\n}\r\n\r\nconst buildIdentity = (fileId, folderId) => ({fileId, folderId});\r\n\r\nexport default {\r\n addFolder,\r\n getList,\r\n addFiles,\r\n refreshFolder,\r\n deleteItem,\r\n deleteAll,\r\n deleteFolder,\r\n downloadAll,\r\n updateFolderName,\r\n updateFolderDescription,\r\n getDownloadHistory,\r\n getVisibilityTypes,\r\n changeFileVisibility,\r\n changeFolderFilesVisibility,\r\n updateDescription,\r\n updateFileRowInStore,\r\n clearResources,\r\n getDownloadFile,\r\n shareRepo,\r\n shareRepoFolder,\r\n isRepoEditable,\r\n buildIdentity,\r\n updateTrash,\r\n FOLDER_LIST_RESOURCE_ID,\r\n VISIBILITY_TYPES_RESOURCE_ID,\r\n REPO_EDITABLE_RESOURCE_ID\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {clearResource, setResource, setSaveStatusDialog, setSaveStatusError, setSaveStatusLoading} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport validateSection from './helpers/validateSection'\r\nimport Tr from \"../translations/Translations\";\r\nimport downloadFileWithPreloadUrl from \"libs/downloadFileWithPreloadUrl\";\r\nimport {SiwzSourceType} from \"../components/complex/documentsTables/swz/constants/SiwzSourceType\";\r\nimport RepoService from \"./RepoService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\n\r\nconst __get = async (url, resourcesName) => {\r\n try {\r\n const res = await RestRequestGET(url);\r\n\r\n reduxStore.dispatch(\r\n setResource(resourcesName, res)\r\n )\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst SIWZ_TYPE_LIST_RESOURCE_ID = \"typeSiwzList\";\r\nconst SIWZ_LIST_RESOURCE_ID = \"siwzList\";\r\nconst SIWZ_EDITABLE_RESOURCE_ID = \"siwzEditable\";\r\n\r\n\r\nconst send = async (demandId, files, demandValidationSectionId) => {\r\n\r\n let list = []\r\n files.forEach(x => {\r\n list.push({\r\n repositoryId: x.identity,\r\n type: x.type,\r\n description: \"\",\r\n parentSiwzId: x.parent,\r\n publish: x.autopublish\r\n })\r\n });\r\n\r\n const data = {\r\n \"list\": list\r\n }\r\n\r\n const addResp = await RestRequestPOST(Endpoints.SIWZ(demandId), data);\r\n await updateAfterAdd(demandId, addResp, demandValidationSectionId);\r\n}\r\n\r\nconst moveFromRepo = async (demandId, files, demandValidationSectionId) => {\r\n const list = []\r\n files.forEach(x => {\r\n list.push({\r\n repositoryId: x.identity,\r\n type: x.type,\r\n description: \"\",\r\n parentSiwzId: x.parent,\r\n publish: x.autopublish\r\n });\r\n });\r\n const data = {\r\n \"list\": list\r\n }\r\n\r\n const addResp = await RestRequestPOST(Endpoints.SIWZ_MOVE_FROM_REPO(demandId), data);\r\n await updateAfterAdd(demandId, addResp, demandValidationSectionId);\r\n}\r\n\r\nconst updateAfterAdd = async (demandId, addResp, demandValidationSectionId) => {\r\n //jeśli któryś z dodanych plików miał wyższą wersję musze przeładowac wszystko\r\n if (addResp.findIndex(x => x.version > 1) > -1) {\r\n await getList(demandId);\r\n } else {\r\n const {resources} = reduxStore.getState();\r\n const newList = [...addResp.reverse(), ...resources[SIWZ_LIST_RESOURCE_ID]];\r\n reduxStore.dispatch(setResource(SIWZ_LIST_RESOURCE_ID, newList));\r\n }\r\n\r\n if (demandValidationSectionId)\r\n await validateSection(demandValidationSectionId, demandId, false);\r\n}\r\n\r\n\r\nconst addBzpNotice = async (demandId, bzpNoticeId, siwzType) => {\r\n const url = Endpoints.SIWZ_ADD_BZP_NOTICE(demandId)\r\n\r\n const data = {\r\n bzpNoticeId,\r\n siwzType\r\n }\r\n\r\n return await RestRequestPOST(url, data);\r\n}\r\n\r\nconst deleteItem = async (demandId, {identity, source, rootIdentity}, demandValidationSectionId) => {\r\n const resp = await RestRequestDELETE(Endpoints.SIWZ_ID(demandId, identity, source));\r\n try {\r\n if (resp.success) {\r\n\r\n const {resources} = reduxStore.getState();\r\n const curList = resources[SIWZ_LIST_RESOURCE_ID];\r\n const itemToRemove = curList.find(siwz => siwz.identity === identity && siwz.source === source);\r\n\r\n if (itemToRemove.version === 1) {\r\n reduxStore.dispatch(setResource(SIWZ_LIST_RESOURCE_ID, curList.filter(siwz => !(siwz.identity === identity && siwz.source === source))));\r\n } else {\r\n await getList(demandId);\r\n }\r\n\r\n if (source === SiwzSourceType.REPO) {\r\n RepoService.updateTrash(demandId)\r\n }\r\n\r\n if (demandValidationSectionId)\r\n await validateSection(demandValidationSectionId, demandId, false);\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\nconst publish = async (demandId, {identity, source, rootIdentity}, demandValidationSectionId) => {\r\n const resp = await RestRequestPUT(Endpoints.SIWZ_ID_PUBLISH(demandId, identity, source));\r\n try {\r\n if (resp.success) {\r\n updateSiwzRowInStore(resp.result, true, rootIdentity);\r\n if (demandValidationSectionId)\r\n await validateSection(demandValidationSectionId, demandId, false);\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\nconst unpublish = async (demandId, {identity, source, rootIdentity}, demandValidationSectionId) => {\r\n const resp = await RestRequestPUT(Endpoints.SIWZ_ID_UNPUBLISH(demandId, identity, source));\r\n try {\r\n if (resp.success) {\r\n updateSiwzRowInStore(resp.result, true, rootIdentity)\r\n if (demandValidationSectionId)\r\n await validateSection(demandValidationSectionId, demandId, false);\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\nconst getDownloadHistory = async (demandId, {identity, source, rootIdentity}, pagination) => {\r\n\r\n const params = {\r\n ...pagination\r\n }\r\n\r\n const url = Endpoints.SIWZ_ID_DOWNLOAD_HISTORY(demandId, identity, source);\r\n const siwzDownloadHistory = await RestRequestGET(url, {params});\r\n return siwzDownloadHistory;\r\n}\r\n\r\nconst getVersions = async (demandId, {identity, source}) => {\r\n const url = Endpoints.SIWZ_ID_VERSIONS(demandId, identity, source);\r\n const resp = await RestRequestGET(url);\r\n\r\n const {resources} = reduxStore.getState();\r\n const siwzList = resources[SIWZ_LIST_RESOURCE_ID].map((x) => {\r\n if (x.identity === identity) {\r\n return {...x, versions: resp.filter(x => x.identity !== identity)};\r\n } else {\r\n return x;\r\n }\r\n });\r\n reduxStore.dispatch(setResource(SIWZ_LIST_RESOURCE_ID, siwzList));\r\n}\r\n\r\nconst clearVersions = async (demandId, {identity, source}) => {\r\n const {resources} = reduxStore.getState();\r\n const siwzList = resources[SIWZ_LIST_RESOURCE_ID].map((x) => {\r\n if (x.identity === identity) {\r\n return {...x, versions: undefined};\r\n } else {\r\n return x;\r\n }\r\n });\r\n reduxStore.dispatch(setResource(SIWZ_LIST_RESOURCE_ID, siwzList));\r\n}\r\n\r\nconst deleteAll = async (demandId, demandValidationSectionId) => {\r\n const url = Endpoints.SIWZ(demandId);\r\n await RestRequestDELETE(url);\r\n reduxStore.dispatch(setResource(SIWZ_LIST_RESOURCE_ID, []));\r\n if (demandValidationSectionId)\r\n await validateSection(demandValidationSectionId, demandId);\r\n}\r\n\r\nconst getList = async (demandId) => {\r\n await __get(Endpoints.SIWZ(demandId), SIWZ_LIST_RESOURCE_ID)\r\n}\r\n\r\nconst getTypes = async (demandId) => {\r\n await __get(Endpoints.SIWZ_TYPES(demandId), SIWZ_TYPE_LIST_RESOURCE_ID)\r\n}\r\n\r\nconst downloadAll = async (demandId) => {\r\n await RestRequestBLOB(Endpoints.SIWZ_DOWNLOAD_ALL(demandId))\r\n}\r\n\r\n\r\nconst save = async (demandId, demandValidationSectionId) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n if (demandValidationSectionId)\r\n await validateSection(demandValidationSectionId, demandId);\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n}\r\n\r\nconst validateSIWZ = async (demandId) => {\r\n return RestRequestGET(Endpoints.SIWZ_VALIDATE(demandId));\r\n}\r\n\r\nconst validateDocuments = async (demandId) => {\r\n return RestRequestGET(Endpoints.SIWZ_VALIDATE_DOCUMENTS(demandId));\r\n}\r\n\r\nconst updateSiwzRowInStore = (siwzRow, preserveVersions, rootRowIdentity) => {\r\n const {resources} = reduxStore.getState();\r\n\r\n const rootRowId = rootRowIdentity ? rootRowIdentity : siwzRow.identity;\r\n const versionRowId = rootRowIdentity ? siwzRow.identity : null;\r\n\r\n const siwzList = resources[SIWZ_LIST_RESOURCE_ID].map((x) => {\r\n if (x.identity === rootRowId) {\r\n if (versionRowId) {\r\n if (x.versions) {\r\n const versions = x.versions.map((r) => {\r\n if (r.identity === versionRowId)\r\n return siwzRow\r\n else\r\n return r\r\n });\r\n return {...x, versions}\r\n } else {\r\n return {...x};\r\n }\r\n } else {\r\n if (preserveVersions) {\r\n siwzRow.versions = x.versions;\r\n }\r\n return siwzRow;\r\n }\r\n } else {\r\n return x;\r\n }\r\n\r\n });\r\n reduxStore.dispatch(setResource(SIWZ_LIST_RESOURCE_ID, siwzList));\r\n}\r\n\r\nconst updateDescription = async (demandId, {identity, source, rootIdentity}, description) => {\r\n const resp = await RestRequestPUT(Endpoints.SIWZ_ID_UPDATE_DESCRIPTION(demandId, identity, source), {description});\r\n try {\r\n if (resp.success) {\r\n updateSiwzRowInStore(resp.result, true, rootIdentity)\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\nconst shareSiwz = async (demandId, {identity, source, rootIdentity}, system) => {\r\n const resp = await RestRequestPOST(Endpoints.SIWZ_ID_UPDATE_SHARE(demandId, identity, source), {system});\r\n try {\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n return false;\r\n}\r\n\r\nconst getDownloadFile = async (demandId, {identity, source, rootIdentity}, openInBrowser) => {\r\n await downloadFileWithPreloadUrl(\r\n Endpoints.SIWZ_ID_GET_DOWNLOAD_URL(demandId, identity, source, openInBrowser),\r\n openInBrowser);\r\n}\r\n\r\nconst generateSWZ = (demandId, arr, finallyCallback = () => {\r\n}) => {\r\n const data = {\r\n list: arr\r\n }\r\n RestRequestBLOB(Endpoints.SIWZ_POST_PRINT_SWZ(demandId), {method: 'post', data: data})\r\n .finally(finallyCallback);\r\n}\r\n\r\nconst shareGenerateSWZ = async (demandId, arr, shareSystem) => {\r\n const data = {\r\n list: arr\r\n }\r\n const params = {\r\n shareSystem\r\n }\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.SIWZ_POST_SHARE_SWZ(demandId), data, {params})\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return resp.success;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n return false;\r\n\r\n\r\n}\r\n\r\nconst isSiwzEditable = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.SIWZ_EDITABLE(demandId));\r\n reduxStore.dispatch(setResource(SIWZ_EDITABLE_RESOURCE_ID, resp));\r\n}\r\n\r\nconst buildSiwzIdentity = (identity, source, rootIdentity = null) => {\r\n return {identity, source, rootIdentity};\r\n}\r\nconst clearResources = (id) => {\r\n reduxStore.dispatch(clearResource(id));\r\n}\r\n\r\nexport default {\r\n save,\r\n validateSIWZ,\r\n validateDocuments,\r\n getList,\r\n getTypes,\r\n send,\r\n moveFromRepo,\r\n deleteItem,\r\n deleteAll,\r\n downloadAll,\r\n unpublish,\r\n publish,\r\n getDownloadHistory,\r\n getVersions,\r\n clearVersions,\r\n updateDescription,\r\n addBzpNotice,\r\n generateSWZ,\r\n shareGenerateSWZ,\r\n shareSiwz,\r\n getDownloadFile,\r\n isSiwzEditable,\r\n buildSiwzIdentity,\r\n clearResources,\r\n SIWZ_LIST_RESOURCE_ID,\r\n SIWZ_TYPE_LIST_RESOURCE_ID,\r\n SIWZ_EDITABLE_RESOURCE_ID\r\n}","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Select from \"components/Select\";\r\n\r\nfunction SwzGeneratorQuestionSelect(\r\n {\r\n id,\r\n question,\r\n formikProps\r\n }) {\r\n return (\r\n ({label: x.text, value: x.selectValue}))}\r\n />\r\n )\r\n}\r\n\r\nSwzGeneratorQuestionSelect.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default SwzGeneratorQuestionSelect;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Checkbox from \"components/Checkbox\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n wrap: {\r\n marginLeft: theme.spacing(4)\r\n }\r\n}));\r\n\r\n\r\nfunction SwzGeneratorQuestionCheckbox(\r\n {\r\n id,\r\n question,\r\n formikProps\r\n }) {\r\n const classes = useStyle();\r\n\r\n const changeMain = (e) => {\r\n const fPName = e.target.name;\r\n const qKey = fPName.replace(/#/g, '.');\r\n const opt = question.options.find((x) => x.key === qKey && x.subOptions)\r\n if(opt) {\r\n const checked = e.target.checked;\r\n const sub = opt.subOptions.reduce((prev, curr) => {\r\n return {\r\n ...prev,\r\n [curr.key.replace(/\\./g, '#')]: checked\r\n }\r\n }, {})\r\n sub[fPName] = checked;\r\n formikProps.setValues({\r\n ...formikProps.values,\r\n ...sub\r\n })\r\n }\r\n }\r\n\r\n const changeSub = (e) => {\r\n const fPName = e.target.name;\r\n const qKey = fPName.replace(/#/g, '.');\r\n const opt = question.options.find((x) => !!x.subOptions && x.subOptions.find(y => y.key === qKey))\r\n const checked = e.target.checked;\r\n if(opt) {\r\n if(checked) {\r\n formikProps.setFieldValue(opt.key.replace(/\\./g, '#'), checked);\r\n } else {\r\n const otherChecked = opt.subOptions.find(y => y.key !== qKey && getObjectValue(y.key.replace(/\\./g, '#'), formikProps.values, false));\r\n if(!otherChecked) {\r\n formikProps.setFieldValue(opt.key.replace(/\\./g, '#'), checked);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return (question.options.map(x => (\r\n
\r\n \r\n
\r\n {!!x.subOptions ?\r\n x.subOptions.map(so => (\r\n
\r\n \r\n
\r\n )) : null}\r\n
\r\n )))\r\n}\r\n\r\nSwzGeneratorQuestionCheckbox.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default SwzGeneratorQuestionCheckbox;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport HelpTooltip from \"components/HelpTooltip\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport SwzGeneratorQuestionSelect from \"./SwzGeneratorQuestionSelect\";\r\nimport SwzGeneratorQuestionCheckbox from \"./SwzGeneratorQuestionCheckbox\";\r\n\r\nfunction SwzGeneratorQuestion(\r\n {\r\n id,\r\n question,\r\n formikProps\r\n }) {\r\n return (
\r\n \r\n {question.text}\r\n {!!question.helpMessage && }\r\n \r\n {question.type === \"checkbox\" ?\r\n \r\n :\r\n \r\n }\r\n\r\n\r\n
\r\n )\r\n}\r\n\r\nSwzGeneratorQuestion.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default SwzGeneratorQuestion;","import React from 'react'\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport Title from \"components/Title\";\r\nimport HelpTooltip from \"components/HelpTooltip\";\r\nimport SwzGeneratorQuestion from \"./SwzGeneratorQuestion\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n title: {\r\n background: theme.palette.background.greyBackground,\r\n padding: theme.spacing(1),\r\n borderRadius: theme.shape.borderRadius,\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n marginBottom: theme.spacing(2)\r\n },\r\n wrap: {\r\n marginLeft: theme.spacing(2)\r\n },\r\n helpText: {\r\n textIndent: -1 * theme.spacing(2),\r\n marginLeft: theme.spacing(2),\r\n marginBottom: theme.spacing()\r\n\r\n }\r\n}));\r\n\r\nfunction SwzGeneratorSection(\r\n {\r\n id,\r\n section,\r\n formikProps\r\n }) {\r\n const classes = useStyle();\r\n return (\r\n
\r\n \r\n {section.text}\r\n {!!section.helpMessage && <HelpTooltip text={\r\n new DOMParser().parseFromString(section.helpMessage, \"text/html\").documentElement.textContent}/>}\r\n \r\n
\r\n {section.questions.map(x => (\r\n \r\n ))}\r\n
\r\n {\r\n !!section?.helpTexts.length &&
\r\n {section.helpTexts.map(x => (\r\n {x.message}\r\n ))}\r\n
\r\n }\r\n\r\n
\r\n )\r\n}\r\n\r\nexport default SwzGeneratorSection;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport SiwzService from \"services/SiwzService\";\r\nimport Loading from \"components/Loading\";\r\nimport SwzGeneratorSection from \"./SwzGeneratorSection\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport {connect} from \"react-redux\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n wrap: {\r\n minWidth: 600,\r\n minHeight: 40\r\n }\r\n}));\r\n\r\n\r\nfunction ChooseSwzGeneratorOptions(\r\n {\r\n id,\r\n onClose,\r\n formSubmit,\r\n shareSystem\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [sections, setSections] = useState(null);\r\n const [working, setWorking] = useState(true);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getSwzGeneratorParams(id).then(resp => {\r\n setSections(resp);\r\n setWorking(false);\r\n });\r\n }, [id])\r\n\r\n const getInitialValues = (sections) => {\r\n const inits = {};\r\n sections.result.forEach(s => {\r\n s.questions.forEach(q => {\r\n q.type === 'select' ?\r\n inits[q.key.replace(/\\./g, '#')] = \"\" + !q.options[0].value\r\n :\r\n q.options.forEach(o => {\r\n inits[o.key.replace(/\\./g, '#')] = o.value;\r\n if (o.subOptions) {\r\n o.subOptions.forEach(so => {\r\n inits[so.key.replace(/\\./g, '#')] = so.value;\r\n })\r\n }\r\n })\r\n })\r\n })\r\n return inits\r\n }\r\n const formId = useId();\r\n const onSubmit = (values) => {\r\n setWorking(true);\r\n const selected = [];\r\n for (const [key, value] of Object.entries(values)) {\r\n if (value === true || value === 'true') {\r\n selected.push(key.replace(/#/g, '.'))\r\n }\r\n }\r\n\r\n if (shareSystem) {\r\n SiwzService.shareGenerateSWZ(id, selected, shareSystem).then(resp => resp ? enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: shareSystem}, true)) : null).finally(onClose);\r\n } else {\r\n SiwzService.generateSWZ(id, selected, onClose)\r\n }\r\n\r\n }\r\n\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined'));\r\n buttons.push(createButton(Tr('swz.button.generate'), () => formSubmit[formId](), undefined, working));\r\n return ;\r\n }\r\n return (\r\n \r\n
\r\n {\r\n !sections ?\r\n :\r\n <>\r\n \r\n {(formikProps) => (\r\n sections.result.map(x => (\r\n ))\r\n )}\r\n \r\n\r\n \r\n }\r\n
\r\n \r\n )\r\n}\r\n\r\nChooseSwzGeneratorOptions.propTypes = {\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(ChooseSwzGeneratorOptions);","import {List, ListItem, ListItemIcon, ListItemText, Typography} from \"@material-ui/core\";\r\nimport React, {useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport Loading from \"components/Loading\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Checkbox from \"components/Checkbox\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n loading: {\r\n width: '92%'\r\n },\r\n}))\r\n\r\nconst PapersGeneratorSelectFilesPopup = (\r\n {\r\n list,\r\n title,\r\n onClose,\r\n onBack,\r\n onGenerate,\r\n working\r\n }) => {\r\n const classes = useStyle();\r\n const [selectedPos, setSelectedPos] = useState([]);\r\n\r\n const generateClick = () => onGenerate(selectedPos);\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n if(!!onBack) {\r\n buttons.push(createButton(Tr('back'), onBack, 'outlined'));\r\n }\r\n buttons.push(createButton(Tr('close'), onClose, 'outlined'));\r\n buttons.push(createButton(Tr('generate_report'), generateClick, undefined, working || selectedPos.length === 0));\r\n return buttons;\r\n }\r\n\r\n const onSelect = (supplier) => {\r\n if(working)\r\n return;\r\n const added = selectedPos.indexOf(supplier.id) === -1;\r\n if (added) {\r\n setSelectedPos(x => [...x, supplier.id]);\r\n } else {\r\n setSelectedPos(x => x.filter(x => x !== supplier.id));\r\n }\r\n }\r\n\r\n return (}\r\n >\r\n {(working || !list) && }\r\n {(!!list && list.length > 0) && \r\n {list.map((position) =>\r\n onSelect(position)}>\r\n \r\n -1}\r\n onChange={() => onSelect(position)}\r\n disabled={working}\r\n />\r\n \r\n \r\n )}\r\n }\r\n {(!!list && list.length === 0) && {Tr('no_options')}}\r\n )\r\n}\r\n\r\nexport default PapersGeneratorSelectFilesPopup;","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PapersGeneratorSelectPopup from \"./PapersGeneratorSelectPopup\";\r\nimport PapersGeneratorSelectFilesPopup from \"./PapersGeneratorSelectFilesPopup\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport PropTypes from \"prop-types\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\n\r\nconst PapersGeneratOfferFilesVerification = (\r\n {\r\n demandId,\r\n paper,\r\n onClose,\r\n shareSystem\r\n }) => {\r\n\r\n const [invitedSuppliers, setInvitedSuppliers] = useState(null);\r\n const [chosenSupplier, setChosenSupplier] = useState(null);\r\n const [requestPositions, setRequestPositions] = useState(null);\r\n const [working, setWorking] = useState(false);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const onSelectSupplier = (supplier) => {\r\n setChosenSupplier(supplier);\r\n PapersGeneratorService.getRfxSupplierAttachmentsVerification(demandId, supplier.id).then(resp => setRequestPositions(resp));\r\n }\r\n\r\n const onBack = () => {\r\n setChosenSupplier(null);\r\n setRequestPositions(null);\r\n }\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getRfxInvitedSupplierWithOffer(demandId).then(resp => setInvitedSuppliers(resp));\r\n }, [demandId])\r\n\r\n\r\n const generateClick = (selectedPos) => {\r\n setWorking(true);\r\n const url = Endpoints.PAPERS_GENERATOR_DEMAND_ATTACHMENT_VERIFICATION_REPORT(demandId) + `?supplierId=${chosenSupplier.id}&positionIds=${selectedPos.join(\",\")}`;\r\n\r\n if (shareSystem) {\r\n PapersGeneratorService.sharePaperByUrl(url, shareSystem).then(resp => resp ? enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: shareSystem}, true)) : null).finally(() => setWorking(false));;\r\n } else {\r\n PapersGeneratorService.downloadPaper(url, () => setWorking(false), () => setWorking(false))\r\n }\r\n\r\n }\r\n\r\n return (<>\r\n {!chosenSupplier ?\r\n \r\n : \r\n }\r\n )\r\n}\r\n\r\n\r\nPapersGeneratOfferFilesVerification.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\n\r\nexport default PapersGeneratOfferFilesVerification;","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PapersGeneratorSelectPopup from \"./PapersGeneratorSelectPopup\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport PropTypes from \"prop-types\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\n\r\nconst PapersGeneratorMessageFilesVerification = (\r\n {\r\n demandId,\r\n paper,\r\n onClose,\r\n shareSystem\r\n }) => {\r\n\r\n const [invitedSuppliers, setInvitedSuppliers] = useState(null);\r\n const [working, setWorking] = useState(false);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getRfxInvitedSupplierWithOffer(demandId).then(resp => setInvitedSuppliers(resp));\r\n }, [demandId])\r\n\r\n const generateClick = (supplier) => {\r\n setWorking(true);\r\n const url = Endpoints.PAPERS_GENERATOR_CORRESPONDENCE_ATTACHMENT_VERIFICATION_REPORT(demandId) + `?cdId=ris_${supplier.id}`;\r\n\r\n if (shareSystem) {\r\n PapersGeneratorService.sharePaperByUrl(url, shareSystem).then(resp => resp ? enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: shareSystem}, true)) : null).finally(() => setWorking(false));\r\n } else {\r\n PapersGeneratorService.downloadPaper(url, () => setWorking(false), () => setWorking(false))\r\n }\r\n }\r\n return (\r\n \r\n )\r\n}\r\nPapersGeneratorMessageFilesVerification.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\nexport default PapersGeneratorMessageFilesVerification;","import {snakeCase} from \"lodash\";\r\nimport {isMoment} from \"libs/moment\";\r\n\r\nconst getJavaKey = (jsKey) => {\r\n return snakeCase(jsKey).toUpperCase();\r\n}\r\n\r\nconst getParamSerializedValue = (value) => {\r\n\r\n if (isMoment(value)) {\r\n return value.format()\r\n }\r\n return value;\r\n}\r\n\r\n\r\nconst applySearchParams = (search = {}, curParams = {}) => {\r\n let searchIndex = 0;\r\n Object.keys(search).reduce((prev, cur) => {\r\n const val = search[cur];\r\n if (val === 0 || val === false || !!val) {\r\n prev['filters[' + searchIndex + '].column'] = getJavaKey(cur);\r\n prev['filters[' + searchIndex + '].value'] = getParamSerializedValue(search[cur]);\r\n searchIndex++;\r\n }\r\n return prev;\r\n }, curParams);\r\n\r\n return curParams;\r\n}\r\n\r\nexport default applySearchParams;","const applySortParams = (sort = {}, curParams = {}) => {\r\n curParams['sort[0].column'] = sort.column;\r\n curParams['sort[0].direction'] = sort.direction.toUpperCase();\r\n return curParams;\r\n\r\n}\r\nexport default applySortParams;","import Endpoints from 'constants/Endpoints';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestGET} from 'libs/RestRequest';\r\n\r\nconst PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID = \"purchasingGroupStageSections\";\r\n\r\nconst __get = async (url, resourcesName, transformer) => {\r\n try {\r\n let res = await RestRequestGET(url)\r\n if (transformer) {\r\n res = transformer(res);\r\n }\r\n reduxStore.dispatch(setResource(resourcesName, res))\r\n return res;\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n}\r\n\r\nconst __sectionResponseTranformer = (resp) => {\r\n return resp.reduce((prev, curr) => {\r\n prev[curr.section] = curr;\r\n return prev;\r\n }, {})\r\n}\r\n\r\nconst getStage1Sections = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_SECTIONS_PREPARING(groupId ? groupId : -1), PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID, __sectionResponseTranformer)\r\n}\r\n\r\nconst getStage2Sections = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_SECTIONS_COLLECTING_DATA(groupId), PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID, __sectionResponseTranformer)\r\n}\r\n\r\nconst getSections = async (groupId, sections) => {\r\n const params = {sections: Array.isArray(sections) ? sections.join(\",\") : sections}\r\n const resp = await RestRequestGET(Endpoints.PURCHASING_GROUP_SECTIONS_SECTION(groupId), {params})\r\n const respTransformed = __sectionResponseTranformer(resp);\r\n const {resources} = reduxStore.getState();\r\n const curSections = resources[PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID] || {};\r\n const newSections = {...curSections, ...respTransformed}\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID, newSections));\r\n}\r\n\r\nconst clearResources = (resourceId) => reduxStore.dispatch(clearResource(resourceId))\r\n\r\nexport default {\r\n getStage1Sections,\r\n getStage2Sections,\r\n getSections,\r\n\r\n clearResources,\r\n PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID\r\n}","export const DemandValidationSectionStatus = {\r\n OK: \"OK\",\r\n EMPTY: \"EMPTY\",\r\n ERROR: \"ERROR\",\r\n DISABLED: \"DISABLED\",\r\n UNAVAILABLE: \"UNAVAILABLE\"\r\n}\r\n","export default (querySelector, extraOffset = 0, scrollElement = window) => {\r\n if (!querySelector) {\r\n return;\r\n }\r\n\r\n const element = querySelector instanceof Element ? querySelector : document.querySelector(querySelector);\r\n if (!element) {\r\n return;\r\n }\r\n\r\n const boundingClientRect = element.getBoundingClientRect();\r\n\r\n const stageBar = document.querySelector('#stageBar');\r\n const toolBar = document.querySelector('#toolBar');\r\n\r\n let offsetTop = boundingClientRect.top + window.scrollY;\r\n\r\n if (stageBar) {\r\n offsetTop -= stageBar.clientHeight;\r\n }\r\n\r\n if (toolBar) {\r\n offsetTop -= toolBar.clientHeight;\r\n }\r\n offsetTop -= 20;\r\n offsetTop -= extraOffset\r\n\r\n\r\n if(scrollElement !== window) {\r\n scrollElement = document.querySelector(scrollElement)\r\n }\r\n\r\n scrollElement.scrollTo({behavior: 'smooth', top: offsetTop});\r\n}\r\n","import Tr from \"translations/Translations\";\r\n\r\nexport default {\r\n number: {\r\n id: 'number',\r\n label: Tr('purchase_group_number')\r\n },\r\n organization: {\r\n id: 'organization',\r\n label: Tr('organizational_unit'),\r\n transform: (org) => org ? org.name : \"\"\r\n },\r\n name: {\r\n id: 'name',\r\n label: Tr('purchase_group_name')\r\n },\r\n description: {\r\n id: 'description',\r\n label: Tr('purchase_group_description')\r\n }\r\n}","import React from 'react'\r\nimport GridBlock from \"components/GridBlock\";\r\nimport TextInput from \"components/TextInput\";\r\nimport OrganizationInput from \"components/OrganizationInput\";\r\nimport PropTypes from \"prop-types\";\r\nimport propertyTransformer from \"./history/propertyTransformer\";\r\n\r\nfunction PurchasingGroupStage1BasicDataForm(\r\n {\r\n formikProps,\r\n basicData,\r\n disabled,\r\n }) {\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nPurchasingGroupStage1BasicDataForm.propTypes = {\r\n basicData: PropTypes.shape({\r\n purchasingGroup: PropTypes.object.isRequired,\r\n numberingAutomated: PropTypes.bool.isRequired,\r\n availableOrganizations: PropTypes.arrayOf(PropTypes.shape({\r\n externalId: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n orgId: PropTypes.string.isRequired,\r\n })).isRequired\r\n })\r\n}\r\n\r\nexport default PurchasingGroupStage1BasicDataForm;","import React from 'react'\r\nimport HistoryIcon from '@material-ui/icons/History';\r\nimport Button from 'components/Button';\r\nimport Tr from 'translations/Translations';\r\n\r\n\r\nfunction HistoryButton({\r\n\tclasses,\r\n\tonClick,\r\n\tvariant = 'outlined',\r\n\tIcon = HistoryIcon,\r\n\tchildren = Tr('history'),\r\n\t...other\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t{children}\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default HistoryButton;","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations'\r\nimport GridBlock from 'components/GridBlock';\r\nimport Loading from \"components/Loading\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport moment from \"moment\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n lpColumn: theme.components.table.lpColumn,\r\n dateColumn: theme.components.table.dateTimeColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n}))\r\n\r\nfunction HistoryListPopup(\r\n {\r\n historyList,\r\n selectElem,\r\n selectedElem\r\n }) {\r\n const classes = useStyle();\r\n return (\r\n <>\r\n {!historyList ?\r\n \r\n :\r\n \r\n ([\r\n `${arr.length - i}`,\r\n moment(elem.dateInserted).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT),\r\n `${elem.user.firstName} ${elem.user.lastName}` + (elem.user.replacedUser ? ` (${Tr('in_deputy_of')} ${elem.user.replacedUser.firstName} ${elem.user.replacedUser.lastName})` : \"\"),\r\n selectElem(elem)} disabled={!!selectedElem}\r\n working={elem.identity === selectedElem?.identity}/>\r\n ]))\r\n }\r\n columnClasses={[\r\n classes.lpColumn,\r\n classes.dateColumn,\r\n undefined,\r\n classes.buttonColumn\r\n ]}\r\n />\r\n\r\n {historyList.length === 0 && {Tr('empty_history')}}\r\n\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nHistoryListPopup.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default HistoryListPopup;\r\n","import Tr from 'translations/Translations'\r\n\r\nexport const getUserFullNameWithEmailAndDeputy = (apiUser) => {\r\n let name = getUserFullNameWithEmail(apiUser);\r\n if (apiUser?.replacedUser) {\r\n name += Tr('in_deputy_of') + apiUser.replacedUser.firstName + \" \" + apiUser.replacedUser.lastName;\r\n }\r\n return name;\r\n}\r\nexport const getUserFullNameWithDeputy = (apiUser) => {\r\n let name = getUserFullName(apiUser);\r\n if (apiUser?.replacedUser) {\r\n name += Tr('in_deputy_of') + apiUser.replacedUser.firstName + \" \" + apiUser.replacedUser.lastName;\r\n }\r\n return name;\r\n}\r\n\r\nexport const getUserFullNameWithEmail = (apiUser) => {\r\n let name = getUserFullName(apiUser);\r\n if (apiUser && apiUser.email) {\r\n name += \" (\" + apiUser.email + \")\";\r\n }\r\n return name;\r\n}\r\nexport const getUserFullName = (apiUser) => {\r\n let name = '';\r\n if (apiUser) {\r\n name += apiUser.firstName + \" \" + apiUser.lastName;\r\n }\r\n return name;\r\n}\r\n\r\n","import React, {useMemo, useState} from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations'\r\nimport GridBlock from 'components/GridBlock';\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Button from \"components/Button\";\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\nimport moment from \"moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport {getUserFullNameWithDeputy} from \"libs/userNameGetter\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n column: {\r\n width: '30%'\r\n },\r\n change: {\r\n \"&> td\": {\r\n fontWeight: \"bold\",\r\n backgroundColor: theme.palette.primary.light\r\n }\r\n },\r\n noChanges: {\r\n textAlign: \"center\",\r\n marginTop: theme.spacing(2),\r\n fontSize: \"1.2rem\"\r\n },\r\n buttonShow: {\r\n position: \"absolute\",\r\n bottom: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction HistoryElementComparator(\r\n {\r\n selectedElemLoaded,\r\n selectedElem,\r\n clearSelectedElem,\r\n propertyTransformer,\r\n customParamTransformer\r\n }) {\r\n const classes = useStyle();\r\n const [showTheSame, setShowTheSame] = useState(false)\r\n\r\n\r\n const content = useMemo(() => {\r\n const rows = [];\r\n const rowClasses = [];\r\n let changesCount = 0;\r\n let fieldsCount = 0;\r\n\r\n const {left, right} = selectedElemLoaded;\r\n const leftContent = left?.content || {};\r\n const rightContent = right.content;\r\n\r\n Object.keys(propertyTransformer).forEach((prop, i, arr) => {\r\n\r\n const tr = propertyTransformer[prop];\r\n const leftVal = tr.transform ? tr.transform(getObjectValue(tr.id, leftContent, null)) : getObjectValue(tr.id, leftContent, null)\r\n const rightVal = tr.transform ? tr.transform(getObjectValue(tr.id, rightContent, null)) : getObjectValue(tr.id, rightContent, null);\r\n const theSame = rightVal === leftVal;\r\n fieldsCount++;\r\n if (left === null || !theSame || showTheSame) {\r\n rows.push([tr.label, leftVal, rightVal])\r\n rowClasses.push(showTheSame && leftVal !== rightVal ? classes.change : undefined)\r\n if (!theSame)\r\n changesCount++;\r\n }\r\n })\r\n return {rows, rowClasses, changesCount, fieldsCount, user: right.user, dateInserted: right.dateInserted}\r\n }, [selectedElemLoaded, showTheSame, propertyTransformer, classes.change])\r\n\r\n\r\n return (\r\n \r\n \r\n <>\r\n {Tr('changing_person')}\r\n {`: ${getUserFullNameWithDeputy(selectedElem.user)}`}\r\n \r\n
\r\n {Tr('last_save_date')}\r\n {`: ${moment(selectedElem.dateInserted).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}`}\r\n {\r\n !!customParamTransformer && Object.keys(customParamTransformer).map(x => (<>\r\n
\r\n {customParamTransformer[x].label}\r\n {`: ${customParamTransformer[x].transform ? customParamTransformer[x].transform(selectedElem.params[x]) : (selectedElem.params[x] || null) }`}\r\n \r\n ))\r\n\r\n }\r\n \r\n \r\n
\r\n\r\n\r\n \r\n\r\n {!showTheSame && content.changesCount < content.fieldsCount && setShowTheSame(true)}\r\n >\r\n {Tr('no_changes_fields_show')}\r\n }\r\n\r\n {\r\n content.changesCount === 0 && {Tr(\"no_changes\")}\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nHistoryElementComparator.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default HistoryElementComparator;\r\n","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations'\r\nimport SingleButton from \"../components/SingleButton\";\r\nimport HistoryList from \"./HistoryList\";\r\nimport HistoryElementComparator from \"./HistoryElementComparator\";\r\n\r\n\r\nfunction HistoryListPopup(\r\n {\r\n onClose,\r\n loadHistoryList,\r\n loadHistoryElement,\r\n propertyTransformer,\r\n customParamTransformer\r\n }) {\r\n\r\n const [historyList, setHistoryList] = useState(null);\r\n const [selectedElem, setSelectedElem] = useState(null);\r\n const [selectedElemLoaded, setSelectedElemLoaded] = useState(null);\r\n\r\n useEffect(() => {\r\n loadHistoryList().then(resp => setHistoryList(resp))\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const clearSelectedElem = () => {\r\n setSelectedElem(null);\r\n setSelectedElemLoaded(null);\r\n }\r\n const selectElem = (elem) => {\r\n setSelectedElem(elem);\r\n loadHistoryElement(elem.identity).then((resp) => setSelectedElemLoaded(resp)).catch((e) => {\r\n console.error(e);\r\n clearSelectedElem();\r\n })\r\n }\r\n\r\n return (\r\n }\r\n >\r\n {\r\n !selectedElemLoaded ? :\r\n \r\n\r\n }\r\n \r\n )\r\n}\r\n\r\nHistoryListPopup.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n loadHistoryList: PropTypes.func.isRequired,\r\n loadHistoryElement: PropTypes.func.isRequired,\r\n propertyTransformer: PropTypes.object.isRequired,\r\n customParamTransformer: PropTypes.object\r\n}\r\n\r\nexport default HistoryListPopup;\r\n","import React, {useEffect, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport Loading from \"components/Loading\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport PurchasingGroupStage1BasicDataForm from \"./PurchasingGroupStage1BasicDataForm\";\r\nimport Form from \"components/Form\";\r\nimport VS from 'constants/ValidationShema';\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport Tr from \"translations/Translations\"\r\nimport GridBlock from \"components/GridBlock\";\r\nimport HistoryButton from \"components/button/HistoryButton\";\r\nimport HistoryListPopup from \"components/popup/historyListPopup/HistoryListPopup\";\r\nimport propertyTransformer from \"./history/propertyTransformer\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\n\r\nfunction PurchasingGroupStage1BasicData(\r\n {\r\n panelRef,\r\n validationSection,\r\n purchasingGroupHeader\r\n }) {\r\n\r\n const params = useParams();\r\n const groupId = params.id;\r\n const formId = params.section;\r\n const disabled = !validationSection.editable;\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const [basicData, setBasicData] = useState();\r\n const [history, setHistory] = useState();\r\n\r\n useStepperStateCloseValidator(formId);\r\n\r\n useEffect(() => {\r\n if (!!basicData) {\r\n setTimeout((elem) => scrollTo(elem, 30), 100, panelRef.current);\r\n }\r\n // eslint-disable-next-line\r\n }, [basicData]);\r\n\r\n useEffect(() => {\r\n if (groupId > 0)\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n\r\n PurchasingGroupStage1Service.getBasicData(groupId).then((resp) => {\r\n if (resp)\r\n setBasicData(resp);\r\n else\r\n closeSection(groupId);\r\n });\r\n }, [groupId, validationSection.section]);\r\n\r\n const closeSection = (id) => RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {\r\n id: id,\r\n stage: 1\r\n }))\r\n\r\n const handleSubmit = (values) => {\r\n PurchasingGroupStage1Service.saveBasicData(groupId, values).then((result) => {\r\n if (result) {\r\n enqueueSuccessSnackbar(Tr(\"saved\") + \" \" + validationSection.name);\r\n closeSection(result);\r\n }\r\n })\r\n }\r\n\r\n const loadHistoryList = async () => {\r\n try {\r\n return await PurchasingGroupStage1Service.getArchiveList(groupId, validationSection.section)\r\n } catch (e) {\r\n setHistory(false);\r\n }\r\n }\r\n\r\n const loadHistoryElement = async (archiveId) => {\r\n return await PurchasingGroupStage1Service.getArchiveElement(groupId, validationSection.section, archiveId);\r\n }\r\n\r\n\r\n if (!basicData) return ;\r\n\r\n return (<>\r\n \r\n \r\n {(formikProps) => (\r\n <>\r\n {\r\n (!disabled && groupId > 0) && \r\n setHistory(true)}>\r\n {Tr('change_history')}\r\n \r\n \r\n }\r\n\r\n \r\n \r\n )}\r\n \r\n\r\n {!!history && setHistory(false)}\r\n propertyTransformer={propertyTransformer}/>}\r\n )\r\n}\r\n\r\nPurchasingGroupStage1BasicData.propTypes = {}\r\n\r\nexport default PurchasingGroupStage1BasicData;","import React from 'react'\r\nimport { withStyles, Grid } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\twidth: `calc(50% - ${theme.spacing(2)}px)`\r\n\t\t},\r\n\t}\r\n})\r\n\r\nfunction TransferList({\r\n\tclasses,\r\n\tleftColumn,\r\n\trightColumn\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{leftColumn}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{rightColumn}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nTransferList.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tleftColumn: PropTypes.object,\r\n\trightColumn: PropTypes.object,\r\n}\r\n\r\nTransferList.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(TransferList);","import React from 'react'\r\nimport { withStyles, Grid } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\theight: '100%',\r\n\t\t'&>*':{\r\n\t\t\twidth: '100%'\r\n\t\t}\r\n\t},\r\n\tgrow: {\r\n\t\tflexGrow: 1,\r\n\t}\r\n})\r\n\r\nfunction Column({\r\n\tclasses,\r\n\tchildren\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t{React.Children.map( children, child => {\r\n\t\t\t\tif(child === null) return child;\r\n\t\t\t\tconst props = child.props;\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{child}\r\n\t\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t})}\r\n\t\t\r\n\t)\r\n}\r\n\r\nColumn.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tchildren: PropTypes.any,\r\n}\r\n\r\nColumn.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(Column);","import React from 'react'\r\nimport { withStyles, Grid, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\theight: theme.components.transferList.row.height,\r\n\t},\r\n\tlabelItem:{\r\n\t\tmarginRight: theme.spacing(2),\r\n\t},\r\n\tchildrenItem:{\r\n\t\tflexGrow: '1'\r\n\t}\r\n})\r\n\r\nfunction Header({\r\n\tclasses,\r\n\tchildren,\r\n\ttitle,\r\n\tclassName,\r\n\tchildClassName,\r\n}) {\r\n\tconst getLabel = () => {\r\n\t\tif(typeof title === 'string'){\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t{title}\r\n\t\t\t\t\r\n\t\t\t)\r\n\t\t}\r\n\t\treturn children;\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{getLabel()}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nHeader.propTypes = {\r\n\tclassName: PropTypes.string,\r\n\tclasses: PropTypes.any,\r\n\ttitle: PropTypes.oneOfType([\r\n\t\tPropTypes.string,\r\n\t\tPropTypes.func,\r\n\t]),\r\n\tchildren: PropTypes.any,\r\n}\r\n\r\nHeader.defaultProps = {\r\n\tclassName: '',\r\n\tchildClassName: '',\r\n}\r\n\r\nexport default withStyles(style)(Header);","import React from 'react'\r\nimport { withStyles, TextField } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Header from './Header';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t},\r\n})\r\n\r\nfunction SearchHeader({\r\n\tclasses,\r\n\ttitle,\r\n\tplaceholder,\r\n\tonChange,\r\n\tvalue\r\n}) {\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t)\r\n}\r\n\r\nSearchHeader.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\ttitle: PropTypes.oneOfType([\r\n\t\tPropTypes.string,\r\n\t\tPropTypes.func,\r\n\t]),\r\n\tplaceholder: PropTypes.string,\r\n\tonChange: PropTypes.func,\r\n\tvalue: PropTypes.string,\r\n}\r\n\r\nSearchHeader.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(SearchHeader);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ListUI from '@material-ui/core/List'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tborder: `1px solid ${theme.palette.divider}`,\r\n\t\theight: '100%',\r\n\t\t\"overflow-y\": 'auto',\r\n \t'box-sizing': 'border-box',\r\n \t'max-height': '360px',\r\n\t}\r\n})\r\n\r\nfunction List({\r\n\tclasses,\r\n\tItemComponent,\r\n\titems,\r\n\titemProps,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t{items.map( (item, i) => {\r\n\t\t\t\treturn (\r\n\t\t\t\t\t\r\n\t\t\t\t)\r\n\t\t\t})}\r\n\t\t\r\n\t)\r\n}\r\n\r\nList.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tItemComponent: PropTypes.object,\r\n\titems: PropTypes.array,\r\n}\r\n\r\nList.defaultProps = {\r\n\titems: [],\r\n}\r\n\r\nexport default withStyles(style)(List);","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value = Tr(trKey)) => ({\r\n\tlabel: Tr(trKey),\r\n\tvalue,\r\n})\r\n\r\nexport const POSITION_VALUE = {\r\n\t// DEFAULT: '1',\r\n\t// OTHER: '6',\r\n\r\n\tCHAIRMAN: 'CHAIRMAN',\r\n\tVICECHAIRMAN: 'VICECHAIRMAN',\r\n\tSECRETARY: 'SECRETARY',\r\n\tVICESECRETARY: 'VICESECRETARY',\r\n\tSUPERVISOR: 'SUPERVISOR',\r\n\tMEMBER: 'MEMBER',\r\n\tBUYER_SUPERVISOR: 'BUYER_SUPERVISOR',\r\n\tEXPERT: 'EXPERT',\r\n\tOTHER: 'OTHER'\r\n}\r\n\r\nexport default [\r\n\tcreateItem('position_1', POSITION_VALUE.CHAIRMAN),\r\n\tcreateItem('position_2', POSITION_VALUE.VICECHAIRMAN),\r\n\tcreateItem('position_3', POSITION_VALUE.SECRETARY),\r\n\tcreateItem('position_3a', POSITION_VALUE.VICESECRETARY),\r\n\tcreateItem('position_3b', POSITION_VALUE.SUPERVISOR),\r\n\tcreateItem('position_4', POSITION_VALUE.MEMBER),\r\n\tcreateItem('position_4a', POSITION_VALUE.BUYER_SUPERVISOR),\r\n\tcreateItem('position_5', POSITION_VALUE.EXPERT),\r\n\tcreateItem('position_6', POSITION_VALUE.OTHER),\r\n]","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value = Tr(trKey)) => ({\r\n\tlabel: Tr(trKey),\r\n\tvalue,\r\n})\r\n\r\nexport const POSITION_VALUE = {\r\n\t// DEFAULT: '1',\r\n\t// OTHER: '6',\r\n\tCHAIRMAN: 'CHAIRMAN',\r\n\tEXPERT: 'EXPERT',\r\n\tOTHER: 'OTHER'\r\n}\r\n\r\nexport default [\r\n\tcreateItem('pg_position_1', POSITION_VALUE.CHAIRMAN),\r\n\tcreateItem('pg_position_5', POSITION_VALUE.EXPERT),\r\n\tcreateItem('position_6', POSITION_VALUE.OTHER),\r\n]","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport IconButton from './IconButton';\r\nimport AddIcon from '@material-ui/icons/AddBoxOutlined'\r\n\r\nfunction IconAddButton({\r\n\ttooltip = Tr('add'),\r\n\t...props\r\n}) {\r\n\treturn \r\n}\r\n\r\nexport default IconAddButton;","export default {\r\n\tSYSTEM_USER: 'SYSTEM_USER',\r\n\tEXTERNAL_USER: 'EXTERNAL_USER',\r\n}","import React from 'react'\r\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconHighlightOffButton(\r\n {\r\n tooltip = Tr('delete'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconHighlightOffButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconHighlightOffButton;","import React from 'react'\r\nimport {ListItem, ListItemSecondaryAction, ListItemText, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {POSITION_VALUE as demandPositionValue} from 'constants/PositionItems'\r\nimport {POSITION_VALUE as pgPositionValue} from 'constants/PurchasingGroupPositionItems'\r\nimport Tr from 'translations/Translations';\r\nimport IconAddButton from 'components/button/IconAddButton';\r\nimport CommissionUserType from \"constants/CommissionUserType\";\r\nimport reduxStore from \"redux/store\";\r\nimport WorkableIconHighlightOffButton from \"../../../../button/WorkableIconHighlightOffButton\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n iconButton: {\r\n padding: theme.spacing(1) / 2,\r\n },\r\n email: {\r\n fontStyle: 'italic',\r\n fontWeight: theme.typography.fontWeightBold,\r\n fontSize: '0.75rem'\r\n }\r\n})\r\n\r\nfunction FullNameItem(\r\n {\r\n classes,\r\n marked = false,\r\n formikProps,\r\n addedId,\r\n item,\r\n markHistorical\r\n }) {\r\n const elementsCount = getObjectValue(addedId, formikProps.values, []).length;\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const addPerson = () => {\r\n const {resources} = reduxStore.getState();\r\n const pgMode = !!resources.purchasingGroupHeader;\r\n\r\n const nextId = `${addedId}.${elementsCount}`\r\n formikProps.setFieldValue(nextId, {\r\n ...item,\r\n role: pgMode ? (item.userType === CommissionUserType.EXTERNAL_USER ? pgPositionValue.OTHER : pgPositionValue.CHAIRMAN) : demandPositionValue.MEMBER,\r\n otherRole: \"\"\r\n })\r\n }\r\n const externalUser = item.userType === CommissionUserType.EXTERNAL_USER;\r\n const getPrimaryText = () => (<>\r\n {item.firstName} {item.lastName}\r\n {externalUser && {' (' + (item.email ? item.email : Tr('email_empty')) + ')'}}\r\n )\r\n\r\n const secondaryText = externalUser ? Tr('external') : item.organizationName;\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n (!!markHistorical && editable && externalUser) &&\r\n markHistorical(item.id)}\r\n disabled={!editable}\r\n />\r\n }\r\n\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nFullNameItem.propTypes = {\r\n classes: PropTypes.any,\r\n name: PropTypes.string,\r\n}\r\n\r\nFullNameItem.defaultProps = {}\r\n\r\nexport default withStyles(style)(FullNameItem);","import React from 'react'\r\nimport {makeStyles, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n display: 'flex'\r\n },\r\n icon: {\r\n marginRight: theme.spacing(1)\r\n }\r\n}));\r\n\r\nfunction TypographyWithIcon(\r\n {\r\n className,\r\n children,\r\n Icon,\r\n ...other\r\n }) {\r\n\r\n\r\n const classes = useStyles();\r\n return (\r\n \r\n {!!Icon && }\r\n {children}\r\n \r\n )\r\n}\r\n\r\nTypographyWithIcon.propTypes = {\r\n classes: PropTypes.any,\r\n variant: PropTypes.string\r\n}\r\n\r\nexport default TypographyWithIcon;","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport GridBlock from 'components/GridBlock';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport Tr from 'translations/Translations';\r\nimport TextInput from 'components/TextInput';\r\nimport * as Yup from 'yup';\r\nimport VS from 'constants/ValidationShema';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport InputLimits from \"constants/InputLimits\";\r\nimport Loading from \"../../Loading\";\r\nimport TypographyWithIcon from \"../../TypographyWithIcon\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\n\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\twidth: '100%'\r\n\t\t}\r\n\t},\r\n\tactions:{\r\n\t\tmarginTop: theme.spacing(),\r\n\t}\r\n})\r\nconst limits = InputLimits.procedure.contractor;\r\nfunction PopupForm({\r\n\tclasses,\r\n\tonSubmit,\r\n\tonClose,\r\n\tformSubmit,\r\n\tuserList,\r\n\terror,\r\n\tworking\r\n}) {\r\n\tconst formId = useId();\r\n\r\n\tconst handleSubmit = () => {\r\n\t\tformSubmit[formId]()\r\n\t}\r\n\r\n\treturn (\r\n\t\t {\r\n\t\t\t\t\tconst validateObj = {\r\n\t\t\t\t\t\tfirstName: VS.string(),\r\n\t\t\t\t\t\tlastName: VS.string()\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlet email\r\n\t\t\t\t\tconst found = Boolean(userList.find(element => element.email === value.email))\r\n\t\t\t\t\tif (found) email = VS.immediatelyError(Tr(\"email_exist\"))\r\n\t\t\t\t\telse email = VS.email(limits.EMAIL)\r\n\r\n\t\t\t\t\treturn Yup.object().shape({\r\n\t\t\t\t\t\t...validateObj,\r\n\t\t\t\t\t\temail\r\n\t\t\t\t\t})\r\n\t\t\t\t})}\r\n\t\t\tonSubmit={onSubmit}\r\n\t\t\tid={formId}\r\n\t\t>\r\n\t\t\t{(formikProps) => (\r\n\t\t\t\t\r\n\t\t\t\t\t{working && }\r\n\t\t\t\t\t{!!error && {error}}\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t)}\r\n\t\t\r\n\t)\r\n}\r\n\r\nPopupForm.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tformSubmit: state.form\r\n}), {\r\n\r\n\t})(withStyles(style)(PopupForm));","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport reduxStore from 'redux/store'\r\nimport {clearResource, setResource, setSaveStatusDialog, setSaveStatusError, setSaveStatusLoading} from 'redux/actions'\r\nimport validateSection from './helpers/validateSection';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport Tr from 'translations/Translations';\r\nimport objectExtension from 'libs/objectExtension';\r\nimport CommissionUserType from \"../constants/CommissionUserType\";\r\n\r\nconst COMMISSION_USER_LIST_RESOURCE_ID = 'commissionUserList';\r\nconst COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID = 'commissionUserListAvailable';\r\nconst COMMISSION_ESTABLISHMENT_RESOURCE_ID = 'commissionEstablishmentDate';\r\nconst getUsers = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.COMMISSION(demandId))\r\n reduxStore.dispatch(setResource(COMMISSION_USER_LIST_RESOURCE_ID, res.users))\r\n reduxStore.dispatch(setResource(COMMISSION_ESTABLISHMENT_RESOURCE_ID, res.establishmentDate))\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getAvailableUsers = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.COMMISSION_AVAILABLE(demandId))\r\n reduxStore.dispatch(setResource(COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID, res))\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst _save = async (url, data) => {\r\n const {resources} = reduxStore.getState()\r\n const {commissionUserList} = resources;\r\n const diff = objectExtension.diff(data, {users: commissionUserList}, true);\r\n\r\n if (diff === null) return null;\r\n\r\n try {\r\n return await RestRequestPOST(url, data)\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst saveUserList = async (demandId, data) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n const res = await _save(Endpoints.COMMISSION(demandId), data)\r\n if (res === null) {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n } else if (res.success) {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n await validateSection(DemandValidation.COMMISSION, demandId);\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(Tr(res.errors.users)));\r\n await validateSection(DemandValidation.COMMISSION, demandId, false);\r\n }\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst addExternal = async (values) => {\r\n return await RestRequestPOST(Endpoints.COMMISSION_EXTERNAL, values);\r\n}\r\n\r\nconst getHistory = async (demandId) => {\r\n try {\r\n return await RestRequestGET(Endpoints.COMMISSION_HISTORY(demandId))\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst deleteCommissionMember = async (demandId, id) => {\r\n try {\r\n await RestRequestDELETE(Endpoints.COMMISSION_DELETE_COMMISION_MEMBER(demandId, id))\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst markHistorical = async (demandId, id) => {\r\n try {\r\n await RestRequestPUT(Endpoints.COMMISSION_MARK_HISTORICAL_MEMBER(demandId, id))\r\n const {resources} = reduxStore.getState();\r\n reduxStore.dispatch(setResource(COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID,\r\n resources[COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID].filter(x => !(x.userType === CommissionUserType.EXTERNAL_USER && x.id === id))))\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst validate = async (demandId) => {\r\n return RestRequestGET(Endpoints.COMMISSION_VALIDATE(demandId));\r\n}\r\nconst clearResources = async (id) => {\r\n reduxStore.dispatch(clearResource(id));\r\n}\r\n\r\nconst checkForDraft = async (id) => {\r\n return await RestRequestGET(Endpoints.COMMISSION_AUTOSAVE_CHECK(id));\r\n}\r\n\r\nconst loadDraft = async (id) => {\r\n const res = await RestRequestGET(Endpoints.COMMISSION_AUTOSAVE(id));\r\n reduxStore.dispatch(setResource(COMMISSION_USER_LIST_RESOURCE_ID, res.result.users));\r\n reduxStore.dispatch(setResource(COMMISSION_ESTABLISHMENT_RESOURCE_ID, res.result.establishmentDate));\r\n return res;\r\n}\r\n\r\nconst saveDraft = async (id, formValues) => {\r\n await RestRequestPOST(Endpoints.COMMISSION_AUTOSAVE(id), formValues)\r\n}\r\n\r\nconst deleteDraft = async (id) => {\r\n await RestRequestDELETE(Endpoints.COMMISSION_AUTOSAVE(id));\r\n}\r\n\r\nexport default {\r\n saveUserList,\r\n addExternal,\r\n getHistory,\r\n getUsers,\r\n getAvailableUsers,\r\n deleteCommissionMember,\r\n markHistorical,\r\n validate,\r\n clearResources,\r\n checkForDraft,\r\n loadDraft,\r\n saveDraft,\r\n deleteDraft,\r\n COMMISSION_USER_LIST_RESOURCE_ID,\r\n COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID,\r\n COMMISSION_ESTABLISHMENT_RESOURCE_ID\r\n // autoSave,\r\n // autoSaveCheck,\r\n // autoSaveDelete,\r\n // autoSaveLoad,\r\n // restoreAutosave,\r\n}","import React, {useState} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport PopupForm from './PopupForm';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport {POSITION_VALUE as demandPositionValue} from 'constants/PositionItems'\r\nimport {POSITION_VALUE as pgPositionValue} from \"constants/PurchasingGroupPositionItems\";\r\nimport CommissionService from 'services/CommissionService';\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport reduxStore from \"redux/store\";\r\nimport {setResource} from \"../../../redux/actions\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tactions: {\r\n\t\tmarginTop: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction AddCandidate({\r\n\tclasses,\r\n\tonClose = () => { },\r\n\tformikProps\r\n}) {\r\n\r\n\tconst elementsCount = getObjectValue(\"users\", formikProps.values, []).length;\r\n\tconst [working, setWorking] = useState(false);\r\n\tconst [error, setError] = useState(null);\r\n\r\n\tconst handleAdd = (values) => {\r\n\t\tsetError(null);\r\n\t\tsetWorking(true);\r\n\t\tCommissionService.addExternal(values).then((res) => {\r\n\t\t\tif(isResponseValid(res, setError)) {\r\n\t\t\t\tconst {resources} = reduxStore.getState();\r\n\t\t\t\tconst pgMode = !!resources.purchasingGroupHeader;\r\n\r\n\t\t\t\tformikProps.setFieldValue(`users.${elementsCount}`, {\r\n\t\t\t\t\t...res,\r\n\t\t\t\t\trole: pgMode ? pgPositionValue.OTHER : demandPositionValue.MEMBER,\r\n\t\t\t\t})\r\n\r\n\t\t\t\tif(!pgMode) {\r\n\t\t\t\t\tconst newList = [...resources[CommissionService.COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID], res];\r\n\t\t\t\t\treduxStore.dispatch(setResource(CommissionService.COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID, newList))\r\n\t\t\t\t}\r\n\r\n\t\t\t\tonClose();\r\n\t\t\t} else {\r\n\t\t\t\tsetWorking(false);\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nAddCandidate.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(AddCandidate);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\theight: theme.components.transferList.row.height,\r\n\t}\r\n})\r\n\r\nfunction EmptyOptions({\r\n\tclasses,\r\n\tchildren,\r\n}) {\r\n\treturn (\r\n\t\t
\r\n\t\t\t{children}\r\n\t\t
\r\n\t)\r\n}\r\n\r\nEmptyOptions.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tchildren: PropTypes.any,\r\n}\r\n\r\nEmptyOptions.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(EmptyOptions);","import React, {useState, useEffect} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Column from 'components/complex/transferList/Column';\r\nimport SearchHeader from 'components/complex/transferList/headers/SearchHeader';\r\nimport List from 'components/complex/transferList/List';\r\nimport FullNameItem from './listItems/FullNameItem';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport AddIcon from '@material-ui/icons/AddBoxOutlined'\r\nimport AddCandidate from 'components/popup/addCandidate/AddCandidate';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport EmptyOptions from 'components/complex/transferList/options/EmptyOptions';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n button: {\r\n marginTop: theme.spacing(1)\r\n }\r\n});\r\n\r\nfunction CandidateColumn({\r\n classes,\r\n items,\r\n formikProps,\r\n addedId,\r\n markHistorical\r\n }) {\r\n\r\n const [filteredItems, setFilteredItems] = useState([]);\r\n const [searchFilter, setSearchFilter] = useState('');\r\n const [addPopup, setAddPopup] = useState(false);\r\n\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n const addedItems = getObjectValue(addedId, formikProps.values, []);\r\n\r\n useEffect(() => {\r\n\r\n let filter = items.filter(x => {\r\n const isAdded = addedItems.findIndex(z => z.id === x.id);\r\n if (isAdded >= 0) return false;\r\n\r\n let search = searchFilter.trim().toLowerCase();\r\n if (search.length <= 0) return true;\r\n\r\n let name = `${x.firstName} ${x.lastName}`;\r\n name = name.toLowerCase();\r\n return name.includes(search)\r\n });\r\n\r\n filter.sort((a, b) => a.firstName.localeCompare(b.firstName));\r\n\r\n setFilteredItems(filter)\r\n // eslint-disable-next-line\r\n }, [searchFilter, addedItems.length, items]);\r\n\r\n const handleSearchChange = (event) => {\r\n setSearchFilter(event.target.value);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n setAddPopup(true)}\r\n Icon={AddIcon}\r\n className={classes.button}\r\n disabled={!editable}\r\n >\r\n {Tr('add_commission_candidate')}\r\n \r\n {addPopup && setAddPopup(false)}\r\n formikProps={formikProps}\r\n />}\r\n \r\n )\r\n}\r\n\r\nCandidateColumn.propTypes = {\r\n classes: PropTypes.any,\r\n items: PropTypes.array,\r\n};\r\n\r\nCandidateColumn.defaultProps = {};\r\n\r\nexport default withStyles(style)(CandidateColumn);","import React, {useEffect} from 'react'\r\nimport {IconButton, InputAdornment, ListItem, ListItemSecondaryAction, ListItemText, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport positionsItems, {POSITION_VALUE} from 'constants/PositionItems'\r\nimport pgPositionsItems from 'constants/PurchasingGroupPositionItems'\r\nimport GridBlock from 'components/GridBlock';\r\nimport Select from 'components/Select';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport TextInput from 'components/TextInput';\r\nimport CloseIcon from '@material-ui/icons/Close'\r\nimport removeFormikListElement from 'libs/removeFormikListElement';\r\nimport Tr from 'translations/Translations';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport CommissionUserType from \"constants/CommissionUserType\";\r\nimport {connect} from \"react-redux\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n paddingRight: theme.spacing(2),\r\n },\r\n primaryAction: {\r\n width: \"calc(100% - 260px)\",\r\n },\r\n secondaryAction: {\r\n width: 250,\r\n },\r\n iconButton: {\r\n padding: theme.spacing(1) / 2,\r\n },\r\n grid: {\r\n '&>*:first-child': {\r\n flexGrow: 1\r\n }\r\n },\r\n email: {\r\n fontStyle: 'italic',\r\n fontWeight: theme.typography.fontWeightBold,\r\n fontSize: '0.75rem'\r\n }\r\n})\r\n\r\nfunction FullNamePositionItem(\r\n {\r\n classes,\r\n formikProps,\r\n index,\r\n id,\r\n item,\r\n purchasingGroupHeader\r\n }) {\r\n const selectTextId = `${id}.${index}.otherRole`\r\n const otherValue = getObjectValue(selectTextId, formikProps.values, \"\");\r\n\r\n useEffect(() => {\r\n if (role === POSITION_VALUE.OTHER) formikProps.setFieldValue(selectTextId, otherValue)\r\n // eslint-disable-next-line\r\n }, [role])\r\n\r\n const selectId = `${id}.${index}.role`\r\n const otherRole = `${id}.${index}.otherRole`\r\n const role = getObjectValue(selectId, formikProps.values);\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const closeTextInput = () => {\r\n formikProps.setFieldValue(selectId, POSITION_VALUE.CHAIRMAN)\r\n formikProps.setFieldValue(otherRole, undefined)\r\n }\r\n\r\n const handleDelete = () => {\r\n removeFormikListElement(formikProps, id, index)\r\n }\r\n const externalUser = item.userType === CommissionUserType.EXTERNAL_USER;\r\n const getPrimaryText = () => (<>\r\n {item.firstName} {item.lastName}\r\n {externalUser &&\r\n {' (' + (item.email ? item.email : Tr('email_empty')) + ')'}}\r\n )\r\n\r\n const secondaryText = externalUser ? Tr('external') : item.organizationName;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {role === POSITION_VALUE.OTHER ?\r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n :\r\n \r\n }\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nFullNamePositionItem.propTypes = {\r\n classes: PropTypes.any,\r\n name: PropTypes.string,\r\n}\r\n\r\nFullNamePositionItem.defaultProps = {}\r\n\r\nexport default connect((state) => ({\r\n purchasingGroupHeader: state.resources.purchasingGroupHeader\r\n}), {\r\n\r\n})(withStyles(style)(FullNamePositionItem));","import React, {useEffect, useState} from 'react'\r\nimport ChangeHistory from 'components/popup/changeHistory/ChangeHistory';\r\nimport PropTypes from 'prop-types';\r\nimport EmptyOptions from 'components/complex/transferList/options/EmptyOptions';\r\nimport Column from 'components/complex/transferList/Column';\r\nimport List from 'components/complex/transferList/List';\r\nimport FullNamePositionItem from './listItems/FullNamePositionItem';\r\nimport Tr from 'translations/Translations';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport Header from 'components/complex/transferList/headers/Header';\r\nimport HistoryButton from 'components/button/HistoryButton';\r\nimport GridBlock from 'components/GridBlock';\r\nimport DatePicker from \"components/DatePicker\";\r\nimport {withStyles} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\n\r\nconst style = theme => ({\r\n helperTextHidden: {\r\n '&>*.MuiFormHelperText-root': {\r\n display: \"none\"\r\n }\r\n }\r\n})\r\n\r\nfunction CommissionColumn(\r\n {\r\n doLoadHistory,\r\n formikProps,\r\n id,\r\n establishmentId,\r\n classes,\r\n }) {\r\n const [history, setHistory] = useState(false);\r\n const [commissionHistoryList, setCommissionHistoryList] = useState(null);\r\n\r\n useEffect(() => {\r\n if (history) {\r\n doLoadHistory().then((resp => setCommissionHistoryList(resp)));\r\n } else {\r\n setCommissionHistoryList(null)\r\n }\r\n }, [history, doLoadHistory]);\r\n\r\n let items = getObjectValue(id, formikProps.values, [])\r\n\r\n items = items.sort((a, b) => a.firstName.localeCompare(b.firstName))\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n !!doLoadHistory && setHistory(true)}>\r\n {Tr('history')}\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setHistory(false)}/>\r\n \r\n )\r\n}\r\n\r\nCommissionColumn.propTypes = {\r\n classes: PropTypes.any,\r\n items: PropTypes.array,\r\n}\r\n\r\nCommissionColumn.defaultProps = {}\r\n\r\nexport default withStyles(style)(CommissionColumn);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport TransferListBase from 'components/complex/transferList/TransferList'\r\nimport CandidateColumn from './CandidateColumn';\r\nimport CommissionColumn from './CommissionColumn';\r\n\r\n\r\nfunction TransferList(\r\n {\r\n formikProps,\r\n userListAvailable,\r\n doLoadHistory,\r\n markHistorical\r\n }) {\r\n\r\n return (\r\n \r\n }\r\n rightColumn={\r\n \r\n }\r\n />\r\n )\r\n}\r\n\r\nTransferList.propTypes = {\r\n classes: PropTypes.any,\r\n markHistorical: PropTypes.func\r\n};\r\n\r\nexport default TransferList;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport TransferList from './transferList/TransferList';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup'\r\nimport ValidationShema from 'constants/ValidationShema';\r\nimport {POSITION_VALUE} from 'constants/PositionItems'\r\nimport Loading from \"components/Loading\";\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\n\r\nfunction CommissionForm(\r\n {\r\n formId,\r\n demandId,\r\n commissionUserList,\r\n userListAvailable,\r\n establishmentDate,\r\n handleSubmit,\r\n afterSubmitFunc = () => {\r\n },\r\n editable,\r\n doLoadHistory,\r\n markHistorical,\r\n saveDraftFunc,\r\n autoSaveFormDraftActive\r\n }) {\r\n\r\n const validationSchema = () => {\r\n return Yup.object().shape({\r\n users: Yup.array().of(\r\n Yup.lazy((value) => {\r\n if (value.role === POSITION_VALUE.OTHER) {\r\n return Yup.object().shape({\r\n otherRole: ValidationShema.string().nullable()\r\n })\r\n }\r\n return Yup.object().shape({})\r\n })\r\n ),\r\n establishmentDate: ValidationShema.any()\r\n })\r\n }\r\n\r\n const getInitValues = () => {\r\n return {\r\n _editable: editable,\r\n users: [...commissionUserList],\r\n establishmentDate: establishmentDate,\r\n }\r\n }\r\n\r\n if (!userListAvailable || !commissionUserList) return \r\n return (\r\n \r\n {(formikProps) => (\r\n <>\r\n \r\n\r\n {!!saveDraftFunc && !!autoSaveFormDraftActive &&\r\n {\r\n saveDraftFunc(demandId, formValues)\r\n }}\r\n />\r\n }\r\n\r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nCommissionForm.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default CommissionForm;\r\n","import React, {useCallback, useEffect, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport Tr from \"translations/Translations\"\r\nimport CommissionForm from \"components/complex/commissionForm/CommissionForm\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\n\r\nfunction PurchasingGroupStage1Commission(\r\n {\r\n panelRef,\r\n validationSection\r\n }) {\r\n\r\n const params = useParams();\r\n const groupId = params.id;\r\n const formId = params.section;\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const [commission, setCommission] = useState({});\r\n\r\n useStepperStateCloseValidator(formId);\r\n\r\n const closeSection = useCallback(() => RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {\r\n id: groupId,\r\n stage: 1\r\n })), [groupId]);\r\n\r\n useEffect(() => {\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n PurchasingGroupStage1Service.getCommission(groupId).then((resp) => {\r\n if (resp)\r\n setCommission(resp)\r\n else\r\n closeSection();\r\n });\r\n }, [groupId, closeSection, validationSection.section]);\r\n\r\n\r\n const handleSubmit = (values) => {\r\n PurchasingGroupStage1Service.saveCommission(groupId, values).then(() => {\r\n enqueueSuccessSnackbar(Tr(\"saved\") + \" \" + validationSection.name);\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n closeSection();\r\n })\r\n }\r\n\r\n const doLoadHistory = async () => {\r\n return await PurchasingGroupStage1Service.getCommissionHistory(groupId);\r\n }\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nPurchasingGroupStage1Commission.propTypes = {}\r\n\r\nexport default PurchasingGroupStage1Commission;","import React, {useEffect} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {KeyboardDateTimePicker} from '@material-ui/pickers';\r\nimport Tr from 'translations/Translations';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport moment from \"libs/moment\";\r\n\r\nfunction DateTimePicker(\r\n {\r\n formikProps,\r\n id,\r\n label,\r\n minDate,\r\n maxDate,\r\n required = false,\r\n onChange = () => {\r\n },\r\n disabled = false,\r\n className,\r\n skipCheckTouched\r\n }) {\r\n\r\n const editable = disabled ? false : getObjectValue('_editable', formikProps.values, true);\r\n const errorValue = getObjectValue(id, formikProps.errors, null);\r\n const value = getObjectValue(id, formikProps.values, null);\r\n const touched = getObjectValue(id, formikProps.touched, !!skipCheckTouched);\r\n\r\n useEffect(()=> {\r\n if( typeof value === 'string' || value instanceof String) {\r\n const momentVal = moment(value);\r\n if(momentVal.isValid()) {\r\n formikProps.setFieldValue(id, momentVal);\r\n formikProps.validateField(id);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n },[])\r\n\r\n const handleChange = (date) => {\r\n const value = date ? date : null;\r\n formikProps.setFieldValue(id, value);\r\n formikProps.setFieldTouched(id, true);\r\n setTimeout((id) => {try {formikProps.validateField(id)} catch (e){}}, 1, id);\r\n onChange(value ? value.clone() : null)\r\n };\r\n\r\n const handleError = (err) => {\r\n if (!Boolean(errorValue)) {\r\n if (errorValue !== err && err.length > 0) {\r\n formikProps.setFieldError(id, err)\r\n }\r\n }\r\n };\r\n const isError = editable && !!errorValue && Boolean(touched);\r\n const helperText = errorValue || ' ';\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nDateTimePicker.propTypes = {\r\n classes: PropTypes.any,\r\n required: PropTypes.bool\r\n}\r\n\r\nexport default DateTimePicker;","import React from 'react'\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PropTypes from \"prop-types\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n picker: {\r\n width: 400,\r\n marginRight: theme.spacing(3)\r\n },\r\n stageHead: {\r\n marginTop: theme.spacing(4)\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage1ScheduleForm(\r\n {\r\n formikProps,\r\n schedule,\r\n editable\r\n }) {\r\n const classes = useStyle();\r\n\r\n return (\r\n\r\n {Tr('purchasing_group_joining_stage')}\r\n \r\n \r\n \r\n \r\n\r\n {Tr('purchasing_group_opinion_stage')}\r\n \r\n \r\n \r\n \r\n\r\n {Tr('purchasing_group_submission_stage')}\r\n \r\n \r\n \r\n \r\n\r\n )\r\n}\r\n\r\nPurchasingGroupStage1ScheduleForm.propTypes = {\r\n schedule: PropTypes.shape({\r\n joiningStartDateEditable: PropTypes.bool.isRequired,\r\n joiningEndDateEditable: PropTypes.bool.isRequired,\r\n opinionStartDateEditable: PropTypes.bool.isRequired,\r\n opinionEndDateEditable: PropTypes.bool.isRequired,\r\n submissionStartDateEditable: PropTypes.bool.isRequired,\r\n submissionEndDateEditable: PropTypes.bool.isRequired,\r\n }).isRequired\r\n}\r\n\r\nexport default PurchasingGroupStage1ScheduleForm;","import moment from \"moment\";\r\n\r\nconst scheduleReloadTimeout = (schedule, serverTime) => {\r\n\r\n let reloadTimeout = null;\r\n const nowServerTime = moment(serverTime);\r\n const {\r\n joiningStartDate,\r\n joiningEndDate,\r\n opinionStartDate,\r\n opinionEndDate,\r\n submissionStartDate,\r\n submissionEndDate,\r\n swzOpinionStartDate,\r\n swzOpinionEndDate,\r\n collectingDataStartDate,\r\n collectingDataEndDate\r\n } = schedule;\r\n const dates = [joiningStartDate, joiningEndDate, opinionStartDate, opinionEndDate, submissionStartDate, submissionEndDate];\r\n for (let date of dates) {\r\n if (date && moment(date).isAfter(nowServerTime)) {\r\n reloadTimeout = moment(date).diff(nowServerTime) + 500;\r\n break;\r\n }\r\n }\r\n\r\n if(!reloadTimeout) {\r\n const dates2 = [swzOpinionStartDate, swzOpinionEndDate, collectingDataStartDate, collectingDataEndDate];\r\n for (let date of dates2) {\r\n if (date && moment(date).isAfter(nowServerTime)) {\r\n if(!reloadTimeout || (moment(date).diff(nowServerTime) + 500) < reloadTimeout) {\r\n reloadTimeout = moment(date).diff(nowServerTime) + 500;\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n if (reloadTimeout && reloadTimeout > 3600000) {\r\n reloadTimeout = null;\r\n }\r\n return reloadTimeout;\r\n\r\n}\r\n\r\nexport default scheduleReloadTimeout;","import React, {useCallback, useEffect, useRef, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport Tr from \"translations/Translations\"\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport Loading from \"components/Loading\";\r\nimport Form from \"components/Form\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport PurchasingGroupStage1ScheduleForm from \"./PurchasingGroupStage1ScheduleForm\";\r\nimport moment from \"moment\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport scheduleReloadTimeout from \"../../../utils/scheduleReloadTimeout\";\r\nimport {PurchasingGroupStageSections} from \"../../../constants/PurchasingGroupStageSections\";\r\n\r\nfunction PurchasingGroupStage1Schedule(\r\n {\r\n panelRef,\r\n validationSection\r\n }) {\r\n\r\n const params = useParams();\r\n const groupId = params.id;\r\n const formId = params.section;\r\n const editable = validationSection.editable;\r\n const {enqueueSuccessSnackbar, enqueueErrorSnackbar} = useSnackbar();\r\n const [schedule, setSchedule] = useState(null);\r\n const timeout = useRef(0);\r\n\r\n useStepperStateCloseValidator(formId);\r\n\r\n const closeSection = useCallback(() => RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {\r\n id: groupId,\r\n stage: 1\r\n })), [groupId]);\r\n\r\n const getSchedule = () => {\r\n setSchedule(null);\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n PurchasingGroupStage1Service.getSchedule(groupId).then((resp) => {\r\n if (resp) {\r\n setSchedule(resp);\r\n let reloadTimeout = scheduleReloadTimeout(resp.schedule, resp.serverTime);\r\n if (reloadTimeout) {\r\n timeout.current = setTimeout(() => {\r\n getSchedule();\r\n }, reloadTimeout)\r\n }\r\n\r\n } else\r\n closeSection();\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n getSchedule();\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section);\r\n return () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n\r\n const handleSubmit = (values) => {\r\n PurchasingGroupStage1Service.saveSchedule(groupId, values).then((resp) => {\r\n if (resp && resp.success === false) {\r\n Object.keys(resp.errors).forEach((field) => {\r\n let error;\r\n switch (field) {\r\n case \"joiningStartDate\":\r\n error = `${Tr('purchasing_group_joining_stage')} ${Tr('purchase_group_stage_end_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"joiningEndDate\":\r\n error = `${Tr('purchasing_group_joining_stage')}: ${Tr('purchase_group_stage_start_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"opinionStartDate\":\r\n error = `${Tr('purchasing_group_opinion_stage')}: ${Tr('purchase_group_stage_end_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"opinionEndDate\":\r\n error = `${Tr('purchasing_group_opinion_stage')}: ${Tr('purchase_group_stage_start_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"submissionStartDate\":\r\n error = `${Tr('purchasing_group_submission_stage')}: ${Tr('purchase_group_stage_start_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"submissionEndDate\":\r\n error = `${Tr('purchasing_group_submission_stage')}: ${Tr('purchase_group_stage_start_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n default:\r\n error = `${resp.errors[field].join(\", \")}`\r\n }\r\n enqueueErrorSnackbar(error)\r\n })\r\n } else if(resp) {\r\n enqueueSuccessSnackbar(Tr(\"saved\") + \" \" + validationSection.name);\r\n PurchasingGroupSectionService.getSections(groupId, [validationSection.section, PurchasingGroupStageSections.STAGE_1_SECTION])\r\n closeSection();\r\n }\r\n }).catch((e) => enqueueErrorSnackbar(e.message))\r\n }\r\n\r\n if (!schedule) return \r\n\r\n return (<>\r\n \r\n {\r\n\r\n const shape = {}\r\n if (schedule.joiningStartDateEditable) {\r\n shape.joiningStartDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'))\r\n }\r\n if (schedule.joiningEndDateEditable) {\r\n const joiningStartDate = form.joiningStartDate ? form.joiningStartDate.clone() : moment();\r\n joiningStartDate.add(1, \"minute\")\r\n shape.joiningEndDate = VS.dateTimeMin(joiningStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n }\r\n\r\n if (schedule.opinionStartDateEditable) {\r\n if (schedule.joiningEndDateEditable) {\r\n shape.opinionStartDate = VS.dateTimeMinNoRq(new Date(), Tr('v_time_can_not_be_past'))\r\n } else {\r\n shape.opinionStartDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'))\r\n }\r\n }\r\n if (schedule.opinionEndDateEditable) {\r\n const opinionStartDate = form.opinionStartDate ? form.opinionStartDate.clone() : moment();\r\n opinionStartDate.add(1, \"minute\")\r\n\r\n if (schedule.joiningEndDateEditable && !form.opinionStartDate) {\r\n shape.opinionEndDate = VS.dateTimeMinNoRq(opinionStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n } else {\r\n shape.opinionEndDate = VS.dateTimeMin(opinionStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n }\r\n }\r\n\r\n if (schedule.submissionStartDateEditable) {\r\n if (schedule.opinionEndDateEditable) {\r\n shape.submissionStartDate = VS.dateTimeMinNoRq(new Date(), Tr('v_time_can_not_be_past'))\r\n } else {\r\n shape.submissionStartDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'))\r\n }\r\n }\r\n if (schedule.submissionEndDateEditable) {\r\n const submissionStartDate = form.submissionStartDate ? form.submissionStartDate.clone() : moment();\r\n submissionStartDate.add(1, \"minute\")\r\n\r\n if (schedule.opinionEndDateEditable && !form.submissionStartDate) {\r\n shape.submissionEndDate = VS.dateTimeMinNoRq(submissionStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n } else {\r\n shape.submissionEndDate = VS.dateTimeMin(submissionStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n }\r\n }\r\n\r\n return VS.object(shape)\r\n })}\r\n onSubmit={handleSubmit}\r\n >\r\n {(formikProps) => (\r\n <>\r\n \r\n \r\n {/*{JSON.stringify(schedule)}*/}\r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nPurchasingGroupStage1Schedule.propTypes = {}\r\n\r\nexport default PurchasingGroupStage1Schedule;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport {TextField} from \"@material-ui/core\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport clsx from \"clsx\";\r\nimport {useDidUpdateEffect} from \"../hooks/useDidUpdateEffect\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n\r\n '&>*:not(:first-child):not(:last-child)': {\r\n marginLeft: theme.spacing(4),\r\n }\r\n },\r\n search: {\r\n width: 400,\r\n }\r\n}));\r\n\r\nconst EMPTY_SEARCH_OBJECT = {search: ''}\r\nconst MAX_SEARCH_LENGTH = 100;\r\n\r\nfunction BasicSearch(\r\n {\r\n className,\r\n label,\r\n searchInProgress,\r\n doSearch,\r\n clearSearch\r\n }) {\r\n\r\n\r\n const getInitValue = () => {\r\n return {...EMPTY_SEARCH_OBJECT};\r\n }\r\n\r\n const classes = useStyle();\r\n const [value, setValue] = useState(getInitValue());\r\n const [submitState, setSubmitState] = useState(0);\r\n\r\n useEffect(() => {\r\n if (submitState && !searchInProgress) {\r\n const valueFiltered = Object.keys(value)\r\n .filter((k) => value[k])\r\n .reduce((a, k) => ({...a, [k]: value[k]}), {});\r\n doSearch(valueFiltered);\r\n }\r\n // eslint-disable-next-line\r\n }, [submitState]);\r\n\r\n useDidUpdateEffect(() => {\r\n doClearSearch();\r\n },[clearSearch]);\r\n\r\n const handleChange = (id, e) => {\r\n setValue({...value, [id]: e.target.value});\r\n }\r\n\r\n const handleSubmit = () => {\r\n setSubmitState(x => x + 1)\r\n };\r\n\r\n const doClearSearch = () => {\r\n setValue(EMPTY_SEARCH_OBJECT);\r\n handleSubmit()\r\n }\r\n\r\n const handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n handleSubmit()\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n\r\n handleChange('search', e)}\r\n onKeyUp={handleKeyPress}\r\n fullWidth\r\n value={value.search}\r\n inputProps={{maxLength: MAX_SEARCH_LENGTH}}\r\n />\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nBasicSearch.propTypes = {\r\n classes: PropTypes.any,\r\n className: PropTypes.string,\r\n label: PropTypes.string,\r\n searchInProgress:PropTypes.bool,\r\n doSearch: PropTypes.func.isRequired,\r\n clearSearch: PropTypes.any\r\n}\r\n\r\n\r\nexport default BasicSearch;","const iconWorksReducer = (state, action) => {\r\n if (Object.keys(state).indexOf(action.type) < 0)\r\n throw new Error(`Unsupported type: '${action.type}, did you add it in initial state?`);\r\n let newState = {...state, [action.type]: action.works};\r\n const index = Object.keys(newState).findIndex(x => x !== 'anyWorks' && newState[x] === true);\r\n newState.anyWorks = index > -1;\r\n return newState;\r\n}\r\nexport default iconWorksReducer;","import reduxStore from 'redux/store'\r\nimport {setConfirmNotifications} from \"../redux/actions\";\r\n\r\nexport const simpleConfirm = (confirmText, onConfirm, onCancel) =>\r\n confirmComplex({confirmText, onConfirm, onCancel})\r\n\r\nexport const simpleConfirmNoTranslate = (confirmText, onConfirm, onCancel) =>\r\n confirmComplex({confirmText, onConfirm, onCancel, translateConfirmTexts: false})\r\n\r\nexport const confirmComplex = ({onConfirm, onCancel, confirmText, confirmText2, labelConfirm, labelCancel, translateConfirmTexts}) => {\r\n reduxStore.dispatch(setConfirmNotifications({\r\n confirmText,\r\n confirmText2,\r\n onConfirm,\r\n onCancel,\r\n labelConfirm,\r\n labelCancel,\r\n translateConfirmTexts\r\n }))\r\n}\r\n\r\n","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\n\r\nfunction WorkableIconMailButton(\r\n {\r\n tooltip = Tr('send'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconMailButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconMailButton;","import React, {useReducer, useState} from 'react'\r\nimport {Box, Tooltip, Typography} from '@material-ui/core';\r\nimport GridBlock from 'components/GridBlock';\r\nimport TextInput from 'components/TextInput';\r\nimport Tr from 'translations/Translations';\r\nimport clsx from 'clsx';\r\nimport InputLimits from 'constants/InputLimits';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport WorkableIconConfirmButton from \"components/button/WorkableIconConfirmButton\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport Form from \"components/Form\";\r\nimport VS from 'constants/ValidationShema';\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport {confirmComplex, simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport WarningIcon from \"@material-ui/icons/Warning\";\r\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\r\nimport RestoreIcon from '@material-ui/icons/Restore';\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport {PurchasingGroupStageSections} from \"../../../../constants/PurchasingGroupStageSections\";\r\nimport WorkableIconMailButton from \"components/button/WorkableIconMailButton\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport WorkableIconEditButton from \"../../../../../../../../components/button/WorkableIconEditButton\";\r\n\r\nconst limits = InputLimits.procedure.organization;\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n '&>*:nth-child(2)': {\r\n flexGrow: 1,\r\n }\r\n },\r\n rootEdit: {\r\n '&>*:nth-child(2)': {\r\n flexGrow: 1,\r\n paddingLeft: theme.spacing(2),\r\n }\r\n },\r\n editInput: {},\r\n marginLeft: {\r\n marginLeft: theme.spacing(2),\r\n },\r\n title: {\r\n marginLeft: theme.spacing()\r\n },\r\n rotate: {\r\n transform: 'rotate(180deg)'\r\n },\r\n cursorPointer: {\r\n cursor: 'pointer'\r\n },\r\n buttonReject: {\r\n marginTop: theme.spacing()\r\n },\r\n rejected: {\r\n color: theme.palette.text.disabled\r\n }\r\n}))\r\n\r\nfunction MembersElementTitle(\r\n {\r\n groupId,\r\n index,\r\n member,\r\n open,\r\n onOpen,\r\n editable,\r\n coordinatorView,\r\n validationSection,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const formId = 'memberTitleElement_' + member.identity\r\n const [editName, setEditName] = useState(false)\r\n const rejected = member.rejectionDate !== null;\r\n const canReject = member.actions['reject'] != null;\r\n const canRestore = member.actions['restore'] != null;\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n name: false,\r\n delete: false,\r\n reject: false,\r\n restore: false,\r\n resend: false\r\n });\r\n\r\n\r\n const handleEdit = () => {\r\n if (editName) {\r\n formSubmit[formId]()\r\n } else {\r\n setEditName(true)\r\n }\r\n }\r\n\r\n const submitName = (values) => {\r\n dispatchIconWorks({type: 'name', works: true});\r\n PurchasingGroupStage1Service.updateMemberName(groupId, member.identity, values).then(() => setEditName(false)).finally(() => dispatchIconWorks({\r\n type: 'name',\r\n works: false\r\n })\r\n );\r\n }\r\n\r\n const doDelete = () => {\r\n dispatchIconWorks({type: 'delete', works: true});\r\n PurchasingGroupStage1Service.deleteMember(groupId, member.identity).then(() => {\r\n PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n }).catch(() => dispatchIconWorks({type: 'delete', works: false}))\r\n }\r\n\r\n const onReject = () => {\r\n setEditName(false);\r\n dispatchIconWorks({type: 'reject', works: true});\r\n PurchasingGroupStage1Service.rejectMember(groupId, member.identity).finally(() => dispatchIconWorks({type: 'reject', works: false}))\r\n }\r\n\r\n const onRestore = () => {\r\n dispatchIconWorks({type: 'restore', works: true});\r\n PurchasingGroupStage1Service.restoreMember(groupId, member.identity).finally(() => dispatchIconWorks({type: 'restore', works: false}))\r\n }\r\n\r\n\r\n const showTitleComponent = () => (\r\n \r\n \r\n {member.name}\r\n \r\n \r\n )\r\n\r\n\r\n const editNameComponent = () => (\r\n \r\n {(formikProps) => (\r\n \r\n )}\r\n \r\n )\r\n\r\n\r\n const onResend = () => {\r\n dispatchIconWorks({type: 'resend', works: true});\r\n PurchasingGroupStage1Service.resendInviteNotification(groupId, member.identity).then(() => enqueueSuccessSnackbar(Tr('purchase_group_member_resend_success'))).finally(() => dispatchIconWorks({type: 'resend', works: false}))\r\n }\r\n\r\n\r\n return (\r\n \r\n {!coordinatorView ? \r\n \r\n {index + 1}.\r\n \r\n {!rejected && !member.complete && \r\n \r\n }\r\n : \r\n }\r\n\r\n {editName ? editNameComponent() : showTitleComponent()}\r\n\r\n \r\n {!coordinatorView && <>\r\n {editName ? <>\r\n \r\n setEditName(false)}\r\n tooltip={Tr('cancel')}\r\n Icon={ClearIcon}\r\n disabled={iconWorks.anyWorks}\r\n />\r\n :\r\n \r\n }\r\n confirmComplex({\r\n onConfirm: doDelete,\r\n confirmText: Tr('confirm_delete'),\r\n confirmText2: member.name,\r\n translateConfirmTexts: false\r\n })}\r\n working={iconWorks.delete}\r\n disabled={!editable || !member.actions['delete'] || iconWorks.anyWorks}\r\n />\r\n {\r\n canReject ?\r\n simpleConfirm(\"purchase_groups_exclude_confirm\", onReject)}>{Tr('purchase_groups_exclude')}\r\n \r\n : (canRestore &&\r\n simpleConfirm(\"purchase_groups_restore_confirm\", onRestore)}>{Tr('purchase_groups_restore')}\r\n \r\n )\r\n }\r\n }\r\n\r\n {!coordinatorView && editable && validationSection.activeStage === 1 &&\r\n }\r\n\r\n {!coordinatorView && }\r\n \r\n \r\n )\r\n}\r\n\r\nMembersElementTitle.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(MembersElementTitle);","import React, {useState} from 'react'\r\nimport clsx from 'clsx';\r\nimport {connect} from 'react-redux'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport DescriptionIcon from '@material-ui/icons/Description';\r\nimport FolderIcon from \"@material-ui/icons/Folder\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport PropTypes from 'prop-types'\r\nimport Typography from \"components/Typography\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport MultiButton, {createButton} from \"./components/MultiButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n disabledEmpty: {\r\n fontStyle: 'italic'\r\n },\r\n disabled: {\r\n '& textarea': {\r\n color: theme.palette.text.primary\r\n }\r\n },\r\n textField: {\r\n wordBreak: \"break-word\",\r\n whiteSpace: 'pre-line',\r\n marginBottom: theme.spacing(2)\r\n }\r\n}));\r\n\r\nexport const createEditDescriptionFile = (demandId, identity, name, description, disabled, required = false, isFolder = false) => ({demandId, identity, name, description, disabled, required, isFolder});\r\n\r\nfunction EditDescriptionPopup(\r\n {\r\n editDescriptionFile,\r\n onClose,\r\n onUpdated,\r\n service,\r\n formSubmit,\r\n }) {\r\n\r\n const {demandId, identity, name, description, disabled, required, isFolder} = editDescriptionFile;\r\n const classes = useStyle();\r\n const formId = useId();\r\n const [working, setWorking] = useState(false);\r\n\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = ({description}) => {\r\n setWorking(true);\r\n service.updateDescription(demandId, identity, description).then(onUpdated).finally(()=> setWorking(false))\r\n }\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr(disabled ? 'close': 'cancel'), onClose, disabled ? undefined :'outlined', false));\r\n if(!disabled)\r\n buttons.push(createButton(Tr('confirm'), handleSubmit, undefined, working, undefined, working));\r\n\r\n\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n\r\n \r\n {(formikProps) => (\r\n \r\n\r\n \r\n {name}\r\n \r\n\r\n {\r\n disabled ?\r\n \r\n {getObjectValue('description', formikProps.values, null)}\r\n \r\n :\r\n \r\n }\r\n\r\n\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nEditDescriptionPopup.propTypes = {\r\n editDescriptionFile: PropTypes.shape({\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n identity: PropTypes.oneOfType([PropTypes.number, PropTypes.object]).isRequired,\r\n name: PropTypes.string.isRequired,\r\n description: PropTypes.string,\r\n disabled: PropTypes.bool.isRequired,\r\n required: PropTypes.bool.isRequired\r\n }).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n onUpdated: PropTypes.func.isRequired,\r\n service: PropTypes.shape({\r\n updateDescription: PropTypes.func.isRequired\r\n })\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(EditDescriptionPopup);","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport SearchIcon from '@material-ui/icons/Search'\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconSearchButton(\r\n {\r\n tooltip = Tr('search2'),\r\n ...props\r\n }) {\r\n\r\n return \r\n}\r\n\r\nWorkableIconSearchButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.oneOfType([PropTypes.string, PropTypes.element, PropTypes.elementType]),\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconSearchButton;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconDownloadButton(\r\n {\r\n tooltip = Tr('download'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconDownloadButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconDownloadButton;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport LaunchIcon from '@material-ui/icons/Launch';\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction WorkableIconPublishButton(\r\n {\r\n tooltip = Tr('publish'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconPublishButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconPublishButton;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport LaunchIcon from '@material-ui/icons/Launch';\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport clsx from 'clsx';\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n rotate: {\r\n transform: \"rotate(90deg)\"\r\n }\r\n}));\r\n\r\nfunction WorkableIconUnpublishButton(\r\n {\r\n tooltip = Tr('unpublish'),\r\n className,\r\n ...props\r\n }) {\r\n const classes = useStyle();\r\n return \r\n\r\n}\r\n\r\nWorkableIconUnpublishButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconUnpublishButton;","import React, {useReducer} from 'react'\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles, TableCell, TableRow} from \"@material-ui/core\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport WorkableIconSearchButton from \"components/button/WorkableIconSearchButton\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport WorkableIconDownloadButton from \"components/button/WorkableIconDownloadButton\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport WorkableIconPublishButton from \"components/button/WorkableIconPublishButton\";\r\nimport WorkableIconUnpublishButton from \"components/button/WorkableIconUnpublishButton\";\r\nimport {PurchasingGroupDocumentStatusLabel} from \"../constants/PurchasingGroupDocumentStatus\";\r\nimport PropTypes from \"prop-types\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n warnIcon: {\r\n padding: 0,\r\n color: `${theme.palette.secondary.main} !important`\r\n },\r\n descriptionTooltip: {\r\n whiteSpace: 'pre-line'\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n versionsCell: {\r\n background: theme.palette.background.default,\r\n paddingLeft: 0,\r\n paddingRight: 0\r\n }\r\n}));\r\n\r\nfunction MembersDocumentsListTableRow(\r\n {\r\n groupId,\r\n mainDocs,\r\n editable,\r\n coordinatorView,\r\n memberId,\r\n row,\r\n index,\r\n onEditDescriptionFile,\r\n validationSection,\r\n allMemberDocumentsApiPath\r\n }) {\r\n const classes = useStyle();\r\n const memberMode = !!memberId;\r\n const {enqueueErrorSnackbar} = useSnackbar();\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n delete: false,\r\n publish: false,\r\n unpublish: false\r\n });\r\n\r\n const doDelete = () => {\r\n dispatchIconWorks({type: 'delete', works: true});\r\n let promise;\r\n if (!!memberId) {\r\n promise = PurchasingGroupStage1Service.deleteMemberDocument(groupId, memberId, row.identity)\r\n } else {\r\n promise = PurchasingGroupStage1Service.deleteAllMembersDocument(groupId, allMemberDocumentsApiPath, row.identity)\r\n }\r\n promise.then(() => PurchasingGroupSectionService.getSections(groupId, validationSection.section)).catch(() => dispatchIconWorks({\r\n type: 'delete',\r\n works: false\r\n }));\r\n }\r\n const handleDelete = () => {\r\n simpleConfirm('confirm_delete_file', doDelete)\r\n }\r\n\r\n const onDownload = () => {\r\n dispatchIconWorks({type: 'download', works: true});\r\n let promise;\r\n if (!!memberId) {\r\n promise = PurchasingGroupStage1Service.downloadMemberDocument(groupId, memberId, row.identity, false)\r\n } else {\r\n promise = PurchasingGroupStage1Service.downloadAllMembersDocument(groupId, allMemberDocumentsApiPath, row.identity, false)\r\n }\r\n promise.finally(() => dispatchIconWorks({type: 'download', works: false}));\r\n }\r\n\r\n const onUnpublish = () => {\r\n dispatchIconWorks({type: 'unpublish', works: true});\r\n PurchasingGroupStage1Service.unpublishAllMembersDocument(groupId, allMemberDocumentsApiPath, row.identity).catch((e) => {\r\n enqueueErrorSnackbar(`${row.name} - ${row.typeTranslated}: ${e.message}`)\r\n }).finally(() => dispatchIconWorks({type: 'unpublish', works: false}));\r\n }\r\n const onPublish = () => {\r\n dispatchIconWorks({type: 'publish', works: true});\r\n PurchasingGroupStage1Service.publishAllMembersDocument(groupId, allMemberDocumentsApiPath, row.identity)\r\n .catch((e) => {\r\n enqueueErrorSnackbar(`${row.name} - ${row.typeTranslated}: ${e.message}`)\r\n })\r\n .finally(() => dispatchIconWorks({type: 'publish', works: false}));\r\n }\r\n\r\n return (\r\n {index}\r\n {row.name}\r\n \r\n onEditDescriptionFile(row)}\r\n tooltip={row.description ?

{row.description}

: {Tr('no_description')}}\r\n />\r\n
\r\n {row.typeTranslated}\r\n {!mainDocs && {moment(row.createDate).format(DateFormats.DATETIME_FORMAT)}}\r\n {mainDocs && {row.publishDate ? moment(row.publishDate).format(DateFormats.DATETIME_FORMAT) : null}}\r\n {mainDocs && !coordinatorView && {PurchasingGroupDocumentStatusLabel(row.status)}}\r\n \r\n onDownload(row.actions.download, row.name)}\r\n hideTooltip={!row.actions.download}\r\n disabled={iconWorks.anyWorks || !row.actions.download}\r\n working={iconWorks.download}\r\n />\r\n \r\n {!coordinatorView && mainDocs && \r\n {\r\n row.actions.unpublish ?\r\n onUnpublish(row.actions.download, row.name)}\r\n hideTooltip={!row.actions.unpublish}\r\n disabled={!editable || iconWorks.anyWorks || !row.actions.unpublish}\r\n working={iconWorks.unpublish}\r\n />\r\n :\r\n onPublish(row.actions.download, row.name)}\r\n hideTooltip={!row.actions.publish}\r\n disabled={!editable || iconWorks.anyWorks || !row.actions.publish}\r\n working={iconWorks.publish}\r\n />\r\n }\r\n }\r\n {(!coordinatorView || (coordinatorView && memberMode)) && \r\n \r\n }\r\n
)\r\n}\r\n\r\nMembersDocumentsListTableRow.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n mainDocs: PropTypes.bool,\r\n editable: PropTypes.bool.isRequired,\r\n coordinatorView: PropTypes.bool.isRequired,\r\n memberId: PropTypes.number,\r\n row: PropTypes.shape({\r\n identity: PropTypes.number,\r\n actions: PropTypes.object.isRequired,\r\n publishDate: PropTypes.string,\r\n createDate: PropTypes.string,\r\n description: PropTypes.string,\r\n }).isRequired,\r\n index: PropTypes.number.isRequired,\r\n onEditDescriptionFile: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default MembersDocumentsListTableRow;","import Tr from 'translations/Translations';\r\n\r\n\r\nexport const PurchasingGroupDocumentStatus = {\r\n NEW: \"NEW\",\r\n PUBLISHED: \"PUBLISHED\",\r\n WITHDRAWN: \"WITHDRAWN\"\r\n}\r\nconst _TR_PREFIX = 'purchasing_group_document_status_';\r\n\r\nexport const PurchasingGroupDocumentStatusLabel = (status) => status ? Tr(_TR_PREFIX + status.toLowerCase()) : null;","import React from 'react'\r\nimport {makeStyles, Typography} from '@material-ui/core';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport DoubleButton from 'components/popup/components/DoubleButton';\r\nimport Select from 'components/Select';\r\nimport VS from 'constants/ValidationShema';\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n gridContainer: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n fileName: {\r\n width: 400\r\n },\r\n select: {\r\n width: 350,\r\n marginLeft: theme.spacing(2)\r\n },\r\n\r\n}));\r\n\r\nfunction SelectMembersDocumentType(\r\n {\r\n items,\r\n types,\r\n onCancel,\r\n onSubmit,\r\n formSubmit,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const formId = useId();\r\n const selectId = 'item';\r\n\r\n const createSelectTab = () => {\r\n if (types === undefined) return '';\r\n return Object.keys(types).map(x => ({value: x, label: types[x]}));\r\n }\r\n\r\n const generateItems = (formikProps) => {\r\n if (items.length === 0) {\r\n return {Tr(\"file_extension_error\")}\r\n }\r\n return items.map((item, i) => {\r\n return (\r\n \r\n {item.name}\r\n\r\n \r\n\r\n \r\n )\r\n })\r\n };\r\n\r\n const submitForm = () => {\r\n formSubmit[formId]()\r\n };\r\n\r\n const generateInitialValues = () => {\r\n let obj = {};\r\n for (let i = 0; i < items.length; i++) {\r\n obj[selectId + i] = \"\";\r\n }\r\n return obj\r\n };\r\n\r\n const generateValidationSchema = () => {\r\n let obj = {};\r\n for (let i = 0; i < items.length; i++) {\r\n obj[selectId + i] = VS.string();\r\n }\r\n\r\n return VS.object(obj)\r\n };\r\n\r\n const handleSubmit = (values) => onSubmit(values, items)\r\n\r\n if (items === undefined) return '';\r\n return (\r\n }\r\n >\r\n \r\n {(formikProps) => (\r\n <>\r\n \r\n {generateItems(formikProps)}\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n )\r\n}\r\n\r\nSelectMembersDocumentType.propTypes = {\r\n items: PropTypes.arrayOf(PropTypes.shape({\r\n name: PropTypes.string.isRequired\r\n })).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(SelectMembersDocumentType);","import React, {useMemo, useState} from 'react'\r\nimport PropTypes from \"prop-types\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport EditDescriptionPopup, {createEditDescriptionFile} from \"components/popup/EditDescriptionPopup\";\r\nimport MembersDocumentsListTableRow from \"./MembersDocumentsListTableRow\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport TitledComponent from 'components/TitledComponent';\r\nimport SelectMembersDocumentType from \"./SelectMembersDocumentType\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport clsx from \"clsx\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n lpColumn: theme.components.table.lpColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n typeColumn: {\r\n width: 180\r\n },\r\n marginTop: {\r\n marginTop: theme.spacing(2)\r\n },\r\n marginBottom: {\r\n marginBottom: theme.spacing(3)\r\n }\r\n\r\n}));\r\n\r\n\r\nfunction MembersDocumentsList(\r\n {\r\n groupId,\r\n mainDocs,\r\n editable,\r\n coordinatorView,\r\n membersDocs,\r\n memberId,\r\n validationSection,\r\n allMemberDocumentsApiPath\r\n }) {\r\n\r\n const classes = useStyle();\r\n const {documents, availableTypes} = membersDocs;\r\n const memberMode = !!memberId;\r\n const [editDescriptionFile, setEditDescriptionFile] = useState(false);\r\n const [generateWorking, setGenerateWorking] = useState(false);\r\n const [addFilesWorking, setAddFilesWorking] = useState(false);\r\n const [selectedFiles, setSelectedFiles] = useState(null);\r\n const [configuredFiles, setConfiguredFiles] = useState(null);\r\n const {enqueueSuccessSnackbar, enqueueErrorSnackbar} = useSnackbar();\r\n\r\n const hasUpload = useMemo(() => {\r\n return editable && availableTypes && Object.keys(availableTypes).length > 0\r\n }, [availableTypes, editable])\r\n\r\n const openEditDescription = (file) => {\r\n if (memberMode) {\r\n setEditDescriptionFile(createEditDescriptionFile(groupId, {\r\n memberId,\r\n documentId: file.identity\r\n }, file.name, file.description || \"\", !editable || !file.actions.editDescription, false, false))\r\n } else {\r\n setEditDescriptionFile(createEditDescriptionFile(groupId, {\r\n documentId: file.identity,\r\n documentsApiPathType: allMemberDocumentsApiPath,\r\n }, file.name, file.description || \"\", !editable || !file.actions.editDescription, false, false))\r\n }\r\n }\r\n\r\n const generateGroupAgreementDocument = () => {\r\n setGenerateWorking(true);\r\n PurchasingGroupStage1Service.generateGroupAgreementDocument(groupId).then((resp) => {\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section);\r\n enqueueSuccessSnackbar(availableTypes.group_agreement);\r\n }).catch((e) => {\r\n enqueueErrorSnackbar(e.message)\r\n }).finally(() => {\r\n setGenerateWorking(false)\r\n })\r\n }\r\n\r\n const afterDocumentAdd = (docs) => {\r\n docs.filter(d => d.error !== null).forEach( d => enqueueErrorSnackbar(`${d.name} - ${d.typeTranslated}: ${d.error}`));\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section);\r\n }\r\n\r\n const handleSendFiles = (uploadedFiles, config) => {\r\n if (uploadedFiles.length) {\r\n const tab = uploadedFiles.map((x) => ({\r\n repositoryId: x.identity,\r\n type: config[`item${x.originalIndex}`]\r\n }));\r\n if (memberMode) {\r\n setAddFilesWorking(true);\r\n PurchasingGroupStage1Service.addMemberDocuments(groupId, memberId, tab).then(afterDocumentAdd).catch((e) => {\r\n enqueueErrorSnackbar(e.message)\r\n }).finally(()=> setAddFilesWorking(false));\r\n } else {\r\n setAddFilesWorking(true);\r\n PurchasingGroupStage1Service.addAllMembersDocuments(groupId, allMemberDocumentsApiPath, tab).then(afterDocumentAdd).catch((e) => {\r\n enqueueErrorSnackbar(e.message)\r\n }).finally(()=> setAddFilesWorking(false));\r\n }\r\n }\r\n }\r\n\r\n\r\n const handleSubmitSelectDocumentTypes = (values) => {\r\n setConfiguredFiles({files: selectedFiles, config: values})\r\n setSelectedFiles(null);\r\n };\r\n\r\n return (<>\r\n {!!documents &&
\r\n\r\n <>\r\n \r\n {!memberMode && !coordinatorView && !!availableTypes && !!availableTypes.group_agreement &&\r\n {`${Tr('create')} ${availableTypes.group_agreement}`}}\r\n\r\n {!documents.length ?\r\n {Tr('no_options')}\r\n :\r\n \r\n \r\n \r\n {Tr(\"column_lp\")}\r\n {Tr(\"name\")}\r\n {Tr(\"description\")}\r\n {Tr(\"type\")}\r\n {!mainDocs && {Tr(\"add_data\")}}\r\n {mainDocs && {Tr(\"publish_data\")}}\r\n {mainDocs && !coordinatorView && {Tr(\"status\")}}\r\n \r\n {!coordinatorView && mainDocs && }\r\n {(!coordinatorView || (coordinatorView && memberMode)) && }\r\n \r\n \r\n \r\n {\r\n documents.map((doc, index) => (\r\n ))\r\n }\r\n \r\n
\r\n }\r\n {hasUpload &&\r\n setSelectedFiles(files)}\r\n configuredFiles={configuredFiles}\r\n working={addFilesWorking}\r\n />\r\n }\r\n
\r\n {Boolean(editDescriptionFile) &&\r\n setEditDescriptionFile(null)}\r\n onClose={() => setEditDescriptionFile(null)}\r\n service={{updateDescription: memberMode ? PurchasingGroupStage1Service.updateMemberDocument : PurchasingGroupStage1Service.updateAllMembersDocument}}\r\n />\r\n }\r\n\r\n {!!selectedFiles && setSelectedFiles(null)}\r\n onSubmit={handleSubmitSelectDocumentTypes}\r\n />}\r\n \r\n\r\n\r\n
\r\n }\r\n )\r\n}\r\n\r\nMembersDocumentsList.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n mainDocs: PropTypes.bool,\r\n editable: PropTypes.bool.isRequired,\r\n coordinatorView: PropTypes.bool.isRequired,\r\n membersDocs: PropTypes.shape({\r\n documents: PropTypes.array.isRequired,\r\n availableTypes: PropTypes.object.isRequired,\r\n }).isRequired,\r\n memberId: PropTypes.number,\r\n}\r\n\r\nexport default MembersDocumentsList;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport Form from 'components/Form';\r\nimport useId from 'hooks/useId';\r\nimport VS from \"constants/ValidationShema\";\r\nimport Loading from \"components/Loading\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport PartsTable from \"components/PartsTable\";\r\nimport {connect} from \"react-redux\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport {PurchasingGroupStageSections} from \"../../../../constants/PurchasingGroupStageSections\";\r\n\r\nfunction AddMemberUserPopup(\r\n {\r\n groupId,\r\n memberId,\r\n onClose,\r\n formSubmit,\r\n }) {\r\n\r\n const [working, setWorking] = useState(false);\r\n const [membersList, setMembersList] = useState(null);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getAvailableMemberUsers(groupId, memberId).then((resp) => {\r\n const respMapped = resp.map(x => ({identity: \"_\" + x.identity, name: `${x.firstName} ${x.lastName}`}));\r\n setMembersList(respMapped);\r\n }).catch(() => onClose());\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n const onSubmit = ({users}) => {\r\n const selectedUsers = Object.keys(users).filter(key => !!users[key]).map(key => parseInt(key.substring(1)))\r\n setWorking(true);\r\n PurchasingGroupStage1Service.addMemberUser(groupId, memberId, selectedUsers).then((resp) => {\r\n PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n onClose();\r\n }).catch(() => {\r\n setWorking(false);\r\n })\r\n }\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('confirm'), handleSubmit, undefined, working || !membersList || membersList.length === 0, undefined, working));\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {\r\n !membersList ? :\r\n {\r\n prev[cur.identity] = false;\r\n return prev;\r\n }, {}),\r\n }}\r\n validationSchema={\r\n VS.object({\r\n users: VS.any().test('partSelected', Tr('choose_at_least_one'), (e) => {\r\n const selected = Object.keys(e).filter(x => e[x] === true).length;\r\n return selected > 0;\r\n })\r\n })\r\n }\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n membersList.length === 0 ?\r\n {Tr('purchasing_group_users_add_no_users')}\r\n :\r\n )}\r\n \r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nAddMemberUserPopup.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired\r\n};\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddMemberUserPopup);","import {RestRequestGET} from 'libs/RestRequest'\r\nimport Endpoints from 'constants/Endpoints'\r\nimport reduxStore from 'redux/store'\r\nimport {setResource} from 'redux/actions'\r\nimport moment from 'moment'\r\n\r\nconst profile = async () => {\r\n\ttry {\r\n\t\tconst res = await RestRequestGET(Endpoints.USER_PROFILE);\r\n\t\treduxStore.dispatch(\r\n\t\t\tsetResource('userProfile', res)\r\n\t\t)\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nconst data = async () => {\r\n\ttry {\r\n\t\tconst res = await RestRequestGET(Endpoints.USER_DATA);\r\n\t\treduxStore.dispatch(\r\n\t\t\tsetResource('userData', res)\r\n\t\t)\r\n\t\treturn res;\r\n\t} catch (error) {\r\n\t}\r\n\r\n}\r\n\r\nconst sessionTime = async () => {\r\n\ttry {\r\n\t\tconst res = await RestRequestGET(Endpoints.USER_SESSION_TIME);\r\n\t\tconst value = res.result;\r\n\t\tconst endTime = moment().add(value,'s')\r\n\t\treduxStore.dispatch(setResource('sessionTime', {\r\n\t\t\ttime: value,\r\n\t\t\tendTime\r\n\t\t}))\r\n\t} catch (error) { }\r\n}\r\n\r\nconst serverTime = async () => {\r\n\tconst res = await RestRequestGET(Endpoints.USER_SERVER_TIME);\r\n\treturn res.result\r\n}\r\n\r\nexport default {\r\n\tdata,\r\n\tprofile,\r\n\tsessionTime,\r\n\tserverTime,\r\n};\r\n\r\n","import React, {useEffect, useRef, useState} from 'react'\r\nimport Loading from \"components/Loading\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport MembersDocumentsList from \"./MembersDocumentsList\";\r\nimport {connect} from \"react-redux\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport TitledComponent from \"components/TitledComponent\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport Button from \"components/Button\";\r\nimport AddIcon from \"@material-ui/icons/AddBoxOutlined\";\r\nimport AddMemberUserPopup from \"./AddMemberUserPopup\";\r\nimport {confirmComplex} from \"libs/ConfirmNotification\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport {getUserFullNameWithEmail} from \"libs/userNameGetter\";\r\nimport {PurchasingGroupStageSections} from \"../../../../constants/PurchasingGroupStageSections\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport CheckCircleOutlineIcon from '@material-ui/icons/CheckCircleOutline';\r\nimport CancelIcon from '@material-ui/icons/Cancel';\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport UserService from \"services/UserService\";\r\nimport scheduleReloadTimeout from \"../../../../utils/scheduleReloadTimeout\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Typography from \"components/Typography\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n lpColumn: theme.components.table.lpColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n addButton: {\r\n marginLeft: theme.spacing(2)\r\n },\r\n section: {\r\n marginTop: theme.spacing(2)\r\n },\r\n success: {\r\n color: theme.palette.success.dark,\r\n marginLeft: theme.spacing()\r\n },\r\n italic: {\r\n fontStyle: 'italic'\r\n }\r\n\r\n}))\r\n\r\nfunction MembersElementContent(\r\n {\r\n groupId,\r\n member,\r\n coordinatorView,\r\n editable,\r\n memberData,\r\n validationSection,\r\n stage1Sections\r\n }) {\r\n const classes = useStyle();\r\n const [addPopup, setAddPopup] = useState(false);\r\n const [deleteWorkingId, setDeleteWorkingId] = useState(0);\r\n const [participationWorking, setParticipationWorking] = useState(false);\r\n const rejected = member.rejectionDate !== null;\r\n const timeout = useRef(0)\r\n\r\n\r\n const getMember = () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n PurchasingGroupStage1Service.getMember(groupId, member.identity)\r\n\r\n const mainSection = stage1Sections[PurchasingGroupStageSections.STAGE_1_SECTION];\r\n if (mainSection && mainSection.schedule) {\r\n UserService.serverTime().then(serverTime => {\r\n let reloadTimeout = scheduleReloadTimeout(mainSection.schedule, serverTime);\r\n if (reloadTimeout) {\r\n timeout.current = setTimeout(() => {\r\n getMember();\r\n }, reloadTimeout)\r\n }\r\n })\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getMember();\r\n return () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n PurchasingGroupStage1Service.clearResources(PurchasingGroupStage1Service.PURCHASING_GROUP_MEMBER_RESOURCE_ID(member.identity))\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const doDelete = (user) => {\r\n setDeleteWorkingId(user.identity)\r\n PurchasingGroupStage1Service.deleteMemberUser(groupId, member.identity, user.identity).finally(() => {\r\n PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n setDeleteWorkingId(0);\r\n });\r\n }\r\n\r\n const withdrawParticipation = () => {\r\n setParticipationWorking(true);\r\n PurchasingGroupStage1Service.withdrawParticipationMember(groupId, member.identity).then(\r\n ()=> PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n ).finally(() => setParticipationWorking(false));\r\n }\r\n\r\n const confirmParticipation = () => {\r\n setParticipationWorking(true);\r\n PurchasingGroupStage1Service.confirmParticipationMember(groupId, member.identity).then(\r\n ()=> PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n ).finally(() => setParticipationWorking(false));\r\n }\r\n\r\n if (!memberData)\r\n return \r\n return (
\r\n {coordinatorView && }\r\n setAddPopup(true)} className={classes.addButton} Icon={AddIcon}\r\n variant=\"outlined\">{Tr('purchasing_group_users_add')}}>\r\n {\r\n memberData.users.length === 0 ?\r\n <>\r\n {Tr('purchasing_group_users_not_added')}\r\n \r\n :\r\n [\r\n (index + 1),\r\n getUserFullNameWithEmail(item),\r\n coordinatorView ? '' : confirmComplex({\r\n onConfirm: () => doDelete(item),\r\n confirmText: Tr('confirm_delete'),\r\n confirmText2: `${item.firstName} ${item.lastName}`,\r\n translateConfirmTexts: false\r\n })}/>\r\n ])}\r\n />\r\n }\r\n {\r\n addPopup && setAddPopup(false)}/>\r\n }\r\n
\r\n \r\n {\r\n memberData.canConfirm && <>\r\n {\r\n !memberData.confirmationDate ?\r\n {Tr(\"purchase_group_member_confirm_participation\")} :\r\n\r\n {Tr(\"purchase_group_member_withdraw_participation\")}\r\n }\r\n \r\n }\r\n {\r\n !!memberData.confirmationDate && {Tr(\"purchase_group_member_participation_confirmed\")}\r\n }\r\n \r\n
\r\n\r\n \r\n\r\n \r\n\r\n
)\r\n}\r\n\r\nMembersElementContent.propTypes = {}\r\n\r\nexport default connect((state, {member}) => ({\r\n memberData: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_MEMBER_RESOURCE_ID(member.identity)],\r\n stage1Sections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID],\r\n}), {})(MembersElementContent);","import React, {useState} from 'react'\r\nimport {Collapse, makeStyles} from \"@material-ui/core\";\r\nimport MembersElementTitle from \"./MembersElementTitle\";\r\nimport MembersElementContent from \"./MembersElementContent\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper,\r\n padding: `${theme.spacing()}px ${theme.spacing(2)}px`,\r\n marginBottom: theme.spacing()\r\n }\r\n}))\r\n\r\nfunction MembersElement(\r\n {\r\n index,\r\n groupId,\r\n member,\r\n coordinatorView,\r\n editable,\r\n search,\r\n validationSection\r\n }) {\r\n const classes = useStyle();\r\n const [open, setOpen] = useState(false);\r\n\r\n\r\n return ( -1} unmountOnExit={false}>\r\n
\r\n setOpen(!open)}\r\n coordinatorView={coordinatorView}\r\n validationSection={validationSection}\r\n />\r\n \r\n \r\n \r\n
\r\n
)\r\n}\r\n\r\nMembersElement.propTypes = {}\r\n\r\nexport default MembersElement;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport Form from 'components/Form';\r\nimport useId from 'hooks/useId';\r\nimport VS from \"constants/ValidationShema\";\r\nimport Loading from \"components/Loading\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport PartsTable from \"components/PartsTable\";\r\nimport {connect} from \"react-redux\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport {PurchasingGroupStageSections} from \"../../../../constants/PurchasingGroupStageSections\";\r\n\r\nfunction AddPurchasingGroupMemberPopup(\r\n {\r\n groupId,\r\n onClose,\r\n formSubmit,\r\n }) {\r\n\r\n const [working, setWorking] = useState(false);\r\n const [membersList, setMembersList] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getMembersAvailableConcerns(groupId).then((resp) => {\r\n const respMapped = resp.map(x => ({identity: x.orgId, name: x.name}));\r\n setMembersList(respMapped);\r\n }).catch(() => onClose());\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n const onSubmit = ({concerns}) => {\r\n const selectedOrgs = Object.keys(concerns).filter(key => !!concerns[key])\r\n\r\n setWorking(true);\r\n PurchasingGroupStage1Service.addMembers(groupId, selectedOrgs).then((resp) => {\r\n enqueueSuccessSnackbar(Tr('purchase_group_members_added', {x: resp.length}))\r\n PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n onClose();\r\n }).catch(() => {\r\n setWorking(false);\r\n })\r\n }\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('confirm'), handleSubmit, undefined, working || !membersList || membersList.length === 0, undefined, working));\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {\r\n !membersList ? :\r\n {\r\n prev[cur.identity] = false;\r\n return prev;\r\n }, {}),\r\n }}\r\n validationSchema={\r\n VS.object({\r\n concerns: VS.any().test('partSelected', Tr('choose_at_least_one'), (e) => {\r\n const selected = Object.keys(e).filter(x => e[x] === true).length;\r\n return selected > 0;\r\n })\r\n })\r\n }\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n membersList.length === 0 ?\r\n {Tr('purchase_group_member_add_no_concerns')}\r\n :\r\n )}\r\n \r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nAddPurchasingGroupMemberPopup.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired\r\n};\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddPurchasingGroupMemberPopup);","import React, {useState} from 'react'\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport MembersElement from \"./MembersElement\";\r\nimport Tr from \"translations/Translations\";\r\nimport AddIcon from '@material-ui/icons/AddBoxOutlined'\r\nimport Button from \"components/Button\";\r\nimport AddPurchasingGroupMemberPopup from \"./AddPurchasingGroupMemberPopup\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n search: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction MembersList(\r\n {\r\n groupId,\r\n members,\r\n coordinatorView,\r\n editable,\r\n validationSection\r\n }) {\r\n const classes = useStyle();\r\n const [addWindowOpen, setAddWindowOpen] = useState(false);\r\n const [search, setSearch] = useState({});\r\n\r\n return (
\r\n {!coordinatorView && }\r\n {\r\n members.map((x, i) => ())\r\n }\r\n {\r\n !coordinatorView && \r\n }\r\n {(!coordinatorView && addWindowOpen) && setAddWindowOpen(false)}/>}\r\n
)\r\n}\r\n\r\nMembersList.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n members: PropTypes.array.isRequired,\r\n coordinatorView: PropTypes.bool.isRequired,\r\n editable: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default MembersList;","export const PurchasingGroupRole = {\r\n AUTHOR: \"AUTHOR\",\r\n ADMIN: \"ADMIN\",\r\n EXPERT: \"EXPERT\",\r\n MEMBER: \"MEMBER\"\r\n}\r\n","import React, {useEffect, useRef} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport Loading from \"components/Loading\";\r\nimport MembersList from \"./components/MembersList\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport {connect} from \"react-redux\";\r\nimport MembersDocumentsList from \"./components/MembersDocumentsList\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport scheduleReloadTimeout from \"../../../utils/scheduleReloadTimeout\";\r\nimport {PurchasingGroupStageSections} from \"../../../constants/PurchasingGroupStageSections\";\r\nimport UserService from \"services/UserService\";\r\nimport {PurchasingGroupRole} from \"../../../constants/PurchasingGroupRole\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage1Members(\r\n {\r\n panelRef,\r\n validationSection,\r\n members,\r\n membersDocs,\r\n purchasingGroupHeader,\r\n stageSections\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const groupId = params.id;\r\n const stage = params.stage;\r\n const formId = params.section;\r\n const timeout = useRef(0);\r\n const documentsApiPathType = stage === \"1\" ? \"members\" : \"swz\"\r\n const coordinatorView = purchasingGroupHeader.userRole === PurchasingGroupRole.MEMBER;\r\n const editable = validationSection.editable;\r\n useStepperStateCloseValidator(formId);\r\n\r\n\r\n const getMembers = () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n if (stage === \"1\")\r\n PurchasingGroupStage1Service.getMembers(groupId);\r\n PurchasingGroupStage1Service.getAllMembersDocuments(groupId, documentsApiPathType);\r\n\r\n const mainSection = stageSections[stage === \"1\" ? PurchasingGroupStageSections.STAGE_1_SECTION : PurchasingGroupStageSections.STAGE_2_SECTION];\r\n if (mainSection && mainSection.schedule) {\r\n UserService.serverTime().then(serverTime => {\r\n let reloadTimeout = scheduleReloadTimeout(mainSection.schedule, serverTime);\r\n if (reloadTimeout) {\r\n timeout.current = setTimeout(() => {\r\n getMembers();\r\n }, reloadTimeout)\r\n }\r\n })\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getMembers();\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n return () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n if (stage === \"1\")\r\n PurchasingGroupStage1Service.clearResources(PurchasingGroupStage1Service.PURCHASING_GROUP_MEMBERS_RESOURCE_ID);\r\n PurchasingGroupStage1Service.clearResources(PurchasingGroupStage1Service.PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID);\r\n }\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n if ((stage === \"1\" && !members) || !membersDocs) return \r\n\r\n return (\r\n
\r\n {!coordinatorView && }\r\n \r\n {stage === \"1\" &&\r\n \r\n }\r\n
\r\n )\r\n}\r\n\r\nPurchasingGroupStage1Members.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n stageSections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID],\r\n members: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_MEMBERS_RESOURCE_ID],\r\n membersDocs: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID],\r\n purchasingGroupHeader: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID]\r\n}), {})(PurchasingGroupStage1Members);","import React, {useEffect} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PapersGeneratorList from \"components/complex/papersGenerator/PapersGeneratorList\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage1PapersGenerator(\r\n {\r\n panelRef,\r\n validationSection\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const groupId = params.id;\r\n const formId = params.section;\r\n const editable = validationSection.editable;\r\n\r\n useStepperStateCloseValidator(formId);\r\n\r\n useEffect(() => {\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n PapersGeneratorService.getAvailablePapers(groupId);\r\n return () => {\r\n PapersGeneratorService.clearResources(PapersGeneratorService.PAPERS_GENERATOR_LIST_RESOURCE_ID);\r\n }\r\n }, [groupId, validationSection.section])\r\n\r\n return (
\r\n \r\n
)\r\n}\r\n\r\nPurchasingGroupStage1PapersGenerator.propTypes = {}\r\n\r\nexport default PurchasingGroupStage1PapersGenerator;","import React, {useEffect, useRef, useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Loading from \"components/Loading\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport Select from \"components/Select\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n loading: {\r\n width: '98%'\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n },\r\n uploadFile: {\r\n marginBottom: 20\r\n }\r\n}));\r\n\r\nfunction AddNewOpinionMemberPopup(\r\n {\r\n groupId,\r\n onClose,\r\n apiPathType,\r\n formSubmit,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const sendType = useRef('');\r\n const [working, setWorking] = useState(true);\r\n const [contractorList, setContractorList] = useState([]);\r\n const formId = useId();\r\n\r\n\r\n const handleSubmit = (type) => {\r\n sendType.current = type;\r\n formSubmit[formId]();\r\n }\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getOpinionAvailableMembers(groupId, apiPathType).then((resp) => {\r\n if(resp) {\r\n setContractorList(resp.map(x => ({label: x.name, value: x.identity})));\r\n setWorking(false)\r\n } else {\r\n onClose()\r\n }\r\n\r\n });\r\n // eslint-disable-next-line\r\n }, [groupId, apiPathType]);\r\n\r\n\r\n const onSubmit = (opinion) => {\r\n setWorking(true);\r\n const send = sendType.current === 'send';\r\n sendType.current = \"\";\r\n\r\n PurchasingGroupStage1Service.addOpinionForMember(groupId, apiPathType, opinion.memberId).then((newOpinion) => {\r\n if (newOpinion) {\r\n PurchasingGroupStage1Service.saveOpinionMessage(groupId, apiPathType, newOpinion.identity, {\r\n identity: 0,\r\n contents: opinion.contents,\r\n send: send\r\n }).then(() => onClose(newOpinion.identity))\r\n } else {\r\n onClose();\r\n }\r\n }).catch(() => setWorking(false));\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('save'), () => handleSubmit('save'), 'outlined', working));\r\n buttons.push(createButton(Tr('send'), () => handleSubmit('send'), undefined, working));\r\n return buttons;\r\n }\r\n\r\n\r\n return (\r\n }\r\n >\r\n \r\n {(formikProps) => (\r\n \r\n {working && }\r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddNewOpinionMemberPopup);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {Badge, makeStyles, Typography} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from 'clsx';\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\nimport {getUserFullNameWithDeputy} from \"../../../../../../../../libs/userNameGetter\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '80%',\r\n margin: 5,\r\n },\r\n rootMine: {\r\n marginLeft: '20%'\r\n },\r\n contentWrapper: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper,\r\n position: 'relative'\r\n },\r\n contentWrapperUnread: {\r\n borderWidth: 3\r\n },\r\n contentWrapperMine: {\r\n backgroundColor: theme.palette.background.default\r\n },\r\n content: {\r\n padding: `${theme.spacing(1)}px ${theme.spacing(2)}px`\r\n },\r\n sendDate: {\r\n margin: `0 ${theme.spacing(1)}px`,\r\n minWidth: 110\r\n },\r\n message: {\r\n whiteSpace: 'pre-line',\r\n margin: `${theme.spacing(2)}px 0`\r\n },\r\n newBadge: {\r\n position: 'absolute',\r\n right: 0,\r\n top: 3\r\n },\r\n}));\r\n\r\n\r\nfunction OpinionMessage(\r\n {\r\n coordinatorView,\r\n message\r\n }) {\r\n\r\n const classes = useStyles();\r\n const mine = !!(coordinatorView ? message.memberMessage : !message.memberMessage);\r\n const unread = !mine && !message.read;\r\n\r\n return (\r\n
\r\n\r\n
\r\n
\r\n {unread && \r\n \r\n }\r\n \r\n \r\n {Tr(\"author\")}\r\n \r\n {getUserFullNameWithDeputy(message.author)}\r\n \r\n \r\n \r\n {Tr(\"send_date\")}\r\n \r\n {message.sendDate ? moment(message.sendDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT) : ''}\r\n \r\n \r\n \r\n\r\n {message.contents}\r\n\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nOpinionMessage.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default OpinionMessage;","import React, {useReducer, useRef, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport clsx from 'clsx';\r\nimport * as Yup from \"yup\";\r\nimport {connect} from \"react-redux\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Tr from \"translations/Translations\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '80%',\r\n margin: 5,\r\n marginLeft: '20%',\r\n },\r\n contentWrapper: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n content: {\r\n padding: `${theme.spacing(1)}px ${theme.spacing(2)}px`\r\n },\r\n sendDate: {\r\n margin: `0 ${theme.spacing(1)}px`,\r\n minWidth: 110\r\n },\r\n message: {\r\n whiteSpace: 'pre-line',\r\n margin: `${theme.spacing(2)}px 0`\r\n }\r\n}));\r\n\r\n\r\nfunction NewOpinionMessage(\r\n {\r\n groupId,\r\n coordinatorView,\r\n editable,\r\n message,\r\n opinion,\r\n apiPathType,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyles();\r\n const formId = useId();\r\n // eslint-disable-next-line\r\n const [error, setError] = useState('');\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n remove: false,\r\n send: false,\r\n save: false,\r\n other: false\r\n });\r\n const sendMode = useRef(\"\");\r\n\r\n\r\n const onSubmit = ({contents}) => {\r\n const type = sendMode.current;\r\n dispatchIconWorks({type: type, works: true});\r\n PurchasingGroupStage1Service.saveOpinionMessage(groupId, apiPathType, opinion.identity, {\r\n identity: message.identity,\r\n contents: contents,\r\n send: type === 'send'\r\n }).then(() => {\r\n if (opinion.identity === 0)\r\n PurchasingGroupStage1Service.getOpinions(groupId, apiPathType).then(() => dispatchIconWorks({type: type, works: false}))\r\n else\r\n dispatchIconWorks({type: type, works: false})\r\n })\r\n\r\n }\r\n const handleSubmit = (type) => {\r\n sendMode.current = type;\r\n formSubmit[formId]();\r\n }\r\n\r\n const handleDelete = () => {\r\n dispatchIconWorks({type: \"remove\", works: true});\r\n PurchasingGroupStage1Service.deleteOpinionMessage(groupId, apiPathType, opinion.identity, message.identity).catch(() => dispatchIconWorks({type: \"remove\", works: false}))\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n if (opinion.identity > 0)\r\n buttons.push(createButton(Tr('delete'), handleDelete, 'outlined', !editable || iconWorks.anyWorks, undefined, iconWorks.remove ));\r\n buttons.push(createButton(Tr('save'), () => handleSubmit('save'), 'outlined', !editable || iconWorks.anyWorks, undefined, iconWorks.save ));\r\n buttons.push(createButton(Tr('send'), () => handleSubmit('send'), undefined, !editable || iconWorks.anyWorks, undefined, iconWorks.send ));\r\n return buttons;\r\n }\r\n return (\r\n
\r\n\r\n
\r\n
\r\n \r\n {(formikProps) => (<>\r\n {error && {error}}\r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n )}\r\n \r\n
\r\n
\r\n\r\n
\r\n )\r\n}\r\n\r\nNewOpinionMessage.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(NewOpinionMessage);","import React, {useEffect, useState} from 'react'\r\nimport Loading from \"components/Loading\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport {connect} from \"react-redux\";\r\nimport OpinionMessage from \"./OpinionMessage\";\r\nimport NewOpinionMessage from \"./NewOpinionMessage\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport AddIcon from \"@material-ui/icons/AddBoxOutlined\";\r\nimport Tr from \"translations/Translations\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\n\r\nfunction OpinionElementContent(\r\n {\r\n groupId,\r\n opinion,\r\n coordinatorView,\r\n opinionMessages,\r\n editable,\r\n apiPathType\r\n }) {\r\n\r\n const [addWorking, setAddWorking] = useState(false);\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getOpinionMessages(groupId, apiPathType, opinion.identity, editable)\r\n return () => {\r\n PurchasingGroupStage1Service.clearResources(PurchasingGroupStage1Service.PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID(opinion.identity))\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n if (!opinionMessages)\r\n return \r\n return (
\r\n\r\n {(opinionMessages.length === 0) && {Tr('no_options')}}\r\n\r\n {\r\n opinionMessages.map(x => x.status === 'SENT' ? :\r\n \r\n )\r\n }\r\n {\r\n opinion.identity > 0 && \r\n {\r\n setAddWorking(true);\r\n PurchasingGroupStage1Service.addEmptyOpinionMessage(groupId, apiPathType, opinion.identity, editable).finally(() => setAddWorking(false))\r\n }}>{Tr(\"new_message\")}\r\n \r\n \r\n }\r\n\r\n\r\n
)\r\n}\r\n\r\nOpinionElementContent.propTypes = {}\r\n\r\nexport default connect((state, {opinion}) => ({\r\n opinionMessages: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID(opinion.identity)]\r\n}), {})(OpinionElementContent);","import React from 'react'\r\nimport {Badge, Box, Typography} from '@material-ui/core';\r\nimport GridBlock from 'components/GridBlock';\r\nimport clsx from 'clsx';\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n '&>*:nth-child(2)': {\r\n flexGrow: 1,\r\n }\r\n },\r\n title: {\r\n marginLeft: theme.spacing()\r\n },\r\n rotate: {\r\n transform: 'rotate(180deg)'\r\n },\r\n cursorPointer: {\r\n cursor: 'pointer'\r\n }\r\n}))\r\n\r\nfunction OpinionElementTitle(\r\n {\r\n index,\r\n opinion,\r\n open,\r\n onOpen,\r\n coordinatorView,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n return (\r\n \r\n { coordinatorView ? :\r\n \r\n {index + 1}.\r\n \r\n }\r\n\r\n\r\n \r\n \r\n {opinion.memberName}\r\n \r\n \r\n\r\n {!coordinatorView && !!opinion.unreadCount && \r\n \r\n }\r\n {!coordinatorView && }\r\n \r\n )\r\n}\r\n\r\nOpinionElementTitle.propTypes = {}\r\n\r\nexport default OpinionElementTitle;","import React, {useState} from 'react'\r\nimport {Collapse, makeStyles} from \"@material-ui/core\";\r\nimport OpinionElementContent from \"./OpinionElementContent\";\r\nimport OpinionElementTitle from \"./OpinionElementTitle\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper,\r\n padding: `${theme.spacing()}px ${theme.spacing(2)}px`,\r\n marginBottom: theme.spacing()\r\n }\r\n}))\r\n\r\nfunction OpinionElement(\r\n {\r\n index,\r\n groupId,\r\n opinion,\r\n coordinatorView,\r\n search,\r\n editable,\r\n apiPathType\r\n }) {\r\n const classes = useStyle();\r\n const [open, setOpen] = useState(false);\r\n\r\n\r\n return ( -1} unmountOnExit={false}>\r\n
\r\n setOpen(!open)}\r\n coordinatorView={coordinatorView}\r\n editable={editable}\r\n />\r\n \r\n \r\n \r\n
\r\n
)\r\n}\r\n\r\nOpinionElement.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n index: PropTypes.number.isRequired,\r\n opinion: PropTypes.object.isRequired,\r\n coordinatorView: PropTypes.bool.isRequired,\r\n search: PropTypes.shape({\r\n search: PropTypes.string\r\n }),\r\n editable: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default OpinionElement;","import React, {useCallback, useEffect, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport Button from \"components/Button\";\r\nimport Tr from \"translations/Translations\";\r\nimport AddNewOpinionMemberPopup from \"./components/AddNewOpinionMemberPopup\";\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport OpinionElement from \"./components/OpinionElement\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport AddIcon from \"@material-ui/icons/AddBoxOutlined\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {PurchasingGroupRole} from \"../../../constants/PurchasingGroupRole\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n },\r\n search: {\r\n marginBottom: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage1Opinion(\r\n {\r\n panelRef,\r\n validationSection,\r\n purchasingGroupHeader,\r\n opinions\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const groupId = params.id;\r\n const stage = params.stage;\r\n const formId = params.section;\r\n const editable = validationSection.editable;\r\n const apiPathType = stage === \"1\" ? \"AGREEMENT\" : \"SWZ\"\r\n const coordinatorView = purchasingGroupHeader.userRole === PurchasingGroupRole.MEMBER;\r\n const [newOpinionPopup, setNewOpinionPopup] = useState(false);\r\n const [search, setSearch] = useState({});\r\n\r\n useStepperStateCloseValidator(formId);\r\n\r\n const closeSection = useCallback(() => RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {\r\n id: groupId,\r\n stage: stage\r\n })), [groupId, stage]);\r\n\r\n useEffect(() => {\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n PurchasingGroupStage1Service.getOpinions(groupId, apiPathType).then((resp) => {\r\n if(!resp) closeSection();\r\n })\r\n return () => {\r\n PurchasingGroupStage1Service.clearResources(PurchasingGroupStage1Service.PURCHASING_GROUP_OPINIONS_RESOURCE_ID);\r\n }\r\n }, [groupId, closeSection, apiPathType, validationSection.section])\r\n\r\n if (!opinions) return \r\n\r\n return (
\r\n \r\n {!coordinatorView && \r\n \r\n \r\n\r\n \r\n }\r\n\r\n {\r\n opinions.map((x, i) => (\r\n ))\r\n }\r\n\r\n {(newOpinionPopup) && setNewOpinionPopup(false)} apiPathType={apiPathType}/>}\r\n
)\r\n}\r\n\r\nPurchasingGroupStage1Opinion.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n opinions: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_OPINIONS_RESOURCE_ID],\r\n purchasingGroupHeader: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID]\r\n}), {})(PurchasingGroupStage1Opinion);","import React, {useEffect, useState} from 'react'\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport Button from \"components/Button\";\r\nimport Tr from \"translations/Translations\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport {useParams} from \"react-router\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {confirmComplex} from \"libs/ConfirmNotification\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport {PurchasingGroupStageSections} from \"../../../constants/PurchasingGroupStageSections\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage1FinishPreparing(\r\n {\r\n panelRef,\r\n validationSection\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const groupId = params.id;\r\n const editable = validationSection.editable;\r\n\r\n const [canFinish, setCanFinish] = useState(false)\r\n\r\n useEffect(() => {\r\n PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.FINISH_PREPARING)\r\n PurchasingGroupStage1Service.canFinishPreparing(groupId).then(resp => {\r\n if (resp) {\r\n setCanFinish(resp.result);\r\n } else {\r\n setCanFinish(false);\r\n }\r\n });\r\n }, [groupId]);\r\n\r\n const finishPreparingState = () => {\r\n PurchasingGroupStage1Service.finishPreparingStage(groupId).then(resp => {\r\n if (resp) {\r\n PurchasingGroupStage1Service.getHeader(groupId);\r\n const path = RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {id: groupId, stage: 2});\r\n RouterPath.redirect(path);\r\n } else {\r\n }\r\n });\r\n }\r\n\r\n return (
\r\n \r\n \r\n confirmComplex({\r\n onConfirm: () => finishPreparingState(),\r\n confirmText: Tr('purchasing_group_finish_preparing_confirm1'),\r\n confirmText2: Tr('purchasing_group_finish_preparing_confirm2'),\r\n translateConfirmTexts: false\r\n })}\r\n >\r\n {Tr('purchasing_group_finish_preparing_action')}\r\n \r\n \r\n
)\r\n}\r\n\r\nPurchasingGroupStage1FinishPreparing.propTypes = {}\r\n\r\nexport default PurchasingGroupStage1FinishPreparing;","import React from 'react'\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PropTypes from \"prop-types\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n picker: {\r\n width: 400,\r\n marginRight: theme.spacing(3)\r\n },\r\n stageHead: {\r\n marginTop: theme.spacing(4)\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage2ScheduleForm(\r\n {\r\n formikProps,\r\n schedule,\r\n editable\r\n }) {\r\n const classes = useStyle();\r\n\r\n return (\r\n\r\n {Tr('purchasing_group_opinion_swz_stage')}\r\n \r\n \r\n \r\n \r\n\r\n {Tr('purchasing_group_collecting_data_stage')}\r\n \r\n \r\n \r\n \r\n\r\n )\r\n}\r\n\r\nPurchasingGroupStage2ScheduleForm.propTypes = {\r\n schedule: PropTypes.shape({\r\n swzOpinionStartDateEditable: PropTypes.bool.isRequired,\r\n swzOpinionEndDateEditable: PropTypes.bool.isRequired,\r\n collectingDataStartDateEditable: PropTypes.bool.isRequired,\r\n collectingDataEndDateEditable: PropTypes.bool.isRequired,\r\n }).isRequired\r\n}\r\n\r\nexport default PurchasingGroupStage2ScheduleForm;","import Endpoints from 'constants/Endpoints';\r\nimport {clearResource, setResource, setSaveStatusClosed, setSaveStatusError, setSaveStatusLoading} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst PURCHASING_GROUP_TEMPLATE_RESOURCE_ID = \"purchasingGroupTemplate\"\r\nconst PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID = (memberId) => `purchasingGroupTemplateMember_${memberId}`;\r\n\r\nconst __get = async (url, resourcesName) => {\r\n try {\r\n let res = await RestRequestGET(url)\r\n if (resourcesName) {\r\n reduxStore.dispatch(setResource(resourcesName, res))\r\n }\r\n return res;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst __save = async (url, values) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n const resp = await RestRequestPOST(url, values)\r\n isResponseValid(resp, (e) => {\r\n throw new Error(e);\r\n })\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n return resp;\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\n\r\nconst getCollectingSchedule = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COLLECTING_SCHEDULE(groupId))\r\n}\r\nconst saveCollectingSchedule = async (groupId, values) => {\r\n try {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_COLLECTING_SCHEDULE(groupId), values)\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n return resp;\r\n } catch (e) {\r\n }\r\n}\r\n\r\nconst getTemplate = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE(groupId), PURCHASING_GROUP_TEMPLATE_RESOURCE_ID)\r\n}\r\nconst saveTemplate = async (groupId, values) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE(groupId), values);\r\n if (resp) {\r\n const {resources} = reduxStore.getState();\r\n const newRes = {...resources[PURCHASING_GROUP_TEMPLATE_RESOURCE_ID], ...resp}\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_TEMPLATE_RESOURCE_ID, newRes))\r\n }\r\n return resp;\r\n\r\n}\r\nconst getAvailableTemplates = async (groupId) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n const resp = await __get(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_AVAILABLE(groupId))\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n return resp;\r\n}\r\n\r\nconst getTemplateMember = async (groupId, memberId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_ID(groupId, memberId), PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID(memberId))\r\n}\r\n\r\nconst getTemplateMemberForm = async (groupId, memberId, formId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID(groupId, memberId, formId))\r\n}\r\n\r\nconst updateReduxLists = (memberId, formId, resp) => {\r\n if (resp) {\r\n const {formListElement, formWrapper, memberListElement} = resp;\r\n const {resources} = reduxStore.getState();\r\n const curTemplate = resources[PURCHASING_GROUP_TEMPLATE_RESOURCE_ID];\r\n if (curTemplate) {\r\n const newTemplate = {...curTemplate, memberList: curTemplate.memberList.map(x => x.memberId === memberListElement.memberId ? memberListElement : x)}\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_TEMPLATE_RESOURCE_ID, newTemplate))\r\n }\r\n const curMember = resources[PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID(memberId)];\r\n if (curMember) {\r\n const newMember = {...curMember, formList: curMember.formList.map(x => x.formId === formListElement.formId ? formListElement : x)}\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID(memberId), newMember))\r\n }\r\n return formWrapper;\r\n }\r\n}\r\n\r\n\r\nconst saveTemplateMemberForm = async (groupId, memberId, formId, values) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID(groupId, memberId, formId), values);\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\n\r\nconst saveTemplateMemberFormDraft = async (groupId, memberId, formId, values) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_DRAFT(groupId, memberId, formId), values);\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\n\r\nconst saveTemplateMemberFormClearDraft = async (groupId, memberId, formId) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_CLEAR_DRAFT(groupId, memberId, formId));\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\n\r\nconst saveTemplateMemberFormAccept = async (groupId, memberId, formId) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ACCEPT(groupId, memberId, formId));\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\nconst saveTemplateMemberFormReject = async (groupId, memberId, formId) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_REJECT(groupId, memberId, formId));\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\n\r\nconst saveTemplateMemberFormAskForEdit = async (groupId, memberId, formId) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ASK_FOR_EDIT(groupId, memberId, formId));\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\nconst saveTemplateMemberFormAllowEdit = async (groupId, memberId, formId) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ALLOW_EDIT(groupId, memberId, formId));\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\nconst saveTemplateMemberFormRejectEdit = async (groupId, memberId, formId) => {\r\n const resp = await __save(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_REJECT_EDIT(groupId, memberId, formId));\r\n return updateReduxLists(memberId, formId, resp);\r\n}\r\n\r\n\r\nconst getArchiveList = async (groupId, memberId, formId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ARCHIVE_LIST(groupId, memberId, formId))\r\n}\r\nconst getArchiveElement = async (groupId, memberId, formId, archiveId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COLLECTING_TEMPLATE_MEMBER_FORM_ID_ARCHIVE_ID(groupId, memberId, formId, archiveId))\r\n}\r\n\r\nconst getFinish = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_FINISH(groupId))\r\n}\r\nconst saveFinish = async (groupId, values) => {\r\n return await __save(Endpoints.PURCHASING_GROUP_FINISH(groupId), values)\r\n}\r\nconst createDemand = async (url) => {\r\n return await RestRequestPOST(url + \"&CSRFToken=\" + reduxStore.getState().resources.userData.csrf, null, {maxRedirects: 0})\r\n}\r\n\r\nconst sendDealingsChangedNotification = async (groupId) => {\r\n return await RestRequestPOST(Endpoints.PURCHASING_GROUP_FINISH_DEALINGS_CHANGED(groupId));\r\n}\r\n\r\n\r\nconst clearResources = (resourceId) => reduxStore.dispatch(clearResource(resourceId))\r\n\r\n\r\nexport default {\r\n\r\n //collecting schedule\r\n getCollectingSchedule,\r\n saveCollectingSchedule,\r\n\r\n //template\r\n getTemplate,\r\n saveTemplate,\r\n getAvailableTemplates,\r\n getTemplateMember,\r\n getTemplateMemberForm,\r\n saveTemplateMemberForm,\r\n saveTemplateMemberFormDraft,\r\n saveTemplateMemberFormClearDraft,\r\n saveTemplateMemberFormAccept,\r\n saveTemplateMemberFormReject,\r\n saveTemplateMemberFormAskForEdit,\r\n saveTemplateMemberFormAllowEdit,\r\n saveTemplateMemberFormRejectEdit,\r\n getArchiveList,\r\n getArchiveElement,\r\n getFinish,\r\n saveFinish,\r\n createDemand,\r\n\r\n clearResources,\r\n PURCHASING_GROUP_TEMPLATE_RESOURCE_ID,\r\n PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID,\r\n sendDealingsChangedNotification\r\n}","import React, {useCallback, useEffect, useRef, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport Tr from \"translations/Translations\"\r\nimport Loading from \"components/Loading\";\r\nimport Form from \"components/Form\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport PurchasingGroupStage2ScheduleForm from \"./PurchasingGroupStage2ScheduleForm\";\r\nimport moment from \"moment\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport {PurchasingGroupStageSections} from \"../../../constants/PurchasingGroupStageSections\";\r\nimport PurchasingGroupStage2Service from \"services/PurchasingGroupStage2Service\";\r\nimport scheduleReloadTimeout from \"../../../utils/scheduleReloadTimeout\";\r\n\r\nfunction PurchasingGroupStage2Schedule(\r\n {\r\n panelRef,\r\n validationSection\r\n }) {\r\n\r\n const params = useParams();\r\n const groupId = params.id;\r\n const formId = params.section;\r\n const editable = validationSection.editable;\r\n const {enqueueSuccessSnackbar, enqueueErrorSnackbar} = useSnackbar();\r\n const [schedule, setSchedule] = useState(null);\r\n const timeout = useRef(0);\r\n\r\n useStepperStateCloseValidator(formId);\r\n\r\n const closeSection = useCallback(() => RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {\r\n id: groupId,\r\n stage: 2\r\n })), [groupId]);\r\n\r\n const getSchedule = () => {\r\n setSchedule(null);\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n PurchasingGroupStage2Service.getCollectingSchedule(groupId).then((resp) => {\r\n if (resp) {\r\n setSchedule(resp);\r\n let reloadTimeout = scheduleReloadTimeout(resp.schedule, resp.serverTime);\r\n if (reloadTimeout) {\r\n timeout.current = setTimeout(() => {\r\n getSchedule();\r\n }, reloadTimeout)\r\n }\r\n\r\n } else\r\n closeSection();\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n getSchedule();\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section);\r\n return () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n }\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n\r\n const handleSubmit = (values) => {\r\n PurchasingGroupStage2Service.saveCollectingSchedule(groupId, values).then((resp) => {\r\n if (resp && resp.success === false) {\r\n Object.keys(resp.errors).forEach((field) => {\r\n let error;\r\n switch (field) {\r\n case \"swzOpinionEndDate\":\r\n error = `${Tr('purchasing_group_opinion_swz_stage')} ${Tr('purchase_group_stage_end_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"swzOpinionStartDate\":\r\n error = `${Tr('purchasing_group_opinion_swz_stage')}: ${Tr('purchase_group_stage_start_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"collectingDataEndDate\":\r\n error = `${Tr('purchasing_group_collecting_data_stage')}: ${Tr('purchase_group_stage_end_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n case \"collectingDataStartDate\":\r\n error = `${Tr('purchasing_group_collecting_data_stage')}: ${Tr('purchase_group_stage_start_date')}: ${resp.errors[field].join(\", \")}`;\r\n break;\r\n default:\r\n error = `${resp.errors[field].join(\", \")}`\r\n }\r\n enqueueErrorSnackbar(error)\r\n })\r\n\r\n } else if (resp) {\r\n enqueueSuccessSnackbar(Tr(\"saved\") + \" \" + validationSection.name);\r\n PurchasingGroupSectionService.getSections(groupId, [validationSection.section, PurchasingGroupStageSections.STAGE_2_SECTION])\r\n closeSection();\r\n }\r\n\r\n })\r\n }\r\n\r\n if (!schedule) return \r\n\r\n return (
\r\n \r\n {\r\n const shape = {}\r\n if (schedule.swzOpinionStartDateEditable) {\r\n if (!form.swzOpinionEndDate)\r\n shape.swzOpinionStartDate = VS.dateTimeMinNoRq(new Date(), Tr('v_time_can_not_be_past'))\r\n else\r\n shape.swzOpinionStartDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'))\r\n }\r\n if (schedule.swzOpinionEndDateEditable) {\r\n const swzOpinionStartDate = form.swzOpinionStartDate ? form.swzOpinionStartDate.clone() : moment();\r\n swzOpinionStartDate.add(1, \"minute\")\r\n\r\n if (!form.swzOpinionStartDate)\r\n shape.swzOpinionEndDate = VS.dateTimeMinNoRq(swzOpinionStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n else\r\n shape.swzOpinionEndDate = VS.dateTimeMin(swzOpinionStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n }\r\n\r\n if (schedule.collectingDataStartDateEditable) {\r\n if(!form.collectingDataEndDate)\r\n shape.collectingDataStartDate = VS.dateTimeMinNoRq(new Date(), Tr('v_time_can_not_be_past'))\r\n else\r\n shape.collectingDataStartDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'))\r\n }\r\n if (schedule.collectingDataEndDateEditable) {\r\n const collectingDataStartDate = form.collectingDataStartDate ? form.collectingDataStartDate.clone() : moment();\r\n collectingDataStartDate.add(1, \"minute\")\r\n\r\n if (!form.collectingDataStartDate) {\r\n shape.collectingDataEndDate = VS.dateTimeMinNoRq(collectingDataStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n } else {\r\n shape.collectingDataEndDate = VS.dateTimeMin(collectingDataStartDate, Tr('v_end_time_can_not_be_before_start'))\r\n }\r\n }\r\n\r\n return VS.object(shape)\r\n })}\r\n onSubmit={handleSubmit}\r\n >\r\n {(formikProps) => (\r\n <>\r\n \r\n \r\n {/*{JSON.stringify(schedule)}*/}\r\n )}\r\n \r\n
\r\n )\r\n}\r\n\r\nPurchasingGroupStage2Schedule.propTypes = {}\r\n\r\nexport default PurchasingGroupStage2Schedule;","import React from 'react'\r\nimport {Tooltip, Typography} from '@material-ui/core';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport clsx from 'clsx';\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\nimport HourglassFullIcon from '@material-ui/icons/HourglassFull';\r\nimport BoldTypography from \"components/BoldTypography\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n '&>*:nth-child(2)': {\r\n flexGrow: 1,\r\n }\r\n },\r\n cursorPointer: {\r\n cursor: 'pointer'\r\n },\r\n marginRight: {\r\n marginRight: theme.spacing()\r\n }\r\n\r\n}))\r\n\r\nfunction TemplateMembersElementTitle(\r\n {\r\n groupId,\r\n index,\r\n member,\r\n open,\r\n onOpen,\r\n editable,\r\n coordinatorView,\r\n validationSection,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n\r\n return (\r\n \r\n {!coordinatorView ?\r\n \r\n {index + 1}.\r\n \r\n : \r\n }\r\n\r\n \r\n {member.memberName}\r\n \r\n {editable && !coordinatorView && !member.allFormsAccepted &&\r\n \r\n \r\n \r\n }\r\n {editable && !coordinatorView && member.askForEditPending &&\r\n \r\n \r\n \r\n }\r\n {editable && !coordinatorView && }\r\n \r\n )\r\n}\r\n\r\nTemplateMembersElementTitle.propTypes = {}\r\n\r\nexport default TemplateMembersElementTitle;","import Tr from \"translations/Translations\"\r\nexport const PurchasingGroupTemplateFieldType = {\r\n TEXT: \"TEXT\",\r\n DATE: \"DATE\",\r\n NUMBER: \"NUMBER\",\r\n PERCENTAGE: \"PERCENTAGE\",\r\n AGGREGATE: \"AGGREGATE\"\r\n}\r\nconst TR_PREFIX = \"template_field_\"\r\nexport const PurchasingGroupTemplateFieldTypeLabel = (type) => Tr(TR_PREFIX + type.toLowerCase());\r\n","import React from 'react'\r\nimport TextInput from \"components/TextInput\";\r\nimport {PurchasingGroupTemplateFieldType} from \"../../../../../templates/constants/PurchasingGroupTemplateFieldType\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Typography from \"components/Typography\";\r\nimport {Box} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport Tr from \"translations/Translations\";\r\nimport DatePicker from \"components/DatePicker\";\r\nimport moment from \"moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\n\r\nfunction TemplateMemberFormField(\r\n {\r\n formikProps,\r\n id,\r\n enabled,\r\n lastArchiveField,\r\n classes\r\n }) {\r\n const field = getObjectValue(id, formikProps.values, null);\r\n const createId = (key) => `${id}.${key}`\r\n\r\n const getInputType = () => {\r\n switch (field.type) {\r\n case PurchasingGroupTemplateFieldType.NUMBER:\r\n case PurchasingGroupTemplateFieldType.AGGREGATE:\r\n return INPUT_TYPE.NUMBER_DECIMAL\r\n case PurchasingGroupTemplateFieldType.PERCENTAGE:\r\n return INPUT_TYPE.NUMBER_POSITIVE_AMOUNT\r\n default:\r\n return undefined;\r\n }\r\n }\r\n\r\n const getReadonlyField = () => {\r\n const difference = !lastArchiveField ? false : (field.type === PurchasingGroupTemplateFieldType.TEXT || field.type === PurchasingGroupTemplateFieldType.DATE ?\r\n field.textValue !== lastArchiveField.textValue : field.decimalValue !== lastArchiveField.decimalValue)\r\n\r\n return (\r\n {!!lastArchiveField && getViewField(lastArchiveField)}\r\n {getViewField(field)}\r\n )\r\n }\r\n\r\n const getViewField = (field) => {\r\n return \r\n {field.name}\r\n {\r\n field.type === PurchasingGroupTemplateFieldType.TEXT || field.type === PurchasingGroupTemplateFieldType.DATE ?\r\n {!field.textValue ? Tr(\"empty_value\") :\r\n field.type === PurchasingGroupTemplateFieldType.DATE ? moment(field.textValue).format(DateFormats.DATE_FORMAT) : \"\"+field.textValue} :\r\n \r\n {field.decimalValue != null ? ((\"\" + field.decimalValue).replaceAll(\".\", \",\") +\r\n (field.type === PurchasingGroupTemplateFieldType.PERCENTAGE ? \" %\" : \"\"))\r\n : Tr(\"empty_value\")}\r\n \r\n }\r\n \r\n }\r\n\r\n return (\r\n enabled ?\r\n (field.type !== PurchasingGroupTemplateFieldType.AGGREGATE) &&\r\n <>\r\n {field.type === PurchasingGroupTemplateFieldType.DATE ?\r\n
\r\n \r\n
:\r\n \r\n }\r\n :\r\n getReadonlyField()\r\n )\r\n}\r\n\r\nTemplateMemberFormField.propTypes = {}\r\n\r\nexport default TemplateMemberFormField;","export const PurchasingGroupTemplateFormState = {\r\n NEW: \"NEW\",\r\n SENT: \"SENT\",\r\n VERIFIED: \"VERIFIED\",\r\n ASK_FOR_EDIT: \"ASK_FOR_EDIT\",\r\n EDIT: \"EDIT\"\r\n}","import Tr from \"translations/Translations\";\r\nimport {PurchasingGroupTemplateFieldType} from \"../../../../../templates/constants/PurchasingGroupTemplateFieldType\";\r\nimport moment from \"../../../../../../../../libs/moment\";\r\nimport DateFormats from \"../../../../../../../../constants/DateFormats\";\r\n\r\nexport default (form) => {\r\n const transformer = {\r\n purchaserName: {\r\n id: 'purchaserName',\r\n label: Tr('name')\r\n },\r\n }\r\n\r\n form.fieldValues.forEach((x, i) => {\r\n transformer[\"fieldValue_\" + x.identity] = {\r\n id: `fieldValues.${i}`,\r\n label: x.name,\r\n transform: (field) => {\r\n if (!field)\r\n return \"\";\r\n if (field.type === PurchasingGroupTemplateFieldType.TEXT) {\r\n return field.textValue || \"\";\r\n } else if(field.type === PurchasingGroupTemplateFieldType.DATE){\r\n return !!field.textValue ? moment(field.textValue).format(DateFormats.DATE_FORMAT) : \"\";\r\n } else {\r\n if (field.decimalValue != null) {\r\n return (\"\" + field.decimalValue).replace(\".\", \",\") + (field.type === PurchasingGroupTemplateFieldType.PERCENTAGE ? \" %\" : \"\")\r\n }\r\n }\r\n }\r\n }\r\n })\r\n return transformer;\r\n}\r\n\r\nexport const customParamTransformer = {\r\n decisionType: {\r\n id: \"decisionType\",\r\n label: Tr('decision'),\r\n showOnGrid: true,\r\n transform: (field) => {\r\n return field ? Tr(\"decision_type_\" + field.toLowerCase()) : null\r\n }\r\n }\r\n}\r\n","import React, {useEffect, useRef, useState} from 'react'\r\nimport {Box, makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport Tr from \"translations/Translations\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Form from \"components/Form\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport TemplateMemberFormField from \"./TemplateMemberFormField\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport {PurchasingGroupTemplateFieldType} from \"../../../../../templates/constants/PurchasingGroupTemplateFieldType\";\r\nimport {connect} from \"react-redux\";\r\nimport {PurchasingGroupTemplateFormState} from \"../constants/PurchasingGroupTemplateFormState\";\r\nimport clsx from \"clsx\";\r\nimport Typography from \"components/Typography\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport {PurchasingGroupRole} from \"../../../../constants/PurchasingGroupRole\";\r\nimport HistoryListPopup from \"components/popup/historyListPopup/HistoryListPopup\";\r\nimport HistoryButton from \"components/button/HistoryButton\";\r\nimport PurchasingGroupStage2Service from \"services/PurchasingGroupStage2Service\";\r\nimport propertyTransformer, {customParamTransformer} from \"../history/propertyTransformer\";\r\nimport moment from \"moment\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing()\r\n },\r\n\r\n\r\n fieldGrid: {\r\n paddingBottom: theme.spacing(),\r\n paddingTop: theme.spacing(2),\r\n borderBottom: \"solid 1px \" + theme.palette.border.dark\r\n },\r\n fieldBox: {\r\n paddingLeft: theme.spacing(),\r\n paddingRight: theme.spacing(),\r\n },\r\n fieldName: {\r\n fontSize: '0.75rem'\r\n },\r\n gridFieldComparing: {\r\n '&>.MuiGrid-item': {\r\n width: \"50%\"\r\n }\r\n },\r\n difference: {\r\n backgroundColor: theme.palette.warning.light\r\n },\r\n emptyValue: {\r\n color: theme.palette.action.disabled,\r\n fontStyle: \"italic\"\r\n }\r\n}))\r\n\r\nfunction TemplateMemberForm(\r\n {\r\n groupId,\r\n member,\r\n uxFormId,\r\n editable,\r\n coordinatorView,\r\n formWrapper,\r\n onDiscardChanges,\r\n onSubmit,\r\n formSubmit,\r\n purchasingGroupHeader\r\n }) {\r\n const classes = useStyle();\r\n const newForm = formWrapper.formId === 0;\r\n const formEditable = formWrapper.editable;\r\n const [submitter, setSubmitter] = useState(0);\r\n const [historyPopup, setHistoryPopup] = useState(false);\r\n const draftMode = useRef(false);\r\n\r\n const validationSchema = (allOptional) => {\r\n const getFieldVS = (field) => {\r\n switch (field.type) {\r\n case PurchasingGroupTemplateFieldType.NUMBER:\r\n return VS.object({decimalValue: allOptional || !field.required ? VS.bigDecimalOptional() : VS.bigDecimal()})\r\n case PurchasingGroupTemplateFieldType.PERCENTAGE:\r\n return VS.object({decimalValue: allOptional || !field.required ? VS.amountMax100Optional() : VS.amountMax100()})\r\n case PurchasingGroupTemplateFieldType.DATE:\r\n return VS.object({textValue: allOptional || !field.required ? VS.dateTimeNoReq() : VS.dateTimeValid()})\r\n case PurchasingGroupTemplateFieldType.TEXT:\r\n return VS.object({textValue: allOptional || !field.required ? VS.stringMaxNoRq(500) : VS.stringMax(500)})\r\n default:\r\n return VS.any();\r\n }\r\n }\r\n return VS.object({\r\n purchaserName: VS.stringMax(250),\r\n fieldValues: VS.arrayOf(VS.lazy((value) => {\r\n return getFieldVS(value)\r\n }))\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n if (submitter > 0)\r\n formSubmit[uxFormId]();\r\n // eslint-disable-next-line\r\n }, [submitter])\r\n\r\n const saveDraft = () => {\r\n draftMode.current = true;\r\n setSubmitter(submitter + 1);\r\n }\r\n\r\n const saveForm = () => {\r\n draftMode.current = false;\r\n setSubmitter(submitter + 1);\r\n }\r\n\r\n const getReadonlyNameField = () => {\r\n const difference = formWrapper.lastArchive ? formWrapper.form.purchaserName !== formWrapper.lastArchive.purchaserName : false;\r\n\r\n return (\r\n <>\r\n {\r\n formWrapper.lastArchive &&\r\n \r\n \r\n {Tr(\"change_before\")}\r\n \r\n \r\n {Tr(\"change_after\")}\r\n \r\n \r\n }\r\n \r\n {!!formWrapper.lastArchive && getViewNameField(formWrapper.lastArchive.purchaserName)}\r\n {getViewNameField(formWrapper.form.purchaserName)}\r\n \r\n )\r\n }\r\n\r\n const getViewNameField = (value) => {\r\n return \r\n {Tr(\"name\")}\r\n {value}\r\n \r\n }\r\n const loadHistoryList = async () => {\r\n try {\r\n return await PurchasingGroupStage2Service.getArchiveList(groupId, member.memberId, formWrapper.formId)\r\n } catch (e) {\r\n setHistoryPopup(false);\r\n }\r\n }\r\n\r\n const loadHistoryElement = async (archiveId) => {\r\n return await PurchasingGroupStage2Service.getArchiveElement(groupId, member.memberId, formWrapper.formId, archiveId);\r\n }\r\n\r\n return (
\r\n field.type === PurchasingGroupTemplateFieldType.DATE ? {\r\n ...field,\r\n textValue: !field.textValue ? null : moment(field.textValue)\r\n } : field)\r\n }}\r\n validationSchema={validationSchema(draftMode.current)}\r\n onSubmit={(values) => onSubmit(draftMode.current ? \"draft\" : \"save\", values)}>\r\n {(formikProps) => (<>\r\n \r\n {\r\n (formWrapper.hasAskedForEdit && !formWrapper.editable) && {Tr(\"purchase_groups_form_ask_edit\")}\r\n }\r\n \r\n {newForm ? Nowy formularz :
}\r\n
\r\n {\r\n !newForm && setHistoryPopup(true)}>\r\n {Tr('change_history')}\r\n \r\n }\r\n\r\n {\r\n formWrapper.canAskForEdit && \r\n }\r\n\r\n {\r\n (purchasingGroupHeader.userRole === PurchasingGroupRole.ADMIN && formWrapper.form.state === PurchasingGroupTemplateFormState.ASK_FOR_EDIT) && <>\r\n \r\n \r\n \r\n }\r\n\r\n {\r\n formEditable &&\r\n \r\n }\r\n {\r\n !coordinatorView && editable && formWrapper.form.state === PurchasingGroupTemplateFormState.SENT && <>\r\n \r\n \r\n \r\n }\r\n\r\n {(coordinatorView && formEditable && formWrapper.form.state !== PurchasingGroupTemplateFormState.EDIT) && \r\n }\r\n {(coordinatorView && formEditable) && formWrapper.hasDraftSaved &&\r\n \r\n }\r\n {formEditable &&\r\n }\r\n
\r\n
\r\n\r\n\r\n\r\n {\r\n formEditable ?\r\n : getReadonlyNameField()\r\n }\r\n\r\n\r\n {\r\n formWrapper.form.fieldValues.map((field, i) =>\r\n x.identity === field.identity) : undefined}\r\n classes={classes}\r\n />)\r\n }\r\n\r\n )}\r\n \r\n {historyPopup && setHistoryPopup(false)}\r\n propertyTransformer={propertyTransformer(formWrapper.form)} customParamTransformer={customParamTransformer}/>}\r\n
)\r\n}\r\n\r\nTemplateMemberForm.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n purchasingGroupHeader: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID],\r\n formSubmit: state.form\r\n}), {})(TemplateMemberForm);","import React, {useEffect, useState} from 'react'\r\nimport Loading from \"components/Loading\";\r\nimport {connect} from \"react-redux\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport PurchasingGroupStage2Service from \"services/PurchasingGroupStage2Service\";\r\nimport Tabs from \"components/Tabs\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Tr from \"translations/Translations\";\r\nimport AddIcon from '@material-ui/icons/AddBoxOutlined'\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport TemplateMemberForm from \"./TemplateMemberForm\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport HourglassEmptyIcon from '@material-ui/icons/HourglassEmpty';\r\nimport {Tooltip} from \"@material-ui/core\";\r\nimport {PurchasingGroupTemplateFormState} from \"../constants/PurchasingGroupTemplateFormState\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n },\r\n grid: {\r\n flexWrap: \"nowrap\",\r\n \"&>*:nth-child(2)\": {\r\n flexGrow: 1\r\n }\r\n },\r\n marginBottom: {\r\n marginBottom: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction TemplateMembersElementContent(\r\n {\r\n groupId,\r\n member,\r\n coordinatorView,\r\n editable,\r\n memberData,\r\n validationSection,\r\n stageSections,\r\n groupHeader,\r\n uxFormId,\r\n formValues,\r\n }) {\r\n const classes = useStyle();\r\n const [selectedFormId, setSelectedFormId] = useState(0);\r\n const [addFormWorking, setAddFormWorking] = useState(false);\r\n const [formWrapper, setFormWrapper] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage2Service.getTemplateMember(groupId, member.memberId).then((resp) => {\r\n if (resp && resp.formList.length > 0) {\r\n setSelectedFormId(resp.formList[0].formId)\r\n loadForm(resp.formList[0].formId)\r\n }\r\n });\r\n\r\n return () => {\r\n PurchasingGroupStage2Service.clearResources(PurchasingGroupStage2Service.PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID(member.memberId))\r\n }\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n const loadForm = (formId) => {\r\n setSelectedFormId(formId)\r\n setAddFormWorking(true);\r\n PurchasingGroupStage2Service.getTemplateMemberForm(groupId, member.memberId, formId).then(resp => {\r\n setFormWrapper(resp)\r\n }).finally(() => setAddFormWorking(false))\r\n }\r\n\r\n const checkFormDirty = (func) => {\r\n if (!!formValues[uxFormId + \"_dirty\"]) {\r\n simpleConfirm(\"modification_cancel_popup_text\", () => {\r\n func();\r\n })\r\n } else {\r\n func();\r\n }\r\n }\r\n\r\n const chooseForm = (formId) => {\r\n checkFormDirty(() => loadForm(formId))\r\n }\r\n\r\n const addForm = () => {\r\n checkFormDirty(() => loadForm(0))\r\n }\r\n\r\n const discardChanges = () => {\r\n checkFormDirty(() => doDiscardChanges())\r\n }\r\n\r\n const doDiscardChanges = () => {\r\n if (selectedFormId === 0) {\r\n if (memberData.formList.length > 0) {\r\n\r\n loadForm(memberData.formList[0].formId);\r\n } else {\r\n setFormWrapper(null)\r\n }\r\n } else {\r\n setFormWrapper(null);\r\n loadForm(selectedFormId);\r\n }\r\n }\r\n\r\n\r\n const onSubmit = (mode, values) => {\r\n let func;\r\n\r\n switch (mode) {\r\n case \"save\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberForm\r\n break;\r\n case \"draft\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberFormDraft\r\n break;\r\n case \"clearDraft\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberFormClearDraft\r\n break;\r\n case \"accept\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberFormAccept\r\n break;\r\n case \"reject\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberFormReject\r\n break;\r\n case \"askForEdit\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberFormAskForEdit\r\n break;\r\n case \"allowEdit\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberFormAllowEdit\r\n break;\r\n case \"rejectEdit\":\r\n func = PurchasingGroupStage2Service.saveTemplateMemberFormRejectEdit\r\n break;\r\n default:\r\n throw new Error(`Not supported mode: ${mode}`)\r\n }\r\n\r\n func(groupId, member.memberId, formWrapper.formId, values)\r\n .then(resp => {\r\n if (resp) {\r\n setFormWrapper(null);\r\n if (formWrapper.formId === 0) {\r\n setAddFormWorking(true)\r\n PurchasingGroupStage2Service.getTemplateMember(groupId, member.memberId).then(() => {\r\n loadForm(resp.formId)\r\n });\r\n } else {\r\n setTimeout(setFormWrapper, 100, resp)\r\n }\r\n if(\"accept\" === mode || \"allowEdit\" === mode) {\r\n enqueueSuccessSnackbar(\"😀 \" + Tr(\"confirmed\"))\r\n } else if(\"rejectEdit\" === mode || \"reject\" === mode) {\r\n enqueueSuccessSnackbar(\"😒 \" + Tr(\"rejected\") )\r\n } else if(\"askForEdit\" === mode) {\r\n enqueueSuccessSnackbar(\"🙏 \" + Tr(\"purchase_groups_form_ask_edit\") )\r\n } else {\r\n enqueueSuccessSnackbar(\"🫡 \" + Tr(\"saved\"))\r\n }\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n }\r\n })\r\n }\r\n\r\n const getIcon = (formListElement) => {\r\n switch (formListElement.state) {\r\n case PurchasingGroupTemplateFormState.ASK_FOR_EDIT:\r\n return \r\n \r\n \r\n case PurchasingGroupTemplateFormState.SENT:\r\n return \r\n \r\n \r\n default :\r\n return undefined;\r\n }\r\n }\r\n\r\n\r\n if (!memberData)\r\n return \r\n return (
\r\n {coordinatorView && }\r\n {editable && validationSection.addTplAvailable && (!formWrapper || formWrapper.formId > 0) &&\r\n {Tr(\"purchase_groups_form_add\")}}\r\n\r\n {\r\n\r\n \r\n {\r\n !!selectedFormId && memberData.formList.length > 1 && (!formWrapper || formWrapper.formId > 0) ?\r\n ({\r\n label: x.purchaserName,\r\n value: x.formId,\r\n disabled: addFormWorking,\r\n icon: getIcon(x)\r\n }))}\r\n value={selectedFormId}\r\n onChange={chooseForm}\r\n vertical\r\n /> :
\r\n }\r\n {addFormWorking && }\r\n {!addFormWorking && !!formWrapper &&\r\n \r\n }\r\n
\r\n }\r\n\r\n
)\r\n}\r\n\r\nTemplateMembersElementContent.propTypes = {}\r\n\r\nexport default connect((state, {member}) => ({\r\n memberData: state.resources[PurchasingGroupStage2Service.PURCHASING_GROUP_TEMPLATE_MEMBER_RESOURCE_ID(member.memberId)],\r\n stageSections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID],\r\n groupHeader: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID],\r\n formValues: state.formValues\r\n}), {})(TemplateMembersElementContent);","import React, {useState} from 'react'\r\nimport {Collapse, makeStyles} from \"@material-ui/core\";\r\nimport MembersElementTitle from \"./TemplateMembersElementTitle\";\r\nimport TemplateMembersElementContent from \"./TemplateMembersElementContent\";\r\nimport PropTypes from \"prop-types\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport {connect} from \"react-redux\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper,\r\n padding: `${theme.spacing()}px ${theme.spacing(2)}px`,\r\n marginBottom: theme.spacing()\r\n }\r\n}))\r\n\r\nfunction TemplateMembersElement(\r\n {\r\n index,\r\n groupId,\r\n member,\r\n coordinatorView,\r\n editable,\r\n search,\r\n validationSection,\r\n formIdPrefix,\r\n formValues\r\n }) {\r\n const classes = useStyle();\r\n const [open, setOpen] = useState(false);\r\n const FORM_ID = formIdPrefix + member.memberId;\r\n\r\n const toggleMember = () => {\r\n if (open && !!formValues[FORM_ID + \"_dirty\"]) {\r\n simpleConfirm(\"modification_cancel_popup_text\", () => {\r\n setOpen(!open)\r\n })\r\n } else {\r\n setOpen(!open)\r\n }\r\n }\r\n\r\n\r\n return ( -1} unmountOnExit={false}>\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
)\r\n}\r\n\r\nTemplateMembersElement.propTypes = {\r\n index: PropTypes.number,\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n member: PropTypes.shape({\r\n allFormsAccepted: PropTypes.bool.isRequired,\r\n memberId: PropTypes.number.isRequired,\r\n memberName: PropTypes.string.isRequired\r\n }),\r\n coordinatorView: PropTypes.bool.isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n search: PropTypes.shape({\r\n search: PropTypes.string\r\n }).isRequired,\r\n validationSection: PropTypes.object.isRequired,\r\n formIdPrefix: PropTypes.string.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formValues: state.formValues\r\n}), {})(TemplateMembersElement);","import React, {useState} from 'react'\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport TemplateMembersElement from \"./TemplateMembersElement\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n search: {\r\n marginTop: theme.spacing(3),\r\n marginBottom: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction TemplateMembersList(\r\n {\r\n groupId,\r\n members,\r\n coordinatorView,\r\n editable,\r\n validationSection,\r\n formIdPrefix\r\n }) {\r\n const classes = useStyle();\r\n const [search, setSearch] = useState({});\r\n\r\n return (
\r\n {!coordinatorView && }\r\n {\r\n members.map((x, i) => ())\r\n }\r\n
)\r\n}\r\n\r\nTemplateMembersList.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n members: PropTypes.array.isRequired,\r\n coordinatorView: PropTypes.bool.isRequired,\r\n editable: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default TemplateMembersList;","import React, {useEffect, useRef, useState} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport Loading from \"components/Loading\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport scheduleReloadTimeout from \"../../../utils/scheduleReloadTimeout\";\r\nimport {PurchasingGroupStageSections} from \"../../../constants/PurchasingGroupStageSections\";\r\nimport UserService from \"services/UserService\";\r\nimport PurchasingGroupStage2Service from \"services/PurchasingGroupStage2Service\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Tr from \"translations/Translations\";\r\nimport SelectOrganization from \"components/popup/selectOrganization/SelectOrganization\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport TemplateMembersList from \"./components/TemplateMembersList\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport reduxStore from \"redux/store\"\r\nimport {PurchasingGroupRole} from \"../../../constants/PurchasingGroupRole\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage2Template(\r\n {\r\n panelRef,\r\n validationSection,\r\n template,\r\n purchasingGroupHeader,\r\n stageSections\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const groupId = params.id;\r\n const formIdPrefix = params.section;\r\n const [availableTemplates, setAvailableTemplates] = useState(null);\r\n const timeout = useRef(0);\r\n const coordinatorView = purchasingGroupHeader.userRole === PurchasingGroupRole.MEMBER;\r\n const editable = validationSection.editable;\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n useStepperStateCloseValidator(formIdPrefix, () => {\r\n const formValues = reduxStore.getState()?.formValues;\r\n const index = Object.keys(formValues).findIndex(formId => formId.startsWith(formIdPrefix) && formId.endsWith(\"_dirty\") && formValues[formId] === true);\r\n return index === -1;\r\n });\r\n\r\n\r\n const getTemplate = () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n PurchasingGroupStage2Service.getTemplate(groupId);\r\n\r\n const mainSection = stageSections[PurchasingGroupStageSections.STAGE_2_SECTION];\r\n if (mainSection && mainSection.schedule) {\r\n UserService.serverTime().then(serverTime => {\r\n let reloadTimeout = scheduleReloadTimeout(mainSection.schedule, serverTime);\r\n if (reloadTimeout) {\r\n timeout.current = setTimeout(() => {\r\n getTemplate();\r\n }, reloadTimeout)\r\n }\r\n })\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n getTemplate();\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n return () => {\r\n if (timeout.current) {\r\n clearTimeout(timeout.current);\r\n timeout.current = 0;\r\n }\r\n PurchasingGroupStage2Service.clearResources(PurchasingGroupStage2Service.PURCHASING_GROUP_TEMPLATE_RESOURCE_ID)\r\n }\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n const loadAvailableTemplates = () => {\r\n PurchasingGroupStage2Service.getAvailableTemplates(groupId).then((resp) => setAvailableTemplates(resp))\r\n }\r\n const onTemplateSelect = (value) => {\r\n setAvailableTemplates(null);\r\n PurchasingGroupStage2Service.saveTemplate(groupId, {templateId: value.orgId, templateName: value.name})\r\n .then((resp) => {\r\n if (resp) {\r\n enqueueSuccessSnackbar(Tr(\"saved\"));\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n }\r\n });\r\n }\r\n\r\n if (!template) return \r\n\r\n return (\r\n
\r\n {!coordinatorView && }\r\n {!coordinatorView && \r\n {template.canChooseTemplate &&\r\n {Tr(\"choose_template\")}\r\n }\r\n {template.templateId > 0 &&\r\n {Tr(\"chosen_template\")}: {template.templateName}\r\n }\r\n }\r\n\r\n \r\n\r\n\r\n {!!availableTemplates &&\r\n ({orgId: \"\" + x.templateId, name: x.templateName}))}\r\n onCancel={() => setAvailableTemplates(null)}\r\n onConfirm={onTemplateSelect}\r\n open\r\n title=\"choose_template\"\r\n />\r\n }\r\n
\r\n )\r\n}\r\n\r\nPurchasingGroupStage2Template.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n stageSections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID],\r\n template: state.resources[PurchasingGroupStage2Service.PURCHASING_GROUP_TEMPLATE_RESOURCE_ID],\r\n purchasingGroupHeader: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID]\r\n}), {})(PurchasingGroupStage2Template);","import React, {useEffect} from 'react'\r\nimport {useParams} from \"react-router\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport DealingsService from \"services/DealingsService\";\r\nimport PositionAndPartsForm from \"../../../../../MyProcedure/scenes/part1/panels/dealings/PositionAndPartsForm\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {PurchasingGroupStageSections} from \"../../../constants/PurchasingGroupStageSections\";\r\n\r\nfunction PurchasingGroupStage2Dealing(\r\n {\r\n panelRef,\r\n validationSection,\r\n purchasingGroupHeader,\r\n }) {\r\n const params = useParams();\r\n const groupId = params.id;\r\n const section = params.section;\r\n\r\n useEffect(() => {\r\n DealingsService.getList(groupId);\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section)\r\n return () => {\r\n DealingsService.clearResources('dealing');\r\n DealingsService.clearResources('dealingsList');\r\n }\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n const saveSuccessCallback = () => {\r\n PurchasingGroupSectionService.getSections(groupId, [validationSection.section, PurchasingGroupStageSections.FINISH]);\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchasingGroup.MP_PURCHASING_GROUP_GROUP_ID_STAGE_NR, {\r\n id: groupId,\r\n stage: 2\r\n }))\r\n }\r\n\r\n const saveErrorCallback = () => {\r\n\r\n }\r\n\r\n\r\n return ()\r\n}\r\n\r\nPurchasingGroupStage2Dealing.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n stageSections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID],\r\n purchasingGroupHeader: state.resources[PurchasingGroupStage1Service.PURCHASING_GROUP_HEADER_RESOURCE_ID]\r\n}), {})(PurchasingGroupStage2Dealing);","import React, {useRef, useState} from 'react'\r\nimport ButtonGroup from '@material-ui/core/ButtonGroup';\r\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\r\nimport ClickAwayListener from '@material-ui/core/ClickAwayListener';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Popper from '@material-ui/core/Popper';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport MenuList from '@material-ui/core/MenuList';\r\nimport PropTypes from 'prop-types';\r\nimport Button from 'components/Button';\r\nimport {CircularProgress, withStyles} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n zindex: {\r\n zIndex: 100\r\n }\r\n})\r\n\r\nfunction SplitButton(\r\n {\r\n className,\r\n buttonClassName,\r\n classes,\r\n label= Tr('additional_actions'),\r\n variant = 'contained',\r\n color = 'primary',\r\n working,\r\n disabled,\r\n buttons,//created by createButton\r\n hideEmpty\r\n }) {\r\n\r\n const [open, setOpen] = useState(false);\r\n const anchorRef = useRef(null);\r\n\r\n const handleClick = (event, index) => {\r\n setOpen(false);\r\n buttons[index].onClick();\r\n };\r\n\r\n const handleToggle = () => {\r\n setOpen((prevOpen) => !prevOpen);\r\n };\r\n\r\n const handleClose = (event) => {\r\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n return;\r\n }\r\n setOpen(false);\r\n };\r\n\r\n\r\n return (\r\n buttons.length === 0 && !!hideEmpty ?\r\n null\r\n : <>\r\n \r\n \r\n \r\n {working ? : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {buttons.map((button, index) => (\r\n handleClick(event, index)}\r\n >\r\n {button.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nSplitButton.propTypes = {\r\n className: PropTypes.string,\r\n classes: PropTypes.any,\r\n buttonClassName: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n variant: PropTypes.oneOf([\"text\", \"outlined\", \"contained\"]),\r\n color: PropTypes.string,\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n buttons: PropTypes.array.isRequired,//created by createButton\r\n hideEmpty:PropTypes.bool,\r\n}\r\n\r\nSplitButton.defaultProps = {}\r\n\r\nexport const createButton = (label, onClick, disabled = false) => ({\r\n label,\r\n onClick,\r\n disabled\r\n});\r\n\r\n\r\nexport default withStyles(style)(SplitButton);","import React, {useEffect, useMemo, useState} from 'react'\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {useParams} from \"react-router\";\r\nimport PurchasingGroupSectionService from \"services/PurchasingGroupSectionService\";\r\nimport PurchasingGroupStage2Service from \"services/PurchasingGroupStage2Service\";\r\nimport Loading from \"components/Loading\";\r\nimport Tr from \"translations/Translations\";\r\nimport SplitButton, {createButton as createSplitButton} from \"components/popup/components/SplitButton\";\r\nimport {PurchasingGroupStageSections} from \"../../../constants/PurchasingGroupStageSections\";\r\nimport {ProcedureType, ProcedureTypeTr} from \"constants/ProcedureType\";\r\nimport {confirmComplex} from \"libs/ConfirmNotification\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {connect} from \"react-redux\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport Typography from \"components/Typography\";\r\nimport Button from \"components/Button\";\r\nimport RouterPath from \"../../../../../../../libs/RouterPath\";\r\nimport PurchasingGroupStage1Service from \"../../../../../../../services/PurchasingGroupStage1Service\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n }\r\n}))\r\n\r\nfunction PurchasingGroupStage2Finish(\r\n {\r\n panelRef,\r\n validationSection,\r\n stageSections\r\n }) {\r\n const classes = useStyle();\r\n const params = useParams();\r\n const groupId = params.id;\r\n const editable = validationSection.editable;\r\n const [working, setWorking] = useState(false);\r\n const [finishData, setFinishData] = useState(null);\r\n const {enqueueSuccessSnackbar, enqueueErrorSnackbar} = useSnackbar();\r\n\r\n const getSectionData = async () => {\r\n await PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.FINISH)\r\n const section = await PurchasingGroupStage2Service.getFinish(groupId);\r\n if (section) {\r\n setFinishData(section);\r\n }\r\n return section;\r\n }\r\n\r\n useEffect(() => {\r\n getSectionData();\r\n // eslint-disable-next-line\r\n }, [groupId]);\r\n\r\n const createDemand = (type) => {\r\n\r\n confirmComplex({\r\n confirmText: Tr(\"create_new_procedure_confirm\"),\r\n confirmText2: ProcedureTypeTr[ProcedureType[type]],\r\n onConfirm: () => {\r\n setWorking(true);\r\n\r\n PurchasingGroupStage2Service.saveFinish(groupId, {item: type}).then((resp) => {\r\n if (resp) {\r\n PurchasingGroupStage2Service.createDemand(resp.result).then(() => {\r\n getSectionData().then(resp => {\r\n if(resp.demandId && resp.hasDemandPrivilege) {\r\n RouterPath.redirect(RouterPath.createPath(RouterPath.myProcedure.steps.MP_1_ID, {id: resp.demandId}));\r\n } else {\r\n PurchasingGroupStage1Service.getHeader(groupId);\r\n }\r\n }).finally((resp) => {\r\n setWorking(false);\r\n enqueueSuccessSnackbar(Tr(\"demand_created\"))\r\n });\r\n })\r\n }\r\n })\r\n },\r\n translateConfirmTexts: false\r\n })\r\n\r\n\r\n }\r\n\r\n const buttons = useMemo(() => finishData ? finishData.procedureTypes.map(x =>\r\n createSplitButton(ProcedureTypeTr[ProcedureType[x]], () => createDemand(x), !editable)) : [],\r\n // eslint-disable-next-line\r\n [finishData, editable])\r\n\r\n const sectionErrors = useMemo(() => {\r\n return Object.keys(stageSections).map(x => stageSections[x])\r\n .filter(x => x.section !== validationSection.section && (x.status === DemandValidationSectionStatus.ERROR || x.status === DemandValidationSectionStatus.DISABLED))\r\n .map(x => x.name)\r\n }, [stageSections, validationSection])\r\n\r\n const sendDealingsChangedNotification = () => {\r\n setWorking(true);\r\n PurchasingGroupStage2Service.sendDealingsChangedNotification(groupId).then(resp => {\r\n setWorking(false);\r\n if (resp && resp.result) {\r\n enqueueSuccessSnackbar(Tr(\"notification_sent\"));\r\n PurchasingGroupSectionService.getSections(groupId, validationSection.section);\r\n PurchasingGroupStage2Service.getFinish(groupId).then(section => {\r\n if (section) {\r\n setFinishData(section);\r\n }\r\n });\r\n } else {\r\n enqueueErrorSnackbar(Tr(\"unknown_error_message\"));\r\n }\r\n });\r\n }\r\n\r\n\r\n return (
\r\n \r\n\r\n \r\n {\r\n\r\n !finishData ? :\r\n <>\r\n {finishData.hasDemandCreated && {Tr(\"demand_created\")}}\r\n\r\n {\r\n sectionErrors.length > 0 ?\r\n {`${Tr(\"purchase_group_finish_missing_sections\")}: ${sectionErrors.join(\", \")}`}\r\n :\r\n \r\n }\r\n\r\n {finishData.canSendDealingsChangedNotification &&\r\n sendDealingsChangedNotification()}\r\n >\r\n {Tr('purchase_group_finish_dealings_changed_notification_send')}\r\n \r\n }\r\n \r\n }\r\n \r\n
)\r\n}\r\n\r\nPurchasingGroupStage2Finish.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n stageSections: state.resources[PurchasingGroupSectionService.PURCHASING_GROUP_STAGE_SECTIONS_RESOURCE_ID]\r\n}))(PurchasingGroupStage2Finish);","import {kebabCase} from \"lodash/string\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport PurchasingGroupStage1BasicData from \"../stage1/panels/basicData/PurchasingGroupStage1BasicData\";\r\nimport PurchasingGroupStage1Commission from \"../stage1/panels/commission/PurchasingGroupStage1Commission\";\r\nimport PurchasingGroupStage1Schedule from \"../stage1/panels/schedule/PurchasingGroupStage1Schedule\";\r\nimport PurchasingGroupStage1Members from \"../stage1/panels/members/PurchasingGroupStage1Members\";\r\nimport PurchasingGroupStage1PapersGenerator from \"../stage1/panels/papersGenerator/PurchasingGroupStage1PapersGenerator\";\r\nimport PurchasingGroupStage1Opinion from \"../stage1/panels/opinion/PurchasingGroupStage1Opinion\";\r\nimport PurchasingGroupStage1FinishPreparing from \"../stage1/panels/finishPreparing/PurchasingGroupStage1FinishPreparing\";\r\nimport PurchasingGroupStage2Schedule from \"../stage2/panels/collectingSchedule/PurchasingGroupStage2Schedule\";\r\nimport PurchasingGroupStage2Template from \"../stage2/panels/template/PurchasingGroupStage2Template\";\r\nimport PurchasingGroupStage2Dealing from \"../stage2/panels/dealing/PurchasingGroupStage2Dealing\";\r\nimport PurchasingGroupStage2Finish from \"../stage2/panels/finish/PurchasingGroupStage2Finish\";\r\n\r\nexport const PurchasingGroupStageSections = {\r\n //STAGE 1 sections\r\n STAGE_1_SECTION: \"STAGE_1_SECTION\",\r\n BASIC_DATA: \"BASIC_DATA\",\r\n COMMISSION: \"COMMISSION\",\r\n MEMBERS: \"MEMBERS\",\r\n SCHEDULE: \"SCHEDULE\",\r\n OPINION: \"OPINION\",\r\n FINISH_PREPARING: \"FINISH_PREPARING\",\r\n PAPERS_GENERATOR: \"PAPERS_GENERATOR\",\r\n\r\n //STAGE 2 sections\r\n STAGE_2_SECTION: \"STAGE_2_SECTION\",\r\n SWZ: \"SWZ\",\r\n COLLECTING_SCHEDULE: \"COLLECTING_SCHEDULE\",\r\n OPINION_SWZ: \"OPINION_SWZ\",\r\n TEMPLATE: \"TEMPLATE\",\r\n DEALING: \"DEALING\",\r\n FINISH: \"FINISH\",\r\n COLLECTING_PAPERS_GENERATOR: \"COLLECTING_PAPERS_GENERATOR\"\r\n}\r\n\r\n\r\nexport const StageSectionNameToSectionParam = Object.keys(PurchasingGroupStageSections).reduce((prev, curr) => {\r\n prev[curr] = kebabCase(curr);\r\n return prev;\r\n}, {});\r\n\r\nexport const StageSectionParamToSectionName = Object.keys(PurchasingGroupStageSections).reduce((prev, curr) => {\r\n prev[kebabCase(curr)] = curr;\r\n return prev;\r\n}, {});\r\n\r\n\r\nexport const StageSectionsComponents = {\r\n\r\n BASIC_DATA: PurchasingGroupStage1BasicData,\r\n COMMISSION: PurchasingGroupStage1Commission,\r\n MEMBERS: PurchasingGroupStage1Members,\r\n SCHEDULE: PurchasingGroupStage1Schedule,\r\n OPINION: PurchasingGroupStage1Opinion,\r\n FINISH_PREPARING: PurchasingGroupStage1FinishPreparing,\r\n PAPERS_GENERATOR: PurchasingGroupStage1PapersGenerator,\r\n\r\n SWZ: PurchasingGroupStage1Members,\r\n COLLECTING_SCHEDULE: PurchasingGroupStage2Schedule,\r\n OPINION_SWZ: PurchasingGroupStage1Opinion,\r\n TEMPLATE: PurchasingGroupStage2Template,\r\n DEALING: PurchasingGroupStage2Dealing,\r\n FINISH: PurchasingGroupStage2Finish,\r\n COLLECTING_PAPERS_GENERATOR: PurchasingGroupStage1PapersGenerator\r\n}\r\n\r\nexport const getSectionVariant = (section) => section ? (section.status === DemandValidationSectionStatus.OK ? 'Done' : (section.status === DemandValidationSectionStatus.DISABLED ? 'Wait' : (section.status === DemandValidationSectionStatus.ERROR ? 'Required' : (section.required ? 'Required' : 'Optional')))) : \"Wait\";","import Endpoints from 'constants/Endpoints';\r\nimport {clearResource, setResource, setSaveStatusClosed, setSaveStatusError, setSaveStatusLoading} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport Tr from \"../translations/Translations\";\r\nimport applySearchParams from \"../libs/applySearchParams\";\r\nimport applySortParams from \"../libs/applySortParams\";\r\nimport downloadFileWithPreloadUrl from \"../libs/downloadFileWithPreloadUrl\";\r\nimport PurchasingGroupSectionService from \"./PurchasingGroupSectionService\";\r\nimport {PurchasingGroupStageSections} from \"../pages/purchaser/PurchasingGroup/stages/constants/PurchasingGroupStageSections\";\r\n\r\nconst PURCHASING_GROUP_HEADER_RESOURCE_ID = \"purchasingGroupHeader\";\r\nconst PURCHASING_GROUP_MEMBERS_RESOURCE_ID = \"purchasingGroupMembers\";\r\nconst PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID = \"purchasingGroupMembersDocuments\";\r\nconst PURCHASING_GROUP_OPINIONS_RESOURCE_ID = \"purchasingGroupOpinions\";\r\nconst PURCHASING_GROUP_MEMBER_RESOURCE_ID = (memberId) => `purchasingGroupMember_${memberId}`;\r\nconst PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID = (opinionId) => `purchasingGroupOpinion_${opinionId}`;\r\n\r\nconst __get = async (url, resourcesName) => {\r\n try {\r\n let res = await RestRequestGET(url)\r\n if (resourcesName) {\r\n reduxStore.dispatch(setResource(resourcesName, res))\r\n }\r\n return res;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst __save = async (url, values) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n const resp = await RestRequestPOST(url, values)\r\n isResponseValid(resp, (e) => {\r\n throw new Error(e);\r\n })\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n return resp;\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\n\r\nconst getHeader = async (groupId) => {\r\n await __get(Endpoints.PURCHASING_GROUP_HEADER(!groupId ? -1 : groupId), PURCHASING_GROUP_HEADER_RESOURCE_ID)\r\n}\r\nconst getRelatedObjects = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_RELATED_OBJECTS(groupId))\r\n}\r\n\r\nconst getPurchasingGroupList = async (searchData) => {\r\n const {pagination, search, sort} = searchData;\r\n\r\n let params = {\r\n ...pagination\r\n }\r\n params = applySearchParams(search, params);\r\n params = applySortParams(sort, params);\r\n return await RestRequestGET(Endpoints.PURCHASING_GROUP_LIST(), {params});\r\n};\r\n\r\nconst getPurchasingGroupListActions = () => {\r\n return __get(Endpoints.PURCHASING_GROUP_LIST_ACTIONS())\r\n}\r\n\r\nconst getPurchasingGroupMemberList = async (searchData) => {\r\n const {pagination, search, sort} = searchData;\r\n\r\n let params = {\r\n ...pagination\r\n }\r\n params = applySearchParams(search, params);\r\n params = applySortParams(sort, params);\r\n return await RestRequestGET(Endpoints.PURCHASING_GROUP_MEMBER_LIST(), {params});\r\n};\r\n\r\nconst getArchiveList = async (groupId, archiveType) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_ARCHIVE_LIST(groupId, archiveType))\r\n}\r\nconst getArchiveElement = async (groupId, archiveType, archiveId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_ARCHIVE_ID(groupId, archiveType, archiveId))\r\n}\r\n\r\n\r\nconst getBasicData = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_BASIC_DATA(!groupId ? -1 : groupId))\r\n}\r\nconst saveBasicData = async (groupId, values) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_BASIC_DATA(!groupId ? -1 : groupId), values)\r\n if (isResponseValid(resp, (e) => {\r\n reduxStore.dispatch(setSaveStatusError(e));\r\n })) {\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n return resp.result;\r\n }\r\n}\r\n\r\n\r\nconst getCommission = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COMMISSION(groupId))\r\n}\r\nconst saveCommission = async (groupId, values) => {\r\n return await __save(Endpoints.PURCHASING_GROUP_COMMISSION(groupId), values)\r\n}\r\nconst getCommissionHistory = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_COMMISSION_HISTORY(groupId))\r\n}\r\n\r\n\r\nconst getSchedule = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_SCHEDULE(groupId))\r\n}\r\nconst saveSchedule = async (groupId, values) => {\r\n try {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_SCHEDULE(groupId), values);\r\n reduxStore.dispatch(setSaveStatusClosed());\r\n return resp;\r\n } catch (e) {\r\n }\r\n}\r\n\r\n\r\nconst getMembers = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS(groupId), PURCHASING_GROUP_MEMBERS_RESOURCE_ID)\r\n}\r\nconst getMembersRow = async (groupId, memberId) => {\r\n const members = await __get(Endpoints.PURCHASING_GROUP_MEMBERS(groupId), PURCHASING_GROUP_MEMBERS_RESOURCE_ID);\r\n if (members.length === 1) {\r\n const member = members[0];\r\n const {resources} = reduxStore.getState();\r\n const res = resources[PURCHASING_GROUP_MEMBERS_RESOURCE_ID].map(x => x.identity === member.identity ? member : x)\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_RESOURCE_ID, res))\r\n }\r\n}\r\n\r\nconst updateMemberName = async (groupId, memberId, values) => {\r\n const resp = await RestRequestPUT(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID(groupId, memberId), values)\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = resources[PURCHASING_GROUP_MEMBERS_RESOURCE_ID].map(x => x.identity === resp.identity ? resp : x)\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_RESOURCE_ID, res))\r\n }\r\n}\r\n\r\nconst rejectMember = async (groupId, memberId) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_REJECT(groupId, memberId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = resources[PURCHASING_GROUP_MEMBERS_RESOURCE_ID].map(x => x.identity === resp.identity ? resp : x)\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_RESOURCE_ID, res))\r\n PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n }\r\n}\r\n\r\nconst restoreMember = async (groupId, memberId) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_RESTORE(groupId, memberId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = resources[PURCHASING_GROUP_MEMBERS_RESOURCE_ID].map(x => x.identity === resp.identity ? resp : x)\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_RESOURCE_ID, res))\r\n PurchasingGroupSectionService.getSections(groupId, PurchasingGroupStageSections.MEMBERS)\r\n }\r\n}\r\n\r\nconst withdrawParticipationMember = async (groupId, memberId) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_WITHDRAW_PARTICIPATION(groupId, memberId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {canConfirm, confirmationDate} = resp;\r\n const {resources} = reduxStore.getState();\r\n const member = resources[PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId)];\r\n if (member) {\r\n const res = {...member, canConfirm, confirmationDate}\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId), res))\r\n }\r\n }\r\n}\r\n\r\nconst confirmParticipationMember = async (groupId, memberId) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_CONFIRM_PARTICIPATION(groupId, memberId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {canConfirm, confirmationDate} = resp;\r\n const {resources} = reduxStore.getState();\r\n const member = resources[PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId)];\r\n if (member) {\r\n const res = {...member, canConfirm, confirmationDate}\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId), res))\r\n }\r\n }\r\n}\r\n\r\n\r\nconst resendInviteNotification = async (groupId, memberId) => {\r\n await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_RESEND_INVITE_NOTIFICATION(groupId, memberId))\r\n}\r\n\r\nconst deleteMember = async (groupId, memberId) => {\r\n const resp = await RestRequestDELETE(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID(groupId, memberId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = resources[PURCHASING_GROUP_MEMBERS_RESOURCE_ID].filter(x => x.identity !== memberId)\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_RESOURCE_ID, res))\r\n }\r\n}\r\n\r\nconst getMembersAvailableConcerns = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS_AVAILABLE_CONCERNS(groupId));\r\n}\r\n\r\nconst addMembers = async (groupId, values) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER(groupId), values)\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = [...resources[PURCHASING_GROUP_MEMBERS_RESOURCE_ID], ...resp.result]\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_RESOURCE_ID, res))\r\n return resp.result;\r\n }\r\n\r\n}\r\n\r\nconst getAllMembersDocuments = async (groupId, documentsApiPathType) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS(groupId, documentsApiPathType), PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID)\r\n}\r\nconst addAllMembersDocuments = async (groupId, documentsApiPathType, values) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS(groupId, documentsApiPathType), {documents: values})\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const noErrorsDocs = resp.filter(d => d.error === null);\r\n\r\n if (noErrorsDocs.length > 0) {\r\n const {resources} = reduxStore.getState();\r\n const res = {\r\n ...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID],\r\n documents: [...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID].documents, ...noErrorsDocs]\r\n }\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID, res))\r\n }\r\n return resp;\r\n }\r\n}\r\nconst generateGroupAgreementDocument = async (groupId) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS_GENERATE_GROUP_AGREEMENT(groupId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = {\r\n ...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID],\r\n documents: [...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID].documents, ...resp.result]\r\n }\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID, res))\r\n return resp.result;\r\n }\r\n}\r\n\r\nconst updateAllMembersDocument = async (groupId, {documentsApiPathType, documentId}, description) => {\r\n const resp = await RestRequestPUT(Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID(groupId, documentsApiPathType, documentId), {description})\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = {\r\n ...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID],\r\n documents: [...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID].documents.map(x => x.identity === resp.identity ? resp : x)]\r\n }\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID, res))\r\n }\r\n}\r\nconst publishAllMembersDocument = async (groupId, documentsApiPathType, documentId) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_PUBLISH(groupId, documentsApiPathType, documentId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = {\r\n ...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID],\r\n documents: [...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID].documents.map(x => x.identity === resp.result.identity ? resp.result : x)]\r\n }\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID, res))\r\n }\r\n}\r\nconst unpublishAllMembersDocument = async (groupId, documentsApiPathType, documentId) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_UNPUBLISH(groupId, documentsApiPathType, documentId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const res = {\r\n ...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID],\r\n documents: [...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID].documents.map(x => x.identity === resp.result.identity ? resp.result : x)]\r\n }\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID, res))\r\n }\r\n}\r\n\r\n\r\nconst deleteAllMembersDocument = async (groupId, documentsApiPathType, documentId) => {\r\n const resp = await RestRequestDELETE(Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID(groupId, documentsApiPathType, documentId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n\r\n const res = {\r\n ...resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID],\r\n documents: resources[PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID].documents.filter(x => x.identity !== documentId)\r\n }\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID, res))\r\n }\r\n}\r\n\r\nconst downloadAllMembersDocument = async (demandId, documentsApiPathType, identity, openInBrowser) => {\r\n await downloadFileWithPreloadUrl(\r\n Endpoints.PURCHASING_GROUP_MEMBERS_DOCUMENTS_ID_URL(demandId, documentsApiPathType, identity, openInBrowser),\r\n openInBrowser);\r\n}\r\n\r\nconst getMember = async (groupId, memberId) => {\r\n await __get(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID(groupId, memberId), PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId))\r\n}\r\nconst addMemberDocuments = async (groupId, memberId, values) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT(groupId, memberId), {documents: values})\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const noErrorsDocs = resp.filter(d => d.error === null);\r\n\r\n if (noErrorsDocs.length > 0) {\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId);\r\n const cur = resources[resourceId];\r\n const res = {\r\n ...cur,\r\n memberDocuments: {\r\n ...cur.memberDocuments,\r\n documents: [...cur.memberDocuments.documents, ...noErrorsDocs]\r\n }\r\n }\r\n reduxStore.dispatch(setResource(resourceId, res))\r\n }\r\n return resp;\r\n }\r\n}\r\n\r\nconst updateMemberDocument = async (groupId, {memberId, documentId}, description) => {\r\n const resp = await RestRequestPUT(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT_ID(groupId, memberId, documentId), {description})\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId);\r\n const cur = resources[resourceId];\r\n\r\n const res = {\r\n ...cur,\r\n memberDocuments: {\r\n ...cur.memberDocuments,\r\n documents: cur.memberDocuments.documents.map(x => x.identity === documentId ? resp : x)\r\n }\r\n }\r\n reduxStore.dispatch(setResource(resourceId, res))\r\n }\r\n}\r\nconst deleteMemberDocument = async (groupId, memberId, documentId) => {\r\n const resp = await RestRequestDELETE(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT_ID(groupId, memberId, documentId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId);\r\n const cur = resources[resourceId];\r\n\r\n const res = {\r\n ...cur,\r\n memberDocuments: {\r\n ...cur.memberDocuments,\r\n documents: cur.memberDocuments.documents.filter(x => x.identity !== documentId)\r\n }\r\n }\r\n reduxStore.dispatch(setResource(resourceId, res))\r\n\r\n }\r\n}\r\nconst downloadMemberDocument = async (demandId, memberId, documentId, openInBrowser) => {\r\n await downloadFileWithPreloadUrl(\r\n Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_DOCUMENT_ID_URL(demandId, memberId, documentId, openInBrowser),\r\n openInBrowser);\r\n}\r\n\r\n\r\nconst getAvailableMemberUsers = async (groupId, memberId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_USER(groupId, memberId));\r\n}\r\nconst addMemberUser = async (groupId, memberId, userIds) => {\r\n const resp = await RestRequestPOST(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_USER(groupId, memberId), {list: userIds})\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId);\r\n const cur = resources[resourceId];\r\n const res = {\r\n ...cur,\r\n users: [...cur.users, ...resp]\r\n }\r\n reduxStore.dispatch(setResource(resourceId, res));\r\n await getMembersRow(groupId, memberId)\r\n }\r\n}\r\nconst deleteMemberUser = async (groupId, memberId, userId) => {\r\n const resp = await RestRequestDELETE(Endpoints.PURCHASING_GROUP_MEMBERS_MEMBER_ID_USER_ID(groupId, memberId, userId))\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_MEMBER_RESOURCE_ID(memberId);\r\n const cur = resources[resourceId];\r\n\r\n const res = {\r\n ...cur,\r\n users: cur.users.filter(x => x.identity !== userId)\r\n }\r\n reduxStore.dispatch(setResource(resourceId, res))\r\n await getMembersRow(groupId, memberId)\r\n }\r\n}\r\n\r\n\r\n//opinion\r\n\r\nconst getOpinions = async (groupId, type) => {\r\n return __get(Endpoints.PURCHASING_GROUP_OPINION(groupId, type), PURCHASING_GROUP_OPINIONS_RESOURCE_ID)\r\n}\r\n\r\nconst getOpinionAvailableMembers = async (groupId, type) => {\r\n return __get(Endpoints.PURCHASING_GROUP_OPINION_AVAILABLE_MEMBERS(groupId, type))\r\n}\r\n\r\nconst addOpinionForMember = async (groupId, type, memberId) => {\r\n const newOpinion = await __save(Endpoints.PURCHASING_GROUP_OPINION_MEMBER_ID(groupId, type, memberId));\r\n if (newOpinion) {\r\n const {resources} = reduxStore.getState();\r\n const cur = resources[PURCHASING_GROUP_OPINIONS_RESOURCE_ID];\r\n\r\n const newRes = [\r\n ...cur,\r\n newOpinion\r\n ]\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_OPINIONS_RESOURCE_ID, newRes))\r\n return newOpinion;\r\n }\r\n}\r\n\r\nconst getOpinionMessages = async (groupId, type, opinionId, editable) => {\r\n if (opinionId > 0) {\r\n const messages = await __get(Endpoints.PURCHASING_GROUP_OPINION_ID(groupId, type, opinionId), PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID(opinionId));\r\n if (messages) {\r\n const ids = messages.filter(x => x.read === false).map(x => x.identity);\r\n if (ids.length > 0) {\r\n RestRequestPOST(Endpoints.PURCHASING_GROUP_OPINION_ID_MARK_AS_READ(groupId, type, opinionId), {list: ids}).then(() => {\r\n PurchasingGroupSectionService.getSections(groupId, type === \"AGREEMENT\" ? PurchasingGroupStageSections.OPINION : PurchasingGroupStageSections.OPINION_SWZ)\r\n })\r\n const {resources} = reduxStore.getState();\r\n const cur = resources[PURCHASING_GROUP_OPINIONS_RESOURCE_ID];\r\n const newRes = cur.map(x => x.identity === opinionId ? {...x, unreadCount: 0} : x)\r\n reduxStore.dispatch(setResource(PURCHASING_GROUP_OPINIONS_RESOURCE_ID, newRes))\r\n }\r\n }\r\n } else {\r\n await addEmptyOpinionMessage(groupId, type, opinionId, editable);\r\n }\r\n}\r\n\r\nconst saveOpinionMessage = async (groupId, type, opinionId, message) => {\r\n const newMessage = await RestRequestPOST(Endpoints.PURCHASING_GROUP_OPINION_ID(groupId, type, opinionId), message);\r\n if (newMessage) {\r\n\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID(opinionId);\r\n const cur = opinionId > 0 ? resources[resourceId] || [] : [];\r\n\r\n const res = message.identity === 0 ? [\r\n ...cur,\r\n newMessage\r\n ] : cur.map(x => x.identity === message.identity ? newMessage : x)\r\n reduxStore.dispatch(setResource(resourceId, res))\r\n\r\n return newMessage;\r\n }\r\n}\r\n\r\nconst addEmptyOpinionMessage = async (groupId, type, opinionId, editable) => {\r\n let newMessage;\r\n if (editable) {\r\n if (opinionId > 0) {\r\n newMessage = await RestRequestPOST(Endpoints.PURCHASING_GROUP_OPINION_ID_MESSAGE_NEW(groupId, type, opinionId));\r\n } else {\r\n newMessage = {\r\n identity: 0,\r\n memberMessage: true,\r\n author: null,\r\n contents: \"\",\r\n status: \"SAVED\",\r\n createDate: null,\r\n modifiedDate: null,\r\n sendDate: null,\r\n read: true\r\n }\r\n }\r\n }\r\n\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID(opinionId);\r\n const cur = resources[resourceId] || [];\r\n const res = [\r\n ...cur,\r\n ]\r\n if (newMessage) {\r\n res.push(newMessage)\r\n }\r\n\r\n reduxStore.dispatch(setResource(resourceId, res))\r\n}\r\n\r\nconst deleteOpinionMessage = async (groupId, type, opinionId, messageId) => {\r\n\r\n const resp = await RestRequestDELETE(Endpoints.PURCHASING_GROUP_OPINION_ID_MESSAGE_ID(groupId, type, opinionId, messageId));\r\n if (resp.success) {\r\n const {resources} = reduxStore.getState();\r\n const resourceId = PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID(opinionId);\r\n const cur = resources[resourceId] || [];\r\n const res = cur.filter(x => x.identity !== messageId);\r\n reduxStore.dispatch(setResource(resourceId, res))\r\n }\r\n\r\n}\r\n\r\nconst canFinishPreparing = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_FINISH_PREPARING(groupId));\r\n}\r\n\r\nconst finishPreparingStage = async (groupId) => {\r\n return await __save(Endpoints.PURCHASING_GROUP_FINISH_PREPARING(groupId), null);\r\n}\r\n\r\n//papersGenerator\r\nconst getGzmManagementResolution = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_MANAGEMENT_RESOLUTION(groupId))\r\n}\r\nconst printGzmManagementResolution = async (groupId, data) => {\r\n return __print(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_MANAGEMENT_RESOLUTION(groupId), data);\r\n}\r\n\r\nconst getGzmLeadingDocument = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_LEADING_DOCUMENT(groupId))\r\n}\r\nconst printGzmLeadingDocument = async (groupId, data) => {\r\n return __print(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_LEADING_DOCUMENT(groupId), data)\r\n}\r\n\r\nconst getGzmDocumentToSign = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DOCUMENT_TO_SIGN(groupId))\r\n}\r\n\r\nconst printGzmDocumentToSign = async (groupId, data) => {\r\n return __print(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DOCUMENT_TO_SIGN(groupId), data)\r\n}\r\n\r\nconst getGzmDraftGroupAgreement = async (groupId) => {\r\n return await __get(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DRAFT_GROUP_AGREEMENT(groupId))\r\n}\r\n\r\nconst printGzmDraftGroupAgreement = async (groupId, data) => {\r\n return __print(Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_GZM_DRAFT_GROUP_AGREEMENT(groupId), data)\r\n}\r\n\r\nconst __print = (url, data) => {\r\n return RestRequestBLOB(url, {data, method: 'post'});\r\n}\r\n\r\nconst clearResources = (resourceId) => reduxStore.dispatch(clearResource(resourceId))\r\n\r\n\r\nexport default {\r\n getHeader,\r\n getRelatedObjects,\r\n getPurchasingGroupList,\r\n getPurchasingGroupListActions,\r\n getPurchasingGroupMemberList,\r\n getArchiveList,\r\n getArchiveElement,\r\n\r\n //basic-data\r\n getBasicData,\r\n saveBasicData,\r\n\r\n //commission\r\n getCommission,\r\n saveCommission,\r\n getCommissionHistory,\r\n\r\n //schedule\r\n getSchedule,\r\n saveSchedule,\r\n\r\n //members\r\n getMembers,\r\n updateMemberName,\r\n rejectMember,\r\n restoreMember,\r\n confirmParticipationMember,\r\n withdrawParticipationMember,\r\n resendInviteNotification,\r\n deleteMember,\r\n getMembersAvailableConcerns,\r\n addMembers,\r\n //member dokumenty główne\r\n getAllMembersDocuments,\r\n addAllMembersDocuments,\r\n generateGroupAgreementDocument,\r\n updateAllMembersDocument,\r\n publishAllMembersDocument,\r\n unpublishAllMembersDocument,\r\n deleteAllMembersDocument,\r\n downloadAllMembersDocument,\r\n //member konkretny member\r\n getMember,\r\n addMemberDocuments,\r\n updateMemberDocument,\r\n deleteMemberDocument,\r\n downloadMemberDocument,\r\n getAvailableMemberUsers,\r\n addMemberUser,\r\n deleteMemberUser,\r\n\r\n //opinion\r\n getOpinions,\r\n getOpinionAvailableMembers,\r\n addOpinionForMember,\r\n getOpinionMessages,\r\n saveOpinionMessage,\r\n addEmptyOpinionMessage,\r\n deleteOpinionMessage,\r\n\r\n //finishPreparing\r\n canFinishPreparing,\r\n finishPreparingStage,\r\n\r\n //papersGenerator\r\n getGzmManagementResolution,\r\n printGzmManagementResolution,\r\n getGzmLeadingDocument,\r\n printGzmLeadingDocument,\r\n getGzmDocumentToSign,\r\n printGzmDocumentToSign,\r\n getGzmDraftGroupAgreement,\r\n printGzmDraftGroupAgreement,\r\n\r\n clearResources,\r\n PURCHASING_GROUP_HEADER_RESOURCE_ID,\r\n PURCHASING_GROUP_MEMBERS_RESOURCE_ID,\r\n PURCHASING_GROUP_MEMBERS_DOCUMENTS_RESOURCE_ID,\r\n PURCHASING_GROUP_MEMBER_RESOURCE_ID,\r\n PURCHASING_GROUP_OPINIONS_RESOURCE_ID,\r\n PURCHASING_GROUP_OPINION_MESSAGES_RESOURCE_ID,\r\n}","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport Loading from \"components/Loading\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport TextInput from \"components/TextInput\";\r\nimport DatePicker from \"components/DatePicker\";\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n wrap: {\r\n minWidth: 600,\r\n minHeight: 40\r\n }\r\n}));\r\n\r\n\r\nfunction PapersGeneratorGzmManagementResolution(\r\n {\r\n groupId,\r\n paper,\r\n onClose,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [initData, setInitData] = useState(null)\r\n const [working, setWorking] = useState(null)\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getGzmManagementResolution(groupId).then(resp => {\r\n if (resp) {\r\n setInitData(resp);\r\n } else {\r\n onClose();\r\n }\r\n });\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n const formId = useId();\r\n const onSubmit = (values) => {\r\n setWorking(true);\r\n PurchasingGroupStage1Service.printGzmManagementResolution(groupId, values).finally(onClose)\r\n }\r\n\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('generate_paper'), () => formSubmit[formId](), undefined, working, undefined, working));\r\n return ;\r\n }\r\n return (\r\n \r\n
\r\n {\r\n !initData ?\r\n :\r\n <>\r\n \r\n {(formikProps) => (<>\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n )}\r\n \r\n\r\n \r\n }\r\n
\r\n \r\n )\r\n}\r\n\r\nPapersGeneratorGzmManagementResolution.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(PapersGeneratorGzmManagementResolution);","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport Loading from \"components/Loading\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport TextInput from \"components/TextInput\";\r\nimport DatePicker from \"components/DatePicker\";\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\nimport PartsTable from \"components/PartsTable\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n wrap: {\r\n minWidth: 600,\r\n minHeight: 40\r\n }\r\n}));\r\n\r\n\r\nfunction PapersGeneratorGzmLeadingDocument(\r\n {\r\n groupId,\r\n paper,\r\n onClose,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [initData, setInitData] = useState(null)\r\n const [working, setWorking] = useState(null)\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getGzmLeadingDocument(groupId).then(resp => {\r\n if (resp) {\r\n setInitData(resp);\r\n } else {\r\n onClose();\r\n }\r\n });\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n const formId = useId();\r\n const onSubmit = (values) => {\r\n setWorking(true);\r\n const data = {...values, memberIds: Object.keys(values.memberIds).filter(x => values.memberIds[x] === true).map(x => parseInt(x.substring(1)))}\r\n PurchasingGroupStage1Service.printGzmLeadingDocument(groupId, data).finally(onClose)\r\n }\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('generate_paper'), () => formSubmit[formId](), undefined, working, undefined, working));\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n
\r\n {\r\n !initData ?\r\n :\r\n <>\r\n {\r\n prev[\"_\" + cur.id] = initData.document.memberIds && initData.document.memberIds.includes(cur.id);\r\n return prev;\r\n }, {}),\r\n }}\r\n validationSchema={VS.object({\r\n memberIds: VS.any(),\r\n documentNumber: VS.stringMaxNoRq(50),\r\n projectName: VS.stringMaxNoRq(200),\r\n resolutionDate: VS.dateTimeNoReq(),\r\n documentDeadline: VS.dateTimeNoReq(),\r\n })}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (<>\r\n \r\n\r\n \r\n\r\n \r\n
\r\n \r\n\r\n ({identity: \"_\" + x.id, name: x.name}))}\r\n disabled={working}\r\n required={false}\r\n />\r\n \r\n\r\n )}\r\n \r\n\r\n \r\n }\r\n
\r\n \r\n )\r\n}\r\n\r\nPapersGeneratorGzmLeadingDocument.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(PapersGeneratorGzmLeadingDocument);","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport Loading from \"components/Loading\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport TextInput from \"components/TextInput\";\r\nimport DatePicker from \"components/DatePicker\";\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n wrap: {\r\n minWidth: 600,\r\n minHeight: 40\r\n }\r\n}));\r\n\r\n\r\nfunction PapersGeneratorGzmDraftGroupAgreement(\r\n {\r\n groupId,\r\n paper,\r\n onClose,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [initData, setInitData] = useState(null)\r\n const [working, setWorking] = useState(null)\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getGzmDraftGroupAgreement(groupId).then(resp => {\r\n if (resp) {\r\n setInitData(resp);\r\n } else {\r\n onClose();\r\n }\r\n });\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n const formId = useId();\r\n const onSubmit = (values) => {\r\n setWorking(true);\r\n PurchasingGroupStage1Service.printGzmDraftGroupAgreement(groupId, values).finally(onClose)\r\n }\r\n\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('generate_paper'), () => formSubmit[formId](), undefined, working, undefined, working));\r\n return ;\r\n }\r\n return (\r\n \r\n
\r\n {\r\n !initData ?\r\n :\r\n <>\r\n \r\n {(formikProps) => (<>\r\n \r\n\r\n \r\n\r\n \r\n
\r\n \r\n \r\n\r\n )}\r\n \r\n\r\n \r\n }\r\n
\r\n \r\n )\r\n}\r\n\r\nPapersGeneratorGzmDraftGroupAgreement.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(PapersGeneratorGzmDraftGroupAgreement);","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport Loading from \"components/Loading\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport TextInput from \"components/TextInput\";\r\nimport {connect} from \"react-redux\";\r\nimport PurchasingGroupStage1Service from \"services/PurchasingGroupStage1Service\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n wrap: {\r\n minWidth: 600,\r\n minHeight: 40\r\n }\r\n}));\r\n\r\n\r\nfunction PapersGeneratorGzmDocumentToSign(\r\n {\r\n groupId,\r\n paper,\r\n onClose,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [initData, setInitData] = useState(null)\r\n const [working, setWorking] = useState(null)\r\n\r\n useEffect(() => {\r\n PurchasingGroupStage1Service.getGzmDocumentToSign(groupId).then(resp => {\r\n if (resp) {\r\n setInitData(resp);\r\n } else {\r\n onClose();\r\n }\r\n });\r\n // eslint-disable-next-line\r\n }, [groupId])\r\n\r\n const formId = useId();\r\n const onSubmit = (values) => {\r\n setWorking(true);\r\n PurchasingGroupStage1Service.printGzmDocumentToSign(groupId, values).finally(onClose)\r\n }\r\n\r\n\r\n const getActions = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('generate_paper'), () => formSubmit[formId](), undefined, working, undefined, working));\r\n return ;\r\n }\r\n return (\r\n \r\n
\r\n {\r\n !initData ?\r\n :\r\n <>\r\n \r\n {(formikProps) => (<>\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n }\r\n
\r\n \r\n )\r\n}\r\n\r\nPapersGeneratorGzmDocumentToSign.propTypes = {\r\n groupId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n paper: PropTypes.object.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(PapersGeneratorGzmDocumentToSign);","import reduxStore from 'redux/store'\r\nimport {setEzamowieniaOauth} from \"../redux/actions\";\r\n\r\n\r\nfunction useEzamowieniaOauth() {\r\n const authorizeEzamowienia = (successCallback, errorCallback, requiredGroups) => {\r\n reduxStore.dispatch(setEzamowieniaOauth({successCallback, errorCallback, requiredGroups}));\r\n }\r\n return {authorizeEzamowienia}\r\n\r\n}\r\n\r\nexport default useEzamowieniaOauth;","import React from 'react'\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\nfunction EZamowieniaIcon(props) {\r\n return (\r\n \r\n \r\n );\r\n}\r\n\r\nexport default EZamowieniaIcon;\r\n\r\n\r\n\r\n","import Endpoints from \"../constants/Endpoints\";\r\nimport {RestRequestGET, RestRequestPOST} from \"../libs/RestRequest\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {setSaveStatusError} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst showError = (message) => {\r\n reduxStore.dispatch(setSaveStatusError(message))\r\n}\r\n\r\nconst getAuthorizationStatus = async () => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.EZAMOWIENIA_AUTHORIZATION_STATUS);\r\n if (isResponseValid(resp, showError)) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n}\r\nconst revokeToken = async () => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.EZAMOWIENIA_REVOKE_TOKEN);\r\n isResponseValid(resp, showError)\r\n } catch (e) {\r\n console.error(e);\r\n showError(Tr('internal_server_error'));\r\n }\r\n}\r\n\r\nexport default {\r\n getAuthorizationStatus,\r\n revokeToken\r\n};\r\n\r\n","import React, {useReducer} from \"react\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport useEzamowieniaOauth from \"hooks/useEzamowieniaOauth\";\r\nimport Tr from \"translations/Translations\";\r\nimport Typography from \"components/Typography\";\r\nimport Button from \"components/Button\";\r\nimport EZamowieniaIcon from \"components/icon/EZamowieniaIcon\";\r\nimport previewFile from \"libs/previewFile\";\r\nimport EzamowieniaService from \"services/EzamowieniaService\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n marginBottom: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing()\r\n },\r\n}))\r\nconst PapersGeneratorXmpUzpPresidentPaperContent = (\r\n {\r\n demandId\r\n }) => {\r\n\r\n const classes = useStyle();\r\n const {authorizeEzamowienia} = useEzamowieniaOauth();\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n goto: false\r\n });\r\n\r\n const goTo = () => {\r\n authorizeEzamowienia(() => {\r\n dispatchIconWorks({type: 'download', works: true});\r\n EzamowieniaService.getAuthorizationStatus().then((resp) => {\r\n let ezamowieniaOrigin = \"https://ezamowienia.gov.pl\";\r\n if (resp) {\r\n ezamowieniaOrigin = resp.ezamowieniaOrigin;\r\n }\r\n previewFile({url: ezamowieniaOrigin + \"/pl/formularz/\"})\r\n }).finally(() => dispatchIconWorks({type: 'download', works: false}))\r\n })\r\n }\r\n\r\n const download = () => {\r\n dispatchIconWorks({type: 'download', works: true});\r\n PapersGeneratorService.downloadPaper(Endpoints.XMM_UZP_PRESIDENT_PAPER(demandId), () =>\r\n dispatchIconWorks({type: 'download', works: false}), () => dispatchIconWorks({type: 'download', works: false}))\r\n }\r\n\r\n\r\n return (<>\r\n {Tr(\"xmp_uzp_paper_title\")}\r\n\r\n {Tr(\"xmp_uzp_paper_steps\")}\r\n\r\n
    \r\n
  1. \r\n \r\n {Tr(\"xmp_uzp_paper_step1\")}\r\n {Tr(\"download\") + \" XML\"}\r\n \r\n
  2. \r\n
  3. \r\n \r\n {Tr(\"xmp_uzp_paper_step2\")}\r\n \r\n \r\n
  4. \r\n
\r\n\r\n\r\n )\r\n}\r\n\r\nexport default PapersGeneratorXmpUzpPresidentPaperContent;","import React from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport PapersGeneratorXmpUzpPresidentPaperContent from \"./PapersGeneratorXmpUzpPresidentPaperContent\";\r\n\r\nconst PapersGeneratorXmpUzpPresidentPaperPopup = (\r\n {\r\n onClose,\r\n demandId,\r\n }) => {\r\n\r\n return (}\r\n >\r\n \r\n )\r\n}\r\n\r\nexport default PapersGeneratorXmpUzpPresidentPaperPopup;","export const shareSystemsActive = (demandHeader) => {\r\n const arr = [];\r\n if (!!(demandHeader?.applicationClientSettings?.ezdpuwIntegration?.active)) {\r\n arr.push(\"ezdpuw\")\r\n }\r\n return arr;\r\n}\r\n\r\nexport const shareSystemsConnected = (demandHeader) => {\r\n const arr = [];\r\n if (!!(demandHeader?.applicationClientSettings?.ezdpuwIntegration?.connected)) {\r\n arr.push(\"ezdpuw\")\r\n }\r\n return arr;\r\n}","import React, {useMemo} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport {connect} from \"react-redux\";\r\nimport ShareIcon from \"@material-ui/icons/Share\";\r\nimport {shareSystemsActive, shareSystemsConnected} from \"libs/shareSystems\";\r\nimport PropTypes from \"prop-types\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport SendIcon from '@material-ui/icons/Send';\r\n\r\nexport const sharePopupData = (name, payload) => ({name, payload})\r\n\r\nconst ShareSelectPopup = (\r\n {\r\n data,\r\n onCancel,\r\n onChoose,\r\n demandHeader\r\n }) => {\r\n\r\n const activeShareSystems = useMemo(() => shareSystemsActive(demandHeader), [demandHeader])\r\n const connectedShareSystems = useMemo(() => shareSystemsConnected(demandHeader), [demandHeader])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel));\r\n return buttons;\r\n }\r\n return (}\r\n >\r\n {data.name}\r\n
\r\n \r\n {\r\n activeShareSystems.map(x =>\r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nShareSelectPopup.propTypes = {\r\n data: PropTypes.shape({\r\n name: PropTypes.string.isRequired,\r\n payload: PropTypes.object,\r\n }).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onChoose: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader\r\n}), {})(ShareSelectPopup)","import React, {useMemo, useState} from \"react\";\r\nimport {List} from \"@material-ui/core\";\r\nimport Loading from \"components/Loading\";\r\nimport {connect} from \"react-redux\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PaperLink from \"./PaperLink\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PapersGeneratorRfxInvitedSupplierWithOfferPopup from \"./customPopups/PapersGeneratorRfxInvitedSupplierWithOfferPopup\";\r\nimport PapersGeneratorRfxRequestPosition from \"./customPopups/PapersGeneratorRfxRequestPosition\";\r\nimport PapersGeneratorRfxInvitedSupplierPosition from \"./customPopups/PapersGeneratorRfxInvitedSupplierPosition\";\r\nimport ChooseSwzGeneratorOptions from \"./customPopups/swzGenerator/ChooseSwzGeneratorOptions\";\r\nimport PapersGeneratOfferFilesVerification from \"./customPopups/PapersGeneratOfferFilesVerification\";\r\nimport PapersGeneratorMessageFilesVerification from \"./customPopups/PapersGeneratorMessageFilesVerification\";\r\nimport reduxStore from \"redux/store\";\r\nimport {setSalesNotification} from \"redux/actions\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport Tr from \"translations/Translations\";\r\nimport PapersGeneratorGzmManagementResolution from \"./customPopups/gzm/PapersGeneratorGzmManagementResolution\";\r\nimport PapersGeneratorGzmLeadingDocument from \"./customPopups/gzm/PapersGeneratorGzmLeadingDocument\";\r\nimport PapersGeneratorGzmDraftGroupAgreement from \"./customPopups/gzm/PapersGeneratorGzmDraftGroupAgreement\";\r\nimport PapersGeneratorGzmDocumentToSign from \"./customPopups/gzm/PapersGeneratorGzmDocumentToSign\";\r\nimport PapersGeneratorXmpUzpPresidentPaperPopup from \"./customPopups/xmpUzpPresidentPaper/PapersGeneratorXmpUzpPresidentPaperPopup\";\r\nimport {shareSystemsActive} from \"libs/shareSystems\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport ShareSelectPopup, {sharePopupData} from \"components/popup/ShareSelectPopup\";\r\n\r\nconst DEF_CUSTOM_POPUP = {type: null, paper: null, shareSystem: null};\r\nconst PAPERS_SHARE_SUPPORTED_CUSTOM_POPUPS = [\"rfxInvitedSupplierWithOffer\", \"rfxInvitedSupplierPosition\", \"rfxRequestPosition\", \"swzParams\"]\r\nconst REPORT_SHARE_SUPPORTED_CUSTOM_POPUPS = [\"rfxMessageVerification\", \"operator_form_verification_popup\"]\r\n\r\nconst PapersGeneratorList = (\r\n {\r\n id,\r\n editable = true,\r\n papersGeneratorList,\r\n demandHeader,\r\n demandPrivileges = {}\r\n }) => {\r\n\r\n const [customPopup, setCustomPopup] = useState(DEF_CUSTOM_POPUP);\r\n const [paperWorking, setPaperWorking] = useState(null);\r\n const [sharePopupPaper, setSharePopupPaper] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const shareSystems = useMemo(() => shareSystemsActive(demandHeader), [demandHeader])\r\n\r\n const paperClick = (paper) => {\r\n if (paperWorking)\r\n return;\r\n\r\n if (!paper.available) {\r\n reduxStore.dispatch(setSalesNotification(paper.salesModule));\r\n return;\r\n }\r\n\r\n if (!paper.customPopup) {\r\n if (paper.dictionary === 'papersGenerator') {\r\n setPaperWorking(paper.paperId);\r\n PapersGeneratorService.downloadPaper(Endpoints.PAPERS_GENERATOR_PRINT(id, paper.paperId),\r\n () => setPaperWorking(null), () => setPaperWorking(null))\r\n } else if (paper.dictionary === 'reportsGenerator') {\r\n setPaperWorking(paper.paperId);\r\n let url\r\n if (paper.paperId === 'demandPrintProcessHistory')\r\n url = Endpoints.PAPERS_GENERATOR_DEMAND_PROCESS_HISTORY(id);\r\n else if (paper.paperId === \"purchasingGroupTemplateFormsReport\")\r\n url = Endpoints.PURCHASING_GROUP_MEMBERS_PAPERS_GENERATOR_TEMPLATE_FORM_EXPORT(id);\r\n else\r\n url = Endpoints.PAPERS_GENERATOR_DEMAND_REPORT(id, paper.paperId);\r\n\r\n PapersGeneratorService.downloadPaper(url,\r\n () => setPaperWorking(null), () => setPaperWorking(null))\r\n }\r\n } else {\r\n setCustomPopup({paper: paper, type: paper.customPopup, share: false})\r\n }\r\n }\r\n\r\n const shareClick = (paper) => {\r\n setSharePopupPaper(sharePopupData(paper.name, paper));\r\n }\r\n\r\n const doShare = (paper, system) => {\r\n setSharePopupPaper(null);\r\n if (paperWorking)\r\n return;\r\n\r\n if (!paper.available) {\r\n reduxStore.dispatch(setSalesNotification(paper.salesModule));\r\n return;\r\n }\r\n if (!paper.customPopup) {\r\n if (paper.dictionary === 'papersGenerator') {\r\n setPaperWorking(paper.paperId);\r\n PapersGeneratorService.sharePaper(id, paper.paperId, system).then(resp => resp ? enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: system}, true)) : null).finally(() => setPaperWorking(null))\r\n } else if (paper.dictionary === 'reportsGenerator') {\r\n\r\n }\r\n } else {\r\n setCustomPopup({paper: paper, type: paper.customPopup, shareSystem: system})\r\n }\r\n }\r\n\r\n const showShare = (paper) => {\r\n return demandPrivileges.INTEGRATIONS_UPLOAD &&\r\n shareSystems.length > 0 && (!paper.customPopup || PAPERS_SHARE_SUPPORTED_CUSTOM_POPUPS.includes(paper.customPopup));\r\n }\r\n\r\n const showShareReport = (paper) => {\r\n return demandPrivileges.INTEGRATIONS_UPLOAD &&\r\n shareSystems.length > 0 && (REPORT_SHARE_SUPPORTED_CUSTOM_POPUPS.includes(paper.customPopup));\r\n }\r\n\r\n\r\n if (!papersGeneratorList) return \r\n return (\r\n <>\r\n {\r\n papersGeneratorList.modules.length > 0 && <>\r\n {Tr('papers_generator_modules')}\r\n \r\n {\r\n papersGeneratorList.modules.map(paper => (\r\n ))\r\n }\r\n\r\n \r\n \r\n }\r\n\r\n {Tr('papers_generator_papers')}\r\n \r\n {\r\n papersGeneratorList.papers.map(paper => (\r\n ))\r\n }\r\n \r\n\r\n {\r\n papersGeneratorList.reports.length > 0 && <>\r\n {Tr('papers_generator_reports')}\r\n \r\n {\r\n papersGeneratorList.reports.map(paper => (\r\n ))\r\n }\r\n\r\n \r\n \r\n }\r\n\r\n {customPopup.type === 'rfxInvitedSupplierWithOffer' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}\r\n shareSystem={customPopup.shareSystem}/>}\r\n\r\n {customPopup.type === 'rfxRequestPosition' && \r\n setCustomPopup(DEF_CUSTOM_POPUP)} shareSystem={customPopup.shareSystem}/>}\r\n\r\n {customPopup.type === 'rfxInvitedSupplierPosition' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}\r\n shareSystem={customPopup.shareSystem}/>}\r\n\r\n {customPopup.type === 'swzParams' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {customPopup.type === 'operator_form_verification_popup' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {customPopup.type === 'rfxMessageVerification' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {customPopup.type === 'gzmManagementResolution' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {customPopup.type === 'gzmLeadingDocument' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {customPopup.type === 'gzmDraftGroupAgreement' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {customPopup.type === 'gzmDocumentToSign' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {customPopup.type === 'xml_uzp_president_popup' &&\r\n setCustomPopup(DEF_CUSTOM_POPUP)}/>}\r\n\r\n {!!sharePopupPaper &&\r\n setSharePopupPaper(null)} onChoose={(paper, system) => doShare(paper, system)}/>}\r\n\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n papersGeneratorList: state.resources[PapersGeneratorService.PAPERS_GENERATOR_LIST_RESOURCE_ID],\r\n demandHeader: state.resources.demandHeader,\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY],\r\n}), {})(PapersGeneratorList);\r\n","import React, {useEffect} from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidationKeys} from 'constants/DemandValidation';\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport PapersGeneratorList from \"components/complex/papersGenerator/PapersGeneratorList\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\n\r\nfunction PapersGenerator(\r\n {\r\n match\r\n }) {\r\n const FORM_ID = DemandValidationKeys.PAPERS_GENERATOR;\r\n const id = match.params.id;\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getAvailablePapers(id);\r\n return () => {\r\n PapersGeneratorService.clearResources(PapersGeneratorService.PAPERS_GENERATOR_LIST_RESOURCE_ID);\r\n }\r\n }, [id])\r\n\r\n return (\r\n {(formikProps) => (\r\n )}\r\n \r\n )\r\n}\r\n\r\nPapersGenerator.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withRouter(PapersGenerator);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport PapersGenerator from './PapersGenerator';\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n\r\n return (expanded && )\r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Index;","import {useState} from 'react';\r\n\r\nexport const getPaginationConfig = (page = 1, pageSize = 10) => ({\r\n page,\r\n pageSize\r\n});\r\n\r\n\r\nexport default ({pagination = getPaginationConfig(), search = {}, sort = {}} = {}) => {\r\n const [searchData, setSearchData] = useState({pagination, search, sort});\r\n const [totalCount, setTotalCount] = useState(0);\r\n const [contractorTotalCount, setContractorTotalCount] = useState(0);\r\n const setPaginationConfig = (config) => {\r\n setSearchData(searchData => ({...searchData, pagination: config}))\r\n };\r\n const setSearchConfig = (search, preservePagination) => {\r\n setSearchData(searchData => ({...searchData, pagination: preservePagination ? searchData.pagination : {...searchData.pagination, page: 1}, search: search}))\r\n };\r\n const setSortConfig = (sort) => {\r\n setSearchData(searchData => ({...searchData, pagination: {...searchData.pagination, page: 1}, sort: sort}))\r\n };\r\n return {searchData, totalCount, setTotalCount, contractorTotalCount, setContractorTotalCount, setPaginationConfig, setSearchConfig, setSortConfig};\r\n}\r\n\r\n","import React from 'react'\r\nimport {makeStyles, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Button from 'components/Button';\r\nimport GridBlock from 'components/GridBlock';\r\nimport {getPaginationConfig} from \"hooks/useSearch\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n info: {\r\n lineHeight: '2rem'\r\n }\r\n}))\r\n\r\nfunction MoreButton(\r\n {\r\n totalCount = 0,\r\n loadedCount = 0,\r\n setConfig = () => {\r\n },\r\n config = getPaginationConfig(),\r\n disabled = false,\r\n captionTrKey = 'showing_x_of_y_rows',\r\n label = Tr('load_more'),\r\n }) {\r\n const classes = useStyles();\r\n const handleChangePage = () => {\r\n setConfig({...config, page: config.page + 1});\r\n }\r\n\r\n return (\r\n \r\n \r\n {Tr(captionTrKey, {count: loadedCount, total: totalCount})}\r\n \r\n = totalCount)}\r\n >\r\n {label}\r\n \r\n \r\n )\r\n}\r\n\r\nMoreButton.propTypes = {\r\n totalCount: PropTypes.number,\r\n loadedCount: PropTypes.number,\r\n setConfig: PropTypes.func,\r\n config: PropTypes.shape({\r\n page: PropTypes.number,\r\n pageSize: PropTypes.number\r\n }),\r\n disabled: PropTypes.bool,\r\n captionTrKey: PropTypes.string,\r\n label: PropTypes.string\r\n}\r\n\r\nexport default MoreButton;","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestBLOB, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport applySearchParams from \"libs/applySearchParams\";\r\n\r\nconst RESOURCE_ID_RFX_OFFER_LIST = 'rfxOfferList';\r\nconst RESOURCE_ID_RFX_OFFERS_ACTIONS = 'rfxOffersActions';\r\nconst RESOURCE_ID_RFX_OFFER_DECRYPTION_STATUS = 'rfxOfferDecryptionStatus';\r\nconst RESOURCE_ID_RFX_OFFER_PUBLIC_SESSION_STATUS = 'rfxOfferPublicSessionStatus';\r\nconst RESOURCE_ID_RFX_PUBLIC_SESSION_ONLINE_STATUS = 'rfxOfferPublicSessionOnlineStatus';\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n}\r\nconst getOffers = async (roundId, pagination, search) => {\r\n const params = {\r\n ...pagination\r\n }\r\n applySearchParams(search, params)\r\n\r\n try {\r\n const res = await RestRequestGET(Endpoints.RFX_OFFERS_LIST(roundId), {params});\r\n\r\n if (pagination.page > 1) {\r\n const state = reduxStore.getState();\r\n if (state.resources && state.resources[RESOURCE_ID_RFX_OFFER_LIST]) {\r\n const res2 = {\r\n ...res,\r\n items: [...state.resources[RESOURCE_ID_RFX_OFFER_LIST].items, ...res.items],\r\n }\r\n reduxStore.dispatch(setResource(RESOURCE_ID_RFX_OFFER_LIST, res2));\r\n return;\r\n }\r\n }\r\n reduxStore.dispatch(setResource(RESOURCE_ID_RFX_OFFER_LIST, res));\r\n\r\n } catch (error) {\r\n }\r\n}\r\nconst getAvailableActions = async (roundId) => {\r\n const res = await RestRequestGET(Endpoints.RFX_OFFERS_ACTIONS(roundId));\r\n reduxStore.dispatch(setResource(RESOURCE_ID_RFX_OFFERS_ACTIONS, res.actions));\r\n}\r\n\r\nconst getAdditionalRoundsOffers = async (roundId, supplierId) => {\r\n\r\n const res = await RestRequestGET(Endpoints.RFX_OFFERS_ADDITIONAL_ROUND_OFFERS(roundId, supplierId));\r\n _doAdditionalRoundsOffers(roundId, supplierId, res);\r\n}\r\nconst clearAdditionalRoundsOffers = async (roundId, supplierId) => {\r\n _doAdditionalRoundsOffers(roundId, supplierId, undefined);\r\n}\r\nconst _doAdditionalRoundsOffers = (roundId, supplierId, additionalOffers) => {\r\n\r\n const {resources} = reduxStore.getState();\r\n if (resources[RESOURCE_ID_RFX_OFFER_LIST]) {\r\n const curList = resources[RESOURCE_ID_RFX_OFFER_LIST];\r\n const res2 = {\r\n ...curList,\r\n items: curList.items.map(item => item.id !== supplierId ? item : {...item, additionalOffers}),\r\n }\r\n reduxStore.dispatch(setResource(RESOURCE_ID_RFX_OFFER_LIST, res2));\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nconst sendIvniteToOffers = async (roundId, emailsTab) => {\r\n const emails = {\r\n emails: emailsTab\r\n }\r\n const resp = await RestRequestPOST(Endpoints.RFX_OFFERS_SEND_INVITE(roundId), emails);\r\n return resp;\r\n}\r\n\r\nconst getOffersDecryptionStatus = async (roundId) => {\r\n const resp = await RestRequestGET(Endpoints.RFX_OFFERS_DECRYPTION_STATUS(roundId));\r\n reduxStore.dispatch(setResource(RESOURCE_ID_RFX_OFFER_DECRYPTION_STATUS, resp));\r\n return resp;\r\n}\r\n\r\nconst getOffersDecryptionProgress = async (roundId) => {\r\n return await RestRequestGET(Endpoints.RFX_OFFERS_DECRYPTION_PROGRESS(roundId));\r\n}\r\n\r\nconst startOffersDecryptionProcess = async (roundId) => {\r\n return await RestRequestPOST(Endpoints.RFX_OFFERS_DECRYPTION_START(roundId));\r\n}\r\n\r\nconst getOffersPublicSessionStatus = async (roundId) => {\r\n const resp = await RestRequestGET(Endpoints.RFX_OFFERS_PUBLIC_SESSION_STATUS(roundId));\r\n reduxStore.dispatch(setResource(RESOURCE_ID_RFX_OFFER_PUBLIC_SESSION_STATUS, resp));\r\n return resp;\r\n}\r\n\r\nconst getOffersPublicSessionProgress = async (roundId) => {\r\n return await RestRequestGET(Endpoints.RFX_OFFERS_PUBLIC_SESSION_PROGRESS(roundId));\r\n}\r\n\r\nconst startOffersPublicSessionProcess = async (roundId) => {\r\n return await RestRequestPOST(Endpoints.RFX_OFFERS_PUBLIC_SESSION_START(roundId));\r\n}\r\n\r\nconst getOffersPublicSessionOnlineStatus = async (roundId) => {\r\n const resp = await RestRequestGET(Endpoints.RFX_OFFERS_PUBLIC_SESSION_ONLINE_STATUS(roundId));\r\n reduxStore.dispatch(setResource(RESOURCE_ID_RFX_PUBLIC_SESSION_ONLINE_STATUS, resp));\r\n}\r\n\r\nconst saveOffersPublicSessionOnline = async (roundId, values) => {\r\n return await RestRequestPOST(Endpoints.RFX_OFFERS_PUBLIC_SESSION_ONLINE_SAVE(roundId), values);\r\n}\r\n\r\nconst downloadOffersAttachments = async (roundId, finallyCallback = () => {\r\n}) => {\r\n try {\r\n RestRequestBLOB(Endpoints.RFX_OFFERS_ATTACHMENTS(roundId))\r\n .finally(finallyCallback);\r\n } catch (error) {\r\n }\r\n}\r\nconst downloadOffersSummary = async (roundId, type, finallyCallback = () => {\r\n}) => {\r\n try {\r\n RestRequestBLOB(Endpoints.RFX_OFFERS_SUMMARY(roundId, type))\r\n .finally(finallyCallback);\r\n } catch (error) {\r\n }\r\n}\r\nconst saveEnvelope = async (roundId, envelope) => {\r\n return await RestRequestPOST(Endpoints.RFX_OFFERS_ENVELOPE(roundId), envelope);\r\n}\r\nconst getEnvelope = async (roundId, envelopeId) => {\r\n return await RestRequestGET(Endpoints.RFX_OFFERS_ENVELOPE_ID(roundId, envelopeId));\r\n}\r\n\r\n\r\nexport default {\r\n getOffers,\r\n sendIvniteToOffers,\r\n clearResources,\r\n getOffersDecryptionStatus,\r\n getOffersDecryptionProgress,\r\n startOffersDecryptionProcess,\r\n getOffersPublicSessionStatus,\r\n getOffersPublicSessionProgress,\r\n startOffersPublicSessionProcess,\r\n getOffersPublicSessionOnlineStatus,\r\n saveOffersPublicSessionOnline,\r\n downloadOffersAttachments,\r\n downloadOffersSummary,\r\n saveEnvelope,\r\n getEnvelope,\r\n getAvailableActions,\r\n getAdditionalRoundsOffers,\r\n clearAdditionalRoundsOffers,\r\n RESOURCE_ID_RFX_OFFER_LIST,\r\n RESOURCE_ID_RFX_OFFER_DECRYPTION_STATUS,\r\n RESOURCE_ID_RFX_OFFER_PUBLIC_SESSION_STATUS,\r\n RESOURCE_ID_RFX_PUBLIC_SESSION_ONLINE_STATUS,\r\n RESOURCE_ID_RFX_OFFERS_ACTIONS\r\n}","import Tr from 'translations/Translations';\r\n\r\nconst _TR_PREFIX = 'offer_status_';\r\n\r\nexport const OfferStatuses = {\r\n PLACED: 'placed',\r\n MODIFIED: 'modified',\r\n NO_OFFER: 'noOffer',\r\n MODIFIED_BY_OPERATOR: 'modifiedByOperator'\r\n}\r\n\r\nexport const OfferStatusLabel = (status) => (Tr(_TR_PREFIX + status));","import Tr from 'translations/Translations';\r\n\r\nconst _TR_PREFIX = 'offer_encryption_status_';\r\n\r\nexport const OfferEncryptionStatuses = {\r\n DECRYPTED: 'decrypted',\r\n ENCRYPTED: 'encrypted',\r\n PENDING: 'pending'\r\n}\r\n\r\nexport const OfferEncryptionStatusLabel = (status) => Tr(_TR_PREFIX + status);","import React from 'react'\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport PropTypes from 'prop-types';\r\nimport AcUnitIcon from '@material-ui/icons/AcUnit';\r\nimport clsx from 'clsx';\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n pointer: {\r\n cursor: 'pointer'\r\n }\r\n}))\r\n\r\nfunction TooltipIcon(\r\n {\r\n tooltip,\r\n placement = 'top',\r\n hideTooltip = false,\r\n Icon = AcUnitIcon,\r\n color,\r\n fontSize,\r\n onClick,\r\n tooltipClasses,\r\n iconClasses,\r\n ...otherProps\r\n }) {\r\n const classes = useStyles();\r\n if (hideTooltip || !tooltip) {\r\n return \r\n }\r\n return (\r\n \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n \r\n )\r\n}\r\n\r\nTooltipIcon.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default TooltipIcon;","import React from 'react'\r\nimport {makeStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport SimpleTable from 'components/complex/simpleTable/SimpleTable';\r\nimport moment from 'moment';\r\nimport {OfferStatusLabel} from \"constants/OfferStatus\";\r\nimport {OfferEncryptionStatuses, OfferEncryptionStatusLabel} from \"constants/OfferEncryptionStatus\";\r\nimport LockOutlinedIcon from '@material-ui/icons/LockOutlined';\r\nimport LockOpenOutlinedIcon from '@material-ui/icons/LockOpenOutlined';\r\nimport InsertDriveFileOutlinedIcon from '@material-ui/icons/InsertDriveFileOutlined';\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport TooltipIcon from \"components/icon/TooltipIcon\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n cell: {\r\n padding: theme.spacing(1)\r\n },\r\n dateColumn: {\r\n ...theme.components.table.buttonColumn,\r\n width: theme.components.table.dateColumn.width + theme.components.table.buttonColumn.width\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n statusColumn: {\r\n width: 200,\r\n paddingRight: theme.spacing(2)\r\n },\r\n}));\r\n\r\nfunction OfferAdditionalOffersTable(\r\n {\r\n additionalOffers,\r\n redirectToOffer\r\n }) {\r\n const classes = useStyles();\r\n\r\n const createItem = ({roundId, supplierId, name, encryptionStatus, status, offerDate, offerDetailsUrl, roundType}, i) => {\r\n let encIcon = encryptionStatus ? (encryptionStatus === OfferEncryptionStatuses.DECRYPTED ? LockOpenOutlinedIcon : LockOutlinedIcon) : InsertDriveFileOutlinedIcon;\r\n const dateStr = offerDate ? moment(offerDate).format(DateFormats.DATETIME_FORMAT) : '';\r\n\r\n return [\r\n name,\r\n <> {status ? OfferStatusLabel(status) : ''},\r\n dateStr,\r\n redirectToOffer(roundType, offerDate) : undefined}/>\r\n ]\r\n }\r\n\r\n\r\n return (\r\n
\r\n {additionalOffers.length === 0 ?\r\n {Tr('additional_offer_collection_pending_info_message')}\r\n :\r\n [\r\n ...createItem(item, i)\r\n ])\r\n }\r\n columnClasses={[\r\n undefined,\r\n classes.statusColumn,\r\n classes.dateColumn,\r\n classes.buttonColumn\r\n ]}\r\n cellClassName={classes.cell}\r\n />}\r\n
\r\n )\r\n}\r\n\r\nOfferAdditionalOffersTable.propTypes = {\r\n additionalOffers: PropTypes.array.isRequired,\r\n}\r\n\r\nexport default OfferAdditionalOffersTable;\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestBLOB, RestRequestGET} from 'libs/RestRequest';\r\nimport reduxStore from 'redux/store'\r\nimport {clearResource, setResource} from \"../redux/actions\";\r\nimport downloadFileWithPreloadUrl from \"../libs/downloadFileWithPreloadUrl\";\r\n\r\n\r\nconst GENERAL_INFO_BASIC_DATA = \"generalInfoBasicData\";\r\nconst GENERAL_INFO_DOCUMENTS = \"generalInfoDocuments\";\r\nconst GENERAL_INFO_PUBLIC_ANSWERS = \"generalInfoPublicAnswers\";\r\n\r\n\r\nconst getContractorGeneralInfoBasicData = async (demandId, stageId, supplierId) => {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_BASIC_DATA(demandId, stageId, supplierId),{params});\r\n reduxStore.dispatch(setResource(GENERAL_INFO_BASIC_DATA, resp));\r\n}\r\nconst getContractorGeneralInfoDocuments = async (demandId, stageId, supplierId) => {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS(demandId, stageId, supplierId), {params});\r\n reduxStore.dispatch(setResource(GENERAL_INFO_DOCUMENTS, resp));\r\n}\r\nconst getContractorGeneralInfoPublicAnswers = async (demandId, stageId, supplierId) => {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_PUBLIC_ANSWERS(demandId, stageId, supplierId), {params});\r\n reduxStore.dispatch(setResource(GENERAL_INFO_PUBLIC_ANSWERS, resp));\r\n}\r\nconst getDownloadFile = async (demandId, stageId, type, documentId, supplierId) => {\r\n const params = {supplierId}\r\n await downloadFileWithPreloadUrl(\r\n Endpoints.DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS_DOWNLOAD_URL(demandId, stageId, type, documentId, supplierId),\r\n false, params);\r\n}\r\nconst downloadContractorGeneralInfoDocumentsZip = async (demandId, stageId, supplierId, finallyCallback = () => {\r\n}) => {\r\n const params = {supplierId}\r\n RestRequestBLOB(Endpoints.DEMAND_OFFERS_CONTRACTOR_GENERAL_INFO_DOCUMENTS_DOWNLOAD_ZIP(demandId, stageId, supplierId), {params})\r\n .finally(finallyCallback);\r\n}\r\nconst clearResources = (resId) => reduxStore.dispatch(clearResource(resId));\r\n\r\nexport default {\r\n getContractorGeneralInfoBasicData,\r\n getContractorGeneralInfoDocuments,\r\n getContractorGeneralInfoPublicAnswers,\r\n getDownloadFile,\r\n downloadContractorGeneralInfoDocumentsZip,\r\n clearResources,\r\n GENERAL_INFO_BASIC_DATA,\r\n GENERAL_INFO_DOCUMENTS,\r\n GENERAL_INFO_PUBLIC_ANSWERS\r\n}","import React from 'react'\r\nimport PropTypes from \"prop-types\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport WorkableIconExpandButton from \"components/button/WorkableIconExpandButton\";\r\nimport ErrorOutlineOutlinedIcon from \"@material-ui/icons/ErrorOutlineOutlined\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n subject: {\r\n flexGrow: 1\r\n },\r\n unreadElements: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction GeneralInfoExpansionPanelTitle(\r\n {\r\n subject,\r\n unreadElements,\r\n expanded,\r\n toggleThread,\r\n }) {\r\n const classes = useStyle();\r\n\r\n const toggleThread2 = () => {\r\n toggleThread(!expanded);\r\n }\r\n return (\r\n \r\n \r\n {subject}\r\n {!!unreadElements &&\r\n \r\n }\r\n \r\n\r\n \r\n \r\n )\r\n}\r\n\r\nGeneralInfoExpansionPanelTitle.propTypes = {\r\n subject: PropTypes.string.isRequired,\r\n expanded: PropTypes.bool.isRequired,\r\n toggleThread: PropTypes.func.isRequired\r\n}\r\n\r\nexport default GeneralInfoExpansionPanelTitle;","import React, {useState} from 'react'\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PropTypes from \"prop-types\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Typography from \"components/Typography\";\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from \"clsx\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n borderBottom: \"solid 1px\",\r\n marginBottom: theme.spacing(3),\r\n paddingBottom: theme.spacing()\r\n },\r\n titleRoot: {\r\n '&>*:nth-child(1)': {\r\n flexGrow: 1\r\n }\r\n },\r\n titleCollapsible: {\r\n cursor: \"pointer\"\r\n },\r\n content: {\r\n marginLeft: theme.spacing(2),\r\n marginRight: theme.spacing(2)\r\n },\r\n label: {\r\n fontSize: '1.1rem'\r\n }\r\n\r\n}))\r\n\r\nfunction GeneralInfoEntry(\r\n {\r\n label,\r\n collapsible = false,\r\n defaultCollapsed,\r\n biggerLabel = false,\r\n children\r\n }) {\r\n const classes = useStyle();\r\n\r\n const [collapsed, setCollapsed] = useState(defaultCollapsed === undefined ? collapsible : defaultCollapsed);\r\n\r\n return
\r\n setCollapsed(x => !x) : undefined}>\r\n {label}\r\n {(collapsible) && {Tr(collapsed ? 'expand' : 'collapse')}}\r\n \r\n {!collapsed &&
{children}
}\r\n
\r\n\r\n}\r\n\r\nGeneralInfoEntry.propTypes = {\r\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\r\n collapsible: PropTypes.bool\r\n}\r\n\r\nexport default GeneralInfoEntry;","import React, { memo } from 'react'\r\nimport { Accordion, AccordionSummary, Typography, AccordionDetails, AccordionActions, Tooltip } from '@material-ui/core';\r\nimport PropTypes from 'prop-types'\r\nimport { withStyles } from '@material-ui/styles';\r\nimport clsx from 'clsx';\r\nimport GridBlock from './GridBlock';\r\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n\ttitle: {\r\n\t},\r\n\thighlighted: {\r\n\t\tcolor: theme.palette.primary.main,\r\n\t},\r\n\ttitleGrid: {\r\n\t\t'&>*:last-child': {\r\n\t\t\tflexGrow: 1,\r\n\t\t\tmarginLeft: theme.spacing(2),\r\n\t\t}\r\n\t},\r\n\tbottomButton: {\r\n\t\twidth: \"100%\",\r\n\t\theight: theme.spacing(4),\r\n\t\tcursor: \"pointer\",\r\n\t\tpaddingRight: theme.spacing(2),\r\n\t\t'&:hover': {\r\n\t\t\tbackground: theme.palette.background.appBarBackground,\r\n\t\t}\r\n\t},\r\n\thide: {\r\n\t\tdisplay: \"none\"\r\n\t}\r\n})\r\n\r\nfunction ExpansionPanel({\r\n\tpanelRef,\r\n\tchildren,\r\n\ttitle,\r\n\tclasses,\r\n\texpanded,\r\n\tonClick,\r\n\tonChange,\r\n\tdefaultExpanded = false,\r\n\thighlighted = false,\r\n\tsquare,\r\n\tclassesObj = {},\r\n\tdisabled = false,\r\n\ttitleAdornment,\r\n\tid,\r\n\thide = false\r\n}) {\r\n\r\n\tconst onCollapse = () => {\r\n\t\tonChange(null, false)\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{typeof title === \"string\" ?\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t: title}\r\n\r\n\t\t\t\t\t{titleAdornment}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nExpansionPanel.propTypes = {\r\n\ttitle: PropTypes.oneOfType([\r\n\t\tPropTypes.string,\r\n\t\tPropTypes.object\r\n\t]),\r\n\tchildren: PropTypes.any,\r\n\tdefaultExpanded: PropTypes.bool,\r\n\texpanded: PropTypes.bool,\r\n\tonClick: PropTypes.func,\r\n\thighlighted: PropTypes.bool,\r\n\twithPadding: PropTypes.bool,\r\n\tsquare: PropTypes.bool,\r\n\tpanelRef: PropTypes.any\r\n}\r\n\r\nexport default withStyles(style)(memo(ExpansionPanel));\r\n","const formatAmountNumber = (val, undefinedValue, fixed) => {\r\n if (val === null || val === undefinedValue) {\r\n return undefinedValue;\r\n }\r\n\r\n return Number.parseFloat(val).toFixed(2).replace(/[.]/, \",\");\r\n}\r\n\r\nexport default formatAmountNumber;","import React from 'react';\r\n\r\nconst OfferStageTranslationsContext = React.createContext(trKey => trKey);\r\nexport const OfferStageTranslationsContextProvider = OfferStageTranslationsContext.Provider;\r\nexport default OfferStageTranslationsContext;","import React, {useContext, useState} from 'react'\r\nimport PropTypes from \"prop-types\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport GeneralInfoExpansionPanelTitle from \"./GeneralInfoExpansionPanelTitle\";\r\nimport Tr from \"translations/Translations\";\r\nimport GeneralInfoEntry from \"./GeneralInfoEntry\";\r\nimport ExpansionPanel from \"components/ExpansionPanel\";\r\nimport {PriceTypeLabel} from \"constants/PriceTypes\";\r\nimport {isEuropeProcedure} from \"constants/ProcedureType\";\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\nimport moment from \"moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport {VALUES as ProcedureStatus} from \"constants/ProcedureStatus\";\r\nimport {jedzTranslations} from \"pages/purchaser/MyProcedure/scenes/part1/panels/demand/dataEdit/fieldsOptions/jedz.values\";\r\nimport {PrimaryTenderVariantTr} from \"constants/PrimaryTenderVariant\";\r\nimport OfferStageTranslationsContext from \"../../../../../../../../../context/OfferStageTranslationsContext\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n textarea: {\r\n whiteSpace: 'pre-wrap'\r\n }\r\n}));\r\n\r\nfunction GeneralInfoBasicData(\r\n {\r\n panelsClassesObject,\r\n generalInfoBasicData,\r\n demandHeader\r\n }) {\r\n const classes = useStyles();\r\n const [expanded, setExpanded] = useState(false);\r\n const stageTr = useContext(OfferStageTranslationsContext);\r\n return (\r\n setExpanded(x => !x)}\r\n expanded={expanded}\r\n />\r\n }\r\n expanded={expanded}\r\n onChange={(e, isExpanded) => setExpanded(isExpanded)}\r\n\r\n >\r\n \r\n \r\n \r\n {generalInfoBasicData.contactPerson}\r\n
\r\n {generalInfoBasicData.purchaserEmail}\r\n
\r\n {generalInfoBasicData.contactPersonPhone}\r\n
\r\n
\r\n\r\n \r\n \r\n {generalInfoBasicData.procedureTypeTranslated}\r\n \r\n \r\n\r\n \r\n \r\n {generalInfoBasicData.realizationTypeTranslated}\r\n \r\n \r\n\r\n {!!generalInfoBasicData.description &&\r\n \r\n \r\n {generalInfoBasicData.description}\r\n \r\n \r\n }\r\n\r\n {!!generalInfoBasicData.primaryTenderVariant &&\r\n \r\n \r\n {PrimaryTenderVariantTr[generalInfoBasicData.primaryTenderVariant]}\r\n \r\n \r\n }\r\n\r\n {!!generalInfoBasicData.orderType &&\r\n \r\n \r\n {generalInfoBasicData.orderType}\r\n \r\n \r\n }\r\n\r\n {!generalInfoBasicData.passiveOfferForm &&\r\n \r\n \r\n {PriceTypeLabel(generalInfoBasicData.priceType)} (PLN)\r\n \r\n \r\n }\r\n\r\n {generalInfoBasicData.canCreateAuction !== null &&\r\n \r\n \r\n {Tr(generalInfoBasicData.canCreateAuction ? 'yes' : 'no')}\r\n \r\n \r\n }\r\n\r\n {generalInfoBasicData.digitalSign !== null &&\r\n \r\n \r\n {Tr(generalInfoBasicData.digitalSign ? 'yes' : 'no')}\r\n \r\n \r\n }\r\n\r\n {generalInfoBasicData.requiredJEDZ !== null &&\r\n \r\n \r\n {jedzTranslations(generalInfoBasicData.requiredJEDZ)}\r\n \r\n \r\n }\r\n\r\n {!generalInfoBasicData.passiveOfferForm &&\r\n 3}\r\n >\r\n\r\n {generalInfoBasicData.guaranteeList === null ?\r\n {Tr('guarantee_not_required')}\r\n :\r\n <>\r\n {generalInfoBasicData.dealingsCount === 1 ?\r\n <>\r\n {generalInfoBasicData.guaranteeList.length > 0 &&\r\n {formatAmountNumber(generalInfoBasicData.guaranteeList[0].value)} PLN}\r\n \r\n :\r\n <>\r\n {generalInfoBasicData.guaranteeList.map(x => (\r\n {Tr(\"part_x\", {x: x.ordinalNumber})}: {formatAmountNumber(x.value)} PLN))}\r\n\r\n \r\n }\r\n \r\n }\r\n \r\n }\r\n\r\n\r\n \r\n \r\n {moment(generalInfoBasicData.procedureStartDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n \r\n\r\n \r\n {generalInfoBasicData.stageEndDate === null ?\r\n {Tr('offer_end_date_neg_dialog')}: {Tr('according_to_the_documentation')}\r\n :\r\n \r\n {Tr(\"offer_end_date\")}: {moment(generalInfoBasicData.stageEndDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n }\r\n \r\n {Tr(\"offer_open_date\")}: {generalInfoBasicData.openOfferDate === null ? Tr('according_to_the_documentation') : moment(generalInfoBasicData.openOfferDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n {generalInfoBasicData.stageSecondEndDate &&\r\n \r\n {Tr(\"offer_second_end_date\")}: {moment(generalInfoBasicData.stageSecondEndDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n }\r\n \r\n\r\n {generalInfoBasicData.demandFinishDate !== null &&\r\n \r\n {demandHeader.status === ProcedureStatus.CANCELLED ?\r\n {Tr('procedure_status_6')}\r\n :\r\n \r\n {moment(generalInfoBasicData.demandFinishDate).format(DateFormats.DATETIME_FORMAT)}\r\n \r\n }\r\n \r\n }\r\n
\r\n \r\n )\r\n}\r\n\r\nGeneralInfoBasicData.propTypes = {\r\n generalInfoBasicData: PropTypes.object.isRequired,\r\n demandHeader: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default GeneralInfoBasicData;","import React from 'react'\r\nimport ForwardIcon from '@material-ui/icons/Forward';\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconForwardButton(\r\n {\r\n tooltip = Tr('enter'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconForwardButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconForwardButton;","import React, {useReducer} from 'react'\r\nimport {makeStyles, TableCell, TableRow} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport moment from \"moment\";\r\nimport WorkableIconDownloadButton from 'components/button/WorkableIconDownloadButton';\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport WorkableIconSearchButton from \"components/button/WorkableIconSearchButton\";\r\nimport DemandOffersGeneralInfoService from \"services/DemandOffersGeneralInfoService\";\r\nimport WorkableIconForwardButton from \"components/button/WorkableIconForwardButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n warnIcon: {\r\n padding: 0,\r\n color: `${theme.palette.secondary.main} !important`\r\n },\r\n descriptionTooltip: {\r\n whiteSpace: 'pre-line'\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n versionsCell: {\r\n background: theme.palette.background.default,\r\n paddingLeft: 0,\r\n paddingRight: 0\r\n }\r\n}));\r\n\r\nfunction GeneralInfoDocumentsFileTableRow(\r\n {\r\n demandId,\r\n stageId,\r\n supplierId,\r\n index,\r\n row,\r\n onEditDescriptionFile,\r\n\r\n }) {\r\n const classes = useStyle();\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n goto: false\r\n });\r\n\r\n const onDownload = () => {\r\n dispatchIconWorks({type: \"download\", works: true});\r\n DemandOffersGeneralInfoService.getDownloadFile(demandId, stageId, row.source, row.identity, supplierId)\r\n .finally(() => dispatchIconWorks({type: 'download', works: false}));\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n {index}\r\n \r\n {row.name}\r\n \r\n \r\n onEditDescriptionFile(row)}\r\n tooltip={row.description ?

{row.description}

: {Tr('no_description')}}\r\n />\r\n
\r\n {row.publishDate ? moment(row.publishDate).format(DateFormats.DATETIME_FORMAT) : null}\r\n \r\n {\r\n !!row.actions.goto &&\r\n {\r\n dispatchIconWorks({type: \"download\", works: true});\r\n window.location.href = row.actions.goto.url\r\n }\r\n }\r\n tooltip={Tr('go')}\r\n disabled={iconWorks.anyWorks}\r\n working={iconWorks.goto}/>\r\n }\r\n {\r\n !!row.actions.download &&\r\n onDownload(row)}\r\n hideTooltip={!row.actions.download}\r\n disabled={iconWorks.anyWorks}\r\n working={iconWorks.download}\r\n />\r\n }\r\n \r\n
\r\n\r\n \r\n )\r\n}\r\n\r\nGeneralInfoDocumentsFileTableRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n stageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n row: PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n source: PropTypes.string.isRequired\r\n }).isRequired,\r\n index: PropTypes.number.isRequired,\r\n onEditDescriptionFile: PropTypes.func.isRequired\r\n};\r\n\r\nexport default GeneralInfoDocumentsFileTableRow;","import React, {useState} from 'react'\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport EditDescriptionPopup, {createEditDescriptionFile} from \"components/popup/EditDescriptionPopup\";\r\nimport GeneralInfoDocumentsFileTableRow from \"./GeneralInfoDocumentsFileTableRow\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PropTypes from 'prop-types';\r\nimport WorkableIconDownloadButton from \"components/button/WorkableIconDownloadButton\";\r\nimport DemandOffersGeneralInfoService from \"services/DemandOffersGeneralInfoService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n}));\r\n\r\nfunction GeneralInfoDocumentsFileTable(\r\n {\r\n demandId,\r\n stageId,\r\n supplierId,\r\n generalInfoDocuments,\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [downloadZipWorking, setDownloadZipWorking] = useState(false);\r\n const [editDescriptionFile, setEditDescriptionFile] = useState(null);\r\n\r\n const openEditDescription = (row) => {\r\n setEditDescriptionFile(createEditDescriptionFile(demandId, row.identity, row.name, row.description, true));\r\n };\r\n\r\n return (
\r\n {!generalInfoDocuments.length ?\r\n {Tr('no_options')}\r\n :\r\n <>\r\n\r\n \r\n \r\n \r\n {Tr(\"column_lp\")}\r\n {Tr(\"name\")}\r\n {Tr(\"description\")}\r\n {Tr(\"publish_data\")}\r\n \r\n {\r\n setDownloadZipWorking(true);\r\n DemandOffersGeneralInfoService.downloadContractorGeneralInfoDocumentsZip(demandId, stageId, supplierId, () => {\r\n setDownloadZipWorking(false);\r\n })\r\n }\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n generalInfoDocuments.map((doc, index) => (\r\n ))\r\n }\r\n \r\n
\r\n \r\n }\r\n {Boolean(editDescriptionFile) &&\r\n setEditDescriptionFile(null)}\r\n onClose={() => setEditDescriptionFile(null)}\r\n service={{\r\n updateDescription: () => {\r\n }\r\n }}\r\n />\r\n }\r\n
)\r\n}\r\n\r\nGeneralInfoDocumentsFileTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n stageId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n};\r\nexport default GeneralInfoDocumentsFileTable;","import React from 'react';\r\n\r\nconst PurchaserOfferContext = React.createContext();\r\nexport const PurchaserOfferContextProvider = PurchaserOfferContext.Provider;\r\nexport default PurchaserOfferContext;","import React, {useContext, useEffect, useState} from 'react'\r\nimport GeneralInfoExpansionPanelTitle from \"./GeneralInfoExpansionPanelTitle\";\r\nimport Tr from \"translations/Translations\";\r\nimport ExpansionPanel from \"components/ExpansionPanel\";\r\nimport DemandOffersGeneralInfoService from \"services/DemandOffersGeneralInfoService\";\r\nimport {withRouter} from \"react-router\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport GeneralInfoDocumentsFileTable from \"./GeneralInfoDocumentsFileTable\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport {StageSections} from \"../../../../constants/StageSections\";\r\n\r\nfunction GeneralInfoDocuments(\r\n {\r\n match,\r\n panelsClassesObject,\r\n generalInfoDocuments,\r\n demandStageSectionsList\r\n }) {\r\n const [expanded, setExpanded] = useState(false);\r\n const demandId = match.params.id;\r\n const stageId = match.params.stageId;\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n const unreadDemandDocuments = demandStageSectionsList[StageSections.GENERAL_INFO].unreadDemandDocuments;\r\n useEffect(() => {\r\n if (expanded && generalInfoDocuments === undefined)\r\n DemandOffersGeneralInfoService.getContractorGeneralInfoDocuments(demandId, stageId, purchaserOfferContext?.supplierId);\r\n return () => {\r\n DemandOffersGeneralInfoService.clearResources(DemandOffersGeneralInfoService.GENERAL_INFO_DOCUMENTS);\r\n }\r\n // eslint-disable-next-line\r\n }, [expanded])\r\n\r\n\r\n return (\r\n setExpanded(x => !x)}\r\n expanded={expanded}\r\n />\r\n }\r\n expanded={expanded}\r\n onChange={(e, isExpanded) => setExpanded(isExpanded)}\r\n\r\n >\r\n {\r\n !generalInfoDocuments ?\r\n \r\n :\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nGeneralInfoDocuments.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n generalInfoDocuments: state.resources[DemandOffersGeneralInfoService.GENERAL_INFO_DOCUMENTS],\r\n demandStageSectionsList: state.resources[DemandOffersService.DEMAND_STAGE_SECTIONS_LIST]\r\n}), {})(withRouter(GeneralInfoDocuments));","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport reduxStore from 'redux/store';\r\nimport {clearResource, setResource, setSaveStatusError} from 'redux/actions';\r\nimport applySearchParams from \"../libs/applySearchParams\";\r\nimport PrivilegeService from \"./PrivilegeService\";\r\nimport downloadFileWithPreloadUrl from \"../libs/downloadFileWithPreloadUrl\";\r\nimport Tr from \"translations/Translations\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\n\r\nconst CORRESPONDENCE_RES_PREFIX = 'correspondence';\r\nconst CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID = CORRESPONDENCE_RES_PREFIX + \"BeforeBiddingEndThreads\";\r\nconst CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID = CORRESPONDENCE_RES_PREFIX + \"AfterBiddingEndThreads\";\r\nconst CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID = CORRESPONDENCE_RES_PREFIX + \"NotSplicedThreads\";\r\nconst CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID = CORRESPONDENCE_RES_PREFIX + \"LastCheckTime\";\r\nconst CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID = CORRESPONDENCE_RES_PREFIX + \"SplitDate\";\r\n\r\nconst cleanupPrivileges = () => {\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.CORRESPONDENCE_PRIVILEGE_STORE_KEY);\r\n}\r\n\r\nconst cleanupThreadList = () => {\r\n reduxStore.dispatch(clearResource(CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID));\r\n reduxStore.dispatch(clearResource(CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID));\r\n reduxStore.dispatch(clearResource(CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID));\r\n reduxStore.dispatch(clearResource(CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID));\r\n reduxStore.dispatch(clearResource(CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID));\r\n};\r\n\r\nconst getContractorThreadList = async (roundId) => {\r\n const threadList = await RestRequestGET(Endpoints.CORRESPONDENCE_CONTRACTOR_THREAD_LIST(roundId));\r\n\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID, threadList.checkTime));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID, threadList.correspondenceSplitDate));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID, threadList.beforeBiddingEndThreads));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID, threadList.afterBiddingEndThreads));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID, threadList.notSplicedThreads));\r\n}\r\n\r\nconst getBuyerNewMessages = async (roundId) => {\r\n const state = reduxStore.getState();\r\n let params = applySearchParams({dateFrom: state.resources[CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID]})\r\n\r\n const response = await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_NEW_MESSAGES(roundId), {params});\r\n if (response.success !== false) {\r\n const unreadIds = _processNewMessagesUpdate(response);\r\n if (unreadIds.length > 0) {\r\n RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_MARK_AS_READ(roundId), {list: unreadIds});\r\n }\r\n }\r\n}\r\n\r\nconst _processNewMessagesUpdate = (response) => {\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID, response.checkTime));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID, response.correspondenceSplitDate));\r\n const state = reduxStore.getState();\r\n const newReadMessageIds = [];\r\n for (const listResourceId of [CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID, CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID, CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID]) {\r\n const reqResource = listResourceId.substring(CORRESPONDENCE_RES_PREFIX.length).charAt(0).toLowerCase() + listResourceId.substring(CORRESPONDENCE_RES_PREFIX.length).slice(1);\r\n if (response?.[reqResource]?.threads?.length) {\r\n const threadsObject = response[reqResource].threads.reduce(function (o, val) {\r\n o[val.threadId] = val;\r\n return o;\r\n }, {});\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = state.resources[listResourceId].threads.map(th => {\r\n if (threadsObject.hasOwnProperty(th.threadId)) {\r\n const reqThread = threadsObject[th.threadId];\r\n const {messages, unreadMessagesCount, ...others} = th;\r\n let newMessageList = null;\r\n if (messages) {\r\n let index = messages.findIndex(x => x.status === 'saved');\r\n if (index === -1) index = messages.length;\r\n newMessageList = [...messages];\r\n newMessageList.splice(index, 0, ...reqThread.messages);\r\n newReadMessageIds.push(...reqThread.messages.map(x => x.messageId));\r\n }\r\n delete threadsObject[th.threadId];\r\n return ({\r\n ...others,\r\n unreadMessagesCount: unreadMessagesCount + reqThread.messages.length,\r\n messages: newMessageList\r\n })\r\n }\r\n return th;\r\n });\r\n Object.values(threadsObject).forEach(x => threads.unshift({...x, messages: null}));\r\n\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n\r\n }\r\n }\r\n return newReadMessageIds;\r\n}\r\n\r\nconst getContractorNewMessages = async (roundId) => {\r\n const state = reduxStore.getState();\r\n let params = applySearchParams({dateFrom: state.resources[CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID]})\r\n\r\n const response = await RestRequestGET(Endpoints.CORRESPONDENCE_CONTRACTOR_NEW_MESSAGES(roundId), {params});\r\n if (response.success !== false) {\r\n const unreadIds = _processNewMessagesUpdate(response);\r\n if (unreadIds.length > 0) {\r\n RestRequestPOST(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_MARK_AS_READ(roundId), {list: unreadIds});\r\n }\r\n }\r\n}\r\n\r\nconst getBuyerThreadList = async (roundId) => {\r\n const threadList = await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_THREAD_LIST(roundId));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID, threadList.checkTime));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID, threadList.correspondenceSplitDate));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID, threadList.beforeBiddingEndThreads));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID, threadList.afterBiddingEndThreads));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID, threadList.notSplicedThreads));\r\n};\r\n\r\nconst getBuyerContractorInRoundList = async (roundId) => {\r\n return await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_CTR_IN_ROUND(roundId));\r\n};\r\n\r\nconst getBuyerThreadMessageList = async (roundId, threadId, listResourceId) => {\r\n const messages = await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_LIST(roundId, threadId));\r\n if (messages.success !== false) {\r\n const unreadIds = messages.filter(x => !x.read && (x.contractorUser || x.publicQuestion)).map(x => x.messageId);\r\n if (unreadIds.length > 0) {\r\n RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_MARK_AS_READ(roundId), {list: unreadIds});\r\n }\r\n _setMessagesInThread(threadId, messages, listResourceId);\r\n }\r\n}\r\n\r\nconst getBuyerMessageDelivery = async (roundId, messageId, type, identity) => {\r\n return await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_EMAIL_DELIVERY(roundId, messageId, type, identity));\r\n}\r\n\r\nconst getContractorThreadMessageList = async (roundId, threadId, listResourceId) => {\r\n const messages = await RestRequestGET(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_LIST(roundId, threadId));\r\n if (messages.success !== false) {\r\n const unreadIds = messages.filter(x => !x.read && x.buyerUser).map(x => x.messageId);\r\n if (unreadIds.length > 0) {\r\n RestRequestPOST(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_MARK_AS_READ(roundId), {list: unreadIds});\r\n }\r\n _setMessagesInThread(threadId, messages, listResourceId);\r\n }\r\n}\r\n\r\nconst _setMessagesInThread = (threadId, reqMessages, listResourceId) => {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = state.resources[listResourceId].threads.map(th => {\r\n if (th.threadId === threadId) {\r\n const {messages, ...others} = th;\r\n return ({\r\n ...others,\r\n messages: reqMessages\r\n })\r\n }\r\n return th;\r\n })\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n}\r\n\r\nconst _addThreadToList = (thread, listResourceId) => {\r\n if (thread.threadId) {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = [\r\n thread,\r\n ...state.resources[listResourceId].threads\r\n ]\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n }\r\n}\r\n\r\nconst addBuyerThread = async (roundId, thread, listResourceId) => {\r\n const response = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_THREAD_ADD(roundId), thread);\r\n if (response.success !== false) {\r\n _addThreadToList(response, listResourceId);\r\n }\r\n return response;\r\n}\r\n\r\nconst addContractorThread = async (roundId, thread, listResourceId) => {\r\n const response = await RestRequestPOST(Endpoints.CORRESPONDENCE_CONTRACTOR_THREAD_ADD(roundId), thread);\r\n if (response.success !== false) {\r\n _addThreadToList(response, listResourceId);\r\n }\r\n return response;\r\n}\r\nconst saveBuyerThreadAsContractor = async (roundId, thread, listResourceId) => {\r\n const response = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_THREAD_AS_CRT_SEND(roundId), thread);\r\n if (response.success !== false) {\r\n _addThreadToList(response, listResourceId);\r\n }\r\n return response;\r\n}\r\n\r\nconst _updateMessageInThread = (threadId, messageId, listResourceId, response) => {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = state.resources[listResourceId].threads.map(th => {\r\n if (th.threadId === threadId) {\r\n const {messages, ...other} = th;\r\n if (messages) {\r\n return ({\r\n ...other,\r\n messages: messages.map(msg => (msg.messageId === messageId ? response : msg))\r\n })\r\n }\r\n }\r\n return th;\r\n });\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n};\r\n\r\nconst clearThreadMessages = (threadId, listResourceId) => {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = state.resources[listResourceId].threads.map(th => {\r\n\r\n if (th.threadId === threadId) {\r\n const {messages, unreadMessagesCount, ...other} = th;\r\n if (messages) {\r\n return ({\r\n ...other,\r\n unreadMessagesCount: 0,\r\n messages: null\r\n })\r\n }\r\n }\r\n return th;\r\n\r\n });\r\n\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n};\r\n\r\nconst updateBuyerMessage = async (roundId, threadId, messageId, listResourceId, message) => {\r\n const resp = await RestRequestPUT(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_UPDATE(roundId, messageId), message);\r\n if (resp.success !== false) {\r\n _updateMessageInThread(threadId, messageId, listResourceId, resp);\r\n }\r\n return resp;\r\n}\r\n\r\nconst updateContractorMessage = async (roundId, threadId, messageId, listResourceId, message) => {\r\n const resp = await RestRequestPUT(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_UPDATE(roundId, messageId), message);\r\n if (resp.success !== false) {\r\n _updateMessageInThread(threadId, messageId, listResourceId, resp);\r\n }\r\n return resp;\r\n}\r\n\r\nconst sendBuyerMessage = async (roundId, threadId, messageId, listResourceId) => {\r\n const resp = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_SEND(roundId, messageId));\r\n if (resp.success !== false) {\r\n _updateMessageInThread(threadId, messageId, listResourceId, resp);\r\n }\r\n return resp;\r\n}\r\n\r\nconst sendContractorMessage = async (roundId, threadId, messageId, listResourceId) => {\r\n const resp = await RestRequestPOST(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_SEND(roundId, messageId));\r\n if (resp.success !== false) {\r\n _updateMessageInThread(threadId, messageId, listResourceId, resp);\r\n }\r\n return resp;\r\n}\r\n\r\nconst publishBuyerMessage = async (roundId, threadId, messageId, listResourceId) => {\r\n const resp = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_PUBLISH(roundId, messageId));\r\n if (resp.success !== false) {\r\n _updateMessagesInThreads(listResourceId, resp);\r\n }\r\n return resp;\r\n}\r\n\r\nconst deleteBuyerMessage = async (roundId, threadId, messageId, listResourceId) => {\r\n const resp = await RestRequestDELETE(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_DELETE(roundId, messageId));\r\n if (resp.success) {\r\n _removeMessagesFromThread(threadId, messageId, listResourceId);\r\n }\r\n return resp;\r\n}\r\n\r\nconst deleteContractorMessage = async (roundId, threadId, messageId, listResourceId) => {\r\n const resp = await RestRequestDELETE(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_DELETE(roundId, messageId));\r\n if (resp.success) {\r\n _removeMessagesFromThread(threadId, messageId, listResourceId);\r\n }\r\n return resp;\r\n}\r\n\r\nconst _removeMessagesFromThread = (threadId, messageId, listResourceId) => {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n let removedLast = false;\r\n let threads = state.resources[listResourceId].threads.map(th => {\r\n if (th.threadId === threadId) {\r\n\r\n const {messages, ...other} = th;\r\n const messagesFiltered = messages.filter(msg => (msg.messageId !== messageId));\r\n if (messagesFiltered.length === 0) {\r\n removedLast = true;\r\n }\r\n return ({\r\n ...other,\r\n messages: messagesFiltered\r\n })\r\n }\r\n return th;\r\n });\r\n if (removedLast) {\r\n threads = threads.filter(t => t.threadId !== threadId);\r\n }\r\n\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n};\r\n\r\nconst _updateMessagesInThreads = (listResourceId, response) => {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = state.resources[listResourceId].threads.map(th => {\r\n const respTh = response.find(x => x.threadId === th.threadId);\r\n if (respTh) {\r\n const mesMap = respTh.messages.reduce(function (acc, cur, i) {\r\n acc[cur.messageId] = cur;\r\n return acc;\r\n }, {});\r\n\r\n const {messages, ...other} = th;\r\n if (messages) {\r\n return ({\r\n ...other,\r\n messages: messages.map(msg => (mesMap.hasOwnProperty(msg.messageId) ? mesMap[msg.messageId] : msg))\r\n })\r\n }\r\n }\r\n return th;\r\n });\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n};\r\n\r\n\r\nconst _addMessagesToThreads = (listResourceId, threadList) => {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = state.resources[listResourceId].threads.map(th => {\r\n const respTh = threadList.find(x => x.threadId === th.threadId);\r\n if (respTh) {\r\n const {messages, ...other} = th;\r\n if (messages) {\r\n return ({\r\n ...other,\r\n messages: [...messages, ...respTh.messages]\r\n })\r\n }\r\n }\r\n return th;\r\n });\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n};\r\nconst sendBuyerBulkMessages = async (roundId, bulkMessages, listResourceId) => {\r\n const resp = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_BULK_MESSAGES_SEND(roundId), bulkMessages);\r\n if (resp.success !== false) {\r\n _addMessagesToThreads(listResourceId, resp);\r\n }\r\n return resp;\r\n}\r\n\r\nconst publishBuyerBulkMessages = async (roundId, bulkMessages, listResourceId) => {\r\n const resp = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_BULK_MESSAGES_PUBLISH(roundId), bulkMessages);\r\n if (resp.success !== false) {\r\n _addMessagesToThreads(listResourceId, resp);\r\n }\r\n return resp;\r\n}\r\n\r\nconst createBuyerMessage = async (roundId, threadId, listResourceId) => {\r\n const message = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_CREATE(roundId, threadId));\r\n _addMessagesToThreads(listResourceId, [{threadId, messages: [message]}]);\r\n return message;\r\n}\r\n\r\nconst createContractorMessage = async (roundId, threadId, listResourceId) => {\r\n const message = await RestRequestPOST(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_CREATE(roundId, threadId));\r\n _addMessagesToThreads(listResourceId, [{threadId, messages: [message]}]);\r\n return message;\r\n}\r\n\r\nconst _modifyFlag = (threadId, listResourceId, flag) => {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[listResourceId]?.threads) {\r\n const threads = state.resources[listResourceId].threads.map(x => (x.threadId !== threadId ? x : {...x, hasRedFlag: flag}));\r\n reduxStore.dispatch(setResource(listResourceId, {...state.resources[listResourceId], threads}));\r\n }\r\n}\r\n\r\nconst getContractorPrivileges = async (roundId) => {\r\n await PrivilegeService.getPrivileges(Endpoints.CORRESPONDENCE_CONTRACTOR_PRIVILEGES(roundId), PrivilegeService.CORRESPONDENCE_PRIVILEGE_STORE_KEY);\r\n}\r\n\r\nconst getBuyerPrivileges = async (roundId) => {\r\n await PrivilegeService.getPrivileges(Endpoints.CORRESPONDENCE_BUYER_PRIVILEGES(roundId), PrivilegeService.CORRESPONDENCE_PRIVILEGE_STORE_KEY);\r\n}\r\n\r\nconst sendBuyerFlagThread = async (roundId, threadId, listResourceId) => {\r\n return await _sendFlagUnflagThread(Endpoints.CORRESPONDENCE_BUYER_FLAG, roundId, threadId, listResourceId, true);\r\n}\r\n\r\nconst sendBuyerUnflagThread = async (roundId, threadId, listResourceId) => {\r\n return await _sendFlagUnflagThread(Endpoints.CORRESPONDENCE_BUYER_UNFLAG, roundId, threadId, listResourceId, false);\r\n}\r\n\r\nconst sendContractorFlagThread = async (roundId, threadId, listResourceId) => {\r\n return await _sendFlagUnflagThread(Endpoints.CORRESPONDENCE_CONTRACTOR_FLAG, roundId, threadId, listResourceId, true);\r\n}\r\n\r\nconst sendContractorUnflagThread = async (roundId, threadId, listResourceId) => {\r\n return await _sendFlagUnflagThread(Endpoints.CORRESPONDENCE_CONTRACTOR_UNFLAG, roundId, threadId, listResourceId, false);\r\n}\r\n\r\nconst _sendFlagUnflagThread = async (urlFn, roundId, threadId, listResourceId, flag) => {\r\n const resp = await RestRequestPOST(urlFn(roundId, threadId));\r\n if (resp.result) {\r\n _modifyFlag(threadId, listResourceId, flag);\r\n }\r\n}\r\n\r\nconst downloadBuyerMessageAttachmentsZip = async (roundId, messageId, finallyCallback = () => {\r\n}) => {\r\n try {\r\n RestRequestBLOB(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_ZIP(roundId, messageId))\r\n .finally(finallyCallback);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst downloadBuyerMessageAttachment = async (roundId, attachmentId, finallyCallback = () => {\r\n}) => {\r\n await downloadFileWithPreloadUrl(Endpoints.CORRESPONDENCE_BUYER_ATTACHMENT_URL(roundId, attachmentId), false)\r\n .finally(finallyCallback);\r\n}\r\n\r\nconst checkVerificationLimit = async (roundId, messageId) => {\r\n const resp = await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_CHECK_LIMIT(roundId, messageId));\r\n return resp;\r\n}\r\nconst printBuyerMessageAttachmentsVerification = async (roundId, messageId, finallyCallback = () => {\r\n}) => {\r\n RestRequestBLOB(Endpoints.CORRESPONDENCE_BUYER_MESSAGE_ATTACHMENTS_VERIFY(roundId, messageId))\r\n .finally(finallyCallback);\r\n}\r\n\r\nconst downloadContractorMessageAttachmentsZip = async (roundId, messageId, finallyCallback = () => {\r\n}) => {\r\n RestRequestBLOB(Endpoints.CORRESPONDENCE_CONTRACTOR_MESSAGE_ATTACHMENTS_ZIP(roundId, messageId))\r\n .finally(finallyCallback);\r\n}\r\n\r\nconst downloadContractorMessageAttachment = async (roundId, attachmentId, finallyCallback = () => {\r\n}) => {\r\n await downloadFileWithPreloadUrl(Endpoints.CORRESPONDENCE_CONTRACTOR_ATTACHMENT_URL(roundId, attachmentId), false)\r\n .finally(finallyCallback);\r\n}\r\n\r\nconst getContractorSearchResult = async (roundId, searchObject) => {\r\n return await getSearchResult(searchObject, Endpoints.CORRESPONDENCE_CONTRACTOR_SEARCH(roundId));\r\n}\r\n\r\nconst getBuyerSearchResult = async (roundId, searchObject) => {\r\n return await getSearchResult(searchObject, Endpoints.CORRESPONDENCE_BUYER_SEARCH(roundId));\r\n}\r\n\r\nconst getSearchResult = async (searchObject, url) => {\r\n //const state = reduxStore.getState();\r\n let params = applySearchParams(searchObject);\r\n\r\n const threadList = await RestRequestGET(url, {params});\r\n if (threadList.success !== false) {\r\n cleanupThreadList();\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID, threadList.checkTime));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID, threadList.correspondenceSplitDate));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID, threadList.beforeBiddingEndThreads));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID, threadList.afterBiddingEndThreads));\r\n reduxStore.dispatch(setResource(CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID, threadList.notSplicedThreads));\r\n }\r\n return threadList;\r\n}\r\n\r\nconst getBuyerPrint = async (roundId, type, before, threadIds) => {\r\n return print(Endpoints.CORRESPONDENCE_BUYER_PRINT(roundId, type, before), threadIds);\r\n}\r\n\r\nconst getContractorPrint = async (roundId, type, before, threadIds) => {\r\n return print(Endpoints.CORRESPONDENCE_CONTRACTOR_PRINT(roundId, type, before), threadIds);\r\n}\r\n\r\nconst getBuyerContractorEmailList = async (roundId, departmentId) => {\r\n return await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_CONTRACTOR_EMAIL_LIST(roundId, departmentId));\r\n}\r\n\r\nconst getBuyerThreadEmailList = async (roundId, threadId) => {\r\n return await RestRequestGET(Endpoints.CORRESPONDENCE_BUYER_THREAD_EMAIL_LIST(roundId, threadId));\r\n}\r\n\r\nconst print = (url, threadIds) => {\r\n let params = {\r\n threadIds: threadIds.join()\r\n }\r\n return RestRequestBLOB(url, {params});\r\n}\r\n\r\nconst shareCorrespondencePrint = async (roundId, type, before, threadIds, system) => {\r\n let params = {\r\n threadIds: threadIds.join()\r\n }\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.CORRESPONDENCE_BUYER_SHARE(roundId, type, before), {system}, {params});\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n return false;\r\n}\r\n\r\nexport default {\r\n getBuyerThreadList,\r\n getBuyerNewMessages,\r\n getBuyerSearchResult,\r\n getBuyerThreadMessageList,\r\n addBuyerThread,\r\n sendBuyerMessage,\r\n publishBuyerMessage,\r\n updateBuyerMessage,\r\n saveBuyerThreadAsContractor,\r\n createBuyerMessage,\r\n deleteBuyerMessage,\r\n sendBuyerBulkMessages,\r\n publishBuyerBulkMessages,\r\n getBuyerContractorInRoundList,\r\n getBuyerMessageDelivery,\r\n downloadBuyerMessageAttachmentsZip,\r\n downloadBuyerMessageAttachment,\r\n checkVerificationLimit,\r\n printBuyerMessageAttachmentsVerification,\r\n sendBuyerFlagThread,\r\n sendBuyerUnflagThread,\r\n getBuyerPrivileges,\r\n getBuyerPrint,\r\n getBuyerThreadEmailList,\r\n getBuyerContractorEmailList,\r\n shareCorrespondencePrint,\r\n\r\n cleanupThreadList,\r\n cleanupPrivileges,\r\n clearThreadMessages,\r\n\r\n getContractorThreadList,\r\n getContractorNewMessages,\r\n getContractorSearchResult,\r\n getContractorThreadMessageList,\r\n createContractorMessage,\r\n updateContractorMessage,\r\n sendContractorMessage,\r\n deleteContractorMessage,\r\n addContractorThread,\r\n downloadContractorMessageAttachmentsZip,\r\n downloadContractorMessageAttachment,\r\n sendContractorFlagThread,\r\n sendContractorUnflagThread,\r\n getContractorPrivileges,\r\n getContractorPrint,\r\n\r\n CORRESPONDENCE_THREAD_LISTS_BEFORE_END_DATE_RESOURCE_ID,\r\n CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID,\r\n CORRESPONDENCE_THREAD_LISTS_NOT_SPLICED_RESOURCE_ID,\r\n CORRESPONDENCE_LAST_CHECK_TIME_RESOURCE_ID,\r\n CORRESPONDENCE_SPLIT_DATE_RESOURCE_ID\r\n}","import React, {useState} from 'react'\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from \"clsx\";\r\nimport {Badge, makeStyles, Typography} from \"@material-ui/core\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport moment from \"moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport FilesList from \"components/FilesList\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport GetAppIcon from \"@material-ui/icons/GetApp\";\r\nimport PropTypes from \"prop-types\";\r\nimport CorrespondenceService from \"services/CorrespondenceService\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n contentWrapper: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper,\r\n position: 'relative'\r\n },\r\n contentWrapperUnread: {\r\n borderWidth: 3\r\n },\r\n content: {\r\n padding: `${theme.spacing(1)}px ${theme.spacing(2)}px`\r\n },\r\n sendDate: {\r\n margin: `0 ${theme.spacing(1)}px`,\r\n minWidth: 110\r\n },\r\n message: {\r\n whiteSpace: 'pre-line',\r\n margin: `${theme.spacing(2)}px 0`\r\n },\r\n newBadge: {\r\n position: 'absolute',\r\n right: 0,\r\n top: 3\r\n },\r\n}));\r\n\r\nfunction GeneralInfoPublicAnswersMessage(\r\n {\r\n demandId,\r\n index,\r\n message,\r\n currentRfxRoundId,\r\n }) {\r\n\r\n const classes = useStyles();\r\n const [downloadZipWorking, setDownloadZipWorking] = useState(false);\r\n const unread = !message.read;\r\n\r\n const downloadZip = () => {\r\n setDownloadZipWorking(true);\r\n CorrespondenceService.downloadContractorMessageAttachmentsZip(currentRfxRoundId, message.messageId, () => setDownloadZipWorking(false));\r\n }\r\n\r\n const downloadAttachment = (attachment) => {\r\n CorrespondenceService.downloadContractorMessageAttachment(currentRfxRoundId, attachment.identity)\r\n }\r\n\r\n return (\r\n
\r\n\r\n
\r\n
\r\n {unread && \r\n \r\n }\r\n \r\n {Tr(\"answer_date\")}:\r\n \r\n {message.publishDate ? moment(message.publishDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT) : ''}\r\n \r\n \r\n\r\n {message.contents}\r\n\r\n {!!message?.attachments?.length && <>\r\n {Tr('attachment')}\r\n \r\n }/>\r\n }\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nGeneralInfoPublicAnswersMessage.propTypes = {\r\n message: PropTypes.object.isRequired,\r\n currentRfxRoundId: PropTypes.number.isRequired\r\n}\r\n\r\nexport default GeneralInfoPublicAnswersMessage;\r\n","import React, {useContext, useEffect, useState} from 'react'\r\nimport GeneralInfoExpansionPanelTitle from \"./GeneralInfoExpansionPanelTitle\";\r\nimport Tr from \"translations/Translations\";\r\nimport ExpansionPanel from \"components/ExpansionPanel\";\r\nimport DemandOffersGeneralInfoService from \"services/DemandOffersGeneralInfoService\";\r\nimport {withRouter} from \"react-router\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport GeneralInfoPublicAnswersMessage from \"./GeneralInfoPublicAnswersMessage\";\r\nimport PropTypes from \"prop-types\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport {StageSections} from \"../../../../constants/StageSections\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n messagesDiv: {\r\n width: '90%'\r\n }\r\n}));\r\n\r\nfunction GeneralInfoPublicAnswers(\r\n {\r\n match,\r\n panelsClassesObject,\r\n currentRfxRoundId,\r\n generalInfoPublicAnswers,\r\n demandStageSectionsList\r\n }) {\r\n const classes = useStyles();\r\n const [expanded, setExpanded] = useState(false);\r\n const demandId = match.params.id;\r\n const stageId = match.params.stageId;\r\n const purchaserOfferContext = useContext(PurchaserOfferContext);\r\n const unreadAnswers = demandStageSectionsList[StageSections.GENERAL_INFO].unreadRfxMessages;\r\n\r\n useEffect(() => {\r\n if (expanded && generalInfoPublicAnswers === undefined)\r\n DemandOffersGeneralInfoService.getContractorGeneralInfoPublicAnswers(demandId, stageId, purchaserOfferContext?.supplierId);\r\n return () => {\r\n DemandOffersGeneralInfoService.clearResources(DemandOffersGeneralInfoService.GENERAL_INFO_PUBLIC_ANSWERS);\r\n }\r\n // eslint-disable-next-line\r\n }, [expanded])\r\n\r\n\r\n return (\r\n setExpanded(x => !x)}\r\n expanded={expanded}\r\n />\r\n }\r\n expanded={expanded}\r\n onChange={(e, isExpanded) => setExpanded(isExpanded)}\r\n\r\n >\r\n {\r\n !generalInfoPublicAnswers ?\r\n \r\n :\r\n
\r\n {\r\n generalInfoPublicAnswers.map((x, i ) => ())\r\n }\r\n
\r\n\r\n\r\n }\r\n \r\n )\r\n}\r\n\r\nGeneralInfoPublicAnswers.propTypes = {\r\n currentRfxRoundId: PropTypes.number.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n generalInfoPublicAnswers: state.resources[DemandOffersGeneralInfoService.GENERAL_INFO_PUBLIC_ANSWERS],\r\n demandStageSectionsList: state.resources[DemandOffersService.DEMAND_STAGE_SECTIONS_LIST]\r\n}), {})(withRouter(GeneralInfoPublicAnswers));","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET} from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\n\r\nconst DEMAND_STATISTICS_RESOURCE_ID = 'demandStatistics';\r\nconst CURRENT_RFX_RESOURCE_ID = 'currentRfxRound';\r\n\r\nconst clearStats = () => {\r\n reduxStore.dispatch(clearResource(DEMAND_STATISTICS_RESOURCE_ID));\r\n\r\n}\r\n\r\nconst getStats = async (demandId, roundId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.STATISTIC(demandId, roundId));\r\n reduxStore.dispatch(setResource(DEMAND_STATISTICS_RESOURCE_ID, res));\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst clearCurrentRound = () => {\r\n reduxStore.dispatch(clearResource(CURRENT_RFX_RESOURCE_ID));\r\n}\r\n\r\nconst getCurrentRound = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.STATISTIC_CURRENT_ROUND(demandId));\r\n reduxStore.dispatch(setResource(CURRENT_RFX_RESOURCE_ID, res));\r\n return res;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nexport default {\r\n getStats,\r\n clearStats,\r\n getCurrentRound,\r\n clearCurrentRound,\r\n CURRENT_RFX_RESOURCE_ID,\r\n DEMAND_STATISTICS_RESOURCE_ID\r\n}","import React, {useState} from 'react'\r\nimport PropTypes from \"prop-types\";\r\nimport GeneralInfoExpansionPanelTitle from \"./GeneralInfoExpansionPanelTitle\";\r\nimport Tr from \"translations/Translations\";\r\nimport ExpansionPanel from \"components/ExpansionPanel\";\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\nimport moment from \"moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n buttonRow: {\r\n marginTop: theme.spacing(2),\r\n textAlign: \"end\"\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n ipColumn: theme.components.table.ipColumn,\r\n dateColumn: theme.components.table.dateColumn\r\n}));\r\n\r\nfunction GeneralInfoRealizationAmount(\r\n {\r\n panelsClassesObject,\r\n generalInfoBasicData\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [expanded, setExpanded] = useState(false);\r\n\r\n\r\n\r\n return (\r\n (!!generalInfoBasicData.realizationList && generalInfoBasicData.realizationList.length > 0) ?\r\n setExpanded(x => !x)}\r\n expanded={expanded}\r\n />\r\n }\r\n expanded={expanded}\r\n onChange={(e, isExpanded) => setExpanded(isExpanded)}\r\n\r\n >\r\n [\r\n `${Tr('part_x', {x: item.ordinalNumber})}: ${item.name}`,\r\n `${formatAmountNumber(item.value)} PLN`,\r\n item.publishDate ? moment(item.publishDate).format(DateFormats.DATETIME_FORMAT) : ''\r\n ])}\r\n />\r\n \r\n :\r\n null\r\n )\r\n}\r\n\r\nGeneralInfoRealizationAmount.propTypes = {\r\n generalInfoBasicData: PropTypes.object.isRequired\r\n}\r\n\r\nexport default GeneralInfoRealizationAmount;","import React, {useContext, useEffect} from 'react'\r\nimport DemandOffersGeneralInfoService from \"services/DemandOffersGeneralInfoService\";\r\nimport {useParams} from \"react-router\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport GeneralInfoBasicData from \"./components/GeneralInfoBasicData\";\r\nimport {connect} from \"react-redux\";\r\nimport GeneralInfoDocuments from \"./components/GeneralInfoDocuments\";\r\nimport GeneralInfoPublicAnswers from \"./components/GeneralInfoPublicAnswers\";\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport GeneralInfoRealizationAmount from \"./components/GeneralInfoRealizationAmount\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport PropTypes from \"prop-types\";\r\nimport PurchaserOfferContext from \"context/PurchaserOfferContext\";\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport {StageSections} from \"../../../constants/StageSections\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2),\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n },\r\n rootExpanded: {\r\n marginBottom: `${theme.spacing(2)}px !important`\r\n },\r\n title: {\r\n padding: 0,\r\n },\r\n details: {}\r\n}));\r\n\r\n\r\nfunction GeneralInfoPanel(\r\n {\r\n panelRef,\r\n sectionId,\r\n demandHeader,\r\n currentRfxRound,\r\n generalInfoBasicData,\r\n demandStageSectionsList\r\n }) {\r\n\r\n const classes = useStyles();\r\n const params = useParams();\r\n const demandId = params.id;\r\n const stageId = params.stageId;\r\n const section = params.section;\r\n const purchaserOfferContext = useContext(PurchaserOfferContext)\r\n const dataLoading = !generalInfoBasicData || !demandHeader || !currentRfxRound;\r\n useEffect(() => {\r\n if (!dataLoading) {\r\n setTimeout((elem) => scrollTo(elem), 100, panelRef.current);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n , [dataLoading])\r\n\r\n useEffect(() => {\r\n DemandOffersGeneralInfoService.getContractorGeneralInfoBasicData(demandId, stageId, purchaserOfferContext?.supplierId);\r\n StatisticsService.getCurrentRound(demandId);\r\n return () => {\r\n DemandOffersGeneralInfoService.clearResources(DemandOffersGeneralInfoService.GENERAL_INFO_BASIC_DATA);\r\n StatisticsService.clearCurrentRound();\r\n if (demandStageSectionsList[StageSections.GENERAL_INFO]?.unreadDemandDocuments || demandStageSectionsList[StageSections.GENERAL_INFO]?.unreadRfxMessages)\r\n DemandOffersService.getStageSection(demandId, stageId, StageSections.GENERAL_INFO, purchaserOfferContext?.supplierId);\r\n }\r\n // eslint-disable-next-line\r\n }, [demandId, stageId, section])\r\n\r\n\r\n const panelsClassesObject = {root: classes.root, expanded: classes.rootExpanded, title: classes.title, details: classes.details}\r\n\r\n return dataLoading ? :\r\n \r\n \r\n \r\n \r\n \r\n \r\n}\r\n\r\nGeneralInfoPanel.propTypes = {\r\n sectionId: PropTypes.string.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n generalInfoBasicData: state.resources[DemandOffersGeneralInfoService.GENERAL_INFO_BASIC_DATA],\r\n currentRfxRound: state.resources[StatisticsService.CURRENT_RFX_RESOURCE_ID],\r\n demandStageSectionsList: state.resources[DemandOffersService.DEMAND_STAGE_SECTIONS_LIST]\r\n}), {})(GeneralInfoPanel);","import DemandOffersService from \"../services/DemandOffersService\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {setSaveStatusError} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst isResponseValidWithStoredPasswordCheck = (\r\n response, passwordSetSuccessCallback, passwordSetErrorCallback, setErrors, skipShowError) => {\r\n\r\n if (response.success === true) {\r\n return true;\r\n } else {\r\n if (response.noValidPassword) {\r\n DemandOffersService.openContractorPasswordPopup(passwordSetSuccessCallback, passwordSetErrorCallback)\r\n } else if (!skipShowError) {\r\n if (response.errors && response.errors.length > 0)\r\n reduxStore.dispatch(setSaveStatusError(response.errors[0]));\r\n else\r\n reduxStore.dispatch(setSaveStatusError(Tr('bad_request_error')));\r\n }\r\n if (setErrors) {\r\n if(response.hasOwnProperty(\"offerErrors\")) {\r\n setErrors(response.offerErrors);\r\n } else if (!response.noValidPassword) {\r\n setErrors(response.errors);\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nexport default isResponseValidWithStoredPasswordCheck;","import React from 'react'\r\nimport {Avatar, makeStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport PriorityHighIcon from '@material-ui/icons/PriorityHigh'\r\nimport DoneIcon from '@material-ui/icons/Done'\r\nimport PlaylistAddIcon from '@material-ui/icons/PlaylistAdd';\r\nimport HourglassFullIcon from '@material-ui/icons/HourglassFull';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n Done: {backgroundColor: theme.palette.common.success},\r\n Finished: {backgroundColor: theme.palette.common.success},\r\n Required: {backgroundColor: theme.palette.common.error},\r\n Optional: {backgroundColor: theme.palette.common.info},\r\n Pending: {backgroundColor: theme.palette.common.info},\r\n Progress: {backgroundColor: theme.palette.common.info},\r\n Wait: {backgroundColor: theme.palette.action.disabled},\r\n avatar: {\r\n width: 30,\r\n height: 30,\r\n marginRight: theme.spacing(2)\r\n }\r\n}))\r\n\r\nconst icoTab = {\r\n Required: PriorityHighIcon,\r\n Done: DoneIcon,\r\n Optional: PlaylistAddIcon,\r\n Wait: HourglassFullIcon,\r\n Finished: CheckCircleIcon,\r\n Progress: EditIcon\r\n}\r\n\r\nexport const AvatarStatus = {\r\n Required: \"Required\",\r\n Done: \"Done\",\r\n Optional: \"Optional\",\r\n Wait: \"Wait\",\r\n Finished: \"Finished\",\r\n Progress: \"Progress\"\r\n}\r\n\r\nfunction ExpansionPanelTitleAvatar(\r\n {\r\n variant,\r\n title\r\n }) {\r\n const classes = useStyle();\r\n\r\n const Icon = icoTab[variant];\r\n const className = classes[variant];\r\n\r\n return ({Icon && })\r\n\r\n}\r\n\r\nExpansionPanelTitleAvatar.propTypes = {\r\n variant: PropTypes.oneOf(Object.keys(AvatarStatus)).isRequired,\r\n title: PropTypes.string\r\n}\r\n\r\nexport default ExpansionPanelTitleAvatar;","export const OfferMode = {\r\n EDIT: \"EDIT\",\r\n PLACED: \"PLACED\"\r\n}\r\n","import {AvatarStatus} from \"components/ExpansionPanelTitleAvatar\";\r\nimport {OfferMode} from \"./OfferMode\";\r\n\r\nexport const OfferPositionStatusType = {\r\n NO_OFFER: \"NO_OFFER\", //nieb\r\n INCOMPLETE: \"INCOMPLETE\", //dotkniety - nieskończony\r\n COMPLETED: \"COMPLETED\", //wypełniony - nieskończony\r\n PLACED: \"PLACED\", //złożony\r\n PLACED_INCOMPLETE: \"PLACED_INCOMPLETE\", //dotkniety - nieskończony\r\n PLACED_COMPLETED: \"PLACED_COMPLETED\", //wypełniony - nieskończony\r\n PLACED_OUT_OF_DATE: \"PLACED_OUT_OF_DATE\", //złożony - nieaktualny\r\n WITHDRAWN: \"WITHDRAWN\", //ziel\r\n WAITING_SIGNATURE: \"WAITING_SIGNATURE\", //ziel\r\n WAITING_WITHDRAW_SIGNATURE: \"WAITING_WITHDRAW_SIGNATURE\", //ziel\r\n WAITING_ADDITIONAL_OFFERS: \"WAITING_ADDITIONAL_OFFERS\" //ziel\r\n}\r\n\r\nexport const OfferPositionStatusToAvatar = (status, mode) => {\r\n switch (status) {\r\n case OfferPositionStatusType.NO_OFFER:\r\n return AvatarStatus.Optional;\r\n case OfferPositionStatusType.INCOMPLETE:\r\n return AvatarStatus.Progress;\r\n case OfferPositionStatusType.COMPLETED:\r\n return AvatarStatus.Finished;\r\n case OfferPositionStatusType.PLACED:\r\n return AvatarStatus.Done;\r\n case OfferPositionStatusType.PLACED_INCOMPLETE:\r\n return AvatarStatus.Progress;\r\n case OfferPositionStatusType.PLACED_COMPLETED:\r\n return mode === OfferMode.PLACED ? AvatarStatus.Done : AvatarStatus.Finished;\r\n case OfferPositionStatusType.PLACED_OUT_OF_DATE:\r\n return mode === OfferMode.PLACED ? AvatarStatus.Finished : AvatarStatus.Required;\r\n case OfferPositionStatusType.WITHDRAWN:\r\n return AvatarStatus.Finished;\r\n case OfferPositionStatusType.WAITING_SIGNATURE:\r\n return AvatarStatus.Finished;\r\n case OfferPositionStatusType.WAITING_WITHDRAW_SIGNATURE:\r\n return AvatarStatus.Done;\r\n case OfferPositionStatusType.WAITING_ADDITIONAL_OFFERS:\r\n return AvatarStatus.Finished;\r\n default:\r\n return AvatarStatus.Wait;\r\n\r\n }\r\n}\r\n\r\nexport const OfferPositionStatusesReadyToOffering = [OfferPositionStatusType.COMPLETED, OfferPositionStatusType.PLACED_COMPLETED, OfferPositionStatusType.WITHDRAWN]\r\nexport const OfferPositionStatusesReadyToOfferSign = [OfferPositionStatusType.WAITING_SIGNATURE]\r\nexport const OfferPositionStatusesReadyToWithdraw = [OfferPositionStatusType.PLACED, OfferPositionStatusType.PLACED_COMPLETED, OfferPositionStatusType.PLACED_INCOMPLETE]\r\nexport const OfferPositionStatusesReadyToWithdrawSign = [OfferPositionStatusType.WAITING_WITHDRAW_SIGNATURE]\r\nexport const OfferPositionStatusesReadyToDelete = [OfferPositionStatusType.INCOMPLETE, OfferPositionStatusType.COMPLETED]\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const SignatureType = {\r\n QUALIFIED: \"QUALIFIED\",\r\n PERSONAL_ID: \"PERSONAL_ID\",\r\n E_PUAP: \"E_PUAP\",\r\n UNKNOWN: \"UNKNOWN\"\r\n}\r\nconst _TR_PREFIX = 'signature_type_';\r\n\r\nexport const SignatureTypeLabel = (priceType) => (Tr(_TR_PREFIX + priceType.toLowerCase()));\r\n","export const OfferStatusType = {\r\n NORMAL: \"NORMAL\",\r\n WAITING_SIGNATURE: \"WAITING_SIGNATURE\",\r\n WAITING_WITHDRAW_SIGNATURE: \"WAITING_WITHDRAW_SIGNATURE\"\r\n}\r\n","import reduxStore from 'redux/store'\r\nimport {clearResource, setResource, setSaveStatusError, setSaveStatusInfo} from \"../redux/actions\";\r\nimport {RestRequestBLOB, RestRequestBLOBBase64Encoded, RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from \"../libs/RestRequest\";\r\nimport Endpoints from \"../constants/Endpoints\";\r\nimport RouterPath from \"../libs/RouterPath\";\r\nimport Tr from \"../translations/Translations\";\r\nimport isResponseValidWithStoredPasswordCheck from \"../libs/isResponseValidWithStoredPasswordCheck\";\r\nimport downloadFile from \"../libs/downloadFile\";\r\nimport {OfferPositionStatusType} from \"../pages/contractor/demand/scenes/offer/components/common/constants/OfferPositionStatusType\";\r\nimport {SignatureType} from \"../constants/SignatureType\";\r\nimport {OfferStatusType} from \"../pages/contractor/demand/scenes/offer/components/common/constants/OfferStatusType\";\r\nimport DemandOffersService from \"./DemandOffersService\";\r\nimport {StageSections} from \"../pages/contractor/demand/scenes/offer/constants/StageSections\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport saveStatusValues from \"../constants/status.save\";\r\nimport {OfferMode} from \"../pages/contractor/demand/scenes/offer/components/common/constants/OfferMode\";\r\n\r\n\r\nconst OFFER_EDIT = \"offerEdit\";\r\nconst OFFER_PLACED = \"offerPlaced\";\r\nconst OFFER_POSITIONS_LOADED = \"offerPositionsLoaded\";\r\n\r\nconst postSaveCommonData = async (demandId, stageId, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_STAGE_CONTRACTOR_OFFER(demandId, stageId, supplierId), data, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => postSaveCommonData(demandId, stageId, supplierId, data),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n reduxStore.dispatch(setResource(OFFER_EDIT, {...resources[OFFER_EDIT], commonData: resp.result}))\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst postSavePositionData = async (demandId, stageId, supplierId, mode, data) => {\r\n let errors;\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_POSITION(demandId, stageId, supplierId), data, {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => postSavePositionData(demandId, stageId, supplierId, mode, data),\r\n () => defErrorCallback(demandId, stageId, supplierId),\r\n (err) => {\r\n errors = err;\r\n }, true\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n const loaded = resources[OFFER_POSITIONS_LOADED] || {};\r\n const newLoaded = {\r\n ...loaded,\r\n [getLoadedPositionKey(data.positionId)]: {\r\n ...data,\r\n placingType: null\r\n }\r\n //[getPositionKey(positionId)]: {...resp.result, priceType: PriceType.NET_GROSS, criteriums: resp.result.criteriums.map(x => ({...x, vatType: \"OTHER\", vatValue: 7, currency: \"PLN\"}))}\r\n }\r\n reduxStore.dispatch(setResource(OFFER_POSITIONS_LOADED, newLoaded))\r\n\r\n let filesResp = null;\r\n if (data.placingType) {\r\n filesResp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_FILES(demandId, stageId, mode, supplierId), {params});\r\n }\r\n\r\n const curEdit = resources[OFFER_EDIT];\r\n\r\n const edit = {\r\n ...curEdit,\r\n positions: curEdit.positions.map(x => x.positionId === resp.result.positionId ? resp.result : x)\r\n }\r\n\r\n if (filesResp?.success) {\r\n edit.offerFiles = filesResp.result;\r\n }\r\n\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n await DemandOffersService.getStageSection(demandId, stageId, StageSections.OFFER_EDIT, supplierId);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n if (saveStatusValues.CLOSED === reduxStore.getState().store.saveStatus)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n if (Array.isArray(errors)) {\r\n if (errors.length > 0) {\r\n if (typeof errors[0] === 'string' || errors[0] instanceof String) {\r\n reduxStore.dispatch(setSaveStatusError(errors[0]))\r\n }\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n }\r\n return errors;\r\n}\r\n\r\nconst signEspdFile = async (demandId, stageId, fileId, data) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_ESPD_ID_SIGN_FILE(demandId, stageId, fileId), data);\r\n\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n await _processAddNewEspdFiles(demandId, stageId, undefined, resp);\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\n\r\nconst postOfferEspdFiles = async (demandId, stageId, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_ESPD(demandId, stageId, supplierId), {files: data}, {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => postOfferEspdFiles(demandId, stageId, supplierId, data),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n _processAddNewEspdFiles(demandId, stageId, supplierId, resp)\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\n\r\nconst _processAddNewEspdFiles = async (demandId, stageId, supplierId, resp) => {\r\n const {resources} = reduxStore.getState();\r\n const curEdit = resources[OFFER_EDIT];\r\n const touchedPositions = resp.result.map(x => x.positionId);\r\n\r\n const tmpEspdFiles = curEdit.espdFiles.map(of => {\r\n const updatedOf = resp.result.find(x => x.identity === of.identity);\r\n return updatedOf ? updatedOf : of;\r\n });\r\n resp.result.forEach(x => {\r\n if (!curEdit.espdFiles.find(o => o.identity === x.identity))\r\n tmpEspdFiles.push(x);\r\n });\r\n\r\n const edit = {\r\n ...curEdit,\r\n espdFiles: [\r\n ...tmpEspdFiles\r\n ],\r\n positions: curEdit.positions.map(x => touchedPositions.includes(x.positionId) && x.status === OfferPositionStatusType.NO_OFFER ? {\r\n ...x,\r\n status: OfferPositionStatusType.INCOMPLETE\r\n } : x)\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n await DemandOffersService.getStageSection(demandId, stageId, StageSections.OFFER_EDIT, supplierId);\r\n\r\n}\r\n\r\n\r\n\r\n\r\nconst placeOffer = async (demandId, stageId, supplierId, onePositionMode, data, stageTr) => {\r\n\r\n const params = {supplierId}\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_PLACE_OFFER(demandId, stageId, supplierId), data, {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => placeOffer(demandId, stageId, supplierId, onePositionMode, data, stageTr),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n if (resp.result.status === OfferStatusType.NORMAL)\r\n reduxStore.dispatch(setSaveStatusInfo(supplierId ? stageTr(\"offer_placed_successfully_operator\") : (onePositionMode ? stageTr(\"offer_placed_successfully\") :\r\n stageTr(\"offer_placed_successfully_on_parts_x\") + \": \" + resp.result.positions.map(x => x.order).join(\", \"))));\r\n else if (resp.result.status === OfferStatusType.WAITING_SIGNATURE)\r\n reduxStore.dispatch(setSaveStatusInfo(stageTr(\"offer_waiting_for_signatures_x\") + \": \" + resp.result.missingSignatures));\r\n await DemandOffersService.getStageSections(demandId, stageId, supplierId)\r\n defErrorCallback(demandId, stageId, supplierId);\r\n }\r\n\r\n}\r\nconst verifyBeforePlaceOffer = async (demandId, stageId, supplierId, positionIds) => {\r\n const params = {positionIds: positionIds ? positionIds.join(\",\") : undefined}\r\n return await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_VERIFICATION_BEFORE_PLACE(demandId, stageId, supplierId), {params});\r\n}\r\n\r\nconst getPreviewSection = async (demandId, stageId, supplierId, mode) => {\r\n return await RestRequestGET(Endpoints.DEMAND_PREVIEW_OFFER_MODE_SECTION(demandId, stageId, supplierId, mode));\r\n}\r\n\r\nconst deleteOffer = async (demandId, stageId, positionIds, stageTr) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_DELETE_OFFER(demandId, stageId), {list: positionIds});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => deleteOffer(demandId, stageId, positionIds, stageTr),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n await DemandOffersService.getStageSection(demandId, stageId, StageSections.OFFER_EDIT, null);\r\n defErrorCallback(demandId, stageId);\r\n reduxStore.dispatch(setSaveStatusInfo(stageTr(\"delete_offer_success\")));\r\n }\r\n}\r\n\r\nconst withdrawOffer = async (demandId, stageId, data, onePositionMode, stageTr) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_WITHDRAW_OFFER(demandId, stageId), data);\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => withdrawOffer(demandId, stageId, data, onePositionMode, stageTr),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n if (resp.result.status === OfferStatusType.NORMAL)\r\n reduxStore.dispatch(setSaveStatusInfo(onePositionMode ? stageTr(\"offer_withdrawn_successfully\") :\r\n stageTr(\"offer_withdrawn_successfully_on_parts_x\") + \": \" + resp.result.positions.map(x => x.order).join(\", \")));\r\n else if (resp.result.status === OfferStatusType.WAITING_WITHDRAW_SIGNATURE)\r\n reduxStore.dispatch(setSaveStatusInfo(stageTr(\"offer_withdrawn_waiting_for_signatures_x\") + \": \" + resp.result.missingSignatures));\r\n await DemandOffersService.getStageSections(demandId, stageId)\r\n defErrorCallback(demandId, stageId);\r\n }\r\n}\r\n\r\nconst signOffer = async (demandId, stageId, data, onePositionMode, stageTr) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_SIGN_OFFER(demandId, stageId), data);\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => signOffer(demandId, stageId, data, onePositionMode, stageTr),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n\r\n if (resp.result.status === OfferStatusType.NORMAL)\r\n reduxStore.dispatch(setSaveStatusInfo(onePositionMode ? stageTr(\"offer_placed_successfully\") :\r\n stageTr(\"offer_placed_successfully_on_parts_x\") + \": \" + resp.result.positions.map(x => x.order).join(\", \")));\r\n else if (resp.result.status === OfferStatusType.WAITING_SIGNATURE)\r\n reduxStore.dispatch(setSaveStatusInfo(stageTr(\"offer_waiting_for_signatures_x\") + \": \" + resp.result.missingSignatures));\r\n\r\n await DemandOffersService.getStageSections(demandId, stageId)\r\n defErrorCallback(demandId, stageId);\r\n }\r\n}\r\n\r\nconst signWithdraw = async (demandId, stageId, data, onePositionMode, stageTr) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_SIGN_WITHDRAW(demandId, stageId), data);\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => signWithdraw(demandId, stageId, data, onePositionMode, stageTr),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n if (resp.result.status === OfferStatusType.NORMAL)\r\n reduxStore.dispatch(setSaveStatusInfo(onePositionMode ? stageTr(\"offer_withdrawn_successfully\") :\r\n stageTr(\"offer_withdrawn_successfully_on_parts_x\") + \": \" + resp.result.positions.map(x => x.order).join(\", \")));\r\n else if (resp.result.status === OfferStatusType.WAITING_SIGNATURE)\r\n reduxStore.dispatch(setSaveStatusInfo(stageTr(\"offer_withdrawn_waiting_for_signatures_x\") + \": \" + resp.result.missingSignatures));\r\n await DemandOffersService.getStageSections(demandId, stageId)\r\n defErrorCallback(demandId, stageId);\r\n }\r\n}\r\n\r\nconst stopSigningOperation = async (demandId, stageId) => {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_STOP_SIGNING_OPERATION(demandId, stageId));\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => stopSigningOperation(demandId, stageId),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n await DemandOffersService.getStageSections(demandId, stageId)\r\n defErrorCallback(demandId, stageId);\r\n }\r\n}\r\n\r\nconst getDocumentToSign = async (demandId, stageId, data) => {\r\n try {\r\n if (data.signatureType === SignatureType.QUALIFIED || data.signatureType === SignatureType.PERSONAL_ID) {\r\n let resp = await RestRequestBLOBBase64Encoded(Endpoints.DEMAND_OFFERS_OFFER_DOC_TO_SIGN(demandId, stageId), {data, method: 'post'})\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => {\r\n },\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n } else {\r\n const resp = await RestRequestBLOB(Endpoints.DEMAND_OFFERS_OFFER_DOC_TO_SIGN(demandId, stageId), {data, method: 'post'})\r\n\r\n if (resp && isResponseValidWithStoredPasswordCheck(resp,\r\n () => getDocumentToSign(demandId, stageId, data),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n}\r\n\r\nconst getDocumentBase64EncodedToSignDocument = async (url) => {\r\n try {\r\n let resp = await RestRequestBLOBBase64Encoded(url, {method: 'get'})\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => void 0,\r\n () => void 0\r\n )) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n}\r\n\r\nconst getDocumentToWithdraw = async (demandId, stageId, data) => {\r\n try {\r\n if (data.signatureType === SignatureType.QUALIFIED || data.signatureType === SignatureType.PERSONAL_ID) {\r\n let resp = await RestRequestBLOBBase64Encoded(Endpoints.DEMAND_OFFERS_OFFER_WITHDRAW_DOC_TO_SIGN(demandId, stageId), {\r\n data,\r\n method: 'post'\r\n })\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => {\r\n },\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n } else {\r\n const resp = await RestRequestBLOB(Endpoints.DEMAND_OFFERS_OFFER_WITHDRAW_DOC_TO_SIGN(demandId, stageId), {data, method: 'post'})\r\n\r\n if (resp && isResponseValidWithStoredPasswordCheck(resp,\r\n () => getDocumentToSign(demandId, stageId, data),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n}\r\n\r\nconst getDownloadOfferFileUrl = async (demandId, stageId, mode, fileId, supplierId) => {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_FILE_DOWNLOAD_URL(demandId, stageId, mode, fileId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => {\r\n },\r\n () => {\r\n }\r\n )) {\r\n return resp.result;\r\n }\r\n}\r\n\r\nconst getDownloadOfferFile = async (demandId, stageId, mode, fileId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_FILE_DOWNLOAD_URL(demandId, stageId, mode, fileId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => getDownloadOfferFile(demandId, stageId, mode, fileId, supplierId),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n downloadFile({url: resp.result})\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getDownloadOfferFilesZip = async (demandId, stageId, supplierId) => {\r\n const params = {supplierId}\r\n await RestRequestBLOB(Endpoints.DEMAND_OFFERS_OFFER_MODE_FILE_DOWNLOAD_ZIP(demandId, stageId, supplierId), {params});\r\n}\r\n\r\nconst getDownloadEspdFileUrl = async (demandId, stageId, mode, fileId, supplierId) => {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_ESPD_DOWNLOAD_URL(demandId, stageId, mode, fileId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => {\r\n },\r\n () => {\r\n }\r\n )) {\r\n return resp.result;\r\n }\r\n}\r\n\r\nconst getDownloadEspdFile = async (demandId, stageId, mode, fileId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_ESPD_DOWNLOAD_URL(demandId, stageId, mode, fileId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => getDownloadEspdFile(demandId, stageId, mode, fileId, supplierId),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n downloadFile({url: resp.result})\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst signFile = async (demandId, stageId, fileId, data) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_FILE_ID_SIGN_FILE(demandId, stageId, fileId), data);\r\n\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n await _processAddNewFiles(demandId, stageId, OfferMode.EDIT, undefined, resp);\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst postOfferFiles = async (demandId, stageId, mode, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_FILE(demandId, stageId, supplierId), {files: data}, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => postOfferFiles(demandId, stageId, mode, supplierId, data),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n await _processAddNewFiles(demandId, stageId, mode, supplierId, resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst _processAddNewFiles = async (demandId, stageId, mode, supplierId, resp) => {\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[OFFER_EDIT];\r\n\r\n let touchedPositions;\r\n\r\n if (curEdit.passiveOfferForm) {\r\n touchedPositions = [curEdit.positions[0].positionId]\r\n } else {\r\n touchedPositions = [...new Set(resp.result.filter(x => !!x.positionId).map(x => x.positionId))];\r\n }\r\n\r\n let positions = [];\r\n if (touchedPositions.length > 0) {\r\n const params = {\r\n positionIds: touchedPositions.join(\",\"),\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n positions = resp.result;\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[OFFER_EDIT];\r\n }\r\n\r\n const tmpOfferFiles = curEdit.offerFiles.map(of => {\r\n const updatedOf = resp.result.find(x => x.identity === of.identity);\r\n return updatedOf ? updatedOf : of;\r\n });\r\n resp.result.forEach(x => {\r\n if (!curEdit.offerFiles.find(o => o.identity === x.identity))\r\n tmpOfferFiles.push(x);\r\n });\r\n const edit = {\r\n ...curEdit,\r\n offerFiles: [\r\n ...tmpOfferFiles\r\n ],\r\n positions: curEdit.positions.map(x => {\r\n const pos = positions.find(p => p.positionId === x.positionId);\r\n return pos ? pos : x;\r\n })\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n await DemandOffersService.getStageSection(demandId, stageId, StageSections.OFFER_EDIT, supplierId);\r\n}\r\n\r\nconst deleteOfferFile = async (demandId, stageId, mode, supplierId, fileId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestDELETE(Endpoints.DEMAND_OFFERS_OFFER_FILE_ID(demandId, stageId, fileId, supplierId), {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => deleteOfferFile(demandId, stageId, mode, supplierId, fileId),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[OFFER_EDIT];\r\n\r\n let positionId;\r\n if (curEdit.passiveOfferForm) {\r\n positionId = curEdit.positions[0].positionId;\r\n } else {\r\n const file = curEdit.offerFiles.find(x => x.identity === fileId);\r\n if (file) {\r\n positionId = file.positionId;\r\n }\r\n }\r\n\r\n let position;\r\n if (positionId) {\r\n const params = {\r\n positionIds: positionId,\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n position = resp.result[0];\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[OFFER_EDIT];\r\n }\r\n\r\n let tmpOfferFiles = curEdit.offerFiles.filter(x => x.identity !== fileId);\r\n if (!!resp.result) {\r\n tmpOfferFiles = tmpOfferFiles.map(x => {\r\n return x.identity === resp.result.identity ? resp.result : x;\r\n })\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n offerFiles: tmpOfferFiles,\r\n positions: curEdit.positions.map(x => position && position.identity === x.identity ? position : x)\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n await DemandOffersService.getStageSection(demandId, stageId, StageSections.OFFER_EDIT, supplierId);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\n\r\nconst editEspdFile = async (demandId, stageId, espdId, mode, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPUT(Endpoints.DEMAND_OFFERS_OFFER_ESPD_ID(demandId, stageId, espdId, supplierId), data, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => editEspdFile(demandId, stageId, espdId, mode, supplierId, data),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[OFFER_EDIT];\r\n\r\n let positionId;\r\n if (curEdit.passiveOfferForm) {\r\n positionId = curEdit.positions[0].positionId;\r\n } else {\r\n const file = curEdit.offerFiles.find(x => x.identity === espdId);\r\n if (file) {\r\n positionId = file.positionId;\r\n }\r\n }\r\n\r\n let position;\r\n if (positionId) {\r\n const params = {\r\n positionIds: positionId,\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n position = resp.result[0];\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[OFFER_EDIT];\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n espdFiles: curEdit.espdFiles.map(x => x.identity === resp.result.identity ? resp.result : x),\r\n positions: curEdit.positions.map(x => position && position.identity === x.identity ? position : x)\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst editEspdFiles = async (demandId, stageId, mode, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPUT(Endpoints.DEMAND_OFFERS_OFFER_ESPDS(demandId, stageId, supplierId), data, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => editEspdFiles(demandId, stageId, mode, supplierId, data),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[OFFER_EDIT];\r\n\r\n let touchedPositions;\r\n\r\n if (curEdit.passiveOfferForm) {\r\n touchedPositions = [curEdit.positions[0].positionId]\r\n } else {\r\n touchedPositions = [...new Set(resp.result.filter(x => !!x.positionId).map(x => x.positionId))];\r\n }\r\n\r\n let positions = [];\r\n if (touchedPositions.length > 0) {\r\n const params = {\r\n positionIds: touchedPositions.join(\",\"),\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n positions = resp.result;\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[OFFER_EDIT];\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n espdFiles: curEdit.espdFiles.map(x => resp.result.find(y => y.identity === x.identity) || x),\r\n positions: curEdit.positions.map(x => {\r\n const pos = positions.find(p => p.positionId === x.positionId);\r\n return pos ? pos : x;\r\n })\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst deleteEspdFile = async (demandId, stageId, espdId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestDELETE(Endpoints.DEMAND_OFFERS_OFFER_ESPD_ID(demandId, stageId, espdId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => deleteEspdFile(demandId, stageId, espdId, supplierId),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n const curEdit = resources[OFFER_EDIT];\r\n\r\n let tmpOfferFiles = curEdit.espdFiles.filter(x => x.identity !== espdId);\r\n if (!!resp.result) {\r\n tmpOfferFiles = tmpOfferFiles.map(x => {\r\n return x.identity === resp.result.identity ? resp.result : x;\r\n })\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n espdFiles: tmpOfferFiles\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst editOfferFile = async (demandId, stageId, fileId, mode, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPUT(Endpoints.DEMAND_OFFERS_OFFER_FILE_ID(demandId, stageId, fileId, supplierId), data, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => editOfferFile(demandId, stageId, fileId, mode, supplierId, data),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[OFFER_EDIT];\r\n\r\n let positionId;\r\n if (curEdit.passiveOfferForm) {\r\n positionId = curEdit.positions[0].positionId;\r\n } else {\r\n const file = curEdit.offerFiles.find(x => x.identity === fileId);\r\n if (file) {\r\n positionId = file.positionId;\r\n }\r\n }\r\n\r\n let position;\r\n if (positionId) {\r\n const params = {\r\n positionIds: positionId,\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n position = resp.result[0];\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[OFFER_EDIT];\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n offerFiles: curEdit.offerFiles.map(x => x.identity === resp.result.identity ? resp.result : x),\r\n positions: curEdit.positions.map(x => position && position.identity === x.identity ? position : x)\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\nconst editOfferFiles = async (demandId, stageId, mode, supplierId, data) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestPUT(Endpoints.DEMAND_OFFERS_OFFER_FILES(demandId, stageId, supplierId), data, {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => editOfferFiles(demandId, stageId, mode, supplierId, data),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n let curEdit = resources[OFFER_EDIT];\r\n\r\n let touchedPositions;\r\n\r\n if (curEdit.passiveOfferForm) {\r\n touchedPositions = [curEdit.positions[0].positionId]\r\n } else {\r\n touchedPositions = [...new Set(resp.result.filter(x => !!x.positionId).map(x => x.positionId))];\r\n }\r\n\r\n let positions = [];\r\n if (touchedPositions.length > 0) {\r\n const params = {\r\n positionIds: touchedPositions.join(\",\"),\r\n supplierId\r\n }\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_MODE_POSITIONS(demandId, stageId, mode, supplierId), {params});\r\n if (resp.success) {\r\n positions = resp.result;\r\n }\r\n //odświeżam reduxa bo mogło się pozmieniać\r\n curEdit = resources[OFFER_EDIT];\r\n }\r\n\r\n const edit = {\r\n ...curEdit,\r\n offerFiles: curEdit.offerFiles.map(x => resp.result.find(y => y.identity === x.identity) || x),\r\n positions: curEdit.positions.map(x => {\r\n const pos = positions.find(p => p.positionId === x.positionId);\r\n return pos ? pos : x;\r\n })\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EDIT, edit));\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getOfferEdit = async (demandId, stageId, mode, supplierId, preview) => {\r\n try {\r\n const params = {supplierId}\r\n const endpoint = preview ? Endpoints.DEMAND_PREVIEW_OFFER_MODE : Endpoints.DEMAND_OFFERS_OFFER_MODE\r\n\r\n const resp = await RestRequestGET(endpoint(demandId, stageId, supplierId, mode), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => getOfferEdit(demandId, stageId, mode, supplierId, preview),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n reduxStore.dispatch(setResource(OFFER_EDIT, resp.result))\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getOfferPosition = async (demandId, stageId, mode, positionId, supplierId, preview) => {\r\n try {\r\n const params = {supplierId}\r\n const endpoint = preview ? Endpoints.DEMAND_PREVIEW_OFFER_MODE_POSITION_ID : Endpoints.DEMAND_OFFERS_OFFER_MODE_POSITION_ID;\r\n\r\n const resp = await RestRequestGET(endpoint(demandId, stageId, mode, positionId, supplierId), {params});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => getOfferPosition(demandId, stageId, mode, positionId, supplierId, preview),\r\n () => defErrorCallback(demandId, stageId, supplierId)\r\n )) {\r\n const {resources} = reduxStore.getState();\r\n const loaded = resources[OFFER_POSITIONS_LOADED] || {};\r\n\r\n const newLoaded = {\r\n ...loaded,\r\n [getLoadedPositionKey(positionId)]: resp.result\r\n //[getPositionKey(positionId)]: {...resp.result, priceType: PriceType.NET_GROSS, criteriums: resp.result.criteriums.map(x => ({...x, vatType: \"OTHER\", vatValue: 7, currency: \"PLN\"}))}\r\n }\r\n\r\n reduxStore.dispatch(setResource(OFFER_POSITIONS_LOADED, newLoaded))\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\nconst printOfferPosition = async (demandId, stageId, mode, positionId, supplierId, preview) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_PREVIEW_OFFER_MODE_POSITION_ID_PRINT(demandId, stageId, mode, positionId, supplierId), {params});\r\n if (isResponseValid(resp, (e) => {throw new Error(e)})\r\n ) {\r\n downloadFile({url: resp.result})\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst requireWithdrawEncryption = async (demandId, stageId, positionIds) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.DEMAND_OFFERS_OFFER_REQUIRE_WITHDRAW_ENCRYPTION(demandId, stageId), {positionIds});\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => defErrorCallback(demandId, stageId),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\n\r\nconst redirectContractorESPDMpAppUrl = async (demandId, stageId, positionId) => {\r\n try {\r\n const params = positionId ? {positionId} : {};\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_ESPD_MP_APP_URL(demandId, stageId), {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => redirectContractorESPDMpAppUrl(demandId, stageId, positionId),\r\n () => defErrorCallback(demandId, stageId))\r\n ) {\r\n const resp2 = await RestRequestGET(resp.result);\r\n if (resp2.code === 'ok') {\r\n window.location.href = resp2.url;\r\n } else\r\n throw new Error(resp2);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst downloadContractorESPDExportFile = async (demandId, stageId, positionId) => {\r\n\r\n try {\r\n const params = positionId ? {positionId} : {};\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_ESPD_EXPORT_FILE_URL(demandId, stageId), {params});\r\n\r\n if (isResponseValidWithStoredPasswordCheck(resp,\r\n () => downloadContractorESPDExportFile(demandId, stageId, positionId),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n await RestRequestBLOB(resp.result);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst getSnapshots = async (demandId, stageId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_SNAPSHOTS(demandId, stageId, supplierId), {params});\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst downloadSnapshot = async (demandId, stageId, snapshotId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestBLOB(Endpoints.DEMAND_OFFERS_OFFER_SNAPSHOT_ID(demandId, stageId, snapshotId, supplierId), {params});\r\n\r\n if (resp && isResponseValidWithStoredPasswordCheck(resp,\r\n () => downloadSnapshot(demandId, stageId, snapshotId, supplierId),\r\n () => defErrorCallback(demandId, stageId)\r\n )) {\r\n return resp.result;\r\n }\r\n return true;\r\n\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\n\r\nconst getVerifications = async (demandId, stageId, supplierId) => {\r\n try {\r\n const params = {supplierId}\r\n const resp = await RestRequestGET(Endpoints.DEMAND_OFFERS_OFFER_VERIFICATIONS(demandId, stageId, supplierId), {params});\r\n if (isResponseValid(resp, (e) => {\r\n throw new Error(e)\r\n })) {\r\n return resp.result;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\n\r\nconst downloadVerifications = async (demandId, stageId, supplierId, positionIds) => {\r\n const data = {\r\n list: positionIds\r\n }\r\n const params = {supplierId}\r\n await RestRequestBLOB(Endpoints.DEMAND_OFFERS_OFFER_VERIFICATIONS(demandId, stageId, supplierId), {data, params, method: 'post'})\r\n}\r\n\r\nconst getDownloadOfferTemplate = async (demandId, stageId, supplierId, mode) => {\r\n const params = {supplierId}\r\n await RestRequestBLOB(Endpoints.DEMAND_OFFERS_OFFER_MODE_TEMPLATE(demandId, stageId, mode, supplierId), {params});\r\n}\r\n\r\nconst defErrorCallback = (demandId, stageId, supplierId) => {\r\n if (supplierId) {\r\n const {resources} = reduxStore.getState()\r\n if (resources[DemandOffersService.DEMAND_STAGES_LIST]) {\r\n const stage = resources[DemandOffersService.DEMAND_STAGES_LIST].find(x => x.supplierId === supplierId);\r\n if (stage?.contractorDepartmentId) {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.purchaserDemand.PURCHASER_DEMAND_ID_OFFER_CONTRACTOR_ID_STAGE_ID, {\r\n id: demandId,\r\n contractorDepartmentId: stage.contractorDepartmentId,\r\n stageId\r\n }));\r\n }\r\n }\r\n } else {\r\n RouterPath.redirectWithoutHistory(RouterPath.createPath(RouterPath.ctrDemand.steps.CTR_DEMAND_ID_OFFER_STAGE_ID, {\r\n id: demandId,\r\n stageId\r\n }));\r\n }\r\n\r\n\r\n}\r\n\r\nconst clearResources = (resId) => reduxStore.dispatch(clearResource(resId));\r\n\r\n//jeśli ID jest liczbą potrafią różne dziwne rzeczy się dziać\r\nconst getLoadedPositionKey = (positionId) => \"_\" + positionId;\r\n\r\nexport default {\r\n getLoadedPositionKey,\r\n getOfferEdit,\r\n postSaveCommonData,\r\n getDownloadOfferFile,\r\n getDownloadOfferFileUrl,\r\n getDownloadOfferFilesZip,\r\n postOfferFiles,\r\n deleteOfferFile,\r\n editOfferFile,\r\n signFile,\r\n editOfferFiles,\r\n redirectContractorESPDMpAppUrl,\r\n downloadContractorESPDExportFile,\r\n signEspdFile,\r\n postOfferEspdFiles,\r\n editEspdFile,\r\n editEspdFiles,\r\n deleteEspdFile,\r\n getDownloadEspdFileUrl,\r\n getDownloadEspdFile,\r\n getOfferPosition,\r\n printOfferPosition,\r\n postSavePositionData,\r\n placeOffer,\r\n withdrawOffer,\r\n signOffer,\r\n signWithdraw,\r\n getDocumentToSign,\r\n getDocumentBase64EncodedToSignDocument,\r\n getDocumentToWithdraw,\r\n stopSigningOperation,\r\n clearResources,\r\n requireWithdrawEncryption,\r\n deleteOffer,\r\n getSnapshots,\r\n downloadSnapshot,\r\n getVerifications,\r\n downloadVerifications,\r\n verifyBeforePlaceOffer,\r\n getPreviewSection,\r\n getDownloadOfferTemplate,\r\n OFFER_EDIT,\r\n OFFER_PLACED,\r\n OFFER_POSITIONS_LOADED\r\n}","import Tr from 'translations/Translations';\r\nimport {createSelectItem} from \"../components/Select\";\r\n\r\nexport const ContractorDocumentType = {\r\n PUBLIC: \"PUBLIC\",\r\n SECRET: \"SECRET\",\r\n RODO: \"RODO\"\r\n}\r\n\r\nexport const ContractorDocumentTypeSelectItems = (curVal) => Object.values(ContractorDocumentType)\r\n .filter((type) => type !== ContractorDocumentType.RODO || curVal === ContractorDocumentType.RODO).map(x => createSelectItem(x, ContractorDocumentTypeLabel(x)));\r\n\r\n\r\nconst _TR_PREFIX = 'contractor_document_type_';\r\nexport const ContractorDocumentTypeLabel = (type) => (Tr(_TR_PREFIX + type.toLowerCase()));\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const RoundType = {\r\n\tBASE: \"BASE\",\r\n\tADDITIONAL_OFFERS: \"ADDITIONAL_OFFERS\",\r\n\tAUCTION: \"AUCTION\"\r\n}\r\n\r\nconst _TR_PREFIX = 'additional_round_type_';\r\n\r\nexport const RoundTypeLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value = Tr(trKey)) => ({\r\n label: Tr(trKey),\r\n value,\r\n})\r\n\r\nexport const TRUE_FALSE_VALUE = {\r\n TRUE: 'true',\r\n FALSE: 'false'\r\n}\r\n\r\nexport default [\r\n createItem('yes', TRUE_FALSE_VALUE.TRUE),\r\n createItem('no', TRUE_FALSE_VALUE.FALSE)\r\n]\r\n\r\nexport const TrueFalseWithEmpty = [\r\n createItem('not_specified', '_'),\r\n createItem('yes', TRUE_FALSE_VALUE.TRUE),\r\n createItem('no', TRUE_FALSE_VALUE.FALSE)\r\n]","import React from 'react'\r\nimport {makeStyles, Typography} from '@material-ui/core';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport DoubleButton from 'components/popup/components/DoubleButton';\r\nimport Select, {createSelectItem} from 'components/Select';\r\nimport VS from 'constants/ValidationShema';\r\nimport PropTypes from \"prop-types\";\r\nimport {ContractorDocumentType, ContractorDocumentTypeSelectItems} from \"constants/ContractorDocumentType\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport {TrueFalseWithEmpty} from \"constants/TrueFalseItems\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n gridContainer: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n fileName: {\r\n width: 480,\r\n marginBottom: theme.spacing()\r\n },\r\n select: {\r\n width: 180\r\n },\r\n rodoSelect: {\r\n width: 200\r\n },\r\n typeSelect: {\r\n width: 230,\r\n }\r\n}));\r\n\r\nfunction SelectOfferFilesType(\r\n {\r\n items,\r\n onCancel,\r\n onSubmit,\r\n positions,\r\n onePositionMode,\r\n roundType,\r\n formSubmit,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const formId = useId();\r\n const typeId = 'type';\r\n const positionId = 'position';\r\n const containsRodoId = 'containsRodo';\r\n\r\n const getPositionItems = () => {\r\n const map = positions.map(x => createSelectItem(x.positionId, Tr(\"part_x\", {x: x.order})));\r\n if(roundType === RoundType.BASE) {\r\n map.unshift(createSelectItem(0, Tr(\"whole_demand\")));\r\n }\r\n return map;\r\n }\r\n\r\n const generateItems = (formikProps) => {\r\n if (items.length === 0) {\r\n return {Tr(\"file_extension_error\")}\r\n }\r\n return items.map((item, i) => {\r\n return (\r\n \r\n {item.name}\r\n\r\n \r\n\r\n \r\n\r\n {!onePositionMode && }\r\n\r\n \r\n )\r\n })\r\n };\r\n\r\n const submitForm = () => {\r\n formSubmit[formId]()\r\n };\r\n\r\n const handleSubmit = (values) => onSubmit(values, items)\r\n\r\n const generateInitialValues = () => {\r\n let obj = {};\r\n for (let i = 0; i < items.length; i++) {\r\n obj[typeId + i] = null;\r\n obj[containsRodoId + i] = '_';\r\n if (!onePositionMode)\r\n obj[positionId + i] = null;\r\n }\r\n return obj\r\n };\r\n\r\n const generateValidationSchema = () => {\r\n let obj = {};\r\n for (let i = 0; i < items.length; i++) {\r\n obj[typeId + i] = VS.stringNotOneOf([ContractorDocumentType.RODO], Tr('required_field'));\r\n obj[containsRodoId + i] = VS.any();\r\n if (!onePositionMode)\r\n obj[positionId + i] = VS.anyRequired();\r\n }\r\n return VS.object(obj)\r\n };\r\n\r\n if (items === undefined) return '';\r\n return (\r\n }\r\n >\r\n \r\n {(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\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {}\r\n}));\r\n\r\nfunction Offers(\r\n {\r\n demandId,\r\n demandStatistics,\r\n currentRfxRound,\r\n offers,\r\n offersActions,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [offerLoading, setOfferLoading] = useState(true);\r\n const [registerEnvelopePopupOpened, setRegisterEnvelopePopupOpened] = useState(0);\r\n const [downloadWorking, setDownloadWorking] = useState(false);\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig} = useSearch();\r\n\r\n const refreshCurrentRows = () => {\r\n setOfferLoading(true);\r\n const loadedRows = offers.items.length;\r\n const {pagination} = searchData;\r\n let curPageSize = loadedRows < pagination.pageSize ? pagination.pageSize : loadedRows;\r\n RfxOfferService.getOffers(currentRfxRound.id, getPaginationConfig(1, curPageSize)).then(() => setOfferLoading(false));\r\n }\r\n\r\n useEffect(() => {\r\n if (!!offers && !!demandStatistics) {\r\n if (offers.totalCount !== demandStatistics.numberOfOffers) {\r\n refreshCurrentRows();\r\n }\r\n }\r\n //na 2 etapie ma wczytywać gdy zmieni się liczba ofert, na 3 etapie to nie powinno się odpalać.\r\n // eslint-disable-next-line\r\n }, [demandStatistics])\r\n\r\n\r\n useEffect(() => {\r\n if (currentRfxRound?.id)\r\n RfxOfferService.getAvailableActions(currentRfxRound.id);\r\n return () => {\r\n RfxOfferService.clearResources(RfxOfferService.RESOURCE_ID_RFX_OFFER_LIST)\r\n RfxOfferService.clearResources(RfxOfferService.RESOURCE_ID_RFX_OFFERS_ACTIONS)\r\n }\r\n }, [demandId, currentRfxRound?.id])\r\n\r\n useEffect(() => {\r\n if (currentRfxRound?.id) {\r\n setOfferLoading(true);\r\n const {pagination, search} = searchData;\r\n RfxOfferService.getOffers(currentRfxRound.id, pagination, search).then(() => (setOfferLoading(false)));\r\n }\r\n // eslint-disable-next-line\r\n }, [searchData, currentRfxRound?.id])\r\n\r\n useDidUpdateEffect(() => {\r\n if (offers?.totalCount !== undefined) {\r\n setTotalCount(offers.totalCount)\r\n }\r\n }, [offers?.totalCount]);\r\n\r\n\r\n const runDownload = (type) => {\r\n setDownloadWorking(true);\r\n if (type === 'attachments')\r\n RfxOfferService.downloadOffersAttachments(currentRfxRound.id, () => setDownloadWorking(false))\r\n else\r\n RfxOfferService.downloadOffersSummary(currentRfxRound.id, type, () => setDownloadWorking(false))\r\n }\r\n\r\n const getAdditionalButtons = () => {\r\n const buttons = [];\r\n if (offersActions.attachments)\r\n buttons.push(createSplitButton(offersActions.attachments.name, () => runDownload('attachments'), downloadWorking));\r\n if (offersActions.itemSummaryXls)\r\n buttons.push(createSplitButton(offersActions.itemSummaryXls.name, () => runDownload('item'), downloadWorking));\r\n if (offersActions.itemParametersXls)\r\n buttons.push(createSplitButton(offersActions.itemParametersXls.name, () => runDownload('itemParameters'), downloadWorking));\r\n if (offersActions.summaryXls)\r\n buttons.push(createSplitButton(offersActions.summaryXls.name, () => runDownload('xls'), downloadWorking));\r\n if (offersActions.summaryPdf)\r\n buttons.push(createSplitButton(offersActions.summaryPdf.name, () => runDownload('pdf'), downloadWorking));\r\n return ()\r\n }\r\n\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n if (offersActions.envelope)\r\n buttons.push(createButton(offersActions.envelope.name, () => setRegisterEnvelopePopupOpened(-1), undefined));\r\n return ()\r\n };\r\n\r\n if (!offers || !offersActions || !currentRfxRound) return \r\n\r\n return (\r\n <>\r\n \r\n \r\n {getButtons()}\r\n \r\n\r\n\r\n setRegisterEnvelopePopupOpened(envelopeId)}\r\n demandHeader={demandHeader}\r\n />\r\n\r\n \r\n\r\n {!!registerEnvelopePopupOpened &&\r\n {\r\n if (!cancel)\r\n refreshCurrentRows();\r\n setRegisterEnvelopePopupOpened(0);\r\n }}/>}\r\n \r\n )\r\n}\r\n\r\nOffers.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n downloadOffers: PropTypes.bool,\r\n registerEnvelope: PropTypes.bool\r\n}\r\n\r\nexport default connect((state) => ({\r\n offers: state.resources[RfxOfferService.RESOURCE_ID_RFX_OFFER_LIST],\r\n offersActions: state.resources[RfxOfferService.RESOURCE_ID_RFX_OFFERS_ACTIONS],\r\n demandStatistics: state.resources[StatisticsService.DEMAND_STATISTICS_RESOURCE_ID],\r\n currentRfxRound: state.resources[StatisticsService.CURRENT_RFX_RESOURCE_ID],\r\n demandHeader: state.resources.demandHeader,\r\n}), {})(Offers);","import React, {useEffect} from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport Offers from \"components/complex/offer/Offers\";\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport {connect} from \"react-redux\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport validateSection from \"services/helpers/validateSection\";\r\n\r\nfunction OffersPanel(\r\n {\r\n match,\r\n demandValidation\r\n }) {\r\n const curDemandValidation = DemandValidation.OFFERS;\r\n const id = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n\r\n useEffect(() => {\r\n StatisticsService.getCurrentRound(id);\r\n validateSection(curDemandValidation, id, false);\r\n return () => StatisticsService.clearCurrentRound();\r\n },[curDemandValidation, id])\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(OffersPanel));","import React from 'react'\r\nimport OffersPanel from \"./OffersPanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import {ProcedureType} from \"constants/ProcedureType\";\r\n\r\nconst PROCEDURE_TYPES = [ProcedureType.PUBLIC, ProcedureType.SOCIALSERVICES, ProcedureType.NATIONAL_SOCIAL_SERVICES, ProcedureType.NATIONAL_PUBLIC];\r\nexport default (demandHeader) => {\r\n return demandHeader && demandHeader.noticeOjsType === false && demandHeader.noticeBzpType === false && PROCEDURE_TYPES.includes(demandHeader.procedureType);\r\n}\r\n","import React, {useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport {isDemandPreparing} from \"libs/getDemandStatus\";\r\nimport Loading from \"components/Loading\";\r\nimport Button from \"components/Button\";\r\nimport DemandService from \"services/DemandService\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n loading: {\r\n width: '98%'\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n }\r\n}));\r\n\r\nfunction AddBzpNoticePopup(\r\n {\r\n demandId,\r\n onClose,\r\n formSubmit,\r\n siwzTypes,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const [working, setWorking] = useState(false);\r\n const [errorText, setErrorText] = useState();\r\n const [downloadSuccess, setDownloadSuccess] = useState(false);\r\n\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const processResponse = async (resp) => {\r\n if (resp.success) {\r\n await DemandService.getValidate(demandId, false)\r\n await SiwzService.getList(demandId);\r\n setDownloadSuccess(true);\r\n } else {\r\n setErrorText(resp.errors.shift());\r\n }\r\n\r\n }\r\n\r\n const onSubmit = ({bzpNoticeId}) => {\r\n setWorking(true);\r\n setErrorText();\r\n const bzpSiwzType = Object.keys(siwzTypes).find(x => \"notice_changed\" === x || \"noticeAttachments\" === x);\r\n SiwzService.addBzpNotice(demandId, bzpNoticeId.trim(), bzpSiwzType).then(processResponse).catch(() => {\r\n }).finally(() => {\r\n setWorking(false);\r\n });\r\n }\r\n\r\n\r\n if(downloadSuccess) {\r\n return (\r\n \r\n \r\n {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\n\r\nconst useStyle = makeStyles(theme => ({\r\n warnIcon: {\r\n padding: 0,\r\n color: `${theme.palette.secondary.main} !important`\r\n },\r\n descriptionTooltip: {\r\n whiteSpace: 'pre-line'\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n versionsCell: {\r\n background: theme.palette.background.default,\r\n paddingLeft: 0,\r\n paddingRight: 0\r\n }\r\n}));\r\n\r\nexport const getPublishDateCellValue = (row) => {\r\n switch (row.status) {\r\n case 'uploaded':\r\n return Tr('new');\r\n case 'unpublished':\r\n return Tr('unpublished');\r\n default:\r\n return row.publishDate ? moment(row.publishDate).format(DateFormats.DATETIME_FORMAT) : null\r\n }\r\n};\r\n\r\nfunction SiwzFileTableRow(\r\n {\r\n demandId,\r\n index,\r\n row,\r\n isPublished,\r\n disabled,\r\n onOpenDownloadHistory,\r\n onEditDescriptionFile,\r\n showShare,\r\n }) {\r\n const classes = useStyle();\r\n const currentDemandValidation = useContext(DemandValidationContext);\r\n const [shareFilePopup, setShareFilePopup] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n publish: false,\r\n delete: false,\r\n expand: false,\r\n share: false,\r\n });\r\n\r\n const hasVersions = useMemo(() => row.version && row.version > 1, [row]);\r\n\r\n const onVersionsExpand = () => {\r\n dispatchIconWorks({type: 'expand', works: true});\r\n var func;\r\n if (!row.versions)\r\n func = SiwzService.getVersions\r\n else\r\n func = SiwzService.clearVersions\r\n\r\n func(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source))\r\n .finally(() => dispatchIconWorks({type: 'expand', works: false}));\r\n }\r\n\r\n const onDownload = () => {\r\n dispatchIconWorks({type: 'download', works: true});\r\n SiwzService.getDownloadFile(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source), false)\r\n .finally(() => dispatchIconWorks({type: 'download', works: false}));\r\n }\r\n\r\n const checkRealizationAmountValue = async () => {\r\n //demand validation nie ma na II etapie\r\n if (!currentDemandValidation && row.type === \"x.realizationAmountValue\") {\r\n const {resources} = reduxStore.getState();\r\n const currentRfxRound = resources[StatisticsService.CURRENT_RFX_RESOURCE_ID];\r\n if (Boolean(currentRfxRound)) {\r\n RfxOfferService.getOffersDecryptionStatus(currentRfxRound.id);\r\n }\r\n } else if (currentDemandValidation === DemandValidation.DOCUMENTS && row.type.startsWith('x.openOffers')) {\r\n await validateSection(DemandValidation.CONTRACTOR_VERIFICATION, demandId, false)\r\n await validateSection(DemandValidation.OFFERS_EVALUATION, demandId, false)\r\n await validateSection(DemandValidation.OFFER_CHOICE, demandId, false)\r\n }\r\n }\r\n\r\n const onPublish = () => {\r\n dispatchIconWorks({type: 'publish', works: true});\r\n SiwzService.publish(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source), currentDemandValidation)\r\n .then(checkRealizationAmountValue).finally(() => dispatchIconWorks({type: 'publish', works: false}));\r\n };\r\n\r\n const onUnpublish = () => {\r\n dispatchIconWorks({type: 'publish', works: true});\r\n SiwzService.unpublish(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source), currentDemandValidation)\r\n .then(checkRealizationAmountValue).finally(() => dispatchIconWorks({type: 'publish', works: false}));\r\n };\r\n\r\n const onDelete = () => {\r\n dispatchIconWorks({type: 'delete', works: true});\r\n SiwzService.deleteItem(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source), currentDemandValidation)\r\n .finally(() => {\r\n dispatchIconWorks({type: 'delete', works: false})\r\n });\r\n }\r\n\r\n const onShareFile = (row) => setShareFilePopup(sharePopupData(row.name, row));\r\n\r\n const doShare = (row, system) => {\r\n setShareFilePopup(null);\r\n dispatchIconWorks({type: 'share', works: true});\r\n SiwzService.shareSiwz(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source), system).then((resp) => {\r\n if (resp)\r\n enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: system}, true))\r\n }).finally(() => {\r\n dispatchIconWorks({type: 'share', works: false})\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {index}\r\n \r\n {(isPublished && row.status !== 'published' && row.status !== 'accepted') &&\r\n \r\n } {row.name}\r\n \r\n \r\n onEditDescriptionFile(row)}\r\n tooltip={row.description ?

{row.description}

: {Tr('no_description')}}\r\n />\r\n
\r\n {row.typeTranslated}\r\n \r\n \r\n \r\n {moment(row.createDate).format(DateFormats.DATETIME_FORMAT)}\r\n {isPublished && {getPublishDateCellValue(row)}}\r\n \r\n onDownload(row.actions.download, row.name)}\r\n disabled={iconWorks.anyWorks || !row.actions.download}\r\n working={iconWorks.download}\r\n />\r\n \r\n {\r\n showShare &&\r\n \r\n onShareFile(row)}\r\n hideTooltip={!row.actions.download}\r\n disabled={iconWorks.anyWorks || !row.actions.download}\r\n working={iconWorks.share}\r\n />\r\n\r\n {!!shareFilePopup && setShareFilePopup(null)}\r\n onChoose={doShare}\r\n />}\r\n \r\n }\r\n {isPublished && \r\n\r\n {row.status === \"published\" || row.status === \"accepted\" ?\r\n \r\n :\r\n \r\n }\r\n \r\n }\r\n {isPublished && \r\n onOpenDownloadHistory(row)}\r\n hideTooltip={!row.actions.downloadDetails}\r\n disabled={iconWorks.anyWorks || !row.actions.downloadDetails}\r\n />\r\n \r\n }\r\n \r\n \r\n \r\n\r\n {isPublished && \r\n \r\n \r\n }\r\n
\r\n\r\n {!!row.versions &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nSiwzFileTableRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n row: PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n source: PropTypes.string.isRequired\r\n }).isRequired,\r\n index: PropTypes.number.isRequired,\r\n isPublished: PropTypes.bool.isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n onOpenDownloadHistory: PropTypes.func.isRequired,\r\n onEditDescriptionFile: PropTypes.func.isRequired,\r\n showShare: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SiwzFileTableRow;","import React, {useContext, useMemo, useState} from 'react'\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport DownloadHistoryPopup, {createDownloadHistoryFile} from \"components/popup/DownloadHistoryPopup\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport EditDescriptionPopup, {createEditDescriptionFile} from \"components/popup/EditDescriptionPopup\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport SiwzFileTableRow from \"./SiwzFileTableRow\";\r\nimport DemandValidationContext from \"context/DemandValidationContext\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PropTypes from 'prop-types';\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport {shareSystemsActive} from \"libs/shareSystems\";\r\nimport {connect} from \"react-redux\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n lpColumn: theme.components.table.lpColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n typeColumn: {\r\n width: 180\r\n }\r\n}));\r\n\r\nfunction SiwzFileTable(\r\n {\r\n demandId,\r\n isPublished,\r\n disabled,\r\n siwzList,\r\n demandPrivileges = {},\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [downloadHistory, setDownloadHistory] = useState(null);\r\n const [openConfirmDeleteAll, setOpenConfirmDeleteAll] = useState(false);\r\n const [editDescriptionFile, setEditDescriptionFile] = useState(null);\r\n const currentDemandValidation = useContext(DemandValidationContext);\r\n\r\n const showShare = useMemo(() => demandPrivileges.INTEGRATIONS_UPLOAD && shareSystemsActive(demandHeader).length > 0, [demandHeader, demandPrivileges])\r\n\r\n const onDeleteAll = () => {\r\n setOpenConfirmDeleteAll(false);\r\n SiwzService.deleteAll(demandId, currentDemandValidation);\r\n };\r\n\r\n const onDownloadHistoryDialogClose = () => {\r\n setDownloadHistory(null);\r\n }\r\n\r\n const openDownloadHistory = (row, parentRowIdentity) => {\r\n setDownloadHistory(createDownloadHistoryFile(row.name, demandId, SiwzService.buildSiwzIdentity(row.identity, row.source, parentRowIdentity)));\r\n };\r\n\r\n const openEditDescription = (row, parentRowIdentity) => {\r\n setEditDescriptionFile(createEditDescriptionFile(demandId, SiwzService.buildSiwzIdentity(row.identity, row.source, parentRowIdentity),\r\n row.name, row.description, !row.actions.editDescription));\r\n };\r\n\r\n return (<>\r\n {!!siwzList &&
\r\n {!siwzList.length ?\r\n {Tr('no_options')}\r\n :\r\n <>\r\n\r\n \r\n \r\n \r\n {Tr(\"column_lp\")}\r\n {Tr(\"name\")}\r\n {Tr(\"description\")}\r\n {Tr(\"type\")}\r\n {Tr(\"size\")}\r\n {Tr(\"add_data\")}\r\n {isPublished && {Tr(\"publish_data\")}}\r\n \r\n {showShare && }\r\n {isPublished && }\r\n {isPublished && }\r\n \r\n {!isPublished && setOpenConfirmDeleteAll(true)}\r\n tooltip={Tr('delete_all')}\r\n disabled={disabled}\r\n />}\r\n \r\n {isPublished && }\r\n \r\n \r\n \r\n {\r\n siwzList.map((doc, index) => (\r\n ))\r\n }\r\n \r\n
\r\n\r\n {downloadHistory &&\r\n \r\n }\r\n\r\n {Boolean(editDescriptionFile) &&\r\n setEditDescriptionFile(null)}\r\n onClose={() => setEditDescriptionFile(null)}\r\n service={SiwzService}\r\n />\r\n }\r\n\r\n setOpenConfirmDeleteAll(false)}\r\n confirmText=\"confirm_delete_all\"\r\n />\r\n \r\n }\r\n
\r\n }\r\n )\r\n}\r\n\r\nSiwzFileTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n isPublished: PropTypes.bool.isRequired,\r\n disabled: PropTypes.bool.isRequired\r\n};\r\nexport default connect((state) => ({\r\n siwzList: state.resources[SiwzService.SIWZ_LIST_RESOURCE_ID],\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY],\r\n demandHeader: state.resources.demandHeader\r\n}), {})(SiwzFileTable);","import React, {useContext, useState} from 'react'\r\nimport UploadFile from 'components/UploadFile';\r\nimport TitledComponent from 'components/TitledComponent';\r\nimport SelectSiwzDocumentType from \"./SelectSiwzDocumentType\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport SiwzFileTable from \"./SiwzFileTable\";\r\nimport DemandValidationContext from \"context/DemandValidationContext\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction SelectSiwzDocument(\r\n {\r\n demandId,\r\n disabled,\r\n isPublished,\r\n }) {\r\n\r\n const currentDemandValidation = useContext(DemandValidationContext);\r\n const [portFilesWorking, setPostFilesWorking] = useState(false);\r\n const [selectedFiles, setSelectedFiles] = useState(null);\r\n const [configuredFiles, setConfiguredFiles] = useState(null);\r\n\r\n\r\n const handleSendFiles = (uploadedFiles, config) => {\r\n setConfiguredFiles(null);\r\n if(uploadedFiles.length) {\r\n const tab = uploadedFiles.map((x, i) => ({\r\n ...x,\r\n type: config[`item${x.originalIndex}`],\r\n parent: config[`parent${x.originalIndex}`],\r\n autopublish: config[`autopublish${x.originalIndex}`],\r\n }));\r\n setPostFilesWorking(true)\r\n SiwzService.send(demandId, tab, currentDemandValidation).finally(()=> setPostFilesWorking(false));\r\n }\r\n };\r\n\r\n const handleSubmitSelectDocumentTypes = (values) => {\r\n setConfiguredFiles({files: selectedFiles, config: values})\r\n setSelectedFiles(null);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n\r\n {!disabled &&\r\n setSelectedFiles(files)}\r\n configuredFiles={configuredFiles}\r\n working={portFilesWorking}\r\n />\r\n }\r\n\r\n \r\n \r\n\r\n {!!selectedFiles && setSelectedFiles(null)}\r\n onSubmit={handleSubmitSelectDocumentTypes}\r\n pickAutopublish={isPublished}\r\n pickParent={isPublished}\r\n />}\r\n \r\n )\r\n}\r\n\r\nSelectSiwzDocument.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n disabled: PropTypes.bool.isRequired,\r\n isPublished: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default SelectSiwzDocument;","import React, {useMemo, useState} from 'react'\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport {isDemandModification, isDemandOfferCollection, wasEverPublished} from \"libs/getDemandStatus\";\r\nimport downloadFile from \"libs/downloadFile\";\r\nimport ChooseSwzGeneratorOptions from \"components/complex/papersGenerator/customPopups/swzGenerator/ChooseSwzGeneratorOptions\";\r\nimport isBzpAttachmentNoticeType from \"libs/isBzpAttachmentNoticeType\";\r\nimport {connect} from \"react-redux\";\r\nimport {withRouter} from \"react-router\";\r\nimport AddBzpNoticePopup from \"./AddBzpNoticePopup\";\r\nimport SelectSiwzDocument from \"./SelectSiwzDocument\";\r\nimport PropTypes from \"prop-types\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n topButtons: {\r\n marginBottom: theme.spacing(1)\r\n }\r\n}));\r\n\r\nfunction SiwzDocuments(\r\n {\r\n demandId,\r\n editable,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [addBzpNoticePopupOpened, setAddBzpNoticePopupOpened] = useState(false);\r\n const [swzParamsOpen, setSwzParamsOpen] = useState(false);\r\n\r\n const isBzpAttachmentNotice = useMemo(() => isBzpAttachmentNoticeType(demandHeader), [demandHeader]);\r\n const isPublished = useMemo(() => demandHeader ? wasEverPublished() : undefined, [demandHeader]);\r\n const isOfferCollectionOrModification = useMemo(() => demandHeader ? isDemandOfferCollection() || isDemandModification() : undefined, [demandHeader]);\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n if (isBzpAttachmentNotice && editable && (!isPublished || isOfferCollectionOrModification)) {\r\n buttons.push(createButton(Tr(isPublished ? \"add_bzp_notice_update\" : \"add_bzp_notice\"), () => setAddBzpNoticePopupOpened(true)))\r\n }\r\n\r\n if (demandHeader && editable) {\r\n if(!isPublished || isOfferCollectionOrModification) {\r\n if (demandHeader.applicationClientSettings.papersGenerator.active) {\r\n buttons.push(createButton(Tr('swz_button'), () => setSwzParamsOpen(true)))\r\n } else {\r\n buttons.push(createButton(Tr('swz_button'), () => downloadFile({url: Endpoints.PAPERS_GENERATOR_PRINT(demandId, 'swz_generator')})))\r\n }\r\n }\r\n }\r\n\r\n if (buttons.length)\r\n return \r\n }\r\n\r\n return (\r\n \r\n {getButtons()}\r\n\r\n \r\n\r\n {addBzpNoticePopupOpened && setAddBzpNoticePopupOpened(false)}/>}\r\n {swzParamsOpen && setSwzParamsOpen(false)}/>}\r\n\r\n \r\n )\r\n}\r\n\r\nSiwzDocuments.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n editable: PropTypes.bool\r\n};\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader\r\n}), {})(withRouter(SiwzDocuments));","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport { withStyles } from '@material-ui/core';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport DoubleButton from '../../../popup/components/DoubleButton';\r\nimport TextInput from 'components/TextInput';\r\nimport * as Yup from 'yup';\r\nimport validationShema from 'constants/ValidationShema';\r\nimport useId from 'hooks/useId';\r\nimport { connect } from 'react-redux'\r\nimport RepoService from 'services/RepoService';\r\nimport InputLimits from \"constants/InputLimits\";\r\n\r\nconst style = theme => ({\r\n\tpadding: {\r\n\t\tmarginTop: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction CreateFolderPopup({\r\n\topen,\r\n\tonClose,\r\n\tclasses,\r\n\tformSubmit,\r\n\tdemandId\r\n}) {\r\n\r\n\tconst formId = useId();\r\n\r\n\tconst handleSubmit = () => formSubmit[formId]()\r\n\tconst onAdd = (values) => {\r\n\t\tRepoService.addFolder(demandId,values)\r\n\t\tonClose()\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{(formikProps) => (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tformSubmit: state.form\r\n}), {})(withStyles(style)(CreateFolderPopup));","import React from 'react'\r\nimport {List, ListItem, ListItemIcon, ListItemText} from '@material-ui/core';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport FolderIcon from '@material-ui/icons/Folder';\r\nimport RepoFolderTypes from \"constants/RepoFolderTypes\";\r\nimport PropTypes from \"prop-types\";\r\nimport SingleButton from \"components/popup/components/SingleButton\";\r\n\r\n\r\nfunction SelectFolderPopup(\r\n {\r\n onCancel,\r\n onSubmit,\r\n folderList,\r\n }) {\r\n\r\n return (\r\n }\r\n >\r\n\r\n \r\n {\r\n folderList.filter(x => x.type !== RepoFolderTypes.Z_TRASH).map(x =>\r\n onSubmit(x.identity)}>\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n {\r\n folderList.length === 1 && folderList[0].type === RepoFolderTypes.Z_TRASH &&\r\n \r\n \r\n \r\n }\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nSelectFolderPopup.propTypes = {\r\n onCancel: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n folderList: PropTypes.arrayOf(PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n type: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired\r\n })).isRequired\r\n}\r\n\r\nexport default SelectFolderPopup;\r\n","import React, {useEffect, useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport Select from \"components/Select\";\r\nimport DescriptionIcon from '@material-ui/icons/Description';\r\nimport FolderIcon from '@material-ui/icons/Folder';\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport moment from \"libs/moment\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport RepoService from \"services/RepoService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n }\r\n}));\r\n\r\nfunction ChangeRepoVisibilityPopup(\r\n {\r\n onClose = () => {\r\n },\r\n demandId,\r\n repoVisibility,\r\n formSubmit,\r\n repoVisibilityTypes\r\n }) {\r\n\r\n\r\n const {fileId, folderId, name, visibilityStatus, visibilityEndDate} = repoVisibility;\r\n const isFile = !!fileId;\r\n const classes = useStyle();\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const [visibilityTypes, setVisibilityTypes] = useState([]);\r\n\r\n useEffect(() => {\r\n const types = [];\r\n Object.keys(repoVisibilityTypes).forEach((x) => types.push({label: repoVisibilityTypes[x], value: x}));\r\n setVisibilityTypes(types);\r\n }, [repoVisibilityTypes]);\r\n\r\n\r\n const onSubmit = (values) => {\r\n let promise;\r\n if (isFile) {\r\n promise = RepoService.changeFileVisibility(demandId, folderId, fileId, values);\r\n } else {\r\n promise = RepoService.changeFolderFilesVisibility(demandId, folderId, values);\r\n }\r\n promise.then(onClose);\r\n\r\n }\r\n\r\n const validationSchema = VS.lazy((value) => {\r\n\r\n let objShape = {\r\n visibility: VS.string(),\r\n }\r\n\r\n if (value.visibility !== 'STATUS_INTERNAL') {\r\n objShape['visibilityEndDate'] = VS.dateTimeNoReq()\r\n }\r\n\r\n return Yup.object().shape(objShape)\r\n })\r\n\r\n return (\r\n }\r\n >\r\n\r\n \r\n {(formikProps) => (\r\n \r\n\r\n \r\n {name}\r\n \r\n\r\n \r\n\r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form,\r\n repoVisibilityTypes: state.resources.repoVisibilityTypes\r\n}), {})(ChangeRepoVisibilityPopup);","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport GetAppIcon from '@material-ui/icons/Eject';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\n\r\nfunction WorkableIconEjectButton(\r\n {\r\n tooltip = Tr('eject'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconEjectButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconEjectButton;","import React, {useReducer, useState} from 'react'\r\nimport {makeStyles, TableCell, TableRow} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport moment from \"libs/moment\";\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport WorkableIconDownloadButton from 'components/button/WorkableIconDownloadButton';\r\nimport WorkableIconDownloadCountButton from \"components/button/WorkableIconDownloadCountButton\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport WorkableIconUnpublishButton from \"components/button/WorkableIconUnpublishButton\";\r\nimport WorkableIconPublishButton from \"components/button/WorkableIconPublishButton\";\r\nimport WorkableIconSearchButton from \"components/button/WorkableIconSearchButton\";\r\nimport RepoService from \"services/RepoService\";\r\nimport ShareSelectPopup, {sharePopupData} from \"components/popup/ShareSelectPopup\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport WorkableIconShareButton from \"components/button/WorkableIconShareButton\";\r\nimport WorkableIconEjectButton from \"components/button/WorkableIconEjectButton\";\r\nimport HelpComponent from \"../../../HelpComponent\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n descriptionTooltip: {\r\n whiteSpace: 'pre-line'\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n}));\r\n\r\nfunction RepoFileTableRow(\r\n {\r\n demandId,\r\n index,\r\n row,\r\n isPublished,\r\n onOpenDownloadHistory,\r\n onEditDescriptionFile,\r\n onSetRepoVisibility,\r\n showShare,\r\n onMoveToSiwz\r\n }) {\r\n const classes = useStyle();\r\n const [shareFilePopup, setShareFilePopup] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n delete: false,\r\n share: false,\r\n });\r\n\r\n const onDownload = () => {\r\n dispatchIconWorks({type: 'download', works: true});\r\n RepoService.getDownloadFile(demandId, row.identity, false)\r\n .finally(() => dispatchIconWorks({type: 'download', works: false}));\r\n }\r\n\r\n const onDelete = () => {\r\n dispatchIconWorks({type: 'delete', works: true});\r\n RepoService.deleteItem(demandId, row.identity)\r\n .finally(() => {\r\n dispatchIconWorks({type: 'delete', works: false})\r\n });\r\n }\r\n\r\n const onShareFile = (row) => setShareFilePopup(sharePopupData(row.name, row));\r\n\r\n const doShare = (row, system) => {\r\n setShareFilePopup(null);\r\n dispatchIconWorks({type: 'share', works: true});\r\n RepoService.shareRepo(demandId, row.identity, system).then((resp) => {\r\n if (resp)\r\n enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: system}, true))\r\n }).finally(() => {\r\n dispatchIconWorks({type: 'share', works: false})\r\n });\r\n }\r\n\r\n return (\r\n \r\n {index}\r\n \r\n {row.name}\r\n \r\n \r\n onEditDescriptionFile(row)}\r\n tooltip={row.description ?

{row.description}

: {Tr('no_description')}}\r\n disabled={iconWorks.anyWorks}\r\n />\r\n
\r\n {Tr(`repo.visibility.${row.visibilityStatus}`)}\r\n \r\n {moment(row.createDate).format(DateFormats.DATETIME_FORMAT)}\r\n {isPublished && {row.publishDate ? moment(row.publishDate).format(DateFormats.DATETIME_FORMAT) : null}}\r\n \r\n onDownload(row.actions.download, row.name)}\r\n hideTooltip={!row.actions.download}\r\n disabled={iconWorks.anyWorks || !row.actions.download}\r\n working={iconWorks.download}\r\n />\r\n \r\n \r\n onMoveToSiwz([{identity: row.identity, name: row.name}])}\r\n hideTooltip={!row.actions.moveToSiwz}\r\n disabled={iconWorks.anyWorks || !row.actions.moveToSiwz}\r\n />\r\n \r\n {showShare &&\r\n \r\n onShareFile(row)}\r\n hideTooltip={!row.actions.download}\r\n disabled={iconWorks.anyWorks || !row.actions.download}\r\n working={iconWorks.share}\r\n />\r\n {!!shareFilePopup && setShareFilePopup(null)}\r\n onChoose={doShare}\r\n />}\r\n \r\n }\r\n\r\n \r\n {row.visibilityStatus === 'STATUS_INTERNAL' ?\r\n onSetRepoVisibility(row)}\r\n hideTooltip={!row.actions.changeVisibility}\r\n disabled={iconWorks.anyWorks || !row.actions.changeVisibility}\r\n />\r\n :\r\n onSetRepoVisibility(row)}\r\n hideTooltip={!row.actions.changeVisibility}\r\n disabled={iconWorks.anyWorks || !row.actions.changeVisibility}\r\n />\r\n\r\n }\r\n \r\n\r\n {isPublished && \r\n onOpenDownloadHistory(row)}\r\n hideTooltip={!row.actions.downloadDetails}\r\n disabled={iconWorks.anyWorks || !row.actions.downloadDetails}\r\n />\r\n \r\n }\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nRepoFileTableRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n row: PropTypes.shape({\r\n identity: PropTypes.number.isRequired\r\n }).isRequired,\r\n index: PropTypes.number.isRequired,\r\n isPublished: PropTypes.bool.isRequired,\r\n onOpenDownloadHistory: PropTypes.func.isRequired,\r\n onEditDescriptionFile: PropTypes.func.isRequired,\r\n onSetRepoVisibility: PropTypes.func.isRequired,\r\n showShare: PropTypes.bool.isRequired,\r\n};\r\n\r\nexport default RepoFileTableRow;","import React, {useReducer, useState} from 'react'\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from '@material-ui/core';\r\nimport Tr from 'translations/Translations';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport DownloadHistoryPopup, {createDownloadHistoryFile} from \"components/popup/DownloadHistoryPopup\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport EditDescriptionPopup, {createEditDescriptionFile} from \"components/popup/EditDescriptionPopup\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PropTypes from 'prop-types';\r\nimport WorkableIconPublishButton from \"components/button/WorkableIconPublishButton\";\r\nimport ChangeRepoVisibilityPopup from \"./ChangeRepoVisibilityPopup\";\r\nimport RepoService from \"services/RepoService\";\r\nimport RepoFileTableRow from \"./RepoFileTableRow\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport WorkableIconEjectButton from \"../../../button/WorkableIconEjectButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n lpColumn: theme.components.table.lpColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n typeColumn: {\r\n width: 180\r\n },\r\n visibilityColumn: {\r\n width: 120\r\n },\r\n sizeColumn: {\r\n width: 80\r\n }\r\n}));\r\n\r\nfunction RepoFileTable(\r\n {\r\n demandId,\r\n isPublished,\r\n folder,\r\n disabled,\r\n showShare,\r\n onMoveToSiwz\r\n }) {\r\n const classes = useStyle();\r\n const [downloadHistory, setDownloadHistory] = useState(null);\r\n const [openConfirmDeleteAll, setOpenConfirmDeleteAll] = useState(false);\r\n const [editDescriptionFile, setEditDescriptionFile] = useState(null);\r\n const [repoVisibility, setRepoVisibility] = useState(null);\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n delete: false,\r\n });\r\n\r\n disabled = disabled || iconWorks.anyWorks;\r\n\r\n const onDeleteAll = () => {\r\n dispatchIconWorks({type: 'delete', works: true})\r\n setOpenConfirmDeleteAll(false);\r\n RepoService.deleteAll(demandId, folder.identity).finally(() => dispatchIconWorks({type: 'delete', works: false}))\r\n };\r\n\r\n\r\n const openDownloadHistory = (row) => {\r\n setDownloadHistory(createDownloadHistoryFile(row.name, demandId, row.identity));\r\n };\r\n\r\n const openEditDescription = (row) => {\r\n setEditDescriptionFile(createEditDescriptionFile(demandId, RepoService.buildIdentity(row.identity, folder.identity),\r\n row.name, row.description, !row.actions.editDescription));\r\n };\r\n\r\n const onChangeVisibilityAll = () => {\r\n const visibilityStatus = folder.files.length > 0 ? folder.files[0].visibilityStatus : null;\r\n const visibilityEndDate = folder.files.length > 0 ? folder.files[0].visibilityEndDate : null;\r\n setRepoVisibility({folderId: folder.identity, folderType: folder.type, name: folder.name, visibilityStatus, visibilityEndDate});\r\n };\r\n\r\n const onSetRepoVisibility = (row) => {\r\n setRepoVisibility({\r\n fileId: row.identity,\r\n folderId: row.folderId,\r\n folderType: folder.type,\r\n name: row.name,\r\n visibilityStatus: row.visibilityStatus,\r\n visibilityEndDate: row.visibilityEndDate\r\n })\r\n }\r\n\r\n const onSelectFileToMoveToSiwz = (files) => {\r\n onMoveToSiwz(folder, files);\r\n }\r\n\r\n return (<>\r\n {!!folder.files &&
\r\n {!folder.files.length ?\r\n {Tr('no_files_in_directory')}\r\n :\r\n <>\r\n\r\n \r\n \r\n \r\n {Tr(\"column_lp\")}\r\n {Tr(\"name\")}\r\n {Tr(\"description\")}\r\n {Tr(\"repo_visibility_type\")}\r\n {Tr(\"size\")}\r\n {Tr(\"add_data\")}\r\n {isPublished && {Tr(\"publish_data\")}}\r\n \r\n \r\n onSelectFileToMoveToSiwz(folder.files.map((doc, index) => ({identity: doc.identity, name: doc.name})))}\r\n hideTooltip={!folder.actions.moveToSiwz}\r\n disabled={disabled || !folder.actions.moveToSiwz}\r\n />\r\n \r\n {showShare && }\r\n \r\n \r\n \r\n {isPublished && }\r\n \r\n {!!folder.actions.deleteFolderFiles &&\r\n setOpenConfirmDeleteAll(true)}\r\n tooltip={Tr('delete_all_unpublished')}\r\n working={iconWorks.delete}\r\n disabled={disabled}\r\n />}\r\n \r\n \r\n \r\n \r\n {\r\n folder.files.map((doc, index) => (\r\n ))\r\n }\r\n \r\n
\r\n\r\n {downloadHistory &&\r\n setDownloadHistory(null)} service={RepoService}/>\r\n }\r\n\r\n {repoVisibility &&\r\n setRepoVisibility(null)} demandId={demandId}/>\r\n }\r\n\r\n {Boolean(editDescriptionFile) &&\r\n setEditDescriptionFile(null)}\r\n onClose={() => setEditDescriptionFile(null)}\r\n service={RepoService}\r\n />\r\n }\r\n\r\n setOpenConfirmDeleteAll(false)}\r\n confirmText=\"confirm_delete_all\"\r\n />\r\n \r\n }\r\n
\r\n }\r\n )\r\n}\r\n\r\nRepoFileTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n isPublished: PropTypes.bool.isRequired,\r\n folder: PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n type: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n description: PropTypes.string,\r\n actions: PropTypes.object.isRequired,\r\n files: PropTypes.array.isRequired\r\n }).isRequired,\r\n disabled: PropTypes.bool,\r\n showShare: PropTypes.bool.isRequired\r\n};\r\n\r\nexport default RepoFileTable;","import React, {useMemo, useReducer, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport FolderIcon from \"@material-ui/icons/Folder\";\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Form from \"components/Form\";\r\nimport * as Yup from \"yup\";\r\nimport useId from 'hooks/useId';\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport InputLimits from \"constants/InputLimits\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport RepoService from \"services/RepoService\";\r\nimport RepoFileTable from \"./RepoFileTable\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport WorkableIconConfirmButton from \"components/button/WorkableIconConfirmButton\";\r\nimport WorkableIconSearchButton from \"../../../button/WorkableIconSearchButton\";\r\nimport EditDescriptionPopup, {createEditDescriptionFile} from \"components/popup/EditDescriptionPopup\";\r\nimport {connect} from \"react-redux\";\r\nimport WorkableIconShareButton from \"../../../button/WorkableIconShareButton\";\r\nimport PrivilegeService from \"../../../../services/PrivilegeService\";\r\nimport {shareSystemsActive} from \"../../../../libs/shareSystems\";\r\nimport ShareSelectPopup, {sharePopupData} from \"../../../popup/ShareSelectPopup\";\r\nimport useSnackbar from \"../../../../hooks/useSnackbar\";\r\nimport RepoFolderTypes from \"../../../../constants/RepoFolderTypes\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n headTable: {\r\n background: theme.palette.background.default,\r\n marginTop: theme.spacing(5)\r\n },\r\n cell: {\r\n padding: `${theme.spacing(1)}px ${theme.spacing(1)}px 0`,\r\n border: 'none'\r\n },\r\n icon: {\r\n marginRight: theme.spacing()\r\n },\r\n nameCell: {\r\n fontWeight: 700\r\n },\r\n descriptionCell: {\r\n fontStyle: 'italic',\r\n whiteSpace: 'pre-line'\r\n },\r\n buttonColumn: {\r\n ...theme.components.table.buttonColumn,\r\n verticalAlign: 'top'\r\n },\r\n iconColumn: {\r\n width: 25,\r\n '& .MuiSvgIcon-root': {\r\n fontSize: '2rem'\r\n }\r\n },\r\n\r\n}));\r\n\r\nconst RepoFolder = (\r\n {\r\n demandId,\r\n folder,\r\n isPublished,\r\n disabled,\r\n formSubmit,\r\n demandHeader,\r\n demandPrivileges,\r\n onMoveToSiwz\r\n }) => {\r\n\r\n const classes = useStyles();\r\n\r\n const [nameEdited, setNameEdited] = useState(false);\r\n const [openConfirmDeleteFolder, setOpenConfirmDeleteFolder] = useState(false);\r\n const [editDescriptionFile, setEditDescriptionFile] = useState(null);\r\n const [shareFilePopup, setShareFilePopup] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const showShare = useMemo(() => demandPrivileges.INTEGRATIONS_UPLOAD && shareSystemsActive(demandHeader).length > 0, [demandHeader, demandPrivileges])\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n name: false,\r\n delete: false,\r\n share: false,\r\n });\r\n const curDisabled = disabled || iconWorks.anyWorks;\r\n const nameFormId = useId();\r\n\r\n const handleSubmit = () => {\r\n formSubmit[nameFormId]();\r\n }\r\n\r\n const onSubmit = (values) => {\r\n dispatchIconWorks({type: 'name', works: true});\r\n RepoService.updateFolderName(demandId, folder.identity, values.name).then(() => {\r\n dispatchIconWorks({type: 'name', works: false});\r\n setNameEdited(false);\r\n });\r\n };\r\n\r\n\r\n const handleDeleteFolder = () => {\r\n dispatchIconWorks({type: 'delete', works: true});\r\n setOpenConfirmDeleteFolder(false);\r\n RepoService.deleteFolder(demandId, folder.identity).catch(() => dispatchIconWorks({type: 'delete', works: false}));\r\n };\r\n\r\n const openEditDescription = () => {\r\n setEditDescriptionFile(createEditDescriptionFile(demandId, folder.identity,\r\n folder.name, folder.description, curDisabled, false, true));\r\n };\r\n\r\n const onShareFolder = () => {\r\n setShareFilePopup(sharePopupData(folder.name, folder));\r\n }\r\n\r\n const doShareFolder = (row, system) => {\r\n setShareFilePopup(null);\r\n dispatchIconWorks({type: 'share', works: true});\r\n RepoService.shareRepoFolder(demandId, row.identity, system).then((resp) => {\r\n if (resp)\r\n enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: system}, true))\r\n }).finally(() => {\r\n dispatchIconWorks({type: 'share', works: false})\r\n });\r\n }\r\n\r\n const getItems = () => {\r\n\r\n const actions = folder.actions || {};\r\n\r\n\r\n const rows = [];\r\n rows.push([\r\n ,\r\n {\r\n value: nameEdited ?\r\n \r\n {(formikProps) => (\r\n \r\n )}\r\n \r\n : folder.name,\r\n className: classes.nameCell\r\n },\r\n showShare && folder.type !== RepoFolderTypes.Z_TRASH ? : null,\r\n {folder.description}

: {Tr('no_description')}}\r\n />,\r\n nameEdited ?\r\n handleSubmit(\"name\")}\r\n disabled={curDisabled}\r\n working={iconWorks.name}\r\n /> :\r\n setNameEdited(true)}\r\n disabled={!actions.updateFolderName || curDisabled}\r\n hideTooltip={!actions.updateFolderName}\r\n />,\r\n setOpenConfirmDeleteFolder(true)}\r\n disabled={!actions.deleteFolder || curDisabled}\r\n working={iconWorks.delete}\r\n />\r\n ]);\r\n return rows;\r\n };\r\n return (\r\n <>\r\n \r\n\r\n \r\n\r\n {Boolean(editDescriptionFile) &&\r\n setEditDescriptionFile(null)}\r\n onClose={() => setEditDescriptionFile(null)}\r\n service={{updateDescription: RepoService.updateFolderDescription}}\r\n />\r\n }\r\n {!!shareFilePopup && setShareFilePopup(null)}\r\n onChoose={doShareFolder}\r\n />}\r\n\r\n handleDeleteFolder()}\r\n onCancel={() => setOpenConfirmDeleteFolder(false)}\r\n confirmText=\"confirm_delete_folder\"\r\n />\r\n \r\n\r\n );\r\n};\r\nRepoFolder.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n isPublished: PropTypes.bool.isRequired,\r\n disabled: PropTypes.bool,\r\n folder: PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n type: PropTypes.string.isRequired,\r\n name: PropTypes.string.isRequired,\r\n description: PropTypes.string,\r\n actions: PropTypes.object.isRequired,\r\n files: PropTypes.array.isRequired\r\n }).isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form,\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY],\r\n demandHeader: state.resources.demandHeader\r\n}), {})(RepoFolder);","import React, {useContext, useState} from 'react'\r\nimport UploadFile from 'components/UploadFile';\r\nimport {makeStyles} from '@material-ui/core/styles';\r\nimport TitledComponent from 'components/TitledComponent';\r\nimport {Typography} from '@material-ui/core';\r\nimport CreateNewFolderIcon from '@material-ui/icons/CreateNewFolder';\r\nimport CreateFolderPopup from 'components/complex/documentsTables/repo/CreateFolderPopup';\r\nimport Tr from 'translations/Translations';\r\nimport SelectFolderPopup from 'components/complex/documentsTables/repo/SelectFolderPopup';\r\nimport RepoFolder from \"./RepoFolder\";\r\nimport RepoService from \"services/RepoService\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport SelectSiwzDocumentType from \"../swz/SelectSiwzDocumentType\";\r\nimport SiwzService from \"../../../../services/SiwzService\";\r\nimport DemandValidationContext from \"../../../../context/DemandValidationContext\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n title: {\r\n fontWeight: \"bold\"\r\n },\r\n margin: {\r\n '&>*:first-child, &>*:nth-child(2)': {\r\n marginLeft: theme.spacing(2),\r\n marginBottom: theme.spacing()\r\n },\r\n '&>*:nth-child(3)': {\r\n margin: `0 ${theme.spacing(4)}px`\r\n }\r\n },\r\n buttonRow: {\r\n marginBottom: theme.spacing(1),\r\n marginTop: theme.spacing(1)\r\n }\r\n}));\r\n\r\nfunction SelectRepoDocument(\r\n {\r\n demandId,\r\n disabled,\r\n isPublished,\r\n folderList\r\n }) {\r\n\r\n const classes = useStyles();\r\n const currentDemandValidation = useContext(DemandValidationContext);\r\n const [portFilesWorking, setPostFilesWorking] = useState(false);\r\n const [selectedFiles, setSelectedFiles] = useState(null);\r\n const [configuredFiles, setConfiguredFiles] = useState(null);\r\n const [moveToSiwzFolderAndFile, setMoveToSiwzFolderAndFile] = useState(null);\r\n\r\n const [openFolderPopup, setOpenFolderPopup] = useState(false);\r\n\r\n const handleSendFiles = (uploadedFiles, config) => {\r\n setConfiguredFiles(null);\r\n if(uploadedFiles.length) {\r\n setPostFilesWorking(true);\r\n RepoService.addFiles(demandId, config, uploadedFiles).finally(() => setPostFilesWorking(false));\r\n }\r\n };\r\n\r\n const handleSubmitSelectFolder = (values) => {\r\n setConfiguredFiles({files: selectedFiles, config: values})\r\n setSelectedFiles(null);\r\n };\r\n\r\n const getButtons = () => {\r\n if (!disabled) {\r\n const buttons = [];\r\n buttons.push(createButton(Tr(\"create_folder\"), () => setOpenFolderPopup(true), undefined, undefined,\r\n undefined, undefined, CreateNewFolderIcon));\r\n\r\n if (buttons.length)\r\n return \r\n }\r\n }\r\n\r\n const onMoveToSiwz = (folder, files) => {\r\n setMoveToSiwzFolderAndFile({folder: folder, files: files});\r\n }\r\n\r\n const doMoveToSiwz = (values, items) => {\r\n const folder = moveToSiwzFolderAndFile.folder;\r\n setMoveToSiwzFolderAndFile(null);\r\n if (items.length) {\r\n const tab = items.map((x, i) => ({\r\n ...x,\r\n type: values[`item${i}`],\r\n parent: values[`parent${i}`],\r\n autopublish: values[`autopublish${i}`],\r\n }));\r\n setPostFilesWorking(true)\r\n SiwzService.moveFromRepo(demandId, tab, currentDemandValidation).finally(() => {\r\n RepoService.refreshFolder(demandId, folder.identity).finally(() => setPostFilesWorking(false));\r\n });\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n\r\n {!disabled && <>\r\n\r\n {getButtons()}\r\n\r\n {!!folderList && folderList.length < 2 ?\r\n {Tr('add_folder_before_file')}\r\n : setSelectedFiles(files)}\r\n configuredFiles={configuredFiles}\r\n onUploadPopupClosed={handleSendFiles}\r\n working={portFilesWorking}\r\n />\r\n }\r\n \r\n }\r\n\r\n {\r\n folderList.map(x => (\r\n \r\n ))\r\n }\r\n\r\n \r\n\r\n setOpenFolderPopup(false)}\r\n />\r\n\r\n {!!selectedFiles && setSelectedFiles(null)}\r\n onSubmit={handleSubmitSelectFolder}\r\n folderList={folderList}\r\n />}\r\n\r\n {!!moveToSiwzFolderAndFile && setMoveToSiwzFolderAndFile(null)}\r\n onSubmit={doMoveToSiwz}\r\n pickAutopublish={isPublished}\r\n pickParent={isPublished}\r\n />}\r\n\r\n \r\n )\r\n}\r\n\r\nexport default SelectRepoDocument;","import React, {useMemo, useState} from 'react'\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport {makeStyles} from '@material-ui/core/styles';\r\nimport Button from 'components/Button';\r\nimport {wasEverPublished} from \"libs/getDemandStatus\";\r\nimport RepoService from \"services/RepoService\";\r\nimport {connect} from \"react-redux\";\r\nimport SelectRepoDocument from \"./SelectRepoDocument\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n firstTable: {\r\n marginTop: theme.spacing(5)\r\n }\r\n}));\r\n\r\nfunction RepoDocuments(\r\n {\r\n demandId,\r\n editable,\r\n folderList,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const [showInternalDocuments, setShowInternalDocuments] = useState(()=> folderList.length > 1 || (folderList.length === 1 && folderList[0].files.length > 0));\r\n const isPublished = useMemo(() => demandHeader ? wasEverPublished() : undefined, [demandHeader]);\r\n\r\n return (\r\n \r\n {showInternalDocuments ?\r\n \r\n :\r\n setShowInternalDocuments(true)}\r\n variant=\"outlined\"\r\n disabled={!editable}\r\n >\r\n {Tr(\"add_inner_document\")}\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n folderList: state.resources[RepoService.FOLDER_LIST_RESOURCE_ID],\r\n demandHeader: state.resources.demandHeader\r\n}), {})(RepoDocuments);","import React, {useEffect, useState} from 'react'\r\nimport {withRouter} from \"react-router\";\r\nimport SiwzDocuments from \"./swz/SiwzDocuments\";\r\nimport RepoDocuments from \"./repo/RepoDocuments\";\r\nimport RepoService from \"services/RepoService\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport Loading from \"components/Loading\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction DocumentsTables(\r\n {\r\n demandId,\r\n siwzEditable,\r\n repoEditable\r\n }) {\r\n\r\n const [documentsLoading, setDocumentsLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n const siwzListPromise = SiwzService.getList(demandId);\r\n const siwzTypesPromise = SiwzService.getTypes(demandId);\r\n const repoFolderListPromise = RepoService.getList(demandId);\r\n const repoVsibilityTypesPromise = RepoService.getVisibilityTypes(demandId);\r\n Promise.all([siwzListPromise, siwzTypesPromise, repoFolderListPromise, repoVsibilityTypesPromise])\r\n .then(() => setDocumentsLoading(false));\r\n\r\n return () => {\r\n RepoService.clearResources(RepoService.FOLDER_LIST_RESOURCE_ID);\r\n RepoService.clearResources(RepoService.VISIBILITY_TYPES_RESOURCE_ID);\r\n SiwzService.clearResources(SiwzService.SIWZ_LIST_RESOURCE_ID);\r\n SiwzService.clearResources(SiwzService.SIWZ_TYPE_LIST_RESOURCE_ID);\r\n }\r\n }, [demandId]);\r\n\r\n if (documentsLoading) return \r\n return (<>\r\n \r\n \r\n )\r\n}\r\n\r\nDocumentsTables.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n siwzEditable: PropTypes.bool.isRequired,\r\n repoEditable: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default withRouter(DocumentsTables);","import React from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {connect} from \"react-redux\";\r\nimport DocumentsTables from \"components/complex/documentsTables/DocumentsTables\";\r\nimport {DemandValidationProvider} from \"context/DemandValidationContext\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n }\r\n}));\r\n\r\nfunction DocumentsPanel(\r\n {\r\n match,\r\n demandValidation\r\n }) {\r\n\r\n const classes = useStyles();\r\n const demandId = match.params.id;\r\n\r\n const currentDemandValidation = DemandValidation.DOCUMENTS;\r\n const section = demandValidation.find(x => x.section === currentDemandValidation);\r\n const siwzEditable = section ? !!section.siwzEditable : false;\r\n const repoEditable = section ? !!section.repoEditable : false;\r\n\r\n return (
\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(DocumentsPanel));\r\n\r\n","import React from 'react'\r\nimport DocumentsPanel from \"./DocumentsPanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import Tr from 'translations/Translations';\r\n\r\nexport const ContractorVerificationProcedureType = {\r\n CLASSIC: \"CLASSIC\",\r\n REVERSE: \"REVERSE\"\r\n}\r\nconst _TR_PREFIX = 'contractor_verification_';\r\nexport const ContractorVerificationProcedureTypeLabel = (type) => (Tr(_TR_PREFIX + type.toLowerCase()));\r\n","import React, {useState} from \"react\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Tr from \"translations/Translations\";\r\nimport ToggleButtonGroup from \"@material-ui/lab/ToggleButtonGroup\";\r\nimport ToggleButton from \"@material-ui/lab/ToggleButton\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport HelpTooltip from \"components/HelpTooltip\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from \"prop-types\";\r\nimport {ContractorVerificationProcedureType, ContractorVerificationProcedureTypeLabel} from \"constants/ContractorVerificationProcedureType\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n button: {\r\n width: 560,\r\n },\r\n help: {\r\n position: 'absolute',\r\n right: 70,\r\n color: theme.palette.text.button\r\n },\r\n helpNotSelected: {\r\n color: theme.palette.primary.main\r\n }\r\n}));\r\n\r\nfunction VerificationProcedureType(\r\n {\r\n className,\r\n contractorVerificationProcedure,\r\n handleProcedureChange,\r\n editable\r\n }) {\r\n\r\n const classes = useStyles();\r\n const [confirmOpened, setConfirmOpened] = useState(false);\r\n\r\n const handleProcedureChangeConfirm = () => {\r\n setConfirmOpened(false);\r\n handleProcedureChange(contractorVerificationProcedure.verificationProcedure === ContractorVerificationProcedureType.CLASSIC ?\r\n ContractorVerificationProcedureType.REVERSE : ContractorVerificationProcedureType.CLASSIC);\r\n };\r\n\r\n const handleToggleClick = (event, newProcedure) => {\r\n if (editable && newProcedure !== null) {\r\n setConfirmOpened(true)\r\n }\r\n };\r\n const proc = contractorVerificationProcedure.verificationProcedure;\r\n\r\n return (\r\n \r\n \r\n \r\n {ContractorVerificationProcedureTypeLabel(ContractorVerificationProcedureType.CLASSIC)}\r\n \r\n \r\n \r\n {ContractorVerificationProcedureTypeLabel(ContractorVerificationProcedureType.REVERSE)}\r\n \r\n \r\n \r\n \r\n\r\n setConfirmOpened(false)}\r\n confirmText=\"contractor_verification_procedure_change_confirm\"\r\n />\r\n \r\n )\r\n}\r\n\r\nVerificationProcedureType.propTypes = {\r\n contractorVerificationProcedure: PropTypes.shape({\r\n verificationProcedure: PropTypes.string\r\n }),\r\n handleProcedureChange: PropTypes.func,\r\n editable: PropTypes.bool\r\n}\r\n\r\nexport default VerificationProcedureType;\r\n\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const ContractorVerificationOfferStatus = {\r\n ALLOWED: \"ALLOWED\",\r\n ALLOWED_PARTIALLY: \"ALLOWED_PARTIALLY\",\r\n EXCLUDED: \"EXCLUDED\",\r\n REVERSE_PROCEDURE: \"REVERSE_PROCEDURE\",\r\n OFFER_REJECTED: \"OFFER_REJECTED\",\r\n NOT_SCORED: \"NOT_SCORED\",\r\n NOT_VERIFIED: \"NOT_VERIFIED\"\r\n}\r\nconst _TR_PREFIX = 'contractor_verification_offer_status_';\r\n\r\nexport const ContractorVerificationOfferStatusLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport applySearchParams from \"libs/applySearchParams\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\n\r\nconst CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID = 'contractorVerificationList';\r\nconst CONTRACTOR_VERIFICATION_PROCEDURE_RESOURCE_ID = 'contractorVerificationProcedure';\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n}\r\n\r\nconst getContractors = async (roundId, pagination, search) => {\r\n const params = {\r\n ...pagination\r\n };\r\n applySearchParams(search, params);\r\n try {\r\n const res = await RestRequestGET(Endpoints.CONTRACTOR_VERIFICATION_LIST(roundId), {params});\r\n let res2;\r\n if (pagination.page > 1) {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID]?.items) {\r\n res2 = {\r\n ...res,\r\n items: [...state.resources[CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID].items, ...res.items],\r\n };\r\n }\r\n } else {\r\n res2 = res;\r\n }\r\n reduxStore.dispatch(setResource(CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID, res2));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst updateContractorStatus = async (demandId, contractor, status) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.CONTRACTOR_VERIFICATION_STATUS(demandId), {contractor, status});\r\n if (resp.success) {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.[CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID]?.items) {\r\n const curRes = state.resources[CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID];\r\n const res = {\r\n ...curRes,\r\n items: curRes.items.map(x => x.contractor.identity === contractor.identity ? {...x, status} : x)\r\n }\r\n reduxStore.dispatch(setResource(CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID, res))\r\n }\r\n await validateSection(DemandValidation.CONTRACTOR_VERIFICATION, demandId, false);\r\n await validateSection(DemandValidation.OFFERS_EVALUATION, demandId, false);\r\n await validateSection(DemandValidation.OFFER_CHOICE, demandId, false);\r\n }\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst getProcedure = async (id) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.CONTRACTOR_VERIFICATION_PROCEDURE(id));\r\n reduxStore.dispatch(setResource(CONTRACTOR_VERIFICATION_PROCEDURE_RESOURCE_ID, resp));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst updateProcedure = async (demandId, verificationProcedure) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.CONTRACTOR_VERIFICATION_PROCEDURE(demandId), {verificationProcedure});\r\n reduxStore.dispatch(setResource(CONTRACTOR_VERIFICATION_PROCEDURE_RESOURCE_ID, resp));\r\n await validateSection(DemandValidation.CONTRACTOR_VERIFICATION, demandId, false);\r\n await validateSection(DemandValidation.OFFERS_EVALUATION, demandId, false);\r\n await validateSection(DemandValidation.OFFER_CHOICE, demandId, false);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.CONTRACTOR_VERIFICATION_VALIDATE(id));\r\n}\r\n\r\nexport default {\r\n getContractors,\r\n updateContractorStatus,\r\n getProcedure,\r\n updateProcedure,\r\n validate,\r\n clearResources,\r\n CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID,\r\n CONTRACTOR_VERIFICATION_PROCEDURE_RESOURCE_ID\r\n}","import React, {useMemo, useState} from \"react\";\r\nimport {makeStyles, TableCell, TableRow} from \"@material-ui/core\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport {ContractorVerificationOfferStatus, ContractorVerificationOfferStatusLabel} from \"constants/ContractorVerificationOfferStatus\";\r\nimport PropTypes from \"prop-types\";\r\nimport ContractorVerificationService from \"services/ContractorVerificationService\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n statusCell: {\r\n paddingTop: theme.spacing(),\r\n paddingBottom: theme.spacing(),\r\n }\r\n}));\r\n\r\nfunction ContractorVerificationRow(\r\n {\r\n index,\r\n contractorVerificationProcedure,\r\n contractorElem,\r\n working,\r\n editable,\r\n demandId\r\n }) {\r\n\r\n const classes = useStyles();\r\n const [rowWorking, setRowWorking] = useState(false);\r\n const [confirmOpened, setConfirmOpened] = useState(false);\r\n const [statusToConfirm, setStatusToConfirm] = useState(null)\r\n const statusesList = useMemo(()=> Object.keys(ContractorVerificationOfferStatus).filter(x => !!contractorVerificationProcedure.changeable || x !== ContractorVerificationOfferStatus.REVERSE_PROCEDURE).map(key => ({label: ContractorVerificationOfferStatusLabel(key), value: key})), [contractorVerificationProcedure]);\r\n\r\n const updateContractorStatus = (newStatus, confirmed) => {\r\n\r\n if (!confirmed && newStatus === ContractorVerificationOfferStatus.OFFER_REJECTED) {\r\n setConfirmOpened(true);\r\n setStatusToConfirm(ContractorVerificationOfferStatus.OFFER_REJECTED);\r\n } else if (!confirmed && newStatus === ContractorVerificationOfferStatus.NOT_SCORED) {\r\n setConfirmOpened(true);\r\n setStatusToConfirm(ContractorVerificationOfferStatus.NOT_SCORED);\r\n } else {\r\n setRowWorking(true);\r\n ContractorVerificationService.updateContractorStatus(demandId, contractorElem.contractor, newStatus).finally(() => setRowWorking(false))\r\n }\r\n }\r\n\r\n return (\r\n {index + 1}.\r\n {contractorElem.contractor.consorciumOffer ? Tr('consorcium_with_name', {name: contractorElem.contractor.name}) : contractorElem.contractor.name}\r\n \r\n {\r\n updateContractorStatus(e.target.value)\r\n }}\r\n working={rowWorking}\r\n />\r\n { setConfirmOpened(false)}\r\n onConfirm={() => {\r\n setConfirmOpened(false);\r\n updateContractorStatus(statusToConfirm, true)\r\n }}\r\n open={confirmOpened}\r\n translateConfirmTexts\r\n />}\r\n \r\n )\r\n}\r\n\r\nContractorVerificationRow.propTypes = {\r\n index: PropTypes.number,\r\n contractor: PropTypes.shape({\r\n contractor: PropTypes.shape({\r\n identity: PropTypes.number,\r\n name: PropTypes.string\r\n }),\r\n status: PropTypes.string\r\n }),\r\n working: PropTypes.bool,\r\n editable: PropTypes.bool,\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n};\r\n\r\nexport default ContractorVerificationRow;\r\n\r\n","import React from \"react\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableContainer, TableHead, TableRow} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport Tr from 'translations/Translations';\r\nimport ContractorVerificationRow from \"./ContractorVerificationRow\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n tableLayout: 'fixed',\r\n\r\n '& td, th': {\r\n overflow: 'hidden',\r\n }\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n statusColumn: {\r\n width: 300,\r\n paddingRight: theme.spacing(2)\r\n },\r\n}));\r\n\r\nfunction ContractorVerificationTable(\r\n {\r\n contractorList,\r\n contractorVerificationProcedure,\r\n working,\r\n editable,\r\n demandId\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n {Tr(\"column_lp\")}\r\n {Tr(\"contractor\")}\r\n {Tr(\"contractor_status\")}\r\n \r\n \r\n \r\n {contractorList.items.map((contractorElem, index) =>\r\n \r\n )}\r\n \r\n
\r\n
)\r\n}\r\n\r\nexport default ContractorVerificationTable;\r\n\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {connect} from \"react-redux\";\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport VerificationProcedureType from \"./components/VerificationProcedureType\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport Loading from \"components/Loading\";\r\nimport MoreButton from \"components/button/MoreButton\";\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport ContractorVerificationTable from \"./components/ContractorVerificationTable\";\r\nimport ContractorVerificationService from \"services/ContractorVerificationService\";\r\nimport Tr from \"translations/Translations\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport Link from \"@material-ui/core/Link\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n marginBottom: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n marginBottomItalic: {\r\n marginBottom: theme.spacing(2),\r\n fontStyle: 'italic'\r\n }\r\n}));\r\n\r\nfunction ContractorVerification(\r\n {\r\n match,\r\n contractorVerificationList,\r\n contractorVerificationProcedure,\r\n demandValidation\r\n }) {\r\n const classes = useStyles();\r\n\r\n const FORM_ID = DemandValidation.CONTRACTOR_VERIFICATION;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === FORM_ID);\r\n const editable = section ? section.editable : false;\r\n\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig, setSortConfig} = useSearch();\r\n const [working, setWorking] = useState(true);\r\n\r\n useEffect(() => {\r\n ContractorVerificationService.getProcedure(demandId);\r\n return () => {\r\n ContractorVerificationService.clearResources(ContractorVerificationService.CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID);\r\n ContractorVerificationService.clearResources(ContractorVerificationService.CONTRACTOR_VERIFICATION_PROCEDURE_RESOURCE_ID);\r\n }\r\n }, [demandId])\r\n\r\n useEffect(() => {\r\n setWorking(true);\r\n const {pagination, search} = searchData;\r\n ContractorVerificationService.getContractors(demandId, pagination, search).then(() => (setWorking(false)));\r\n // eslint-disable-next-line\r\n }, [searchData, demandId])\r\n\r\n useDidUpdateEffect(() => {\r\n if (contractorVerificationList?.totalCount !== undefined) {\r\n setTotalCount(contractorVerificationList.totalCount)\r\n }\r\n }, [contractorVerificationList?.totalCount]);\r\n\r\n const handleProcedureChange = (newProcedure) => {\r\n ContractorVerificationService.clearResources(ContractorVerificationService.CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID);\r\n ContractorVerificationService.updateProcedure(demandId, newProcedure).then(() => {\r\n setSortConfig(null);\r\n })\r\n }\r\n\r\n if (!contractorVerificationList || !contractorVerificationProcedure) return ;\r\n\r\n return (
\r\n \r\n \r\n {Tr('contractor.sanction.check.info')}\r\n \r\n LINK\r\n \r\n \r\n { !!contractorVerificationProcedure.changeable && \r\n }\r\n\r\n \r\n\r\n \r\n\r\n \r\n
)\r\n}\r\n\r\nexport default connect((state) => ({\r\n contractorVerificationList: state.resources[ContractorVerificationService.CONTRACTOR_VERIFICATION_LIST_RESOURCE_ID],\r\n contractorVerificationProcedure: state.resources[ContractorVerificationService.CONTRACTOR_VERIFICATION_PROCEDURE_RESOURCE_ID],\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(ContractorVerification));\r\n\r\n","import React from 'react'\r\nimport ContractorVerification from \"./ContractorVerification\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport applySearchParams from \"libs/applySearchParams\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\n\r\nconst OFFER_EVALUATION_LIST_RESOURCE_ID = 'offerEvaluationList';\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n}\r\n\r\nconst getOffers = async (demandId, pagination, search, mode, roundType) => {\r\n const params = {\r\n ...pagination\r\n };\r\n applySearchParams(search, params);\r\n try {\r\n const resp = await RestRequestGET(Endpoints.OFFER_EVALUATION_LIST(demandId, mode, roundType), {params});\r\n //const resp = {...lsit(pagination, search, mode)};\r\n reduxStore.dispatch(setResource(OFFER_EVALUATION_LIST_RESOURCE_ID, resp));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst handleUpdate = async (response, mode, offerItem, rowItem, status) => {\r\n if (response.success) {\r\n const result = response.result;\r\n const changeType = result.changeType;\r\n const {resources} = reduxStore.getState();\r\n\r\n switch (changeType) {\r\n case AVAILABLE_CHANGE_TYPES.STATUS:\r\n const list = resources[OFFER_EVALUATION_LIST_RESOURCE_ID];\r\n const newList = {\r\n ...list,\r\n items: list.items.map(offer => {\r\n if (offer.identity === offerItem.identity) {\r\n offer.offerEvaluations = offer.offerEvaluations.map(row => {\r\n if (row.identity === rowItem.identity) {\r\n row.status = status;\r\n }\r\n return row;\r\n })\r\n }\r\n return offer;\r\n })\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EVALUATION_LIST_RESOURCE_ID, newList));\r\n break;\r\n case AVAILABLE_CHANGE_TYPES.ROW:\r\n const list2 = resources[OFFER_EVALUATION_LIST_RESOURCE_ID];\r\n const newList2 = {\r\n ...list2,\r\n items: list2.items.map(offer => {\r\n\r\n if (offer.identity === offerItem.identity) {\r\n offer.offerEvaluations = offer.offerEvaluations.map(row => {\r\n if (row.identity === rowItem.identity) {\r\n return result.offerEvaluation;\r\n }\r\n return row;\r\n })\r\n }\r\n return offer;\r\n })\r\n }\r\n reduxStore.dispatch(setResource(OFFER_EVALUATION_LIST_RESOURCE_ID, newList2));\r\n break;\r\n case AVAILABLE_CHANGE_TYPES.ALL:\r\n break;\r\n default:\r\n throw new Error(\"Unsupported change type: \" + changeType);\r\n }\r\n\r\n return changeType;\r\n }\r\n}\r\n\r\nconst updateStatus = async (demandId, mode, roundType, offerItem, row, status) => {\r\n const data = {\r\n identity: offerItem.identity,\r\n mode,\r\n offerEvaluation: {\r\n identity: row.identity,\r\n status\r\n }\r\n }\r\n const resp = await RestRequestPOST(Endpoints.OFFER_EVALUATION_LIST_UPDATE_STATUS(demandId, mode, roundType), data);\r\n await validateSection(DemandValidation.OFFERS_EVALUATION, demandId, false);\r\n return handleUpdate(resp, mode, offerItem, row, status);\r\n};\r\n\r\nconst updateScore = async (demandId, mode, roundType, offerItem, row, criterion, score) => {\r\n const data = {\r\n identity: offerItem.identity,\r\n mode,\r\n offerEvaluation: {\r\n identity: row.identity,\r\n criteriaEvaluation: {\r\n identity: criterion.identity,\r\n score\r\n }\r\n }\r\n }\r\n\r\n const resp = await RestRequestPOST(Endpoints.OFFER_EVALUATION_LIST_UPDATE_SCORE(demandId, mode, roundType), data);\r\n await validateSection(DemandValidation.OFFERS_EVALUATION, demandId, false);\r\n return handleUpdate(resp, mode, offerItem, row);\r\n};\r\n\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.OFFER_EVALUATION_VALIDATE(id));\r\n}\r\n\r\nconst AVAILABLE_CHANGE_TYPES = {\r\n STATUS: \"STATUS\",\r\n ROW: \"ROW\",\r\n ALL: \"ALL\"\r\n}\r\n\r\nexport default {\r\n getOffers,\r\n updateStatus,\r\n updateScore,\r\n validate,\r\n clearResources,\r\n OFFER_EVALUATION_LIST_RESOURCE_ID,\r\n AVAILABLE_CHANGE_TYPES\r\n}","const OfferEvaluationViewMode = {\r\n POSITION: \"POSITION\",\r\n SUPPLIER: \"SUPPLIER\"\r\n}\r\n\r\nexport default OfferEvaluationViewMode;","import Tr from 'translations/Translations';\r\n\r\nexport const OfferEvaluationPositionStatus = {\r\n ALLOWED: \"ALLOWED\",\r\n EXCLUDED: \"EXCLUDED\",\r\n EXTREMELY_LOW: \"EXTREMELY_LOW\",\r\n NOT_SCORED: \"NOT_SCORED\",\r\n OUT_OF_DATE: \"OUT_OF_DATE\",\r\n EXCLUDED_FROM_CONTRACT: \"EXCLUDED_FROM_CONTRACT\"\r\n}\r\nconst _TR_PREFIX = 'offer_evaluation_position_status_';\r\n\r\nexport const OfferEvaluationPositionStatusLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {makeStyles, TextField, Tooltip, Typography} from \"@material-ui/core\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PropTypes from \"prop-types\";\r\nimport DoneIcon from '@material-ui/icons/Done'\r\nimport WorkableIconEditButton from \"components/button/WorkableIconEditButton\";\r\nimport Tr from \"translations/Translations\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n edit: {\r\n width: 'auto'\r\n },\r\n error: {\r\n fontSize: '0.8em'\r\n }\r\n}));\r\n\r\nconst scoreRegex = /^((([0-9]{1,2}?)([,][0-9]{0,2})?)|100|)$/;\r\nconst emptyRegex = /^$/\r\nconst emptyEditMode = {enabled: false, value: \"\", error: false, working: false}\r\nfunction OffersEvaluationScoreColumn(\r\n {\r\n editable,\r\n offerEvaluationRow,\r\n offerEvaluationCriterion,\r\n updateScore\r\n }) {\r\n\r\n const classes = useStyles();\r\n const [editMode, setEditMode] = useState(emptyEditMode);\r\n\r\n useEffect(() => {\r\n if (editMode)\r\n setEditMode(emptyEditMode);\r\n // eslint-disable-next-line\r\n }, [offerEvaluationRow])\r\n\r\n const onScoreClick = () => {\r\n const value = editMode.value;\r\n if (emptyRegex.test(value)) {\r\n setEditMode(emptyEditMode);\r\n } else if (scoreRegex.test(value)) {\r\n const number = parseFloat(value.replace(/[,]/, \".\"));\r\n if(number <= offerEvaluationCriterion.weight) {\r\n setEditMode(x => ({...x, working: true}))\r\n updateScore(number, offerEvaluationCriterion).finally(()=> setEditMode(emptyEditMode));\r\n }\r\n }\r\n }\r\n\r\n const handleKeyPress = (e) => {\r\n if (!editMode.error && e.key === 'Enter') {\r\n onScoreClick();\r\n }\r\n }\r\n\r\n const handleChange = (e) => {\r\n const value = e.target.value.replace(/[.]/, \",\");\r\n if (emptyRegex.test(value) || scoreRegex.test(value)) {\r\n const number = parseFloat(value.replace(/[,]/, \".\"));\r\n const error = number > offerEvaluationCriterion.weight;\r\n setEditMode(x => ({...x, value, error}))\r\n }\r\n }\r\n\r\n return (\r\n \r\n {editMode.enabled ?\r\n \r\n handleChange(e)}\r\n onKeyUp={handleKeyPress}\r\n fullWidth\r\n disabled={!editable}\r\n value={editMode.value}\r\n error={editMode.error}\r\n /> :\r\n {formatAmountNumber(offerEvaluationCriterion.score, '-')}\r\n }\r\n {offerEvaluationCriterion.editable && <>\r\n {editMode.enabled ?\r\n :\r\n {\r\n setEditMode({enabled: true, value: formatAmountNumber(offerEvaluationCriterion.score, '-'), error: (offerEvaluationCriterion.score > offerEvaluationCriterion.weight), working: false});\r\n }}\r\n color='primary'\r\n disabled={!editable}\r\n />}\r\n \r\n }\r\n\r\n \r\n {editMode.error && {Tr(\"score_exceed_weight\", {value: formatAmountNumber(offerEvaluationCriterion.weight, '-')})}}\r\n )\r\n}\r\n\r\nOffersEvaluationScoreColumn.propTypes = {\r\n editable: PropTypes.bool.isRequired,\r\n offerEvaluationRow: PropTypes.object.isRequired,\r\n offerEvaluationCriterion: PropTypes.object.isRequired,\r\n updateScore: PropTypes.func.isRequired\r\n}\r\n\r\nexport default OffersEvaluationScoreColumn;\r\n\r\n","import React, {useState} from \"react\";\r\nimport {makeStyles, TableCell, TableRow, Typography} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from \"clsx\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport {OfferEvaluationPositionStatus, OfferEvaluationPositionStatusLabel} from \"../constants/OfferEvaluationPositionStatus\";\r\nimport PropTypes from \"prop-types\";\r\nimport ViewMode from \"../constants/OfferEvaluationViewMode\";\r\nimport OffersEvaluationScoreColumn from \"./OffersEvaluationScoreColumn\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n italic: {\r\n fontStyle: 'italic',\r\n userSelect: 'none'\r\n },\r\n evenRow: {\r\n backgroundColor: theme.palette.background.default\r\n },\r\n lastRow: {\r\n borderBottom: `solid 2px ${theme.palette.primary.main}`\r\n },\r\n scoreColumn: {\r\n padding: '4px 4px 4px 8px !important'\r\n },\r\n statusSelect: {\r\n width: 170,\r\n \"& .MuiSelect-selectMenu\": {\r\n whiteSpace: \"normal\"\r\n }\r\n }\r\n}));\r\n\r\nconst statusesList = Object.keys(OfferEvaluationPositionStatus).map(key => ({label: OfferEvaluationPositionStatusLabel(key), value: key}));\r\n\r\n\r\nfunction OffersEvaluationRow(\r\n {\r\n editable,\r\n offerEvaluationRow,\r\n mode,\r\n rowNumber,\r\n updateScore,\r\n updateStatus\r\n }) {\r\n\r\n const classes = useStyles();\r\n const even = rowNumber % 2 === 1;\r\n const [statusWorking, setStatusWorking] = useState(false);\r\n const [scoreWorking, setScoreWorking] = useState(false);\r\n const [confirmOpened, setConfirmOpened] = useState(false);\r\n\r\n const onUpdateScore = async (score, criterion) => {\r\n setScoreWorking(true);\r\n try {\r\n await updateScore(score, criterion, offerEvaluationRow);\r\n } finally {\r\n setScoreWorking(false);\r\n }\r\n }\r\n\r\n const onUpdateStatus = (newStatus, confirmed) => {\r\n\r\n if (!confirmed && newStatus === OfferEvaluationPositionStatus.ALLOWED && offerEvaluationRow.status === OfferEvaluationPositionStatus.EXTREMELY_LOW) {\r\n setConfirmOpened(true);\r\n } else {\r\n setStatusWorking(true);\r\n updateStatus(newStatus, offerEvaluationRow).finally(() => setStatusWorking(false));\r\n }\r\n\r\n }\r\n\r\n return (offerEvaluationRow.criteriaEvaluation.map((element, index, array) => {\r\n const first = index === 0;\r\n const last = index === array.length - 1;\r\n\r\n const rowSpan = offerEvaluationRow.criteriaEvaluation.length;\r\n return (\r\n {first && \r\n \r\n {Tr(`offer_evaluation_mode_title_${mode === ViewMode.SUPPLIER ? ViewMode.POSITION.toLowerCase() : ViewMode.SUPPLIER.toLowerCase()}`, {value: offerEvaluationRow.order})}\r\n \r\n {mode === ViewMode.POSITION ?\r\n \r\n {offerEvaluationRow.consorciumOffer ? Tr('consorcium_with_name', {name: offerEvaluationRow.name}) : offerEvaluationRow.name}\r\n \r\n : <>\r\n \r\n {offerEvaluationRow.name}\r\n \r\n {offerEvaluationRow.consorciumOffer && \r\n ({Tr('consorcium_offer')})\r\n }\r\n \r\n\r\n }\r\n }\r\n {element.name}\r\n {formatAmountNumber(element.weight, '-')}\r\n {element.value}\r\n \r\n \r\n \r\n\r\n {first && {formatAmountNumber(offerEvaluationRow.score)}}\r\n {first && \r\n onUpdateStatus(event.target.value)}\r\n working={statusWorking}\r\n />\r\n { setConfirmOpened(false)}\r\n onConfirm={() => {\r\n setConfirmOpened(false);\r\n onUpdateStatus(OfferEvaluationPositionStatus.ALLOWED, true)\r\n }}\r\n open={confirmOpened}\r\n />}\r\n }\r\n )\r\n }))\r\n}\r\n\r\nOffersEvaluationRow.propTypes = {\r\n editable: PropTypes.bool.isRequired,\r\n offerEvaluationRow: PropTypes.object.isRequired,\r\n mode: PropTypes.oneOf([ViewMode.POSITION, ViewMode.SUPPLIER]).isRequired,\r\n rowNumber: PropTypes.number.isRequired,\r\n updateScore: PropTypes.func.isRequired,\r\n updateStatus: PropTypes.func.isRequired\r\n}\r\n\r\nexport default OffersEvaluationRow;\r\n\r\n","import React from \"react\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport ViewMode from \"../constants/OfferEvaluationViewMode\";\r\nimport OffersEvaluationRow from \"./OffersEvaluationRow\";\r\nimport PropTypes from \"prop-types\";\r\nimport BoldTypography from \"../../../../../../../../components/BoldTypography\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n border: `solid 3px ${theme.palette.background.paper}`,\r\n \"& .MuiTableCell-root\": {\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n padding: theme.spacing()\r\n }\r\n },\r\n headRow: {\r\n \"&>.MuiTableCell-head\": {\r\n textAlign: \"center\",\r\n borderBottom: `solid 2px ${theme.palette.primary.main}`\r\n }\r\n },\r\n critColumn: {},\r\n weightColumn: {\r\n width: 40\r\n },\r\n valueColumn: {\r\n width: '15%'\r\n },\r\n scoreColumn: {\r\n width: 100\r\n },\r\n scoreTotalColumn: {\r\n width: 50\r\n },\r\n statusColumn: {\r\n width: 170\r\n },\r\n\r\n}));\r\n\r\nfunction OffersEvaluationTable(\r\n {\r\n editable,\r\n offerEvaluationItem,\r\n updateScore,\r\n updateStatus\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const mode = offerEvaluationItem?.mode;\r\n\r\n const onUpdateScore = async (score, criterion, row) => {\r\n await updateScore(score, criterion, row, offerEvaluationItem, mode);\r\n }\r\n\r\n const onUpdateStatus = async (status, row) => {\r\n await updateStatus(status, row, offerEvaluationItem, mode);\r\n }\r\n\r\n return (\r\n \r\n \r\n {Tr(mode === ViewMode.SUPPLIER ? \"part\" : \"offer\")}\r\n {Tr(\"criteria\")}\r\n {Tr(\"weight\")}\r\n {Tr(\"value\")}\r\n {Tr(\"score\")}\r\n {Tr(\"score_total\")}\r\n {Tr(\"status\")}\r\n \r\n \r\n \r\n {\r\n offerEvaluationItem.offerEvaluations.length ?\r\n offerEvaluationItem.offerEvaluations.map((x, index) =>\r\n )\r\n :\r\n \r\n \r\n {Tr('no_options')}\r\n \r\n \r\n }\r\n \r\n
)\r\n}\r\n\r\nOffersEvaluationTable.propTypes = {\r\n editable: PropTypes.bool.isRequired,\r\n offerEvaluationItem: PropTypes.object.isRequired,\r\n updateScore: PropTypes.func.isRequired,\r\n updateStatus: PropTypes.func.isRequired\r\n}\r\n\r\nexport default OffersEvaluationTable;\r\n\r\n","import React, {useEffect, useState} from 'react'\r\nimport Pagination from '@material-ui/lab/Pagination';\r\nimport PropTypes from 'prop-types';\r\nimport {getPaginationConfig} from \"hooks/useSearch\";\r\nimport GridBlock from \"./GridBlock\";\r\nimport {makeStyles, TextField} from \"@material-ui/core\";\r\nimport Typography from \"./Typography\";\r\nimport IconButton from \"./button/IconButton\";\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowRight'\r\nimport Tr from 'translations/Translations'\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginTop: theme.spacing()\r\n },\r\n pageInputInput: {\r\n \"&>input\": {\r\n textAlign: 'center'\r\n }\r\n },\r\n pageInput: {\r\n width: theme.components.input.criteria.width,\r\n marginLeft: theme.spacing()\r\n },\r\n emptyWidth: {\r\n width: 200\r\n },\r\n goToPage: {\r\n userSelect: 'none'\r\n }\r\n}));\r\n\r\nfunction DottedPagination(\r\n {\r\n config = getPaginationConfig(1, 10),\r\n setConfig = () => {\r\n },\r\n totalCount = 0,\r\n disabled,\r\n showManualInputField = true\r\n }) {\r\n\r\n const classes = useStyles();\r\n const [pageValue, setPageValue] = useState(\"\");\r\n const handleChangePage = (event, newPage) => {\r\n setConfig({...config, page: newPage});\r\n }\r\n\r\n useEffect(() => {\r\n setPageValue((\"\"))\r\n }, [config])\r\n\r\n const changePage = (e) => {\r\n let value = e.target.value;\r\n if (/^\\d+$/.test(value)) {\r\n const intVal = parseInt(value);\r\n if (intVal >= 1 && intVal <= totalCount) {\r\n setPageValue(value);\r\n }\r\n } else if (value === \"\") {\r\n setPageValue(value);\r\n }\r\n }\r\n\r\n const handleKeyUp = (e) => {\r\n if (e.key === 'Enter') {\r\n handleConfirmPageValue();\r\n }\r\n }\r\n\r\n const handleConfirmPageValue = () => {\r\n if (pageValue !== \"\") {\r\n setConfig({...config, page: parseInt(pageValue)});\r\n }\r\n }\r\n\r\n return (\r\n \r\n {showManualInputField &&
}\r\n \r\n {showManualInputField && \r\n {Tr('go_to_page')}:\r\n \r\n \r\n }\r\n
\r\n\r\n )\r\n}\r\n\r\nDottedPagination.propTypes = {\r\n config: PropTypes.shape({\r\n page: PropTypes.number,\r\n pageSize: PropTypes.number\r\n }),\r\n setConfig: PropTypes.func,\r\n totalCount: PropTypes.number,\r\n disabled: PropTypes.bool,\r\n showCustomInput: PropTypes.bool\r\n}\r\n\r\nexport default DottedPagination;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport ArrowIconRight from '@material-ui/icons/KeyboardArrowRight'\r\nimport Tr from 'translations/Translations'\r\nimport Button from \"./Button\";\r\nimport ArrowIconLeft from '@material-ui/icons/KeyboardArrowLeft'\r\n\r\nexport const Types = {\r\n PREV: \"prev\",\r\n NEXT: \"next\"\r\n}\r\n\r\nfunction PaginationButton(\r\n {\r\n type = Types.NEXT,\r\n config,\r\n setConfig = () => {\r\n },\r\n totalCount = 0,\r\n disabled\r\n }) {\r\n\r\n\r\n const changePage = () => {\r\n if (type === Types.NEXT) {\r\n const newPage = config.page + 1;\r\n if(totalCount >= newPage)\r\n setConfig({...config, page: newPage});\r\n }\r\n if (type ===Types.PREV) {\r\n const newPage = config.page - 1;\r\n if(newPage >= 1 && totalCount >= newPage )\r\n setConfig({...config, page: newPage});\r\n }\r\n }\r\n\r\n const variantDisabled = disabled || (type === Types.NEXT && config.page >= totalCount) || (type === Types.PREV && config.page <= 1)\r\n\r\n\r\n return (\r\n \r\n {type === \"prev\" && }\r\n {type === \"prev\" ? Tr(\"previous\") : Tr(\"next\")}\r\n {type === \"next\" && }\r\n \r\n\r\n )\r\n}\r\n\r\nPaginationButton.propTypes = {\r\n config: PropTypes.shape({\r\n page: PropTypes.number,\r\n pageSize: PropTypes.number\r\n }),\r\n setConfig: PropTypes.func,\r\n totalCount: PropTypes.number,\r\n disabled: PropTypes.bool,\r\n type: PropTypes.oneOf([Types.PREV, Types.NEXT])\r\n}\r\n\r\nexport default PaginationButton;\r\n","import Tr from \"translations/Translations\";\r\n\r\nexport const OfferEvaluationRoundType = {\r\n BASE: \"base\",\r\n ADDITIONAL_OFFERS: \"additional_offers\",\r\n AUCTION: \"auction\"\r\n}\r\nconst _TR_PREFIX = 'offer_evaluation_round_type_';\r\n\r\nexport const OfferEvaluationRoundTypeLabel = (type) => (Tr(_TR_PREFIX + type));\r\n","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport {TextField} from \"@material-ui/core\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport {OfferEvaluationRoundType, OfferEvaluationRoundTypeLabel} from \"../constants/OfferEvaluationRoundType\";\r\nimport ViewMode from \"../constants/OfferEvaluationViewMode\";\r\nimport {useDidUpdateEffect} from \"../../../../../../../../hooks/useDidUpdateEffect\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2),\r\n '&>*:not(:first-child):not(:last-child)': {\r\n marginLeft: theme.spacing(4),\r\n }\r\n },\r\n roundType: {\r\n width: 285,\r\n },\r\n search: {\r\n width: 250,\r\n }\r\n}));\r\n\r\nconst EMPTY_SEARCH_OBJECT = {roundType: OfferEvaluationRoundType.BASE, search: ''}\r\nconst MAX_SEARCH_LENGTH = 100;\r\n\r\nconst decisionsList =\r\n [OfferEvaluationRoundType.BASE, OfferEvaluationRoundType.ADDITIONAL_OFFERS, OfferEvaluationRoundType.AUCTION].map(key => ({\r\n label: OfferEvaluationRoundTypeLabel(key),\r\n value: key\r\n }))\r\n\r\nfunction OfferEvaluationSearch(\r\n {\r\n searchInProgress,\r\n doSearch,\r\n viewMode\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [value, setValue] = useState({...EMPTY_SEARCH_OBJECT});\r\n const [submitState, setSubmitState] = useState({counter: 0, paginationClear:true});\r\n\r\n useEffect(() => {\r\n if (submitState && !searchInProgress) {\r\n const valueFiltered = Object.keys(value)\r\n .filter((k) => value[k])\r\n .reduce((a, k) => ({...a, [k]: value[k]}), {});\r\n doSearch(valueFiltered, submitState.paginationClear);\r\n }\r\n // eslint-disable-next-line\r\n }, [submitState]);\r\n\r\n useDidUpdateEffect(()=> {\r\n doClearSearch();\r\n }, [viewMode]);\r\n\r\n\r\n const handleChange = (id, e) => {\r\n setValue({...value, [id]: e.target.value});\r\n }\r\n\r\n const handleSubmit = (paginationClear=true) => {\r\n setSubmitState(x => ({counter: x.counter + 1, paginationClear}))\r\n };\r\n\r\n\r\n const handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n handleSubmit()\r\n }\r\n }\r\n\r\n const doClearSearch = () => {\r\n setValue({...value, search: \"\"});\r\n handleSubmit();\r\n }\r\n\r\n return (\r\n <>\r\n {Tr('search_box')}\r\n \r\n {\r\n handleChange(\"roundType\", e);\r\n handleSubmit(false);\r\n }}\r\n />\r\n\r\n handleChange('search', e)}\r\n onKeyUp={handleKeyPress}\r\n fullWidth\r\n value={value.search}\r\n inputProps={{maxLength: MAX_SEARCH_LENGTH}}\r\n />\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nOfferEvaluationSearch.propTypes = {\r\n doSearch: PropTypes.func.isRequired,\r\n searchInProgress: PropTypes.bool,\r\n viewMode: PropTypes.oneOf([ViewMode.POSITION, ViewMode.SUPPLIER]).isRequired\r\n}\r\n\r\n\r\nexport default OfferEvaluationSearch;","import React, {useEffect, useState} from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {connect} from \"react-redux\";\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport useSearch, {getPaginationConfig} from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport Loading from \"components/Loading\";\r\nimport OfferEvaluationService from \"services/OfferEvaluationService\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport ViewMode from \"./constants/OfferEvaluationViewMode\";\r\nimport OffersEvaluationTable from \"./components/OffersEvaluationTable\";\r\nimport DottedPagination from \"components/DottedPagination\";\r\nimport Tr from \"translations/Translations\";\r\nimport PaginationButton, {Types as PaginationButtonTypes} from \"components/PaginationButton\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport OfferEvaluationSearch from \"./components/OfferEvaluationSearch\";\r\nimport {OfferEvaluationRoundType} from \"./constants/OfferEvaluationRoundType\";\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n italic: {\r\n fontStyle: 'italic',\r\n userSelect: 'none'\r\n },\r\n center: {\r\n textAlign: 'center',\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n marginBottom: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n name: {\r\n marginTop: theme.spacing(2),\r\n marginBottom: theme.spacing(2)\r\n }\r\n}));\r\n\r\n\r\nfunction OffersEvaluation(\r\n {\r\n match,\r\n offerEvaluationList,\r\n demandValidation\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const curDemandValidation = DemandValidation.OFFERS_EVALUATION;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig} =\r\n useSearch({pagination: getPaginationConfig(1, 1), search: {roundType: OfferEvaluationRoundType.BASE}});\r\n const [offerLoading, setOfferLoading] = useState(true);\r\n const [mode, setMode] = useState(ViewMode.POSITION);\r\n\r\n useEffect(() => {\r\n return () => {\r\n OfferEvaluationService.clearResources(OfferEvaluationService.OFFER_EVALUATION_LIST_RESOURCE_ID);\r\n }\r\n }, [demandId])\r\n\r\n useEffect(() => {\r\n setOfferLoading(true);\r\n const pagination = searchData.pagination;\r\n const search = {...searchData.search};\r\n const roundType = search.roundType;\r\n delete search.roundType;\r\n OfferEvaluationService.getOffers(demandId, pagination, search, mode, roundType).then(() => (setOfferLoading(false)));\r\n // eslint-disable-next-line\r\n }, [searchData, demandId])\r\n\r\n useDidUpdateEffect(() => {\r\n if (offerEvaluationList?.totalCount !== undefined) {\r\n setTotalCount(offerEvaluationList.totalCount)\r\n }\r\n }, [offerEvaluationList?.totalCount]);\r\n\r\n const updateStatus = async (status, row, offerItem, mode) => {\r\n try {\r\n const changeType = await OfferEvaluationService.updateStatus(demandId, mode, searchData.search.roundType, offerItem, row, status);\r\n if (changeType === OfferEvaluationService.AVAILABLE_CHANGE_TYPES.ALL) {\r\n setPaginationConfig({...searchData.pagination});\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n const updateScore = async (score, criterion, row, offerItem, mode) => {\r\n try {\r\n const changeType = await OfferEvaluationService.updateScore(demandId, mode, searchData.search.roundType, offerItem, row, criterion, score)\r\n if (changeType === OfferEvaluationService.AVAILABLE_CHANGE_TYPES.ALL) {\r\n setPaginationConfig({...searchData.pagination});\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n const doSearch = (searchOb, paginationClear) => {\r\n setSearchConfig(searchOb, !paginationClear);\r\n };\r\n\r\n if (!offerEvaluationList) return ;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {\r\n setMode(x => x === ViewMode.SUPPLIER ? ViewMode.POSITION : ViewMode.SUPPLIER);\r\n }}\r\n >\r\n {mode === ViewMode.POSITION ? Tr(\"switch_view_per_supplier\") : Tr(\"switch_view_per_part\")}\r\n \r\n \r\n {!offerEvaluationList.items[0] ?\r\n {Tr('no_options')}\r\n :\r\n <>\r\n \r\n \r\n \r\n {Tr(`offer_evaluation_mode_title_${mode.toLowerCase()}`, {value: offerEvaluationList.items[0].order})} - \r\n {offerEvaluationList.items[0].name}\r\n \r\n \r\n \r\n\r\n \r\n \r\n }\r\n
\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n offerEvaluationList: state.resources[OfferEvaluationService.OFFER_EVALUATION_LIST_RESOURCE_ID],\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(OffersEvaluation));\r\n\r\n","import React from 'react'\r\nimport OffersEvaluation from \"./OffersEvaluation\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource, setSaveStatusError} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport applySearchParams from \"libs/applySearchParams\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport DemandSectionsService from \"./DemandSectionsService\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst OFFER_CHOICE_LIST_RESOURCE_ID = 'offerChoiceList';\r\nconst OFFER_CHOICE_JUSTIFICATIONS = 'choiceJustificationBasis';\r\n\r\nconst getChoiceList = async (demandId, pagination, search) => {\r\n const params = {\r\n ...pagination\r\n };\r\n applySearchParams(search, params);\r\n try {\r\n const resp = await RestRequestGET(Endpoints.OFFER_CHOICE(demandId), {params});\r\n reduxStore.dispatch(setResource(OFFER_CHOICE_LIST_RESOURCE_ID, resp));\r\n } catch (error) {\r\n }\r\n};\r\nconst getPositionAuctions = async (demandId, positionId) => {\r\n return await RestRequestGET(Endpoints.OFFER_CHOICE_PREPARE_AUCTION_INFO(demandId, positionId));\r\n};\r\n\r\nconst updatePosition = async (demandId, positionId, sectionsToRefresh) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.OFFER_CHOICE_GET_POSITION(demandId, positionId));\r\n if (isResponseValid(resp)) {\r\n _doUpdatePosition(resp);\r\n await callSectionsValidation(demandId, sectionsToRefresh)\r\n }\r\n } catch (error) {\r\n }\r\n};\r\n\r\nlet updateInProgress = false;\r\nconst callSectionsValidation = async (demandId, sectionsToRefresh) => {\r\n if (!updateInProgress && Array.isArray(sectionsToRefresh)) {\r\n updateInProgress = true;\r\n try {\r\n for (const demandValidation of sectionsToRefresh)\r\n await validateSection(demandValidation, demandId, false);\r\n\r\n } finally {\r\n updateInProgress = false;\r\n }\r\n }\r\n}\r\n\r\nconst addAuctionToAdditionalRoundInfo = (positionId, auction) => {\r\n _doUpdateAuction(positionId, auction, \"ADD\")\r\n}\r\nconst removeAuctionFromAdditionalRoundInfo = (positionId, auction) => {\r\n _doUpdateAuction(positionId, auction, \"DELETE\")\r\n}\r\nconst updateAuctionInAdditionalRoundInfo = (positionId, auction) => {\r\n _doUpdateAuction(positionId, auction, \"UPDATE\")\r\n}\r\n\r\n\r\nconst _doUpdatePosition = (newPos) => {\r\n const {resources} = reduxStore.getState();\r\n\r\n const curList = resources[OFFER_CHOICE_LIST_RESOURCE_ID];\r\n if (curList) {\r\n const newList = {\r\n ...curList,\r\n items: curList.items.map(pos => pos.identity !== newPos.identity ? pos : newPos)\r\n }\r\n reduxStore.dispatch(setResource(OFFER_CHOICE_LIST_RESOURCE_ID, newList));\r\n }\r\n}\r\n\r\nconst _doUpdateAuction = (positionId, auction, mode) => {\r\n const {resources} = reduxStore.getState();\r\n\r\n const curList = resources[OFFER_CHOICE_LIST_RESOURCE_ID];\r\n if (curList) {\r\n const newList = {\r\n ...curList,\r\n items: curList.items.map(pos =>\r\n pos.identity !== positionId ? pos : {\r\n ...pos,\r\n currentAdditionalRoundInfo: {\r\n ...pos.currentAdditionalRoundInfo,\r\n auctions: mode === \"ADD\" ? [...pos.currentAdditionalRoundInfo.auctions, auction] :\r\n (mode === \"UPDATE\" ?\r\n pos.currentAdditionalRoundInfo.auctions.map(auc => auc.auctionId !== auction.auctionId ? auc : auction) :\r\n pos.currentAdditionalRoundInfo.auctions.filter(auc => auc.auctionId !== auction.auctionId)\r\n )\r\n }\r\n }\r\n )\r\n }\r\n reduxStore.dispatch(setResource(OFFER_CHOICE_LIST_RESOURCE_ID, newList));\r\n }\r\n}\r\n\r\n\r\nconst getChoiceJustificationBasis = async (demandId) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.OFFER_CHOICE_JUSTIFICATIONS(demandId));\r\n reduxStore.dispatch(setResource(OFFER_CHOICE_JUSTIFICATIONS, resp));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst getPositionsWithNoOffer = async (demandId) => {\r\n try {\r\n return await RestRequestGET(Endpoints.OFFER_CHOICE_POSITIONS_WITH_NO_OFFER(demandId));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst prepareAdditionalRound = async (demandId, roundType) => {\r\n try {\r\n return await RestRequestGET(Endpoints.OFFER_CHOICE_PREPARE_ADDITIONAL_ROUND(demandId, roundType));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst cancelPositionsWithNoOffer = async (demandId, values) => {\r\n\r\n const data = {\r\n ...values,\r\n offerChoiceDate: values.offerChoiceDate.format()\r\n }\r\n\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE_CANCEL_WHERE_NO_OFFERS(demandId), data);\r\n if (resp.success !== true) {\r\n throw new Error(resp)\r\n }\r\n await validateSection(DemandValidation.OFFER_CHOICE, demandId, false);\r\n await validateSection(DemandValidation.OFFERS_CHOICE_RESULT, demandId, false);\r\n return resp;\r\n};\r\n\r\nconst createAdditionalRound = async (demandId, values, roundType) => {\r\n const data = {\r\n \"endDate\": values.endDate ? values.endDate.format() : null,\r\n \"openOfferDate\": values.openOfferDate ? values.openOfferDate.format() : null,\r\n \"positions\": Object.keys(values.parts).filter(x => values.parts[x].checked === true).map(x => {\r\n const filteredContractors = Object.keys(values.parts[x].contractors).filter(c => values.parts[x].contractors[c] === true);\r\n return {\r\n positionId: x.substring(1),\r\n departmentIds: !!filteredContractors ? filteredContractors.map(c => c.substring(1)) : []\r\n }\r\n }),\r\n \"roundType\": roundType\r\n }\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE_CREATE_ADDITIONAL_ROUND(demandId), data);\r\n await validateSection(DemandValidation.OFFER_CHOICE, demandId, false);\r\n return resp;\r\n};\r\n\r\nconst modifyChoice = async (demandId, positionId) => {\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE_REVOKE(demandId, positionId));\r\n if (!(resp.success && resp.result)) {\r\n throw new Error();\r\n }\r\n await validateSection(DemandValidation.OFFER_CHOICE, demandId, false);\r\n await validateSection(DemandValidation.OFFERS_CHOICE_RESULT, demandId, false);\r\n _doUpdatePosition(resp.result)\r\n}\r\n\r\nconst saveOfferChoice = async (demandId, positionId, canceled, chosenSupplierIds, offerChoiceDate, offerChoiceJustification) => {\r\n const data = {\r\n identity: positionId,\r\n offerChoiceDate: offerChoiceDate.format(),\r\n offerChoiceJustification,\r\n canceled\r\n };\r\n\r\n if (!canceled) {\r\n data.chosenSupplierIds = [...chosenSupplierIds]\r\n }\r\n\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE(demandId), data);\r\n\r\n if (!(resp.success && resp.result)) {\r\n throw new Error();\r\n }\r\n await validateSection(DemandValidation.OFFER_CHOICE, demandId, false);\r\n await validateSection(DemandValidation.OFFERS_CHOICE_RESULT, demandId, false);\r\n _doUpdatePosition(resp.result)\r\n}\r\n\r\n\r\nconst checkForPrimaryTenderChoiceOptions = async (demandId) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.OFFER_CHOICE_PRIMARY_CHECK(demandId));\r\n return resp;\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\nconst postPrimaryTenderDoNegotiations = async (demandId) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE_PRIMARY_DO_NEGOTIATIONS(demandId));\r\n if (isResponseValid(resp, (e) => {throw new Error(e)}))\r\n await DemandSectionsService.getEvaluationSections(demandId, true)\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n};\r\nconst postPrimaryTenderDoOfferChoice = async (demandId) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE_PRIMARY_DO_OFFER_CHOICE(demandId));\r\n if (isResponseValid(resp, (e) => {throw new Error(e)}))\r\n await DemandSectionsService.getEvaluationSections(demandId, true)\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n};\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.OFFER_CHOICE_VALIDATE(id));\r\n}\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n};\r\n\r\nexport default {\r\n getChoiceList,\r\n getPositionsWithNoOffer,\r\n getChoiceJustificationBasis,\r\n createAdditionalRound,\r\n prepareAdditionalRound,\r\n cancelPositionsWithNoOffer,\r\n saveOfferChoice,\r\n updateAuctionInAdditionalRoundInfo,\r\n addAuctionToAdditionalRoundInfo,\r\n removeAuctionFromAdditionalRoundInfo,\r\n updatePosition,\r\n modifyChoice,\r\n getPositionAuctions,\r\n checkForPrimaryTenderChoiceOptions,\r\n postPrimaryTenderDoOfferChoice,\r\n postPrimaryTenderDoNegotiations,\r\n validate,\r\n callSectionsValidation,\r\n clearResources,\r\n OFFER_CHOICE_JUSTIFICATIONS,\r\n OFFER_CHOICE_LIST_RESOURCE_ID\r\n}","import React from 'react'\r\nimport {TablePagination} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport {getPaginationConfig} from \"hooks/useSearch\";\r\n\r\nfunction Pagination(\r\n {\r\n config = getPaginationConfig(1, 10),\r\n setConfig = () => {\r\n },\r\n rowsPerPageOptions = [1, 2, 5, 10, 25, 50],\r\n totalCount = 0,\r\n disabled\r\n }) {\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setConfig({...config, page: newPage + 1});\r\n }\r\n\r\n const handleChangeRowsPerPage = (event) => {\r\n setConfig({...config, page: 1, pageSize: parseInt(event.target.value, 10)});\r\n }\r\n\r\n return (\r\n `${from}-${to === -1 ? count : to} ${Tr('of')} ${count}`}\r\n SelectProps={{\r\n disabled: disabled\r\n }}\r\n backIconButtonProps={\r\n disabled\r\n ? {\r\n disabled: disabled\r\n }\r\n : undefined\r\n }\r\n nextIconButtonProps={\r\n disabled\r\n ? {\r\n disabled: disabled\r\n }\r\n : undefined\r\n }\r\n />\r\n )\r\n}\r\n\r\nPagination.propTypes = {\r\n config: PropTypes.shape({\r\n page: PropTypes.number,\r\n pageSize: PropTypes.number\r\n }),\r\n setConfig: PropTypes.func,\r\n rowsPerPageOptions: PropTypes.arrayOf(PropTypes.number),\r\n totalCount: PropTypes.number,\r\n disabled: PropTypes.bool\r\n}\r\n\r\nexport default Pagination;","import React from \"react\";\r\nimport {makeStyles, TableCell, Tooltip} from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from 'translations/Translations'\r\nimport {CheckBox as CheckBoxIcon, CheckBoxOutlineBlank as CheckBoxOutlineBlankIcon, IndeterminateCheckBox as IndeterminateCheckBoxIcon} from '@material-ui/icons';\r\nimport IconButton from \"components/button/IconButton\";\r\nimport clsx from \"clsx\";\r\nimport Filter1Icon from '@material-ui/icons/Filter1';\r\nimport formatAmountNumber from \"libs/formatAmountNumber\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n italic: {\r\n fontStyle: 'italic',\r\n userSelect: 'none'\r\n },\r\n evenRow: {\r\n backgroundColor: theme.palette.background.default\r\n },\r\n lastRow: {\r\n borderBottom: `solid 2px ${theme.palette.primary.main}`\r\n },\r\n statusSelect: {\r\n width: 170,\r\n \"& .MuiSelect-selectMenu\": {\r\n whiteSpace: \"normal\"\r\n }\r\n },\r\n iconColumn: {\r\n padding: '0 !important'\r\n },\r\n columnChecked: {\r\n backgroundColor: theme.palette.secondary.light\r\n },\r\n unavailable: {\r\n color: theme.palette.text.secondary\r\n },\r\n maxPoints: {\r\n fontWeight: theme.typography.fontWeightBold,\r\n textDecoration: 'underline'\r\n },\r\n iconMax: {\r\n fontSize: 'medium'\r\n }\r\n}));\r\n\r\n\r\nfunction OfferChoiceContractorRowPart(\r\n {\r\n editable,\r\n chosen,\r\n chooseSupplierCountReached,\r\n offerChoiceContractor,\r\n offerChoiceRow,\r\n chooseSupplier,\r\n maxPartScore\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n\r\n const getTooltip = () => {\r\n if (editable && !chosen) {\r\n if (offerChoiceContractor.available) {\r\n if (chooseSupplierCountReached)\r\n return Tr('choose_supplier_max_tooltip', {max: offerChoiceRow.maxOfferChoiceCount})\r\n } else {\r\n return offerChoiceContractor.unavailableReason ? offerChoiceContractor.unavailableReason : Tr('choose_supplier_unavilable');\r\n }\r\n }\r\n return null;\r\n }\r\n const maxScore = maxPartScore === offerChoiceContractor.offerScore;\r\n const className =clsx({\r\n [classes.columnChecked]: chosen,\r\n [classes.unavailable]: !offerChoiceContractor.available,\r\n [classes.maxPoints]: offerChoiceContractor.available && maxScore});\r\n return (<>\r\n {maxScore &&}\r\n {offerChoiceContractor.consorciumOffer ? Tr('consorcium_with_name', {name: offerChoiceContractor.name}) : offerChoiceContractor.name}\r\n {offerChoiceContractor.offerValue}\r\n {formatAmountNumber(offerChoiceContractor.offerScore)}\r\n \r\n chooseSupplier(offerChoiceContractor)}\r\n Icon={offerChoiceContractor.available ? (chosen ? CheckBoxIcon : CheckBoxOutlineBlankIcon) : IndeterminateCheckBoxIcon}\r\n color={ offerChoiceContractor.available ? 'primary' : undefined}\r\n />\r\n \r\n \r\n )\r\n}\r\n\r\nOfferChoiceContractorRowPart.propTypes = {\r\n editable: PropTypes.bool.isRequired,\r\n chosen: PropTypes.bool.isRequired,\r\n chooseSupplierCountReached: PropTypes.bool.isRequired,\r\n offerChoiceContractor: PropTypes.object.isRequired,\r\n offerChoiceRow: PropTypes.object.isRequired,\r\n chooseSupplier: PropTypes.func.isRequired,\r\n maxPartScore: PropTypes.number.isRequired\r\n}\r\n\r\nexport default OfferChoiceContractorRowPart;\r\n\r\n","import PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport Tr from 'translations/Translations';\r\nimport {AuctionType} from \"constants/AuctionType\";\r\nimport Typography from \"components/Typography\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport {AuctionStatusLabel} from \"constants/AuctionStatus\";\r\n\r\nfunction AuctionTypeList(\r\n {\r\n auctionType,\r\n auctions\r\n }) {\r\n\r\n return (<>\r\n {Tr(auctionType === AuctionType.PROD ? 'auctions_prod' : 'auctions_test')}\r\n {Tr('auction_numbers')}:\r\n {auctions.length === 0 ?\r\n {Tr('auctions_empty')}\r\n :\r\n auctions.map((x, i) => (\r\n \r\n {x.auctionId + \" (\" + AuctionStatusLabel(x.status) + \")\"}\r\n \r\n {(i < auctions.length - 1 && auctions.length > 1) && '; '}\r\n \r\n ))\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nAuctionTypeList.propTypes = {\r\n auctions: PropTypes.array.isRequired,\r\n auctionType: PropTypes.string.isRequired,\r\n}\r\n\r\nexport default AuctionTypeList;\r\n","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport {AuctionType} from \"constants/AuctionType\";\r\nimport AuctionTypeList from \"./AuctionTypeList\";\r\n\r\nconst AuctionHistoryPopup = (\r\n {\r\n demandId,\r\n positionId,\r\n onClose\r\n }) => {\r\n\r\n\r\n const [auctions, setAuctions] = useState(null);\r\n\r\n useEffect(() => {\r\n OfferChoiceService.getPositionAuctions(demandId, positionId).then((resp) => {\r\n const {prod, test} = resp.auctions.reduce((prev, cur) => {\r\n if (cur.type === AuctionType.PROD)\r\n prev.prod.push(cur);\r\n else\r\n prev.test.push(cur);\r\n return prev;\r\n }, {prod: [], test: []});\r\n\r\n setAuctions({prod, test})\r\n }).catch(() => setAuctions({}))\r\n }, [demandId, positionId])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('close'), onClose, undefined, !auctions));\r\n return buttons;\r\n }\r\n\r\n return (\r\n }\r\n title={Tr('auctions_information_button')}\r\n maxWidth='sm'\r\n >\r\n \r\n {!auctions ? \r\n :\r\n
\r\n {!!auctions.prod && }\r\n
\r\n {!!auctions.test && }\r\n
\r\n }\r\n \r\n )\r\n}\r\n\r\nAuctionHistoryPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n positionId: PropTypes.number.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default AuctionHistoryPopup","import {useMemo, useState} from \"react\";\r\nimport {makeStyles, TextField} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from \"prop-types\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {KeyboardDatePicker} from \"@material-ui/pickers\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport moment from \"libs/moment\";\r\nimport Button from \"components/Button\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport {createSelectItem} from \"components/Select\";\r\nimport {connect} from \"react-redux\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport AuctionHistoryPopup from \"./auction/AuctionHistoryPopup\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n choiceSize: {\r\n \"& .MuiInput-root\": {\r\n fontSize: theme.typography.body2.fontSize,\r\n color: theme.palette.text.primary\r\n }\r\n },\r\n choiceStatus: {\r\n marginBottom: theme.spacing()\r\n },\r\n choiceControls: {\r\n marginTop: theme.spacing(2),\r\n textAlign: 'center'\r\n },\r\n choiceControlsEnd: {\r\n textAlign: 'end'\r\n },\r\n offerChoiceJustification: {\r\n width: 300,\r\n marginTop: theme.spacing(2)\r\n },\r\n menuItemClassName: {\r\n whiteSpace: 'normal'\r\n },\r\n auctionHistory: {\r\n float: 'right',\r\n }\r\n}));\r\n\r\nfunction OfferChoiceSummaryCell(\r\n {\r\n demandId,\r\n editable,\r\n rowWorking,\r\n working,\r\n offerChoiceRow,\r\n chosenStatusDone,\r\n setChosenStatusDone,\r\n chosenSuppliers,\r\n updateStatus,\r\n modifyChoice,\r\n offerChoiceJustifications\r\n }) {\r\n const classes = useStyles();\r\n const [auctionHistoryPopup, setAuctionHistoryPopup] = useState(false);\r\n const [offerChoiceDateError, setOfferChoiceDateError] = useState(false);\r\n const [modifyConfirmOpen, setModifyConfirmOpen] = useState(false);\r\n const [offerChoiceJustification, setOfferChoiceJustification] = useState(offerChoiceRow.offerChoiceJustification || '');\r\n const [offerChoiceDate, setOfferChoiceDate] = useState(offerChoiceRow.offerChoiceDate ? moment(offerChoiceRow.offerChoiceDate) : null);\r\n\r\n const handleChangeDate = (date) => {\r\n const dateValue = date ? date : null;\r\n setOfferChoiceDateError(!dateValue);\r\n setOfferChoiceDate(dateValue)\r\n }\r\n\r\n const onUpdateStatus = () => {\r\n\r\n if (!offerChoiceDate || !moment.isMoment(offerChoiceDate) || !offerChoiceDate.isValid()) {\r\n setOfferChoiceDateError(true);\r\n return;\r\n }\r\n\r\n const canceled = chosenSuppliers.length === 0;\r\n updateStatus(offerChoiceRow.identity, canceled, canceled ? null : chosenSuppliers, offerChoiceDate, offerChoiceJustification).then(() => {\r\n setChosenStatusDone(true);\r\n }).catch((e) => console.error(e));\r\n\r\n };\r\n\r\n const disabledInputs = working || chosenStatusDone || !editable;\r\n\r\n const auctionHistoryVisible = useMemo(() => offerChoiceRow.currentAdditionalRoundInfo\r\n && offerChoiceRow.currentAdditionalRoundInfo.type === RoundType.AUCTION, [offerChoiceRow.currentAdditionalRoundInfo]);\r\n\r\n return (\r\n \r\n {auctionHistoryVisible &&\r\n \r\n }\r\n\r\n {chosenStatusDone &&\r\n {offerChoiceRow.canceled ? Tr('offer_choice_cancelled') : Tr('offer_choice_chosen')}\r\n }\r\n\r\n \r\n {!chosenStatusDone && chosenSuppliers.length === 0 &&\r\n createSelectItem(x, offerChoiceJustifications[x]))]}\r\n onChange={(event) => setOfferChoiceJustification(event.target.value === \"empty\" ? \"\" : offerChoiceJustifications[event.target.value])}\r\n value={\"empty\"}\r\n />}\r\n\r\n setOfferChoiceJustification(e.target.value))}\r\n />\r\n\r\n {\r\n editable &&\r\n
\r\n {chosenStatusDone ?\r\n setModifyConfirmOpen(true)}>\r\n {Tr('choose_modify')}\r\n :\r\n {chosenSuppliers.length > 0 ? Tr('confirm') : Tr('invalidate')}\r\n }\r\n
\r\n }\r\n\r\n {auctionHistoryPopup && setAuctionHistoryPopup(false)}\r\n positionId={offerChoiceRow.identity}\r\n demandId={demandId}\r\n />}\r\n\r\n setModifyConfirmOpen(false)}\r\n onConfirm={() => {\r\n setModifyConfirmOpen(false);\r\n modifyChoice(offerChoiceRow.identity);\r\n }}\r\n open={modifyConfirmOpen}\r\n translateConfirmTexts={false}\r\n />\r\n
)\r\n}\r\n\r\nOfferChoiceSummaryCell.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n rowWorking: PropTypes.bool.isRequired,\r\n offerChoiceRow: PropTypes.object.isRequired,\r\n chosenStatusDone: PropTypes.bool.isRequired,\r\n setChosenStatusDone: PropTypes.func.isRequired,\r\n chosenSuppliers: PropTypes.array.isRequired,\r\n updateStatus: PropTypes.func.isRequired,\r\n modifyChoice: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n offerChoiceJustifications: state.resources[OfferChoiceService.OFFER_CHOICE_JUSTIFICATIONS]\r\n}), {})(OfferChoiceSummaryCell);\r\n;\r\n\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const AdditionalRoundStatus = {\r\n OFFER_COLLECTION: 'OFFER_COLLECTION',\r\n OFFER_DECRYPTION: 'OFFER_DECRYPTION',\r\n OFFER_EVALUATION: 'OFFER_EVALUATION',\r\n CANCELLED: 'CANCELLED',\r\n FINISHED: 'FINISHED'\r\n}\r\n\r\nexport const LABELS = {\r\n [AdditionalRoundStatus.OFFER_COLLECTION]: Tr('procedure_status_2'),\r\n [AdditionalRoundStatus.OFFER_DECRYPTION]: Tr('procedure_status_4_0'),\r\n [AdditionalRoundStatus.OFFER_EVALUATION]: Tr('procedure_status_4'),\r\n [AdditionalRoundStatus.FINISHED]: Tr('procedure_status_7'),\r\n [AdditionalRoundStatus.CANCELLED]: Tr('procedure_status_6'),\r\n}\r\n\r\nexport const AdditionalRoundStatusLabel = (status) => (LABELS[status]);\r\n\r\nexport const AdditionalRoundStatusesPending = [AdditionalRoundStatus.OFFER_COLLECTION, AdditionalRoundStatus.OFFER_DECRYPTION]\r\n","import Tr from \"translations/Translations\";\r\nconst MINUTE_SECONDS = 60;\r\nconst HOUR_SECONDS = 60 * MINUTE_SECONDS;\r\nconst DAY_SECONDS = 24 * HOUR_SECONDS;\r\nconst zeroTable = [0, 0, 0, 0];\r\n\r\n\r\nexport const getDays = (sec) => {\r\n return Math.floor(sec / DAY_SECONDS);\r\n}\r\n\r\nexport const getDaysHoursMinutesSeconds = (sec, zeroValue = zeroTable) => {\r\n if (sec <= 0) {\r\n return zeroValue;\r\n }\r\n\r\n let secLeft = sec;\r\n const days = Math.floor(sec / DAY_SECONDS);\r\n\r\n secLeft = secLeft - (days * DAY_SECONDS);\r\n const hours = Math.floor(secLeft / HOUR_SECONDS);\r\n\r\n secLeft = secLeft - (hours * HOUR_SECONDS);\r\n const minutes = Math.floor(secLeft / MINUTE_SECONDS);\r\n\r\n secLeft = secLeft - (minutes * MINUTE_SECONDS)\r\n const seconds = secLeft;\r\n return [days, hours, minutes, seconds];\r\n}\r\n\r\nexport const formatDaysHoursMinutesSeconds = (table) => {\r\n\r\n if(!table || table.length !== 4) {\r\n return \"\";\r\n }\r\n let ret = '';\r\n if(table[0] > 0) {\r\n ret += table[0] + ' ' + Tr('day')\r\n }\r\n if(table[1] > 0) {\r\n ret += \" \" + table[1] + ' ' + Tr('hours')\r\n }\r\n if(table[2] > 0) {\r\n ret += \" \" + table[2] + ' ' + Tr('min')\r\n }\r\n if(table[3] > 0) {\r\n ret += \" \" + table[3] + ' ' + Tr('seconds')\r\n }\r\n return ret;\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\n\r\n\r\nconst changeDates = async (demandId, {roundId, endDate, openOfferDate}) => {\r\n const data = {\r\n roundId,\r\n endDate: endDate.format(),\r\n openOfferDate: openOfferDate.format()\r\n\r\n }\r\n return await RestRequestPOST(Endpoints.ADDITIONAL_ROUND_CHANGE_DATES(demandId), data);\r\n};\r\n\r\nconst getOffersDecryptionStatus = async (roundId) => {\r\n return await RestRequestGET(Endpoints.RFX_OFFERS_DECRYPTION_STATUS_LIGHT(roundId));\r\n}\r\n\r\nconst getOffersDecryptionProgress = async (roundId) => {\r\n return await RestRequestGET(Endpoints.RFX_OFFERS_DECRYPTION_PROGRESS(roundId));\r\n}\r\n\r\nconst startOffersDecryptionProcess = async (roundId) => {\r\n return await RestRequestPOST(Endpoints.RFX_OFFERS_DECRYPTION_START(roundId));\r\n}\r\n\r\nexport default {\r\n startOffersDecryptionProcess,\r\n getOffersDecryptionStatus,\r\n getOffersDecryptionProgress,\r\n changeDates\r\n}","import React, {useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport * as Yup from \"yup\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport moment from \"libs/moment\";\r\nimport AdditionalRoundService from \"services/AdditionalRoundService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n dateTimePicker: {\r\n width: 350\r\n },\r\n marginBottom: {\r\n marginBottom: theme.spacing(2)\r\n }\r\n}));\r\n\r\nconst OfferChoiceEditAdditionalRoundsDatesPopup = (\r\n {\r\n demandId,\r\n roundName,\r\n additionalRoundId,\r\n additionalRoundStatus,\r\n additionalRoundEndDate,\r\n additionalRoundOpenOfferDate,\r\n onCancel,\r\n onSuccess,\r\n formSubmit\r\n }) => {\r\n const classes = useStyle();\r\n const [working, setWorking] = useState(false);\r\n const [error, setError] = useState(false);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = (values) => {\r\n setError(false);\r\n setWorking(true);\r\n AdditionalRoundService.changeDates(demandId, values).then(() => onSuccess(values)).catch(() => {\r\n setError(true);\r\n setWorking(false);\r\n })\r\n }\r\n\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n buttons.push(createButton(Tr('change_dates'), handleSubmit, undefined, working));\r\n return buttons;\r\n }\r\n\r\n const handleEndDate = (formikProps, value) => {\r\n formikProps.setFieldValue('openOfferDate', value);\r\n }\r\n\r\n return (\r\n }\r\n title={Tr('edit_dates_popup_title')}\r\n maxWidth='sm'\r\n >\r\n \r\n {working && }\r\n {error && {Tr('unknown_error_message')}}\r\n\r\n {\r\n return schema.test('EndDateLessOpenDate', Tr(\"EndDateLessOpenDate\"), (offerOpenDate) => {\r\n if (endDate && offerOpenDate) {\r\n return !offerOpenDate.isBefore(endDate);\r\n }\r\n return false;\r\n })\r\n })\r\n })}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n \r\n {roundName}\r\n \r\n handleEndDate(formikProps, value)}\r\n minDate={new Date()}\r\n />\r\n\r\n \r\n\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nOfferChoiceEditAdditionalRoundsDatesPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n roundName: PropTypes.string.isRequired,\r\n additionalRoundId: PropTypes.number.isRequired,\r\n additionalRoundStatus: PropTypes.string.isRequired,\r\n additionalRoundEndDate: PropTypes.string.isRequired,\r\n additionalRoundOpenOfferDate: PropTypes.string.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(OfferChoiceEditAdditionalRoundsDatesPopup)","export default {\r\n UNAVAILABLE: \"UNAVAILABLE\",\r\n CAN_START: \"CAN_START\",\r\n IN_PROGRESS: \"IN_PROGRESS\",\r\n PROCESSED: \"PROCESSED\",\r\n ERROR: \"ERROR\"\r\n}","import {makeStyles, Typography} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport React, {useCallback, useEffect, useRef, useState} from \"react\";\r\nimport moment from \"libs/moment\";\r\nimport {formatDaysHoursMinutesSeconds, getDaysHoursMinutesSeconds} from \"libs/durations\";\r\nimport {AdditionalRoundStatus} from \"constants/AdditionalRoundStatus\";\r\nimport OfferChoiceEditAdditionalRoundsDatesPopup from \"./OfferChoiceEditAdditionalRoundsDatesPopup\";\r\nimport AdditionalRoundService from \"services/AdditionalRoundService\";\r\nimport ProgressStatus from \"constants/ProgressStatus\";\r\nimport ProgressBar from \"components/ProgressBar\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n buttons: {\r\n marginTop: theme.spacing(2)\r\n },\r\n button: {\r\n marginLeft: theme.spacing()\r\n }\r\n}));\r\n\r\nconst countTimeFunction = (endTime, serverBrowserTimeDiffSeconds, setLeftTable, timerInterval, endTimeCallback) => {\r\n const end = moment(endTime);\r\n const nowBrowserTime = moment();\r\n const secondsDiff = end.diff(nowBrowserTime, \"s\") - serverBrowserTimeDiffSeconds.current;\r\n if (secondsDiff <= 0) {\r\n if (timerInterval.current)\r\n clearInterval(timerInterval.current);\r\n endTimeCallback();\r\n }\r\n setLeftTable(getDaysHoursMinutesSeconds(secondsDiff, null));\r\n}\r\n\r\n//to widzimy tylko w statusie OFFER_COLLECTION i OFFER_DECRYPTION\r\nfunction OfferChoiceSummaryCellAdditionalRound(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n rowWorking,\r\n setRowWorking,\r\n refreshRow,\r\n serverBrowserTimeDiff,\r\n roundName,\r\n additionalRoundId,\r\n additionalRoundStatus,\r\n additionalRoundEndDate,\r\n additionalRoundOpenOfferDate,\r\n\r\n }) {\r\n const classes = useStyles();\r\n\r\n const [leftTableToOfferEnd, setLeftTableToOfferEnd] = useState(null);\r\n const [leftTableToOpenOffer, setLeftTableToOpenOffer] = useState(null);\r\n const [editDatesOpened, setEditDatesOpened] = useState(false);\r\n const [decryptionStatus, setDecryptionStatus] = useState(null);\r\n const [decryptionProgress, setDecryptionProgress] = useState([-1, 0]);\r\n const decryptionInterval = useRef(0);\r\n const timerInterval = useRef(0);\r\n const decryptionFinished = useRef(false);\r\n\r\n const endTimeCallback = useCallback(() => {\r\n setTimeout(refreshRow, 3000);\r\n }, [refreshRow]);\r\n\r\n useEffect(() => {\r\n setDecryptionStatus(null);\r\n\r\n\r\n if (additionalRoundStatus === AdditionalRoundStatus.OFFER_COLLECTION) {\r\n const nowBrowserTime = moment();\r\n const end = moment(additionalRoundEndDate);\r\n const secondsLeftToOfferEnd = moment(end).diff(nowBrowserTime, 's') - serverBrowserTimeDiff.current;\r\n setLeftTableToOfferEnd(getDaysHoursMinutesSeconds(secondsLeftToOfferEnd, null));\r\n //trwa zbieranie\r\n if (secondsLeftToOfferEnd > 0) {\r\n timerInterval.current = setInterval(countTimeFunction, 250,\r\n additionalRoundEndDate,\r\n serverBrowserTimeDiff,\r\n setLeftTableToOfferEnd,\r\n timerInterval,\r\n endTimeCallback);\r\n //zakończono zbieranie\r\n } else {\r\n const openOffer = moment(additionalRoundOpenOfferDate);\r\n const secondsLeftToOpenOffer = moment(openOffer).diff(nowBrowserTime, 's') - serverBrowserTimeDiff.current;\r\n //minął termin otwarcia ofert\r\n if (secondsLeftToOpenOffer > 0) {\r\n timerInterval.current = setInterval(countTimeFunction, 250,\r\n additionalRoundOpenOfferDate,\r\n serverBrowserTimeDiff,\r\n setLeftTableToOpenOffer,\r\n timerInterval,\r\n endTimeCallback);\r\n } else {\r\n AdditionalRoundService.getOffersDecryptionStatus(additionalRoundId)\r\n .then(resp => setDecryptionStatus(resp));\r\n }\r\n }\r\n } else if (additionalRoundStatus === AdditionalRoundStatus.OFFER_DECRYPTION) {\r\n AdditionalRoundService.getOffersDecryptionStatus(additionalRoundId).then((resp) => {\r\n setDecryptionStatus(resp);\r\n })\r\n }\r\n\r\n return () => {\r\n if (timerInterval.current) {\r\n clearInterval(timerInterval.current);\r\n timerInterval.current = 0;\r\n }\r\n if (decryptionInterval.current) {\r\n clearInterval(decryptionInterval.current);\r\n decryptionInterval.current = 0;\r\n\r\n }\r\n }\r\n }, [additionalRoundEndDate, additionalRoundId, additionalRoundOpenOfferDate, additionalRoundStatus, endTimeCallback, serverBrowserTimeDiff]);\r\n\r\n useEffect(() => {\r\n if (decryptionStatus && decryptionStatus.status === ProgressStatus.IN_PROGRESS && !decryptionInterval.current) {\r\n decryptionInterval.current = setInterval(async () => {\r\n const resp = await AdditionalRoundService.getOffersDecryptionProgress(additionalRoundId);\r\n setDecryptionProgress(resp.result);\r\n if (resp.result[0] === 100) {\r\n clearInterval(decryptionInterval.current);\r\n decryptionInterval.current = setInterval(async () => {\r\n const resp = await AdditionalRoundService.getOffersDecryptionStatus(additionalRoundId);\r\n setDecryptionStatus(resp);\r\n if (resp.status === ProgressStatus.PROCESSED) {\r\n clearInterval(decryptionInterval.current);\r\n decryptionInterval.current = 0;\r\n }\r\n }, 2000)\r\n }\r\n }, 3000);\r\n } else if (decryptionStatus && decryptionStatus.status === ProgressStatus.PROCESSED && !decryptionFinished.current) {\r\n refreshRow([DemandValidation.DOCUMENTS, DemandValidation.CONTRACTOR_VERIFICATION, DemandValidation.OFFERS_EVALUATION, DemandValidation.OFFER_CHOICE]);\r\n decryptionFinished.current = true;\r\n }\r\n // eslint-disable-next-line\r\n }, [decryptionStatus]);\r\n\r\n\r\n const onDecryptionStart = () => {\r\n setRowWorking(true);\r\n AdditionalRoundService.startOffersDecryptionProcess(additionalRoundId)\r\n .finally(refreshRow);\r\n };\r\n\r\n return (\r\n {\r\n additionalRoundStatus === AdditionalRoundStatus.OFFER_COLLECTION &&\r\n <>\r\n {leftTableToOfferEnd !== null ?\r\n <>\r\n {Tr('additional_offer_collection_pending')}\r\n {Tr('additional_offer_collection_left')}: {formatDaysHoursMinutesSeconds(leftTableToOfferEnd)}\r\n : <>\r\n {Tr('additional_offer_collection_finished')}\r\n {leftTableToOpenOffer !== null &&\r\n {Tr('additional_offer_open_time_left')}: {formatDaysHoursMinutesSeconds(leftTableToOpenOffer)}\r\n }\r\n \r\n }\r\n \r\n }\r\n {\r\n additionalRoundStatus === AdditionalRoundStatus.OFFER_DECRYPTION &&\r\n <>\r\n {Tr('additional_offer_decryption')}\r\n {decryptionProgress[0] <= 0 && decryptionProgress[1] > 0 && {decryptionProgress[1] + ' ' + Tr('in_queue')}}\r\n {(decryptionProgress[0] > 0 || decryptionProgress[1] === 0) && }\r\n \r\n }\r\n\r\n \r\n {additionalRoundStatus === AdditionalRoundStatus.OFFER_COLLECTION &&\r\n <>\r\n \r\n {leftTableToOfferEnd === null &&\r\n {Tr('open_offers')}\r\n \r\n }\r\n \r\n }\r\n \r\n\r\n {editDatesOpened &&\r\n setEditDatesOpened(false)}\r\n onSuccess={() => {\r\n refreshRow().then(() => setEditDatesOpened(false));\r\n }}\r\n />}\r\n )\r\n}\r\n\r\nOfferChoiceSummaryCellAdditionalRound.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n rowWorking: PropTypes.bool.isRequired,\r\n roundName: PropTypes.string.isRequired,\r\n additionalRoundId: PropTypes.number.isRequired,\r\n additionalRoundStatus: PropTypes.string.isRequired,\r\n additionalRoundEndDate: PropTypes.string.isRequired,\r\n additionalRoundOpenOfferDate: PropTypes.string.isRequired,\r\n refreshRow: PropTypes.func.isRequired,\r\n setRowWorking: PropTypes.func.isRequired,\r\n serverBrowserTimeDiff: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default OfferChoiceSummaryCellAdditionalRound;\r\n\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\n\r\nconst formatValues = (values) => {\r\n return ({\r\n ...values,\r\n startDate: values.startDate.format(),\r\n endDate: values.endDate ? values.endDate.format() : null\r\n })\r\n}\r\n\r\nconst create = async (demandId, roundId, values) => {\r\n return await RestRequestPOST(Endpoints.AUCTION_CREATE(demandId, roundId), formatValues(values));\r\n};\r\n\r\nconst editDates = async (demandId, roundId, values) => {\r\n return await RestRequestPOST(Endpoints.AUCTION_EDIT_DATES(demandId, roundId), formatValues(values));\r\n};\r\n\r\nconst publish = async (demandId, roundId, values) => {\r\n return await RestRequestPOST(Endpoints.AUCTION_PUBLISH(demandId, roundId), values);\r\n};\r\n\r\nconst unpublish = async (demandId, roundId, values) => {\r\n return await RestRequestPOST(Endpoints.AUCTION_UNPUBLISH(demandId, roundId), values);\r\n};\r\n\r\nconst pause = async (demandId, roundId, values) => {\r\n return await RestRequestPOST(Endpoints.AUCTION_PAUSE(demandId, roundId), values);\r\n};\r\nconst resume = async (demandId, roundId, values) => {\r\n return await RestRequestPOST(Endpoints.AUCTION_RESUME(demandId, roundId), values);\r\n};\r\n\r\nconst cancel = async (demandId, roundId, values) => {\r\n return await RestRequestPOST(Endpoints.AUCTION_CANCEL(demandId, roundId), values);\r\n};\r\n\r\nconst remove = async (demandId, roundId, values) => {\r\n return await RestRequestDELETE(Endpoints.AUCTION_DELETE(demandId, roundId), {data: values});\r\n};\r\n\r\nconst prepare = async (demandId, roundId, netOverGross) => {\r\n return await RestRequestGET(Endpoints.AUCTION_PREPARE(demandId, roundId) + (netOverGross != null ? '?useNetOverGross=' + netOverGross : ''));\r\n};\r\nconst accept = async (demandId, roundId, auctionId) => {\r\n return await RestRequestGET(Endpoints.AUCTION_ACCEPT(demandId, roundId, auctionId));\r\n};\r\n\r\nconst details = async (demandId, roundId, auctionId) => {\r\n return await RestRequestGET(Endpoints.AUCTION_DETAILS(demandId, roundId, auctionId));\r\n};\r\n\r\nconst downloadAuctionInvitation = async (demandId, roundId, finallyCallback = () => {\r\n}) => {\r\n try {\r\n RestRequestBLOB(Endpoints.AUCTION_DOWNLOAD_INVITATION(demandId, roundId))\r\n .finally(finallyCallback);\r\n } catch (error) {\r\n }\r\n};\r\n\r\nexport default {\r\n prepare,\r\n create,\r\n cancel,\r\n remove,\r\n editDates,\r\n publish,\r\n unpublish,\r\n pause,\r\n resume,\r\n accept,\r\n details,\r\n downloadAuctionInvitation\r\n}","import Tr from 'translations/Translations';\r\nimport {createSelectItem} from \"components/Select\";\r\nimport {AuctionRule} from \"constants/AuctionRule\";\r\n\r\nexport const AuctionItemBidType = {\r\n\r\n\r\n RFX_CRITERIUM_VALUE: \"RFX_CRITERIUM_VALUE\",//domyślaa prezentuje wszystkie kryteria zwrócone, bez itemsów\r\n /**\r\n * (tylko dla japońskich, gdy jest jedna pozycja (items=1))\r\n */\r\n RFX_CRITERIUM_PRICE: \"RFX_CRITERIUM_PRICE\", //(tutaj itemsy), bez kryterium typ price, reszta kryt. tak\r\n /**\r\n * (tylko dla aukcji angielskich i dynamicznych)\r\n */\r\n RFX_ITEM_VALUE: \"RFX_ITEM_VALUE\" //(tutaj itemsy), bez kryterium typ price, reszta kryt. tak\r\n}\r\nconst _TR_PREFIX = 'auction_item_bid_type_';\r\n\r\nexport const AuctionItemBidTypeLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n\r\nexport const AuctionItemBidTypeItems = (auctionRule, allowQuantityEditInOffer, fixedOfferVat) => {\r\n const arr = [createSelectItem(AuctionItemBidType.RFX_CRITERIUM_VALUE, AuctionItemBidTypeLabel(AuctionItemBidType.RFX_CRITERIUM_VALUE))]\r\n if ((auctionRule === AuctionRule.ENGLISH || auctionRule === AuctionRule.DYNAMIC) && !allowQuantityEditInOffer && !fixedOfferVat) {\r\n arr.push(createSelectItem(AuctionItemBidType.RFX_ITEM_VALUE, AuctionItemBidTypeLabel(AuctionItemBidType.RFX_ITEM_VALUE)))\r\n }\r\n return arr;\r\n}","import React, {useMemo} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport {FormHelperText, makeStyles} from \"@material-ui/core\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport {AuctionItemBidType} from \"../../constants/AuctionItemBidType\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Typography from \"components/Typography\";\r\nimport TextInput from \"components/TextInput\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport Checkbox from \"components/Checkbox\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n checkboxColumn: {\r\n width: 70\r\n },\r\n inputColumn: {\r\n width: 100\r\n },\r\n boundaryColumn: {\r\n width: 320\r\n }\r\n}));\r\n\r\n\r\nconst OfferChoiceCreateAuctionTable = (\r\n {\r\n demandId,\r\n items,\r\n working,\r\n formikProps\r\n\r\n }) => {\r\n\r\n const classes = useStyle();\r\n const isCriterion = items === 'criterias'\r\n\r\n const headers = useMemo(() => (isCriterion ? [\r\n Tr('criterion_name'),\r\n Tr('auction_biddable'),\r\n Tr('auction_step'),\r\n Tr('auction_value_min'),\r\n Tr('auction_value_max'),\r\n Tr('auction_boundary_values'),\r\n ] : [\r\n Tr('position_name'),\r\n Tr('auction_step'),\r\n Tr('auction_value_min'),\r\n Tr('auction_value_max'),\r\n Tr('auction_boundary_values'),\r\n ]), [isCriterion]);\r\n\r\n const tableItems = () => {\r\n let table = undefined;\r\n if (isCriterion) {\r\n table = formikProps.values.positions[0].criterias.map((x, index) => {\r\n if (formikProps.values.positions[0].bidType !== AuctionItemBidType.RFX_CRITERIUM_VALUE && x.type === 'price')\r\n return null;\r\n const nameError = getObjectValue(`positions.0.criterias.${index}.name`, formikProps.errors, null)\r\n return ([\r\n <>\r\n {x.name}\r\n {!!nameError && {nameError}}\r\n ,\r\n \r\n ,\r\n <>\r\n {x.type !== 'text' && x.type !== 'list' && x.type !== 'yesNo' && x.biddable &&\r\n \r\n }\r\n ,\r\n <>\r\n {x.type !== 'text' && x.type !== 'list' && x.type !== 'yesNo' && x.biddable &&\r\n \r\n }\r\n ,\r\n <>\r\n {x.type !== 'text' && x.type !== 'list' && x.type !== 'yesNo' && x.biddable &&\r\n \r\n }\r\n ,\r\n <>\r\n {!!x.minOfferValue && {Tr('auction_criterion_min_value')}: {x.minOfferValue.toFixed(2).replace(/[.]/, \",\")}{x.type === 'price' ? ' PLN' : (!!x.measureUnit ? ` (${x.measureUnit})` : '')}}\r\n {!!x.maxOfferValue && {Tr('auction_criterion_max_value')}: {x.maxOfferValue.toFixed(2).replace(/[.]/, \",\")}{x.type === 'price' ? ' PLN' : (!!x.measureUnit ? ` (${x.measureUnit})` : '')}}\r\n {(x.type === 'text' || x.type === 'list' || x.type === 'yesNo') && {Tr(`auction_criterion_type_${x.type}`)}}\r\n \r\n ])\r\n\r\n });\r\n } else {\r\n table = formikProps.values.positions[0].items.map((x, index) => {\r\n const nameError = getObjectValue(`positions.0.items.${index}.name`, formikProps.errors, null)\r\n return ([\r\n <>\r\n {x.name}\r\n {!!nameError && {nameError}}\r\n ,\r\n ,\r\n ,\r\n ,\r\n <>\r\n {Tr('auction_criterion_min_price')}: {x.minOfferPrice.toFixed(2).replace(/[.]/, \",\")} PLN\r\n {Tr('auction_criterion_max_price')}: {x.maxOfferPrice.toFixed(2).replace(/[.]/, \",\")} PLN\r\n \r\n ])\r\n });\r\n }\r\n return table;\r\n }\r\n\r\n const shouldShow = isCriterion || formikProps.values.positions[0].bidType === AuctionItemBidType.RFX_ITEM_VALUE\r\n || formikProps.values.positions[0].bidType === AuctionItemBidType.RFX_CRITERIUM_PRICE;\r\n\r\n return (shouldShow && <>\r\n {Tr(isCriterion ? 'auction_criterias_table_title' : 'auction_items_table_title')}\r\n \r\n )\r\n}\r\n\r\nOfferChoiceCreateAuctionTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n items: PropTypes.oneOf(['criterias', 'items']),\r\n working: PropTypes.bool.isRequired,\r\n formikProps: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default OfferChoiceCreateAuctionTable;","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport AuctionService from \"services/AuctionService\";\r\nimport Select, {createSelectItem} from \"components/Select\";\r\nimport {AuctionTypeItems} from \"constants/AuctionType\";\r\nimport {AuctionRule, AuctionTypeRuleItems} from \"constants/AuctionRule\";\r\nimport TextInput from \"components/TextInput\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport {PriceType, PriceTypeItems, PriceTypeItemsForAuction} from \"constants/PriceTypes\";\r\nimport BooleanItems from \"constants/BooleanItems\";\r\nimport Typography from \"components/Typography\";\r\nimport moment from \"libs/moment\";\r\nimport {AuctionItemBidType, AuctionItemBidTypeItems} from \"../../constants/AuctionItemBidType\";\r\nimport OfferChoiceCreateAuctionTable from \"./OfferChoiceCreateAuctionTable\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport getObjectValue from 'libs/getObjectValue';\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n title: {\r\n marginTop: 0\r\n },\r\n italic: {\r\n fontStyle: 'italic'\r\n },\r\n bold: {\r\n fontWeight: theme.typography.fontWeightBold\r\n },\r\n formElement: {\r\n width: 400\r\n },\r\n dd: {\r\n whiteSpace: \"pre-line\",\r\n fontSize: 9\r\n }\r\n\r\n}));\r\n\r\n\r\nconst OfferChoiceCreateAuctionPopup = (\r\n {\r\n demandId,\r\n onCancel,\r\n onSuccess,\r\n roundId,\r\n auctionType,\r\n formSubmit,\r\n }) => {\r\n\r\n const classes = useStyle();\r\n\r\n const [preparedAuction, setPreparedAuction] = useState(null);\r\n const [working, setWorking] = useState(true);\r\n const [error, setError] = useState(null);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = (values) => {\r\n setError(null);\r\n setWorking(true);\r\n AuctionService.create(demandId, roundId, values).then((resp) => {\r\n if (isResponseValid(resp, setError)) {\r\n onSuccess(resp);\r\n } else {\r\n setWorking(false);\r\n }\r\n }).catch(() => {\r\n setError(Tr('unknown_error_message'));\r\n setWorking(false);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n AuctionService.prepare(demandId, roundId)\r\n .then(resp => {\r\n resp.type = auctionType;\r\n resp.startDate = moment(resp.startDate);\r\n resp.endDate = moment(resp.endDate);\r\n resp.positions[0].bidType = AuctionItemBidType.RFX_CRITERIUM_VALUE;\r\n setPreparedAuction(resp);\r\n }).finally(() => setWorking(false));\r\n }, [demandId, roundId, auctionType]);\r\n\r\n const handleUseNetOverGrossChange = (formikProps, value) => {\r\n AuctionService.prepare(demandId, roundId, value.target.value)\r\n .then(resp => {\r\n resp.type = getObjectValue('type', formikProps.values, \"\");\r\n resp.rule = getObjectValue('rule', formikProps.values, \"\");\r\n resp.startDate = getObjectValue('startDate', formikProps.values, \"\");\r\n resp.decisionTime = getObjectValue('decisionTime', formikProps.values, \"\");\r\n resp.endDate = getObjectValue('endDate', formikProps.values, \"\");\r\n const position = getObjectValue('positions', formikProps.values, \"\");\r\n resp.positions[0].bidType = getObjectValue('bidType', position[0], \"\");\r\n resp.digitalSign = getObjectValue('digitalSign', formikProps.values, \"\");\r\n resp.overtimeCount = getObjectValue('overtimeCount', formikProps.values, \"\");\r\n resp.overtime = getObjectValue('overtime', formikProps.values, \"\");\r\n setPreparedAuction(resp);\r\n }).finally(() => setWorking(false));\r\n }\r\n\r\n const handleEndDate = (formikProps, value) => {\r\n formikProps.setFieldValue('endDate', value);\r\n formikProps.setFieldTouched('endDate', true);\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n buttons.push(createButton(Tr('auction_create_button'), handleSubmit, undefined, working));\r\n return buttons;\r\n }\r\n\r\n\r\n const validationSchema = VS.lazy((value) => {\r\n\r\n const rule = value.rule;\r\n const overtimeCount = value.overtimeCount;\r\n const bidType = value.positions[0].bidType;\r\n\r\n const shape = {\r\n rule: VS.string(),\r\n startDate: VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past')),\r\n type: VS.string(),\r\n\r\n }\r\n\r\n if (AuctionRule.JAPANESE !== rule) {\r\n shape.endDate = VS.dateTimeValid()\r\n .when('startDate', (startDate, schema) => {\r\n return schema.test('EndDateLessStartDate', Tr(\"EndDateLessStartDate\"), (endDate) => {\r\n if (startDate && endDate) {\r\n return endDate.isAfter(startDate);\r\n }\r\n return false;\r\n })\r\n });\r\n shape.overtimeCount = VS.integerMinMax(0, 999);\r\n shape.overtime = overtimeCount === '0' ? VS.integerMinMax(0, 60) : VS.integerMax(60);\r\n } else {\r\n shape.decisionTime = VS.integerMax(99999)\r\n }\r\n\r\n shape.positions = VS.arrayOf(VS.object({\r\n criterias: VS.arrayOf(VS.lazy(criterion => {\r\n if (bidType !== AuctionItemBidType.RFX_CRITERIUM_VALUE && criterion.type === 'price') {\r\n return VS.any();\r\n } else {\r\n const textYesNoOrList = criterion.type === 'text' || criterion.type === 'list' || criterion.type === 'yesNo';\r\n const critShape = {\r\n step: textYesNoOrList || !criterion.biddable ? VS.any() : VS.numberPositiveNoZero(),\r\n min: textYesNoOrList || !criterion.biddable ? VS.any() : VS.numberMin0(),\r\n max: textYesNoOrList || !criterion.biddable ? VS.any() : VS.numberMin(criterion.min, 'max_value_min_value')\r\n };\r\n if (AuctionRule.JAPANESE === rule) {\r\n critShape.name = VS.string().test('maxSubMinDivStep', Tr('difference_between_max_and_min_value_is_not_multiple_of_step'),\r\n () => {\r\n return criterion.max == null || criterion.min == null || criterion.step == null ||\r\n ((criterion.max - criterion.min) / criterion.step) === Math.floor((criterion.max - criterion.min) / criterion.step);\r\n })\r\n }\r\n return VS.object(critShape)\r\n }\r\n })),\r\n items: VS.arrayOf(VS.lazy(item => {\r\n if (bidType === AuctionItemBidType.RFX_CRITERIUM_VALUE) {\r\n return VS.any();\r\n\r\n } else {\r\n const itemShape = {\r\n step: VS.numberPositiveNoZero(),\r\n min: VS.numberMin0(),\r\n max: VS.numberMin(item.min, 'max_value_min_value')\r\n }\r\n if (AuctionRule.JAPANESE === rule) {\r\n itemShape.name = VS.string().test('maxSubMinDivStep', Tr('difference_between_max_and_min_value_is_not_multiple_of_step'),\r\n () => {\r\n return item.max == null || item.min == null || item.step == null ||\r\n ((item.max - item.min) / item.step) === Math.floor((item.max - item.min) / item.step);\r\n })\r\n }\r\n return VS.object(itemShape)\r\n }\r\n }))\r\n }));\r\n return VS.object(shape);\r\n })\r\n\r\n const title = useMemo(() => (<>\r\n {Tr('auction_create_popup_title')} \r\n {preparedAuction && <>\r\n {Tr('part_x', {x: preparedAuction.positions[0].order})}:\r\n {preparedAuction.positions[0].name}\r\n }\r\n ),\r\n // eslint-disable-next-line\r\n [preparedAuction]);\r\n\r\n return (\r\n }\r\n title={title}\r\n maxWidth='lg'\r\n >\r\n \r\n\r\n {working && }\r\n {!!error && {error}}\r\n {!!preparedAuction && <>\r\n\r\n \r\n {(formikProps) => (\r\n \r\n \r\n \r\n \r\n formikProps.setFieldValue('positions.0.bidType', AuctionItemBidType.RFX_CRITERIUM_VALUE)}\r\n />\r\n handleEndDate(formikProps, value)}\r\n minDate={new Date()}\r\n />\r\n\r\n {AuctionRule.JAPANESE === formikProps.values.rule ?\r\n \r\n :\r\n \r\n }\r\n\r\n \r\n \r\n \r\n {getObjectValue('priceType', formikProps.values, \"\") === PriceType.NET_GROSS ?\r\n handleUseNetOverGrossChange(formikProps, value)}\r\n />\r\n :\r\n \r\n }\r\n {AuctionRule.JAPANESE !== formikProps.values.rule &&\r\n <>\r\n \r\n \r\n \r\n \r\n }\r\n
\r\n {Tr('auction_price_item_count')}:\r\n {formikProps.values.positions[0].priceItemCount}\r\n
\r\n {Tr('auction_offer_count')}:\r\n {formikProps.values.positions[0].offerCount}\r\n
\r\n {Tr('realization_value')}:\r\n {formikProps.values.positions[0].estimatedValue ? formikProps.values.positions[0].estimatedValue.toFixed(2).replace(/[.]/, \",\") : '--'} PLN\r\n
\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n )}\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nOfferChoiceCreateAuctionPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n roundId: PropTypes.number.isRequired,\r\n auctionType: PropTypes.string.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(OfferChoiceCreateAuctionPopup)","import PropTypes from \"prop-types\";\r\nimport React, {useEffect, useMemo, useRef} from \"react\";\r\nimport Tr from 'translations/Translations';\r\nimport {AuctionType} from \"constants/AuctionType\";\r\nimport {AuctionStatus} from \"constants/AuctionStatus\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport {AuctionRule} from \"constants/AuctionRule\";\r\nimport moment from \"libs/moment\";\r\nimport AuctionTypeList from \"./AuctionTypeList\";\r\n\r\n//to widzimy tylko w statusie OFFER_COLLECTION i OFFER_DECRYPTION\r\nfunction AuctionTypePart(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n auctionType,\r\n auctions,\r\n buttonWorks,\r\n setCreatePopupOpened,\r\n deleteAuction,\r\n editAuction,\r\n publishAuction,\r\n unpublishAuction,\r\n cancelAuction,\r\n pauseAuction,\r\n acceptAuction,\r\n resumeAuction,\r\n auctionDetails,\r\n serverBrowserTimeDiff,\r\n prodAuctionStatus\r\n }) {\r\n\r\n const timeout = useRef(0);\r\n\r\n useEffect(() => {\r\n const auction = auctions.length > 0 ? auctions[auctions.length - 1] : null;\r\n if (auction != null) {\r\n if (auction.status === AuctionStatus.PENDING) {\r\n const secondsLeftToStart = moment(auction.startDate).diff(moment(), 's') - serverBrowserTimeDiff.current;\r\n timeout.current = setTimeout(auctionDetails, (secondsLeftToStart + 2) * 1000, auction)\r\n } else if (auction.status === AuctionStatus.OPEN || auction.status === AuctionStatus.PAUSED) {\r\n if (auction.rule === AuctionRule.JAPANESE) {\r\n const secondsFromStart = moment().diff(moment(auction.startDate), 's') - serverBrowserTimeDiff.current;\r\n const secondsToWindowEnd = Math.ceil(secondsFromStart / auction.decisionTime) + 2;\r\n timeout.current = setTimeout(auctionDetails, secondsToWindowEnd * 1000, auction)\r\n } else {\r\n const secondsLeftToEnd = moment(auction.endDate).diff(moment(), 's') - serverBrowserTimeDiff.current;\r\n timeout.current = setTimeout(auctionDetails, (secondsLeftToEnd + 2) * 1000, auction)\r\n }\r\n }\r\n }\r\n return () => {\r\n if (timeout.current)\r\n clearTimeout(timeout.current)\r\n }\r\n }, [auctions, auctionDetails, serverBrowserTimeDiff])\r\n\r\n\r\n const getButtons = () => {\r\n const btns = [];\r\n const disabled = !editable || working || buttonWorks.anyWorks;\r\n if (auctions.length > 0) {\r\n const auction = auctions[auctions.length - 1];\r\n switch (auction.status) {\r\n case AuctionStatus.INCOMPLETE:\r\n if (auctionType === AuctionType.PROD) {\r\n btns.push(createButton(Tr('cancel'), () => cancelAuction(auction), 'outlined', disabled, undefined, buttonWorks.cancel))\r\n } else {\r\n btns.push(createButton(Tr('delete'), () => deleteAuction(auction), 'outlined', disabled, undefined, buttonWorks.remove))\r\n }\r\n btns.push(createButton(Tr('edit'), () => editAuction(auction), 'outlined', disabled))\r\n btns.push(createButton(Tr('publish'), () => publishAuction(auction), 'contained', disabled, undefined, buttonWorks.publish))\r\n break;\r\n case AuctionStatus.PENDING:\r\n btns.push(createButton(Tr('unpublish'), () => unpublishAuction(auction), 'outlined', disabled, undefined, buttonWorks.unpublish))\r\n break;\r\n case AuctionStatus.OPEN:\r\n if (auction.rule !== AuctionRule.JAPANESE) {\r\n btns.push(createButton(Tr('pause'), () => pauseAuction(auction), 'outlined', disabled, undefined, buttonWorks.pause))\r\n }\r\n break;\r\n case AuctionStatus.PAUSED:\r\n btns.push(createButton(Tr('cancel'), () => cancelAuction(auction), 'outlined', disabled, undefined, buttonWorks.cancel))\r\n btns.push(createButton(Tr('edit'), () => editAuction(auction), 'outlined', disabled))\r\n btns.push(createButton(Tr('resume'), () => resumeAuction(auction), 'contained', disabled, undefined, buttonWorks.resume))\r\n break;\r\n case AuctionStatus.FINISHED:\r\n if (auctionType === AuctionType.PROD) {\r\n btns.push(createButton(Tr('cancel'), () => cancelAuction(auction), 'outlined', disabled, undefined, buttonWorks.cancel))\r\n btns.push(createButton(Tr('auction_accept'), () => acceptAuction(auction), 'contained', disabled, undefined, buttonWorks.accept))\r\n } else {\r\n if (!prodAuctionStatus || prodAuctionStatus === AuctionStatus.CANCELLED) {\r\n btns.push(createButton(Tr('auction_create_button'), () => setCreatePopupOpened(auctionType), 'contained', disabled))\r\n }\r\n }\r\n break;\r\n case AuctionStatus.CANCELLED:\r\n if (auctionType === AuctionType.PROD || (!prodAuctionStatus || prodAuctionStatus === AuctionStatus.CANCELLED)) {\r\n btns.push(createButton(Tr('auction_create_button'), () => setCreatePopupOpened(auctionType), 'contained', disabled));\r\n }\r\n break;\r\n default:\r\n }\r\n } else {\r\n if (auctionType === AuctionType.PROD || (!prodAuctionStatus || prodAuctionStatus === AuctionStatus.CANCELLED)) {\r\n btns.push(createButton(Tr('auction_create_button'), () => setCreatePopupOpened(auctionType), 'contained', disabled))\r\n }\r\n }\r\n return btns;\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const buttons = useMemo(getButtons, [editable, working, auctionType, auctions, buttonWorks]);\r\n\r\n return (\r\n
\r\n \r\n \r\n
)\r\n}\r\n\r\nAuctionTypePart.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n auctionType: PropTypes.string.isRequired,\r\n auctions: PropTypes.array.isRequired,\r\n buttonWorks: PropTypes.object.isRequired,\r\n setCreatePopupOpened: PropTypes.func.isRequired,\r\n deleteAuction: PropTypes.func.isRequired,\r\n editAuction: PropTypes.func.isRequired,\r\n publishAuction: PropTypes.func.isRequired,\r\n unpublishAuction: PropTypes.func.isRequired,\r\n cancelAuction: PropTypes.func.isRequired,\r\n pauseAuction: PropTypes.func.isRequired,\r\n resumeAuction: PropTypes.func.isRequired,\r\n auctionDetails: PropTypes.func.isRequired,\r\n acceptAuction: function (props, propName, componentName) {\r\n if ((props['auctionType'] === AuctionType.PROD && (props[propName] === undefined || typeof (props[propName]) !== 'function'))) {\r\n return new Error('Please provide a acceptAuction function!');\r\n }\r\n },\r\n serverBrowserTimeDiff: PropTypes.object.isRequired,\r\n prodAuctionStatus: function (props, propName, componentName) {\r\n if ((props['auctionType'] === AuctionType.TEST && (props[propName] !== undefined && typeof (props[propName]) !== 'string'))) {\r\n return new Error('Please provide a valid prodAuctionStatus string');\r\n }\r\n },\r\n\r\n}\r\n\r\nexport default AuctionTypePart;\r\n","import React, {useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport AuctionService from \"services/AuctionService\";\r\nimport {AuctionRule} from \"constants/AuctionRule\";\r\nimport TextInput from \"components/TextInput\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport moment from \"libs/moment\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport {AuctionStatus} from \"constants/AuctionStatus\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n title: {\r\n marginTop: 0\r\n },\r\n italic: {\r\n fontStyle: 'italic'\r\n },\r\n bold: {\r\n fontWeight: theme.typography.fontWeightBold\r\n },\r\n formElement: {\r\n width: 400\r\n },\r\n}));\r\n\r\n\r\nconst EditDatesAuctionPopup = (\r\n {\r\n demandId,\r\n offerChoiceRow,\r\n onCancel,\r\n onSuccess,\r\n roundId,\r\n auction,\r\n formSubmit,\r\n }) => {\r\n\r\n const classes = useStyle();\r\n\r\n const [working, setWorking] = useState(false);\r\n const [error, setError] = useState(null);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = (values) => {\r\n setError(null);\r\n setWorking(true);\r\n AuctionService.editDates(demandId, roundId, values).then((resp) => {\r\n if(isResponseValid(resp, setError)) {\r\n OfferChoiceService.updateAuctionInAdditionalRoundInfo(offerChoiceRow.identity, resp.result);\r\n onSuccess();\r\n } else {\r\n setWorking(false);\r\n }\r\n }).catch(() => {\r\n setError(Tr('unknown_error_message'));\r\n setWorking(false);\r\n })\r\n }\r\n\r\n const handleEndDate = (formikProps, value) => {\r\n formikProps.setFieldValue('endDate', value);\r\n formikProps.setFieldTouched('endDate', true);\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n buttons.push(createButton(Tr('auction_update_dates_button'), handleSubmit, undefined, working));\r\n return buttons;\r\n }\r\n\r\n\r\n const validationSchema = VS.lazy((value) => {\r\n const shape = {\r\n }\r\n if(value.status !== AuctionStatus.PAUSED) {\r\n shape.startDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'))\r\n }\r\n\r\n if (AuctionRule.JAPANESE !== value.rule) {\r\n shape.endDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'))\r\n .when('startDate', (startDate, schema) => {\r\n return schema.test('EndDateLessStartDate', Tr(\"EndDateLessStartDate\"), (endDate) => {\r\n if (startDate && endDate) {\r\n return endDate.isAfter(startDate);\r\n }\r\n return false;\r\n })\r\n })\r\n } else {\r\n shape.decisionTime = VS.integerMax(99999)\r\n }\r\n return VS.object(shape);\r\n })\r\n\r\n\r\n return (\r\n }\r\n title={Tr('auction_create_popup_title')}\r\n maxWidth='sm'\r\n >\r\n \r\n\r\n {working && }\r\n {!!error && {error}}\r\n\r\n \r\n {(formikProps) => (\r\n \r\n handleEndDate(formikProps, value)}\r\n minDate={new Date()}\r\n />\r\n\r\n {AuctionRule.JAPANESE === formikProps.values.rule ?\r\n \r\n :\r\n \r\n }\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nEditDatesAuctionPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n offerChoiceRow: PropTypes.object.isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n roundId: PropTypes.number.isRequired,\r\n auction: PropTypes.object.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(EditDatesAuctionPopup)","import React, {useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport DoubleButton from 'components/popup/components/DoubleButton';\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport BooleanItems from \"constants/BooleanItems\";\r\nimport Typography from \"components/Typography\";\r\nimport BoldTypography from \"../../../../../../../../../components/BoldTypography\";\r\n\r\nexport const createConfirmAuctionCfg = (auction, sendEmail, onConfirm, message, confirmButtonLabel) => ({\r\n auction, sendEmail, onConfirm, message, confirmButtonLabel\r\n})\r\n\r\nfunction ConfirmAuction(\r\n {\r\n cfg,\r\n onCancel\r\n }) {\r\n\r\n const [sendEmail, setSendEmail] = useState(cfg.sendEmail);\r\n\r\n const onConfirm = () => {\r\n const data= {\r\n auctionId: cfg.auction.auctionId,\r\n }\r\n if(sendEmail !== undefined)\r\n data.sendEmail = sendEmail;\r\n\r\n cfg.onConfirm(data)\r\n }\r\n\r\n return (\r\n }\r\n >\r\n {Tr(cfg.message)}\r\n {\r\n sendEmail !== undefined && <>\r\n
\r\n {Tr('auction_send_email_label')}\r\n setSendEmail(event.target.value)}\r\n items={BooleanItems}\r\n value={sendEmail}\r\n />\r\n \r\n }\r\n\r\n\r\n \r\n )\r\n}\r\n\r\nConfirmAuction.propTypes = {\r\n onCancel: PropTypes.func.isRequired,\r\n cfg: PropTypes.shape({\r\n auction: PropTypes.object.isRequired,\r\n sendEmail: PropTypes.bool,\r\n onConfirm: PropTypes.func.isRequired,\r\n message: PropTypes.string.isRequired,\r\n confirmButtonLabel: PropTypes.string.isRequired,\r\n })\r\n}\r\n\r\nexport default ConfirmAuction;","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport Title from 'components/Title';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Button from 'components/Button';\r\nimport clsx from 'clsx';\r\nimport Dialog from 'components/Dialog';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t},\r\n\ticon: {\r\n\t\tfontSize: theme.components.icon.fontSize,\r\n\t},\r\n\tpadding: {\r\n\t\tpaddingTop: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction SaveDialogBase({\r\n\tclasses,\r\n\tonClose,\r\n\tchildren,\r\n\ttitle,\r\n\tIcon,\r\n\ticonClassName,\r\n}) {\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{title}\r\n\t\t\t\r\n\r\n\t\t\t{children}\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nSaveDialogBase.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tonClose: PropTypes.func,\r\n}\r\n\r\nSaveDialogBase.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(SaveDialogBase);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport Typography from \"components/Typography\";\r\nimport HighlightOffIcon from \"@material-ui/icons/HighlightOff\";\r\nimport SaveDialogBase from \"components/popup/save/SaveDialogBase\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n icon: {\r\n color: theme.palette.common.error,\r\n }\r\n}))\r\n\r\nfunction AuctionSaveError(\r\n {\r\n message,\r\n onClose\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n return (\r\n \r\n \r\n {message}\r\n \r\n \r\n )\r\n}\r\n\r\nAuctionSaveError.propTypes = {\r\n message: PropTypes.string.isRequired,\r\n onClose: PropTypes.func.isRequired\r\n}\r\n\r\nexport default AuctionSaveError;","import PropTypes from \"prop-types\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport React, {useCallback, useMemo, useReducer, useState} from \"react\";\r\nimport OfferChoiceCreateAuctionPopup from \"./OfferChoiceCreateAuctionPopup\";\r\nimport {AuctionType} from \"constants/AuctionType\";\r\nimport AuctionTypePart from \"./AuctionTypePart\";\r\nimport EditDatesAuctionPopup from \"./EditDatesAuctionPopup\";\r\nimport AuctionService from \"services/AuctionService\";\r\nimport ConfirmAuction, {createConfirmAuctionCfg} from \"./ConfirmAuction\";\r\nimport AuctionSaveError from \"./AuctionSaveError\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport redirectUsingPOST from \"libs/redirectUsingPOST\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n inviteButton: {\r\n float: 'right',\r\n marginTop: theme.spacing()\r\n }\r\n}));\r\n\r\n//to widzimy tylko w statusie OFFER_COLLECTION i OFFER_DECRYPTION\r\nfunction OfferChoiceSummaryCellAuction(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n rowWorking,\r\n offerChoiceRow,\r\n refreshRow,\r\n serverBrowserTimeDiff\r\n }) {\r\n const classes = useStyles();\r\n const currentAdditionalRoundInfo = useMemo(() => offerChoiceRow.currentAdditionalRoundInfo, [offerChoiceRow]);\r\n const [createPopupAuctionType, setCreatePopupAuctionType] = useState(null);\r\n const [editPopupAuction, setEditPopupAuction] = useState(null);\r\n const [auctionError, setAuctionError] = useState(null);\r\n const [confirmCfg, setConfirmCfg] = useState(null);\r\n const [downloadInvitationWorking, setDownloadInvitationWorking] = useState(null);\r\n\r\n const [prodButtonWorks, dispatchProdButtonWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n publish: false,\r\n unpublish: false,\r\n remove: false,\r\n cancel: false,\r\n pause: false,\r\n accept: false,\r\n resume: false\r\n });\r\n const [testButtonWorks, dispatchTestButtonWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n publish: false,\r\n unpublish: false,\r\n remove: false,\r\n cancel: false,\r\n pause: false,\r\n accept: false,\r\n resume: false\r\n });\r\n\r\n const dispatchButtonWorks = (auction, type, works) => {\r\n if (auction.type === AuctionType.PROD) {\r\n dispatchProdButtonWorks({type, works})\r\n } else {\r\n dispatchTestButtonWorks({type, works})\r\n }\r\n }\r\n\r\n const {prod, test} = useMemo(() => currentAdditionalRoundInfo.auctions.reduce((prev, cur) => {\r\n if (cur.type === AuctionType.PROD)\r\n prev.prod.push(cur);\r\n else\r\n prev.test.push(cur);\r\n return prev;\r\n }, {prod: [], test: []}), [currentAdditionalRoundInfo]);\r\n\r\n\r\n const deleteAuction = useCallback((auction, confirmed, values) => {\r\n if (confirmed) {\r\n dispatchButtonWorks(auction, 'remove', true)\r\n setConfirmCfg(null);\r\n AuctionService.remove(demandId, currentAdditionalRoundInfo.roundId, values).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n OfferChoiceService.removeAuctionFromAdditionalRoundInfo(offerChoiceRow.identity, auction);\r\n }\r\n }).finally(() => dispatchButtonWorks(auction, 'remove', false));\r\n } else {\r\n const callback = (auction, confirmed) => (values) => deleteAuction(auction, confirmed, values)\r\n setConfirmCfg(createConfirmAuctionCfg(auction, undefined, callback(auction, true), \"auction_delete_confirm\", \"delete\"));\r\n }\r\n }, [demandId, currentAdditionalRoundInfo, offerChoiceRow]);\r\n\r\n const editAuction = useCallback((auction) => {\r\n setEditPopupAuction(auction);\r\n }, []);\r\n\r\n const publishAuction = useCallback((auction, confirmed, values) => {\r\n if (confirmed) {\r\n dispatchButtonWorks(auction, 'publish', true)\r\n setConfirmCfg(null);\r\n AuctionService.publish(demandId, currentAdditionalRoundInfo.roundId, values).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n OfferChoiceService.updateAuctionInAdditionalRoundInfo(offerChoiceRow.identity, resp.result);\r\n }\r\n }).finally(() => dispatchButtonWorks(auction, 'publish', false));\r\n } else {\r\n const callback = (auction, confirmed) => (values) => publishAuction(auction, confirmed, values)\r\n setConfirmCfg(createConfirmAuctionCfg(auction, true, callback(auction, true), \"auction_publish_confirm\", \"publish\"));\r\n }\r\n }, [demandId, currentAdditionalRoundInfo, offerChoiceRow]);\r\n\r\n const resumeAuction = useCallback((auction, confirmed, values) => {\r\n if (confirmed) {\r\n dispatchButtonWorks(auction, 'resume', true)\r\n setConfirmCfg(null);\r\n AuctionService.resume(demandId, currentAdditionalRoundInfo.roundId, values).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n OfferChoiceService.updateAuctionInAdditionalRoundInfo(offerChoiceRow.identity, resp.result);\r\n }\r\n }).finally(() => dispatchButtonWorks(auction, 'resume', false));\r\n } else {\r\n const callback = (auction, confirmed) => (values) => resumeAuction(auction, confirmed, values)\r\n setConfirmCfg(createConfirmAuctionCfg(auction, true, callback(auction, true), \"auction_resume_confirm\", \"resume\"));\r\n }\r\n }, [demandId, currentAdditionalRoundInfo, offerChoiceRow]);\r\n\r\n const unpublishAuction = useCallback((auction, confirmed, values) => {\r\n if (confirmed) {\r\n dispatchButtonWorks(auction, 'unpublish', true)\r\n setConfirmCfg(null);\r\n AuctionService.unpublish(demandId, currentAdditionalRoundInfo.roundId, values).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n OfferChoiceService.updateAuctionInAdditionalRoundInfo(offerChoiceRow.identity, resp.result);\r\n }\r\n }).finally(() => dispatchButtonWorks(auction, 'unpublish', false));\r\n } else {\r\n const callback = (auction, confirmed) => (values) => unpublishAuction(auction, confirmed, values)\r\n setConfirmCfg(createConfirmAuctionCfg(auction, true, callback(auction, true), \"auction_unpublish_confirm\", \"unpublish\"));\r\n }\r\n }, [demandId, currentAdditionalRoundInfo, offerChoiceRow]);\r\n\r\n const cancelAuction = useCallback((auction, confirmed, values) => {\r\n if (confirmed) {\r\n dispatchButtonWorks(auction, 'cancel', true)\r\n setConfirmCfg(null);\r\n AuctionService.cancel(demandId, currentAdditionalRoundInfo.roundId, values).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n OfferChoiceService.updateAuctionInAdditionalRoundInfo(offerChoiceRow.identity, resp.result);\r\n }\r\n }).finally(() => dispatchButtonWorks(auction, 'cancel', false));\r\n } else {\r\n const callback = (auction, confirmed) => (values) => cancelAuction(auction, confirmed, values)\r\n setConfirmCfg(createConfirmAuctionCfg(auction, undefined, callback(auction, true), \"auction_cancel_confirm\", \"auction_cancel\"));\r\n }\r\n }, [demandId, currentAdditionalRoundInfo, offerChoiceRow]);\r\n\r\n const pauseAuction = useCallback((auction, confirmed, values) => {\r\n if (confirmed) {\r\n dispatchButtonWorks(auction, 'pause', true)\r\n setConfirmCfg(null);\r\n AuctionService.pause(demandId, currentAdditionalRoundInfo.roundId, values).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n OfferChoiceService.updateAuctionInAdditionalRoundInfo(offerChoiceRow.identity, resp.result);\r\n }\r\n }).finally(() => dispatchButtonWorks(auction, 'pause', false));\r\n } else {\r\n const callback = (auction, confirmed) => (values) => pauseAuction(auction, confirmed, values)\r\n setConfirmCfg(createConfirmAuctionCfg(auction, true, callback(auction, true), \"auction_pause_confirm\", \"pause\"));\r\n }\r\n }, [demandId, currentAdditionalRoundInfo, offerChoiceRow]);\r\n\r\n const acceptAuction = useCallback((auction) => {\r\n\r\n dispatchButtonWorks(auction, 'accept', true);\r\n AuctionService.accept(demandId, currentAdditionalRoundInfo.roundId, auction.auctionId).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n redirectUsingPOST(resp.result);\r\n }\r\n }).finally(() => dispatchButtonWorks(auction, 'accept', false));\r\n\r\n\r\n }, [demandId, currentAdditionalRoundInfo]);\r\n\r\n const auctionDetails = useCallback((auction) => {\r\n AuctionService.details(demandId, currentAdditionalRoundInfo.roundId, auction.auctionId).then((resp) => {\r\n if (isResponseValid(resp, setAuctionError)) {\r\n OfferChoiceService.updateAuctionInAdditionalRoundInfo(offerChoiceRow.identity, resp.result);\r\n }\r\n })\r\n }, [demandId, currentAdditionalRoundInfo, offerChoiceRow]);\r\n\r\n const downloadAuctionInvitation = () => {\r\n setDownloadInvitationWorking(true);\r\n AuctionService.downloadAuctionInvitation(demandId, currentAdditionalRoundInfo.roundId, () => setDownloadInvitationWorking(false));\r\n }\r\n\r\n\r\n return (\r\n \r\n
\r\n 0 ? prod[prod.length - 1].status : undefined}\r\n />\r\n\r\n {editable && prod.filter(a => a.status === 'INCOMPLETE').length > 0 && {Tr('auction_invitation_button')}\r\n }\r\n\r\n {\r\n !!createPopupAuctionType && {\r\n OfferChoiceService.addAuctionToAdditionalRoundInfo(offerChoiceRow.identity, auction);\r\n setCreatePopupAuctionType(null);\r\n }}\r\n onCancel={() => setCreatePopupAuctionType(null)}\r\n auctionType={createPopupAuctionType}\r\n roundId={currentAdditionalRoundInfo.roundId}\r\n />\r\n }\r\n {\r\n !!editPopupAuction && setEditPopupAuction(null)}\r\n onCancel={() => setEditPopupAuction(null)}\r\n auction={editPopupAuction}\r\n />\r\n }\r\n {\r\n !!confirmCfg && setConfirmCfg(null)} cfg={confirmCfg}/>\r\n }\r\n {\r\n !!auctionError && setAuctionError(null)} message={auctionError}/>\r\n }\r\n\r\n )\r\n}\r\n\r\nOfferChoiceSummaryCellAuction.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n rowWorking: PropTypes.bool.isRequired,\r\n offerChoiceRow: PropTypes.object.isRequired,\r\n refreshRow: PropTypes.func.isRequired,\r\n serverBrowserTimeDiff: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default OfferChoiceSummaryCellAuction;\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const OfferChoiceState = {\r\n NEW: \"NEW\",\r\n PENDING: \"PENDING\",\r\n ACCEPTED: \"ACCEPTED\",\r\n REJECTED: \"REJECTED\"\r\n}\r\nconst _TR_PREFIX = 'offer_choice_state_';\r\n\r\nexport const OfferChoiceStateLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\nconst _DECISION_STATES = [OfferChoiceState.ACCEPTED, OfferChoiceState.PENDING];\r\nexport const isOfferChoiceStateWithDecision = (status) => (_DECISION_STATES.indexOf(status) > -1);\r\n","import {useMemo, useRef, useState} from \"react\";\r\nimport {makeStyles, TableCell, TableRow, Typography} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from \"clsx\";\r\nimport OfferChoiceContractorRowPart from \"./OfferChoiceContractorRowPart\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport OfferChoiceSummaryCell from \"./OfferChoiceSummaryCell\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport {AdditionalRoundStatusesPending} from \"constants/AdditionalRoundStatus\";\r\nimport OfferChoiceSummaryCellAdditionalRound from \"./additionalRound/OfferChoiceSummaryCellAdditionalRound\";\r\nimport PropTypes from 'prop-types';\r\nimport OfferChoiceSummaryCellAuction from \"./auction/OfferChoiceSummaryCellAuction\";\r\nimport moment from \"libs/moment\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport {isOfferChoiceStateWithDecision} from \"../constants/OfferChoiceState\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n italic: {\r\n fontStyle: 'italic',\r\n userSelect: 'none'\r\n },\r\n evenRow: {\r\n backgroundColor: theme.palette.background.default\r\n },\r\n lastRow: {\r\n borderBottom: `solid 3px ${theme.palette.primary.main}`\r\n },\r\n choiceSize: {\r\n \"& .MuiInput-root\": {\r\n fontSize: theme.typography.body2.fontSize,\r\n color: theme.palette.text.primary\r\n }\r\n },\r\n choiceStatus: {\r\n marginBottom: theme.spacing()\r\n },\r\n choiceControls: {\r\n marginTop: theme.spacing(2),\r\n textAlign: 'center'\r\n },\r\n choiceControlsEnd: {\r\n textAlign: 'end'\r\n },\r\n noOffer: {\r\n textAlign: 'center',\r\n fontSize: '1.5rem'\r\n }\r\n}));\r\n\r\nfunction OfferChoiceRow(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n offerChoiceRow,\r\n rowNumber,\r\n updateStatus,\r\n modifyChoice,\r\n\r\n }) {\r\n\r\n const classes = useStyles();\r\n const even = rowNumber % 2 === 1;\r\n const serverBrowserTimeDiff = useRef(moment(offerChoiceRow.serverTime).diff(moment(), \"s\"));\r\n\r\n const [chosenSuppliers, setChosenSuppliers] = useState(offerChoiceRow.offerChoices.filter(x => x.chosen).map(x => x.identity));\r\n const [chosenStatusDone, setChosenStatusDone] = useState(isOfferChoiceStateWithDecision(offerChoiceRow.state));\r\n const [curWorking, setCurWorking] = useState(false);\r\n const maxPartScore = useMemo(() => offerChoiceRow.offerChoices.reduce((prev, cur) => prev < cur.offerScore ? cur.offerScore : prev, 0), [offerChoiceRow]);\r\n\r\n const refreshRow = async (sectionsToRefresh) => {\r\n setCurWorking(true);\r\n await OfferChoiceService.updatePosition(demandId, offerChoiceRow.identity, sectionsToRefresh).finally(() => setCurWorking(false));\r\n };\r\n\r\n const chooseSupplier = (supplier) => {\r\n const index = chosenSuppliers.indexOf(supplier.identity);\r\n if (index > -1) {\r\n setChosenSuppliers(chosenSuppliers.filter(x => x !== supplier.identity));\r\n } else {\r\n if (chosenSuppliers.length < offerChoiceRow.maxOfferChoiceCount) {\r\n setChosenSuppliers([...chosenSuppliers, supplier.identity]);\r\n }\r\n }\r\n }\r\n\r\n const doUpdateStatus = async (positionId, canceled, chosenSupplierIds, offerChoiceDate, offerChoiceJustification) => {\r\n setCurWorking(true);\r\n try {\r\n await updateStatus(positionId, canceled, chosenSupplierIds, offerChoiceDate, offerChoiceJustification);\r\n\r\n } finally {\r\n setCurWorking(false);\r\n }\r\n }\r\n\r\n const doModifyChoice = async (positionId) => {\r\n setCurWorking(true);\r\n try {\r\n await modifyChoice(positionId);\r\n } finally {\r\n setCurWorking(false);\r\n }\r\n }\r\n\r\n const isAdditionalOffers = useMemo(() => !!offerChoiceRow.currentAdditionalRoundInfo &&\r\n offerChoiceRow.currentAdditionalRoundInfo.type === RoundType.ADDITIONAL_OFFERS &&\r\n AdditionalRoundStatusesPending.indexOf(offerChoiceRow.currentAdditionalRoundInfo.status) > -1\r\n , [offerChoiceRow]);\r\n\r\n const isAuction = useMemo(() => !!offerChoiceRow.currentAdditionalRoundInfo &&\r\n offerChoiceRow.currentAdditionalRoundInfo.type === RoundType.AUCTION &&\r\n AdditionalRoundStatusesPending.indexOf(offerChoiceRow.currentAdditionalRoundInfo.status) > -1\r\n , [offerChoiceRow]);\r\n\r\n const disabledInputs = working || chosenStatusDone || !editable || curWorking || isAdditionalOffers || isAuction;\r\n\r\n const getRow = (element, index, array) => {\r\n const noOffer = element.identity === -1;\r\n const first = index === 0;\r\n const last = index >= array.length - 1;\r\n\r\n const rowSpan = noOffer ? 1 : array.length;\r\n return (\r\n {first && \r\n \r\n {Tr(`offer_evaluation_mode_title_position`, {value: offerChoiceRow.order})}\r\n \r\n \r\n {offerChoiceRow.name}\r\n \r\n }\r\n\r\n {noOffer ?\r\n \r\n {Tr('offer_status_noOffer')}\r\n \r\n :\r\n -1}\r\n chooseSupplierCountReached={chosenSuppliers.length >= offerChoiceRow.maxOfferChoiceCount}\r\n offerChoiceContractor={element}\r\n offerChoiceRow={offerChoiceRow}\r\n chooseSupplier={chooseSupplier}\r\n maxPartScore={maxPartScore}\r\n />}\r\n\r\n {first &&\r\n \r\n\r\n\r\n {isAdditionalOffers && }\r\n\r\n {isAuction && }\r\n\r\n {!isAdditionalOffers && !isAuction && }\r\n \r\n }\r\n )\r\n }\r\n\r\n\r\n return (offerChoiceRow.offerChoices.length > 0 ?\r\n offerChoiceRow.offerChoices.map((element, index, array) => getRow(element, index, array))\r\n :\r\n getRow({identity: -1}, 0, [])\r\n )\r\n}\r\n\r\nOfferChoiceRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n offerChoiceRow: PropTypes.object.isRequired,\r\n rowNumber: PropTypes.number.isRequired,\r\n updateStatus: PropTypes.func.isRequired,\r\n modifyChoice: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default OfferChoiceRow;\r\n\r\n","import React from \"react\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport OfferChoiceRow from \"./OfferChoiceRow\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n border: `solid 3px ${theme.palette.background.paper}`,\r\n \"& .MuiTableCell-root\": {\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n padding: theme.spacing()\r\n }\r\n },\r\n headRow: {\r\n \"&>.MuiTableCell-head\": {\r\n textAlign: \"center\",\r\n borderBottom: `solid 3px ${theme.palette.primary.main}`\r\n }\r\n },\r\n partColumn: {\r\n width: 200\r\n },\r\n contractorColumn: {\r\n width: 250\r\n },\r\n valueColumn: {\r\n width: 105\r\n },\r\n scoreColumn: {\r\n width: 100\r\n },\r\n checkColumn: {\r\n width: 20\r\n }\r\n\r\n}));\r\n\r\nfunction OfferChoiceTable(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n offerChoiceList,\r\n updateStatus,\r\n modifyChoice,\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {Tr(\"part\")}\r\n {Tr(\"contractor\")}\r\n {Tr(\"offer_value\")}\r\n {Tr(\"score\")}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n offerChoiceList.items.map((element, index) => {\r\n const key = \"\" + element.identity + element.canceled + element.editable;\r\n return \r\n })\r\n }\r\n \r\n
)\r\n}\r\n\r\nOfferChoiceTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n offerChoiceList: PropTypes.object.isRequired,\r\n updateStatus: PropTypes.func.isRequired,\r\n modifyChoice: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default OfferChoiceTable;\r\n\r\n","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport SingleButton from \"../components/SingleButton\";\r\n\r\nfunction Alert(\r\n {\r\n title = 'attention',\r\n open,\r\n confirmText,\r\n confirmText2,\r\n maxWidth= 'xs',\r\n onClose,\r\n buttonText = Tr('close'),\r\n translateTexts = false\r\n }) {\r\n\r\n return (\r\n }\r\n >\r\n {!!confirmText && \r\n {translateTexts ? Tr(confirmText) : confirmText}\r\n }\r\n {!!confirmText2 && \r\n {translateTexts ? Tr(confirmText2) : confirmText2}\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nAlert.propTypes = {\r\n classes: PropTypes.any,\r\n open: PropTypes.bool.isRequired,\r\n confirmText: PropTypes.string.isRequired,\r\n confirmText2: PropTypes.string,\r\n onClose: PropTypes.func.isRequired,\r\n buttonText: PropTypes.string,\r\n translateTexts: PropTypes.bool\r\n}\r\n\r\nexport default Alert;","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport * as Yup from \"yup\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport DatePicker from 'components/DatePicker';\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n cells: {\r\n padding: theme.spacing()\r\n },\r\n partColumn: {\r\n width: 75\r\n }\r\n}));\r\n\r\n\r\nconst OfferChoiceCancelWhereNoOffersPopup = (\r\n {\r\n demandId,\r\n onCancel,\r\n onSuccess,\r\n formSubmit\r\n }) => {\r\n\r\n const classes = useStyle();\r\n\r\n const [positionsWithNoOffer, setPositionsWithNoOffer] = useState(null);\r\n const [working, setWorking] = useState(true);\r\n const [error, setError] = useState(false);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = (values) => {\r\n setError(false);\r\n setWorking(true);\r\n OfferChoiceService.cancelPositionsWithNoOffer(demandId, values).then(onSuccess).catch(() => {\r\n setError(true);\r\n setWorking(false);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n OfferChoiceService.getPositionsWithNoOffer(demandId).then(resp => setPositionsWithNoOffer(resp)).finally(() => setWorking(false));\r\n }, [demandId])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n buttons.push(createButton(Tr('invalidate_parts'), handleSubmit, undefined, working || !positionsWithNoOffer?.positions.length));\r\n return buttons;\r\n }\r\n\r\n\r\n return (\r\n }\r\n title={Tr('invalidate_parts_no_offers')}\r\n maxWidth='md'\r\n >\r\n \r\n {working && }\r\n {error && {Tr('unknown_error_message')}}\r\n {!!positionsWithNoOffer && <>\r\n\r\n \r\n {(formikProps) => (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {\r\n !(positionsWithNoOffer?.positions.length) ?\r\n \r\n {Tr('invalidate_parts_no_offers_list_empty')}\r\n \r\n :\r\n <>\r\n \r\n {Tr('invalidate_parts_no_offers_list')} ({positionsWithNoOffer.positions.length}):\r\n \r\n {\r\n {\r\n return [\r\n Tr(`offer_evaluation_mode_title_position`, {value: x.order}),\r\n x.name,\r\n ]\r\n })}\r\n cellClassName={classes.cells}\r\n columnClasses={[\r\n classes.partColumn\r\n ]}\r\n />\r\n }\r\n \r\n }\r\n }\r\n \r\n\r\n\r\n )\r\n}\r\n\r\nOfferChoiceCancelWhereNoOffersPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(OfferChoiceCancelWhereNoOffersPopup)","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Tr from \"translations/Translations\";\r\nimport {makeStyles} from \"@material-ui/core/styles\";\r\nimport {TextField} from \"@material-ui/core\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport ClearIcon from \"@material-ui/icons/Clear\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport {OfferChoiceDecision, OfferChoiceDecisionLabel} from \"../constants/OfferChoiceDecision\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2),\r\n '&>*:not(:first-child):not(:last-child)': {\r\n marginLeft: theme.spacing(4),\r\n }\r\n },\r\n decision: {\r\n width: 182,\r\n },\r\n positionName: {\r\n width: 250,\r\n }\r\n}));\r\n\r\nconst EMPTY_SEARCH_OBJECT = {decision: \"\", positionName: ''}\r\nconst MAX_SEARCH_LENGTH = 100;\r\n\r\nconst decisionsList = [{label: Tr('procedure_status_0'), value: \"\"}, ...Object.keys(OfferChoiceDecision).map(key => ({\r\n label: OfferChoiceDecisionLabel(key),\r\n value: key\r\n}))];\r\n\r\nfunction OfferChoiceSearch(\r\n {\r\n searchInProgress,\r\n doSearch\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [value, setValue] = useState({...EMPTY_SEARCH_OBJECT});\r\n const [submitState, setSubmitState] = useState(0);\r\n\r\n useEffect(() => {\r\n if (submitState && !searchInProgress) {\r\n const valueFiltered = Object.keys(value)\r\n .filter((k) => value[k])\r\n .reduce((a, k) => ({...a, [k]: value[k]}), {});\r\n doSearch(valueFiltered);\r\n }\r\n // eslint-disable-next-line\r\n }, [submitState]);\r\n\r\n const handleChange = (id, e) => {\r\n setValue({...value, [id]: e.target.value});\r\n }\r\n\r\n const handleSubmit = () => {\r\n setSubmitState(x => x + 1)\r\n };\r\n\r\n\r\n const handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n handleSubmit()\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {Tr('search_box')}\r\n \r\n {\r\n handleChange(\"decision\", e);\r\n handleSubmit();\r\n }}\r\n />\r\n\r\n handleChange('positionName', e)}\r\n onKeyUp={handleKeyPress}\r\n fullWidth\r\n value={value.positionName}\r\n inputProps={{maxLength: MAX_SEARCH_LENGTH}}\r\n />\r\n\r\n
\r\n \r\n {\r\n setValue(EMPTY_SEARCH_OBJECT);\r\n handleSubmit()\r\n }}/>\r\n
\r\n \r\n \r\n )\r\n}\r\n\r\nOfferChoiceSearch.propTypes = {\r\n doSearch: PropTypes.func.isRequired,\r\n searchInProgress: PropTypes.bool\r\n}\r\n\r\n\r\nexport default OfferChoiceSearch;","import Tr from 'translations/Translations';\r\n\r\nexport const OfferChoiceDecision = {\r\n NONE: \"NONE\",\r\n OFFER_CHOSEN: \"OFFER_CHOSEN\",\r\n CANCELED: \"CANCELED\"\r\n}\r\nconst _TR_PREFIX = 'offer_choice_decision_';\r\n\r\nexport const OfferChoiceDecisionLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n","import React from 'react'\r\nimport {Checkbox as MuiCheckbox, FormHelperText, Table, TableCell, TableHead, TableBody, TableRow, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport Checkbox from 'components/Checkbox';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport clsx from \"clsx\";\r\n\r\n\r\nconst style = theme => ({\r\n root: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n textBold: {\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n smallColumn: theme.components.table.lpColumn,\r\n orderColumn: theme.components.table.ipColumn,\r\n checkboxColumn: {\r\n width: theme.spacing()\r\n },\r\n cells: {\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n },\r\n checkbox: {\r\n padding: 0,\r\n },\r\n cursor: {\r\n cursor: \"pointer\"\r\n },\r\n table: {\r\n tableLayout: 'fixed',\r\n\r\n '& td, th': {\r\n overflow: 'hidden',\r\n }\r\n },\r\n contractorsTable: {\r\n '& tr:last-child td': {\r\n borderBottom: 'none'\r\n }\r\n },\r\n rowHidden: {\r\n visibility: 'collapse'\r\n },\r\n divHidden: {\r\n maxHeight: '0px !important'\r\n },\r\n divOpen: {\r\n maxHeight: '2000px'\r\n },\r\n elemTransition: {\r\n transition: 'all 0.8s'\r\n }\r\n})\r\n\r\nfunction CreateAdditionalRoundTable(\r\n {\r\n classes,\r\n className,\r\n formikProps,\r\n id,\r\n elementList = [],\r\n showContractors,\r\n label,\r\n editable = true,\r\n required = true,\r\n disabled\r\n }) {\r\n const elements = getObjectValue(id, formikProps.values, []);\r\n const errorValue = getObjectValue(id, formikProps.errors, '');\r\n const touched = getObjectValue(id, formikProps.touched, false);\r\n const isAllChecked = elementList.length > 0 && !elementList.find(x => elements[x.identity].checked !== true)\r\n\r\n const handleHeadCheckboxChange = (e, value) => {\r\n elementList.forEach(x => formikProps.setFieldValue(id + '.' + x.identity + '.checked', value));\r\n }\r\n\r\n const handleContractorsHeadCheckboxChange = (e, value, elemId) => {\r\n const position = elementList.find(x => x.identity === elemId);\r\n position.contractors.forEach(c => formikProps.setFieldValue(id + '.' + position.identity + '.contractors.' + c.identity, value));\r\n }\r\n\r\n const isError = editable && !!errorValue && Boolean(touched);\r\n const helperText = errorValue || ' ';\r\n return (\r\n \r\n \r\n {label ? label : Tr('assign_to_part')}{required ? '*' : ''}\r\n \r\n \r\n \r\n \r\n \r\n {Tr('part_number')}\r\n {Tr('name')}\r\n \r\n \r\n \r\n {elementList.map((x, i) => {\r\n const positionChecked = elements[x.identity].checked;\r\n const allContractorsChecked = !!elements[x.identity].contractors && !Object.keys(elements[x.identity].contractors).find(c => elements[x.identity].contractors[c] !== true);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {showContractors &&\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n handleContractorsHeadCheckboxChange(e, value, x.identity)}\r\n checked={allContractorsChecked}\r\n disabled={disabled}\r\n />\r\n {Tr('column_lp')}\r\n {Tr('contractor')}\r\n \r\n \r\n \r\n {x.contractors.map((c, i) => {\r\n return (\r\n \r\n \r\n {i + 1}\r\n \r\n \r\n )\r\n })}\r\n \r\n
\r\n
\r\n \r\n \r\n }\r\n \r\n )\r\n }\r\n )}\r\n \r\n \r\n {isError && {helperText}}\r\n \r\n )\r\n}\r\n\r\nCreateAdditionalRoundTable.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(CreateAdditionalRoundTable);\r\n","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport * as Yup from \"yup\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport CreateAdditionalRoundTable from \"./CreateAdditionalRoundTable\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n cells: {\r\n padding: theme.spacing()\r\n },\r\n partColumn: {\r\n width: 75\r\n },\r\n dateTimePicker: {\r\n width: 350\r\n }\r\n}));\r\n\r\n\r\nconst OfferChoiceCreateAdditionalRoundPopup = (\r\n {\r\n demandId,\r\n onCancel,\r\n onSuccess,\r\n roundType,\r\n formSubmit\r\n }) => {\r\n\r\n const isAuction = roundType === RoundType.AUCTION;\r\n const classes = useStyle();\r\n\r\n const [rounds, setRounds] = useState(null);\r\n const [showContractors, setShowContractors] = useState(false);\r\n const [working, setWorking] = useState(true);\r\n const [error, setError] = useState(false);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = (values) => {\r\n setError(false);\r\n setWorking(true);\r\n OfferChoiceService.createAdditionalRound(demandId, values, roundType).then(onSuccess).catch(() => {\r\n setError(true);\r\n setWorking(false);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n OfferChoiceService.prepareAdditionalRound(demandId, roundType).then(resp => {\r\n setRounds({...resp, positions: resp.positions.map(x => ({...x, identity: \"_\" + x.identity, contractors: !!x.contractors ? x.contractors.map(c => ({...c, identity: \"_\" + c.identity})) : []}))})\r\n setShowContractors(resp.showContractors);\r\n }).finally(() => setWorking(false));\r\n }, [demandId, roundType])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n buttons.push(createButton(Tr(isAuction ? 'additional_round_create_auction_begin_button' : 'additional_round_create_additional_offers_begin_button'), handleSubmit, undefined, working || !rounds?.positions.length));\r\n return buttons;\r\n }\r\n const handleEndDate = (formikProps, value) => {\r\n formikProps.setFieldValue('openOfferDate', value);\r\n }\r\n\r\n const validationSchema = () => {\r\n const shape = {\r\n parts: VS.any().test('partSelected', Tr('choose_at_least_one_position'), (e) => {\r\n const selIndex = Object.keys(e).findIndex(x => e[x].checked === true);\r\n return selIndex > -1;\r\n }).test('contractorSelected', Tr('choose_at_least_one_contractor'), (e) => {\r\n return showContractors ? Object.keys(e).filter(x => e[x].checked === true).every(x => Object.keys(e[x].contractors).findIndex(c => e[x].contractors[c] === true) > -1) : true;\r\n })\r\n }\r\n if (!isAuction) {\r\n shape.endDate = VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past'));\r\n shape.openOfferDate = VS.dateTimeValid()\r\n .when('endDate', (endDate, schema) => {\r\n return schema.test('EndDateLessOpenDate', Tr(\"EndDateLessOpenDate\"), (offerOpenDate) => {\r\n if (endDate && offerOpenDate) {\r\n return !offerOpenDate.isBefore(endDate);\r\n }\r\n return false;\r\n })\r\n })\r\n }\r\n return Yup.object().shape(shape)\r\n }\r\n\r\n return (\r\n }\r\n title={Tr(isAuction ? 'additional_round_create_auction_popup_title' : 'additional_round_create_additional_offers_popup_title')}\r\n maxWidth='md'\r\n >\r\n \r\n\r\n {working && }\r\n {error && {Tr('unknown_error_message')}}\r\n {!working && !!rounds && <>\r\n\r\n {\r\n prev[cur.identity] = {\r\n checked: false,\r\n contractors: cur.contractors.reduce((arr, elem) => {\r\n arr[elem.identity] = false;\r\n return arr;\r\n }, {})\r\n };\r\n return prev;\r\n }, {})\r\n }}\r\n validationSchema={validationSchema()}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n {!isAuction &&\r\n handleEndDate(formikProps, value)}\r\n minDate={new Date()}\r\n />\r\n }\r\n\r\n {!isAuction &&\r\n \r\n }\r\n {\r\n !(rounds?.positions.length) ?\r\n \r\n {\r\n isAuction ? (rounds.error ? rounds.error : Tr('additional_round_auction_list_empty')) : Tr('additional_round_list_empty')\r\n }\r\n \r\n :\r\n \r\n }\r\n \r\n )}\r\n \r\n\r\n\r\n }\r\n \r\n\r\n\r\n )\r\n}\r\n\r\nOfferChoiceCreateAdditionalRoundPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n roundType: PropTypes.oneOf([RoundType.AUCTION, RoundType.ADDITIONAL_OFFERS]).isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(OfferChoiceCreateAdditionalRoundPopup)","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport {Grid, Typography, withStyles} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport TextInput from \"components/TextInput\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport Form from \"components/Form\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n limit: {\r\n position: 'absolute',\r\n bottom: 0,\r\n right: 0,\r\n color: theme.palette.text.secondary,\r\n },\r\n relative: {\r\n position: 'relative'\r\n }\r\n})\r\n\r\nfunction RealizationAmountForm(\r\n {\r\n formId,\r\n realizationValues,\r\n required,\r\n editable,\r\n onSubmit,\r\n classes\r\n }) {\r\n\r\n\r\n const getInitValues = () => {\r\n const init = {\r\n dealings: realizationValues.dealings.map(({realizationGrossValue, identity}) => ({\r\n realizationGrossValue,\r\n identity\r\n }))\r\n };\r\n return init;\r\n }\r\n\r\n const getValidationSchema = () => {\r\n const shape = {\r\n realizationGrossValue: required ? VS.amount(0, true) : VS.amountOptional(0, true)\r\n }\r\n\r\n return VS.object({\r\n dealings: VS.lazy(x => {\r\n return VS.arrayOfShape(shape)\r\n })\r\n })\r\n }\r\n\r\n const formatPublishDate = (publishDate) => {\r\n return moment(publishDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT);\r\n }\r\n\r\n return (\r\n {(formikProps) => (\r\n <>\r\n \r\n {realizationValues.dealings.map((x, i) =>\r\n (\r\n
\r\n 1 ? Tr('part_x', {x: i + 1}) : ''}\r\n formikProps={formikProps}\r\n type={INPUT_TYPE.NUMBER_19}\r\n disabled={!editable}\r\n required={required}\r\n />\r\n {x.realizationPublishDate && {Tr('realization_publish_date')}{realizationValues.dealings.length > 1 ? Tr('on_part_x', {x: i + 1}) : ''}: {formatPublishDate(x.realizationPublishDate)}}\r\n
\r\n
))\r\n }\r\n
\r\n )}\r\n )\r\n}\r\n\r\nRealizationAmountForm.propTypes = {\r\n formId: PropTypes.string.isRequired,\r\n realizationValues: PropTypes.shape({\r\n dealings: PropTypes.array.isRequired,\r\n realizationValuePublished: PropTypes.bool\r\n }).isRequired,\r\n required: PropTypes.bool.isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default withStyles(style)(RealizationAmountForm);","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport useId from \"hooks/useId\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport DealingsService from \"services/DealingsService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport RealizationAmountForm from \"components/complex/realizationAmount/RealizationAmountForm\";\r\n\r\n\r\nconst FinalRealizationValuePopup = (\r\n {\r\n demandId,\r\n onCancel,\r\n onSuccess,\r\n editable,\r\n formSubmit,\r\n }) => {\r\n\r\n\r\n const [realizationValues, setRealizationValues] = useState(null);\r\n const [working, setWorking] = useState(true);\r\n const [error, setError] = useState(null);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = ({dealings}) => {\r\n setError(false);\r\n setWorking(true);\r\n\r\n const toCompare = realizationValues.dealings;\r\n\r\n const touched = dealings.filter((el, i) => {\r\n return el.realizationGrossValue !== toCompare[i].realizationGrossValue\r\n });\r\n\r\n DealingsService.saveFinalRealizationValues(demandId, {dealings: touched}).then(onSuccess).catch(() => {\r\n setError(Tr('unknown_error_message'));\r\n setWorking(false);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n DealingsService.getFinalRealizationValues(demandId).then(resp => {\r\n if (isResponseValid(resp, setError))\r\n setRealizationValues(resp)\r\n }).finally(() => setWorking(false))\r\n }, [demandId])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n buttons.push(createButton(Tr('realization_value_update'), handleSubmit, undefined, working || !editable));\r\n return buttons;\r\n }\r\n\r\n\r\n return (\r\n }\r\n title={Tr('final_realization_value')}\r\n maxWidth='md'\r\n >\r\n \r\n {working && }\r\n {!!error && {error}}\r\n {!!realizationValues && }\r\n \r\n\r\n\r\n )\r\n}\r\n\r\nFinalRealizationValuePopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(FinalRealizationValuePopup)","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {connect} from \"react-redux\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Tr from \"translations/Translations\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport Pagination from \"components/Pagination\";\r\nimport OfferChoiceTable from \"./components/OfferChoiceTable\";\r\nimport Alert from \"components/popup/alert/Alert\";\r\nimport OfferChoiceCancelWhereNoOffersPopup from \"./components/OfferChoiceCancelWhereNoOffersPopup\";\r\nimport OfferChoiceSearch from \"./components/OfferChoiceSearch\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport OfferChoiceCreateAdditionalRoundPopup from \"./components/additionalRound/OfferChoiceCreateAdditionalRoundPopup\";\r\nimport {RoundType} from \"constants/RoundType\";\r\nimport FinalRealizationValuePopup from \"./components/FinalRealizationValuePopup\";\r\nimport SplitButton, {createButton as createSplitButton} from \"components/popup/components/SplitButton\";\r\nimport MultiButton from \"components/popup/components/MultiButton\";\r\n\r\n\r\nfunction OfferChoice(\r\n {\r\n match,\r\n offerChoiceList,\r\n offerChoiceJustification,\r\n demandValidation\r\n }) {\r\n\r\n const curDemandValidation = DemandValidation.OFFER_CHOICE;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig} = useSearch();\r\n const [working, setWorking] = useState(true);\r\n const [errorDialogOpen, setErrorDialogOpen] = useState(false);\r\n const [realizationDialogOpen, setRealizationDialogOpen] = useState(false);\r\n const [cancelWhereNoOffersPopupOpen, setCancelWhereNoOffersPopupOpen] = useState(false);\r\n const [createPopupType, setCreatePopupType] = useState(null);\r\n\r\n const updateStatus = async (positionId, canceled, chosenSupplierIds, offerChoiceDate, offerChoiceJustification) => {\r\n setWorking(true);\r\n try {\r\n await OfferChoiceService.saveOfferChoice(demandId, positionId, canceled, chosenSupplierIds, offerChoiceDate, offerChoiceJustification);\r\n } catch (e) {\r\n setErrorDialogOpen(true);\r\n throw e;\r\n } finally {\r\n setWorking(false);\r\n }\r\n }\r\n\r\n const modifyChoice = async (positionId) => {\r\n setWorking(true);\r\n try {\r\n await OfferChoiceService.modifyChoice(demandId, positionId);\r\n } catch (e) {\r\n setErrorDialogOpen(true);\r\n throw e;\r\n } finally {\r\n setWorking(false);\r\n }\r\n }\r\n\r\n const refreshData = () => setSearchConfig({...searchData.search});\r\n\r\n useEffect(() => {\r\n OfferChoiceService.getChoiceJustificationBasis(demandId);\r\n return () => {\r\n OfferChoiceService.clearResources(OfferChoiceService.OFFER_CHOICE_LIST_RESOURCE_ID);\r\n OfferChoiceService.clearResources(OfferChoiceService.OFFER_CHOICE_JUSTIFICATIONS);\r\n }\r\n }, [demandId])\r\n\r\n useEffect(() => {\r\n setWorking(true);\r\n const {pagination, search} = searchData;\r\n OfferChoiceService.getChoiceList(demandId, pagination, search).then(() => (setWorking(false)));\r\n // eslint-disable-next-line\r\n }, [searchData, demandId])\r\n\r\n useDidUpdateEffect(() => {\r\n if (offerChoiceList?.totalCount !== undefined) {\r\n setTotalCount(offerChoiceList.totalCount)\r\n }\r\n }, [offerChoiceList?.totalCount]);\r\n\r\n\r\n const createRoundButton = useMemo(() => {\r\n const buttons = [];\r\n buttons.push(createSplitButton(Tr('additional_round_create_additional_offers_button'), () => setCreatePopupType(RoundType.ADDITIONAL_OFFERS), !editable || working));\r\n buttons.push(createSplitButton(Tr('additional_round_create_auction_button'), () => setCreatePopupType(RoundType.AUCTION), !editable || working));\r\n return ()\r\n }, [editable, working])\r\n\r\n const additionalActionsButton = useMemo(() => {\r\n const buttons = [];\r\n buttons.push(createSplitButton(Tr('invalidate_parts_no_offers'), () => setCancelWhereNoOffersPopupOpen(true), !editable || working));\r\n buttons.push(createSplitButton(Tr('realization_value_update'), () => setRealizationDialogOpen(true), working));\r\n return ()\r\n }, [editable, working])\r\n\r\n if (!offerChoiceList || !offerChoiceJustification) return ;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {!offerChoiceList?.items.length ?\r\n {Tr('no_options')}\r\n :\r\n <>\r\n \r\n \r\n setErrorDialogOpen(false)}/>\r\n }\r\n {\r\n cancelWhereNoOffersPopupOpen &&\r\n setCancelWhereNoOffersPopupOpen(false)}\r\n onSuccess={() => {\r\n refreshData();\r\n setCancelWhereNoOffersPopupOpen(false);\r\n }}\r\n />\r\n }\r\n {\r\n !!createPopupType &&\r\n setCreatePopupType(null)}\r\n onSuccess={() => {\r\n refreshData();\r\n setCreatePopupType(null);\r\n }}\r\n roundType={createPopupType}\r\n />\r\n }\r\n {\r\n !!realizationDialogOpen &&\r\n setRealizationDialogOpen(false)}\r\n onSuccess={() => {\r\n refreshData();\r\n setRealizationDialogOpen(false);\r\n }}\r\n editable={editable}\r\n />\r\n }\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n offerChoiceList: state.resources[OfferChoiceService.OFFER_CHOICE_LIST_RESOURCE_ID],\r\n offerChoiceJustification: state.resources[OfferChoiceService.OFFER_CHOICE_JUSTIFICATIONS],\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(OfferChoice));\r\n\r\n","import React from 'react'\r\nimport OfferChoice from \"./OfferChoice\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport {clearResource, setResource, setSaveStatusError} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport applySearchParams from \"libs/applySearchParams\";\r\nimport Tr from \"../translations/Translations\";\r\nimport downloadFileWithPreloadUrl from \"../libs/downloadFileWithPreloadUrl\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\nimport moment from \"libs/moment\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\n\r\nconst OFFER_CHOICE_RESULT_LIST_RESOURCE_ID = 'offerChoiceResultList';\r\n\r\nconst getChoiceResultList = async (demandId, pagination, search) => {\r\n const params = {\r\n ...pagination\r\n };\r\n applySearchParams(search, params);\r\n try {\r\n const resp = await RestRequestGET(Endpoints.OFFER_CHOICE_RESULT(demandId), {params});\r\n reduxStore.dispatch(setResource(OFFER_CHOICE_RESULT_LIST_RESOURCE_ID, resp));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst setChoiceResult = (roundResult) => {\r\n const {resources} = reduxStore.getState();\r\n const curList = resources?.[OFFER_CHOICE_RESULT_LIST_RESOURCE_ID];\r\n if (curList) {\r\n const newList = {\r\n ...curList,\r\n items: curList.items.map(x => x.identity === roundResult.identity ? roundResult : x)\r\n }\r\n reduxStore.dispatch(setResource(OFFER_CHOICE_RESULT_LIST_RESOURCE_ID, newList));\r\n }\r\n};\r\n\r\nconst getChoiceResultFilesList = async (demandId, roundResultId) => {\r\n try {\r\n return await RestRequestGET(Endpoints.OFFER_CHOICE_RESULT_FILE(demandId, roundResultId));\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n};\r\n\r\nconst getChoiceResultPrint = async (demandId, roundResultId) => {\r\n try {\r\n await RestRequestBLOB(Endpoints.OFFER_CHOICE_RESULT_PRINT(demandId, roundResultId));\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n};\r\n\r\nconst shareChoiceResultPrint = async (demandId, roundResultId, system) => {\r\n\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE_RESULT_SHARE(demandId, roundResultId), {system});\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n return false;\r\n};\r\n\r\nconst updatePublishUntilDate = async (demandId, roundResultId, values) => {\r\n try {\r\n const data = {\r\n date: values.publishUntilDate ? moment(values.publishUntilDate) : null\r\n };\r\n const resp = await RestRequestPUT(Endpoints.OFFER_CHOICE_RESULT_PUBLISH_UNTIL_DATE(demandId, roundResultId), data);\r\n if (resp.success) {\r\n const result = resp.result;\r\n const {resources} = reduxStore.getState();\r\n const list = resources[OFFER_CHOICE_RESULT_LIST_RESOURCE_ID];\r\n if (list) {\r\n\r\n const newList = {\r\n ...list,\r\n items: list.items.map(x => x.identity === result.identity ? {...result, positionOrders: x.positionOrders} : x)\r\n }\r\n reduxStore.dispatch(setResource(OFFER_CHOICE_RESULT_LIST_RESOURCE_ID, newList));\r\n }\r\n } else {\r\n throw new Error(resp)\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n};\r\n\r\nconst addChoiceResultFilesList = async (demandId, roundResultId, repositoryFiles) => {\r\n const data = {\r\n repositoryIds: repositoryFiles.map(x => x.identity)\r\n }\r\n\r\n try {\r\n return await RestRequestPOST(Endpoints.OFFER_CHOICE_RESULT_FILE(demandId, roundResultId), data);\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n};\r\n\r\nconst getDownloadFile = async (demandId, roundResultId, resultFileId) => {\r\n await downloadFileWithPreloadUrl(\r\n Endpoints.OFFER_CHOICE_RESULT_FILE_DOWNLOAD_URL(demandId, roundResultId, resultFileId, false),\r\n false);\r\n}\r\n\r\nconst deleteFile = async (demandId, roundResultId, resultFileId) => {\r\n try {\r\n const resp = await RestRequestDELETE(Endpoints.OFFER_CHOICE_RESULT_FILE_DELETE(demandId, roundResultId, resultFileId));\r\n if (resp?.success && resp?.result) {\r\n return resp.result;\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\nconst publishFile = async (demandId, roundResultId, resultFileId) => {\r\n try {\r\n const resp = await RestRequestPUT(Endpoints.OFFER_CHOICE_RESULT_FILE_PUBLISH(demandId, roundResultId, resultFileId));\r\n validateSection(DemandValidation.OFFERS_CHOICE_RESULT, demandId, false);\r\n return resp;\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\nconst unpublishFile = async (demandId, roundResultId, resultFileId) => {\r\n try {\r\n const resp = await RestRequestPUT(Endpoints.OFFER_CHOICE_RESULT_FILE_UNPUBLISH(demandId, roundResultId, resultFileId));\r\n validateSection(DemandValidation.OFFERS_CHOICE_RESULT, demandId, false);\r\n return resp;\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\n\r\nconst shareFile = async (demandId, roundResultId, resultFileId, system) => {\r\n try {\r\n const resp = await RestRequestPOST(Endpoints.OFFER_CHOICE_RESULT_FILE_SHARE(demandId, roundResultId, resultFileId), {system});\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e)))) {\r\n return true;\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n return false;\r\n\r\n}\r\n\r\nconst getDownloadHistory = async (demandId, resultNoticeId, resultFileId, pagination) => {\r\n\r\n const params = {\r\n ...pagination\r\n }\r\n\r\n const siwzDownloadHistory = await RestRequestGET(Endpoints.OFFER_CHOICE_RESULT_FILE_DOWNLOAD_HISTORY(demandId, resultNoticeId, resultFileId, params), {params});\r\n return siwzDownloadHistory;\r\n}\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.OFFER_CHOICE_RESULT_VALIDATE(id));\r\n}\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n};\r\n\r\nexport default {\r\n getChoiceResultList,\r\n setChoiceResult,\r\n getChoiceResultFilesList,\r\n updatePublishUntilDate,\r\n addChoiceResultFilesList,\r\n getDownloadFile,\r\n getChoiceResultPrint,\r\n shareChoiceResultPrint,\r\n deleteFile,\r\n publishFile,\r\n unpublishFile,\r\n getDownloadHistory,\r\n validate,\r\n clearResources,\r\n shareFile,\r\n OFFER_CHOICE_RESULT_LIST_RESOURCE_ID\r\n}","import Tr from 'translations/Translations';\r\n\r\nexport const OfferChoiceResultFileState = {\r\n NEW: \"NEW\",\r\n PUBLISHED: \"PUBLISHED\",\r\n WITHDRAWN: \"WITHDRAWN\"\r\n}\r\nconst _TR_PREFIX = 'offer_choice_result_file_state_';\r\n\r\nexport const OfferChoiceResultFileStateLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n","import {makeStyles, TableCell, TableRow} from \"@material-ui/core\";\r\nimport {Delete as DeleteIcon} from \"@material-ui/icons\";\r\nimport moment from \"libs/moment\";\r\nimport PropTypes from \"prop-types\";\r\nimport React, {useReducer, useState} from \"react\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport WorkableIconButton from \"components/button/WorkableIconButton\";\r\nimport OffersChoiceResultService from \"services/OffersChoiceResultService\";\r\nimport {OfferChoiceResultFileState, OfferChoiceResultFileStateLabel} from \"../constants/OfferChoiceResultFileState\";\r\nimport WorkableIconUnpublishButton from \"components/button/WorkableIconUnpublishButton\";\r\nimport WorkableIconPublishButton from \"components/button/WorkableIconPublishButton\";\r\nimport WorkableIconDownloadCountButton from \"components/button/WorkableIconDownloadCountButton\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport WorkableIconDownloadButton from \"components/button/WorkableIconDownloadButton\";\r\nimport DownloadHistoryPopup, {createDownloadHistoryFile} from \"components/popup/DownloadHistoryPopup\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport ShareSelectPopup, {sharePopupData} from \"components/popup/ShareSelectPopup\";\r\nimport Tr from \"translations/Translations\";\r\nimport WorkableIconShareButton from \"components/button/WorkableIconShareButton\";\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n buttonCell: {\r\n padding: 0\r\n }\r\n}));\r\n\r\nfunction OfferChoiceResultFilesTableRow(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n offerChoiceResultItem,\r\n onDeleteFile,\r\n onUpdateFile,\r\n file,\r\n showShare\r\n }) {\r\n const classes = useStyles();\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n download: false,\r\n publish: false,\r\n delete: false,\r\n share: false,\r\n });\r\n const [downloadHistory, setDownloadHistory] = useState(null);\r\n const [shareFilePopup, setShareFilePopup] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n const onDownloadCount = () => {\r\n setDownloadHistory(createDownloadHistoryFile(file.name, demandId, file.identity));\r\n };\r\n\r\n const onDownloadDialogClose = () => {\r\n setDownloadHistory(null);\r\n };\r\n\r\n const downloadFile = (file) => {\r\n dispatchIconWorks({type: 'download', works: true})\r\n OffersChoiceResultService.getDownloadFile(demandId, offerChoiceResultItem.identity, file.identity)\r\n .catch(() => {\r\n }).finally(() => dispatchIconWorks({type: 'download', works: false}));\r\n };\r\n\r\n const deleteFile = (file) => {\r\n dispatchIconWorks({type: 'delete', works: true})\r\n OffersChoiceResultService.deleteFile(demandId, offerChoiceResultItem.identity, file.identity)\r\n .then(() => {\r\n onDeleteFile(file)\r\n })\r\n .catch(() => dispatchIconWorks({type: 'delete', works: false}));\r\n };\r\n\r\n const publishFile = (file) => {\r\n dispatchIconWorks({type: 'publish', works: true});\r\n const promise = OffersChoiceResultService.publishFile(demandId, offerChoiceResultItem.identity, file.identity);\r\n doPublishChange(promise);\r\n };\r\n\r\n const unpublishFile = (file) => {\r\n dispatchIconWorks({type: 'publish', works: true});\r\n const promise = OffersChoiceResultService.unpublishFile(demandId, offerChoiceResultItem.identity, file.identity);\r\n doPublishChange(promise);\r\n };\r\n\r\n const doPublishChange = (promise) => {\r\n promise\r\n .then((resp) => {\r\n if (resp?.file) {\r\n onUpdateFile(resp.file);\r\n }\r\n if (resp?.info) {\r\n OffersChoiceResultService.setChoiceResult(resp.info)\r\n }\r\n })\r\n .finally(() => dispatchIconWorks({type: 'publish', works: false}));\r\n };\r\n\r\n\r\n const onShareFile = (row) => setShareFilePopup(sharePopupData(row.name, row));\r\n\r\n const doShare = (row, system) => {\r\n setShareFilePopup(null);\r\n dispatchIconWorks({type: 'share', works: true});\r\n OffersChoiceResultService.shareFile(demandId, offerChoiceResultItem.identity, row.identity, system).then((resp) => {\r\n if (resp)\r\n enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: system}, true))\r\n }).finally(() => {\r\n dispatchIconWorks({type: 'share', works: false})\r\n });\r\n }\r\n\r\n return (\r\n \r\n {file.name}\r\n {OfferChoiceResultFileStateLabel(file.state)}\r\n {file.datePublished ? moment(file.datePublished).format(DateFormats.DATETIME_FORMAT) : null}\r\n \r\n downloadFile(file)}/>\r\n \r\n {\r\n showShare &&\r\n \r\n onShareFile(file)}\r\n disabled={iconWorks.anyWorks}\r\n working={iconWorks.share}\r\n />\r\n\r\n {!!shareFilePopup && setShareFilePopup(null)}\r\n onChoose={doShare}\r\n />}\r\n \r\n }\r\n \r\n {\r\n file.state === OfferChoiceResultFileState.PUBLISHED ?\r\n unpublishFile(file)}\r\n /> :\r\n publishFile(file)}\r\n />\r\n }\r\n \r\n \r\n \r\n {downloadHistory &&\r\n {\r\n return await OffersChoiceResultService.getDownloadHistory(demandId, offerChoiceResultItem.identity, fileId, pagination)\r\n }\r\n }}\r\n onClose={onDownloadDialogClose}\r\n />\r\n }\r\n \r\n \r\n deleteFile(file)}\r\n />\r\n \r\n \r\n )\r\n}\r\n\r\nOfferChoiceResultFilesTableRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n offerChoiceResultItem: PropTypes.object.isRequired,\r\n onDeleteFile: PropTypes.func.isRequired,\r\n onUpdateFile: PropTypes.func.isRequired,\r\n file: PropTypes.object.isRequired,\r\n showShare: PropTypes.bool.isRequired\r\n}\r\n\r\nexport default OfferChoiceResultFilesTableRow;\r\n\r\n","import {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\nimport React from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport OfferChoiceResultFilesTableRow from \"./OfferChoiceResultFilesTableRow\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n statusColumn: theme.components.table.emailColumn,\r\n dateTimeColumn: {\r\n width: 248\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n}));\r\n\r\nfunction OfferChoiceResultFilesTable(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n offerChoiceResultItem,\r\n files,\r\n setFiles,\r\n showShare\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const onDeleteFile = (fileToDelete) => {\r\n setFiles(state => state.filter(f => f.identity !== fileToDelete.identity));\r\n }\r\n\r\n const onUpdateFile = (fileToUpdate) => {\r\n setFiles(state => state.map(f => f.identity === fileToUpdate.identity ? fileToUpdate : f));\r\n }\r\n\r\n if (!files) return null;\r\n return (\r\n \r\n \r\n {Tr(\"name\")}\r\n {Tr(\"status\")}\r\n {Tr(\"publish_data\")}\r\n \r\n {showShare && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {files.map(file => (\r\n \r\n ))}\r\n \r\n
)\r\n\r\n\r\n}\r\n\r\nOfferChoiceResultFilesTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n offerChoiceResultItem: PropTypes.object.isRequired,\r\n files: PropTypes.array.isRequired,\r\n setFiles: PropTypes.func.isRequired\r\n}\r\n\r\nexport default OfferChoiceResultFilesTable;\r\n\r\n","import {TableCell, TableRow} from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\nimport React, {useState} from \"react\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport OffersChoiceResultService from \"services/OffersChoiceResultService\";\r\nimport Tr from \"translations/Translations\";\r\nimport OfferChoiceResultFilesTable from \"./OfferChoiceResultFilesTable\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\n\r\nfunction OfferChoiceResultFiles(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n offerChoiceResultItem,\r\n files,\r\n setFiles,\r\n showShare\r\n }) {\r\n\r\n const [filesWorking, setFilesWorking] = useState(false);\r\n\r\n\r\n const handleSendFiles = (files) => {\r\n if (files.length) {\r\n setFilesWorking(true);\r\n OffersChoiceResultService.addChoiceResultFilesList(demandId, offerChoiceResultItem.identity, files)\r\n .then((resp) => {\r\n if (resp)\r\n setFiles(state => [...state, ...resp.files]);\r\n })\r\n .finally(() => setFilesWorking(false));\r\n }\r\n }\r\n\r\n\r\n if (!files) return null;\r\n return (\r\n \r\n {editable && files && \r\n }\r\n {\r\n !files.length ?\r\n {Tr('no_options')}\r\n :\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nOfferChoiceResultFiles.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n offerChoiceResultItem: PropTypes.object.isRequired,\r\n files: PropTypes.arrayOf(PropTypes.shape({\r\n identity: PropTypes.number.isRequired,\r\n name: PropTypes.string.isRequired,\r\n state: PropTypes.string.isRequired,\r\n datePublished: PropTypes.string\r\n })),\r\n setFiles: PropTypes.func.isRequired\r\n}\r\n\r\nexport default OfferChoiceResultFiles;\r\n\r\n","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport PrintIcon from '@material-ui/icons/Print';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nfunction WorkableIconPrintButton(\r\n {\r\n tooltip = Tr('download_print'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconPrintButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconPrintButton;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport DescriptionIcon from '@material-ui/icons/Description';\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport moment from \"libs/moment\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction OfferChoiceResultFilePublishPopup(\r\n {\r\n onClose,\r\n onSubmit,\r\n offerChoiceResultItem,\r\n formSubmit,\r\n }) {\r\n\r\n const {publishUntilDate} = offerChoiceResultItem;\r\n\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n return (\r\n }\r\n >\r\n\r\n \r\n {(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 }) {\r\n\r\n const classes = useStyles();\r\n const [publishPopupOpened, setPublishPopupOpened] = useState(false);\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n load: false,\r\n print: false,\r\n publish: false,\r\n share: false\r\n });\r\n const [shareFilePopup, setShareFilePopup] = useState(null);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n const [files, setFiles] = useState(null);\r\n\r\n const onPrintClick = () => {\r\n if (!iconWorks.anyWorks) {\r\n dispatchIconWorks({type: 'print', works: true})\r\n OffersChoiceResultService.getChoiceResultPrint(demandId, offerChoiceResultItem.identity).finally(() => dispatchIconWorks({\r\n type: 'print',\r\n works: false\r\n }));\r\n }\r\n }\r\n\r\n const onUpdatePublishUntilDate = (values) => {\r\n dispatchIconWorks({type: 'publish', works: true})\r\n setPublishPopupOpened(false);\r\n OffersChoiceResultService.updatePublishUntilDate(demandId, offerChoiceResultItem.identity, values)\r\n .finally(() => dispatchIconWorks({type: 'publish', works: false}));\r\n }\r\n\r\n const onLoadButtonClick = () => {\r\n if (!iconWorks.anyWorks) {\r\n if (files === null) {\r\n dispatchIconWorks({type: 'load', works: true})\r\n OffersChoiceResultService.getChoiceResultFilesList(demandId, offerChoiceResultItem.identity).then((resp) => {\r\n if (resp !== undefined)\r\n setFiles(resp.files);\r\n }).finally(() => dispatchIconWorks({type: 'load', works: false}));\r\n } else {\r\n setFiles(null);\r\n }\r\n }\r\n }\r\n const name = `${Tr(offerChoiceResultItem.modification ? 'offers_choice_modification_result_applies_parts' : 'offers_choice_result_applies_parts')}: ${offerChoiceResultItem.positionOrders.join(\", \")}`;\r\n\r\n const onShareFile = () => setShareFilePopup(sharePopupData(name));\r\n\r\n const doShare = (row, system) => {\r\n setShareFilePopup(null);\r\n dispatchIconWorks({type: 'share', works: true});\r\n OffersChoiceResultService.shareChoiceResultPrint(demandId, offerChoiceResultItem.identity, system).then((resp) => {\r\n if (resp)\r\n enqueueSuccessSnackbar(Tr(\"int_upload_success_x\", {x: system}, true))\r\n }).finally(() => {\r\n dispatchIconWorks({type: 'share', works: false})\r\n });\r\n }\r\n\r\n const filesLoaded = files !== null;\r\n return (<>\r\n \r\n \r\n {name}\r\n \r\n \r\n {OfferChoiceResultStateLabel(offerChoiceResultItem.state)}\r\n \r\n \r\n {offerChoiceResultItem.publishDate ? moment(offerChoiceResultItem.publishDate).format(DateFormats.DATETIME_FORMAT) : null}\r\n \r\n \r\n {offerChoiceResultItem.publishUntilDate ? moment(offerChoiceResultItem.publishUntilDate).format(DateFormats.DATETIME_FORMAT) : null}\r\n \r\n \r\n setPublishPopupOpened(true)}\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n showShare && \r\n \r\n {!!shareFilePopup && setShareFilePopup(null)}\r\n onChoose={doShare}\r\n />}\r\n\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {\r\n publishPopupOpened &&\r\n setPublishPopupOpened(false)}\r\n onSubmit={onUpdatePublishUntilDate}\r\n />\r\n }\r\n )\r\n}\r\n\r\nOfferChoiceResultRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool,\r\n offerChoiceResultItem: PropTypes.shape({\r\n positionOrders: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n publishDate: PropTypes.string,\r\n state: PropTypes.string,\r\n }).isRequired\r\n}\r\n\r\nexport default OfferChoiceResultRow;\r\n\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const OfferChoiceResultState = {\r\n NEW: \"NEW\",\r\n PUBLISHED: \"PUBLISHED\",\r\n WITHDRAWN: \"WITHDRAWN\"\r\n}\r\nconst _TR_PREFIX = 'offer_choice_result_state_';\r\n\r\nexport const OfferChoiceResultStateLabel = (status) => (Tr(_TR_PREFIX + status.toLowerCase()));\r\n","import {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport OfferChoiceResultRow from \"./OfferChoiceResultRow\";\r\nimport {connect} from \"react-redux\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport {useMemo} from \"react\";\r\nimport {shareSystemsActive} from \"libs/shareSystems\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n\r\n },\r\n headRow: {\r\n },\r\n dateTimeColumn: theme.components.table.dateTimeColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n statusColumn: theme.components.table.emailColumn,\r\n}));\r\n\r\nfunction OfferChoiceResultTable(\r\n {\r\n demandId,\r\n editable,\r\n working,\r\n offerChoiceResultList,\r\n demandPrivileges,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyles();\r\n const showShare = useMemo(() => demandPrivileges.INTEGRATIONS_UPLOAD && shareSystemsActive(demandHeader).length > 0, [demandHeader, demandPrivileges])\r\n return (\r\n \r\n \r\n {Tr(\"part\")}\r\n {Tr(\"status\")}\r\n {Tr(\"publish_data\")}\r\n {Tr(\"publish_until_data\")}\r\n \r\n \r\n {showShare && }\r\n \r\n \r\n \r\n \r\n {\r\n offerChoiceResultList.items.map((element, index) => {\r\n const key = \"\" + element.identity + element.canceled + element.editable;\r\n return \r\n })\r\n }\r\n \r\n
)\r\n}\r\n\r\nOfferChoiceResultTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool,\r\n offerChoiceResultList: PropTypes.shape({\r\n items: PropTypes.array.isRequired,\r\n }).isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY]\r\n}))(OfferChoiceResultTable)\r\n\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport OffersChoiceResultService from \"services/OffersChoiceResultService\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport Tr from \"translations/Translations\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Pagination from \"components/Pagination\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport OfferChoiceResultTable from \"./components/OfferChoiceResultTable\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n }\r\n}));\r\n\r\nfunction OffersChoiceResult(\r\n {\r\n match,\r\n offerChoiceResultList,\r\n demandValidation\r\n }) {\r\n const classes = useStyles();\r\n const curDemandValidation = DemandValidation.OFFERS_CHOICE_RESULT;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig} = useSearch();\r\n const [working, setWorking] = useState(true);\r\n\r\n useEffect(() => {\r\n return () => {\r\n OffersChoiceResultService.clearResources(OffersChoiceResultService.OFFER_CHOICE_RESULT_LIST_RESOURCE_ID);\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n setWorking(true);\r\n const {pagination, search} = searchData;\r\n OffersChoiceResultService.getChoiceResultList(demandId, pagination, search).then(() => (setWorking(false)));\r\n // eslint-disable-next-line\r\n }, [searchData, demandId])\r\n\r\n useDidUpdateEffect(() => {\r\n if (offerChoiceResultList?.totalCount !== undefined) {\r\n setTotalCount(offerChoiceResultList.totalCount)\r\n }\r\n }, [offerChoiceResultList?.totalCount]);\r\n\r\n if (!offerChoiceResultList) return ;\r\n return (\r\n
\r\n \r\n \r\n\r\n {!offerChoiceResultList?.items.length ?\r\n {Tr('no_options')}\r\n :\r\n <>\r\n \r\n \r\n \r\n }\r\n
)\r\n}\r\n\r\nexport default connect((state) => ({\r\n offerChoiceResultList: state.resources[OffersChoiceResultService.OFFER_CHOICE_RESULT_LIST_RESOURCE_ID],\r\n demandValidation: state.resources.demandValidation\r\n}), {})(withRouter(OffersChoiceResult));","import React from 'react'\r\nimport OffersChoiceResult from \"./OffersChoiceResult\";\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","const AgreementListType = {\r\n CREATED: \"CREATED\",\r\n AVAILABLE: \"AVAILABLE\"\r\n}\r\nexport default AgreementListType;","import React from \"react\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport ToggleButtonGroup from \"@material-ui/lab/ToggleButtonGroup\";\r\nimport ToggleButton from \"@material-ui/lab/ToggleButton\";\r\nimport PropTypes from \"prop-types\";\r\nimport AgreementListType from \"../constants/AgreementListType\";\r\nimport Tr from \"translations/Translations\"\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(3)\r\n },\r\n button: {\r\n width: 560,\r\n }\r\n\r\n}));\r\n\r\nfunction AgreementsListType(\r\n {\r\n listType,\r\n setListType\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const handleToggleClick = (event, newProcedure) => {\r\n if (newProcedure)\r\n setListType(newProcedure);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {Tr(\"agreements_available\")}\r\n \r\n \r\n {Tr(\"agreements_created\")}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nAgreementsListType.propTypes = {\r\n listType: PropTypes.string.isRequired,\r\n setListType: PropTypes.func.isRequired\r\n}\r\n\r\nexport default AgreementsListType;\r\n\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource, setSaveStatusError} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport applySearchParams from \"../libs/applySearchParams\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst AGREEMENTS_RESOURCE_ID = 'agreementsList';\r\nconst AGREEMENTS_AVAILABLE_RESOURCE_ID = 'agreementsAvailableList';\r\nconst AGREEMENTS_AVAILABLE_ORGANIZATIONS_RESOURCE_ID = 'agreementsAvailableOrganizationsList';\r\n\r\nconst getAgreementsList = async (demandId, pagination, searchData) => {\r\n try {\r\n let params = {\r\n ...pagination\r\n }\r\n params = applySearchParams(searchData, params);\r\n const resp = await RestRequestGET(Endpoints.AGREEMENTS_CREATED(demandId), {params});\r\n reduxStore.dispatch(setResource(AGREEMENTS_RESOURCE_ID, resp));\r\n } catch (error) {\r\n }\r\n};\r\nconst getAgreementsAvailableList = async (demandId, pagination, searchData) => {\r\n try {\r\n let params = {\r\n ...pagination\r\n }\r\n params = applySearchParams(searchData, params);\r\n\r\n const resp = await RestRequestGET(Endpoints.AGREEMENTS_AVAILABLE(demandId), {params});\r\n reduxStore.dispatch(setResource(AGREEMENTS_AVAILABLE_RESOURCE_ID, resp));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst getAgreementsAvailableOrganizationsList = async (demandId) => {\r\n try {\r\n const resp = await RestRequestGET(Endpoints.AGREEMENTS_AVAILABLE_ORGANIZATIONS(demandId));\r\n reduxStore.dispatch(setResource(AGREEMENTS_AVAILABLE_ORGANIZATIONS_RESOURCE_ID, resp));\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst createNoAgreements = async (demandId, positionIds) => {\r\n const resp = await RestRequestPOST(Endpoints.AGREEMENTS_CREATE_NO_AGREEMENT(demandId), {items: positionIds});\r\n if(!resp.success) {\r\n reduxStore.dispatch(setSaveStatusError(Tr('bad_request_error')));\r\n }\r\n return resp;\r\n};\r\n\r\nconst deleteAgreement = async (demandId, objId, objType) => {\r\n const resp = await RestRequestDELETE(objType === 'agreement' ? Endpoints.AGREEMENTS_DELETE_AGR(demandId, objId) : Endpoints.AGREEMENTS_DELETE(demandId, objId));\r\n if(!resp.success) {\r\n reduxStore.dispatch(setSaveStatusError(Tr('bad_request_error')));\r\n }\r\n return resp;\r\n};\r\n\r\nconst createAgreements = async (demandId, positionIds, orgForAgreement, oneAgreement) => {\r\n const resp = await RestRequestPOST(Endpoints.AGREEMENTS_CREATE_AGREEMENT(demandId), {positionIds, oneAgreement, orgForAgreement});\r\n if(!resp.success) {\r\n reduxStore.dispatch(setSaveStatusError(Tr('bad_request_error')));\r\n }\r\n return resp;\r\n};\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.AGREEMENTS_VALIDATE(id));\r\n}\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n};\r\n\r\nexport default {\r\n getAgreementsList,\r\n getAgreementsAvailableList,\r\n getAgreementsAvailableOrganizationsList,\r\n createAgreements,\r\n createNoAgreements,\r\n deleteAgreement,\r\n validate,\r\n clearResources,\r\n AGREEMENTS_RESOURCE_ID,\r\n AGREEMENTS_AVAILABLE_RESOURCE_ID,\r\n AGREEMENTS_AVAILABLE_ORGANIZATIONS_RESOURCE_ID\r\n}","import React, {useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux'\r\nimport AgreementsService from \"services/AgreementsService\";\r\nimport SimpleSelect from \"components/SimpleSelect\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\n\r\n\r\nfunction AgreementCreatePopup(\r\n {\r\n onClose,\r\n onSubmit,\r\n agreementsAvailableOrganizationsList,\r\n userData\r\n }) {\r\n\r\n const [value, setValue] = useState(() => {\r\n const elem = agreementsAvailableOrganizationsList.find(x => x.orgId === userData.orgId);\r\n return elem ? elem : agreementsAvailableOrganizationsList[0];\r\n });\r\n\r\n const [confirmOpen, setConfirmOpen] = useState(false);\r\n\r\n const handleSubmit = (oneAgreement) => {\r\n onSubmit(value, oneAgreement);\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), () => {\r\n onClose();\r\n }, 'outlined', false));\r\n buttons.push(createButton(Tr('createSingleAgreements'), () => {\r\n handleSubmit(false);\r\n }, undefined, false));\r\n buttons.push(createButton(Tr('createOneAgreement'), () => {\r\n setConfirmOpen(true);\r\n }, undefined, false));\r\n return buttons;\r\n }\r\n\r\n return (\r\n <>\r\n }\r\n >\r\n\r\n \r\n\r\n \r\n {Tr(\"agreement_create_select_org\")}\r\n \r\n ({label: x.name, value: x}))}\r\n value={value}\r\n onChange={(e) => {\r\n setValue(e.target.value);\r\n }}\r\n />\r\n\r\n \r\n\r\n \r\n\r\n setConfirmOpen(false)}\r\n onConfirm={() => {\r\n setConfirmOpen(false);\r\n handleSubmit(true);\r\n }}\r\n open={confirmOpen}\r\n translateConfirmTexts={false}\r\n />\r\n \r\n )\r\n}\r\n\r\nAgreementCreatePopup.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n onSubmit: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n agreementsAvailableOrganizationsList: state.resources[AgreementsService.AGREEMENTS_AVAILABLE_ORGANIZATIONS_RESOURCE_ID],\r\n userData: state.resources.userData\r\n}), {})(AgreementCreatePopup);","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\"\r\nimport {connect} from \"react-redux\";\r\nimport AgreementsService from \"services/AgreementsService\";\r\nimport Loading from \"components/Loading\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport {CheckBox as CheckBoxIcon, CheckBoxOutlineBlank as CheckBoxOutlineBlankIcon} from \"@material-ui/icons\";\r\nimport IconButton from \"components/button/IconButton\";\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport Pagination from \"components/Pagination\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport AgreementCreatePopup from \"./AgreementCreatePopup\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n partColumn: theme.components.table.dateColumn,\r\n buttonColumn: theme.components.table.buttonColumn\r\n}));\r\n\r\nfunction AgreementsAvailablePanel(\r\n {\r\n demandId,\r\n editable,\r\n agreementsAvailableList,\r\n agreementsAvailableOrganizationsList\r\n }) {\r\n\r\n const classes = useStyles();\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig} = useSearch();\r\n const [working, setWorking] = useState(false);\r\n const [confirmNoAgrOpened, setConfirmNoAgrOpened] = useState(false);\r\n const [createOpened, setCreateOpened] = useState(false);\r\n const [selected, setSelected] = useState([]);\r\n\r\n useEffect(() => {\r\n AgreementsService.getAgreementsAvailableOrganizationsList(demandId);\r\n return () => {\r\n AgreementsService.clearResources(AgreementsService.AGREEMENTS_AVAILABLE_RESOURCE_ID);\r\n AgreementsService.clearResources(AgreementsService.AGREEMENTS_AVAILABLE_ORGANIZATIONS_RESOURCE_ID);\r\n }\r\n }, [demandId]);\r\n\r\n useEffect(() => {\r\n setWorking(true);\r\n const {pagination, search} = searchData;\r\n AgreementsService.getAgreementsAvailableList(demandId, pagination, search).then(() => (setWorking(false)));\r\n setSelected([]);\r\n // eslint-disable-next-line\r\n }, [searchData, demandId]);\r\n\r\n useDidUpdateEffect(() => {\r\n if (agreementsAvailableList?.totalCount !== undefined) {\r\n setTotalCount(agreementsAvailableList.totalCount)\r\n }\r\n }, [agreementsAvailableList?.totalCount]);\r\n\r\n const checkClick = (x) => {\r\n const index = selected.indexOf(x.identity);\r\n if (index > -1) {\r\n setSelected(selected.filter(posId => posId !== x.identity))\r\n } else {\r\n setSelected(selected => [...selected, x.identity])\r\n }\r\n };\r\n\r\n const createNoAgr = () => {\r\n AgreementsService.clearResources(AgreementsService.AGREEMENTS_AVAILABLE_RESOURCE_ID);\r\n AgreementsService.createNoAgreements(demandId, selected).finally(() => {\r\n setPaginationConfig({...searchData.pagination, page: 1})\r\n });\r\n setSelected([]);\r\n setConfirmNoAgrOpened(false);\r\n\r\n };\r\n const create = (org, oneAgreement) => {\r\n AgreementsService.clearResources(AgreementsService.AGREEMENTS_AVAILABLE_RESOURCE_ID);\r\n AgreementsService.createAgreements(demandId, selected, org, oneAgreement).finally(() => {\r\n setPaginationConfig({...searchData.pagination, page: 1})\r\n });\r\n setSelected([]);\r\n setCreateOpened(false);\r\n };\r\n\r\n const buttons = useMemo(() => {\r\n const disabled = !selected.length || working || !agreementsAvailableOrganizationsList.length;\r\n const buttons = [];\r\n if (editable) {\r\n buttons.push(createButton(Tr('agreement_create'), () => {\r\n setCreateOpened(true)\r\n }, undefined, disabled));\r\n buttons.push(createButton(Tr('agreement_create_no_agr'), () => setConfirmNoAgrOpened(true), undefined, disabled));\r\n }\r\n return buttons;\r\n }, [selected, working, editable, agreementsAvailableOrganizationsList]);\r\n\r\n if (!agreementsAvailableList || !agreementsAvailableOrganizationsList) return ;\r\n\r\n return (<>\r\n \r\n \r\n \r\n \r\n\r\n {\r\n return [\r\n checkClick(x)}\r\n Icon={selected.indexOf(x.identity) > -1 ? CheckBoxIcon : CheckBoxOutlineBlankIcon}\r\n />,\r\n Tr('part_x', {x: x.order}),\r\n x.name\r\n ]\r\n })\r\n }\r\n columnClasses={\r\n [\r\n classes.buttonColumn,\r\n classes.partColumn,\r\n undefined,\r\n ]\r\n }\r\n />\r\n {\r\n !agreementsAvailableList.items.length && {Tr('no_options')}\r\n }\r\n\r\n \r\n {\r\n confirmNoAgrOpened && setConfirmNoAgrOpened(false)}\r\n onConfirm={createNoAgr}\r\n />\r\n }\r\n {\r\n createOpened && setCreateOpened(false)}\r\n onSubmit={(org, oneAgreement) => create(org, oneAgreement)}\r\n />\r\n }\r\n \r\n )\r\n}\r\n\r\nAgreementsAvailablePanel.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n agreementsAvailableList: state.resources[AgreementsService.AGREEMENTS_AVAILABLE_RESOURCE_ID],\r\n agreementsAvailableOrganizationsList: state.resources[AgreementsService.AGREEMENTS_AVAILABLE_ORGANIZATIONS_RESOURCE_ID]\r\n}), {})(AgreementsAvailablePanel);\r\n\r\n","import React, {useEffect, useState} from \"react\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\"\r\nimport {connect} from \"react-redux\";\r\nimport AgreementsService from \"services/AgreementsService\";\r\nimport Loading from \"components/Loading\";\r\nimport useSearch from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport BasicSearch from \"components/BasicSearch\";\r\nimport Pagination from \"components/Pagination\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport {AgreementStateLabel} from \"../constants/AgreementState\";\r\nimport {AgreementTypeLabel} from \"../constants/AgreementType\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n typeColumn: {\r\n width: 170\r\n },\r\n buttonColumn: theme.components.table.buttonColumn\r\n}));\r\n\r\nfunction AgreementsCreatedPanel(\r\n {\r\n demandId,\r\n editable,\r\n agreementsList\r\n }) {\r\n\r\n const classes = useStyles();\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig, setSearchConfig} = useSearch();\r\n const [working, setWorking] = useState(false);\r\n const [confirmDelete, setConfirmDelete] = useState(null);\r\n\r\n useEffect(() => {\r\n return () => {\r\n AgreementsService.clearResources(AgreementsService.AGREEMENTS_RESOURCE_ID);\r\n }\r\n }, [demandId]);\r\n\r\n useEffect(() => {\r\n setWorking(true);\r\n const {pagination, search} = searchData;\r\n AgreementsService.getAgreementsList(demandId, pagination, search).then(() => (setWorking(false)));\r\n // eslint-disable-next-line\r\n }, [searchData, demandId]);\r\n\r\n useDidUpdateEffect(() => {\r\n if (agreementsList?.totalCount !== undefined) {\r\n setTotalCount(agreementsList.totalCount)\r\n }\r\n }, [agreementsList?.totalCount]);\r\n\r\n const deleteAgreement = () => {\r\n AgreementsService.deleteAgreement(demandId, confirmDelete.identity > 0 ? confirmDelete.identity : confirmDelete.extObjId, confirmDelete.identity > 0 ? 'agreement' : 'extObj').then((resp) => {\r\n if (resp.success) {\r\n if (agreementsList.items.length === 1) {\r\n setPaginationConfig({...searchData.pagination, page: 1})\r\n } else {\r\n setPaginationConfig({...searchData.pagination})\r\n }\r\n }\r\n }).finally(() => setConfirmDelete(null))\r\n }\r\n\r\n if (!agreementsList) return ;\r\n\r\n return (<>\r\n \r\n \r\n \r\n\r\n {\r\n return [\r\n x.subject,\r\n x.number,\r\n AgreementTypeLabel(x.type),\r\n AgreementStateLabel(x.state),\r\n x.actions.preview ? window.location.href = x.actions.preview.url}/> : null,\r\n setConfirmDelete(x)} disabled={!x.actions.delete}/>\r\n ]\r\n })\r\n }\r\n columnClasses={\r\n [\r\n undefined,\r\n classes.typeColumn,\r\n classes.typeColumn,\r\n classes.typeColumn,\r\n classes.buttonColumn,\r\n classes.buttonColumn,\r\n ]\r\n }\r\n />\r\n {\r\n !agreementsList.items.length && {Tr('no_options')}\r\n }\r\n\r\n \r\n\r\n {\r\n !!confirmDelete && setConfirmDelete(null)}\r\n onConfirm={() => deleteAgreement()}\r\n translateConfirmTexts={false}\r\n />\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nAgreementsCreatedPanel.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n agreementsList: state.resources[AgreementsService.AGREEMENTS_RESOURCE_ID]\r\n}), {})(AgreementsCreatedPanel);\r\n\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const AgreementType = {\r\n SINGLE: \"SINGLE\",\r\n PUBLIC_FRAMEWORK: \"PUBLIC_FRAMEWORK\",\r\n SINGLE_EXECUTIVE: \"SINGLE_EXECUTIVE\"\r\n}\r\nconst _TR_PREFIX = 'agreement_type_';\r\n\r\nexport const AgreementTypeLabel = (type) => (type ? Tr(_TR_PREFIX + type.toLowerCase()) : null);\r\n","import Tr from 'translations/Translations';\r\n\r\nexport const AgreementState = {\r\n NEW: \"NEW\",\r\n ACCEPTING: \"ACCEPTING\",\r\n REGISTERED: \"REGISTERED\",\r\n FINISHED: \"FINISHED\",\r\n ANNULED: \"ANNULED\",\r\n CANCELED: \"CANCELED\",\r\n EXTERNALLY_REGISTERED: \"EXTERNALLY_REGISTERED\"\r\n}\r\nconst _TR_PREFIX = 'agreement_state_';\r\n\r\nexport const AgreementStateLabel = (state) => (Tr(_TR_PREFIX + state.toLowerCase()));\r\n","import React, {useState} from \"react\";\r\nimport {connect} from 'react-redux'\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport AgreementsListType from \"./components/AgreementsListType\";\r\nimport AgreementListType from \"./constants/AgreementListType\";\r\nimport AgreementsAvailablePanel from \"./components/AgreementsAvailablePanel\";\r\nimport AgreementsCreatedPanel from \"./components/AgreementsCreatedPanel\";\r\n\r\nfunction AgreementsPanel(\r\n {\r\n match,\r\n demandValidation\r\n }) {\r\n\r\n const curDemandValidation = DemandValidation.AGREEMENTS;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n const [listType, setListType] = useState(AgreementListType.AVAILABLE);\r\n\r\n return (
\r\n \r\n {listType === AgreementListType.AVAILABLE && }\r\n {listType === AgreementListType.CREATED && }\r\n
)\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation\r\n}), {})(withRouter(AgreementsPanel));","import React from 'react'\r\nimport AgreementsPanel from \"./AgreementsPanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import {RestRequestPOST} from \"libs/RestRequest\";\r\nimport Endpoints from \"constants/Endpoints\";\r\n\r\nconst doFinishEvaluation = async (id) => {\r\n return await RestRequestPOST(Endpoints.EVALUATION_FINISH(id));\r\n}\r\n\r\nexport default {\r\n doFinishEvaluation,\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestPOST} from 'libs/RestRequest';\r\nimport PrivilegeService from \"./PrivilegeService\";\r\n\r\nconst RFX_PRIVILEGE_STORE_KEY = \"rfx\"\r\n\r\nconst cancelRound = async (roundId, comment) => {\r\n\r\n const body = {\r\n comment\r\n }\r\n const resp = await RestRequestPOST(Endpoints.RFX_ROUND_CANCEL(roundId), body);\r\n return resp;\r\n}\r\n\r\nconst getBuyerPrivileges = async (roundId) => {\r\n await PrivilegeService.getPrivileges(Endpoints.RFX_ROUND_PRIVILEGES(roundId), PrivilegeService.RFX_PRIVILEGE_STORE_KEY);\r\n}\r\n\r\nexport default {\r\n cancelRound,\r\n getBuyerPrivileges,\r\n RFX_PRIVILEGE_STORE_KEY\r\n}","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport {makeStyles} from '@material-ui/core';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport DoubleButton from '../components/DoubleButton';\r\nimport TextInput from 'components/TextInput';\r\nimport * as Yup from 'yup';\r\nimport validationShema from 'constants/ValidationShema';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport InputLimits from \"constants/InputLimits\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n padding: {\r\n marginTop: theme.spacing(2)\r\n }\r\n}));\r\n\r\nfunction InvalidateDemandPopup(\r\n {\r\n open,\r\n onClose,\r\n onInvalidate,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const formId = useId();\r\n\r\n\r\n const handleSubmit = () => formSubmit[formId]()\r\n\r\n return (\r\n \r\n \r\n {(formikProps) => (\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(InvalidateDemandPopup);","import React, {useMemo, useState} from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation, DemandValidationKeys} from 'constants/DemandValidation';\r\nimport EvaliationFinishService from \"services/EvaluationFinishService\";\r\nimport {connect} from \"react-redux\";\r\nimport Button from \"components/Button\";\r\nimport Tr from 'translations/Translations'\r\nimport Typography from \"components/Typography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport LoadingScreen from \"components/complex/loadingScreen/LoadingScreen\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport Icon from '@material-ui/icons/CheckBox'\r\nimport IconOff from '@material-ui/icons/HighlightOff';\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport RfxRoundService from \"services/RfxRoundService\";\r\nimport InvalidateDemandPopup from \"components/popup/invalidate/InvalidateDemandPopup\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n button: {\r\n marginTop: theme.spacing(2)\r\n },\r\n text: {\r\n marginTop: theme.spacing(4)\r\n },\r\n icon: theme.components.icon,\r\n}))\r\n\r\nconst rp = RouterPath.myProcedure;\r\n\r\nfunction EvaluationFinish(\r\n {\r\n match,\r\n demandValidation\r\n }) {\r\n const classes = useStyle();\r\n const id = match.params.id;\r\n const curDemandValidation = DemandValidation.EVALUATION_FINISH;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const prevErrors = useMemo(() => demandValidation.filter((x) => x.section !== curDemandValidation && x.status === 'ERROR'), [demandValidation, curDemandValidation]);\r\n const [working, setWorking] = useState(false)\r\n const [openInvalidate, setOpenInvalidate] = useState(false)\r\n\r\n const goToFinish = () => {\r\n setWorking(true);\r\n EvaliationFinishService.doFinishEvaluation(id).finally(() => setWorking(false)).then((resp) => {\r\n if (resp.success)\r\n RouterPath.redirect(RouterPath.createPath(rp.steps.MP_4_ID, {id: id}))\r\n });\r\n }\r\n\r\n const goToCancel = ({comment}) => {\r\n setWorking(true);\r\n setOpenInvalidate(false)\r\n StatisticsService.getCurrentRound(id).then((resp) => {\r\n RfxRoundService.cancelRound(resp.id, comment)\r\n .then(() => {RouterPath.redirect(RouterPath.createPath(rp.steps.MP_4_ID, {id}))}).catch(() => setWorking(false))\r\n })\r\n }\r\n\r\n const hasPrevErrors = prevErrors.length > 0;\r\n const cancelVisible = section && section.cancelVisibleEnabled !== null;\r\n return (\r\n {hasPrevErrors ?\r\n \r\n :\r\n \r\n }\r\n {hasPrevErrors ?\r\n {Tr('to_finish_evaluation_done_sections')}: \"{prevErrors.map((x) => Tr(DemandValidationKeys[x.section])).join(\"\\\", \\\"\")}\"\r\n :\r\n {Tr('go_to_demand_finishing_info')}\r\n }\r\n \r\n\r\n {cancelVisible && {Tr('go_to_demand_cancel_info')}}\r\n {cancelVisible && }\r\n setOpenInvalidate(false)} open={openInvalidate} onInvalidate={goToCancel} />\r\n \r\n \r\n )\r\n}\r\n\r\nEvaluationFinish.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation\r\n}), {})(withRouter(EvaluationFinish));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport EvaluationFinish from \"./EvaluationFinish\";\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n\r\n return (expanded && )\r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Index;","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport OfferChoiceService from \"./OfferChoiceService\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\n\r\nconst ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID = 'additionalPassiveRoundsList';\r\n\r\nconst getAdditionalPassiveRoundsList = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.ADDITIONAL_ROUNDS_PASSIVE(demandId));\r\n if (resp.success)\r\n reduxStore.dispatch(setResource(ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID, resp.result));\r\n else\r\n throw new Error(resp.errors);\r\n};\r\n\r\nconst updateAdditionalPassiveRound = async (demandId, roundId, sectionsToRefresh) => {\r\n const resp = await RestRequestGET(Endpoints.ADDITIONAL_ROUNDS_PASSIVE_ROUND(demandId, roundId));\r\n if (resp.success) {\r\n const {resources} = reduxStore.getState();\r\n const list = resources[ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID].map(x => x.roundId === resp.result.roundId ? resp.result : x);\r\n reduxStore.dispatch(setResource(ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID, list));\r\n await validateSection(DemandValidation.ADDITIONAL_ROUND_PASSIVE, demandId, false);\r\n await OfferChoiceService.callSectionsValidation(demandId, sectionsToRefresh)\r\n } else\r\n throw new Error(resp.errors);\r\n};\r\n\r\nconst getAvailableContractors = async (demandId, setError) => {\r\n const res = await RestRequestGET(Endpoints.ADDITIONAL_ROUNDS_PASSIVE_AVAILABLE_CONTRACTORS(demandId));\r\n if (isResponseValid(res, setError))\r\n return res.result;\r\n};\r\n\r\n\r\nconst createAdditionalPassiveRound = async (demandId, values) => {\r\n\r\n const data = {\r\n departmentIds: Object.keys(values.contractors).filter(x => values.contractors[x] === true).map(x => x.substring(1)),\r\n endDate: values.endDate.format(),\r\n openOfferDate: values.openOfferDate.format()\r\n }\r\n\r\n const resp = await RestRequestPOST(Endpoints.ADDITIONAL_ROUNDS_PASSIVE(demandId), data);\r\n const {resources} = reduxStore.getState();\r\n if (resp.success)\r\n reduxStore.dispatch(setResource(ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID, [resp.result, ...resources[ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID]]));\r\n else\r\n throw new Error(resp.errors);\r\n}\r\n\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.ADDITIONAL_ROUNDS_PASSIVE_VALIDATE(id));\r\n}\r\n\r\nconst clearResources = (resource) => {\r\n reduxStore.dispatch(clearResource(resource));\r\n};\r\n\r\nexport default {\r\n getAdditionalPassiveRoundsList,\r\n updateAdditionalPassiveRound,\r\n getAvailableContractors,\r\n createAdditionalPassiveRound,\r\n validate,\r\n clearResources,\r\n ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID\r\n}","import React from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport OfferChoiceSummaryCellAdditionalRound from \"../../offerChoice/components/additionalRound/OfferChoiceSummaryCellAdditionalRound\";\r\nimport {AdditionalRoundStatusesPending} from \"constants/AdditionalRoundStatus\";\r\nimport Tr from 'translations/Translations'\r\nimport BoldTypography from \"components/BoldTypography\";\r\n\r\n\r\nfunction AdditionalRoundPassiveStatusCell(\r\n {\r\n demandId,\r\n additionalRound,\r\n setRowWorking,\r\n rowWorking,\r\n refreshRow,\r\n serverBrowserTimeDiff,\r\n working,\r\n editable\r\n }) {\r\n\r\n\r\n return (\r\n AdditionalRoundStatusesPending.indexOf(additionalRound.status) > -1 ?\r\n \r\n :\r\n {Tr('additional_offer_collection_finished')}\r\n )\r\n}\r\n\r\nAdditionalRoundPassiveStatusCell.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n additionalRound: PropTypes.object.isRequired,\r\n setRowWorking: PropTypes.func.isRequired,\r\n refreshRow: PropTypes.func.isRequired,\r\n rowWorking: PropTypes.bool.isRequired,\r\n serverBrowserTimeDiff: PropTypes.object.isRequired,\r\n}\r\n\r\nexport default AdditionalRoundPassiveStatusCell;\r\n\r\n","import React, {useRef, useState} from \"react\";\r\nimport {makeStyles, TableCell, TableRow, Typography} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport PropTypes from 'prop-types';\r\nimport moment from \"libs/moment\";\r\nimport Tr from \"translations/Translations\";\r\nimport AdditionalRoundPassiveStatusCell from \"./AdditionalRoundPassiveStatusCell\";\r\nimport AdditionalRoundPassiveService from \"services/AdditionalRoundPassiveService\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n evenRow: {\r\n backgroundColor: theme.palette.background.default\r\n },\r\n lastRow: {\r\n borderBottom: `solid 3px ${theme.palette.primary.main}`\r\n }\r\n}));\r\n\r\nfunction AdditionalRoundPassiveRow(\r\n {\r\n demandId,\r\n additionalRound,\r\n rowNumber,\r\n working,\r\n editable\r\n }) {\r\n\r\n const classes = useStyles();\r\n const even = rowNumber % 2 === 1;\r\n const serverBrowserTimeDiff = useRef(moment(additionalRound.serverTime).diff(moment(), \"s\"));\r\n const [curWorking, setCurWorking] = useState(false);\r\n\r\n const refreshRow = async (sectionsToRefresh) => {\r\n await AdditionalRoundPassiveService.updateAdditionalPassiveRound(demandId, additionalRound.roundId, sectionsToRefresh);\r\n }\r\n\r\n const getRow = (element, index, array) => {\r\n const noOffer = element.identity === -1;\r\n const first = index === 0;\r\n const last = index >= array.length - 1;\r\n\r\n const rowSpan = noOffer ? 1 : array.length;\r\n return (\r\n {first && \r\n \r\n {Tr('additional_offer_nr', {value: additionalRound.ordinalNumber})}\r\n \r\n }\r\n \r\n {element.name}\r\n \r\n {first && \r\n \r\n\r\n }\r\n )\r\n }\r\n\r\n\r\n return (<>{\r\n additionalRound.contractors.map((element, index, array) => getRow(element, index, array))\r\n }\r\n )\r\n}\r\n\r\nAdditionalRoundPassiveRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n additionalRound: PropTypes.object.isRequired,\r\n rowNumber: PropTypes.number.isRequired,\r\n}\r\n\r\nexport default AdditionalRoundPassiveRow;\r\n\r\n","import React from \"react\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableHead, TableRow} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport AdditionalRoundPassiveRow from \"./AdditionalRoundPassiveRow\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n border: `solid 3px ${theme.palette.background.paper}`,\r\n \"& .MuiTableCell-root\": {\r\n border: `solid 1px ${theme.palette.border.dark}`,\r\n padding: theme.spacing()\r\n }\r\n },\r\n headRow: {\r\n \"&>.MuiTableCell-head\": {\r\n textAlign: \"center\",\r\n borderBottom: `solid 3px ${theme.palette.primary.main}`\r\n }\r\n },\r\n nameColumn: {\r\n width: 210\r\n },\r\n contractorColumn: {\r\n width: 250\r\n }\r\n\r\n}));\r\n\r\nfunction AdditionalRoundPassiveTable(\r\n {\r\n demandId,\r\n additionalPassiveRounds,\r\n working,\r\n editable\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {Tr(\"additional_offer_collection\")}\r\n {Tr(\"contractor\")}\r\n {Tr('status')}\r\n \r\n \r\n \r\n {\r\n additionalPassiveRounds.map((element, index) => ())\r\n }\r\n \r\n
)\r\n}\r\n\r\nAdditionalRoundPassiveTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n additionalPassiveRounds: PropTypes.array.isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n working: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default AdditionalRoundPassiveTable;\r\n\r\n","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Form from \"components/Form\";\r\nimport useId from \"hooks/useId\";\r\nimport * as Yup from \"yup\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport PartsTable from \"components/PartsTable\";\r\nimport AdditionalRoundPassiveService from \"services/AdditionalRoundPassiveService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n cells: {\r\n padding: theme.spacing()\r\n },\r\n partColumn: {\r\n width: 75\r\n },\r\n dateTimePicker: {\r\n width: 350\r\n }\r\n}));\r\n\r\n\r\nconst AdditionalRoundPassiveCreatePopup = (\r\n {\r\n demandId,\r\n onCancel,\r\n onSuccess,\r\n formSubmit\r\n }) => {\r\n\r\n const classes = useStyle();\r\n\r\n const [contractors, setContractors] = useState(null);\r\n const [working, setWorking] = useState(true);\r\n const [error, setError] = useState(false);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = (values) => {\r\n setError(false);\r\n setWorking(true);\r\n AdditionalRoundPassiveService.createAdditionalPassiveRound(demandId, values).then(onSuccess).catch(() => {\r\n setError(true);\r\n setWorking(false);\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n AdditionalRoundPassiveService.getAvailableContractors(demandId).then(resp => setContractors(resp\r\n .map(x => ({...x, identity: \"_\" + x.identity, }))))\r\n .finally(() => setWorking(false));\r\n }, [demandId])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n buttons.push(createButton(Tr('additional_round_create_additional_offers_begin_button'), handleSubmit, undefined, working || !contractors?.length));\r\n return buttons;\r\n }\r\n const handleEndDate = (formikProps, value) => {\r\n formikProps.setFieldValue('openOfferDate', value);\r\n }\r\n\r\n const validationSchema = () => {\r\n const shape = {\r\n contractors: VS.any().test('partSelected', Tr('choose_at_least_two_contractors'), (e) => {\r\n const selected = Object.keys(e).filter(x => e[x] === true).length;\r\n return selected > 1;\r\n }),\r\n endDate: VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past')),\r\n openOfferDate: VS.dateTimeValid()\r\n .when('endDate', (endDate, schema) => {\r\n return schema.test('EndDateLessOpenDate', Tr(\"EndDateLessOpenDate\"), (offerOpenDate) => {\r\n if (endDate && offerOpenDate) {\r\n return !offerOpenDate.isBefore(endDate);\r\n }\r\n return false;\r\n })\r\n })\r\n }\r\n return Yup.object().shape(shape)\r\n }\r\n\r\n return (\r\n }\r\n title={Tr('additional_round_create_additional_offers_popup_title')}\r\n maxWidth='md'\r\n >\r\n \r\n\r\n {working && }\r\n {error && {Tr('unknown_error_message')}}\r\n {!!contractors && <>\r\n\r\n {\r\n prev[cur.identity] = false;\r\n return prev;\r\n }, {})\r\n }}\r\n validationSchema={validationSchema()}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n handleEndDate(formikProps, value)}\r\n minDate={new Date()}\r\n />\r\n\r\n \r\n {\r\n !(contractors?.length) ?\r\n \r\n {\r\n contractors.error ? contractors.error : Tr('additional_round_auction_list_empty')\r\n }\r\n \r\n :\r\n \r\n }\r\n \r\n )}\r\n \r\n\r\n\r\n }\r\n \r\n\r\n\r\n )\r\n}\r\n\r\nAdditionalRoundPassiveCreatePopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AdditionalRoundPassiveCreatePopup)","import React, {useEffect, useState} from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Tr from \"translations/Translations\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport AdditionalRoundPassiveService from \"services/AdditionalRoundPassiveService\";\r\nimport AdditionalRoundPassiveTable from \"./components/AdditionalRoundPassiveTable\";\r\nimport Button from \"../../../../../../../components/Button\";\r\nimport AdditionalRoundPassiveCreatePopup from \"./components/AdditionalRoundPassiveCreatePopup\";\r\nimport {AdditionalRoundStatusesPending} from \"../../../../../../../constants/AdditionalRoundStatus\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n button: {\r\n float: 'right',\r\n marginBottom: theme.spacing()\r\n }\r\n}));\r\n\r\nfunction AdditionalRoundPassive(\r\n {\r\n match,\r\n additionalPassiveRounds,\r\n demandValidation\r\n }) {\r\n const classes = useStyles();\r\n const curDemandValidation = DemandValidation.ADDITIONAL_ROUND_PASSIVE;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n\r\n const [refresh, setRefresh] = useState(0);\r\n const [createPopupOpened, setCreatePopupOpened] = useState(false);\r\n\r\n useEffect(() => {\r\n AdditionalRoundPassiveService.getAdditionalPassiveRoundsList(demandId);\r\n return () => AdditionalRoundPassiveService.clearResources(AdditionalRoundPassiveService.ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID);\r\n }, [demandId, refresh])\r\n\r\n const refreshData = () => {\r\n setRefresh(x => x+1)\r\n }\r\n\r\n if (!additionalPassiveRounds) return ;\r\n\r\n return (\r\n \r\n\r\n {\r\n editable && setCreatePopupOpened(true)}\r\n disabled={!(additionalPassiveRounds.length === 0 || AdditionalRoundStatusesPending.indexOf(additionalPassiveRounds[0].status) === -1)}\r\n >{Tr('additional_round_create_additional_offers_button')}\r\n }\r\n\r\n\r\n {!additionalPassiveRounds?.length ?\r\n {Tr('no_options')}\r\n :\r\n <>\r\n \r\n }\r\n {\r\n createPopupOpened &&\r\n setCreatePopupOpened(false)}\r\n onSuccess={() => {\r\n refreshData();\r\n setCreatePopupOpened(false);\r\n }}\r\n />\r\n }\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n additionalPassiveRounds: state.resources[AdditionalRoundPassiveService.ADDITIONAL_PASSIVE_ROUNDS_LIST_RESOURCE_ID],\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(AdditionalRoundPassive));\r\n\r\n","import React from 'react'\r\nimport AdditionalRoundPassive from \"./AdditionalRoundPassive\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import React, {useMemo, useState} from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation, DemandValidationKeys} from 'constants/DemandValidation';\r\nimport EvaliationFinishService from \"services/EvaluationFinishService\";\r\nimport {connect} from \"react-redux\";\r\nimport Button from \"components/Button\";\r\nimport Tr from 'translations/Translations'\r\nimport Typography from \"components/Typography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport LoadingScreen from \"components/complex/loadingScreen/LoadingScreen\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport Icon from '@material-ui/icons/CheckBox'\r\nimport IconOff from '@material-ui/icons/HighlightOff';\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n button: {\r\n marginTop: theme.spacing(2)\r\n },\r\n text: {\r\n marginTop: theme.spacing(4)\r\n },\r\n icon: theme.components.icon,\r\n}))\r\n\r\nconst rp = RouterPath.myProcedure;\r\n\r\nfunction StageFinish(\r\n {\r\n match,\r\n demandValidation\r\n }) {\r\n const classes = useStyle();\r\n const id = match.params.id;\r\n const curDemandValidation = DemandValidation.STAGE_FINISH;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const prevErrors = useMemo(() => demandValidation.filter((x) => x.section !== curDemandValidation && x.status === 'ERROR'), [demandValidation, curDemandValidation]);\r\n const [working, setWorking] = useState(false)\r\n\r\n const goToFinish = () => {\r\n setWorking(true);\r\n EvaliationFinishService.doFinishEvaluation(id).finally(() => setWorking(false)).then((resp) => {\r\n if (resp.success) {\r\n if (resp.result) {\r\n window.location.href = resp.result;\r\n } else {\r\n RouterPath.redirect(RouterPath.createPath(rp.steps.MP_4_ID, {id: id}))\r\n }\r\n }\r\n });\r\n }\r\n\r\n const hasPrevErrors = prevErrors.length > 0;\r\n return (\r\n {hasPrevErrors ?\r\n \r\n :\r\n \r\n }\r\n {hasPrevErrors ?\r\n {Tr('to_finish_stage_done_sections')}: \"{prevErrors.map((x) => Tr(DemandValidationKeys[x.section])).join(\"\\\", \\\"\")}\"\r\n :\r\n {Tr('go_to_stage_finishing_info')}\r\n }\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nStageFinish.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation\r\n}), {})(withRouter(StageFinish));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport StageFinish from \"./StageFinish\";\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n\r\n return (expanded && )\r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Index;","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport PropTypes from 'prop-types';\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation, DemandValidationKeys} from 'constants/DemandValidation';\r\nimport {connect} from \"react-redux\";\r\nimport Button from \"components/Button\";\r\nimport Tr from 'translations/Translations'\r\nimport Typography from \"components/Typography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Icon from '@material-ui/icons/CheckBox'\r\nimport IconOff from '@material-ui/icons/HighlightOff';\r\nimport OfferChoiceService from \"../../../../../../../services/OfferChoiceService\";\r\nimport {simpleConfirm} from \"../../../../../../../libs/ConfirmNotification\";\r\nimport LoadingScreen from \"../../../../../../../components/complex/loadingScreen/LoadingScreen\";\r\nimport moment from \"../../../../../../../libs/moment\";\r\nimport DateFormats from \"../../../../../../../constants/DateFormats\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n button: {\r\n width: 400\r\n },\r\n buttonRow: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 900\r\n },\r\n text: {\r\n marginTop: theme.spacing(2)\r\n },\r\n info: {\r\n marginBottom: theme.spacing(4)\r\n },\r\n icon: theme.components.icon,\r\n}))\r\n\r\nfunction PrimaryTenderChoice(\r\n {\r\n match,\r\n demandValidation\r\n }) {\r\n const classes = useStyle();\r\n const id = match.params.id;\r\n const curDemandValidation = DemandValidation.PRIMARY_TENDER_CHOICE;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const prevErrors = useMemo(() => demandValidation.filter((x) => x.section !== curDemandValidation && x.status === 'ERROR'), [demandValidation, curDemandValidation]);\r\n const [working, setWorking] = useState(false)\r\n const [negotiationButton, setNegotiationButton] = useState(false);\r\n const [foundExtremelyLowOfferStatus, setFoundExtremelyLowOfferStatus] = useState(false);\r\n\r\n useEffect(() => {\r\n if (section.choicePending) {\r\n OfferChoiceService.checkForPrimaryTenderChoiceOptions(id).then(resp => {\r\n setNegotiationButton(resp.result.showNegotiationPathButton);\r\n setFoundExtremelyLowOfferStatus(resp.result.extremelyLowOfferStatusFound);\r\n });\r\n }\r\n }, [id, section]);\r\n\r\n const makeNegotiations = () => {\r\n setWorking(true);\r\n OfferChoiceService.postPrimaryTenderDoNegotiations(id).catch(() => setWorking(false));\r\n }\r\n\r\n const skipNegotiations = () => {\r\n setWorking(true);\r\n OfferChoiceService.postPrimaryTenderDoOfferChoice(id).catch(() => setWorking(false));\r\n }\r\n\r\n const hasPrevErrors = prevErrors.length > 0;\r\n return (section.choicePending ? \r\n {\r\n hasPrevErrors ?\r\n \r\n :\r\n \r\n }\r\n {hasPrevErrors ?\r\n {Tr('to_primary_tender_choice_done_sections')}:\r\n \"{prevErrors.map((x) => Tr(DemandValidationKeys[x.section])).join(\"\\\", \\\"\")}\"\r\n :\r\n {!!negotiationButton ? Tr('primary_tender_variant_make_choice') : Tr('primary_tender_variant_no_contractors')}\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n :\r\n\r\n \r\n \r\n {Tr('primary_tender_variant_choice_made')}: {!!section.negotiationsCreated ? Tr('primary_tender_variant_make_negociation') : Tr('primary_tender_variant_skip_negociation')}\r\n\r\n {!!section.choiceDate && {Tr('primary_tender_variant_choice_made_date')}: {moment(section.choiceDate).format(DateFormats.DATETIME_FORMAT)}}\r\n \r\n )\r\n}\r\n\r\nPrimaryTenderChoice.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation\r\n}), {})(withRouter(PrimaryTenderChoice));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport PrimaryTenderChoice from \"./PrimaryTenderChoice\";\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n\r\n return (expanded && )\r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Index;","import {RestRequestDELETE, RestRequestGET, RestRequestPOST} from \"../libs/RestRequest\";\r\nimport Endpoints from \"../constants/Endpoints\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport reduxStore from 'redux/store'\r\nimport {setSaveStatusError} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\nimport validateSection from \"./helpers/validateSection\";\r\n\r\nconst getDemandAdditionalInfoWrapper = async (id) => {\r\n try {\r\n return RestRequestGET(Endpoints.DEMAND_ADDITIONAL_INFO(id));\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst saveDemandAdditionalInfo = async (id, data, sectionId) => {\r\n try {\r\n const resp = RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_INFO(id), data);\r\n if (isResponseValid(resp, (e) => reduxStore.dispatch(setSaveStatusError(e))))\r\n await validateSection(sectionId, id, true);\r\n } catch (error) {\r\n console.error(error);\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n}\r\nconst validate = async (id, section) => {\r\n return RestRequestGET(Endpoints.DEMAND_ADDITIONAL_INFO_VALIDATE(id), {params: {section: section}})\r\n}\r\n\r\nconst checkForDraft = async (id) => {\r\n return await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_INFO_AUTOSAVE_CHECK(id));\r\n}\r\n\r\nconst loadDraft = async (id) => {\r\n return await RestRequestGET(Endpoints.DEMAND_ADDITIONAL_INFO_AUTOSAVE(id));\r\n}\r\n\r\nconst saveDraft = async (id, formValues) => {\r\n await RestRequestPOST(Endpoints.DEMAND_ADDITIONAL_INFO_AUTOSAVE(id), formValues);\r\n}\r\n\r\nconst deleteDraft = async (id) => {\r\n await RestRequestDELETE(Endpoints.DEMAND_ADDITIONAL_INFO_AUTOSAVE(id));\r\n}\r\n\r\nexport default {\r\n getDemandAdditionalInfoWrapper,\r\n saveDemandAdditionalInfo,\r\n validate,\r\n checkForDraft,\r\n loadDraft,\r\n saveDraft,\r\n deleteDraft\r\n}","import {createContext} from \"react\";\r\nexport default createContext();","import React, {useContext} from \"react\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\nimport YesNo from \"components/YesNo\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\n\r\nfunction NoticeYesNoInput\r\n({\r\n id,\r\n label,\r\n formikProps,\r\n required,\r\n disabled\r\n }) {\r\n const {formTr, formTip} = useContext(FormTranslationContext)\r\n const tip = formTip(label ? label : id);\r\n\r\n\r\n const input = \r\n\r\n if (tip)\r\n return \r\n {input}\r\n \r\n return input;\r\n\r\n\r\n}\r\n\r\nexport default NoticeYesNoInput;","import React, {useContext} from \"react\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\nimport TextInput from \"components/TextInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport INPUT_TYPE from \"../../../../../constants/INPUT_TYPE\";\r\n\r\nfunction NoticeIntegerInput\r\n({\r\n id,\r\n label,\r\n formikProps,\r\n disabled,\r\n required\r\n }) {\r\n const {formTr, formTip} = useContext(FormTranslationContext)\r\n const tip = formTip(label ? label : id);\r\n\r\n\r\n const input = \r\n\r\n if (tip)\r\n return \r\n {input}\r\n \r\n return input;\r\n\r\n\r\n}\r\n\r\nexport default NoticeIntegerInput;","import React, {useEffect, useMemo, useState} from 'react'\r\nimport PropTypes from 'prop-types'\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport {TreeItem, TreeView} from \"@material-ui/lab\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport ChevronRightIcon from '@material-ui/icons/ChevronRight';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport TextField from \"@material-ui/core/TextField/TextField\";\r\nimport Chip from \"@material-ui/core/Chip\";\r\nimport useDebouncedEffect from \"hooks/useDebouncedEffect\";\r\nimport Tr from \"translations/Translations\";\r\nimport Dialog from \"./Dialog\";\r\nimport SingleButton from \"./popup/components/SingleButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n position: \"relative\",\r\n marginBottom: 10\r\n },\r\n dialogPaper: {\r\n padding: theme.spacing(2),\r\n minWidth: theme.breakpoints.values.sm\r\n },\r\n search: {\r\n width: '90%'\r\n },\r\n textField: {\r\n '&>.MuiInputBase-root': {\r\n flexWrap: \"nowrap\",\r\n justifyContent: \"space-between\",\r\n cursor: \"pointer\"\r\n },\r\n '& .MuiChip-root': {\r\n margin: 3,\r\n maxWidth: '100%'\r\n },\r\n '& .MuiInputBase-input': {\r\n padding: 4,\r\n width: 0,\r\n maxWidth: 30,\r\n opacity: 1,\r\n flexGrow: 1,\r\n textOverflow: 'ellipsis',\r\n visibility: \"hidden\"\r\n }\r\n },\r\n selected: {\r\n background: `${theme.palette.primary.main} !important`,\r\n color: `${theme.palette.secondary.contrastText} !important`\r\n\r\n },\r\n max100: {\r\n maxWidth: \"100%\"\r\n }\r\n}));\r\n\r\nfunction SelectTreeView(\r\n {\r\n formikProps,\r\n id,\r\n label,\r\n items,\r\n multiple = false,\r\n noError,\r\n className,\r\n required,\r\n disabled,\r\n onChange = () => {\r\n },\r\n unmountOnExit,\r\n skipCheckTouched,\r\n useObjectInsteadOfValues,\r\n prefixLabelsWithKeys = false\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [expanded, setExpanded] = React.useState([]);\r\n const [searchText, setSearchText] = React.useState(\"\");\r\n const [itemsFiltered, setItemsFiltered] = useState(items);\r\n\r\n const keyToData = useMemo(() => {\r\n const map = new Map();\r\n const doItem = (item) => {\r\n const hasChildren = Array.isArray(item.items) && item.items.length > 0;\r\n map.set(item.value, {label: prefixLabelsWithKeys ? item.value + \" - \" + item.label : item.label, last: !hasChildren, value: item})\r\n if (hasChildren) {\r\n item.items.forEach(doItem)\r\n }\r\n }\r\n\r\n items.forEach(doItem)\r\n\r\n return map;\r\n }, [items, prefixLabelsWithKeys])\r\n\r\n useEffect(()=> {\r\n setSearchText(\"\")\r\n setItemsFiltered(items);\r\n }, [items])\r\n\r\n\r\n const errorValue = getObjectValue(id, formikProps.errors, '')\r\n const touched = getObjectValue(id, formikProps.touched, !!skipCheckTouched)\r\n const _value = getObjectValue(id, formikProps.values, null)\r\n const selected = _value !== null ? multiple ? _value : [_value] : []\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const isError = !noError && (!!errorValue && !!touched)\r\n\r\n let _label = label;\r\n if (required) _label += '*';\r\n\r\n const getLabel = (node) => {\r\n return prefixLabelsWithKeys ? node.value + ' - ' + node.label : node.label\r\n }\r\n\r\n const renderTree = (nodes, i) => {\r\n return (!unmountOnExit || open) && nodes.map(node => {\r\n if (Array.isArray(node.items) && node.items.length > 0) {\r\n return (\r\n {Array.isArray(node.items) && node.items.length > 0 ? renderTree(node.items, i + 1) : null}\r\n )\r\n } else {\r\n const chosen = isSelected(node.value);\r\n const icon = multiple ? chosen ? : : undefined;\r\n\r\n return (\r\n \r\n )\r\n }\r\n })\r\n }\r\n\r\n const handleToggle = (event, nodeIds) => {\r\n setExpanded(nodeIds);\r\n };\r\n\r\n const isSelected = (nodeValue) => {\r\n if(useObjectInsteadOfValues) {\r\n return selected.find(e => e.value === nodeValue) !== undefined;\r\n } else {\r\n return selected.indexOf(nodeValue) !== -1\r\n }\r\n }\r\n\r\n const handleSelect = (event, nodeId) => {\r\n const elemObject = keyToData.get(nodeId);\r\n if (elemObject.last) {\r\n if (multiple) {\r\n let newSelected;\r\n if (!isSelected(nodeId)) {\r\n const elem = useObjectInsteadOfValues ? elemObject.value : nodeId;\r\n newSelected = [...selected, elem];\r\n } else {\r\n newSelected = selected.filter(x => useObjectInsteadOfValues ? x.value !== nodeId : x !== nodeId)\r\n }\r\n formikProps.setFieldValue(id, newSelected);\r\n onChange(newSelected)\r\n } else {\r\n formikProps.setFieldValue(id, nodeId);\r\n setOpen(false)\r\n onChange(nodeId)\r\n }\r\n }\r\n };\r\n\r\n const handleDelete = (nodeId) => {\r\n if (multiple) {\r\n const newSelected = selected.filter(x => useObjectInsteadOfValues ? x.value !== nodeId.value : x !== nodeId);\r\n formikProps.setFieldValue(id, newSelected);\r\n onChange(newSelected)\r\n } else {\r\n formikProps.setFieldValue(id, null);\r\n onChange(null)\r\n }\r\n }\r\n\r\n const [open, setOpen] = useState(false);\r\n const handleClick = (event) => {\r\n if(editable && !disabled)\r\n setOpen(true);\r\n };\r\n\r\n useDebouncedEffect(() => {\r\n\r\n\r\n if (searchText === \"\") {\r\n if (items !== itemsFiltered) {\r\n setItemsFiltered(items);\r\n setExpanded([])\r\n }\r\n } else {\r\n\r\n const fExp = []\r\n const filter = (text, nodes, parentVisible) => {\r\n const arr = [];\r\n for (const node of nodes) {\r\n let includes = parentVisible || getLabel(node).search(new RegExp(text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"i\")) > -1;\r\n const hasChildren = Array.isArray(node.items) && node.items.length > 0;\r\n\r\n let childrenFiltered;\r\n if (hasChildren) {\r\n childrenFiltered = filter(text, node.items, includes);\r\n if (childrenFiltered.length > 0)\r\n includes = true;\r\n }\r\n\r\n if (includes) {\r\n arr.push({label: node.label, value: node.value, items: childrenFiltered})\r\n if (hasChildren) {\r\n fExp.push(node.value);\r\n }\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n const itemsF = filter(searchText, items, false);\r\n setItemsFiltered(itemsF);\r\n setExpanded(fExp);\r\n }\r\n\r\n\r\n }, {timeout: 800, ignoreInitialCall: true}, [searchText])\r\n\r\n const onClosePopup = ()=> setOpen(false);\r\n\r\n return (
\r\n \r\n {selected.map(x => (\r\n handleDelete(x)} label={useObjectInsteadOfValues ? x.label : keyToData.get(x)?.label}/>))}\r\n
\r\n ),\r\n endAdornment: \r\n }}\r\n disabled={!editable || disabled}\r\n />\r\n\r\n setSearchText(e.target.value)} label={Tr('search2')}>}\r\n dialogActions={!!multiple && }\r\n >\r\n }\r\n defaultExpandIcon={}\r\n expanded={expanded}\r\n selected={useObjectInsteadOfValues ? selected.map(x => x.value) : selected}\r\n onNodeToggle={handleToggle}\r\n onNodeSelect={handleSelect}\r\n >\r\n {renderTree(itemsFiltered)}\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nSelectTreeView.propTypes = {\r\n className: PropTypes.string,\r\n formikProps: PropTypes.object,\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n items: PropTypes.arrayOf(\r\n PropTypes.oneOfType([\r\n PropTypes.shape({\r\n value: PropTypes.any.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }),\r\n PropTypes.string.isRequired,\r\n ])\r\n )\r\n}\r\n\r\nSelectTreeView.defaultProps = {\r\n items: []\r\n}\r\n\r\nexport default SelectTreeView\r\n","import React, {useContext} from \"react\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\nimport SelectTreeView from \"components/SelectTreeView\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\n\r\nfunction NoticeGlossaryInput\r\n({\r\n id,\r\n label,\r\n formikProps,\r\n items,\r\n multiple,\r\n required,\r\n unmountOnExit,\r\n onChange,\r\n useObjectInsteadOfValues,\r\n prefixLabelsWithKeys,\r\n disabled,\r\n className\r\n }) {\r\n const {formTr, formTip} = useContext(FormTranslationContext)\r\n const tip = formTip(label ? label : id);\r\n\r\n\r\n const input = \r\n\r\n if (tip)\r\n return
}>\r\n {input}\r\n \r\n return input;\r\n\r\n\r\n}\r\n\r\nexport default NoticeGlossaryInput;","import React, {useContext} from \"react\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\nimport TextInput from \"components/TextInput\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport INPUT_TYPE from \"../../../../../constants/INPUT_TYPE\";\r\n\r\nfunction NoticeNumericInput\r\n({\r\n id,\r\n label,\r\n formikProps,\r\n disabled,\r\n required\r\n }) {\r\n const {formTr, formTip} = useContext(FormTranslationContext)\r\n const tip = formTip(label ? label : id);\r\n\r\n\r\n const input = \r\n\r\n if (tip)\r\n return \r\n {input}\r\n \r\n return input;\r\n\r\n\r\n}\r\n\r\nexport default NoticeNumericInput;","import React, {useEffect, useState} from \"react\";\r\nimport Form from 'components/Form';\r\nimport {withRouter} from \"react-router\";\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport DemandAdditionalInfoService from \"services/DemandAdditionalInfoService\";\r\nimport Loading from \"components/Loading\";\r\nimport FormTranslationContext from \"context/FormTranslationContext\";\r\nimport NoticeYesNoInput from \"components/complex/nationalNotice/components/inputs/NoticeYesNoInput\";\r\nimport {connect} from \"react-redux\";\r\nimport {setFormDraftLoaded, setOpenForm, setOpenImporter} from \"redux/actions\";\r\nimport NoticeIntegerInput from \"components/complex/nationalNotice/components/inputs/NoticeIntegerInput\";\r\nimport {Accordion, AccordionDetails, AccordionSummary, Collapse, makeStyles} from \"@material-ui/core\";\r\nimport NoticeGlossaryInput from \"components/complex/nationalNotice/components/inputs/NoticeGlossaryInput\";\r\nimport NoticeNumericInput from \"components/complex/nationalNotice/components/inputs/NoticeNumericInput\";\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport Typography from \"components/Typography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n italic: {\r\n fontStyle: 'italic'\r\n },\r\n exceptionChip: {\r\n \"& .MuiChip-label\": {\r\n maxWidth: \"100%\"\r\n }\r\n },\r\n}))\r\n\r\nfunction getKey(id) {\r\n const split = id.split(\".\").filter(x => !/^\\d+$/.test(x));\r\n split.unshift(\"common.form.demandadditionalinfo\");\r\n return split.join(\".\");\r\n}\r\n\r\nfunction PreparingAdditionalInfo(\r\n {\r\n match,\r\n sectionId,\r\n formId,\r\n demandValidation,\r\n stepperState,\r\n demandHeader,\r\n setFormDraftLoaded\r\n }) {\r\n const classes = useStyle();\r\n const section = demandValidation.find(x => x.section === sectionId);\r\n const editable = section ? section.editable : false;\r\n const id = match.params.id;\r\n const [initData, setInitData] = useState(null);\r\n const [dictionaries, setDictionaries] = useState(null);\r\n const [translations, setTranslations] = useState(null);\r\n const [draftConfirm, setDraftConfirm] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active;\r\n useStepperStateCloseValidator(formId, undefined,\r\n autoSaveFormDraftActive ? () => DemandAdditionalInfoService.deleteDraft(id) : undefined,\r\n autoSaveFormDraftActive ? () => saveFormDraft(id, DemandAdditionalInfoService.saveDraft, formId) : undefined);\r\n\r\n const formTr = (id) => {\r\n const key = getKey(id);\r\n return translations.labels[key] || key;\r\n }\r\n const formTip = (id) => {\r\n const key = getKey(id);\r\n return translations.tips[key];\r\n }\r\n\r\n const getDict = (id) => {\r\n return dictionaries[id].items;\r\n }\r\n\r\n\r\n useEffect(() => {\r\n DemandAdditionalInfoService.getDemandAdditionalInfoWrapper(id).then(values => {\r\n setInitData(values.form);\r\n setDictionaries(values.dictionaries);\r\n setTranslations(values.translations);\r\n if (autoSaveFormDraftActive)\r\n DemandAdditionalInfoService.checkForDraft(id).then(res => setDraftConfirm(res.result));\r\n })\r\n }, [id, autoSaveFormDraftActive])\r\n\r\n const handleSubmit = (values, formikProps) => {\r\n DemandAdditionalInfoService.saveDemandAdditionalInfo(id, values, sectionId)\r\n\r\n }\r\n\r\n const loadAdditionalInfoDraft = () => {\r\n setDraftConfirm(false);\r\n setWorking(true);\r\n DemandAdditionalInfoService.loadDraft(id).then(res => {\r\n setInitData(res.result);\r\n setFormDraftLoaded(formId, res.success);\r\n });\r\n setWorking(false);\r\n }\r\n\r\n if (!initData || !dictionaries || !translations || working) return ()\r\n\r\n return (\r\n <>\r\n {(formikProps) => (\r\n \r\n \r\n {autoSaveFormDraftActive &&\r\n {\r\n DemandAdditionalInfoService.saveDraft(id, formValues)\r\n }}\r\n />\r\n }\r\n \r\n \r\n
\r\n {formTr(\"table_iv\")}\r\n {formTr(\"table_iv_desc\")}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n {formTr(\"table_v\")}\r\n {formTr(\"table_v_desc\")}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n {formTr(\"table_vi\")}\r\n {formTr(\"table_vi_desc\")}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n {formTr(\"table_vii\")}\r\n {formTr(\"table_vii_desc\")}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n {formTr(\"table_viii\")}\r\n {formTr(\"table_viii_desc\")}\r\n
\r\n
\r\n \r\n \r\n ({\r\n label: index + \" - \" + item.label,\r\n value: item.value\r\n })).filter(x => x.value !== \"0\")}\r\n />\r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n {formTr(\"table_ix\")}\r\n {formTr(\"table_ix_desc\")}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n {formTr(\"contract\")}\r\n {formTr(\"contract_desc\")}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n )}\r\n\r\n \r\n setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n \r\n )\r\n}\r\n\r\nPreparingAdditionalInfo.propTypes = {}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n stepperState: state.stepper.state,\r\n demandHeader: state.resources.demandHeader\r\n}), {\r\n setOpenForm, setOpenImporter, setFormDraftLoaded\r\n})(withRouter(PreparingAdditionalInfo));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {DemandValidation, DemandValidationKeys} from \"constants/DemandValidation\";\r\nimport PreparingAdditionalInfo from \"../../../part1/panels/additionalInfo/PreparingAdditionalInfo\";\r\n\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded &&\r\n \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import {\r\n AdditionalRoundPassive,\r\n AgreementsPanel,\r\n ContractorVerification,\r\n DemandAdditionalInfo,\r\n DocumentsPanel,\r\n EvaluationFinish,\r\n OfferChoice,\r\n OffersChoiceResult,\r\n OffersEvaluation,\r\n OffersPanel,\r\n PapersGenerator,\r\n PrimaryTenderChoice,\r\n StageFinish\r\n} from \"./panels\";\r\nimport ContractorVerificationService from \"services/ContractorVerificationService\";\r\nimport OfferEvaluationService from \"services/OfferEvaluationService\";\r\nimport OfferChoiceService from \"services/OfferChoiceService\";\r\nimport OffersChoiceResultService from \"services/OffersChoiceResultService\";\r\nimport AgreementsService from \"services/AgreementsService\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport AdditionalRoundPassiveService from \"services/AdditionalRoundPassiveService\";\r\nimport DemandOffersService from \"services/DemandOffersService\";\r\nimport DemandAdditionalInfoService from \"services/DemandAdditionalInfoService\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\n\r\nexport default {\r\n mp_3_offers: OffersPanel,\r\n mp_3_documents: DocumentsPanel,\r\n mp_3_contractor_verification: ContractorVerification,\r\n mp_3_offers_evaluation: OffersEvaluation,\r\n mp_3_offer_choice: OfferChoice,\r\n mp_3_additional_round_passive: AdditionalRoundPassive,\r\n mp_3_primary_tender_choice: PrimaryTenderChoice,\r\n mp_3_offers_choice_result: OffersChoiceResult,\r\n mp_3_evaluation_finish: EvaluationFinish,\r\n mp_3_stage_finish: StageFinish,\r\n mp_3_papers_generator: PapersGenerator,\r\n mp_3_agreements: AgreementsPanel,\r\n mp_3_evaluation_additional_info: DemandAdditionalInfo,\r\n}\r\n\r\nexport const panelsValidationKeys = {\r\n mp_3_offers: (id) => DemandOffersService.validate(id),\r\n mp_3_documents: (id) => SiwzService.validateDocuments(id),\r\n mp_3_contractor_verification: (id) => ContractorVerificationService.validate(id),\r\n mp_3_offers_evaluation: (id) => OfferEvaluationService.validate(id),\r\n mp_3_offer_choice: (id) => OfferChoiceService.validate(id),\r\n mp_3_additional_round_passive: (id) => AdditionalRoundPassiveService.validate(id),\r\n mp_3_primary_tender_choice: (id) => null,\r\n mp_3_offers_choice_result: (id) => OffersChoiceResultService.validate(id),\r\n mp_3_evaluation_finish: (id) => null,\r\n mp_3_stage_finish: (id) => null,\r\n mp_3_papers_generator: (id) => null,\r\n mp_3_agreements: (id) => AgreementsService.validate(id),\r\n mp_3_evaluation_additional_info: (id) => DemandAdditionalInfoService.validate(id, DemandValidation.EVALUATION_ADDITIONAL_INFO),\r\n}","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from 'libs/RestRequest';\r\nimport {clearResource, setResource, setSaveStatusError} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport downloadFileWithPreloadUrl from \"../libs/downloadFileWithPreloadUrl\";\r\nimport Tr from \"../translations/Translations\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\n\r\nconst RESULT_NOTICE_RESOURCE_ID = 'resultNotice';\r\n\r\nconst getResultNotice = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.RESULT_NOTICE(demandId));\r\n reduxStore.dispatch(setResource(RESULT_NOTICE_RESOURCE_ID, resp));\r\n await validateSection(DemandValidation.RESULT_NOTICE, demandId,false);\r\n};\r\n\r\nconst addResultNoticeAttachments = async (demandId, files) => {\r\n const resp = await RestRequestPOST(Endpoints.RESULT_NOTICE(demandId), {list: files});\r\n reduxStore.dispatch(setResource(RESULT_NOTICE_RESOURCE_ID, resp))\r\n await validateSection(DemandValidation.RESULT_NOTICE, demandId,false);\r\n};\r\n\r\nconst publishOjsResultNotice = async (demandId) => {\r\n return await RestRequestPOST(Endpoints.RESULT_NOTICE_PUBLISH_OJS_NOTICE(demandId));\r\n};\r\n\r\nconst checkOjsResultNotice = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.RESULT_NOTICE_CHECK_OJS_NOTICE(demandId));\r\n reduxStore.dispatch(\r\n setResource('resultOjsPublicationStatus', res)\r\n )\r\n return res;\r\n } catch (error) {\r\n }\r\n};\r\n\r\nconst rollbackOjsResultNotice = async (demandId) => {\r\n return await RestRequestPOST(Endpoints.RESULT_NOTICE_ROLLBACK_OJS_NOTICE(demandId));\r\n};\r\n\r\nconst getDownloadFile = async (demandId, resultNoticeId, resultFileId, openInBrowser) => {\r\n await downloadFileWithPreloadUrl(\r\n Endpoints.RESULT_NOTICE_DOWNLOAD_FILE_URL(demandId, resultNoticeId, resultFileId, openInBrowser),\r\n openInBrowser);\r\n}\r\n\r\nconst deleteResultNotice = async (demandId, resultNoticeId, resultNoticeAttachmentId) => {\r\n const resp = await RestRequestDELETE(Endpoints.RESULT_NOTICE_DELETE(demandId, resultNoticeId, resultNoticeAttachmentId))\r\n const {resources} = reduxStore.getState();\r\n const res = {\r\n ...resources[RESULT_NOTICE_RESOURCE_ID],\r\n attachments: resources[RESULT_NOTICE_RESOURCE_ID].attachments.filter(x => x.identity !== resp.result)\r\n };\r\n reduxStore.dispatch(setResource(RESULT_NOTICE_RESOURCE_ID, res))\r\n await validateSection(DemandValidation.RESULT_NOTICE, demandId,false);\r\n}\r\n\r\nconst publishResultNoticeAttachment = async (demandId, resultNoticeId, resultNoticeAttachmentId) => {\r\n const resp = await RestRequestPUT(Endpoints.RESULT_NOTICE_ATTACHMENT_PUBLISH(demandId, resultNoticeId, resultNoticeAttachmentId));\r\n checkAndUpdateAttachment(resp);\r\n await validateSection(DemandValidation.RESULT_NOTICE, demandId,false);\r\n};\r\n\r\nconst unpublishResultNoticeAttachment = async (demandId, resultNoticeId, resultNoticeAttachmentId) => {\r\n const resp = await RestRequestPUT(Endpoints.RESULT_NOTICE_ATTACHMENT_UNPUBLISH(demandId, resultNoticeId, resultNoticeAttachmentId));\r\n checkAndUpdateAttachment(resp);\r\n await validateSection(DemandValidation.RESULT_NOTICE, demandId,false);\r\n};\r\n\r\nconst publishResultNotice = async (demandId) => {\r\n const resp = await RestRequestPUT(Endpoints.RESULT_NOTICE_PUBLISH(demandId));\r\n reduxStore.dispatch(setResource(RESULT_NOTICE_RESOURCE_ID, resp.result));\r\n return resp;\r\n};\r\n\r\nconst unpublishResultNotice = async (demandId) => {\r\n const resp = await RestRequestPUT(Endpoints.RESULT_NOTICE_UNPUBLISH(demandId));\r\n reduxStore.dispatch(setResource(RESULT_NOTICE_RESOURCE_ID, resp.result));\r\n return resp;\r\n};\r\n\r\nconst updateDescription = async (demandId, {resultNoticeId, resultNoticeAttachmentId}, description) => {\r\n const resp = await RestRequestPUT(Endpoints.RESULT_NOTICE_DESCRIPTION(demandId, resultNoticeId, resultNoticeAttachmentId), {description});\r\n checkAndUpdateAttachment(resp);\r\n};\r\n\r\nconst checkAndUpdateAttachment = (resp) => {\r\n try {\r\n if (resp?.success) {\r\n const {resources} = reduxStore.getState();\r\n const res = {\r\n ...resources[RESULT_NOTICE_RESOURCE_ID],\r\n attachments: resources[RESULT_NOTICE_RESOURCE_ID].attachments.map(x => x.identity === resp.result.identity ? resp.result : x)\r\n };\r\n reduxStore.dispatch(setResource(RESULT_NOTICE_RESOURCE_ID, res))\r\n } else {\r\n throw new Error(resp);\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')))\r\n }\r\n}\r\nconst getDownloadHistory = async (demandId, {resultNoticeId, resultNoticeAttachmentId}, pagination) => {\r\n\r\n const params = {\r\n ...pagination\r\n }\r\n\r\n const url = Endpoints.RESULT_NOTICE_DOWNLOAD_FILE_HISTORY(demandId, resultNoticeId, resultNoticeAttachmentId, params);\r\n const siwzDownloadHistory = await RestRequestGET(url, {params});\r\n return siwzDownloadHistory;\r\n}\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.RESULT_NOTICE_VALIDATE(id));\r\n}\r\n\r\nconst clearResultNoticeResources = () => {\r\n reduxStore.dispatch(clearResource(RESULT_NOTICE_RESOURCE_ID));\r\n};\r\n\r\nconst addBzpNotice = async (demandId, bzpNoticeId) => {\r\n const url = Endpoints.RESULT_NOTICE_BZP(demandId)\r\n\r\n const data = {\r\n bzpNoticeId\r\n }\r\n\r\n return await RestRequestPOST(url, data);\r\n}\r\n\r\nconst buildIdentity = (resultNoticeId, resultNoticeAttachmentId) => ({resultNoticeId, resultNoticeAttachmentId});\r\n\r\nexport default {\r\n getResultNotice,\r\n publishOjsResultNotice,\r\n checkOjsResultNotice,\r\n rollbackOjsResultNotice,\r\n addResultNoticeAttachments,\r\n getDownloadFile,\r\n deleteResultNotice,\r\n publishResultNotice,\r\n unpublishResultNotice,\r\n unpublishResultNoticeAttachment,\r\n publishResultNoticeAttachment,\r\n getDownloadHistory,\r\n updateDescription,\r\n validate,\r\n clearResultNoticeResources,\r\n addBzpNotice,\r\n buildIdentity,\r\n RESULT_NOTICE_RESOURCE_ID\r\n}","import React, {useReducer} from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport ResultNoticeService from \"services/ResultNoticeService\";\r\nimport {makeStyles, TableCell, TableRow} from \"@material-ui/core\";\r\nimport iconWorksReducer from \"libs/iconWorksReducer\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport moment from \"libs/moment\";\r\nimport WorkableIconDownloadButton from \"components/button/WorkableIconDownloadButton\";\r\nimport WorkableIconPreviewButton from \"components/button/WorkableIconPreviewButton\";\r\nimport WorkableIconDownloadCountButton from \"components/button/WorkableIconDownloadCountButton\";\r\nimport WorkableIconUnpublishButton from \"components/button/WorkableIconUnpublishButton\";\r\nimport WorkableIconPublishButton from \"components/button/WorkableIconPublishButton\";\r\nimport WorkableIconDeleteButton from \"components/button/WorkableIconDeleteButton\";\r\nimport {createDownloadHistoryFile} from \"components/popup/DownloadHistoryPopup\";\r\nimport Tr from \"translations/Translations\";\r\nimport {createEditDescriptionFile} from \"components/popup/EditDescriptionPopup\";\r\nimport WorkableIconSearchButton from \"components/button/WorkableIconSearchButton\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n buttonColumn: theme.components.table.buttonColumn,\r\n descriptionTooltip: {\r\n whiteSpace: 'pre-line'\r\n }\r\n}))\r\n\r\nfunction AttachmentResultNoticeRow(\r\n {\r\n demandId,\r\n editable,\r\n resultNotice,\r\n attachment,\r\n onEditDescriptionFile,\r\n onDownloadHistory\r\n }) {\r\n const classes = useStyles();\r\n\r\n const [iconWorks, dispatchIconWorks] = useReducer(iconWorksReducer, {\r\n anyWorks: false,\r\n preview: false,\r\n download: false,\r\n publish: false,\r\n downloadCount: false,\r\n delete: false\r\n });\r\n\r\n const onDownloadCount = () => {\r\n onDownloadHistory(createDownloadHistoryFile(attachment.name, demandId, ResultNoticeService.buildIdentity(resultNotice.identity, attachment.identity)))\r\n };\r\n\r\n\r\n const downloadFile = (file, openInBrowser) => {\r\n dispatchIconWorks({type: openInBrowser ? 'preview' : 'download', works: true})\r\n ResultNoticeService.getDownloadFile(demandId, resultNotice.identity, file.identity, openInBrowser)\r\n .finally(() => dispatchIconWorks({type: openInBrowser ? 'preview' : 'download', works: false}));\r\n };\r\n\r\n const deleteResultNotice = (file) => {\r\n dispatchIconWorks({type: 'delete', works: true})\r\n ResultNoticeService.deleteResultNotice(demandId, resultNotice.identity, file.identity).finally(() => dispatchIconWorks({type: 'delete', works: false}));\r\n };\r\n\r\n const noticePublication = (file, publish) => {\r\n dispatchIconWorks({type: 'publish', works: true})\r\n const func = publish ? ResultNoticeService.publishResultNoticeAttachment : ResultNoticeService.unpublishResultNoticeAttachment;\r\n func(demandId, resultNotice.identity, file.identity).finally(() => dispatchIconWorks({type: 'publish', works: false}));\r\n };\r\n\r\n return (\r\n \r\n {attachment.name}\r\n \r\n onEditDescriptionFile(createEditDescriptionFile(demandId, ResultNoticeService.buildIdentity(resultNotice.identity, attachment.identity),\r\n attachment.name, attachment.description, !editable, false))}\r\n tooltip={attachment.description ?

{attachment.description}

: {Tr('no_description')}}\r\n disabled={iconWorks.anyWorks}\r\n />\r\n
\r\n {moment(attachment.createDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}\r\n {attachment.publishDate && moment(attachment.publishDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}\r\n \r\n downloadFile(attachment, true)}\r\n />\r\n \r\n \r\n downloadFile(attachment, false)}/>\r\n \r\n \r\n {\r\n attachment.published ?\r\n noticePublication(attachment, false)}\r\n /> :\r\n noticePublication(attachment, true)}\r\n />\r\n }\r\n \r\n \r\n \r\n\r\n \r\n \r\n deleteResultNotice(attachment)}\r\n />\r\n \r\n
\r\n\r\n )\r\n}\r\n\r\nAttachmentResultNoticeRow.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n resultNotice: PropTypes.object.isRequired,\r\n onEditDescriptionFile: PropTypes.func.isRequired,\r\n onDownloadHistory: PropTypes.func.isRequired\r\n}\r\n\r\n\r\nexport default AttachmentResultNoticeRow;","import React, {useState} from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport ResultNoticeService from \"services/ResultNoticeService\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableContainer, TableHead, TableRow} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport Tr from \"translations/Translations\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport AttachmentResultNoticeRow from \"./AttachmentResultNoticeRow\";\r\nimport EditDescriptionPopup from \"components/popup/EditDescriptionPopup\";\r\nimport DownloadHistoryPopup from \"components/popup/DownloadHistoryPopup\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n tableLayout: 'fixed',\r\n '& td, th': {\r\n overflow: 'hidden',\r\n }\r\n },\r\n buttonColumn: theme.components.table.buttonColumn,\r\n dateColumn: theme.components.table.dateTimeColumn\r\n}))\r\n\r\nfunction AttachmentResultNotice(\r\n {\r\n demandId,\r\n editable,\r\n resultNotice\r\n }) {\r\n const classes = useStyles();\r\n const [addWorking, setAddWorking] = useState(false);\r\n const [editDescriptionFile, setEditDescriptionFile] = useState(null);\r\n const [downloadHistory, setDownloadHistory] = useState(null);\r\n\r\n const handleSendFiles = (files) => {\r\n if (files.length) {\r\n setAddWorking(true);\r\n ResultNoticeService.addResultNoticeAttachments(demandId, files).finally(() => setAddWorking(false));\r\n }\r\n }\r\n\r\n\r\n return (<>\r\n \r\n \r\n \r\n \r\n {Tr(\"name\")}\r\n {Tr(\"description\")}\r\n {Tr(\"add_data\")}\r\n {Tr(\"publish_data\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!resultNotice.attachments && resultNotice.attachments.map(attachment => (\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n {editable &&\r\n \r\n }\r\n {!!editDescriptionFile &&\r\n setEditDescriptionFile(null)} onClose={() => setEditDescriptionFile(null)}/>\r\n }\r\n {downloadHistory &&\r\n setDownloadHistory(null)}/>\r\n }\r\n \r\n )\r\n}\r\n\r\nAttachmentResultNotice.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n resultNotice: PropTypes.object.isRequired\r\n}\r\n\r\n\r\nexport default AttachmentResultNotice;","export const PublishConst = {\r\n\tNOT_SENT: \"NOT_SENT\",\r\n\tSENT: \"SENT\",\r\n\tPUBLISHED: \"PUBLISHED\",\r\n\tCONFIRMED: \"CONFIRMED\",\r\n\tERROR: \"ERROR\",\r\n\tUNAVAILABLE: \"UNAVAILABLE\",\r\n\tUE_VALIDATION_ERROR: \"UE_VALIDATION_ERROR\",\r\n\tNOT_PUBLISHED: \"NOT_PUBLISHED\",\r\n}\r\n","export const ResultNoticeType = {\r\n OJS: \"OJS\",\r\n ATTACHMENT: \"ATTACHMENT\"\r\n}\r\nexport default ResultNoticeType;","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations'\r\nimport ResultNoticeService from \"services/ResultNoticeService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport Typography from \"components/Typography\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport validateSection from \"../../../../../../../../services/helpers/validateSection\";\r\nimport {DemandValidation} from \"../../../../../../../../constants/DemandValidation\";\r\nimport {connect} from \"react-redux\";\r\nimport {PublishConst} from 'constants/PublicationConst';\r\nimport ResultNoticeType from \"../constants/ResultNoticeType\";\r\nimport clsx from \"clsx\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n text: {\r\n marginBottom: theme.spacing(1),\r\n marginTop: theme.spacing(4)\r\n },\r\n text1: {\r\n marginBottom: theme.spacing(1),\r\n marginTop: theme.spacing(1)\r\n },\r\n error: {\r\n color: theme.palette.common.error\r\n }\r\n}))\r\n\r\nfunction OjsResultNotice(\r\n {\r\n demandId,\r\n editable,\r\n ojsAdmin,\r\n resultNotice,\r\n ojsResultNoticeSend,\r\n canPublishOjsResultNotice,\r\n resultOjsPublicationStatus\r\n }) {\r\n const classes = useStyle();\r\n\r\n const [working, setWorking] = useState(false);\r\n const [error, setError] = useState(null);\r\n const hasOjsNotice = useMemo(() => resultNotice ? resultNotice.type === ResultNoticeType.OJS && resultNotice.identity > 0 && resultNotice.complete : false, [resultNotice]);\r\n const [resultNoticeStatusInterval, setResultNoticeStatusInterval] = useState();\r\n\r\n useEffect(() => {\r\n if (hasOjsNotice) {\r\n ResultNoticeService.checkOjsResultNotice(demandId).then(resp => {\r\n setWorking(false);\r\n if (resp && resp.status === PublishConst.SENT) {\r\n startResultNoticeStatusInterval();\r\n }\r\n })\r\n } else {\r\n setWorking(false);\r\n }\r\n\r\n return () => {\r\n if (resultNoticeStatusInterval) clearInterval(resultNoticeStatusInterval);\r\n }\r\n //eslint-disable-next-line\r\n }, []);\r\n\r\n const startResultNoticeStatusInterval = () => {\r\n const interval = setInterval(async () => {\r\n const resp = await ResultNoticeService.checkOjsResultNotice(demandId);\r\n if (resp.status !== PublishConst.SENT) {\r\n clearInterval(interval);\r\n //clearPublishResources();\r\n }\r\n }, 10000);\r\n setResultNoticeStatusInterval(interval);\r\n };\r\n\r\n const goToNotice = () => {\r\n window.location.href = resultNotice.url;\r\n };\r\n\r\n const publishOjsResultNotice = () => {\r\n setWorking(true)\r\n ResultNoticeService.publishOjsResultNotice(demandId).then(resp => {\r\n if (isResponseValid(resp, setError)) {\r\n startResultNoticeStatusInterval();\r\n validateSection(DemandValidation.RESULT_NOTICE, demandId, false).finally(() => setWorking(false));\r\n }\r\n })\r\n };\r\n\r\n const rollbackOjsResultNotice = () => {\r\n setWorking(true)\r\n ResultNoticeService.rollbackOjsResultNotice(demandId).then(resp => {\r\n ResultNoticeService.checkOjsResultNotice(demandId).then(resp => {\r\n setWorking(false);\r\n startResultNoticeStatusInterval();\r\n });\r\n //clearPublishResources();\r\n if (isResponseValid(resp, setError)) {\r\n validateSection(DemandValidation.RESULT_NOTICE, demandId, false).finally(() => setWorking(false));\r\n }\r\n });\r\n };\r\n\r\n const unpublishResultNotice = () => {\r\n setWorking(true);\r\n ResultNoticeService.unpublishResultNotice(demandId).then(resp => {\r\n if (isResponseValid(resp, setError)) {\r\n validateSection(DemandValidation.RESULT_NOTICE, demandId, false).finally(() => setWorking(false));\r\n }\r\n });\r\n };\r\n\r\n const publishResultNotice = () => {\r\n setWorking(true);\r\n ResultNoticeService.publishResultNotice(demandId).then(resp => {\r\n if (isResponseValid(resp, setError)) {\r\n validateSection(DemandValidation.RESULT_NOTICE, demandId, false).finally(() => setWorking(false));\r\n }\r\n });\r\n }\r\n\r\n\r\n return (\r\n {!!error && {error}}\r\n\r\n {!canPublishOjsResultNotice && !ojsResultNoticeSend && {Tr('result_notice_ojs_prepare')}}\r\n \r\n\r\n {hasOjsNotice && (resultOjsPublicationStatus && resultOjsPublicationStatus.message && resultOjsPublicationStatus.status !== PublishConst.UNAVAILABLE) &&\r\n \r\n {resultOjsPublicationStatus.message}\r\n \r\n }\r\n {hasOjsNotice && !resultOjsPublicationStatus &&\r\n \r\n \r\n }\r\n {hasOjsNotice && (!resultOjsPublicationStatus || (resultOjsPublicationStatus.status !== PublishConst.NOT_PUBLISHED && resultOjsPublicationStatus.status !== PublishConst.UE_VALIDATION_ERROR)) &&\r\n \r\n }\r\n\r\n {hasOjsNotice && resultOjsPublicationStatus && resultOjsPublicationStatus.status === PublishConst.NOT_PUBLISHED &&\r\n \r\n }\r\n\r\n {hasOjsNotice && resultOjsPublicationStatus && resultOjsPublicationStatus.status === PublishConst.UE_VALIDATION_ERROR &&\r\n \r\n }\r\n\r\n {hasOjsNotice && {Tr(resultNotice.published ? 'result_notice_published' : 'result_notice_not_published')}}\r\n\r\n {hasOjsNotice && resultNotice.published &&\r\n \r\n }\r\n\r\n {hasOjsNotice && !resultNotice.published &&\r\n \r\n }\r\n
)\r\n}\r\n\r\nOjsResultNotice.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n resultNotice: PropTypes.shape({\r\n url: PropTypes.string.isRequired\r\n }).isRequired,\r\n canPublishOjsResultNotice: PropTypes.bool.isRequired,\r\n ojsResultNoticeSend: PropTypes.bool.isRequired,\r\n\r\n}\r\n\r\nexport default connect((state) => ({\r\n resultOjsPublicationStatus: state.resources.resultOjsPublicationStatus\r\n}), {})(OjsResultNotice);","import React, {useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Loading from \"components/Loading\";\r\nimport Button from \"components/Button\";\r\nimport PropTypes from \"prop-types\";\r\nimport ResultNoticeService from \"services/ResultNoticeService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n loading: {\r\n width: '98%'\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n }\r\n}));\r\n\r\nfunction AddBzpResultNoticePopup(\r\n {\r\n demandId,\r\n onClose,\r\n formSubmit,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const [working, setWorking] = useState(false);\r\n const [errorText, setErrorText] = useState();\r\n const [downloadSuccess, setDownloadSuccess] = useState(false);\r\n\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const processResponse = async (resp) => {\r\n if (resp.success) {\r\n await ResultNoticeService.getResultNotice(demandId);\r\n setDownloadSuccess(true);\r\n } else {\r\n setErrorText(resp.errors.shift());\r\n }\r\n\r\n }\r\n\r\n const onSubmit = ({bzpNoticeId}) => {\r\n setWorking(true);\r\n setErrorText();\r\n ResultNoticeService.addBzpNotice(demandId, bzpNoticeId.trim()).then(processResponse).catch(() => {\r\n }).finally(() => {\r\n setWorking(false);\r\n });\r\n }\r\n\r\n\r\n if(downloadSuccess) {\r\n return (\r\n \r\n \r\n {Tr('bzp_notice_downloaded')}\r\n \r\n
\r\n \r\n {Tr('close')}\r\n \r\n
\r\n )\r\n }\r\n\r\n\r\n return (\r\n \r\n {\r\n if(!!bzpNoticeId) {\r\n bzpNoticeId = bzpNoticeId.trim();\r\n if(bzpNoticeId.includes(\"-N-\")) {\r\n const split = bzpNoticeId.split(\"-N-\");\r\n if(split.length === 2) {\r\n return /^[0-9]{6,9}$/.test(split[0]) && /^[0-9]{4}$/.test(split[1]);\r\n }\r\n } else if(bzpNoticeId.includes(\"/BZP\")) {\r\n return /^[0-9]{4}\\/BZP\\s?[0-9]{8}\\/[0-9]{2}$/.test(bzpNoticeId);\r\n }\r\n }\r\n return false;\r\n }),\r\n })}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n {working && }\r\n\r\n \r\n\r\n {!!errorText && \r\n {Tr(errorText)}\r\n }\r\n\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nAddBzpResultNoticePopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired\r\n};\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddBzpResultNoticePopup);","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport {connect} from 'react-redux'\r\nimport Form from 'components/Form';\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation, DemandValidationKeys} from 'constants/DemandValidation';\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport Loading from \"components/Loading\";\r\nimport ResultNoticeService from \"services/ResultNoticeService\";\r\nimport AttachmentResultNotice from \"./components/AttachmentResultNotice\";\r\nimport OjsResultNotice from \"./components/OjsResultNotice\";\r\nimport ResultNoticeType from \"./constants/ResultNoticeType\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Tr from \"translations/Translations\";\r\nimport {isNationalProcedure} from \"libs/getDemandStatus\";\r\nimport AddBzpResultNoticePopup from \"components/complex/documentsTables/swz/AddBzpResultNoticePopup\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n }\r\n}))\r\n\r\nfunction ResultNoticePanel(\r\n {\r\n match,\r\n demandValidation,\r\n resultNotice,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyles();\r\n const demandId = match.params.id;\r\n\r\n const currentDemandValidation = DemandValidation.RESULT_NOTICE;\r\n const section = demandValidation.find(x => x.section === currentDemandValidation);\r\n const editable = section ? section.editable : true;\r\n const ojsAdmin = section ? section.ojsAdmin : false;\r\n const bzpEditable = section ? !!section.bzpEditable : false;\r\n // eslint-disable-next-line\r\n const nationalProcedure = useMemo(() => isNationalProcedure(), [demandHeader]);\r\n const [addBzpNoticePopupOpened, setAddBzpNoticePopupOpened] = useState(false);\r\n\r\n useEffect(() => {\r\n ResultNoticeService.getResultNotice(demandId);\r\n return () => {\r\n ResultNoticeService.clearResultNoticeResources();\r\n }\r\n }, [demandId])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n if (nationalProcedure && bzpEditable) {\r\n buttons.push(createButton(Tr(\"add_bzp_result_notice\"), () => setAddBzpNoticePopupOpened(true)))\r\n }\r\n\r\n if (buttons.length)\r\n return \r\n }\r\n\r\n if (!resultNotice) return \r\n\r\n return (\r\n {(formikProps) =>\r\n (
\r\n {getButtons()}\r\n\r\n \r\n {resultNotice.type === ResultNoticeType.ATTACHMENT &&\r\n }\r\n {resultNotice.type === ResultNoticeType.OJS &&\r\n }\r\n\r\n {addBzpNoticePopupOpened && setAddBzpNoticePopupOpened(false)}/>}\r\n
)}\r\n \r\n )\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n resultNotice: state.resources[ResultNoticeService.RESULT_NOTICE_RESOURCE_ID],\r\n demandValidation: state.resources.demandValidation,\r\n demandHeader: state.resources.demandHeader\r\n}), {})(withRouter(ResultNoticePanel));","import React from 'react'\r\nimport ResultNoticePanel from \"./ResultNoticePanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestGET, RestRequestPOST} from \"../libs/RestRequest\";\r\nimport Endpoints from \"../constants/Endpoints\";\r\n\r\nconst DEMAND_ARCHIVING_RESOURCE_ID = 'demandArchiving';\r\n\r\nconst getDemandArchiving = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.ARCHIVING(demandId));\r\n reduxStore.dispatch(setResource(DEMAND_ARCHIVING_RESOURCE_ID, resp))\r\n}\r\n\r\nconst scheduleArchive = async (demandId) => {\r\n clearDemandArchiving();\r\n const resp = await RestRequestPOST(Endpoints.ARCHIVING_SCHEDULE(demandId));\r\n reduxStore.dispatch(setResource(DEMAND_ARCHIVING_RESOURCE_ID, resp))\r\n}\r\n\r\nconst validate = async (demandId) => {\r\n return await RestRequestGET(Endpoints.ARCHIVING_VALIDATE(demandId));\r\n}\r\n\r\nconst clearDemandArchiving = () => {\r\n reduxStore.dispatch(clearResource(DEMAND_ARCHIVING_RESOURCE_ID));\r\n}\r\n\r\nexport default {\r\n getDemandArchiving,\r\n scheduleArchive,\r\n validate,\r\n clearDemandArchiving,\r\n DEMAND_ARCHIVING_RESOURCE_ID\r\n}","export const ArchivingStatus = {\r\n WAITING: \"WAITING\",\r\n ARCHIVED: \"ARCHIVED\",\r\n ARCHIVE_EXPIRED: \"ARCHIVE_EXPIRED\"\r\n}\r\n\r\nexport const statusScheduleAvailable = (status) => {\r\n return !status || ArchivingStatus.ARCHIVE_EXPIRED === status;\r\n}","import React, {useEffect, useState} from \"react\";\r\nimport {connect} from 'react-redux'\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport Loading from \"components/Loading\";\r\nimport ArchivingService from \"services/ArchivingService\";\r\nimport Tr from \"translations/Translations\";\r\nimport Typography from \"components/Typography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport ArchiveIcon from '@material-ui/icons/Archive';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport {ArchivingStatus, statusScheduleAvailable} from \"./constants/ArchivingStatus\";\r\nimport SimpleTable from \"components/complex/simpleTable/SimpleTable\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport moment from \"libs/moment\";\r\nimport downloadFile from \"libs/downloadFile\";\r\nimport {getUserFullNameWithDeputy} from \"libs/userNameGetter\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n icon: theme.components.icon,\r\n text: {\r\n marginBottom: theme.spacing(2)\r\n }\r\n}))\r\n\r\nfunction ArchivingPanel(\r\n {\r\n match,\r\n demandValidation,\r\n demandArchiving\r\n }) {\r\n\r\n const classes = useStyle();\r\n const curDemandValidation = DemandValidation.ARCHIVING;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n const [working, setWorking] = useState(false)\r\n\r\n useEffect(() => {\r\n ArchivingService.getDemandArchiving(demandId);\r\n return () => {\r\n ArchivingService.clearDemandArchiving();\r\n }\r\n }, [demandId])\r\n\r\n const scheduleArchive = () => {\r\n ArchivingService.scheduleArchive(demandId);\r\n };\r\n\r\n const downloadArchive = () => {\r\n const archiveUrl = demandArchiving?.info?.archiveUrl;\r\n if (archiveUrl) {\r\n setWorking(true);\r\n downloadFile({url: archiveUrl.url, name: archiveUrl.name});\r\n }\r\n };\r\n\r\n const getDescription = () => {\r\n\r\n if (!demandArchiving.archivingStatus) {\r\n if (editable) {\r\n return Tr('demand_archiving_schedule_available')\r\n } else {\r\n return Tr('demand_archiving_schedule_unavailable')\r\n }\r\n } else {\r\n return Tr('demand_archiving_' + demandArchiving.archivingStatus.toLowerCase())\r\n }\r\n }\r\n\r\n const getButton = () => {\r\n\r\n if (!demandArchiving.archivingStatus || demandArchiving.archivingStatus === ArchivingStatus.ARCHIVE_EXPIRED) {\r\n return \r\n {Tr('demand_archiving_button')}\r\n \r\n } else if (demandArchiving.archivingStatus === ArchivingStatus.ARCHIVED) {\r\n return \r\n {Tr('demand_archiving_button_download')}\r\n \r\n }\r\n\r\n }\r\n\r\n if (!demandArchiving) return \r\n return (\r\n \r\n \r\n {getDescription()}\r\n\r\n {!!demandArchiving.info &&\r\n \r\n }\r\n {getButton()}\r\n\r\n \r\n )\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n demandArchiving: state.resources[ArchivingService.DEMAND_ARCHIVING_RESOURCE_ID]\r\n}), {})(withRouter(ArchivingPanel));","import React from 'react'\r\nimport ArchivingPanel from \"./ArchivingPanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestGET, RestRequestPOST} from \"libs/RestRequest\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport HeaderService from \"./HeaderService\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\n\r\nconst FINISH_DEMAND_RESOURCE_ID = 'finishDemand';\r\n\r\nconst getFinishDemand = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.FINISH_DEMAND(demandId));\r\n reduxStore.dispatch(setResource(FINISH_DEMAND_RESOURCE_ID, resp))\r\n}\r\n\r\nconst backToOfferEvaluation = async (demandId) => {\r\n clearFinishDemand();\r\n return await RestRequestPOST(Endpoints.FINISH_DEMAND_BACK_TO_OFFER_EVALUATION(demandId));\r\n}\r\n\r\nconst backToResultNotice = async (demandId) => {\r\n clearFinishDemand();\r\n const resp = await RestRequestPOST(Endpoints.FINISH_DEMAND_BACK_TO_RESULT_NOTICE(demandId));\r\n reduxStore.dispatch(setResource(FINISH_DEMAND_RESOURCE_ID, resp));\r\n await validateSection(DemandValidation.FINISH_DEMAND, demandId, false);\r\n await validateSection(DemandValidation.RESULT_NOTICE, demandId, false);\r\n}\r\n\r\nconst withdrawalNoticeDate = async (demandId, values) => {\r\n const data = {\r\n ...values,\r\n unpublishDate: values.unpublishDate ? values.unpublishDate.format() : null\r\n }\r\n return await RestRequestPOST(Endpoints.FINISH_DEMAND_WITHDRAWAL_NOTICE_DATE(demandId), data);\r\n}\r\n\r\nconst cancelDemand = async (demandId) => {\r\n clearFinishDemand();\r\n const resp = await RestRequestPOST(Endpoints.FINISH_DEMAND_CANCEL(demandId));\r\n reduxStore.dispatch(setResource(FINISH_DEMAND_RESOURCE_ID, resp));\r\n await validateSection(DemandValidation.FINISH_DEMAND, demandId, false);\r\n await validateSection(DemandValidation.ARCHIVING, demandId, false);\r\n await validateSection(DemandValidation.DEMAND_PLAN_REALIZATION, demandId, false);\r\n await HeaderService.get(demandId)\r\n}\r\n\r\nconst finishDemand = async (demandId) => {\r\n clearFinishDemand();\r\n const resp = await RestRequestPOST(Endpoints.FINISH_DEMAND_FINISH(demandId));\r\n reduxStore.dispatch(setResource(FINISH_DEMAND_RESOURCE_ID, resp))\r\n await validateSection(DemandValidation.FINISH_DEMAND, demandId, false);\r\n await validateSection(DemandValidation.ARCHIVING, demandId, false);\r\n await validateSection(DemandValidation.DEMAND_PLAN_REALIZATION, demandId, false);\r\n await HeaderService.get(demandId)\r\n}\r\n\r\nconst validate = async (demandId) => {\r\n return await RestRequestGET(Endpoints.FINISH_DEMAND_VALIDATE(demandId));\r\n}\r\n\r\nconst clearFinishDemand = () => {\r\n reduxStore.dispatch(clearResource(FINISH_DEMAND_RESOURCE_ID));\r\n}\r\n\r\nexport default {\r\n getFinishDemand,\r\n backToOfferEvaluation,\r\n backToResultNotice,\r\n cancelDemand,\r\n finishDemand,\r\n validate,\r\n withdrawalNoticeDate,\r\n clearFinishDemand,\r\n FINISH_DEMAND_RESOURCE_ID\r\n}","import React, {useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport DateTimePicker from \"components/DateTimePicker\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport Loading from \"components/Loading\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport FinishDemandService from \"services/FinishDemandService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport moment from \"libs/moment\";\r\n\r\n\r\nfunction UnpublishNoticePopup(\r\n {\r\n demandId,\r\n onSuccess,\r\n onCancel,\r\n initialDate,\r\n formSubmit\r\n }) {\r\n\r\n\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n const [working, setWorking] = useState(false);\r\n const [error, setError] = useState(null);\r\n\r\n const onSubmit = (values) => {\r\n setError(null);\r\n setWorking(true);\r\n const resp = FinishDemandService.withdrawalNoticeDate(demandId, values);\r\n if(isResponseValid(resp, setError)) {\r\n onSuccess();\r\n }\r\n }\r\n\r\n return (\r\n }\r\n >\r\n\r\n \r\n {(formikProps) => (\r\n \r\n {working && }\r\n {!!error && {error}}\r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form,\r\n}), {})(UnpublishNoticePopup);","import React, {useEffect, useMemo, useState} from \"react\";\r\nimport {connect} from 'react-redux'\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation, DemandValidationKeys} from 'constants/DemandValidation';\r\nimport Loading from \"components/Loading\";\r\nimport Tr from \"translations/Translations\";\r\nimport Typography from \"components/Typography\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport FinishDemandService from \"services/FinishDemandService\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport {LABELS as ProcedureStatusLabels, VALUES as ProcedureStatusValues} from \"constants/ProcedureStatus\";\r\nimport UnpublishNoticePopup from \"./components/UnpublishNoticePopup\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n icon: theme.components.icon,\r\n italic: {\r\n fontStyle: 'italic',\r\n },\r\n text: {\r\n marginBottom: theme.spacing(1),\r\n marginTop: theme.spacing(4)\r\n },\r\n exPostButton: {\r\n marginBottom: theme.spacing(1)\r\n },\r\n exPostBackButton: {\r\n marginTop: theme.spacing(4)\r\n }\r\n}))\r\n\r\nconst rp = RouterPath.myProcedure;\r\n\r\nfunction FinishDemandPanel(\r\n {\r\n match,\r\n demandValidation,\r\n finishDemand,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyle();\r\n const curDemandValidation = DemandValidation.FINISH_DEMAND;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n const [backConfirm, setBackConfirm] = useState(false);\r\n const [backToResultConfirm, setBackToResultConfirm] = useState(false);\r\n const [unpublishDatePopup, setUnpublishDatePopup] = useState(false);\r\n const prevErrors = useMemo(() => demandValidation.filter((x) => x.section !== curDemandValidation && x.status === 'ERROR'), [demandValidation, curDemandValidation]);\r\n\r\n useEffect(() => {\r\n FinishDemandService.getFinishDemand(demandId);\r\n return () => {\r\n FinishDemandService.clearFinishDemand();\r\n }\r\n }, [demandId])\r\n\r\n const backToOfferEvaluation = () => {\r\n setBackConfirm(false);\r\n FinishDemandService.backToOfferEvaluation(demandId).then((resp) => RouterPath.redirect(RouterPath.createPath(rp.steps.MP_3_ID, {id: demandId})))\r\n };\r\n\r\n const backToPreparing = () => {\r\n setBackConfirm(false);\r\n FinishDemandService.backToOfferEvaluation(demandId).then((resp) => RouterPath.redirect(RouterPath.createPath(rp.steps.MP_1_ID, {id: demandId})))\r\n };\r\n\r\n const backToResultNotice = () => {\r\n setBackToResultConfirm(false);\r\n FinishDemandService.backToResultNotice(demandId);\r\n };\r\n\r\n const doCancelFinish = () => {\r\n if (finishDemand.canCancel)\r\n FinishDemandService.cancelDemand(demandId);\r\n else if (finishDemand.canFinish)\r\n FinishDemandService.finishDemand(demandId);\r\n };\r\n const doCancel = () => {\r\n if (finishDemand.canCancel)\r\n FinishDemandService.cancelDemand(demandId);\r\n };\r\n const doFinish = () => {\r\n if (finishDemand.canFinish)\r\n FinishDemandService.finishDemand(demandId);\r\n };\r\n\r\n if (!finishDemand) return \r\n\r\n return (
\r\n {!demandHeader.exPost &&\r\n \r\n \r\n {\r\n prevErrors.length > 0 ?\r\n {Tr('to_finish_done_sections')}:\r\n \"{prevErrors.map((x) => Tr(DemandValidationKeys[x.section])).join(\"\\\", \\\"\")}\"\r\n :\r\n (ProcedureStatusValues.FINISHED === finishDemand.status || ProcedureStatusValues.CANCELLED === finishDemand.status) ?\r\n {ProcedureStatusLabels[finishDemand.status]}\r\n :\r\n {Tr('demand_finish_finish_info')}\r\n }\r\n\r\n 0}\r\n\r\n >\r\n {Tr(finishDemand.status === ProcedureStatusValues.CANCELLED || finishDemand.canCancel ? 'demand_finish_cancel_button' : 'demand_finish_finish_button')}\r\n \r\n\r\n {!finishDemand.ojsResultNoticeSent && {Tr('demand_finish_back_to_evaluation_info')}}\r\n {!finishDemand.ojsResultNoticeSent &&\r\n setBackConfirm(true)}\r\n disabled={!finishDemand.canBackState}\r\n >\r\n {Tr('demand_finish_back_to_evaluation_button')}\r\n \r\n }\r\n\r\n {finishDemand.ojsResultNoticeSent && {Tr('demand_finish_back_to_result_notice_info')}}\r\n {finishDemand.ojsResultNoticeSent &&\r\n setBackToResultConfirm(true)}\r\n disabled={!finishDemand.canBackToResultNotice}\r\n >\r\n {Tr('demand_finish_back_to_result_notice_button')}\r\n \r\n }\r\n\r\n \r\n {Tr('demand_finish_withdrawal_notice_info')}\r\n {!!finishDemand.withdrawalNoticeDate && <>
{Tr('demand_finish_withdrawal_notice_set_info', {date: moment(finishDemand.withdrawalNoticeDate).format(DateFormats.DATETIME_FORMAT)})}}\r\n
\r\n setUnpublishDatePopup(true)}\r\n disabled={!finishDemand.canSetWithdrawalNoticeDate}\r\n >\r\n {Tr(finishDemand.withdrawalNoticeDate ? 'demand_finish_withdraw_notice_update' : 'demand_finish_withdraw_notice')}\r\n \r\n \r\n }\r\n\r\n {demandHeader.exPost &&\r\n \r\n \r\n {\r\n prevErrors.length > 0 ?\r\n {Tr('to_finish_done_sections')}:\r\n \"{prevErrors.map((x) => Tr(DemandValidationKeys[x.section])).join(\"\\\", \\\"\")}\"\r\n :\r\n (ProcedureStatusValues.FINISHED === finishDemand.status || ProcedureStatusValues.CANCELLED === finishDemand.status) ?\r\n {ProcedureStatusLabels[finishDemand.status]}\r\n :\r\n {Tr('demand_finish_finish_info_ex_post')}\r\n }\r\n 0}\r\n >\r\n {Tr('demand_finish_cancel_button')}\r\n \r\n 0}\r\n >\r\n {Tr('demand_finish_finish_button')}\r\n \r\n\r\n setBackConfirm(true)}\r\n disabled={!finishDemand.canBackState}\r\n >\r\n {Tr('demand_finish_back_to_evaluation_button_exPost')}\r\n \r\n \r\n }\r\n setBackConfirm(false)}\r\n />\r\n setBackToResultConfirm(false)}\r\n />\r\n {\r\n unpublishDatePopup && {\r\n FinishDemandService.getFinishDemand(demandId).finally(() => setUnpublishDatePopup(false));\r\n }}\r\n onCancel={() => setUnpublishDatePopup(false)}\r\n initialDate={finishDemand.withdrawalNoticeDate}\r\n />\r\n }\r\n
\r\n )\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n finishDemand: state.resources[FinishDemandService.FINISH_DEMAND_RESOURCE_ID],\r\n demandHeader: state.resources.demandHeader\r\n}), {})(withRouter(FinishDemandPanel));","import React from 'react'\r\nimport FinishDemandPanel from \"./FinishDemandPanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import React from \"react\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {connect} from \"react-redux\";\r\nimport DocumentsTables from \"components/complex/documentsTables/DocumentsTables\";\r\nimport {DemandValidationProvider} from \"context/DemandValidationContext\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n }\r\n}));\r\n\r\nfunction FinishDocumentsPanel(\r\n {\r\n match,\r\n demandValidation\r\n }) {\r\n\r\n const classes = useStyles();\r\n const demandId = match.params.id;\r\n\r\n const currentDemandValidation = DemandValidation.FINISH_DOCUMENTS;\r\n const section = demandValidation.find(x => x.section === currentDemandValidation);\r\n const siwzEditable = section ? !!section.siwzEditable : false;\r\n const repoEditable = section ? !!section.repoEditable : false;\r\n\r\n return (
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation\r\n}), {})(withRouter(FinishDocumentsPanel));\r\n\r\n","import React from 'react'\r\nimport FinishDocumentsPanel from \"./FinishDocumentsPanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import {clearResource, setResource, setSaveStatusDialog, setSaveStatusError, setStepperState} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestGET, RestRequestPOST} from \"libs/RestRequest\";\r\nimport Endpoints from \"constants/Endpoints\";\r\nimport Tr from \"../translations/Translations\";\r\nimport validateSection from \"./helpers/validateSection\";\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\n\r\nconst DEMAND_PLAN_REALIZATIONS_RESOURCE_ID = 'demandPlanRealizations';\r\n\r\nconst getRealizations = async (demandId) => {\r\n const resp = await RestRequestGET(Endpoints.DEMAND_PLAN_REALIZATION(demandId));\r\n reduxStore.dispatch(setResource(DEMAND_PLAN_REALIZATIONS_RESOURCE_ID, resp))\r\n}\r\n\r\nconst saveRealizations = async (demandId, values) => {\r\n\r\n const valuesTouched = values.filter(x => x._touched).map(x => {\r\n const y = {...x};\r\n delete y._touched\r\n return y;\r\n })\r\n\r\n let resp;\r\n if (valuesTouched.length > 0) {\r\n try {\r\n resp = await RestRequestPOST(Endpoints.DEMAND_PLAN_REALIZATION(demandId), {list: valuesTouched});\r\n } catch (e) {\r\n console.error(e)\r\n }\r\n }\r\n\r\n if (!resp) {\r\n reduxStore.dispatch(setStepperState());\r\n } else if(resp.success) {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n await validateSection(DemandValidation.DEMAND_PLAN_REALIZATION, demandId, false);\r\n reduxStore.dispatch(setStepperState());\r\n } else {\r\n if (resp && Array.isArray(resp.errors) && resp.errors.length > 0) {\r\n reduxStore.dispatch(setSaveStatusError(resp.errors[0]));\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError(Tr('internal_server_error')));\r\n }\r\n }\r\n\r\n\r\n}\r\n\r\n\r\nconst validate = async (demandId) => {\r\n return await RestRequestGET(Endpoints.DEMAND_PLAN_REALIZATION_VALIDATE(demandId));\r\n}\r\n\r\nconst clearResources = () => {\r\n reduxStore.dispatch(clearResource(DEMAND_PLAN_REALIZATIONS_RESOURCE_ID));\r\n}\r\n\r\nexport default {\r\n getRealizations,\r\n saveRealizations,\r\n validate,\r\n clearResources,\r\n DEMAND_PLAN_REALIZATIONS_RESOURCE_ID\r\n}","import React from 'react'\r\nimport SvgIcon from \"@material-ui/core/SvgIcon\";\r\n\r\n//https://uxwing.com/calculate-math-icon/\r\n//licence: https://uxwing.com/license/\r\nfunction CalcIcon(props) {\r\n return (\r\n \r\n \r\n\r\n );\r\n}\r\n\r\nexport default CalcIcon;","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport WorkableIconButton from \"./WorkableIconButton\";\r\nimport CalcIcon from \"../icon/CalcIcon\";\r\n\r\nfunction WorkableIconCalcButton(\r\n {\r\n tooltip = Tr('calculate'),\r\n ...props\r\n }) {\r\n return \r\n}\r\n\r\nWorkableIconCalcButton.propTypes = {\r\n working: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string,\r\n hideTooltip: PropTypes.bool,\r\n color: PropTypes.string,\r\n onClick: PropTypes.func\r\n}\r\n\r\nexport default WorkableIconCalcButton;","import React, {useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport VATItems, {SELECT_VALUE} from \"constants/VATItems\";\r\nimport {FormControl, InputAdornment, RadioGroup as RadioGroupUI, TextField} from \"@material-ui/core\";\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport RadioGroupElement from \"components/RadioGroupElement\";\r\nimport {calcGrossValue, calcNetValue} from \"libs/netGrosCalculations\";\r\nimport toFloat from \"libs/toFloat\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n grid: {\r\n '&>*': {\r\n flexGrow: 1,\r\n '&:not(:first-child)': {\r\n marginLeft: theme.spacing(2)\r\n }\r\n }\r\n },\r\n iconButton: {\r\n padding: theme.spacing(1) / 2,\r\n },\r\n otherTextInput: {\r\n width: 100,\r\n marginLeft: theme.spacing(2)\r\n }\r\n}));\r\n\r\n\r\nconst NetGrossCalcPopup = (\r\n {\r\n open,\r\n onClose,\r\n disabled,\r\n tooltip,\r\n netValue,\r\n setNetValue,\r\n grossValue,\r\n setGrossValue\r\n\r\n }) => {\r\n const classes = useStyle();\r\n const [optionValue, setOptionValue] = useState(null);\r\n const [otherValue, setOtherValue] = useState(\"\");\r\n\r\n const notSelected = optionValue === null || (optionValue === SELECT_VALUE.OTHER && !otherValue)\r\n\r\n const doCalcNetValue = () => {\r\n let otherVatValue;\r\n if (optionValue === SELECT_VALUE.OTHER)\r\n otherVatValue = Number.parseFloat(otherValue);\r\n let newNetValue = calcNetValue(toFloat(grossValue), optionValue, otherVatValue);\r\n setNetValue(newNetValue);\r\n onClose();\r\n }\r\n const doCalcGrossValue = () => {\r\n let otherVatValue;\r\n if (optionValue === SELECT_VALUE.OTHER)\r\n otherVatValue = Number.parseFloat(otherValue);\r\n\r\n let newGrossValue = calcGrossValue(toFloat(netValue), optionValue, otherVatValue);\r\n setGrossValue(newGrossValue);\r\n onClose();\r\n }\r\n\r\n\r\n const handleOtherChange = (e) => {\r\n let reg = /(?!(\\d|[.,]))\\D/\r\n const value = e.target.value;\r\n let _value = value;\r\n if (_value.length > 0) {\r\n _value = _value.replace(reg, \"\")\r\n _value = _value.replace(/,/g, '.')\r\n _value = _value.replace(/\\.\\./g, '.')\r\n }\r\n let valueSplit = _value.split('.')\r\n if (valueSplit.length > 2) {\r\n valueSplit = valueSplit.slice(0, 2)\r\n }\r\n if (valueSplit.length > 1) {\r\n valueSplit[1] = valueSplit[1].slice(0, 2);\r\n }\r\n valueSplit[0] = valueSplit[0].slice(0, 2)\r\n _value = valueSplit.join('.');\r\n setOtherValue(_value);\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('calc_net'), doCalcNetValue, undefined, notSelected || !grossValue));\r\n buttons.push(createButton(Tr('close'), onClose, 'outlined', false));\r\n buttons.push(createButton(Tr('calc_gross'), doCalcGrossValue, undefined, notSelected || !netValue));\r\n return buttons;\r\n }\r\n\r\n return (\r\n }\r\n >\r\n\r\n \r\n {\r\n setOptionValue(e.target.value);\r\n }}\r\n value={optionValue}\r\n >\r\n {VATItems.map((item, i) => {\r\n const value = String(item.value);\r\n const label = item.label;\r\n\r\n return (\r\n \r\n {label}\r\n {value === SELECT_VALUE.OTHER &&\r\n setOptionValue(SELECT_VALUE.OTHER)}\r\n className={classes.otherTextInput}\r\n InputProps={{\r\n endAdornment:\r\n %\r\n }}\r\n value={otherValue}\r\n onChange={handleOtherChange}\r\n />\r\n\r\n }\r\n\r\n \r\n )\r\n })}\r\n \r\n \r\n\r\n\r\n )\r\n}\r\n\r\nNetGrossCalcPopup.propTypes = {\r\n onClose: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default NetGrossCalcPopup;","import React, {useState} from 'react';\r\nimport WorkableIconCalcButton from \"../../button/WorkableIconCalcButton\";\r\nimport PropTypes from \"prop-types\";\r\nimport NetGrossCalcPopup from \"./NetGrossCalcPopup\";\r\nimport Tr from \"../../../translations/Translations\";\r\n\r\n\r\nconst NetGrossCalc = (\r\n {\r\n disabled,\r\n netValue,\r\n setNetValue,\r\n grossValue,\r\n setGrossValue\r\n }\r\n) => {\r\n const [calcOpen, setCalcOpen] = useState(false);\r\n\r\n const noValues = !netValue && !grossValue;\r\n\r\n return (\r\n <>\r\n setCalcOpen(false)}\r\n disabled={noValues || disabled}\r\n netValue={netValue}\r\n setNetValue={setNetValue}\r\n grossValue={grossValue}\r\n setGrossValue={setGrossValue}\r\n />\r\n setCalcOpen(true)}/>\r\n \r\n );\r\n};\r\n\r\n\r\nNetGrossCalc.propTypes = {\r\n disabled: PropTypes.bool,\r\n tooltip: PropTypes.string\r\n}\r\n\r\nexport default NetGrossCalc;","import React from \"react\";\r\nimport {makeStyles, TableCell, TableRow, Typography} from \"@material-ui/core\";\r\nimport PropTypes from \"prop-types\";\r\nimport Tr from \"translations/Translations\";\r\nimport TextInput from \"components/TextInput\";\r\nimport INPUT_TYPE from \"constants/INPUT_TYPE\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Checkbox from \"components/Checkbox\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport NetGrossCalc from \"components/complex/netGrossCalc/NetGrossCalc\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n cancelColumn: {\r\n textAlign: 'center'\r\n },\r\n cell: {\r\n padding: theme.spacing()\r\n },\r\n valueInput: {\r\n width: 150\r\n },\r\n italic: {\r\n fontStyle: 'italic'\r\n }\r\n\r\n}));\r\n\r\nfunction DemandPlanRealizationRow(\r\n {\r\n demandId,\r\n index,\r\n editable,\r\n realization,\r\n formikProps,\r\n passiveOfferForm,\r\n exPost\r\n }) {\r\n\r\n const classes = useStyles();\r\n const isCancelled = getObjectValue(`${index}.canceled`, formikProps.values, false)\r\n\r\n\r\n return (\r\n {index + 1}.\r\n {realization.dealingName}\r\n \r\n {realization.planItemName}\r\n {realization.planItemNumber}\r\n \r\n \r\n \r\n formikProps.setFieldValue(`${index}._touched`, true)}\r\n />\r\n {\r\n formikProps.setFieldValue(`${index}.realizationValue`, value);\r\n formikProps.setFieldValue(`${index}._touched`, true)\r\n }}\r\n setGrossValue={(value) => {\r\n formikProps.setFieldValue(`${index}.realizationGrossValue`, value);\r\n formikProps.setFieldValue(`${index}._touched`, true)\r\n }}\r\n grossValue={getObjectValue(`${index}.realizationGrossValue`, formikProps.values, \"\")}\r\n\r\n />\r\n formikProps.setFieldValue(`${index}._touched`, true)}\r\n />\r\n \r\n \r\n {(!!passiveOfferForm || !!exPost) &&\r\n \r\n formikProps.setFieldValue(`${index}._touched`, true)}\r\n />\r\n }\r\n )\r\n}\r\n\r\nDemandPlanRealizationRow.propTypes = {\r\n index: PropTypes.number.isRequired,\r\n realization: PropTypes.shape({\r\n realizationId: PropTypes.number.isRequired\r\n }),\r\n editable: PropTypes.bool.isRequired,\r\n passiveOfferForm: PropTypes.bool.isRequired,\r\n exPost: PropTypes.bool.isRequired,\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n};\r\n\r\nexport default DemandPlanRealizationRow;\r\n\r\n","import React from \"react\";\r\nimport {makeStyles, Table, TableBody, TableCell, TableContainer, TableHead, TableRow} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport Tr from 'translations/Translations';\r\nimport PropTypes from \"prop-types\";\r\nimport DemandPlanRealizationRow from \"./DemandPlanRealizationRow\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n tableLayout: 'fixed',\r\n\r\n '& td, th': {\r\n overflow: 'hidden',\r\n }\r\n },\r\n cell: {\r\n padding: theme.spacing(1)\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n cancelColumn: {\r\n width: 100,\r\n padding: '0 !important'\r\n },\r\n partName: {\r\n width: 310\r\n },\r\n valueColumn: {\r\n width: 350\r\n },\r\n}));\r\n\r\nfunction DemandPlanRealizationTable(\r\n {\r\n demandId,\r\n editable,\r\n demandPlanRealizations,\r\n formikProps,\r\n passiveOfferForm,\r\n exPost\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n {Tr(\"column_lp\")}\r\n {Tr(\"part_name\")}\r\n {Tr(\"plan_item_name_number\")}\r\n {Tr(\"plan_item_realization_value\")}\r\n {(!!passiveOfferForm || !!exPost) && {Tr(\"agreement_state_annuled\")}}\r\n \r\n \r\n \r\n {demandPlanRealizations.map((realization, index) =>\r\n \r\n )}\r\n \r\n
\r\n
)\r\n}\r\n\r\nDemandPlanRealizationTable.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n passiveOfferForm: PropTypes.bool.isRequired,\r\n exPost: PropTypes.bool.isRequired,\r\n demandPlanRealizations: PropTypes.array.isRequired\r\n}\r\n\r\nexport default DemandPlanRealizationTable;\r\n\r\n","import React, {useEffect} from \"react\";\r\nimport {connect} from 'react-redux'\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport Loading from \"components/Loading\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport DemandPlanRealizationService from \"services/DemandPlanRealizationService\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport DemandPlanRealizationTable from \"./components/DemandPlanRealizationTable\";\r\nimport Form from \"components/Form\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport Tr from \"translations/Translations\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport SaveFormikValues from \"../../../../../../../components/SaveFormikValues\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n icon: theme.components.icon,\r\n italic: {\r\n fontStyle: 'italic',\r\n },\r\n text: {\r\n marginBottom: theme.spacing(1),\r\n marginTop: theme.spacing(4)\r\n }\r\n}))\r\n\r\nfunction DemandPlanRealizationPanel(\r\n {\r\n match,\r\n demandValidation,\r\n demandHeader,\r\n demandPlanRealizations\r\n }) {\r\n\r\n const classes = useStyle();\r\n const curDemandValidation = DemandValidation.DEMAND_PLAN_REALIZATION;\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === curDemandValidation);\r\n const editable = section ? section.editable : false;\r\n\r\n useStepperStateCloseValidator('mp_4_demand_plan_realization')\r\n\r\n useEffect(() => {\r\n DemandPlanRealizationService.getRealizations(demandId);\r\n return () => {\r\n DemandPlanRealizationService.clearResources();\r\n }\r\n }, [demandId])\r\n\r\n\r\n const onSubmit = (values) => {\r\n\r\n DemandPlanRealizationService.saveRealizations(demandId, values).then();\r\n\r\n }\r\n\r\n const validationSchema = VS.arrayOf(VS.lazy(realization => {\r\n if (realization.canceled)\r\n return VS.any();\r\n\r\n const shape = {\r\n realizationValue: VS.numberPositiveOptional().when('realizationGrossValue', {\r\n is: (realizationGrossValue) => !!realizationGrossValue,\r\n then: VS.numberPositiveNoZero()\r\n }),\r\n realizationGrossValue: VS.numberPositiveOptional().when('realizationValue', {\r\n is: (realizationValue) => !!realizationValue,\r\n then: VS.number().min(VS.ref('realizationValue'), Tr('gross_less'))\r\n })\r\n }\r\n return VS.object(shape, [['realizationValue', 'realizationGrossValue']])\r\n }))\r\n\r\n\r\n if (!demandPlanRealizations || !demandHeader) return \r\n\r\n return (
\r\n \r\n ({...x, _touched: false}))}\r\n validationSchema={validationSchema}\r\n onSubmit={onSubmit}\r\n >\r\n {(formikProps) => (<>\r\n \r\n \r\n )}\r\n \r\n
\r\n )\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n demandValidation: state.resources.demandValidation,\r\n demandPlanRealizations: state.resources[DemandPlanRealizationService.DEMAND_PLAN_REALIZATIONS_RESOURCE_ID]\r\n}), {})(withRouter(DemandPlanRealizationPanel));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {DemandValidation, DemandValidationKeys} from \"constants/DemandValidation\";\r\nimport PreparingAdditionalInfo from \"../../../part1/panels/additionalInfo/PreparingAdditionalInfo\";\r\n\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded &&\r\n \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import {ArchivingPanel, DemandAdditionalInfo, DemandPlanRealizationPanel, FinishDemandPanel, FinishDocumentsPanel, ResultNoticePanel} from \"./panels\";\r\nimport ResultNoticeService from \"services/ResultNoticeService\";\r\nimport FinishDemandService from \"services/FinishDemandService\";\r\nimport ArchivingService from \"services/ArchivingService\";\r\nimport DemandPlanRealizationService from \"services/DemandPlanRealizationService\";\r\nimport DemandAdditionalInfoService from \"services/DemandAdditionalInfoService\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\n\r\nexport default {\r\n mp_4_result_notice: ResultNoticePanel,\r\n mp_4_finish_documents: FinishDocumentsPanel,\r\n mp_4_demand_plan_realization: DemandPlanRealizationPanel,\r\n mp_4_finish_demand: FinishDemandPanel,\r\n mp_4_archiving: ArchivingPanel,\r\n mp_4_finish_additional_info: DemandAdditionalInfo,\r\n}\r\n\r\nexport const panelsValidationKeys = {\r\n mp_4_result_notice: (id) => ResultNoticeService.validate(id),\r\n mp_4_finish_documents: (id) => null,\r\n mp_4_demand_plan_realization: (id) => DemandPlanRealizationService.validate(id),\r\n mp_4_finish_demand: (id) => FinishDemandService.validate(id),\r\n mp_4_archiving: (id) => ArchivingService.validate(id),\r\n mp_4_finish_additional_info: (id) => DemandAdditionalInfoService.validate(id, DemandValidation.FINISH_ADDITIONAL_INFO),\r\n}","import React from 'react'\r\nimport DemandPlanRealizationPanel from \"./DemandPlanRealizationPanel\";\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (expanded && )\r\n}\r\n\r\n\r\nexport default Index;","import reduxStore from 'redux/store'\r\nimport {setResource, setStepperState} from 'redux/actions';\r\nimport {panelsValidationKeys as panelsValidationKeys1} from 'pages/purchaser/MyProcedure/scenes/part1/part1.panels.components'\r\nimport {panelsValidationKeys as panelsValidationKeys3} from 'pages/purchaser/MyProcedure/scenes/part3/part3.panels.components'\r\nimport {panelsValidationKeys as panelsValidationKeys4} from 'pages/purchaser/MyProcedure/scenes/part4/part4.panels.components'\r\nimport {DemandValidationKeys} from \"constants/DemandValidation\";\r\nimport DemandSectionsService from \"services/DemandSectionsService\";\r\n\r\nexport default async (sectionId, objectId, closeSection = true) => {\r\n const panelsValidationKeys = {...panelsValidationKeys1, ...panelsValidationKeys3, ...panelsValidationKeys4};\r\n\r\n const {resources} = reduxStore.getState();\r\n const demandValidation = resources.demandValidation;\r\n if (!demandValidation || !demandValidation.find(x => x.section === sectionId)?.validateAfterSave)\r\n return;\r\n\r\n const sectionIndex = demandValidation.findIndex(x => x.section === sectionId)\r\n const res = await panelsValidationKeys[DemandValidationKeys[sectionId]](objectId);\r\n let data = JSON.parse(JSON.stringify(demandValidation));\r\n data[sectionIndex] = res;\r\n\r\n reduxStore.dispatch(setResource(DemandSectionsService.DEMAND_VALIDATION_RESOURCE_ID, data));\r\n\r\n if (res.status === 'OK' || res.status === 'EMPTY') {\r\n if (closeSection) {\r\n reduxStore.dispatch(setStepperState());\r\n }\r\n }\r\n}","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport ChangeHistory from 'components/popup/changeHistory/ChangeHistory';\r\nimport StartScreen from './StartScreen';\r\nimport DealingsService from 'services/DealingsService';\r\nimport {withRouter} from \"react-router\";\r\nimport PositionAndPartsForm from './PositionAndPartsForm';\r\nimport Loading from 'components/Loading';\r\nimport {connect} from 'react-redux'\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {setOpenForm, setOpenImporter, setStepperState} from 'redux/actions'\r\nimport ImportScreen from \"./ImportScreen\";\r\nimport reduxStore from 'redux/store'\r\nimport DemandService from \"services/DemandService\";\r\nimport validateSection from \"services/helpers/validateSection\";\r\n\r\nconst clear = () => {\r\n DealingsService.clearResources('dealing');\r\n DealingsService.clearResources('dealingsList');\r\n reduxStore.dispatch(setOpenForm(undefined));\r\n reduxStore.dispatch(setOpenImporter(undefined));\r\n}\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n match,\r\n dealingsList,\r\n demandValidation,\r\n setOpenForm,\r\n setOpenImporter,\r\n openForm,\r\n openImporter,\r\n demandHeader\r\n }) {\r\n const [historyOpen, setHistoryOpen] = useState(false);\r\n\r\n const id = match.params.id;\r\n\r\n useEffect(() => {\r\n if (expanded) {\r\n DealingsService.getList(id);\r\n } else {\r\n clear();\r\n }\r\n return clear\r\n }, [expanded, id])\r\n\r\n const isOpenImporter = () => {\r\n return openImporter;\r\n };\r\n\r\n const isOpenForm = () => {\r\n const validationObj = demandValidation.find(x => x.section === DemandValidation.DEALINGS);\r\n if (validationObj === undefined) return openForm;\r\n if (validationObj.status === 'OK') return true;\r\n if(demandHeader && demandHeader.hasPlanItems) return true;\r\n if (dealingsList && dealingsList.dealings && dealingsList.dealings.length > 1) return true;\r\n return openForm;\r\n };\r\n\r\n const saveSuccessCallback = () => {\r\n reduxStore.dispatch(setStepperState());\r\n DemandService.getValidate(id, false)\r\n }\r\n\r\n const saveErrorCallback = () => {\r\n validateSection(DemandValidation.DEALINGS, id, false);\r\n }\r\n\r\n return (\r\n <>\r\n {openForm === null ?\r\n :\r\n (isOpenImporter()) ?\r\n \r\n :\r\n (isOpenForm()) ?\r\n <>\r\n x.section === DemandValidation.DEALINGS) : null}\r\n formId=\"mp_1_dealings\"\r\n saveSuccessCallback={saveSuccessCallback}\r\n saveErrorCallback={saveErrorCallback}\r\n />\r\n setHistoryOpen(false)}\r\n />\r\n :\r\n setOpenForm(true)} onImporterOpen={() => setOpenImporter(true)}/>\r\n }\r\n \r\n )\r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n dealingsList: state.resources.dealingsList,\r\n demandValidation: state.resources.demandValidation,\r\n openForm: state.store.openForm,\r\n openImporter: state.store.openImporter,\r\n demandHeader: state.resources.demandHeader,\r\n}), {\r\n setOpenForm, setOpenImporter\r\n})(withRouter(Index));\r\n","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport TitledComponent from 'components/TitledComponent';\r\nimport DateTimePicker from 'components/DateTimePicker';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t\tmarginTop: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction FormElement({\r\n\tclasses,\r\n\tformikProps,\r\n\tid,\r\n\ttitle,\r\n\trequired,\r\n\tonChange,\r\n}) {\r\n\tlet label = title;\r\n\tif (required) label += '*'\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nFormElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n\tid: PropTypes.string,\r\n\ttitle: PropTypes.string,\r\n\tformikProps: PropTypes.object,\r\n}\r\n\r\nFormElement.defaultProps = {\r\n}\r\n\r\nexport default withStyles(style)(FormElement);","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (value) => ({label: `${value} ${Tr('days')}`, value})\r\n\r\nexport const elements = {\r\n\t30: createItem(30),\r\n\t60: createItem(60),\r\n\t90: createItem(90),\r\n\t120: createItem(120),\r\n\t150: createItem(150),\r\n}\r\n\r\nexport default Object.values(elements)\r\n","import React, {useEffect} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport TitledComponent from 'components/TitledComponent';\r\nimport RadioGroup from 'components/RadioGroup';\r\nimport Tr from 'translations/Translations';\r\nimport Select from 'components/Select';\r\nimport GridBlock from 'components/GridBlock';\r\nimport periodValues from '../constants/period.values'\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport DatePicker from 'components/DatePicker';\r\n\r\nconst style = theme => ({\r\n root: {\r\n marginLeft: theme.spacing(2),\r\n marginTop: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction DateBind(\r\n {\r\n classes,\r\n formikProps,\r\n title,\r\n initialPickDateInsteadOfPeriod\r\n }) {\r\n\r\n const radioId = 'bindWithOfferPeriodOrDate.pickDateInsteadOfPeriod'\r\n const dateId = \"bindWithOfferPeriodOrDate.date\"\r\n\r\n const conditionalValue = getObjectValue(radioId, formikProps.values, '')\r\n\r\n useEffect(() => {\r\n if (conditionalValue === \"true\") formikProps.setFieldTouched(dateId, true)\r\n // eslint-disable-next-line\r\n }, [conditionalValue])\r\n\r\n\r\n const getRadioValues = () => {\r\n const values = [\r\n {label: Tr('not_applicable'), value: \"empty\"},\r\n {label: Tr('date'), value: \"true\"},\r\n ]\r\n if(initialPickDateInsteadOfPeriod === 'false') {\r\n values.push({label: Tr('period'), value: \"false\"})\r\n }\r\n return values;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n conditionalValue === \"empty\" ? \"\"\r\n : (conditionalValue === 'true' ?\r\n :\r\n )\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nDateBind.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(DateBind);","import reduxStore from 'redux/store'\r\nimport {clearResource, setResource, setSaveStatusDialog, setSaveStatusError, setSaveStatusLoading} from 'redux/actions'\r\nimport Endpoints from 'constants/Endpoints';\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport validateSection from './helpers/validateSection'\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport objectExtension from 'libs/objectExtension';\r\n\r\nconst SCHEDULE_RESOURCE_ID = 'schedule';\r\n\r\nconst getList = async (id) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.SCHEDULE(id))\r\n\r\n reduxStore.dispatch(\r\n setResource(SCHEDULE_RESOURCE_ID, res)\r\n )\r\n } catch (error) {\r\n }\r\n}\r\n\r\n\r\nconst _save = async (url, values) => {\r\n const data = _prepareData(values);\r\n\r\n const {resources} = reduxStore.getState()\r\n const {schedule} = resources;\r\n const diff = objectExtension.diff(data, schedule);\r\n if (diff === null) return null;\r\n\r\n try {\r\n return await RestRequestPOST(url, data)\r\n } catch (error) {\r\n throw error;\r\n }\r\n}\r\n\r\nconst _prepareData = (values) => {\r\n const {\r\n offerEndDate,\r\n offerOpenDate,\r\n bindWithOfferPeriodOrDate,\r\n ...other\r\n } = values;\r\n\r\n let isDate = bindWithOfferPeriodOrDate.pickDateInsteadOfPeriod;\r\n\r\n let offer;\r\n if (isDate === \"empty\") offer = null\r\n else if (isDate === \"true\") offer = {date: bindWithOfferPeriodOrDate.date.format()}\r\n else offer = {period: bindWithOfferPeriodOrDate.period}\r\n\r\n const data = {\r\n schedules: [{\r\n offerEndDate: offerEndDate ? offerEndDate.format() : null,\r\n offerOpenDate: offerOpenDate ? offerOpenDate.format() : null,\r\n bindWithOfferPeriodOrDate: offer,\r\n ...other\r\n }]\r\n }\r\n return data;\r\n}\r\n\r\nconst save = async (id, values) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n try {\r\n const res = await _save(Endpoints.SCHEDULE_SAVE(id), values)\r\n if (res === null || res.success) {\r\n await getList(id);\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n await validateSection(DemandValidation.SCHEDULE, id);\r\n const {resources} = reduxStore.getState();\r\n const {demandHeader} = resources;\r\n if (demandHeader && demandHeader.noticeOjsType)\r\n await validateSection(DemandValidation.NOTICE, id);\r\n if (demandHeader && demandHeader.noticeBzpType)\r\n await validateSection(DemandValidation.NATIONAL_NOTICE, id);\r\n\r\n await validateSection(DemandValidation.PUBLICATION, id);\r\n } else {\r\n reduxStore.dispatch(setSaveStatusError());\r\n await validateSection(DemandValidation.SCHEDULE, id, false);\r\n }\r\n return res;\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n}\r\n\r\nconst clearSchedule = async () => {\r\n reduxStore.dispatch(clearResource(SCHEDULE_RESOURCE_ID))\r\n}\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.SCHEDULE_VALIDATE(id));\r\n}\r\n\r\nconst checkForDraft = async (id) => {\r\n return await RestRequestGET(Endpoints.SCHEDULE_AUTOSAVE_CHECK(id));\r\n}\r\n\r\nconst loadDraft = async (id) => {\r\n const res = await RestRequestGET(Endpoints.SCHEDULE_AUTOSAVE(id));\r\n reduxStore.dispatch(setResource(SCHEDULE_RESOURCE_ID, res.result));\r\n return res;\r\n}\r\n\r\nconst saveDraft = async (id, formValues) => {\r\n const data = _prepareData(formValues);\r\n await RestRequestPOST(Endpoints.SCHEDULE_AUTOSAVE(id), data);\r\n}\r\n\r\nconst deleteDraft = async (id) => {\r\n await RestRequestDELETE(Endpoints.SCHEDULE_AUTOSAVE(id));\r\n}\r\n\r\nexport default {\r\n save,\r\n getList,\r\n validate,\r\n clearSchedule,\r\n checkForDraft,\r\n loadDraft,\r\n saveDraft,\r\n deleteDraft,\r\n SCHEDULE_RESOURCE_ID\r\n //auto Save,\r\n //auto SaveCheck,\r\n //auto SaveDelete,\r\n //auto SaveLoad,\r\n //restoreAuto save,\r\n}","import React, {useEffect, useState} from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport FormElement from './FormElement';\r\nimport moment from 'moment';\r\nimport DateBind from './DateBind';\r\nimport periodValues from '../constants/period.values'\r\nimport Loading from 'components/Loading';\r\nimport {connect} from 'react-redux'\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport * as Yup from 'yup';\r\nimport ScheduleService from 'services/ScheduleService';\r\nimport {withRouter} from \"react-router\";\r\nimport SaveFormikValues from 'components/SaveFormikValues';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport VS from \"constants/ValidationShema\";\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport {setFormDraftLoaded} from \"redux/actions\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\n\r\nfunction Deadlines(\r\n {\r\n scheduleList,\r\n stepperState,\r\n demandValidation,\r\n match,\r\n setFormDraftLoaded,\r\n demandHeader\r\n }) {\r\n const id = match.params.id;\r\n const section = demandValidation.find(x => x.section === DemandValidation.SCHEDULE);\r\n const FORM_ID = 'mp_1_schedule';\r\n const [draftConfirm, setDraftConfirm] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active;\r\n useStepperStateCloseValidator(FORM_ID, undefined,\r\n autoSaveFormDraftActive ? () => ScheduleService.deleteDraft(id) : undefined,\r\n autoSaveFormDraftActive ? () => saveFormDraft(id, ScheduleService.saveDraft, FORM_ID) : undefined);\r\n\r\n useEffect(() => {\r\n ScheduleService.getList(id).then(() => {\r\n if (autoSaveFormDraftActive)\r\n ScheduleService.checkForDraft(id).then(res => setDraftConfirm(res.result))\r\n });\r\n\r\n return () => ScheduleService.clearSchedule()\r\n }, [id, autoSaveFormDraftActive])\r\n\r\n const handleSubmit = (values, formikProps) => {\r\n ScheduleService.save(id, values)\r\n .then((result) => {\r\n if (result && !result.success) {\r\n const errors = result.errors;\r\n let errorObj = {}\r\n Object.keys(errors).forEach((errorId) => {\r\n const erId = errorId.split('.')[1];\r\n errorObj[erId] = errors[errorId];\r\n })\r\n formikProps.setErrors(errorObj)\r\n }\r\n })\r\n }\r\n\r\n const getField = (id, defaultValue = '') => getObjectValue(id, scheduleList.schedules.length > 0 ? scheduleList.schedules[0] : {}, defaultValue)\r\n\r\n const validationSchema = Yup.lazy((value) => {\r\n const schema = {\r\n offerEndDate: VS.dateTimeMin(new Date(), Tr('v_time_can_not_be_past')),\r\n offerOpenDate: VS.dateTimeValid()\r\n .when('offerEndDate', (offerEndDate, schema) => {\r\n return schema.test('EndDateLessOpenDate', Tr(\"EndDateLessOpenDate\"), (offerOpenDate) => {\r\n if (offerEndDate && offerOpenDate) {\r\n return !offerOpenDate.isBefore(offerEndDate);\r\n }\r\n return false;\r\n })\r\n })\r\n }\r\n\r\n let offerOpenDateClone = moment.isMoment(value.offerOpenDate) ? (value.offerOpenDate.isValid() ? value.offerOpenDate.clone().startOf(\"day\") : moment()) : moment();\r\n offerOpenDateClone = offerOpenDateClone.isBefore(moment().add(1, 'day')) ? moment().add(1, 'day') : offerOpenDateClone;\r\n\r\n if (value.bindWithOfferPeriodOrDate.pickDateInsteadOfPeriod === 'true') {\r\n schema['bindWithOfferPeriodOrDate'] = Yup.object().shape({\r\n date: VS.dateMin(offerOpenDateClone, Tr('periodDateLessThanOpenDate'))\r\n })\r\n\r\n }\r\n\r\n return Yup.object().shape(schema);\r\n })\r\n\r\n const getPickDateInsteadOfPeriod = () => {\r\n const date = getField('bindWithOfferPeriodOrDate.date', null);\r\n if (date === null) {\r\n const periodLen = getField('bindWithOfferPeriodOrDate.period.length', null);\r\n if (periodLen === null) return 'empty'\r\n return 'false'\r\n }\r\n return 'true'\r\n }\r\n const handleEndDate = (formikProps, value) => {\r\n formikProps.setFieldValue('offerOpenDate', value);\r\n formikProps.setFieldTouched('offerOpenDate', true);\r\n formikProps.validateField('offerOpenDate');\r\n }\r\n const getInitValues = () => ({\r\n _editable: section ? section.editable : true,\r\n stageNumber: getField('stageNumber'),\r\n stageName: getField('stageName'),\r\n questionEndDate: getField('questionEndDate', null),\r\n\r\n identity: getField('identity'),\r\n offerEndDate: moment(getField('offerEndDate', new Date())),\r\n offerOpenDate: moment(getField('offerOpenDate', new Date())),\r\n bindWithOfferPeriodOrDate: {\r\n date: moment(getField('bindWithOfferPeriodOrDate.date', new Date())),\r\n period: {\r\n length: getField('bindWithOfferPeriodOrDate.period.length', periodValues[0].value),\r\n name: getField('bindWithOfferPeriodOrDate.period.name', 'day'),\r\n },\r\n pickDateInsteadOfPeriod: getPickDateInsteadOfPeriod(),\r\n }\r\n })\r\n\r\n const loadScheduleDraft = () => {\r\n setDraftConfirm(false);\r\n setWorking(true);\r\n ScheduleService.loadDraft(id).then(res => setFormDraftLoaded(FORM_ID, res.success));\r\n setWorking(false);\r\n }\r\n\r\n if (!scheduleList || working) {\r\n return \r\n }\r\n\r\n return (\r\n
\r\n {\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(id);\r\n }\r\n }}\r\n >\r\n {(formikProps) => (\r\n <>\r\n \r\n {autoSaveFormDraftActive &&\r\n {\r\n ScheduleService.saveDraft(id, formValues)\r\n }}\r\n />\r\n }\r\n \r\n \r\n {Tr('offers')}\r\n \r\n handleEndDate(formikProps, value)}\r\n required\r\n />\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n
\r\n )\r\n}\r\n\r\nDeadlines.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nDeadlines.defaultProps = {}\r\n\r\nexport default connect((state) => ({\r\n scheduleList: state.resources.schedule,\r\n stepperState: state.stepper.state,\r\n demandValidation: state.resources.demandValidation,\r\n demandHeader: state.resources.demandHeader\r\n}), {setFormDraftLoaded})(withRouter(Deadlines));\r\n\r\n","import React from 'react'\r\nimport DeadlinesEdit from './deadlinesEdit/DeadlinesEdit';\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (\r\n expanded && \r\n )\r\n}\r\n\r\nexport default Index;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {connect} from 'react-redux'\r\nimport CommissionService from 'services/CommissionService';\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport CommissionForm from \"components/complex/commissionForm/CommissionForm\";\r\nimport {simpleConfirm} from \"libs/ConfirmNotification\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport {setFormDraftLoaded} from \"redux/actions\";\r\nimport Loading from 'components/Loading';\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\n\r\nfunction DemandCommissionForm(\r\n {\r\n classes,\r\n stepperState,\r\n match,\r\n commissionUserList,\r\n userListAvailable,\r\n establishmentDate,\r\n demandValidation,\r\n setFormDraftLoaded,\r\n demandHeader\r\n }) {\r\n const section = demandValidation.find(x => x.section === DemandValidation.COMMISSION);\r\n const FORM_ID = 'mp_1_commission'\r\n const demandId = match.params.id;\r\n const [draftConfirm, setDraftConfirm] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active;\r\n useStepperStateCloseValidator(FORM_ID, undefined,\r\n autoSaveFormDraftActive ? () => CommissionService.deleteDraft(demandId) : undefined,\r\n autoSaveFormDraftActive ? () => saveFormDraft(demandId, CommissionService.saveDraft, FORM_ID) : undefined);\r\n\r\n useEffect(() => {\r\n CommissionService.getUsers(demandId).then(() => {\r\n if (autoSaveFormDraftActive)\r\n CommissionService.checkForDraft(demandId).then(res => setDraftConfirm(res.result));\r\n });\r\n CommissionService.getAvailableUsers(demandId);\r\n\r\n return () => {\r\n CommissionService.clearResources(CommissionService.COMMISSION_USER_LIST_RESOURCE_ID);\r\n CommissionService.clearResources(CommissionService.COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID);\r\n CommissionService.clearResources(CommissionService.COMMISSION_ESTABLISHMENT_RESOURCE_ID);\r\n }\r\n }, [demandId, autoSaveFormDraftActive])\r\n\r\n\r\n const markHistorical = (memnerId) => {\r\n simpleConfirm(\"archive_commission_member_info\", () => CommissionService.markHistorical(demandId, memnerId))\r\n }\r\n\r\n const handleSubmit = (values) => {\r\n CommissionService.saveUserList(demandId, values)\r\n }\r\n\r\n const doLoadHistory = async () => {\r\n return await CommissionService.getHistory(demandId);\r\n }\r\n\r\n const loadCommissionDraft = () => {\r\n setDraftConfirm(false);\r\n setWorking(true);\r\n CommissionService.loadDraft(demandId).then(res => setFormDraftLoaded(FORM_ID, res.success));\r\n setWorking(false);\r\n }\r\n\r\n if (working) return \r\n else return (\r\n <>\r\n {\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(demandId);\r\n }\r\n }}\r\n editable={section ? section.editable : true}\r\n handleSubmit={handleSubmit}\r\n formId={FORM_ID}\r\n demandId={demandId}\r\n doLoadHistory={doLoadHistory}\r\n markHistorical={markHistorical}\r\n saveDraftFunc={CommissionService.saveDraft}\r\n autoSaveFormDraftActive={autoSaveFormDraftActive}\r\n />\r\n setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n \r\n )\r\n}\r\n\r\nDemandCommissionForm.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n stepperState: state.stepper.state,\r\n commissionUserList: state.resources[CommissionService.COMMISSION_USER_LIST_RESOURCE_ID],\r\n userListAvailable: state.resources[CommissionService.COMMISSION_USER_LIST_AVAILABLE_RESOURCE_ID],\r\n establishmentDate: state.resources[CommissionService.COMMISSION_ESTABLISHMENT_RESOURCE_ID],\r\n demandValidation: state.resources.demandValidation,\r\n demandHeader: state.resources.demandHeader\r\n}), {setFormDraftLoaded})(withRouter(DemandCommissionForm));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport DemandCommissionForm from './DemandCommissionForm';\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Index;","import Tr from 'translations/Translations';\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst createItem = (titleKey, descriptionKey, id, elements = [], type = 'deafult') => ({\r\n title: Tr(titleKey),\r\n description: Tr(descriptionKey),\r\n id,\r\n elements,\r\n type\r\n})\r\n\r\nconst createElement = (titleKey, descriptionKey, id, type = 'deafult', checked) => ({\r\n title: Tr(titleKey),\r\n description: Tr(descriptionKey),\r\n id,\r\n type,\r\n checked,\r\n})\r\n\r\nconst elements = {\r\n e1: createItem(\r\n 'jedz_ex_a_t',\r\n 'jedz_ex_a_d',\r\n 'e1',\r\n [\r\n createElement('jedz_ex_a_1_t', 'jedz_ex_a_1_d', 'exclusionA1', \"disabled\", true),\r\n createElement('jedz_ex_a_2_t', 'jedz_ex_a_2_d', 'exclusionA2', \"disabled\", true\r\n ),\r\n createElement('jedz_ex_a_3_t', 'jedz_ex_a_3_d', 'exclusionA3', \"disabled\", true),\r\n createElement('jedz_ex_a_4_t', 'jedz_ex_a_4_d', 'exclusionA4', \"disabled\", true),\r\n createElement('jedz_ex_a_5_t', 'jedz_ex_a_5_d', 'exclusionA5', \"disabled\", true),\r\n createElement('jedz_ex_a_6_t', 'jedz_ex_a_6_d', 'exclusionA6', \"disabled\", true),\r\n ],\r\n \"disabled\"\r\n ),\r\n e2: createItem(\r\n 'jedz_ex_b_t',\r\n 'jedz_ex_b_d',\r\n 'e2',\r\n [\r\n createElement('jedz_ex_b_1_t', 'jedz_ex_b_1_d', \"exclusionB1\", \"disabled\", true),\r\n createElement('jedz_ex_b_2_t', 'jedz_ex_b_2_d', \"exclusionB2\", \"disabled\", true),\r\n ],\r\n \"disabled\"),\r\n e3: createItem(\r\n 'jedz_ex_c_t',\r\n 'jedz_ex_c_d',\r\n 'e3',\r\n [\r\n createElement('jedz_ex_c_1_t', 'jedz_ex_c_1_d', 'exclusionC1'),\r\n createElement('jedz_ex_c_2_t', 'jedz_ex_c_2_d', 'exclusionC2'),\r\n createElement('jedz_ex_c_3_t', 'jedz_ex_c_3_d', 'exclusionC3'),\r\n createElement('jedz_ex_c_4_t', 'jedz_ex_c_4_d', 'exclusionC4'),\r\n createElement('jedz_ex_c_5_t', 'jedz_ex_c_5_d', 'exclusionC5'),\r\n createElement('jedz_ex_c_6_t', 'jedz_ex_c_6_d', 'exclusionC6'),\r\n createElement('jedz_ex_c_7_t', 'jedz_ex_c_7_d', 'exclusionC7'),\r\n createElement('jedz_ex_c_8_t', 'jedz_ex_c_8_d', 'exclusionC8'),\r\n createElement('jedz_ex_c_9_t', 'jedz_ex_c_9_d', 'exclusionC9'),\r\n createElement('jedz_ex_c_10_t', 'jedz_ex_c_10_d', 'exclusionC10'),\r\n createElement('jedz_ex_c_11_t', 'jedz_ex_c_11_d', 'exclusionC11'),\r\n createElement('jedz_ex_c_12_t', 'jedz_ex_c_12_d', 'exclusionC12'),\r\n createElement('jedz_ex_c_13_t', 'jedz_ex_c_13_d', 'exclusionC13'),\r\n createElement('jedz_ex_c_14_t', 'jedz_ex_c_14_d', 'exclusionC14'),\r\n createElement('jedz_ex_c_15_t', 'jedz_ex_c_15_d', 'exclusionC15'),\r\n ]),\r\n e4: createItem(\r\n 'jedz_ex_d_t',\r\n 'jedz_ex_d_d',\r\n 'e4',\r\n [\r\n createElement('jedz_ex_d_1_t', 'jedz_ex_d_1_d', 'exclusionD1'),\r\n ]\r\n )\r\n}\r\nexport default Object.values(elements);\r\n\r\nexport const getInitValues = (sectionId, espdList, idPrefix) => {\r\n\r\n const item = elements[sectionId];\r\n\r\n const e = item.elements.reduce((prev, curr) => {\r\n return {\r\n ...prev,\r\n [curr.id]: getObjectValue(`${idPrefix}.${curr.id}`, espdList),\r\n }\r\n }, {})\r\n\r\n return e;\r\n}\r\n\r\n\r\n","import Tr from 'translations/Translations';\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst createItem = (titleKey, descriptionKey, id, elements = [], type = 'deafult') => ({\r\n title: Tr(titleKey),\r\n description: Tr(descriptionKey),\r\n id,\r\n elements,\r\n type\r\n})\r\n\r\nconst createElement = (titleKey, descriptionKey, id, type = 'deafult') => ({\r\n title: Tr(titleKey),\r\n description: Tr(descriptionKey),\r\n id,\r\n type,\r\n})\r\n\r\nconst elements = {\r\n s1: createItem('jedz_se_y_a_t', 'jedz_se_y_a_d', 's1', [\r\n createElement('jedz_se_y_a_1_t', 'jedz_se_y_a_1_d', 'selectionA1'),\r\n createElement('jedz_se_y_a_2_t', 'jedz_se_y_a_2_d', 'selectionA2'),\r\n createElement('jedz_se_y_a_3_t', 'jedz_se_y_a_3_d', 'selectionA3'),\r\n createElement('jedz_se_y_a_4_t', 'jedz_se_y_a_4_d', 'selectionA4'),\r\n ]),\r\n s2: createItem('jedz_se_y_b_t', 'jedz_se_y_b_d', 's2', [\r\n createElement('jedz_se_y_b_1_t', 'jedz_se_y_b_1_d', 'selectionB1'),\r\n createElement('jedz_se_y_b_2_t', 'jedz_se_y_b_2_d', 'selectionB2'),\r\n createElement('jedz_se_y_b_3_t', 'jedz_se_y_b_3_d', 'selectionB3'),\r\n createElement('jedz_se_y_b_4_t', 'jedz_se_y_b_4_d', 'selectionB4'),\r\n createElement('jedz_se_y_b_5_t', 'jedz_se_y_b_5_d', 'selectionB5'),\r\n createElement('jedz_se_y_b_6_t', 'jedz_se_y_b_6_d', 'selectionB6'),\r\n createElement('jedz_se_y_b_7_t', 'jedz_se_y_b_7_d', 'selectionB7'),\r\n createElement('jedz_se_y_b_8_t', 'jedz_se_y_b_8_d', 'selectionB8'),\r\n ]),\r\n s3: createItem('jedz_se_y_c_t', 'jedz_se_y_c_d', 's3', [\r\n createElement('jedz_se_y_c_1_t', 'jedz_se_y_c_1_d', 'selectionC1'),\r\n createElement('jedz_se_y_c_2_t', 'jedz_se_y_c_2_d', 'selectionC2'),\r\n createElement('jedz_se_y_c_3_t', 'jedz_se_y_c_3_d', 'selectionC3'),\r\n createElement('jedz_se_y_c_4_t', 'jedz_se_y_c_4_d', 'selectionC4'),\r\n createElement('jedz_se_y_c_5_t', 'jedz_se_y_c_5_d', 'selectionC5'),\r\n createElement('jedz_se_y_c_6_t', 'jedz_se_y_c_6_d', 'selectionC6'),\r\n createElement('jedz_se_y_c_7_t', 'jedz_se_y_c_7_d', 'selectionC7'),\r\n createElement('jedz_se_y_c_8_t', 'jedz_se_y_c_8_d', 'selectionC8'),\r\n createElement('jedz_se_y_c_9_t', 'jedz_se_y_c_9_d', 'selectionC9'),\r\n createElement('jedz_se_y_c_10_t', 'jedz_se_y_c_10_d', 'selectionC10'),\r\n createElement('jedz_se_y_c_11_t', 'jedz_se_y_c_11_d', 'selectionC11'),\r\n createElement('jedz_se_y_c_12_t', 'jedz_se_y_c_12_d', 'selectionC12'),\r\n createElement('jedz_se_y_c_13_t', 'jedz_se_y_c_13_d', 'selectionC13'),\r\n createElement('jedz_se_y_c_14_t', 'jedz_se_y_c_14_d', 'selectionC14'),\r\n createElement('jedz_se_y_c_15_t', 'jedz_se_y_c_15_d', 'selectionC15'),\r\n createElement('jedz_se_y_c_16_t', 'jedz_se_y_c_16_d', 'selectionC16'),\r\n createElement('jedz_se_y_c_17_t', 'jedz_se_y_c_17_d', 'selectionC17'),\r\n createElement('jedz_se_y_c_18_t', 'jedz_se_y_c_18_d', 'selectionC18'),\r\n ]),\r\n s4: createItem('jedz_se_y_d_t', 'jedz_se_y_d_d', 's4', [\r\n createElement('jedz_se_y_d_1_t', 'jedz_se_y_d_1_d', 'selectionD1'),\r\n createElement('jedz_se_y_d_2_t', 'jedz_se_y_d_2_d', 'selectionD2'),\r\n ]),\r\n}\r\n\r\nconst elements2 = {\r\n n1: createItem('jedz_se_n_a_t', 'jedz_se_n_a_d', 'n1',\r\n [\r\n createElement('jedz_se_n_1_t', 'jedz_se_n_1_d', '1', 'disabled')],\r\n 'disabled'),\r\n}\r\n\r\nexport default {\r\n true: Object.values(elements),\r\n false: Object.values(elements2),\r\n};\r\n\r\nexport const getInitValues = (sectionId, espdList, idPrefix) => {\r\n const item = elements[sectionId]\r\n return item.elements.reduce((prev, curr) => {\r\n return {\r\n ...prev,\r\n [curr.id]: getObjectValue(`${idPrefix}.${curr.id}`, espdList),\r\n }\r\n }, {})\r\n}\r\n\r\n\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestBLOB, RestRequestDELETE, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource, setSaveStatusDialog, setSaveStatusLoading} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport validateSection from './helpers/validateSection';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\n\r\nconst ESPD_LIST_RESOURCE_KEY = 'espdList'\r\n\r\nconst getList = async (id, separateForEachDealing) => {\r\n\r\n separateForEachDealing = separateForEachDealing === undefined ? undefined : separateForEachDealing === 'true' || separateForEachDealing === true;\r\n const params = {\r\n separateForEachDealing\r\n }\r\n\r\n try {\r\n const espdList = await RestRequestGET(Endpoints.ESPD(id), {params});\r\n espdList.separateForEachDealing = String(espdList.separateForEachDealing);\r\n reduxStore.dispatch(setResource(ESPD_LIST_RESOURCE_KEY, espdList));\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst _formatSingleEspd = (espd) => {\r\n\r\n const {\r\n e1, e2, e3, e4,\r\n s1, s2, s3, s4,\r\n n1,\r\n qualifications,\r\n _editable,\r\n ...other\r\n } = espd;\r\n\r\n let data = {\r\n ...e1, ...e2, ...e3, ...e4,\r\n ...s1, ...s2, ...s3, ...s4,\r\n selection: qualifications,\r\n declaration: qualifications === \"no\" ? true : false,\r\n ...other\r\n };\r\n\r\n return data;\r\n}\r\n\r\nconst _save = async (url, values, force = false) => {\r\n const data = _formatData(values);\r\n\r\n try {\r\n await RestRequestPOST(url, data)\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst _formatData = (values) => {\r\n const {espd, separateForEachDealing, espds} = values;\r\n const separate = separateForEachDealing === 'true' || separateForEachDealing === true;\r\n const data = {separateForEachDealing: separate, espds: null, espd: null};\r\n\r\n if (separate) {\r\n data.espds = [];\r\n for (let i = 0; i < espds.length; i++)\r\n data.espds.push(_formatSingleEspd(espds[i]));\r\n } else {\r\n data.espd = _formatSingleEspd(espd);\r\n }\r\n return data;\r\n}\r\n\r\nconst save = async (id, values) => {\r\n reduxStore.dispatch(setSaveStatusLoading())\r\n try {\r\n const res = await _save(Endpoints.ESPD_SAVE(id), values, true)\r\n reduxStore.dispatch(setSaveStatusDialog())\r\n if (res !== null) {\r\n await validateSection(DemandValidation.ESPD, id);\r\n }\r\n } catch (error) {\r\n console.error(error)\r\n }\r\n}\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.ESPD_VALIDATE(id));\r\n}\r\n\r\nconst checkForDraft = async (id) => {\r\n return await RestRequestGET(Endpoints.ESPD_AUTOSAVE_CHECK(id));\r\n}\r\n\r\nconst loadDraft = async (id) => {\r\n const res = await RestRequestGET(Endpoints.ESPD_AUTOSAVE(id));\r\n res.result.separateForEachDealing = String(res.result.separateForEachDealing);\r\n reduxStore.dispatch(setResource(ESPD_LIST_RESOURCE_KEY, res.result));\r\n return res;\r\n}\r\n\r\nconst saveDraft = async (id, formValues) => {\r\n const data = _formatData(formValues);\r\n await RestRequestPOST(Endpoints.ESPD_AUTOSAVE(id), data);\r\n}\r\n\r\nconst deleteDraft = async (id) => {\r\n await RestRequestDELETE(Endpoints.ESPD_AUTOSAVE(id));\r\n}\r\n\r\nexport const clearEspdList = () => {\r\n reduxStore.dispatch(clearResource(ESPD_LIST_RESOURCE_KEY));\r\n}\r\n\r\nconst exportPDF = async (demandId, dealingId) => {\r\n if (dealingId) {\r\n return RestRequestBLOB(Endpoints.ESPD_PRINT_FOR_DEALING(demandId, dealingId));\r\n } else {\r\n return RestRequestBLOB(Endpoints.ESPD_PRINT_FOR_DEMAND(demandId));\r\n }\r\n}\r\nconst exportXML = async (demandId, dealingId) => {\r\n if (dealingId) {\r\n return RestRequestBLOB(Endpoints.ESPD_EXPORT_FOR_DEALING(demandId, dealingId));\r\n } else {\r\n return RestRequestBLOB(Endpoints.ESPD_EXPORT_FOR_DEMAND(demandId));\r\n }\r\n}\r\n\r\nexport default {\r\n save,\r\n validate,\r\n getList,\r\n checkForDraft,\r\n loadDraft,\r\n saveDraft,\r\n deleteDraft,\r\n clearEspdList,\r\n exportPDF,\r\n exportXML,\r\n ESPD_LIST_RESOURCE_KEY\r\n}","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value=Tr(trKey)) => ({\r\n\tlabel: Tr(trKey),\r\n\tvalue,\r\n})\r\n\r\nexport default [\r\n\tcreateItem('procedure_type_s_1', '1'),\r\n\tcreateItem('procedure_type_s_2', '2'),\r\n\tcreateItem('procedure_type_s_3', '3'),\r\n\tcreateItem('procedure_type_s_4', '4'),\r\n\tcreateItem('procedure_type_s_5', '5'),\r\n]\r\n\r\n\r\n\r\n\r\n\r\n","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (key) => ({\r\n value: key,\r\n label: Tr('espd_buyer_type_' + key),\r\n});\r\n\r\nexport default [\r\n createItem('CLASSIC'),\r\n createItem('SECTOR')\r\n]","import React from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Title from 'components/Title';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport TitledComponent from 'components/TitledComponent';\r\nimport Select from 'components/Select';\r\nimport selectItems from './constants/procedureType.values'\r\nimport buyerTypes from './constants/buyerType.values'\r\nimport TextInput from 'components/TextInput';\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport HelpComponent from \"components/HelpComponent\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*:not(:first-child)': {\r\n marginTop: theme.spacing(2),\r\n }\r\n }\r\n})\r\n\r\nfunction ProcedureSection({\r\n classes,\r\n formikProps,\r\n idPrefix,\r\n onBuyerTypeChanged\r\n }) {\r\n\r\n const show = (tr, text) => {\r\n return \r\n \r\n {text}\r\n \r\n \r\n }\r\n\r\n return (\r\n \r\n \r\n {Tr('procedure')}\r\n \r\n {Tr('tooltip_espd_buyer_type_1')}
{Tr('tooltip_espd_buyer_type_2')}}>\r\n \r\n \r\n \r\n
\r\n {show('title', getObjectValue(`${idPrefix}.name`, formikProps.values))}\r\n {show('description', getObjectValue(`${idPrefix}.description`, formikProps.values))}\r\n {show('reference_number', getObjectValue(`${idPrefix}.number`, formikProps.values))}\r\n {show('official_name', getObjectValue(`${idPrefix}.orgName`, formikProps.values))}\r\n {show('state', getObjectValue(`${idPrefix}.orgCountry`, formikProps.values))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nProcedureSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ProcedureSection);\r\n","import React, { useState } from 'react'\r\nimport { withStyles, Typography, Paper, Collapse, Checkbox, Tooltip } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport clsx from 'clsx';\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowDown'\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\ttitle: {\r\n\t\tbackgroundColor: theme.palette.background.greyBackground,\r\n\t\tborder: `1px solid ${theme.palette.common.white}`,\r\n\t\tcursor: 'pointer',\r\n\t\t'&>*:nth-child(2)': {\r\n\t\t\tflexGrow: 1,\r\n\t\t}\r\n\t},\r\n\tpadding: {\r\n\t\tpadding: theme.spacing(1) / 2,\r\n\t},\r\n\trotate: {\r\n\t\ttransform: 'rotate(180deg)'\r\n\t},\r\n\tarrow: {\r\n\t\tpadding: theme.spacing(1),\r\n\t},\r\n\tnoCheckbox: {\r\n\t\tmarginLeft: theme.spacing(2)\r\n\t}\r\n})\r\n\r\nfunction Section({\r\n\tclasses,\r\n\tid,\r\n\tformikProps,\r\n\ttitle,\r\n\tdescription,\r\n\tchildren,\r\n\tdisabled,\r\n\tchecked\r\n}) {\r\n\tconst [open, setOpen] = useState(false)\r\n\tconst editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n\tconst isChecked = () => {\r\n\t\tconst elements = getObjectValue(id, formikProps.values);\r\n\t\tfor (let key in elements) {\r\n\t\t\tif (elements[key]) return true;\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\tconst handleChange = () => {\r\n\r\n\t\tconst elements = getObjectValue(id, formikProps.values);\r\n\t\tif (isChecked()) {\r\n\t\t\tfor (let key in elements) {\r\n\t\t\t\tif (elements[key]) formikProps.setFieldValue(`${id}.${key}`, false);\r\n\t\t\t}\r\n\t\t\treturn\r\n\t\t} else {\r\n\t\t\tfor (let key in elements) {\r\n\t\t\t\tformikProps.setFieldValue(`${id}.${key}`, true)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tconst checkedValue = checked ? checked : isChecked()\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{id &&\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t setOpen(!open)}\r\n\t\t\t\t\t\tclassName={clsx({\r\n\t\t\t\t\t\t\t[classes.noCheckbox]: !Boolean(id)\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t setOpen(!open)}\r\n\t\t\t\t\t\t\tclassName={clsx(classes.arrow, {\r\n\t\t\t\t\t\t\t\t[classes.rotate]: open\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{description}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{children}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nSection.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(Section);","import React, { useEffect } from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Checkbox from 'components/Checkbox';\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport { connect } from 'react-redux'\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\tmarginBottom: theme.spacing(2),\r\n\t},\r\n\ttitle: {\r\n\t\tfontWeight: theme.typography.fontWeightBold\r\n\t},\r\n\tdescription: {\r\n\t\tmarginLeft: theme.spacing(2),\r\n\t\t'&:not(:first-child)': {\r\n\t\t\tpaddingTop: theme.spacing(1),\r\n\t\t}\r\n\t}\r\n})\r\n\r\nfunction Element({\r\n\tclasses,\r\n\ttitle,\r\n\tdescription,\r\n\tid,\r\n\tformikProps,\r\n\tdisabled,\r\n\tchecked,\r\n\tespdList\r\n}) {\r\n\tconst descArr = description.split('\\n')\r\n\tconst editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n\t// useEffect(() => {\r\n\t// \tif (checked) formikProps.setFieldValue(id, checked)\r\n\t// \t// eslint-disable-next-line\r\n\t// }, [checked])\r\n\r\n\r\n\r\n\tuseEffect(() => {\r\n\t\tif (espdList) {\r\n\t\t\tlet newId = id.split(\".\")[1]\r\n\t\t\tlet isChecked = getObjectValue(newId, espdList)\r\n\t\t\tif (isChecked) formikProps.setFieldValue(id, isChecked)\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [])\r\n\r\n\r\n\tconst titleComponent = (\r\n\t\t\r\n\t\t\t{title}\r\n\t\t)\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{Boolean(id) ?\r\n\t\t\t\t\t : titleComponent\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t<>\r\n\t\t\t\t{descArr.map((text, i) => {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{text}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)\r\n\t\t\t\t})}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nElement.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\n\r\nexport default connect((state) => ({\r\n\tespdList: state.resources.espdList\r\n}), {\r\n\t})(withStyles(style)(Element));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Element from './Element';\r\n\r\nfunction AllElements(\r\n {\r\n id,\r\n formikProps,\r\n elements,\r\n disabled\r\n }) {\r\n return elements.map((item, i) => {\r\n const elId = Boolean(item.id) && Boolean(id) ? `${id}.${item.id}` : undefined;\r\n return (\r\n \r\n )\r\n })\r\n}\r\n\r\nAllElements.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default AllElements;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Section from './Section';\r\nimport AllElements from './AllElements';\r\n\r\nfunction AllSections(\r\n {\r\n values,\r\n formikProps,\r\n idPrefix,\r\n sectorBuyer\r\n }) {\r\n return values.map(\r\n ({\r\n title,\r\n description,\r\n id,\r\n type,\r\n elements,\r\n }, i) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })\r\n}\r\n\r\nAllSections.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default AllSections;","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Title from 'components/Title';\r\nimport exclusionValues from './constants/exclusion.values'\r\nimport AllSections from './components/AllSections';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\tmarginTop: theme.spacing(2)\r\n\t\t}\r\n\t}\r\n})\r\n\r\nfunction ExclusionSection({\r\n\tclasses,\r\n\tformikProps,\r\n\tidPrefix,\r\n\tsectorBuyer\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{Tr('exclusion_ground')}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nExclusionSection.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ExclusionSection);","import Tr from 'translations/Translations';\r\n\r\nconst createItem = (trKey, value=Tr(trKey)) => ({\r\n\tlabel: Tr(trKey),\r\n\tvalue,\r\n})\r\n\r\nexport default [\r\n\tcreateItem('yes', 'yes'),\r\n\tcreateItem('no', 'no'),\r\n]\r\n\r\n","import React from 'react'\r\nimport { withStyles, Typography } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Title from 'components/Title';\r\nimport AllSections from './components/AllSections';\r\nimport Tr from 'translations/Translations';\r\nimport elements from './constants/selection.values'\r\nimport RadioGroup from 'components/RadioGroup';\r\nimport EspdBooleanItems from 'constants/EspdBooleanItems';\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\t\t'&>*': {\r\n\t\t\tmarginTop: theme.spacing(2)\r\n\t\t}\r\n\t}\r\n})\r\n\r\nfunction SelectionSection({\r\n\tclasses,\r\n\tformikProps,\r\n\tidPrefix\r\n}) {\r\n\tconst variant = getObjectValue(`${idPrefix}.qualifications`, formikProps.values)\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{Tr('qualifications')}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{Tr('jedz_se')}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nSelectionSection.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(SelectionSection);","import React from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Button from \"components/Button\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '& > *': {\r\n marginLeft: theme.spacing(1),\r\n },\r\n whiteSpace: 'nowrap',\r\n }\r\n})\r\n\r\nfunction ExportJedzButtons(\r\n {\r\n classes,\r\n dealingId,\r\n demandId,\r\n setConfirmPopupData,\r\n }) {\r\n\r\n const exportPdfClick = () => {\r\n setConfirmPopupData({open: true, dealingId, demandId, type: 'pdf'})\r\n };\r\n\r\n const exportXmlClick = () => {\r\n setConfirmPopupData({open: true, dealingId, demandId, type: 'xml'})\r\n };\r\n\r\n return (
\r\n \r\n pdf\r\n \r\n \r\n xml\r\n \r\n\r\n
)\r\n}\r\n\r\nExportJedzButtons.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(ExportJedzButtons);","import React, {useState} from 'react'\r\nimport {Box, Divider, Paper, Tooltip, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport clsx from 'clsx';\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowDown'\r\nimport Tr from 'translations/Translations';\r\nimport ExportJedzButtons from \"./ExportJedzButtons\";\r\nimport WarningIcon from \"@material-ui/icons/Warning\";\r\nimport getObjectValue from \"libs/getObjectValue\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*:nth-child(1)': {\r\n flexGrow: 1,\r\n }\r\n },\r\n cursorPointer: {\r\n cursor: 'pointer'\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing(2),\r\n },\r\n buttonRow: {\r\n '& > *': {\r\n marginLeft: theme.spacing(1),\r\n },\r\n whiteSpace: 'nowrap',\r\n },\r\n title: {\r\n padding: '10px 0'\r\n },\r\n padding: {\r\n padding: theme.spacing(4)\r\n },\r\n rotate: {\r\n transform: 'rotate(180deg)'\r\n },\r\n arrow: {\r\n padding: theme.spacing(1),\r\n }\r\n})\r\n\r\nfunction DealingJedzSection(\r\n {\r\n classes,\r\n index,\r\n idPrefix,\r\n dealingId,\r\n demandId,\r\n setConfirmPopupData,\r\n title,\r\n formikProps,\r\n children,\r\n }) {\r\n const [open, setOpen] = useState(false);\r\n const error = getObjectValue(`${idPrefix}.qualifications`, formikProps.errors, false);\r\n\r\n const getTitleComponent = () => (\r\n setOpen(!open)}\r\n >\r\n {title}\r\n
\r\n )\r\n return (\r\n \r\n \r\n
\r\n \r\n {index + 1}.\r\n {getTitleComponent()}\r\n \r\n
\r\n {error && \r\n \r\n }\r\n \r\n \r\n setOpen(!open)}\r\n className={clsx(classes.arrow, classes.cursorPointer, {\r\n [classes.rotate]: open\r\n })}\r\n />\r\n \r\n \r\n {open &&\r\n \r\n {children}\r\n \r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nDealingJedzSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(DealingJedzSection);","import React, {useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport ProcedureSection from \"./ProcedureSection\";\r\nimport ExclusionSection from \"./ExclusionSection\";\r\nimport SelectionSection from \"./SelectionSection\";\r\nimport DealingJedzSection from \"./components/DealingJedzSection\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport EspdService from \"services/EspdService\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport RadioGroup from \"components/RadioGroup\";\r\nimport BooleanItems from \"constants/BooleanItems\";\r\nimport Tr from \"translations/Translations\";\r\nimport ExportJedzButtons from \"./components/ExportJedzButtons\";\r\nimport LoadingScreen from \"components/complex/loadingScreen/LoadingScreen\";\r\nimport {Typography} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport Button from \"components/Button\";\r\nimport Dialog from \"components/Dialog\";\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n buttonRow: {\r\n marginTop: theme.spacing(1),\r\n textAlign: \"end\"\r\n }\r\n}));\r\n\r\nconst defaultConfirmData = {open: false, demandId: undefined, dealingId: undefined, type: undefined};\r\n\r\nfunction JEDZFormContent(\r\n {\r\n formikProps,\r\n demandId,\r\n handleJedzTypeChange,\r\n sectionCompleted\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [confirmPopupData, setConfirmPopupData] = useState(defaultConfirmData);\r\n const [downloadingInProgress, setDownloadingInProgress] = useState(false);\r\n\r\n const isSectorBuyer = (buyerType) => {\r\n return 'SECTOR' === buyerType;\r\n }\r\n\r\n const exportTemplate = ({demandId, dealingId, type}) => {\r\n\r\n setDownloadingInProgress(true);\r\n if (type === 'xml') {\r\n EspdService.exportXML(demandId, dealingId).finally(() => {\r\n setDownloadingInProgress(false);\r\n })\r\n } else if (type === 'pdf') {\r\n EspdService.exportPDF(demandId, dealingId).finally(() => {\r\n setDownloadingInProgress(false);\r\n })\r\n }\r\n setConfirmPopupData(defaultConfirmData);\r\n }\r\n\r\n const handleBuyerTypeChanged = (newBuyerType, fieldPath) => {\r\n if (!isSectorBuyer(newBuyerType)) {\r\n for (let s of ['e1', 'e2']) {\r\n const elements = getObjectValue(`${fieldPath}.${s}`, formikProps.values);\r\n for (let key in elements) {\r\n if (!elements[key])\r\n formikProps.setFieldValue(`${fieldPath}.${s}.${key}`, true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const separateForDealing = formikProps.values.separateForEachDealing === 'true';\r\n const idPrefix = separateForDealing ? 'espds' : 'espd';\r\n let demandSectorBuyer = separateForDealing ? false : isSectorBuyer(formikProps.values.espd.espdBuyerType);\r\n return (\r\n <>\r\n \r\n handleJedzTypeChange(!separateForDealing)}\r\n />\r\n {!separateForDealing && }\r\n \r\n\r\n {separateForDealing ?\r\n <>\r\n {formikProps.values.espds.map((el, index) => {\r\n const dealingIdPrefix = `${idPrefix}.${index}`;\r\n let dealingSectorBuyer = isSectorBuyer(el.espdBuyerType);\r\n return \r\n handleBuyerTypeChanged(event.target.value, dealingIdPrefix)}/>\r\n \r\n \r\n \r\n })}\r\n \r\n :\r\n <>\r\n handleBuyerTypeChanged(event.target.value, idPrefix)}/>\r\n \r\n \r\n \r\n }\r\n\r\n setConfirmPopupData(defaultConfirmData)}\r\n >\r\n \r\n {Tr('make_sure_section_save')}\r\n \r\n
\r\n setConfirmPopupData(defaultConfirmData)}\r\n >\r\n {Tr('close')}\r\n \r\n
\r\n \r\n\r\n setConfirmPopupData(defaultConfirmData)}\r\n onConfirm={() => exportTemplate(confirmPopupData)}\r\n open={sectionCompleted && confirmPopupData.open}\r\n labelConfirm='export'\r\n labelCancel='cancel'\r\n />\r\n {downloadingInProgress && }\r\n \r\n )\r\n}\r\n\r\nJEDZFormContent.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default JEDZFormContent;\r\n","import React, {memo, useEffect, useRef, useState} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport {getInitValues as getExInitValues} from './constants/exclusion.values';\r\nimport {getInitValues as getSeInitValues} from './constants/selection.values';\r\nimport {connect} from 'react-redux'\r\nimport EspdService from 'services/EspdService';\r\nimport {withRouter} from \"react-router\";\r\nimport Loading from 'components/Loading';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport {DemandValidation, DemandValidationKeys} from 'constants/DemandValidation';\r\nimport JEDZFormContent from \"./JEDZFormContent\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport Tr from \"translations/Translations\";\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport SaveFormikValues from \"components/SaveFormikValues\";\r\nimport reduxStore from \"redux/store\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport {setFormDraftLoaded} from \"redux/actions\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\n\r\n\r\nconst style = theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n icon: {\r\n marginRight: theme.spacing(1),\r\n }\r\n})\r\n\r\nfunction JEDZ(\r\n {\r\n classes,\r\n stepperState,\r\n match,\r\n demandValidation,\r\n espdList,\r\n setFormDraftLoaded,\r\n demandHeader\r\n }) {\r\n const id = match.params.id;\r\n const section = demandValidation.find(x => x.section === DemandValidation.ESPD);\r\n const sectionCompleted = section ? section.status === 'OK' : false;\r\n const FORM_ID = DemandValidationKeys.ESPD;\r\n const typeChanged = useRef(false);\r\n const [draftConfirm, setDraftConfirm] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active;\r\n useStepperStateCloseValidator(FORM_ID, ()=> {\r\n if(typeChanged.current)\r\n return false;\r\n const dirty = reduxStore.getState()?.formValues?.[FORM_ID + \"_dirty\"];\r\n const draftLoaded = reduxStore.getState()?.formValues?.[FORM_ID + \"_draftLoaded\"];\r\n return dirty !== true && !draftLoaded;\r\n },\r\n autoSaveFormDraftActive ? () => EspdService.deleteDraft(id) : undefined,\r\n autoSaveFormDraftActive ? () => saveFormDraft(id, EspdService.saveDraft, FORM_ID) : undefined);\r\n\r\n useEffect(() => {\r\n EspdService.getList(id).then(() => {\r\n if (autoSaveFormDraftActive)\r\n EspdService.checkForDraft(id).then(res => setDraftConfirm(res.result))\r\n });\r\n\r\n return () => EspdService.clearEspdList();\r\n }, [id, autoSaveFormDraftActive])\r\n\r\n\r\n const handleSubmit = (values) => {\r\n EspdService.save(id, values)\r\n }\r\n\r\n const handleJedzTypeChange = (separateForEachDealing) => {\r\n typeChanged.current = true;\r\n EspdService.clearEspdList();\r\n EspdService.getList(id, separateForEachDealing);\r\n }\r\n\r\n const loadEspdDraft = () => {\r\n setDraftConfirm(false);\r\n setWorking(true);\r\n EspdService.loadDraft(id).then(res => setFormDraftLoaded(FORM_ID, res.success));\r\n setWorking(false);\r\n }\r\n\r\n\r\n const getField = (id, defaultValue = '') => getObjectValue(id, espdList, defaultValue)\r\n const getSingleJedzValue = (idPrefix) => {\r\n return {\r\n identity: getField(`${idPrefix}.identity`),\r\n espdBuyerType: getField(`${idPrefix}.espdBuyerType`),\r\n procedureType: getField(`${idPrefix}.procedureType`),\r\n noticeReferenceNumber: getField(`${idPrefix}.noticeReferenceNumber`, null),\r\n e1: getExInitValues('e1', espdList, idPrefix),\r\n e2: getExInitValues('e2', espdList, idPrefix),\r\n e3: getExInitValues('e3', espdList, idPrefix),\r\n e4: getExInitValues('e4', espdList, idPrefix),\r\n s1: getSeInitValues('s1', espdList, idPrefix),\r\n s2: getSeInitValues('s2', espdList, idPrefix),\r\n s3: getSeInitValues('s3', espdList, idPrefix),\r\n s4: getSeInitValues('s4', espdList, idPrefix),\r\n n1: {1: true},\r\n qualifications: getField(`${idPrefix}.selection`),\r\n name: getField(`${idPrefix}.name`),\r\n description: getField(`${idPrefix}.description`),\r\n number: getField(`${idPrefix}.number`),\r\n orgName: getField(`${idPrefix}.orgName`),\r\n orgCountry: getField(`${idPrefix}.orgCountry`),\r\n }\r\n }\r\n\r\n\r\n const getInitialValues = () => {\r\n\r\n const separateForEachDealing = getField(\"separateForEachDealing\", \"false\") === 'true';\r\n\r\n const initVal = {\r\n _editable: section ? section.editable : true,\r\n separateForEachDealing: separateForEachDealing.toString(),\r\n };\r\n if (separateForEachDealing) {\r\n const espds = espdList.espds.map((el, index) => {\r\n return getSingleJedzValue(`espds.${index}`);\r\n });\r\n initVal.espds = espds;\r\n } else {\r\n const espd = getSingleJedzValue('espd');\r\n initVal.espd = espd;\r\n }\r\n return initVal;\r\n };\r\n\r\n const searchForBooleanValue = (espd, sections, searchedBooleanValue) => {\r\n let found = false;\r\n for (let s of sections) {\r\n found = findBooleanValue(espd, s, searchedBooleanValue) ? true : false;\r\n if (found)\r\n break;\r\n }\r\n return found;\r\n }\r\n\r\n const findBooleanValue = (espd, section, searchedBooleanValue) => {\r\n return Object.values(espd[section]).some(x => {\r\n return searchedBooleanValue ? x : !x;\r\n });\r\n }\r\n\r\n const validationSchema = () => VS.lazy((values) => {\r\n const separateForEachDealing = getObjectValue('separateForEachDealing', values, 'true');\r\n\r\n const getEspdVSObject = (espd) => {\r\n const qualifications = getObjectValue('qualifications', espd, 'no');\r\n const buyerType = getObjectValue('espdBuyerType', espd, 'CLASSIC');\r\n\r\n const qualiOk = qualifications === 'no' || searchForBooleanValue(espd, ['s1', 's2', 's3', 's4'], true);\r\n const buyerTypeOk = buyerType === 'SECTOR' || !searchForBooleanValue(espd, ['e1', 'e2'], false);\r\n return VS.object({\r\n qualifications: VS.string().test('ESPDQualifications', Tr(\"jedz_qualifications_missing\"), (qualifications) => {\r\n return qualiOk;\r\n }),\r\n espdBuyerType: VS.string().test('ESPDBuyerType', Tr(\"espd_buyer_type_CLASSIC_all_e1_e2_must_be_true\"), () => {\r\n return buyerTypeOk;\r\n })\r\n });\r\n };\r\n\r\n if (separateForEachDealing === 'true') {\r\n if (values.espds) {\r\n return VS.object({\r\n espds: VS.arrayOf(VS.lazy(espd => getEspdVSObject(espd)))\r\n })\r\n }\r\n } else {\r\n if (values.espd) {\r\n return VS.object(\r\n {\r\n espd: VS.lazy(espd => getEspdVSObject(espd))\r\n })\r\n }\r\n }\r\n return VS.any();\r\n });\r\n if (!espdList || working) return ;\r\n\r\n return (\r\n
\r\n\r\n {\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(id);\r\n }\r\n }}\r\n >\r\n {(formikProps) => (\r\n <>\r\n \r\n {autoSaveFormDraftActive &&\r\n {\r\n EspdService.saveDraft(id, formValues)\r\n }}\r\n />\r\n }\r\n \r\n \r\n )}\r\n \r\n setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n
\r\n )\r\n}\r\n\r\nJEDZ.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n stepperState: state.stepper.state,\r\n espdList: state.resources.espdList,\r\n demandValidation: state.resources.demandValidation,\r\n demandHeader: state.resources.demandHeader\r\n}), {setFormDraftLoaded})(withRouter(withStyles(style)(memo(JEDZ))));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport JEDZ from './jedz/JEDZ';\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import React, {useEffect} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport SiwzService from 'services/SiwzService';\r\nimport {withRouter} from \"react-router\";\r\nimport {connect} from 'react-redux'\r\nimport Form from 'components/Form';\r\nimport DocumentsTables from 'components/complex/documentsTables/DocumentsTables';\r\nimport {DemandValidation, DemandValidationKeys} from 'constants/DemandValidation';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport {DemandValidationProvider} from 'context/DemandValidationContext';\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport HeaderService from \"services/HeaderService\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n }\r\n}));\r\n\r\nfunction Documents(\r\n {\r\n expanded,\r\n match,\r\n demandValidation,\r\n }) {\r\n\r\n const classes = useStyles();\r\n\r\n const demandId = match.params.id\r\n const currentDemandValidation = DemandValidation.SIWZ;\r\n const FORM_ID = DemandValidationKeys[currentDemandValidation];\r\n\r\n const section = demandValidation.find(x => x.section === currentDemandValidation);\r\n const siwzEditable = section ? !!section.siwzEditable : false;\r\n const repoEditable = section ? !!section.repoEditable : false;\r\n\r\n useEffect(()=> {\r\n HeaderService.get(demandId);\r\n },[demandId])\r\n\r\n const handleSubmit = () => SiwzService.save(demandId, currentDemandValidation);\r\n return (\r\n
\r\n <>\r\n {\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(demandId);\r\n }\r\n }}\r\n >\r\n {() => (<>\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nDocuments.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(Documents));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Documents from './documents/Documents';\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import React, {useState} from 'react'\r\nimport {withStyles, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport TextInput from 'components/TextInput';\r\nimport GridBlock from 'components/GridBlock';\r\nimport INPUT_TYPE from 'constants/INPUT_TYPE'\r\nimport getObjectValue from \"libs/getObjectValue\";\r\nimport Tr from 'translations/Translations';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n text: {\r\n marginLeft: theme.spacing(2),\r\n }\r\n})\r\n\r\nfunction WadiumField(\r\n {\r\n classes,\r\n formikProps,\r\n index,\r\n }) {\r\n\r\n const id = `dealings.${index}.value`;\r\n const estimatedNetValueId = `dealings.${index}.estimatedNetValue`;\r\n const warningThreshold = getObjectValue('warningThreshold', formikProps.values, 1);\r\n\r\n const isWarning = (guaranteeValue) => {\r\n let estimatedNetValue = getObjectValue(estimatedNetValueId, formikProps.values, null);\r\n\r\n if (!estimatedNetValue || guaranteeValue === null) {\r\n return true;\r\n }\r\n\r\n return warningThreshold * estimatedNetValue < guaranteeValue;\r\n }\r\n\r\n const [warning, setWarning] = useState(() => isWarning(getObjectValue(id, formikProps.values, null)));\r\n\r\n\r\n const change = (val) => {\r\n let number = parseFloat(val);\r\n setWarning(isWarning(number));\r\n }\r\n\r\n return (<>\r\n \r\n \r\n \r\n PLN\r\n \r\n \r\n {warning && \r\n {Tr('valuebiggerthanthreshold', {value: (warningThreshold * 100)})}\r\n }\r\n \r\n )\r\n}\r\n\r\nWadiumField.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(WadiumField);","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport SimpleTable from 'components/complex/simpleTable/SimpleTable';\r\nimport WadiumField from './WadiumField';\r\nimport Tr from 'translations/Translations';\r\nimport { withRouter } from \"react-router\";\r\nimport { connect } from 'react-redux'\r\nimport Loading from 'components/Loading';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\tlpColumn: theme.components.table.lpColumn,\r\n\twadiumColumn: {\r\n\t\twidth: 300,\r\n\t},\r\n\ttext: {\r\n\t\t...theme.typography.cutLines(1),\r\n\t}\r\n})\r\n\r\nfunction WadiumTable({\r\n\tclasses,\r\n\tformikProps,\r\n\tguaranteeList\r\n}) {\r\n\r\n\tconst createItems = (item, i) => {\r\n\t\treturn [\r\n\t\t\ti+1,\r\n\t\t\titem.name,\r\n\t\t\t\r\n\t\t]\r\n\t}\r\n\r\n\tconst createTab = () => {\r\n\t\tconst tab = []\r\n\t\tguaranteeList.dealings.forEach((x, i) => tab.push(createItems(x, i)));\r\n\t\treturn tab\r\n\t}\r\n\r\n\r\n\tif (!guaranteeList) return \r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t)\r\n}\r\n\r\nWadiumTable.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n\tguaranteeList: state.resources.guaranteeList\r\n}), {\r\n})(withRouter(withStyles(style)(WadiumTable)));\r\n","import Endpoints from 'constants/Endpoints';\r\nimport {clearResource, setResource, setSaveStatusClosed, setSaveStatusDialog, setSaveStatusLoading} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport validateSection from './helpers/validateSection';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport objectExtension from 'libs/objectExtension';\r\n\r\nconst GUARANTEE_LIST_RESOURCE_ID = 'guaranteeList';\r\n\r\nconst get = async (id) => {\r\n\ttry {\r\n\t\tconst res = await RestRequestGET(Endpoints.GUARANTEE(id))\r\n\t\treduxStore.dispatch(setResource(GUARANTEE_LIST_RESOURCE_ID, res))\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nconst _save = async (url, values, force = false) => {\r\n\tconst data = values;\r\n\r\n\tconst { resources } = reduxStore.getState()\r\n\tconst { guaranteeList } = resources;\r\n\tconst diff = objectExtension.diff(data, guaranteeList);\r\n\tif (!force && diff === null) return null;\r\n\r\n\ttry {\r\n\t\treturn await RestRequestPOST(url, data)\r\n\t} catch (error) {\r\n\t\tthrow error;\r\n\t}\r\n}\r\n\r\nconst save = async (id, values) => {\r\n\treduxStore.dispatch(setSaveStatusLoading())\r\n\ttry {\r\n\t\tconst res = await _save(Endpoints.GUARANTEE(id), values, true)\r\n\t\tif (res.success) {\r\n\t\t\treduxStore.dispatch(setSaveStatusDialog())\r\n\t\t\tif (res !== null) {\r\n\t\t\t\tawait validateSection(DemandValidation.GUARANTEE, id);\r\n\t\t\t\tawait validateSection(DemandValidation.NATIONAL_NOTICE, id, false);\r\n\t\t\t}\r\n\t\t}else {\r\n\t\t\treduxStore.dispatch(setSaveStatusClosed())\r\n\t\t}\r\n\t\treturn res;\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nconst validate = async (id) => {\r\n\treturn RestRequestGET(Endpoints.GUARANTEE_VALIDATE(id))\r\n}\r\n\r\nconst checkForDraft = async (id) => {\r\n\treturn await RestRequestGET(Endpoints.GUARANTEE_AUTOSAVE_CHECK(id));\r\n}\r\n\r\nconst loadDraft = async (id) => {\r\n\tconst res = await RestRequestGET(Endpoints.GUARANTEE_AUTOSAVE(id));\r\n\treduxStore.dispatch(setResource(GUARANTEE_LIST_RESOURCE_ID, res.result));\r\n\treturn res;\r\n}\r\n\r\nconst saveDraft = async (id, formValues) => {\r\n\tawait RestRequestPOST(Endpoints.GUARANTEE_AUTOSAVE(id), formValues);\r\n}\r\n\r\nconst deleteDraft = async (id) => {\r\n\tawait RestRequestDELETE(Endpoints.GUARANTEE_AUTOSAVE(id));\r\n}\r\n\r\nconst clearGuaranteeList = () => {\r\n\treduxStore.dispatch(clearResource(GUARANTEE_LIST_RESOURCE_ID));\r\n}\r\n\r\nexport default {\r\n\tGUARANTEE_LIST_RESOURCE_ID,\r\n\tclearGuaranteeList,\r\n\tget,\r\n\tsave,\r\n\tvalidate,\r\n\tcheckForDraft,\r\n\tloadDraft,\r\n\tsaveDraft,\r\n\tdeleteDraft\r\n}\r\n","import ValidationShema from 'constants/ValidationShema';\r\n\r\nexport default ValidationShema.lazy( values => {\r\n\tlet shape = {}\r\n\tif(values.enabled){\r\n\t\tshape = {\r\n\t\t\tdealings: ValidationShema.arrayOfShape({\r\n\t\t\t\tvalue: ValidationShema.amount()\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\treturn ValidationShema.object(shape)\r\n})","import React, {useEffect, useState} from 'react'\r\nimport {withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport Select from 'components/Select';\r\nimport BooleanItems from 'constants/BooleanItems';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport WadiumTable from './components/WadiumTable';\r\nimport {connect} from 'react-redux'\r\nimport SaveFormikValues from 'components/SaveFormikValues';\r\nimport GuaranteeService from 'services/GuaranteeService';\r\nimport {withRouter} from \"react-router\";\r\nimport getObjectValue from 'libs/getObjectValue';\r\nimport Loading from 'components/Loading';\r\nimport validation from './constants/validation';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport useStepperStateCloseValidator from \"hooks/useStepperStateCloseValidator\";\r\nimport {setFormDraftLoaded} from \"redux/actions\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport AutoSaveFormValues from \"components/AutoSaveFormValues\";\r\nimport saveFormDraft from \"libs/saveFormDraft\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n container: {\r\n \"&>*\": {\r\n width: '100%'\r\n }\r\n }\r\n})\r\n\r\nfunction Wadium(\r\n {\r\n classes,\r\n stepperState,\r\n match,\r\n demandValidation,\r\n guaranteeList,\r\n setFormDraftLoaded,\r\n demandHeader\r\n }) {\r\n const FORM_ID = 'mp_1_guarantee'\r\n const section = demandValidation.find(x => x.section === DemandValidation.GUARANTEE);\r\n const id = match.params.id;\r\n const [draftConfirm, setDraftConfirm] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n const autoSaveFormDraftActive = demandHeader?.applicationClientSettings.autoSaveFormDraft.active;\r\n useStepperStateCloseValidator(FORM_ID, undefined,\r\n autoSaveFormDraftActive ? () => GuaranteeService.deleteDraft(id) : undefined,\r\n autoSaveFormDraftActive ? () => saveFormDraft(id, GuaranteeService.saveDraft, FORM_ID) : undefined);\r\n\r\n useEffect(() => {\r\n GuaranteeService.get(id).then(() => {\r\n if (autoSaveFormDraftActive)\r\n GuaranteeService.checkForDraft(id).then(res => setDraftConfirm(res.result))\r\n });\r\n\r\n return () => GuaranteeService.clearGuaranteeList();\r\n }, [id, autoSaveFormDraftActive])\r\n\r\n const handleSubmit = (values, formikProps) => {\r\n GuaranteeService.save(id, values)\r\n .then((result) => {\r\n if (!result.success) {\r\n const errors = result.errors;\r\n Object.keys(errors).forEach((errorId) => {\r\n formikProps.setFieldError(errorId.replaceAll(\"[\", \".\").replaceAll(\"]\", \"\"), errors[errorId])\r\n })\r\n }\r\n });\r\n }\r\n\r\n const loadGuaranteeDraft = () => {\r\n setDraftConfirm(false);\r\n setWorking(true);\r\n GuaranteeService.loadDraft(id).then(res => setFormDraftLoaded(FORM_ID, res.success));\r\n setWorking(false);\r\n }\r\n\r\n const getField = (id, defaultValue = '') => getObjectValue(id, guaranteeList, defaultValue);\r\n\r\n if (!guaranteeList || working) {\r\n return \r\n }\r\n return (\r\n <>\r\n {\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(id);\r\n }\r\n }}\r\n >\r\n {(formikProps) => (\r\n <>\r\n \r\n {autoSaveFormDraftActive &&\r\n {\r\n GuaranteeService.saveDraft(id, formValues)\r\n }}\r\n />\r\n }\r\n \r\n \r\n {formikProps.values.enabled &&\r\n \r\n }\r\n \r\n \r\n )}\r\n \r\n setDraftConfirm(false)}\r\n confirmText=\"form_draft_load_confirm_text\"\r\n confirmTitle=\"form_draft_load_confirm_title\"\r\n />\r\n \r\n )\r\n}\r\n\r\nWadium.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n stepperState: state.stepper.state,\r\n guaranteeList: state.resources.guaranteeList,\r\n demandValidation: state.resources.demandValidation,\r\n demandHeader: state.resources.demandHeader\r\n}), {setFormDraftLoaded})(withRouter(withStyles(style)(Wadium)));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Wadium from './Wadium';\r\n\r\nfunction Index(\r\n {\r\n expanded,\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Index;","import React from 'react'\r\nimport LocationSearchingIcon from '@material-ui/icons/LocationSearching';\r\nimport LocationDisabledIcon from '@material-ui/icons/LocationDisabled';\r\nimport Tr from 'translations/Translations';\r\nimport IconButton from './IconButton';\r\n\r\nfunction IconExternalSignButton({\r\n enabled,\r\n ...props\r\n}) {\r\n return \r\n}\r\n\r\nexport default IconExternalSignButton;","import React, {useMemo} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport SimpleTable from 'components/complex/simpleTable/SimpleTable';\r\nimport Loading from 'components/Loading';\r\nimport moment from 'moment';\r\nimport WorkableIconDeleteButton from 'components/button/WorkableIconDeleteButton';\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport IconExternalSignButton from \"components/button/IconExternalSignButton\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport PropTypes from 'prop-types';\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {},\r\n cell: {\r\n padding: theme.spacing(1)\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n dateColumn: theme.components.table.dateColumn,\r\n buttonColumn: theme.components.table.buttonColumn,\r\n nameColumn: {\r\n wordBreak: \"break-all\",\r\n paddingRight: theme.spacing(2),\r\n },\r\n nipColumn: {\r\n width: 150,\r\n },\r\n addressColumn: {\r\n width: 200,\r\n whiteSpace: \"pre-line\"\r\n },\r\n emailColumn: {\r\n width: 170,\r\n wordBreak: \"break-all\"\r\n }\r\n}));\r\n\r\nfunction ContractorTable(\r\n {\r\n contractors,\r\n handleDelete,\r\n handleExternalSign,\r\n showJoinDate\r\n }) {\r\n\r\n const classes = useStyle();\r\n const showExternalSignColumn = !!handleExternalSign && contractors && contractors.items.findIndex((item, i) => item.externalOfferSign !== null) >= 0;\r\n\r\n const createItem = (item, i) => {\r\n const {contractor, invitationDate, externalOfferSign, joinMethod, joinDate} = item;\r\n\r\n const arr = [\r\n `${i + 1}`,\r\n contractor.name,\r\n `${contractor.vatin.prefix} ${contractor.vatin.number}`,\r\n `${contractor.address} \\n ${contractor.postCode} ${contractor.city}`,\r\n contractor.email,\r\n ];\r\n\r\n if(showJoinDate)\r\n arr.push(joinMethod === \"self\" ? moment(joinDate).format(DateFormats.DATETIME_FORMAT) : '')\r\n\r\n arr.push(invitationDate ? moment(invitationDate).format(DateFormats.DATETIME_FORMAT) : '');\r\n if (handleDelete)\r\n arr.push( handleDelete(item)}/>);\r\n if (showExternalSignColumn)\r\n arr.push(externalOfferSign !== null ? handleExternalSign(item)}/> : '');\r\n return arr;\r\n }\r\n\r\n const columnClasses = useMemo(() => {\r\n const arr = [\r\n classes.lpColumn,\r\n classes.nameColumn,\r\n classes.nipColumn,\r\n classes.addressColumn,\r\n classes.emailColumn,\r\n ];\r\n if(showJoinDate)\r\n arr.push(classes.dateColumn);\r\n\r\n arr.push(classes.dateColumn);\r\n\r\n if (handleDelete)\r\n arr.push(classes.buttonColumn);\r\n\r\n if (showExternalSignColumn)\r\n arr.push(classes.buttonColumn)\r\n return arr;\r\n }, [showExternalSignColumn, handleDelete, showJoinDate, classes]);\r\n\r\n\r\n const headers = useMemo(() => {\r\n const arr = [\r\n Tr('column_lp'),\r\n Tr('name'),\r\n Tr('nip_pesel'),\r\n Tr('adres'),\r\n Tr('email')\r\n ]\r\n if(showJoinDate)\r\n arr.push(Tr('join_demand_date'));\r\n\r\n arr.push(Tr('forwarding_invitation_date'));\r\n\r\n if (handleDelete)\r\n arr.push('');\r\n\r\n if (showExternalSignColumn)\r\n arr.push('');\r\n return arr;\r\n }, [showExternalSignColumn, showJoinDate, handleDelete])\r\n\r\n if (!contractors) return \r\n return (\r\n
\r\n [\r\n ...createItem(item, i)\r\n ])\r\n }\r\n columnClasses={columnClasses}\r\n cellClassName={classes.cell}\r\n />\r\n
\r\n )\r\n}\r\n\r\nContractorTable.propTypes = {\r\n contractors: PropTypes.object,\r\n handleDelete: PropTypes.func,\r\n handleExternalSign: PropTypes.func,\r\n showJoinDate: PropTypes.bool\r\n}\r\n\r\nexport default ContractorTable;\r\n","import React, {useEffect, useState} from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport GridBlock from 'components/GridBlock';\r\nimport ContractorTable from 'components/complex/contractor/ContractorTable';\r\nimport InviteContactor from 'components/popup/inviteContactor/InviteContactor';\r\nimport AddContactor from 'components/popup/addContactor/AddContactor';\r\nimport {withRouter} from \"react-router\";\r\nimport ContractorService from 'services/ContractorService';\r\nimport {connect} from 'react-redux'\r\nimport Form from 'components/Form';\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n marginLeft: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction ContactorPage(\r\n {\r\n classes,\r\n match,\r\n contractorList,\r\n demandValidation\r\n }) {\r\n const [invitePopup, setInvitePopup] = useState(false)\r\n const [addPopup, setAddPopup] = useState(false)\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === DemandValidation.CONTRACTOR);\r\n const editable = section ? section.editable : true;\r\n\r\n\r\n useEffect(() => {\r\n ContractorService.getList(demandId);\r\n return () => ContractorService.clearResources(ContractorService.CONTRACTOR_LIST_ID)\r\n // eslint-disable-next-line\r\n }, [demandId])\r\n\r\n const handleSubmit = () => {\r\n ContractorService.save(demandId)\r\n }\r\n\r\n\r\n const handleDelete = (data) => {\r\n ContractorService.deleteUser(match.params.id, data)\r\n }\r\n\r\n\r\n const handleInvite = (values) => {\r\n ContractorService.invite(demandId, values)\r\n setInvitePopup(false);\r\n }\r\n\r\n function addContractorsTab(data) {\r\n ContractorService.sendTabContractor(demandId, data.platformAdded)\r\n setAddPopup(false);\r\n }\r\n\r\n return (\r\n {\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(match.params.id);\r\n }\r\n }}\r\n >\r\n {() => (\r\n <>\r\n \r\n \r\n {Tr('selected_contractors_list')}\r\n \r\n \r\n {editable && <>\r\n setAddPopup(true)}\r\n >\r\n {Tr('add_contractor')}\r\n \r\n setInvitePopup(true)}\r\n >\r\n {Tr('suggest_contractor')}\r\n \r\n }\r\n \r\n \r\n {invitePopup && setInvitePopup(false)}\r\n title={Tr('invitation_contractor')}\r\n contractorList={contractorList}\r\n handleInvite={handleInvite}\r\n collectPostCode\r\n collectAddress\r\n addressRequired={false}\r\n collectCity\r\n cityRequired={false}\r\n />}\r\n {addPopup && setAddPopup(false)}\r\n addContractorsTab={addContractorsTab}\r\n />}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nContactorPage.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n contractorList: state.resources.contractorList,\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withStyles(style)(withRouter(ContactorPage)));\r\n","import React from 'react'\r\nimport ContactorPage from './ContactorPage';\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nexport default Index;","import {RestRequestGET} from 'libs/RestRequest'\r\nimport Endpoints from 'constants/Endpoints'\r\nimport reduxStore from 'redux/store'\r\nimport {clearResource, setResource, setSaveStatusDialog, setSaveStatusLoading} from 'redux/actions'\r\nimport validateSection from './helpers/validateSection'\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\n\r\nconst NOTICE_LINK_RESOURCE_ID = 'noticeLink';\r\nconst NOTICE_PREVIEW_RESOURCE_ID = 'noticePreview';\r\n\r\nconst getLink = async (demandId) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.NOTICE(demandId));\r\n reduxStore.dispatch(\r\n setResource(NOTICE_LINK_RESOURCE_ID, res)\r\n )\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst save = async (demandId) => {\r\n reduxStore.dispatch(setSaveStatusLoading());\r\n\r\n try {\r\n reduxStore.dispatch(setSaveStatusDialog());\r\n await validateSection(DemandValidation.NOTICE, demandId);\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst validate = async (id) => {\r\n return RestRequestGET(Endpoints.NOTICE_VALIDATE(id));\r\n}\r\n\r\nconst getPreviewUrl = async (id = -1) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.NOTICE_PREVIEW(id))\r\n reduxStore.dispatch(\r\n setResource(NOTICE_PREVIEW_RESOURCE_ID, res)\r\n )\r\n } catch (error) {\r\n reduxStore.dispatch(\r\n setResource(NOTICE_PREVIEW_RESOURCE_ID, {error: true})\r\n )\r\n }\r\n}\r\n\r\nconst clearResources = (id) => reduxStore.dispatch(clearResource(id));\r\n\r\n\r\nexport default {\r\n getLink,\r\n getPreviewUrl,\r\n save,\r\n validate,\r\n clearResources,\r\n NOTICE_PREVIEW_RESOURCE_ID,\r\n NOTICE_LINK_RESOURCE_ID\r\n};","import React, {useEffect} from 'react'\r\nimport Button from 'components/Button';\r\nimport Tr from 'translations/Translations';\r\nimport NoticeService from 'services/NoticeService';\r\nimport {withRouter} from \"react-router\";\r\nimport {connect} from 'react-redux'\r\nimport Loading from 'components/Loading';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\n\r\nfunction NoticePage(\r\n {\r\n match,\r\n noticeLink,\r\n demandValidation\r\n }) {\r\n const section = demandValidation.find(x => x.section === DemandValidation.NOTICE);\r\n const editable = section ? section.editable : false;\r\n\r\n\r\n const demandId = match.params.id;\r\n const handleClick = () => window.location.href = noticeLink.link.url\r\n\r\n useEffect(() => {\r\n NoticeService.getLink(demandId);\r\n return () => NoticeService.clearResources(NoticeService.NOTICE_LINK_RESOURCE_ID);\r\n }, [demandId])\r\n\r\n const handleSubmit = () => NoticeService.save(demandId)\r\n\r\n if (!noticeLink) return \r\n return (\r\n
\r\n \r\n \r\n {\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(demandId);\r\n }\r\n }}\r\n >\r\n {(formikProps) => (\r\n \r\n )}\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n noticeLink: state.resources.noticeLink,\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(NoticePage));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport NoticePage from './NoticePage';\r\n\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import Endpoints from \"../constants/Endpoints\";\r\nimport {RestRequestDELETE, RestRequestGET, RestRequestPOST, RestRequestPUT} from \"../libs/RestRequest\";\r\nimport isResponseValid from \"../libs/isResponseValid\";\r\nimport reduxStore from \"../redux/store\";\r\nimport {clearResource, setResource, setSaveStatusDialog, setSaveStatusError, setSaveStatusLoading, setStepperState} from \"../redux/actions\";\r\nimport Tr from \"../translations/Translations\";\r\n\r\nconst BZP_CONTRACT_NOTICE_STATUS = 'bzpContractNoticeStatus';\r\n\r\nconst showError = (message) => {\r\n\treduxStore.dispatch(setSaveStatusError(message))\r\n}\r\n\r\nconst getContractNotice = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\nconst deleteLastContractNoticeVersion = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestDELETE(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE(demandId));\r\n\t\treturn isResponseValid(resp, showError);\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst createNewContractNoticeVersion = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_CREATE_NEW_VERSION(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst getContractNoticeDynamicDictionaries = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_DYNAMIC_DICTIONARIES(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst getContractNoticeTranslations = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_TRANSLATIONS(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst getContractNoticeDictionaries = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_DICTIONARIES(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst saveContractNoticeDraft = async (demandId, form) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestPOST(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_DRAFT(demandId), form);\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treturn resp.result;\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst saveContractNotice = async (demandId, form) => {\r\n\ttry {\r\n\t\treturn await RestRequestPOST(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE(demandId), form);\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t\tthrow e;\r\n\t}\r\n}\r\n\r\nconst publishContractNotice = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestPOST(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treduxStore.dispatch(setResource(BZP_CONTRACT_NOTICE_STATUS, resp.result))\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t\tthrow e;\r\n\t}\r\n}\r\n\r\nconst rollbackContractNotice = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestPOST(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_ROLLBACK(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treduxStore.dispatch(setResource(BZP_CONTRACT_NOTICE_STATUS, resp.result))\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t\tthrow e;\r\n\t}\r\n}\r\n\r\nconst publishContractNoticeUpdate = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestPOST(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_UPDATE(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treduxStore.dispatch(setResource(BZP_CONTRACT_NOTICE_STATUS, resp.result))\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t\tthrow e;\r\n\t}\r\n}\r\n\r\nconst rollbackContractNoticeUpdate = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestPOST(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_PUBLISH_UPDATE_ROLLBACK(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treduxStore.dispatch(setResource(BZP_CONTRACT_NOTICE_STATUS, resp.result))\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t\tthrow e;\r\n\t}\r\n}\r\n\r\nconst saveContractNoticeSection = async (demandId) => {\r\n\treduxStore.dispatch(setSaveStatusLoading());\r\n\r\n\ttry {\r\n\t\treduxStore.dispatch(setSaveStatusDialog());\r\n\t\treduxStore.dispatch(setStepperState());\r\n\t\t//await validateSection(DemandValidation.NATIONAL_NOTICE, demandId);\r\n\t} catch (error) {\r\n\t}\r\n}\r\n\r\nconst getContractNoticeStatus = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_STATUS(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treduxStore.dispatch(setResource(BZP_CONTRACT_NOTICE_STATUS, resp.result))\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst getContractModificationNoticeStatus = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestGET(Endpoints.NATIONAL_NOTICE_CONTRACT_MODIFICATION_NOTICE_STATUS(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treduxStore.dispatch(setResource(BZP_CONTRACT_NOTICE_STATUS, resp.result))\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst checkContractNoticeStatus = async (demandId) => {\r\n\ttry {\r\n\t\tconst resp = await RestRequestPUT(Endpoints.NATIONAL_NOTICE_CONTRACT_NOTICE_STATUS(demandId));\r\n\t\tif(isResponseValid(resp, showError)) {\r\n\t\t\treduxStore.dispatch(setResource(BZP_CONTRACT_NOTICE_STATUS, resp.result))\r\n\t\t}\r\n\t} catch (e) {\r\n\t\tconsole.error(e);\r\n\t\tshowError(Tr('internal_server_error'));\r\n\t}\r\n}\r\n\r\nconst validate = (id) => {\r\n\treturn RestRequestGET(Endpoints.NATIONAL_NOTICE_VALIDATE(id));\r\n}\r\n\r\nconst clearResources = (id) => reduxStore.dispatch(clearResource(id));\r\n\r\nexport default {\r\n\tgetContractNotice,\r\n\tgetContractNoticeTranslations,\r\n\tgetContractNoticeDictionaries,\r\n\tgetContractNoticeDynamicDictionaries,\r\n\tsaveContractNoticeSection,\r\n\tsaveContractNotice,\r\n\tsaveContractNoticeDraft,\r\n\tpublishContractNotice,\r\n\tgetContractNoticeStatus,\r\n\tgetContractModificationNoticeStatus,\r\n\tcheckContractNoticeStatus,\r\n\tclearResources,\r\n\tvalidate,\r\n\tcreateNewContractNoticeVersion,\r\n\tpublishContractNoticeUpdate,\r\n\tdeleteLastContractNoticeVersion,\r\n\trollbackContractNotice,\r\n\trollbackContractNoticeUpdate,\r\n\tBZP_CONTRACT_NOTICE_STATUS\r\n};\r\n","import React, {useMemo} from 'react'\r\nimport {withRouter} from \"react-router\";\r\nimport {connect} from 'react-redux'\r\nimport Form from \"components/Form\";\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport {isDemandModification} from \"libs/getDemandStatus\";\r\nimport ModificationService from \"services/ModificationService\";\r\nimport Button from \"components/Button\";\r\nimport Tr from \"translations/Translations\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport NationalNoticeService from \"services/NationalNoticeService\";\r\nimport {DemandValidation, DemandValidationKeys} from \"constants/DemandValidation\";\r\nimport DemandValidationMessages from \"components/DemandValidationMessages\";\r\nimport {DemandValidationSectionStatus} from \"constants/DemandValidationSectionStatus\";\r\nimport {Typography} from \"@material-ui/core\";\r\n\r\nfunction NationalNoticeSection(\r\n {\r\n match,\r\n demandValidation,\r\n demandHeader\r\n }) {\r\n\r\n const demandId = match.params.id;\r\n const section = demandValidation.find(x => x.section === DemandValidation.NATIONAL_NOTICE);\r\n const editable = section ? section.editable : false;\r\n const handleSubmit = () => NationalNoticeService.saveContractNoticeSection(demandId)\r\n\r\n\r\n const reqSectionsError = useMemo(() => {\r\n const sections = [];\r\n sections.push(demandValidation.find(x => x.section === DemandValidation.SCHEDULE));\r\n if (!demandHeader.passiveOfferForm) {\r\n sections.push(demandValidation.find(x => x.section === DemandValidation.DEALINGS));\r\n }\r\n const errorSections = sections.filter(s => s.status !== DemandValidationSectionStatus.OK).map(s => Tr(DemandValidationKeys[s.section]));\r\n\r\n if (errorSections.length > 0) {\r\n return `${Tr(\"national_notice_sections_missing\")}: '${errorSections.join(\"', '\")}'`\r\n }\r\n return undefined;\r\n }, [demandValidation, demandHeader]);\r\n\r\n const handleClick = () => {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_NATIONAL_NOTICE_FORM_TYPE_ID, {formType: \"contractNotice\", id: demandId});\r\n RouterPath.redirect(href);\r\n }\r\n\r\n return (
\r\n {!!reqSectionsError && {reqSectionsError}}\r\n \r\n \r\n {\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(demandId);\r\n }\r\n }}\r\n >\r\n {(formikProps) => (\r\n \r\n )}\r\n \r\n
{Tr(\"bzp_notice_create_info\")}
\r\n
\r\n
)\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n demandHeader: state.resources.demandHeader,\r\n}), {})(withRouter(NationalNoticeSection));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport NationalNoticeSection from \"./NationalNoticeSection\";\r\n\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import React, {useEffect} from \"react\";\r\nimport Form from 'components/Form';\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidationKeys} from 'constants/DemandValidation';\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport PapersGeneratorService from \"services/PapersGeneratorService\";\r\nimport PapersGeneratorList from \"components/complex/papersGenerator/PapersGeneratorList\";\r\n\r\nfunction PreparingPapersGenerator(\r\n {\r\n match\r\n }) {\r\n const FORM_ID = DemandValidationKeys.PREPARING_PAPERS_GENERATOR;\r\n const id = match.params.id;\r\n\r\n useEffect(() => {\r\n PapersGeneratorService.getAvailablePapers(id);\r\n return () => {\r\n PapersGeneratorService.clearResources(PapersGeneratorService.PAPERS_GENERATOR_LIST_RESOURCE_ID);\r\n }\r\n }, [id])\r\n\r\n return (\r\n {(formikProps) => (\r\n )}\r\n \r\n )\r\n}\r\n\r\nPreparingPapersGenerator.propTypes = {\r\n}\r\n\r\nexport default withRouter(PreparingPapersGenerator);","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport PreparingPapersGenerator from \"./PreparingPapersGenerator\";\r\n\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import reduxStore from 'redux/store'\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest'\r\nimport Endpoints from 'constants/Endpoints'\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport validateSection from './helpers/validateSection'\r\nimport {DemandValidation} from 'constants/DemandValidation'\r\n\r\nconst _FIRST_PUBLICATION_RESOURCE_ID = \"firstPublication\";\r\n\r\nconst publish = async (id = -1) => {\r\n\r\n const setError = () => {\r\n reduxStore.dispatch(\r\n setResource('publish', {error: true})\r\n )\r\n }\r\n\r\n if (id < 0) {\r\n setError();\r\n return null;\r\n }\r\n try {\r\n const res = await RestRequestPOST(Endpoints.PUBLISH_DEMAND(id));\r\n if (res.success) {\r\n return res.result;\r\n }\r\n setError();\r\n } catch (error) {\r\n setError();\r\n }\r\n return null;\r\n}\r\n\r\nconst save = async () => {\r\n await validateSection(DemandValidation.PUBLICATION);\r\n}\r\n\r\n\r\nconst checkPublishOjs = async (id = -1) => {\r\n try {\r\n const res = await RestRequestGET(Endpoints.CHECK_OJS_NOTICE(id))\r\n reduxStore.dispatch(\r\n setResource('ojsPublicationStatus', res)\r\n )\r\n return res;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst clearOjsStatus = () => {\r\n clearResource('ojsPublicationStatus')\r\n}\r\n\r\nconst publishOjsNotice = async (id = -1) => {\r\n try {\r\n const res = await RestRequestPOST(Endpoints.PUBLISH_OJS_NOTICE(id))\r\n return res\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst rollbackOjsNotice = async (id = -1) => {\r\n try {\r\n const res = await RestRequestPOST(Endpoints.ROLLBACK_OJS_NOTICE(id))\r\n return res\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst markFirstPublication = (demandId) => {\r\n reduxStore.dispatch(setResource(_FIRST_PUBLICATION_RESOURCE_ID, demandId))\r\n}\r\n\r\nconst isFirstPublication = (demandId) => {\r\n const {resources} = reduxStore.getState();\r\n const curRes = resources[_FIRST_PUBLICATION_RESOURCE_ID];\r\n if(curRes)\r\n reduxStore.dispatch(clearResource(_FIRST_PUBLICATION_RESOURCE_ID));\r\n const result = curRes === demandId;\r\n return result;\r\n}\r\n\r\nconst publishExPost = async (id = -1) => {\r\n\r\n const setError = () => {\r\n reduxStore.dispatch(\r\n setResource('publish', {error: true})\r\n )\r\n }\r\n\r\n if (id < 0) {\r\n setError();\r\n return null;\r\n }\r\n try {\r\n const res = await RestRequestPOST(Endpoints.PUBLISH_DEMAND_EX_POST(id));\r\n if (res.success) {\r\n return res.result;\r\n }\r\n setError();\r\n } catch (error) {\r\n setError();\r\n }\r\n return null;\r\n}\r\n\r\nexport default {\r\n publish,\r\n save,\r\n checkPublishOjs,\r\n publishOjsNotice,\r\n rollbackOjsNotice,\r\n clearOjsStatus,\r\n markFirstPublication,\r\n isFirstPublication,\r\n publishExPost\r\n}","import React, {useMemo} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {wasEverPublished} from \"libs/getDemandStatus\";\r\nimport {connect} from \"react-redux\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\n\r\nfunction ConfirmPublish(\r\n {\r\n open,\r\n onConfirm,\r\n onCancel,\r\n demandHeader\r\n }) {\r\n\r\n const confirmText = useMemo(() => {\r\n let wasPublished = wasEverPublished() === true;\r\n let noticeOjsType = !!demandHeader?.noticeOjsType;\r\n return wasPublished ? (noticeOjsType ? 'publish_modification_ojs_popup_text' : 'publish_modification_popup_text') : 'publish_popup_text';\r\n }, [demandHeader]);\r\n\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nConfirmPublish.propTypes = {\r\n open: PropTypes.bool.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func.isRequired\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader\r\n}), {})(ConfirmPublish);\r\n","import React, {useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Form from 'components/Form';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport GridBlock from 'components/GridBlock';\r\nimport PublishService from 'services/PublishService';\r\nimport {isDemandModification, isDemandPreparing} from 'libs/getDemandStatus';\r\nimport ModificationService from \"services/ModificationService\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport ValidationShema from \"constants/ValidationShema\";\r\nimport ConfirmPublish from \"./ConfirmPublish\";\r\nimport Alert from \"components/popup/alert/Alert\";\r\n\r\nfunction PublishSection(\r\n {\r\n id,\r\n isPublishActive,\r\n isCancelActive,\r\n moveToOfferCollection = () => {\r\n },\r\n editable,\r\n classesRoot,\r\n setWorking,\r\n clearPublishResources\r\n }) {\r\n\r\n const handleSubmit = () => {\r\n PublishService.save()\r\n }\r\n\r\n const [openCancelModificationPopup, setOpenCancelModificationPopup] = useState(false);\r\n const [openPublishPopup, setOpenPublishPopup] = useState(false);\r\n const [showPublishLimitUsedAlert, setShowPublishLimitUsedAlert] = useState(false);\r\n\r\n\r\n const handleConfirmCancelModification = () => {\r\n setOpenCancelModificationPopup(false);\r\n setWorking(true);\r\n ModificationService.cancel(id).then((resp) => {\r\n if (resp) {\r\n moveToOfferCollection();\r\n }\r\n });\r\n };\r\n\r\n const handleConfirmPublish = () => {\r\n\r\n if (isDemandPreparing()) {\r\n setOpenPublishPopup(false);\r\n setWorking(true);\r\n PublishService.publish(id).then((resp) => {\r\n if (resp != null) {\r\n if (resp) {\r\n HeaderService.get(id);\r\n PublishService.markFirstPublication(id);\r\n moveToOfferCollection();\r\n } else {\r\n setWorking(false);\r\n setShowPublishLimitUsedAlert(true);\r\n }\r\n } else {\r\n setWorking(false);\r\n clearPublishResources();\r\n }\r\n });\r\n } else if (isDemandModification()) {\r\n setOpenPublishPopup(false);\r\n setWorking(true);\r\n\r\n ModificationService.publish(id).then((resp) => {\r\n if (resp) {\r\n HeaderService.get(id);\r\n moveToOfferCollection();\r\n } else {\r\n setWorking(false);\r\n clearPublishResources();\r\n }\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n {(formikProps) => (\r\n <>\r\n \r\n\r\n setOpenPublishPopup(true)}\r\n >\r\n {Tr('publish')}\r\n \r\n\r\n {isDemandModification() && setOpenCancelModificationPopup(true)}\r\n >\r\n {Tr('modification_cancel')}\r\n \r\n }\r\n \r\n setOpenCancelModificationPopup(false)}\r\n confirmText=\"modification_cancel_popup_text\"\r\n />\r\n setOpenPublishPopup(false)}\r\n />\r\n \r\n )}\r\n \r\n {showPublishLimitUsedAlert && setShowPublishLimitUsedAlert(false)}\r\n maxWidth='sm'\r\n />}\r\n
\r\n )\r\n}\r\n\r\nPublishSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default PublishSection;","import { DemandValidation } from 'constants/DemandValidation';\r\nimport {DemandValidationSectionStatus} from \"../constants/DemandValidationSectionStatus\";\r\n\r\nexport default (demandValidation = []) => demandValidation.reduce( (acc, item) => {\r\n\tif (item.section === DemandValidation.PUBLICATION || item.section === DemandValidation.EX_POST_GO_TO_FINISH) return acc;\r\n\tif (item.status === DemandValidationSectionStatus.UNAVAILABLE) return acc;\r\n\tif ((item.required && item.status !== DemandValidationSectionStatus.OK) || item.status === DemandValidationSectionStatus.ERROR) return [\r\n\t\t...acc,\r\n\t\titem.section\r\n\t]\r\n\treturn acc;\r\n}, [])","export default {\r\n NONE: \"NONE\",\r\n DRAFT: \"DRAFT\",\r\n COMPLETED: \"COMPLETED\",\r\n SEND: \"SEND\",\r\n PUBLISHED: \"PUBLISHED\",\r\n PUBLICATION_ERROR: \"PUBLICATION_ERROR\",\r\n INTEGRATION_ERROR: \"INTEGRATION_ERROR\"\r\n}","import getUncompletedSections from './getUncompletedSections';\r\nimport {DemandValidation} from \"../constants/DemandValidation\";\r\nimport {PublishConst} from \"../constants/PublicationConst\";\r\nimport {isDemandModification, isDemandPreparing} from \"./getDemandStatus\";\r\nimport {DemandValidationSectionStatus} from \"../constants/DemandValidationSectionStatus\";\r\nimport NationalNoticeStatus from \"../components/complex/nationalNotice/constants/NationalNoticeStatus\";\r\n\r\nexport default (demandValidation, ojsPublicationStatus, bzpContractNoticeStatus, isDemandChanged) => {\r\n if (!demandValidation) return false;\r\n if (!(isDemandPreparing() || (isDemandModification() && isDemandChanged && isDemandChanged.result))) {\r\n return false;\r\n }\r\n\r\n const uncompleted = getUncompletedSections(demandValidation);\r\n const hasUncompletedSections = uncompleted.length > 0;\r\n if (hasUncompletedSections) {\r\n return false;\r\n }\r\n\r\n const notice = demandValidation.find((x) => x.section === DemandValidation.NOTICE);\r\n const isNoticeAvailable = notice ? notice.status !== DemandValidationSectionStatus.UNAVAILABLE : false;\r\n if (isNoticeAvailable) {\r\n if (ojsPublicationStatus && (ojsPublicationStatus.status === PublishConst.PUBLISHED || ojsPublicationStatus.status === PublishConst.CONFIRMED || ojsPublicationStatus.status === PublishConst.UNAVAILABLE)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n const nationalNotice = demandValidation.find((x) => x.section === DemandValidation.NATIONAL_NOTICE);\r\n const isNationalNoticeAvailable = nationalNotice ? nationalNotice.status !== 'UNAVAILABLE' : false;\r\n if (isNationalNoticeAvailable) {\r\n if (bzpContractNoticeStatus && (bzpContractNoticeStatus.status === NationalNoticeStatus.PUBLISHED || bzpContractNoticeStatus.status === NationalNoticeStatus.NONE)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n return true;\r\n}\r\n","import React from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport PublishService from 'services/PublishService';\r\nimport ModificationService from 'services/ModificationService';\r\nimport {PublishConst} from 'constants/PublicationConst';\r\nimport GridBlock from 'components/GridBlock';\r\nimport {isDemandModification, isDemandPreparing} from 'libs/getDemandStatus';\r\nimport clsx from 'clsx';\r\n\r\nconst style = theme => ({\r\n root: {},\r\n error: {\r\n color: theme.palette.common.error\r\n },\r\n minusMargin: {\r\n marginBottom: theme.spacing(-1),\r\n textAlign: \"center\"\r\n },\r\n})\r\n\r\nfunction NoticeButtons(\r\n {\r\n classes,\r\n id,\r\n editable,\r\n ojsAdmin,\r\n noticePreview,\r\n ojsPublicationStatus,\r\n isPublicOjsActive,\r\n isPreviewOjsActive,\r\n classesRoot,\r\n checkNoticeStatus,\r\n setWorking,\r\n clearPublishResources\r\n }) {\r\n const handlePreviewEUForm = () => {\r\n window.location.href = noticePreview.url\r\n }\r\n\r\n const handleSendEU = () => {\r\n if (isDemandPreparing()) {\r\n setWorking(true);\r\n PublishService.publishOjsNotice(id).then((res) => {\r\n PublishService.checkPublishOjs(id).then(resp => {\r\n setWorking(false);\r\n checkNoticeStatus();\r\n });\r\n clearPublishResources();\r\n });\r\n } else if (isDemandModification()) {\r\n setWorking(true);\r\n ModificationService.publishOjsNotice(id).then((res) => {\r\n ModificationService.noticeOjsStatus(id).then(resp => {\r\n setWorking(false);\r\n checkNoticeStatus();\r\n });\r\n clearPublishResources();\r\n });\r\n }\r\n }\r\n\r\n const handleRollback = () => {\r\n if (isDemandPreparing()) {\r\n setWorking(true);\r\n PublishService.rollbackOjsNotice(id).then((res) => {\r\n PublishService.checkPublishOjs(id).then(resp => {\r\n setWorking(false);\r\n checkNoticeStatus();\r\n });\r\n clearPublishResources();\r\n });\r\n } else if (isDemandModification()) {\r\n setWorking(true);\r\n ModificationService.rollbackOjsNotice(id).then((res) => {\r\n ModificationService.noticeOjsStatus(id).then(resp => {\r\n setWorking(false);\r\n checkNoticeStatus();\r\n });\r\n clearPublishResources();\r\n });\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {Tr('preview_of_eu_form')}\r\n \r\n\r\n {(ojsPublicationStatus && ojsPublicationStatus.message && ojsPublicationStatus.status !== PublishConst.UNAVAILABLE) &&\r\n \r\n {ojsPublicationStatus.message}\r\n \r\n }\r\n\r\n {(!ojsPublicationStatus || (ojsPublicationStatus.status !== PublishConst.NOT_PUBLISHED && ojsPublicationStatus.status !== PublishConst.UE_VALIDATION_ERROR)) &&\r\n \r\n {Tr('send_eu_publish')}\r\n \r\n }\r\n\r\n {ojsPublicationStatus && ojsPublicationStatus.status === PublishConst.NOT_PUBLISHED &&\r\n \r\n {Tr('send_eu_publish_rollback')}\r\n \r\n }\r\n\r\n {ojsPublicationStatus && ojsPublicationStatus.status === PublishConst.UE_VALIDATION_ERROR &&\r\n \r\n {Tr('send_eu_publish_rollback')}\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nNoticeButtons.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(NoticeButtons);","import React, {useMemo} from 'react'\r\nimport {Box, Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Icon from '@material-ui/icons/CheckBox'\r\nimport IconOff from '@material-ui/icons/HighlightOff';\r\nimport Tr from 'translations/Translations';\r\nimport {DemandValidationTr} from 'constants/DemandValidation';\r\nimport {isDemandModification, isDemandPreparing} from 'libs/getDemandStatus';\r\nimport DemandService from \"services/DemandService\";\r\nimport Button from \"components/Button\";\r\nimport isBzpAttachmentNoticeType from \"libs/isBzpAttachmentNoticeType\";\r\nimport RouterPath from \"libs/RouterPath\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n icon: theme.components.icon,\r\n center: {\r\n textAlign: \"center\"\r\n }\r\n})\r\n\r\nfunction InformationSection(\r\n {\r\n classes,\r\n id,\r\n classesRoot,\r\n isPublishActive,\r\n isPreviewActive,\r\n isPreviewNoticeActive,\r\n isPublicOjsActive,\r\n isOjsProcessing,\r\n uncompletedSections,\r\n hasOjsNotice,\r\n demandHeader,\r\n section,\r\n isBzpPublishActive,\r\n isBzpProcessing\r\n }) {\r\n\r\n const isPreparing = isDemandPreparing();\r\n\r\n const isBzpAttachmentNotice = useMemo(() => isBzpAttachmentNoticeType(demandHeader), [demandHeader]);\r\n\r\n const openBzp = () => {\r\n let a = document.createElement('a');\r\n a.href = 'https://ezamowienia.gov.pl/mo-client-board/bzp/list'\r\n a.target = '_blank'\r\n a.click();\r\n }\r\n\r\n return (\r\n \r\n {\r\n isPublishActive || isPublicOjsActive || isOjsProcessing || isBzpPublishActive || isBzpProcessing ?\r\n \r\n :\r\n \r\n }\r\n {\r\n isPublishActive &&\r\n \r\n {Tr('congratulations').toUpperCase()}!\r\n \r\n }\r\n\r\n \r\n {\r\n isPublishActive || isPublicOjsActive || isOjsProcessing || isBzpPublishActive || isBzpProcessing ?\r\n Tr('p1_pf_1') /*Udało Ci się pomyślnie uzupełnić wszystkie sekcje kreatora postępowania.*/ :\r\n (isDemandModification() && uncompletedSections.length === 0 ?\r\n <>{Tr('p1_pf_1_m_f')} {/*Nie dokonano żadnej modyfikacji lub dokonane zmiany nie wymagają ponownej publikacji postępowania.*/}\r\n :\r\n <>\r\n {Tr('p1_pf_1_f')}{/*Aby przejść do publikacji postępowania wypełnij wymagane sekcje:*/}\r\n {\r\n uncompletedSections.map((x, i) =>\r\n ` \"${DemandValidationTr[x]}\"${\r\n i === uncompletedSections.length - 1 ? '.' : ','\r\n } `\r\n )}\r\n \r\n )\r\n }\r\n \r\n\r\n {isPreparing &&\r\n \r\n {Tr('p1_pf_2_1')}{' '} {/*Sprawdź jak Twoje postępowanie będzie wyglądać z perspektywy wykonawcy wybierając przycisk Podgląd.*/}\r\n \r\n {Tr('p1_pf_2_2')}{/*Podgląd nie spowoduje jego publikacji.*/}\r\n \r\n \r\n }\r\n {isBzpAttachmentNotice && {Tr('bzp_or_ojs_info')}}\r\n\r\n {isPreparing &&\r\n <>\r\n {\r\n demandHeader.apiVersion < 3 ?\r\n
\r\n DemandService.preview(id)}\r\n disabled={!isPreviewActive}\r\n >\r\n {Tr('preview')}\r\n \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 DemandService.preview(id)}\r\n disabled={!isPreviewNoticeActive}\r\n >\r\n {Tr(\"preview_notice\")}\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 {isBzpAttachmentNotice &&\r\n \r\n {Tr('bzp_link')}\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nInformationSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(InformationSection);","import {DemandValidation} from \"../constants/DemandValidation\";\r\nimport {PublishConst} from \"../constants/PublicationConst\";\r\nimport {isDemandModification} from \"./getDemandStatus\";\r\nimport {DemandValidationSectionStatus} from \"../constants/DemandValidationSectionStatus\";\r\nimport NationalNoticeStatus from \"../components/complex/nationalNotice/constants/NationalNoticeStatus\";\r\n\r\nexport default (demandValidation, ojsPublicationStatus, bzpContractNoticeStatus) => {\r\n if (!demandValidation) return false;\r\n\r\n if (!(isDemandModification())) {\r\n return false;\r\n }\r\n\r\n const notice = demandValidation.find((x) => x.section === DemandValidation.NOTICE);\r\n const isNoticeAvailable = notice ? notice.status !== DemandValidationSectionStatus.UNAVAILABLE : false;\r\n const bzpNotice = demandValidation.find((x) => x.section === DemandValidation.NATIONAL_NOTICE);\r\n const isBzpNoticeAvailable = bzpNotice ? bzpNotice.status !== DemandValidationSectionStatus.UNAVAILABLE : false;\r\n if (isNoticeAvailable) {\r\n return ojsPublicationStatus ? (ojsPublicationStatus.status === PublishConst.NOT_SENT || ojsPublicationStatus.status === PublishConst.UNAVAILABLE) : false;\r\n } else if (isBzpNoticeAvailable) {\r\n return bzpContractNoticeStatus ? (bzpContractNoticeStatus.status === NationalNoticeStatus.NONE\r\n || bzpContractNoticeStatus.status === NationalNoticeStatus.DRAFT || bzpContractNoticeStatus.status === NationalNoticeStatus.COMPLETED) : false;\r\n }\r\n\r\n return true;\r\n}\r\n","import getUncompletedSections from './getUncompletedSections';\r\nimport {isDemandPreparing} from \"./getDemandStatus\";\r\nimport {previewNoticeDisabled} from \"./getDemandStatus\";\r\n\r\nexport default (demandValidation) => {\r\n if (!demandValidation || !isDemandPreparing() || previewNoticeDisabled()) return false;\r\n const uncompleted = getUncompletedSections(demandValidation);\r\n return uncompleted.length === 0;\r\n}\r\n","export const PP_REQUIRED_GROUPS = [\"PUBLISHER\", \"PPCREATE\", \"PPREAD\", \"PPUPDATE\"]\r\nexport const MO_REQUIRED_GROUPS = [\"NCREATE\", \"NCONFIRM\", \"NUPDATE\"]\r\nexport const MMiA_REQUIRED_GROUPS = [\"MMiAANNREPUSER\"]\r\n","import React, {useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport GridBlock from 'components/GridBlock';\r\nimport NationalNoticeStatus from \"components/complex/nationalNotice/constants/NationalNoticeStatus\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport Typography from \"components/Typography\";\r\nimport useEzamowieniaOauth from \"hooks/useEzamowieniaOauth\";\r\nimport NationalNoticeService from \"services/NationalNoticeService\";\r\nimport WorkableButton from \"components/button/WorkableButton\";\r\nimport {isDemandModification, isDemandPreparing} from \"libs/getDemandStatus\";\r\nimport Loading from \"components/Loading\";\r\nimport PropTypes from \"prop-types\";\r\nimport {withStyles} from \"@material-ui/styles\";\r\nimport {MO_REQUIRED_GROUPS} from \"constants/EzamowieniaRequiredGroups\";\r\n\r\nconst style = theme => ({\r\n root: {},\r\n error: {\r\n color: theme.palette.common.error\r\n },\r\n minusMargin: {\r\n marginBottom: theme.spacing(-1),\r\n textAlign: \"center\"\r\n },\r\n})\r\n\r\nfunction BzpNoticeButtons(\r\n {\r\n classes,\r\n id,\r\n classesRoot,\r\n editable,\r\n setWorking,\r\n clearPublishResources,\r\n bzpContractNoticeStatus\r\n }) {\r\n const [ezWorking, setEzWorking] = useState(false);\r\n const {authorizeEzamowienia} = useEzamowieniaOauth();\r\n\r\n const goToNationalNotice = () => {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_NATIONAL_NOTICE_FORM_TYPE_ID, {formType: \"contractNotice\", id});\r\n RouterPath.redirect(href);\r\n }\r\n\r\n const sendContractNotice = () => {\r\n setEzWorking(true);\r\n\r\n if (isDemandModification()) {\r\n authorizeEzamowienia(() => {\r\n NationalNoticeService.publishContractNoticeUpdate(id).catch((e) => console.error(e)).finally(() => {\r\n setEzWorking(false);\r\n NationalNoticeService.getContractModificationNoticeStatus(id);\r\n })\r\n }, () => {\r\n setEzWorking(false)\r\n }, MO_REQUIRED_GROUPS)\r\n } else {\r\n authorizeEzamowienia(() => {\r\n NationalNoticeService.publishContractNotice(id).catch((e) => console.error(e)).finally(() => {\r\n setEzWorking(false);\r\n NationalNoticeService.getContractNoticeStatus(id)\r\n })\r\n }, () => {\r\n setEzWorking(false)\r\n }, MO_REQUIRED_GROUPS)\r\n }\r\n }\r\n\r\n const rollbackContractNotice = () => {\r\n setEzWorking(true);\r\n if (isDemandModification()) {\r\n NationalNoticeService.rollbackContractNoticeUpdate(id).catch((e) => console.error(e)).finally(() => setEzWorking(false))\r\n } else {\r\n NationalNoticeService.rollbackContractNotice(id).catch((e) => console.error(e)).finally(() => setEzWorking(false))\r\n }\r\n }\r\n\r\n const checkContractNoticeStatus = () => {\r\n setEzWorking(true);\r\n authorizeEzamowienia(() => {\r\n NationalNoticeService.checkContractNoticeStatus(id).catch((e) => console.error(e)).finally(() => setEzWorking(false))\r\n }, () => {\r\n setEzWorking(false)\r\n }, MO_REQUIRED_GROUPS)\r\n }\r\n\r\n if(!bzpContractNoticeStatus ) return \r\n return (\r\n \r\n {Tr('ezamowienia_state_' + bzpContractNoticeStatus.status.toLowerCase())}\r\n {\r\n (bzpContractNoticeStatus.status === NationalNoticeStatus.DRAFT) && <>\r\n \r\n {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 DemandService from \"services/DemandService\";\r\nimport {clearResource} from \"redux/actions\";\r\nimport clsx from 'clsx';\r\nimport BzpNoticeButtons from \"./BzpNoticeButtons\";\r\nimport NationalNoticeService from \"services/NationalNoticeService\";\r\nimport NationalNoticeStatus from \"components/complex/nationalNotice/constants/NationalNoticeStatus\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*': {\r\n '&>*': {\r\n marginTop: theme.spacing(2)\r\n }\r\n }\r\n },\r\n hidden: {\r\n display: 'none'\r\n }\r\n})\r\n\r\nfunction Publication(\r\n {\r\n classes,\r\n expanded,\r\n match,\r\n demandValidation,\r\n noticePreview = {error: true},\r\n ojsPublicationStatus,\r\n isDemandChanged = {},\r\n demandHeader,\r\n bzpContractNoticeStatus\r\n }) {\r\n const id = match.params.id;\r\n\r\n const [working, setWorking] = useState(true);\r\n const uncompletedSections = getUncompletedSections(demandValidation);\r\n const [noticeStatusInterval, setNoticeStatusInterval] = useState();\r\n\r\n const findSection = (compareSection) => demandValidation.find(x => x.section === compareSection);\r\n\r\n const section = findSection(DemandValidation.PUBLICATION);\r\n\r\n const editable = section ? section.editable : false;\r\n const ojsAdmin = section ? section.ojsAdmin : false;\r\n const hasOjsNotice = demandHeader?.noticeOjsType === true;\r\n const hasBzpNotice = demandHeader?.noticeBzpType === true;\r\n\r\n const clearPublishResources = () => {\r\n DemandService.getValidate(id, false);\r\n }\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (hasOjsNotice && id > 0) {\r\n if (isDemandPreparing()) {\r\n PublishService.checkPublishOjs(id).then(resp => {\r\n setWorking(false);\r\n if (resp && resp.status === PublishConst.SENT) {\r\n startNoticeStatusInterval();\r\n }\r\n })\r\n } else if (isDemandModification()) {\r\n ModificationService.noticeOjsStatus(id).then(resp => {\r\n setWorking(false);\r\n if (resp && resp.status === PublishConst.SENT) {\r\n startNoticeStatusInterval();\r\n }\r\n })\r\n } else {\r\n setWorking(false);\r\n }\r\n } else {\r\n setWorking(false);\r\n }\r\n\r\n\r\n return () => {\r\n if (noticeStatusInterval) clearInterval(noticeStatusInterval);\r\n }\r\n //eslint-disable-next-line\r\n }, []);\r\n\r\n const startNoticeStatusInterval = () => {\r\n if (isDemandPreparing()) {\r\n const interval = setInterval(async () => {\r\n const resp = await PublishService.checkPublishOjs(id);\r\n if (resp.status !== PublishConst.SENT) {\r\n clearInterval(interval);\r\n clearPublishResources();\r\n }\r\n }, 10000);\r\n setNoticeStatusInterval(interval);\r\n } else if (isDemandModification()) {\r\n const interval = setInterval(async () => {\r\n const resp = await ModificationService.noticeOjsStatus(id);\r\n if (resp.status !== PublishConst.SENT) {\r\n clearInterval(interval);\r\n clearPublishResources();\r\n }\r\n }, 10000);\r\n setNoticeStatusInterval(interval);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (isDemandModification()) {\r\n ModificationService.isDemandChanged(id);\r\n }\r\n\r\n if (expanded) {\r\n if (hasOjsNotice && uncompletedSections.length === 0) {\r\n NoticeService.getPreviewUrl(id);\r\n DemandService.clearResources(DemandService.DEMAND_RESOURCE_ID);\r\n }\r\n\r\n if (hasBzpNotice && uncompletedSections.length === 0) {\r\n if (isDemandModification()) {\r\n NationalNoticeService.getContractModificationNoticeStatus(id);\r\n } else if (isDemandPreparing()) {\r\n NationalNoticeService.getContractNoticeStatus(id);\r\n }\r\n }\r\n }\r\n return ()=> {\r\n NoticeService.clearResources(NoticeService.NOTICE_PREVIEW_RESOURCE_ID);\r\n }\r\n // eslint-disable-next-line\r\n }, [expanded, id])\r\n\r\n\r\n const rp = RouterPath.myProcedure;\r\n\r\n const moveToOfferCollection = () => {\r\n const href = RouterPath.createPath(rp.steps.MP_2_ID, {id});\r\n RouterPath.redirect(href)\r\n };\r\n const isPublishActive = useMemo(() => isPublishButtonActive(demandValidation, ojsPublicationStatus, bzpContractNoticeStatus, isDemandChanged), [demandValidation, ojsPublicationStatus, isDemandChanged, bzpContractNoticeStatus]);\r\n const isCancelActive = isCancelModificationButtonActive(demandValidation, ojsPublicationStatus, bzpContractNoticeStatus);\r\n // eslint-disable-next-line\r\n const isPreviewActive = useMemo(() => isPreviewButtonActive(demandValidation), [demandValidation]);\r\n const isPreviewNoticeActive = useMemo(() => isPreviewNoticeButtonActive(demandValidation), [demandValidation]);\r\n const isOjsProcessing = uncompletedSections.length === 0 && ojsPublicationStatus ? ojsPublicationStatus.status === PublishConst.SENT : false;\r\n const isPublicOjsActive = uncompletedSections.length === 0 && ojsPublicationStatus ? ojsPublicationStatus.status === PublishConst.NOT_SENT : false;\r\n const isPreviewOjsActive = uncompletedSections.length === 0 && !Boolean(noticePreview.error);\r\n\r\n const isBzpPublishActive = uncompletedSections.length === 0 && bzpContractNoticeStatus ? bzpContractNoticeStatus.status === NationalNoticeStatus.COMPLETED : false;\r\n const isBzpProcessing = uncompletedSections.length === 0 && bzpContractNoticeStatus ? bzpContractNoticeStatus.status === NationalNoticeStatus.SEND : false;\r\n\r\n if (!demandValidation) return \r\n\r\n return (\r\n <>\r\n {working && }\r\n \r\n \r\n\r\n {(hasOjsNotice) &&\r\n \r\n }\r\n\r\n {\r\n (hasBzpNotice && uncompletedSections.length === 0) && \r\n }\r\n\r\n\r\n \r\n\r\n \r\n \r\n )\r\n}\r\n\r\nPublication.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n isDemandChanged: state.resources.isDemandChanged,\r\n noticePreview: state.resources.noticePreview,\r\n demandValidation: state.resources.demandValidation,\r\n ojsPublicationStatus: state.resources.ojsPublicationStatus,\r\n bzpContractNoticeStatus: state.resources[NationalNoticeService.BZP_CONTRACT_NOTICE_STATUS],\r\n demandHeader: state.resources.demandHeader\r\n}), {\r\n\r\n clearResource\r\n})(withStyles(style)(withRouter(Publication)));","import getUncompletedSections from './getUncompletedSections';\r\nimport {isDemandPreparing} from \"./getDemandStatus\";\r\n\r\nexport default (demandValidation) => {\r\n if (!demandValidation || !isDemandPreparing()) return false;\r\n const uncompleted = getUncompletedSections(demandValidation);\r\n return uncompleted.length === 0;\r\n}\r\n","import React, {useMemo, useState} from 'react'\r\nimport {Typography, withStyles} from '@material-ui/core';\r\nimport PropTypes from \"prop-types\";\r\nimport {connect} from \"react-redux\";\r\nimport {withRouter} from \"react-router\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {DemandValidation} from 'constants/DemandValidation';\r\nimport isPublishButtonActive from 'libs/isPublishButtonActive';\r\nimport Tr from 'translations/Translations';\r\nimport Button from 'components/Button';\r\nimport DemandService from \"services/DemandService\";\r\nimport PublishService from \"services/PublishService\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from 'components/GridBlock';\r\nimport {clearResource} from \"redux/actions\";\r\nimport clsx from \"clsx\";\r\nimport Icon from \"@material-ui/icons/CheckBox\";\r\nimport IconOff from \"@material-ui/icons/HighlightOff\";\r\nimport {isDemandFinished, isDemandFinishing} from \"libs/getDemandStatus\";\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*': {\r\n '&>*': {\r\n marginTop: theme.spacing(2)\r\n }\r\n }\r\n },\r\n\r\n hidden: {\r\n display: 'none'\r\n },\r\n\r\n finishButton: {\r\n marginTop: theme.spacing(2)\r\n }\r\n})\r\n\r\nfunction ExPostGoToFinish(\r\n {\r\n match,\r\n classes,\r\n demandValidation,\r\n ojsPublicationStatus,\r\n isDemandChanged = {}\r\n }) {\r\n\r\n const id = match.params.id;\r\n const rp = RouterPath.myProcedure;\r\n\r\n const [openGoToFinishPopup, setOpenGoToFinishPopup] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n\r\n const findSection = (compareSection) => demandValidation.find(x => x.section === compareSection);\r\n const section = findSection(DemandValidation.EX_POST_GO_TO_FINISH);\r\n\r\n const editable = section ? section.editable : false;\r\n const isPublishActive = useMemo(() => isPublishButtonActive(demandValidation, ojsPublicationStatus, isDemandChanged), [demandValidation, ojsPublicationStatus, isDemandChanged]);\r\n const isDemandFinish = useMemo(() => isDemandFinished() || isDemandFinishing(), []);\r\n\r\n const handleGoToFinish = () => {\r\n setOpenGoToFinishPopup(false);\r\n setWorking(true);\r\n PublishService.publishExPost(id).then((resp) => {\r\n if (resp != null) {\r\n if (resp) {\r\n HeaderService.get(id);\r\n PublishService.markFirstPublication(id);\r\n const href = RouterPath.createPath(rp.steps.MP_4_ID, {id});\r\n RouterPath.redirect(href)\r\n } else {\r\n setWorking(false);\r\n }\r\n } else {\r\n setWorking(false);\r\n DemandService.getValidate(id, false);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {working && }\r\n\r\n \r\n {\r\n isPublishActive || isDemandFinish ?\r\n \r\n :\r\n \r\n }\r\n \r\n {isDemandFinish ? Tr('p1_pf_1_epf') : (isPublishActive ? Tr('p1_pf_1') : Tr('p1_pf_1_f'))}\r\n \r\n\r\n setOpenGoToFinishPopup(true)}\r\n >\r\n {Tr('exPost_goToFinish')}\r\n \r\n\r\n setOpenGoToFinishPopup(false)}\r\n confirmText={Tr('exPost_goToFinish_confirm')}\r\n />\r\n \r\n \r\n )\r\n}\r\n\r\nExPostGoToFinish.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n}), {\r\n clearResource\r\n})(withStyles(style)(withRouter(ExPostGoToFinish)));","import PropTypes from \"prop-types\";\r\nimport {connect} from \"react-redux\";\r\nimport {withRouter} from \"react-router\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\nimport Tr from \"translations/Translations\";\r\nimport Button from \"components/Button\";\r\nimport React from \"react\";\r\nimport GridBlock from \"../../../../../../../components/GridBlock\";\r\n\r\nfunction Questionnaire(\r\n {\r\n demandValidation\r\n }) {\r\n\r\n const findSection = (compareSection) => demandValidation.find(x => x.section === compareSection);\r\n\r\n const section = findSection(DemandValidation.QUESTIONNAIRE);\r\n\r\n const handleClick = () => {\r\n window.location.href = section.questionnaireTabUrl;\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nQuestionnaire.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandValidation: state.resources.demandValidation,\r\n}), {})(withRouter(Questionnaire));","import {Commission, Contractor, Dealings, Demand, Espd, Guarantee, Notice, PreparingPapersGenerator, Publication, Schedule, Siwz, NationalNotice, ExPostGoToFinish,\r\nDemandAdditionalInfo, Questionnaire} from './panels';\r\nimport DealingsService from \"services/DealingsService\";\r\nimport ScheduleService from \"services/ScheduleService\";\r\nimport CommissionService from \"services/CommissionService\";\r\nimport EspdService from \"services/EspdService\";\r\nimport GuaranteeService from \"services/GuaranteeService\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport ContractorService from \"services/ContractorService\";\r\nimport NoticeService from \"services/NoticeService\";\r\nimport NationalNoticeService from \"services/NationalNoticeService\";\r\nimport DemandAdditionalInfoService from \"services/DemandAdditionalInfoService\";\r\nimport {DemandValidation} from \"constants/DemandValidation\";\r\n\r\nexport default {\r\n mp_1_demand: Demand,\r\n mp_1_dealings: Dealings,\r\n mp_1_schedule: Schedule,\r\n mp_1_commission: Commission,\r\n mp_1_espd: Espd,\r\n mp_1_siwz: Siwz,\r\n mp_1_guarantee: Guarantee,\r\n mp_1_contractor: Contractor,\r\n mp_1_notice: Notice,\r\n mp_1_national_notice: NationalNotice,\r\n mp_1_publication: Publication,\r\n mp_1_ex_post_go_to_finish: ExPostGoToFinish,\r\n mp_1_preparing_papers_generator: PreparingPapersGenerator,\r\n mp_1_preparing_additional_info: DemandAdditionalInfo,\r\n mp_1_questionnaire: Questionnaire\r\n}\r\n\r\nexport const panelsValidationKeys = {\r\n mp_1_demand: (id) => null,\r\n mp_1_dealings: (id) => DealingsService.validate(id),\r\n mp_1_schedule: (id) => ScheduleService.validate(id),\r\n mp_1_commission: (id) => CommissionService.validate(id),\r\n mp_1_espd: (id) => EspdService.validate(id),\r\n mp_1_siwz: (id) => SiwzService.validateSIWZ(id),\r\n mp_1_guarantee: (id) => GuaranteeService.validate(id),\r\n mp_1_contractor: (id) => ContractorService.validate(id),\r\n mp_1_notice: (id) => NoticeService.validate(id),\r\n mp_1_national_notice: (id) => NationalNoticeService.validate(id),\r\n mp_1_publication: (id) => null,\r\n mp_1_ex_post_go_to_finish: (id) => null,\r\n mp_1_preparing_papers_generator: (id) => null,\r\n mp_1_preparing_additional_info: (id) => DemandAdditionalInfoService.validate(id, DemandValidation.PREPARING_ADDITIONAL_INFO),\r\n mp_1_questionnaire: (id) => null,\r\n}\r\n\r\n\r\nexport const isInitialHidden = (step, procedureType, passive, exPost) => {\r\n if(!procedureType || !step)\r\n return false;\r\n\r\n const func = hidden[step.key];\r\n return func && func(procedureType, passive, exPost);\r\n}\r\n\r\nconst hidden = {\r\n mp_1_dealings: (procedureType, passive, exPost) => {\r\n return passive === 'true' || exPost === 'true';\r\n },\r\n mp_1_notice: (procedureType, passive, exPost) => {\r\n return \"true\" === passive || exPost === 'true' || [\"europePublic\", \"europeSocialServices\"].indexOf(procedureType) === -1\r\n },\r\n mp_1_guarantee: (procedureType, passive, exPost) => {\r\n return \"true\" === passive || exPost === 'true' || [\"europePublic\", \"europeSocialServices\", \"nationalPublic\", \"nationalSocialServices\"].indexOf(procedureType) === -1\r\n },\r\n mp_1_espd: (procedureType, passive, exPost) => {\r\n return exPost === 'true' || !procedureType.startsWith(\"europe\")\r\n },\r\n mp_1_contractor: (procedureType, passive, exPost) => {\r\n return exPost === 'true';\r\n },\r\n mp_1_schedule: (procedureType, passive, exPost) => {\r\n return exPost === 'true';\r\n },\r\n mp_1_publication: (procedureType, passive, exPost) => {\r\n return exPost === 'true';\r\n },\r\n mp_1_ex_post_go_to_finish: (procedureType, passive, exPost) => {\r\n return exPost !== 'true';\r\n },\r\n mp_1_questionnaire: (procedureType, passive, exPost) => {\r\n return exPost === 'true';\r\n },\r\n}\r\n\r\n","import React from 'react'\r\nimport ExPostGoToFinish from './ExPostGoToFinish';\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return (\r\n expanded && \r\n )\r\n}\r\n\r\nexport default Index;","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport PreparingAdditionalInfo from \"./PreparingAdditionalInfo\";\r\nimport {DemandValidation, DemandValidationKeys} from \"constants/DemandValidation\";\r\n\r\n\r\nfunction Index(\r\n {\r\n expanded\r\n }) {\r\n return expanded && \r\n}\r\n\r\nIndex.propTypes = {\r\n expanded: PropTypes.bool,\r\n}\r\n\r\nexport default Index;","import React from 'react'\r\nimport {makeStyles, Tooltip, Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport ExpansionPanel from 'components/ExpansionPanel';\r\nimport {setConfirmCloseStepper, setStepperState} from 'redux/actions'\r\nimport {connect} from 'react-redux'\r\nimport NavigationBar from 'components/complex/floatingMenu/NavigationBar';\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowUp'\r\nimport clsx from 'clsx';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Tr from 'translations/Translations';\r\nimport Loading from 'components/Loading';\r\nimport ExpansionPanelTitleAvatar from \"components/ExpansionPanelTitleAvatar\";\r\nimport {DemandValidationSectionStatus as sectionStatus} from \"constants/DemandValidationSectionStatus\";\r\n\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n height: '100%',\r\n '&>*:not(:first-child)': {\r\n marginTop: theme.spacing(2)\r\n }\r\n },\r\n floatingMenu: {\r\n position: 'sticky',\r\n zIndex: theme.zIndex.appBar - 1,\r\n top: 109\r\n },\r\n rotate: {\r\n transform: 'rotate(180deg)'\r\n },\r\n adornmentGrid: {\r\n '&>*:first-child': {\r\n flexGrow: 1,\r\n marginRight: theme.spacing(2)\r\n }\r\n }\r\n}))\r\n\r\nfunction AccordionPart(\r\n {\r\n navigationBarButtons,\r\n working,\r\n steps,\r\n panels,\r\n stepperState,\r\n setStepperState,\r\n demandValidation,\r\n redirectOldPlatform,\r\n stateCloseValidator,\r\n deleteFormDraftFunc,\r\n saveFormDraftFunc,\r\n setConfirmCloseStepper\r\n }) {\r\n const classes = useStyle();\r\n\r\n const handleClick = id => (e) => {\r\n if (stateCloseValidator && stateCloseValidator() === false) {\r\n if (!!saveFormDraftFunc) {\r\n setConfirmCloseStepper(() => doHandleClick(id), Tr(stepperState), () => doHandleClickWithDraftSave(id));\r\n } else {\r\n setConfirmCloseStepper(() => doHandleClick(id), Tr(stepperState));\r\n }\r\n return\r\n }\r\n doHandleClick(id)\r\n }\r\n\r\n const doHandleClick = id => {\r\n if (!!deleteFormDraftFunc)\r\n deleteFormDraftFunc();\r\n _doHandleClick(id);\r\n }\r\n\r\n const doHandleClickWithDraftSave = id => {\r\n if (!!saveFormDraftFunc) {\r\n saveFormDraftFunc();\r\n }\r\n _doHandleClick(id);\r\n }\r\n\r\n const _doHandleClick = id => {\r\n if (stepperState !== id) setStepperState(id);\r\n else setStepperState(null);\r\n }\r\n\r\n const createTitle = (variant, label) => {\r\n return (\r\n \r\n \r\n \r\n {label}\r\n \r\n \r\n )\r\n }\r\n\r\n if (!steps || !demandValidation || working || redirectOldPlatform) return \r\n return (\r\n
\r\n {(!!navigationBarButtons && navigationBarButtons.length > 0) &&\r\n
\r\n \r\n
\r\n }\r\n\r\n {steps.filter(({apiId}) => {\r\n const section = demandValidation.find(x => x.section === apiId)\r\n if (!section) return true;\r\n return section.status !== sectionStatus.UNAVAILABLE;\r\n })\r\n .map(({key, label, apiId}) => {\r\n const section = demandValidation.find(x => x.section === apiId)\r\n const variant = section ? (section.status === sectionStatus.OK ? 'Done' : (section.status === sectionStatus.DISABLED ? 'Wait' : (section.status === sectionStatus.ERROR ? 'Required' : (section.required ? 'Required' : 'Optional')))) : \"Wait\";\r\n const _label = label;\r\n const Component = panels[key]\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n }\r\n expanded={stepperState === key}\r\n onChange={handleClick(key)}\r\n >\r\n \r\n \r\n )\r\n })}\r\n\r\n\r\n
\r\n )\r\n}\r\n\r\nAccordionPart.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n stepperState: state.stepper.state,\r\n stateCloseValidator: state.stepper.stateCloseValidator,\r\n deleteFormDraftFunc: state.stepper.deleteFormDraftFunc,\r\n saveFormDraftFunc: state.stepper.saveFormDraftFunc,\r\n demandValidation: state.resources.demandValidation,\r\n redirectOldPlatform: state.resources.redirectOldPlatform,\r\n}), {\r\n setStepperState,\r\n setConfirmCloseStepper\r\n})(AccordionPart);","import React, {useEffect, useState} from 'react'\r\nimport Dialog from 'components/Dialog';\r\nimport Tr from 'translations/Translations';\r\nimport Loading from \"components/Loading\";\r\nimport DemandService from \"services/DemandService\";\r\nimport PropTypes from 'prop-types';\r\nimport BoldTypography from \"../../BoldTypography\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport {Typography} from \"@material-ui/core\";\r\nimport SingleButton from \"../components/SingleButton\";\r\n\r\n\r\nfunction DemandRelatedObjects(\r\n {\r\n label,\r\n rels\r\n }) {\r\n\r\n\r\n return (\r\n <>\r\n {label}\r\n {\r\n rels.map((x, i) => {\r\n if (!!x.url)\r\n return ({x.name})\r\n else\r\n return ({x.name})\r\n })\r\n }\r\n
\r\n \r\n )\r\n}\r\n\r\n\r\nfunction DemandRelatedObjectsPopup(\r\n {\r\n relatedObjectServiceFunction = DemandService.getRelatedObjects,\r\n demandId,\r\n onClose\r\n }) {\r\n\r\n const [rel, setRel] = useState(null);\r\n\r\n useEffect(() => {\r\n relatedObjectServiceFunction(demandId).then((resp) => setRel(resp));\r\n }, [demandId, relatedObjectServiceFunction])\r\n\r\n\r\n return (\r\n <>\r\n }\r\n >\r\n {!rel ?\r\n \r\n :\r\n <>\r\n {!!rel.planItems && }\r\n {!!rel.purchaseRequests && }\r\n {!!rel.purchasingGroups && }\r\n {!!rel.demands && }\r\n \r\n }\r\n \r\n \r\n )\r\n}\r\n\r\n\r\nDemandRelatedObjectsPopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n}\r\n\r\nexport default DemandRelatedObjectsPopup;","import React, {useEffect, useMemo, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport panels, {isInitialHidden} from './part1.panels.components'\r\nimport {setStepperState} from 'redux/actions'\r\nimport {connect} from 'react-redux'\r\nimport ArrowIcon from '@material-ui/icons/KeyboardArrowUp'\r\nimport RefreshIcon from '@material-ui/icons/Refresh'\r\nimport MailIcon from '@material-ui/icons/Mail';\r\nimport ListIcon from '@material-ui/icons/List';\r\nimport DemandService from 'services/DemandService';\r\nimport PublishService from 'services/PublishService';\r\nimport ModificationService, {modify} from 'services/ModificationService';\r\nimport {isDemandModification, isDemandNew, isDemandOfferCollection, isDemandPreparing} from \"libs/getDemandStatus\";\r\nimport Confirm from \"components/popup/confirm/Confirm\";\r\nimport Alert from \"components/popup/alert/Alert\";\r\nimport createButton, {createSubmitFormButton} from \"components/complex/floatingMenu/createButton\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport Tr from 'translations/Translations';\r\n\r\nimport isCancelModificationButtonActive from \"libs/isCancelModificationButtonActive\";\r\nimport AccordionPart from \"pages/purchaser/MyProcedure/scenes/components/AccordionPart\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport reduxStore from \"redux/store\";\r\nimport DemandSectionsService from \"services/DemandSectionsService\";\r\nimport DemandRelatedObjectsPopup from \"components/popup/relatedObjects/DemandRelatedObjectsPopup\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport RfxRoundService from \"services/RfxRoundService\";\r\nimport NationalNoticeService from \"services/NationalNoticeService\";\r\n\r\n\r\nfunction Part1(\r\n {\r\n stepperState,\r\n setStepperState,\r\n steps,\r\n match,\r\n location,\r\n demandValidation,\r\n demandHeader,\r\n ojsPublicationStatus,\r\n bzpContractNoticeStatus,\r\n rfxPrivileges = {},\r\n demandPrivileges = {}\r\n }) {\r\n\r\n const [openCancelModificationPopup, setOpenCancelModificationPopup] = useState(false);\r\n const [relatedObjectPopup, setRelatedObjectPopup] = useState(false);\r\n const [working, setWorking] = useState(true);\r\n const [openDemandPublicLinkPopup, setOpenDemandPublicLinkPopup] = useState(false);\r\n const {enqueueSuccessSnackbar} = useSnackbar();\r\n\r\n //const scrollPosition = useWindowScroll();\r\n //const [nodeRef, topOffset] = useNodeTopPosition([scrollPosition]);\r\n const id = match.params.id;\r\n\r\n // eslint-disable-next-line\r\n const isModification = useMemo(() => isDemandModification(), [demandHeader]);\r\n // eslint-disable-next-line\r\n const isPreparing = useMemo(() => isDemandPreparing(), [demandHeader]);\r\n // eslint-disable-next-line\r\n const isNew = useMemo(() => isDemandNew(), [demandHeader]);\r\n // eslint-disable-next-line\r\n const isExPost = useMemo(() => demandHeader && demandHeader.exPost, [demandHeader]);\r\n // eslint-disable-next-line\r\n const isOfferCollection = useMemo(() => isDemandOfferCollection(), [demandHeader]);\r\n\r\n\r\n useEffect(() => {\r\n DemandService.getValidate(id).then(() => setWorking(false));\r\n if (id !== undefined && id > 0) {\r\n DemandService.getBuyerPrivileges(id);\r\n if (isPreparing === false && isNew === false && isExPost === false) {\r\n StatisticsService.getCurrentRound(id).then((resp) => {\r\n if(resp) RfxRoundService.getBuyerPrivileges(resp.id);\r\n })\r\n }\r\n }\r\n\r\n return () => {\r\n reduxStore.dispatch(setStepperState(null));\r\n DemandSectionsService.clearDemandValidationResources();\r\n HeaderService.clear();\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY)\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.RFX_PRIVILEGE_STORE_KEY)\r\n StatisticsService.clearCurrentRound();\r\n };\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (id !== undefined && id > 0) {\r\n\r\n if (isPreparing) {\r\n if (demandHeader?.noticeOjsType === true) {\r\n PublishService.checkPublishOjs(id);\r\n } else if(demandHeader?.noticeBzpType === true) {\r\n NationalNoticeService.getContractNoticeStatus(id);\r\n }\r\n } else if (isModification) {\r\n if (demandHeader?.noticeOjsType === true) {\r\n ModificationService.noticeOjsStatus(id);\r\n } else if(demandHeader?.noticeBzpType === true) {\r\n NationalNoticeService.getContractModificationNoticeStatus(id);\r\n }\r\n ModificationService.isDemandChanged(id)\r\n }\r\n }\r\n return () => {\r\n PublishService.clearOjsStatus();\r\n NationalNoticeService.clearResources(NationalNoticeService.BZP_CONTRACT_NOTICE_STATUS);\r\n ModificationService.clearDemandChanged();\r\n }\r\n // eslint-disable-next-line\r\n }, [id, demandHeader])\r\n\r\n\r\n const handleModifyClick = () => {\r\n setWorking(true);\r\n modify(id).then(() => {\r\n if (stepperState !== null) {\r\n setStepperState(null);\r\n }\r\n DemandService.getValidate(id).then(() => setWorking(false));\r\n });\r\n };\r\n\r\n const updateDemandNumber = () => {\r\n setWorking(true);\r\n DemandService.updateNumber(id).then((resp) => {\r\n if (resp.result) {\r\n setWorking(false);\r\n HeaderService.get(id);\r\n enqueueSuccessSnackbar(Tr('update_demand_number_success'));\r\n }\r\n });\r\n }\r\n\r\n const getNavigationBarButtons = () => {\r\n const buttons = [];\r\n if (id) {\r\n buttons.push(createButton('email_list', () => {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_EMAIL_LIST_ID, {id: id});\r\n RouterPath.redirect(href)\r\n }, undefined, MailIcon, 'primary', false, true));\r\n\r\n if (demandHeader && (demandHeader.hasPlanItems || demandHeader.hasPurchaseRequests)) {\r\n buttons.push(createButton('related_objects', () => setRelatedObjectPopup(true),\r\n \"outlined\", ListIcon, 'primary', false, true));\r\n\r\n }\r\n }\r\n\r\n if (!isExPost) {\r\n if (isPreparing && demandHeader && demandHeader.demandPublicLink) {\r\n buttons.push(createButton('demand_public_link_button', () => {\r\n setOpenDemandPublicLinkPopup(true);\r\n }, undefined, undefined, 'primary', false, true));\r\n }\r\n\r\n if (isModification) {\r\n buttons.push(createButton(\"modification_cancel\", () => {\r\n setOpenCancelModificationPopup(true)\r\n }, undefined, undefined, 'primary', !isCancelModificationButtonActive(demandValidation, ojsPublicationStatus, bzpContractNoticeStatus)));\r\n }\r\n\r\n if (isOfferCollection) {\r\n buttons.push(createButton(\"modify\", handleModifyClick, undefined, undefined, \"primary\", (!demandPrivileges.MODIFY || !demandHeader || !isOfferCollection)));\r\n }\r\n }\r\n\r\n if (demandHeader && demandHeader.showUpdateNumber && demandPrivileges.EDIT) {\r\n buttons.push(createButton(\"update_number\",\r\n updateDemandNumber,\r\n undefined,\r\n RefreshIcon,\r\n 'primary',\r\n stepperState !== null,\r\n false)\r\n );\r\n }\r\n\r\n const isSaveButton = isNew || isPreparing || isModification || !stepperState || stepperState === \"mp_1_siwz\" || stepperState === \"mp_1_espd\" || stepperState === \"mp_1_commission\" || stepperState === \"mp_1_preparing_additional_info\";\r\n\r\n buttons.push(createSubmitFormButton(isSaveButton ? \"save\" : \"close\",\r\n undefined,\r\n isSaveButton ? SaveIcon : ArrowIcon,\r\n 'primary',\r\n stepperState === null,\r\n isSaveButton)\r\n );\r\n\r\n return buttons;\r\n }\r\n\r\n\r\n const navigationBarButtons = getNavigationBarButtons();\r\n\r\n const rp = RouterPath.myProcedure;\r\n const handleConfirmCancelModification = () => {\r\n setOpenCancelModificationPopup(false);\r\n setWorking(true);\r\n ModificationService.cancel(id).then((resp) => {\r\n if (resp) {\r\n setWorking(false);\r\n const href = RouterPath.createPath(rp.steps.MP_2_ID, {id});\r\n RouterPath.redirect(href);\r\n }\r\n });\r\n };\r\n\r\n const filterSteps = () => {\r\n const params = new URLSearchParams(location.search);\r\n return steps.filter(x => !isInitialHidden(x, params.get(\"procedureType\"), params.get(\"passive\"), params.get(\"exPost\")))\r\n }\r\n\r\n const stepsFiltered = !!id ? steps : filterSteps();\r\n\r\n return (<>\r\n \r\n setOpenCancelModificationPopup(false)}\r\n confirmText=\"modification_cancel_popup_text\"\r\n />\r\n {demandHeader &&\r\n setOpenDemandPublicLinkPopup(false)}\r\n confirmText={demandHeader.demandPublicLink || \"\"}\r\n maxWidth='md'\r\n />\r\n }\r\n {\r\n relatedObjectPopup &&\r\n setRelatedObjectPopup(false)}/>\r\n }\r\n \r\n )\r\n}\r\n\r\nPart1.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n stepperState: state.stepper.state,\r\n steps: state.stepper.steps[0].steps,\r\n demandValidation: state.resources.demandValidation,\r\n form: state.form,\r\n ojsPublicationStatus: state.resources.ojsPublicationStatus,\r\n bzpContractNoticeStatus: state.resources.bzpContractNoticeStatus,\r\n rfxPrivileges: state.privileges[PrivilegeService.RFX_PRIVILEGE_STORE_KEY],\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY],\r\n}), {\r\n setStepperState\r\n})(Part1);","import React from 'react'\r\nimport {Grid, Paper} from '@material-ui/core';\r\nimport PropTypes from 'prop-types'\r\nimport {withStyles, withTheme} from '@material-ui/styles';\r\nimport clsx from 'clsx';\r\nimport Title from './Title';\r\nimport useNodeTopPosition from 'hooks/useNodeTopPosition';\r\n\r\nconst style = theme => ({\r\n root: {\r\n '&>*': {\r\n marginBottom: theme.spacing(4),\r\n }\r\n },\r\n fullHeight: {\r\n height: '100%',\r\n },\r\n paper: theme.components.paper,\r\n progressItem: {\r\n top: 100,\r\n position: 'sticky',\r\n zIndex: theme.zIndex.appBar - 1,\r\n }\r\n})\r\n\r\nfunction Workspace(\r\n {\r\n title,\r\n className,\r\n children,\r\n classes,\r\n render,\r\n fullHeight\r\n }) {\r\n\r\n const [nodeRef] = useNodeTopPosition()\r\n\r\n return (\r\n \r\n {title &&\r\n \r\n \r\n {title}\r\n \r\n }\r\n\r\n {\r\n render &&\r\n \r\n {render}\r\n \r\n }\r\n {\r\n children &&\r\n \r\n \r\n {children}\r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nWorkspace.propTypes = {\r\n className: PropTypes.string,\r\n title: PropTypes.string,\r\n children: PropTypes.any,\r\n render: PropTypes.any,\r\n fullHeight: PropTypes.bool,\r\n}\r\n\r\nWorkspace.propDefault = {\r\n fullHeight: true,\r\n}\r\n\r\nexport default withTheme(withStyles(style)(Workspace));\r\n","import { useState, useRef, useEffect } from 'react'\r\n\r\nexport default (params = []) => {\r\n\tconst rootRef = useRef();\r\n\tconst [topOffset, setTopOffset] = useState(0)\r\n\r\n\tuseEffect(() => {\r\n\t\tif (rootRef.current) {\r\n\t\t\tsetTopOffset(rootRef.current.offsetTop)\r\n\t\t}\r\n\t\t// eslint-disable-next-line\r\n\t}, [rootRef, ...params])\r\n\r\n\treturn [rootRef, topOffset]\r\n}","import React from 'react'\r\nimport { withStyles } from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Workspace from 'components/Workspace';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Title from 'components/Title';\r\n\r\nconst style = theme => ({\r\n\troot: {\r\n\r\n\t},\r\n\ttitle: {\r\n\t\tmarginBottom: theme.spacing(1)\r\n\t}\r\n})\r\n\r\nfunction Section({\r\n\tclasses,\r\n\ttitle,\r\n\tchildren,\r\n\ttitleAdditional,\r\n}) {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\r\n\t\t\t\t\t{titleAdditional}\r\n\t\t\t\t\r\n\t\t\t\t{children}\r\n\t\t\t\r\n\t\t\r\n\t)\r\n}\r\n\r\nSection.propTypes = {\r\n\tclasses: PropTypes.any,\r\n}\r\n\r\nexport default withStyles(style)(Section);","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\nimport {clearResource, setResource} from 'redux/actions'\r\nimport reduxStore from 'redux/store'\r\n\r\nexport const RESOURCE_ID = 'rfxSupplier';\r\n\r\nexport const clearSuppliers = () => {\r\n reduxStore.dispatch(clearResource(RESOURCE_ID));\r\n}\r\nexport const getSuppliers = async (demandId, roundId, pagination ) => {\r\n\r\n const params = {\r\n ...pagination\r\n }\r\n\r\n try {\r\n\r\n const res = await RestRequestGET(Endpoints.SUPPLIERS_LIST(demandId, roundId), {params});\r\n\r\n if (pagination.page > 1) {\r\n const state = reduxStore.getState();\r\n if (state?.resources?.rfxSupplier) {\r\n const res2 = {\r\n ...res,\r\n items: [...state.resources.rfxSupplier.items, ...res.items],\r\n }\r\n reduxStore.dispatch(setResource(RESOURCE_ID, res2));\r\n return;\r\n }\r\n }\r\n reduxStore.dispatch(setResource(RESOURCE_ID, res));\r\n\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst add = async (demandId, roundId, values) => {\r\n try {\r\n return await RestRequestPOST(Endpoints.SUPPLIERS_ADD(demandId, roundId), values)\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst invite = async (demandId, roundId, values) => {\r\n try {\r\n return await RestRequestPOST(Endpoints.SUPPLIERS_INVITE(demandId, roundId), values)\r\n } catch (error) {\r\n }\r\n}\r\n\r\nconst changeExternalSign = async (demandId, roundId, supplierId) => {\r\n try {\r\n const res = await RestRequestPOST(Endpoints.SUPPLIERS_CHANGE_EXTERNAL_SIGN(demandId, roundId, supplierId));\r\n const state = reduxStore.getState();\r\n if (state?.resources?.rfxSupplier && res !== null) {\r\n const suppliers = state.resources.rfxSupplier;\r\n const suppliers2 = {\r\n ...suppliers,\r\n items: suppliers.items.map((item) => item.id === res.id ? res : item)\r\n }\r\n reduxStore.dispatch(setResource(RESOURCE_ID, suppliers2));\r\n }\r\n return res;\r\n } catch (error) {\r\n }\r\n}\r\n\r\nexport default {\r\n invite,\r\n add,\r\n getSuppliers,\r\n clearSuppliers,\r\n changeExternalSign,\r\n RESOURCE_ID\r\n}","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Section from '../components/Section';\r\nimport {withRouter} from \"react-router\";\r\nimport RfxSupplierService from \"services/RfxSupplierService\";\r\nimport {connect} from \"react-redux\";\r\nimport Tr from \"translations/Translations\";\r\nimport Loading from \"components/Loading\";\r\nimport MoreButton from \"components/button/MoreButton\"\r\nimport ContractorTable from \"components/complex/contractor/ContractorTable\";\r\nimport AddContactor from \"components/popup/addContactor/AddContactor\";\r\nimport InviteContactor from 'components/popup/inviteContactor/InviteContactor';\r\nimport GridBlock from \"components/GridBlock\";\r\nimport Button from \"components/Button\";\r\nimport {Typography} from \"@material-ui/core\";\r\nimport clsx from \"clsx\";\r\nimport makeStyles from \"@material-ui/core/styles/makeStyles\";\r\nimport Dialog from \"components/Dialog\";\r\nimport useSearch, {getPaginationConfig} from \"hooks/useSearch\";\r\nimport {useDidUpdateEffect} from \"hooks/useDidUpdateEffect\";\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n dropzone: {\r\n marginTop: theme.spacing(1)\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing(2)\r\n }\r\n}));\r\n\r\nfunction ContractorSection(\r\n {\r\n demandStatistics,\r\n currentRfxRound,\r\n match,\r\n supplier,\r\n rfxPrivileges,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyle();\r\n const demandId = match.params.id;\r\n\r\n const [supplierLoading, setSupplierLoading] = useState(true);\r\n const [externalOfferSignConfirm, setExternalOfferSignConfirm] = useState([false, '']);\r\n const [invitePopup, setInvitePopup] = useState(false);\r\n const [addPopup, setAddPopup] = useState(false);\r\n\r\n const {searchData, totalCount, setTotalCount, setPaginationConfig} = useSearch();\r\n\r\n\r\n useEffect(() => {\r\n if (!!supplier && !!demandStatistics) {\r\n if (supplier.totalCount !== demandStatistics.numberOfSuppliers) {\r\n const loadedRows = supplier.items.length;\r\n const {pagination} = searchData;\r\n let curPageSize = loadedRows < pagination.pageSize ? pagination.pageSize : loadedRows;\r\n RfxSupplierService.getSuppliers(demandId, currentRfxRound.id, getPaginationConfig(1, curPageSize));\r\n }\r\n\r\n }\r\n // eslint-disable-next-line\r\n }, [demandStatistics])\r\n\r\n useEffect(() => {\r\n return () => RfxSupplierService.clearSuppliers()\r\n }, [demandId, currentRfxRound])\r\n\r\n\r\n useEffect(() => {\r\n if (currentRfxRound?.id) {\r\n setSupplierLoading(true);\r\n const {pagination} = searchData;\r\n RfxSupplierService.getSuppliers(demandId, currentRfxRound.id, pagination).then(() => (setSupplierLoading(false)));\r\n }\r\n // eslint-disable-next-line\r\n }, [searchData, currentRfxRound?.id])\r\n\r\n useDidUpdateEffect(() => {\r\n if (supplier?.totalCount !== undefined) {\r\n setTotalCount(supplier.totalCount)\r\n }\r\n }, [supplier?.totalCount]);\r\n\r\n const addContractorsTab = (data) => {\r\n setSupplierLoading(true);\r\n RfxSupplierService.add(demandId, currentRfxRound.id, data.platformAdded).then(() => {\r\n setPaginationConfig({...searchData.pagination, page: 1})\r\n });\r\n setAddPopup(false);\r\n }\r\n\r\n const handleExternalSign = (item) => {\r\n RfxSupplierService.changeExternalSign(demandId, currentRfxRound.id, item.id).then(response => {\r\n if (response != null)\r\n setExternalOfferSignConfirm([true, 'supplier_externalOfferSign_' + (response.externalOfferSign ? 'enabled' : 'disabled')]);\r\n });\r\n };\r\n\r\n const handleInvite = (values) => {\r\n setSupplierLoading(true);\r\n RfxSupplierService.invite(demandId, currentRfxRound.id, values).then(() => {\r\n setPaginationConfig({...searchData.pagination, page: 1})\r\n });\r\n setInvitePopup(false);\r\n };\r\n\r\n return (\r\n
\r\n \r\n {(!!supplier && !!currentRfxRound) &&\r\n <>\r\n {!!rfxPrivileges.ADD_CONTRACTOR && !currentRfxRound.offerCollectionEnded &&\r\n \r\n setAddPopup(true)}\r\n >\r\n {Tr('add_contractor')}\r\n \r\n setInvitePopup(true)}\r\n >\r\n {Tr('suggest_contractor')}\r\n \r\n \r\n }\r\n \r\n\r\n {supplierLoading && }\r\n\r\n \r\n\r\n {invitePopup && setInvitePopup(false)}\r\n contractorList={supplier}\r\n handleInvite={handleInvite}\r\n collectPostCode\r\n collectAddress\r\n addressRequired={false}\r\n collectCity\r\n cityRequired={false}\r\n />}\r\n {addPopup && setAddPopup(false)}\r\n addContractorsTab={addContractorsTab}\r\n />}\r\n \r\n }\r\n \r\n\r\n \r\n \r\n {Tr(externalOfferSignConfirm[1])}\r\n \r\n
\r\n setExternalOfferSignConfirm(false)}\r\n >\r\n {Tr('close')}\r\n \r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nContractorSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n supplier: state.resources[RfxSupplierService.RESOURCE_ID]\r\n}), {})(withRouter(ContractorSection));","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Section from '../components/Section';\r\nimport {withRouter} from \"react-router\";\r\nimport Tr from \"translations/Translations\";\r\nimport Offers from \"components/complex/offer/Offers\";\r\n\r\n\r\nfunction OfferSection(\r\n {\r\n\r\n match,\r\n\r\n }) {\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nOfferSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withRouter(OfferSection);","import React from 'react';\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n position: 'relative'\r\n },\r\n label: {\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n textAlign: 'center',\r\n color: theme.palette.text.primary\r\n },\r\n number: {\r\n fontSize: \"3rem\",\r\n //lineHeight: 1.6,\r\n },\r\n unit: {\r\n fontSize: \"1rem\",\r\n lineHeight: 1,\r\n },\r\n circle: {\r\n transition: \"0.35s stroke-dashoffset\",\r\n // axis compensation\r\n transform: \"rotate(-90deg)\",\r\n transformOrigin: \"50% 50%\",\r\n stroke: theme.palette.text.primary,\r\n fill: 'transparent',\r\n }\r\n}));\r\nconst ProgressRing = (\r\n {\r\n number,\r\n unit,\r\n percent = 0,\r\n width = 120,\r\n borderWidth = 2,\r\n }\r\n) => {\r\n\r\n const classes = useStyles();\r\n const center = (width / 2);\r\n const radius = center - (2 * borderWidth);\r\n const circumference = radius * 2 * Math.PI;\r\n\r\n const offset = circumference - (percent / 100 * circumference);\r\n\r\n return (\r\n
\r\n
\r\n \r\n {number}\r\n \r\n \r\n {unit}\r\n \r\n
\r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ProgressRing;","import React, {useEffect, useState} from 'react';\r\nimport ProgressRing from \"./ProgressRing\";\r\nimport {getDays, getDaysHoursMinutesSeconds} from \"libs/durations\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport Typography from \"components/BoldTypography\";\r\nimport GridBlock from \"components/GridBlock\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n title: {\r\n marginBottom: theme.spacing(1),\r\n color: theme.palette.text.primary,\r\n }\r\n}));\r\n\r\nconst RingCountdown = (\r\n {\r\n duration = 0,\r\n baseDuration = 0,\r\n endTimeCallback = () => {\r\n },\r\n title\r\n }) => {\r\n const classes = useStyles();\r\n\r\n const [days, setDays] = useState([0, 0]);\r\n const [hours, setHours] = useState([0, 0]);\r\n const [minutes, setMinutes] = useState([0, 0]);\r\n const [seconds, setSeconds] = useState([0, 0]);\r\n\r\n const [baseDays, setBaseDays] = useState(1);\r\n\r\n const [durationLeft, setDurationLeft] = useState(-1);\r\n\r\n useEffect(() => {\r\n const arr = getDaysHoursMinutesSeconds(durationLeft);\r\n setPeriods(arr);\r\n // eslint-disable-next-line\r\n }, [durationLeft]);\r\n\r\n const setPeriods = (arr) => {\r\n\r\n const dayPercent = baseDays === 0 ? 0 : Math.floor(arr[0] / baseDays * 100);\r\n let hourPercent = 100;\r\n let minutePercent = 100;\r\n let secondsPercent = 100;\r\n\r\n if (dayPercent === 0) {\r\n hourPercent = Math.floor(arr[1] / 24 * 100);\r\n if (hourPercent === 0) {\r\n minutePercent = Math.floor(arr[2] / 60 * 100);\r\n if (minutePercent === 0) {\r\n secondsPercent = Math.floor(arr[3] / 60 * 100);\r\n }\r\n }\r\n }\r\n\r\n setDays([arr[0], dayPercent]);\r\n setHours([arr[1], hourPercent]);\r\n setMinutes([arr[2], minutePercent]);\r\n setSeconds([arr[3], secondsPercent]);\r\n }\r\n\r\n useEffect(() => {\r\n const arr = getDaysHoursMinutesSeconds(duration);\r\n if (duration <= 0) {\r\n setPeriods(arr);\r\n return undefined;\r\n }\r\n\r\n const baseDays = getDays(baseDuration);\r\n setBaseDays(baseDays);\r\n\r\n const endTime = Math.floor(new Date().getTime() / 1000) + duration;\r\n\r\n const intervalFunction = (endTime) => () => {\r\n setDurationLeft((durationLeft) => {\r\n const newSeconds = endTime - Math.floor(new Date().getTime() / 1000);\r\n if (newSeconds !== durationLeft) {\r\n if (durationLeft === 0) {\r\n endTimeCallback();\r\n clearInterval(interval);\r\n }\r\n return newSeconds;\r\n }\r\n return durationLeft;\r\n })\r\n }\r\n const interval = setInterval(intervalFunction(endTime), 200);\r\n\r\n return () => {\r\n clearInterval(interval);\r\n }\r\n // eslint-disable-next-line\r\n }, [duration, baseDuration]\r\n )\r\n\r\n return (\r\n <>\r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n );\r\n};\r\n\r\nexport default RingCountdown;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport moment from \"libs/moment\";\r\nimport RingCountdown from \"components/complex/countdown/RingCountdown\";\r\nimport Workspace from \"components/Workspace\";\r\nimport Tr from \"../../../../../../translations/Translations\";\r\n\r\nfunction StatisticSection(\r\n {\r\n endTimeCallback,\r\n currentRfxRound\r\n }) {\r\n\r\n\r\n const [durations, setDurations] = useState([]);\r\n\r\n\r\n useEffect(() => {\r\n if (!currentRfxRound) {\r\n return;\r\n }\r\n const end = moment(currentRfxRound.offerEndDate);\r\n const nowTime = moment(currentRfxRound.now);\r\n if (currentRfxRound.offerCollectionEnded) {\r\n setDurations([0, 0]);\r\n return;\r\n }\r\n\r\n const duration2 = moment.duration(end.diff(nowTime));\r\n const number = duration2.asSeconds();\r\n\r\n const startTime = moment(currentRfxRound.offerStartDate);\r\n const startDuration = moment.duration(end.diff(startTime));\r\n const startNumber = startDuration.asSeconds();\r\n\r\n setDurations([number, startNumber]);\r\n }, [currentRfxRound]);\r\n\r\n return (\r\n \r\n {!durations.length || }\r\n }/>\r\n )\r\n\r\n}\r\n\r\nStatisticSection.propTypes = {\r\n demandStatistics: PropTypes.object,\r\n endTimeCallback: PropTypes.func,\r\n}\r\n\r\nStatisticSection.defaultProps = {\r\n endTimeCallback: () => {\r\n },\r\n}\r\n\r\nexport default StatisticSection;","import React from 'react';\r\nimport {Grid, makeStyles} from \"@material-ui/core\";\r\nimport Accordion from '@material-ui/core/Accordion';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport AccordionActions from '@material-ui/core/AccordionActions';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport clsx from 'clsx';\r\nimport ErrorIcon from \"@material-ui/icons/Error\";\r\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\";\r\nimport PlaylistAddRoundedIcon from '@material-ui/icons/PlaylistAddRounded';\r\nimport PlaylistAddCheckRoundedIcon from '@material-ui/icons/PlaylistAddCheckRounded';\r\nimport ProgressBar from \"components/ProgressBar\";\r\nimport PropTypes from \"prop-types\";\r\nimport Button from \"components/Button\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(4)\r\n },\r\n\r\n summary: {\r\n margin: theme.spacing(0),\r\n padding: theme.spacing(0),\r\n },\r\n summaryContent: {\r\n margin: theme.spacing(0) + \" !important\",\r\n },\r\n summaryButton: {\r\n margin: theme.spacing(0),\r\n },\r\n summaryGrid: {\r\n cursor: 'auto',\r\n userSelect: 'text',\r\n padding: theme.spacing(1)\r\n },\r\n gridItemCommon: {\r\n padding: theme.spacing(1),\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n gridItemButton: {\r\n justifyContent: 'flex-end',\r\n },\r\n icon: {\r\n fontSize: '3rem',\r\n },\r\n iconWait: {\r\n color: theme.palette.common.error\r\n },\r\n iconWaitOptional: {\r\n color: theme.palette.common.info\r\n },\r\n iconFinish: {\r\n color: theme.palette.common.success\r\n },\r\n}));\r\n\r\nconst ExpansionProgressPanel = (\r\n {\r\n iconWait,\r\n iconFinish,\r\n title,\r\n progress,\r\n queue,\r\n progressAtlText,\r\n showProgress = true,\r\n optional,\r\n buttonText,\r\n buttonDisabled,\r\n onButtonClick = () => {\r\n },\r\n details,\r\n actions,\r\n alwaysExpanded,\r\n expanded\r\n\r\n }) => {\r\n const classes = useStyles();\r\n\r\n const IconWait = iconWait || (optional ? PlaylistAddRoundedIcon : ErrorIcon);\r\n const IconFinish = iconFinish || (optional ? PlaylistAddCheckRoundedIcon : CheckCircleIcon);\r\n\r\n return (<>\r\n
\r\n \r\n \r\n event.stopPropagation()}\r\n onFocus={event => event.stopPropagation()}\r\n >\r\n \r\n {(!progress || progress < 100) &&\r\n }\r\n {progress >= 100 && }\r\n \r\n\r\n \r\n \r\n {title}{!optional && \"*\"}\r\n \r\n \r\n\r\n {showProgress && !progressAtlText && progress != null && (!queue || queue === 0) &&\r\n \r\n \r\n \r\n }\r\n\r\n {showProgress && !progressAtlText && progress != null && !!queue && queue > 0 &&\r\n \r\n {queue + ' ' + Tr('in_queue')}\r\n \r\n }\r\n\r\n {showProgress && progressAtlText &&\r\n \r\n {progressAtlText}\r\n \r\n }\r\n\r\n {buttonText && \r\n \r\n {buttonText}\r\n \r\n }\r\n \r\n \r\n\r\n\r\n {details && <>\r\n \r\n \r\n {details}\r\n \r\n }\r\n\r\n {actions && <>\r\n \r\n \r\n {actions}\r\n \r\n }\r\n \r\n
\r\n );\r\n }\r\n;\r\n\r\nExpansionProgressPanel.propTypes = {\r\n iconWait: PropTypes.object,\r\n iconFinish: PropTypes.object,\r\n optional: PropTypes.bool,\r\n title: PropTypes.string,\r\n progress: PropTypes.number,\r\n queue: PropTypes.number,\r\n buttonText: PropTypes.string,\r\n buttonDisabled: PropTypes.bool,\r\n onButtonClick: PropTypes.func,\r\n details: PropTypes.object,\r\n actions: PropTypes.object\r\n}\r\n\r\nExpansionProgressPanel.defaultProps = {}\r\nexport default ExpansionProgressPanel;","import React, {useEffect, useRef, useState} from 'react';\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport Tr from \"translations/Translations\";\r\nimport ExpansionProgressPanel from \"./ExpansionProgressPanel\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\nimport {connect} from \"react-redux\";\r\nimport {Typography} from \"@material-ui/core\";\r\nimport ProgressStatus from \"../../../../../../constants/ProgressStatus\";\r\n\r\nconst OfferDecryptionProgress = (\r\n {\r\n demandId,\r\n roundId,\r\n rfxOfferDecryptionStatus\r\n }) => {\r\n const [progress, setProgress] = useState([0, 0]);\r\n const [working, setWorking] = useState(false);\r\n const progressInterval = useRef(0);\r\n const statusInterval = useRef(0);\r\n\r\n useEffect(() => {\r\n\r\n RfxOfferService.getOffersDecryptionStatus(roundId).then(resp => {\r\n if (resp.status === ProgressStatus.IN_PROGRESS) {\r\n startProgressInterval();\r\n }\r\n\r\n if (resp.status === ProgressStatus.PROCESSED) {\r\n setProgress([100, 0]);\r\n }\r\n });\r\n\r\n return () => {\r\n if (progressInterval.current) clearInterval(progressInterval.current);\r\n if (statusInterval.current) clearInterval(statusInterval.current);\r\n }\r\n //eslint-disable-next-line\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (ProgressStatus.PROCESSED === rfxOfferDecryptionStatus.status) {\r\n const rp = RouterPath.myProcedure;\r\n RouterPath.redirect(RouterPath.createPath(rp.steps.MP_3_ID, {id: demandId}))\r\n }\r\n\r\n }, [rfxOfferDecryptionStatus, demandId])\r\n\r\n const startProgressInterval = () => {\r\n\r\n progressInterval.current = setInterval(async () => {\r\n const resp = await RfxOfferService.getOffersDecryptionProgress(roundId);\r\n setProgress(resp.result);\r\n if (resp.result[0] === 100) {\r\n clearInterval(progressInterval.current);\r\n progressInterval.current = 0;\r\n startOfferDecryptionStatusInterval();\r\n }\r\n\r\n }, 3000);\r\n };\r\n\r\n const startOfferDecryptionStatusInterval = () => {\r\n statusInterval.current = setInterval(async () => {\r\n const resp = RfxOfferService.getOffersDecryptionStatus(roundId);\r\n if (resp.status === ProgressStatus.PROCESSED) {\r\n clearInterval(statusInterval.current);\r\n statusInterval.current = 0;\r\n }\r\n }, 3000);\r\n };\r\n\r\n const onDecryptionStart = () => {\r\n setWorking(true);\r\n RfxOfferService.startOffersDecryptionProcess(roundId)\r\n .then(() => {\r\n RfxOfferService.getOffersDecryptionStatus(roundId).then(() => startProgressInterval());\r\n });\r\n };\r\n\r\n const openOffers = () => {\r\n RfxOfferService.startOffersDecryptionProcess(roundId)\r\n .then(() => {\r\n const rp = RouterPath.myProcedure;\r\n RouterPath.redirect(RouterPath.createPath(rp.steps.MP_3_ID, {id: demandId}));\r\n });\r\n }\r\n\r\n const getDetails = () => {\r\n if (rfxOfferDecryptionStatus?.errors?.length) {\r\n return <>
\r\n {rfxOfferDecryptionStatus.errors.map(x => {\r\n return {Tr(x)}\r\n }\r\n )}\r\n
\r\n \r\n }\r\n if (rfxOfferDecryptionStatus?.warnings?.length) {\r\n return <>
\r\n {rfxOfferDecryptionStatus.warnings.map(x => {\r\n return {Tr(x)}\r\n }\r\n )}\r\n
\r\n \r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n );\r\n};\r\n\r\nOfferDecryptionProgress.propTypes = {};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n rfxOfferDecryptionStatus: state.resources[RfxOfferService.RESOURCE_ID_RFX_OFFER_DECRYPTION_STATUS]\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(OfferDecryptionProgress);\r\n","import Tr from 'translations/Translations';\r\nexport default {\r\n FACEBOOK: \"facebook\",\r\n YOUTUBE: \"youtube\",\r\n}\r\n\r\nexport const streamPlatformLabel = (x) => Tr(`stream.platform.${x}`)","import React from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport SingleButton from \"components/popup/components/SingleButton\";\r\nimport TextInput from \"components/TextInput\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport Select from \"components/Select\";\r\nimport {streamPlatformLabel} from \"../constants/OnlinePlatforms\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n disabledEmpty: {\r\n fontStyle: 'italic'\r\n }\r\n}));\r\n\r\nfunction EditDescriptionPopup(\r\n {\r\n demandId,\r\n roundId,\r\n onClose = () => {\r\n },\r\n onUpdated = () => {\r\n },\r\n sessionOnlineStatus,\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const formId = useId();\r\n\r\n const disabled = !sessionOnlineStatus.editable;\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const getTypeElements = () => {\r\n\r\n const elements = sessionOnlineStatus.streamPlatforms.map(x => ({\r\n label: streamPlatformLabel(x),\r\n value: x\r\n }))\r\n\r\n return [{label: Tr('streaming_not_share'), value: \"\"}, ...elements]\r\n }\r\n\r\n const onSubmit = ({platform, link}) => {\r\n RfxOfferService.saveOffersPublicSessionOnline(roundId, {platform, link: platform ? link : \"\"}).then(onUpdated)\r\n }\r\n return (\r\n \r\n\r\n Boolean(val),\r\n then: VS.string()\r\n }\r\n )\r\n })}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n\r\n \r\n\r\n {Boolean(formikProps.values.platform) &&\r\n }\r\n\r\n {Boolean(formikProps.values.platform) &&\r\n \r\n }\r\n\r\n\r\n
\r\n {disabled ?\r\n \r\n :\r\n }\r\n
\r\n
\r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(EditDescriptionPopup);","import React, {useState} from 'react';\r\nimport Tr from \"translations/Translations\";\r\nimport ExpansionProgressPanel from \"./ExpansionProgressPanel\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\nimport {connect} from \"react-redux\";\r\nimport ProgressStatus from \"../../../../../../constants/ProgressStatus\";\r\nimport EditSessionOnlinePopup from \"./EditSessionOnlinePopup\";\r\nimport {streamPlatformLabel} from \"../constants/OnlinePlatforms\";\r\n\r\nconst PublicSessionOnlineProgress = (\r\n {\r\n demandId,\r\n roundId,\r\n onlineSession\r\n }) => {\r\n\r\n const [editPopupOpen, setEditPopupOpen] = useState(false);\r\n\r\n const onUpdated = () => {\r\n RfxOfferService.getOffersPublicSessionOnlineStatus(roundId).then(() => {\r\n setEditPopupOpen(false)\r\n })\r\n }\r\n return (\r\n <>\r\n setEditPopupOpen(true)}\r\n optional={!onlineSession.required}\r\n progressAtlText={onlineSession.sessionOnline.platform ? Tr('streaming_connected', {platform: streamPlatformLabel(onlineSession.sessionOnline.platform)}) : Tr('streaming_not_connected')}\r\n progress={onlineSession.status === ProgressStatus.PROCESSED ? 100 : 0}\r\n />\r\n {editPopupOpen && setEditPopupOpen(false)}\r\n onUpdated={onUpdated}/>\r\n }\r\n \r\n );\r\n};\r\n\r\nPublicSessionOnlineProgress.propTypes = {};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n onlineSession: state.resources[RfxOfferService.RESOURCE_ID_RFX_PUBLIC_SESSION_ONLINE_STATUS]\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PublicSessionOnlineProgress);\r\n","import React, {useEffect, useRef, useState} from 'react';\r\nimport Tr from \"translations/Translations\";\r\nimport ExpansionProgressPanel from \"./ExpansionProgressPanel\";\r\nimport {connect} from \"react-redux\";\r\nimport DealingsService from \"services/DealingsService\";\r\nimport ProgressStatus from \"constants/ProgressStatus\";\r\nimport Loading from \"components/Loading\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport RealizationAmountForm from \"components/complex/realizationAmount/RealizationAmountForm\";\r\nimport {Typography} from \"@material-ui/core\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport {isNonpublicProcedure} from \"constants/ProcedureType\";\r\n\r\n\r\nconst RealizationAmountProgress = (\r\n {\r\n demandId,\r\n roundId,\r\n demandStatistics,\r\n formSubmit,\r\n dealingsRealizationValueStatus,\r\n demandHeader\r\n }) => {\r\n\r\n\r\n const formId = 'realizationValuesForm';\r\n const [expanded, setExpanded] = useState(false);\r\n const [working, setWorking] = useState(false);\r\n const [realizationValues, setRealizationValues] = useState(undefined);\r\n const curOfferCount = useRef(demandStatistics.numberOfOffers);\r\n const publishMode = useRef(null)\r\n\r\n useEffect(() => {\r\n if (curOfferCount.current === 0 && demandStatistics.numberOfOffers > 0) {\r\n curOfferCount.current = 1;\r\n DealingsService.getRealizationValueStatus(demandId);\r\n }\r\n }, [demandStatistics, demandId])\r\n\r\n\r\n const handleSubmit = () => {\r\n if (dealingsRealizationValueStatus.editable) {\r\n publishMode.current = null;\r\n formSubmit[formId]();\r\n } else {\r\n setExpanded(false);\r\n }\r\n\r\n }\r\n\r\n useEffect(() => {\r\n\r\n\r\n if (expanded) {\r\n setWorking(true);\r\n DealingsService.getRealizationValues(demandId).then(resp => {\r\n setRealizationValues(resp);\r\n setWorking(false);\r\n })\r\n\r\n } else {\r\n setRealizationValues(undefined);\r\n }\r\n\r\n }, [expanded, demandId])\r\n\r\n const processPublishUnpublish = async(publish) => {\r\n const serviceMethod = publish ? DealingsService.publishRealizationAmountValue : DealingsService.unpublishRealizationAmountValue;\r\n await serviceMethod(demandId);\r\n }\r\n\r\n const onSubmit = ({dealings}) => {\r\n\r\n setWorking(true);\r\n\r\n const toCompare = realizationValues.dealings;\r\n\r\n const touched = dealings.filter((el, i) => {\r\n return el.realizationGrossValue !== toCompare[i].realizationGrossValue\r\n });\r\n\r\n DealingsService.saveRealizationValues(demandId, {dealings: touched}, publishMode.current).then(() => {\r\n if(publishMode.current !== null) {\r\n processPublishUnpublish(publishMode.current).then(()=> {\r\n const arr = [];\r\n arr.push(DealingsService.getRealizationValueStatus(demandId))\r\n arr.push(RfxOfferService.getOffersDecryptionStatus(roundId))\r\n Promise.all(arr).finally(()=> {\r\n setExpanded(false);\r\n setWorking(false);\r\n })\r\n })\r\n } else {\r\n const arr = [];\r\n arr.push(DealingsService.getRealizationValueStatus(demandId))\r\n arr.push(RfxOfferService.getOffersDecryptionStatus(roundId))\r\n Promise.all(arr).finally(()=> {\r\n setExpanded(false);\r\n setWorking(false);\r\n })\r\n }\r\n })\r\n }\r\n\r\n const handleCancel = () => setExpanded(false);\r\n\r\n\r\n const handlePublish = (publish) => {\r\n publishMode.current = publish;\r\n formSubmit[formId]();\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), handleCancel, 'outlined', working));\r\n buttons.push(createButton(Tr('save'), handleSubmit, undefined, working));\r\n if (dealingsRealizationValueStatus.realizationOfferAmountPublished)\r\n buttons.push(createButton(Tr('unpublish'), () => handlePublish(false), undefined, working));\r\n else\r\n buttons.push(createButton(Tr('publish'), () => handlePublish(true), undefined, working));\r\n return buttons;\r\n }\r\n\r\n const getActions = () => {\r\n if (!dealingsRealizationValueStatus.editable || working || !expanded) return\r\n return \r\n }\r\n const getDetails = () => {\r\n if (working || !expanded || !realizationValues) return \r\n\r\n return \r\n {Tr(isNonpublicProcedure(demandHeader.procedureType) ? \"realization_value_info_pzp_excluded\" : \"realization_value_info\")}\r\n \r\n \r\n }\r\n\r\n const handleExpandSave = () => {\r\n if (expanded) {\r\n handleSubmit();\r\n } else {\r\n setExpanded(true);\r\n }\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nRealizationAmountProgress.propTypes = {};\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n dealingsRealizationValueStatus: state.resources[DealingsService.RESOURCE_DEALING_REALIZATION_VALUE_STATUS],\r\n formSubmit: state.form\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(RealizationAmountProgress);\r\n","import React, {useEffect, useRef} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport OfferDecryptionProgress from \"../components/OfferDecryptionProgress\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\nimport {connect} from \"react-redux\";\r\nimport Loading from \"components/Loading\";\r\nimport {withRouter} from \"react-router\";\r\nimport PublicSessionOnlineProgress from \"../components/PublicSessionOnlineProgress\";\r\nimport DealingsService from \"services/DealingsService\";\r\nimport RealizationAmountProgress from \"../components/RealizationAmountProgress\";\r\nimport {isDemandOfferCollection, isDemandOfferDecryption, isDemandModification} from \"libs/getDemandStatus\";\r\nimport moment from \"libs/moment\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n root: {\r\n marginBottom: theme.spacing(4)\r\n }\r\n}));\r\n\r\nfunction OfferDecryptionSection(\r\n {\r\n demandStatistics,\r\n currentRfxRound,\r\n match,\r\n rfxOfferDecryptionStatus,\r\n onlineSessionStatus,\r\n dealingsRealizationValueStatus,\r\n demandHeader\r\n }) {\r\n\r\n const classes = useStyle();\r\n const demandId = match.params.id;\r\n const isOfferCollection = isDemandOfferCollection();\r\n const isModification = isDemandModification();\r\n const isOfferDecryption = isDemandOfferDecryption();\r\n const offerOpenTimeout = useRef(null);\r\n\r\n useEffect(() => {\r\n clearTimeout(offerOpenTimeout.current);\r\n if (currentRfxRound) {\r\n const offerOpenDate = moment(currentRfxRound.offerOpenDate);\r\n const offerDeadline = moment(currentRfxRound.offerEndDate);\r\n const now = moment(currentRfxRound.now);\r\n if (offerOpenDate.isAfter(now) && offerOpenDate.isAfter(offerDeadline)) {\r\n const diff = offerOpenDate.diff(now) + 500;\r\n offerOpenTimeout.current = setTimeout(() => {\r\n RfxOfferService.getOffersDecryptionStatus(currentRfxRound.id);\r\n }, diff);\r\n }\r\n }\r\n\r\n return () => {\r\n if (offerOpenTimeout.current) clearTimeout(offerOpenTimeout.current);\r\n }\r\n }, [demandStatistics, currentRfxRound])\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (currentRfxRound) {\r\n RfxOfferService.getOffersPublicSessionOnlineStatus(currentRfxRound.id);\r\n RfxOfferService.getOffersDecryptionStatus(currentRfxRound.id);\r\n if (demandHeader && !demandHeader.passiveOfferForm) {\r\n DealingsService.getRealizationValueStatus(demandId);\r\n }\r\n }\r\n\r\n return () => {\r\n RfxOfferService.clearResources(RfxOfferService.RESOURCE_ID_RFX_PUBLIC_SESSION_ONLINE_STATUS);\r\n RfxOfferService.clearResources(RfxOfferService.RESOURCE_ID_RFX_OFFER_DECRYPTION_STATUS);\r\n DealingsService.clearResources(DealingsService.RESOURCE_DEALING_REALIZATION_VALUE_STATUS);\r\n }\r\n }, [currentRfxRound, demandId, isOfferCollection, isOfferDecryption, demandHeader]);\r\n\r\n\r\n if (!demandStatistics || !onlineSessionStatus || !rfxOfferDecryptionStatus || !currentRfxRound || !demandHeader || (!demandHeader.passiveOfferForm && isOfferCollection && !dealingsRealizationValueStatus)) {\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n {(isOfferCollection || isModification) &&\r\n }\r\n {(!demandHeader.passiveOfferForm && Boolean(dealingsRealizationValueStatus)) &&\r\n }\r\n {((isOfferCollection || isModification || isOfferDecryption)) && currentRfxRound.offerCollectionEnded && }\r\n
\r\n )\r\n}\r\n\r\n\r\nOfferDecryptionSection.propTypes = {\r\n demandStatistics: PropTypes.object\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n rfxOfferDecryptionStatus: state.resources[RfxOfferService.RESOURCE_ID_RFX_OFFER_DECRYPTION_STATUS],\r\n onlineSessionStatus: state.resources[RfxOfferService.RESOURCE_ID_RFX_PUBLIC_SESSION_ONLINE_STATUS],\r\n dealingsRealizationValueStatus: state.resources[DealingsService.RESOURCE_DEALING_REALIZATION_VALUE_STATUS],\r\n demandHeader: state.resources.demandHeader,\r\n //rfxOfferPublicSessionStatus: state.resources[RfxOfferService.RESOURCE_ID_RFX_OFFER_PUBLIC_SESSION_STATUS],\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = {};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(OfferDecryptionSection));\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {withRouter} from \"react-router\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport DocumentsTables from \"components/complex/documentsTables/DocumentsTables\";\r\nimport Section from \"../components/Section\";\r\nimport Tr from \"translations/Translations\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%',\r\n position: \"relative\"\r\n },\r\n marginBottom: {\r\n marginBottom: theme.spacing(2),\r\n }\r\n}));\r\n\r\nfunction DocumentsSection(\r\n {\r\n match,\r\n siwzEditable,\r\n repoEditable\r\n }) {\r\n\r\n const classes = useStyles();\r\n let demandId = match.params.id;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\n\r\nDocumentsSection.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default withRouter(DocumentsSection);","import React, {useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport {makeStyles, Typography} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport DoubleButton from \"components/popup/components/DoubleButton\";\r\nimport RfxOfferService from \"services/RfxOfferService\";\r\nimport SingleButton from \"components/popup/components/SingleButton\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n disabledEmpty: {\r\n fontStyle: 'italic'\r\n }\r\n}));\r\n\r\nfunction ResendOfferInvitationPopup(\r\n {\r\n demandId,\r\n roundId,\r\n onClose = () => {\r\n },\r\n formSubmit\r\n }) {\r\n\r\n const classes = useStyle();\r\n const formId = useId();\r\n const [sent, setSent] = useState(false);\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = ({emails}, fp) => {\r\n const emailsTab = getEmailsTab(emails);\r\n if (emailsTab.length > 0) {\r\n RfxOfferService.sendIvniteToOffers(roundId, emailsTab).then((resp) => {\r\n if (resp.success) {\r\n setSent(true);\r\n } else {\r\n const errors = resp.errors;\r\n const filter = emailsTab.filter((x, i) => errors.hasOwnProperty(`emails[${i}]`));\r\n fp.setFieldError(\"emails\", Tr('invalid_emails', {emails: filter.join(\",\")}))\r\n }\r\n }).catch(()=>{});\r\n } else {\r\n onClose();\r\n }\r\n }\r\n\r\n const getEmailsTab = (emails) => {\r\n if (!emails) {\r\n return [];\r\n }\r\n return emails.split(';').map(x => x.trim()).filter(x => Boolean(x))\r\n\r\n }\r\n\r\n\r\n const emailValidator = VS.email();\r\n return (\r\n \r\n\r\n {sent ?\r\n <>\r\n\r\n {Tr('resend_offer_invitation_success')}\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n :\r\n\r\n\r\n {\r\n if (!value)\r\n return VS.string();\r\n\r\n const emailsTab = getEmailsTab(value);\r\n\r\n const invalidEmails = emailsTab.filter(x => !emailValidator.isValidSync(x));\r\n\r\n return VS.string().test('valid-emails-comma-separated', Tr('invalid_emails', {emails: invalidEmails.join(\",\")}), value => invalidEmails.length === 0)\r\n\r\n\r\n })\r\n })}\r\n onSubmit={onSubmit}\r\n id={formId}\r\n >\r\n {(formikProps) => (\r\n \r\n\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(ResendOfferInvitationPopup);","import React from 'react'\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Button from './Button';\r\n\r\nfunction Tile(\r\n {\r\n icon,\r\n numberText,\r\n text,\r\n dangerouslySetText,\r\n className,\r\n onClick,\r\n }) {\r\n return (\r\n \r\n \r\n {icon}\r\n \r\n {numberText}\r\n \r\n \r\n {!dangerouslySetText ? text : null}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nTile.propTypes = {\r\n classes: PropTypes.any,\r\n icon: PropTypes.object.isRequired,\r\n numberText: PropTypes.string,\r\n text: PropTypes.string,\r\n}\r\n\r\nTile.defaultProps = {}\r\n\r\nexport default Tile;","import React from 'react'\r\nimport {makeStyles} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport Tile from 'components/Tile';\r\nimport LocalOfferIcon from '@material-ui/icons/LocalOffer'\r\nimport ForumIcon from '@material-ui/icons/Forum'\r\nimport GroupIcon from '@material-ui/icons/Group'\r\nimport DescriptionIcon from '@material-ui/icons/Description'\r\nimport MailIcon from '@material-ui/icons/Mail';\r\nimport Tr from 'translations/Translations';\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {withRouter} from \"react-router\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n '&>*:not(:first-child)': {\r\n marginLeft: theme.spacing(2),\r\n },\r\n marginBottom: theme.spacing(4)\r\n },\r\n icon: {\r\n fontSize: theme.components.icon.fontSize,\r\n },\r\n mirror: {\r\n transform: 'scaleX(-1)'\r\n },\r\n tile: {\r\n width: 225,\r\n height: 203,\r\n }\r\n}));\r\n\r\nfunction TilesRow(\r\n {\r\n match,\r\n offerCollectionOrModification,\r\n demandStatistics\r\n }) {\r\n const classes = useStyles();\r\n const demandId = match.params.id;\r\n\r\n const handleCorrespondenceClick = () => {\r\n if (!demandStatistics.operatorQnALink) {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_CORRESPONDENCE_ID, {id: demandId});\r\n RouterPath.redirect(href)\r\n } else {\r\n window.location.href = demandStatistics.operatorQnALink.url;\r\n }\r\n };\r\n\r\n const handleDocumentsClick = (e) => {\r\n e.preventDefault();\r\n if (offerCollectionOrModification) {\r\n scrollTo(\"#documentsSection\")\r\n } else {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_3_ID, {id: demandId});\r\n RouterPath.redirect(href)\r\n }\r\n }\r\n\r\n const handleOffersClick = (e) => {\r\n e.preventDefault();\r\n if (offerCollectionOrModification) {\r\n scrollTo(\"#offersSection\")\r\n } else {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_3_ID, {id: demandId});\r\n RouterPath.redirect(href)\r\n }\r\n }\r\n\r\n\r\n return (\r\n <>\r\n
\r\n }\r\n text={Tr('messages')}\r\n numberText={demandStatistics.numberOfUnreadMessagesFromSuppliers + ' / ' + demandStatistics.numberOfMessagesFromSuppliers}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n handleCorrespondenceClick();\r\n }}\r\n />\r\n }\r\n text={Tr('offers')}\r\n numberText={demandStatistics.numberOfOffers.toString()}\r\n onClick={handleOffersClick}\r\n />\r\n }\r\n text={Tr('contractors')}\r\n numberText={demandStatistics.numberOfSuppliers.toString()}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n scrollTo(\"#contractorSection\")\r\n }}\r\n />\r\n }\r\n text={Tr('documents')}\r\n numberText={demandStatistics.numberOfAttachments.toString()}\r\n onClick={handleDocumentsClick}\r\n />\r\n }\r\n text={Tr('email_list')}\r\n numberText={demandStatistics.numberOfEmails.toString()}\r\n onClick={(e) => {\r\n e.preventDefault();\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_EMAIL_LIST_ID, {id: demandId});\r\n RouterPath.redirect(href)\r\n }}\r\n />\r\n
\r\n \r\n )\r\n}\r\n\r\nTilesRow.propTypes = {\r\n offerCollectionOrModification: PropTypes.bool.isRequired,\r\n demandStatistics: PropTypes.object.isRequired,\r\n}\r\n\r\nTilesRow.defaultProps = {}\r\n\r\n\r\nexport default withRouter(TilesRow);","import Endpoints from 'constants/Endpoints';\r\nimport {RestRequestGET, RestRequestPOST} from 'libs/RestRequest';\r\n\r\nconst getPoll = async (pollType) => {\r\n return await RestRequestGET(Endpoints.POLL_GET(pollType));\r\n}\r\n\r\nconst savePollRating = async (rating) => {\r\n return await RestRequestPOST(Endpoints.POLL_SAVE_RATING(), rating);\r\n}\r\n\r\nexport default {getPoll, savePollRating}","import React from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {ToggleButton, ToggleButtonGroup} from \"@material-ui/lab\";\r\nimport SentimentVeryDissatisfiedIcon from '@material-ui/icons/SentimentVeryDissatisfied';\r\nimport SentimentDissatisfiedIcon from '@material-ui/icons/SentimentDissatisfied';\r\nimport SentimentSatisfiedIcon from '@material-ui/icons/SentimentSatisfied';\r\nimport SentimentSatisfiedAltIcon from '@material-ui/icons/SentimentSatisfiedAltOutlined';\r\nimport SentimentVerySatisfiedIcon from '@material-ui/icons/SentimentVerySatisfied';\r\n\r\n\r\nconst ratings = [\r\n {\r\n rating: 0,\r\n icon: ,\r\n label: 'Very Dissatisfied',\r\n },\r\n {\r\n rating: 1,\r\n icon: ,\r\n label: 'Very Dissatisfied',\r\n },\r\n {\r\n rating: 2,\r\n icon: ,\r\n },\r\n {\r\n rating: 3,\r\n icon: ,\r\n },\r\n {\r\n rating: 4,\r\n icon: ,\r\n },\r\n {\r\n rating: 5,\r\n icon: ,\r\n },\r\n {\r\n rating: 6,\r\n icon: ,\r\n },\r\n {\r\n rating: 7,\r\n icon: ,\r\n },\r\n {\r\n rating: 8,\r\n icon: ,\r\n },\r\n {\r\n rating: 9,\r\n icon: ,\r\n },\r\n {\r\n rating: 10,\r\n icon: ,\r\n }];\r\n\r\nfunction PollNpsSwitch(\r\n {\r\n scoreChange,\r\n score,\r\n classes = {},\r\n }) {\r\n\r\n return (\r\n \r\n {\r\n ratings.map((x) => \r\n {\"\" + x.rating} {x.icon}\r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\nPollNpsSwitch.propTypes = {\r\n scoreChange: PropTypes.func.isRequired,\r\n score: PropTypes.number,\r\n classes: PropTypes.shape({\r\n root: PropTypes.string,\r\n button: PropTypes.string\r\n })\r\n}\r\n\r\nexport default PollNpsSwitch;","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport Dialog from 'components/Dialog';\r\nimport {makeStyles} from \"@material-ui/styles\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport PollService from \"services/PollService\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport PollNpsSwitch from \"./PollNpsSwitch\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n button: {\r\n padding: \"20px 25px\"\r\n },\r\n question: {\r\n marginBottom: theme.spacing()\r\n }\r\n}))\r\n\r\n\r\n\r\nfunction Poll(\r\n {\r\n demandId,\r\n pollType,\r\n onClose\r\n }) {\r\n const classes = useStyle();\r\n\r\n const [poll, setPoll] = useState({});\r\n\r\n useEffect(() => {\r\n PollService.getPoll(pollType).then((resp) => setPoll(resp));\r\n // eslint-disable-next-line\r\n }, [])\r\n\r\n\r\n const handleChange = (event, rate) => {\r\n\r\n const rating = {\r\n pollType: pollType,\r\n objectType: \"demand\",\r\n objectId: demandId,\r\n score: rate\r\n }\r\n PollService.savePollRating(rating);\r\n onClose();\r\n\r\n };\r\n\r\n return (\r\n \r\n \r\n {poll.question}\r\n\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nPoll.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n pollType: PropTypes.string.isRequired,\r\n onClose: PropTypes.func.isRequired\r\n}\r\n\r\nexport default Poll;","import React, {useEffect, useMemo, useRef, useState} from 'react'\r\nimport ContractorSection from './sections/ContractorSection';\r\nimport OfferSection from './sections/OfferSection';\r\nimport StatisticSection from \"./sections/StatisticSection\";\r\nimport StatisticsService from \"services/StatisticsService\";\r\nimport OfferDecryptionSection from \"./sections/OfferDecryptionSection\";\r\nimport DocumentsSection from \"./sections/DocumentsSection\";\r\nimport NavigationBar from \"components/complex/floatingMenu/NavigationBar\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport {modify} from \"services/ModificationService\";\r\nimport {isDemandModification, isDemandOfferCollection} from \"libs/getDemandStatus\";\r\nimport createButton from \"components/complex/floatingMenu/createButton\";\r\nimport Workspace from \"components/Workspace\";\r\nimport {connect} from \"react-redux\";\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport ResendOfferInvitationPopup from \"./components/ResendOfferInvitationPopup\";\r\nimport TilesRow from \"./components/TilesRow\";\r\nimport Loading from \"components/Loading\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport DemandRelatedObjectsPopup from \"components/popup/relatedObjects/DemandRelatedObjectsPopup\";\r\nimport PublishService from \"services/PublishService\";\r\nimport Poll from \"components/popup/poll/Poll\";\r\nimport SiwzService from \"services/SiwzService\";\r\nimport RepoService from \"services/RepoService\";\r\nimport RfxRoundService from \"services/RfxRoundService\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport DemandService from \"services/DemandService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n menuBar: {\r\n direction: 'rtl',\r\n marginBottom: theme.spacing(2)\r\n }\r\n}))\r\n\r\nconst rp = RouterPath.myProcedure;\r\n\r\nfunction Part2(\r\n {\r\n match,\r\n demandStatistics,\r\n currentRfxRound,\r\n demandHeader,\r\n siwzEditable = false,\r\n repoEditable = false,\r\n rfxPrivileges = {},\r\n demandPrivileges = {}\r\n }) {\r\n\r\n const demandId = match.params.id;\r\n const classes = useStyle();\r\n\r\n const [working, setWorking] = useState(false);\r\n const [refreshStats, setRefreshStats] = useState(0);\r\n const [resendInvitationPopupOpen, setResendInvitationPopup] = useState(false);\r\n const [relatedObjectPopup, setRelatedObjectPopup] = useState(false);\r\n const [firstPublication, setFirstPublication] = useState(()=> PublishService.isFirstPublication(demandId));\r\n const intervalId = useRef(0);\r\n const loadingInProgress = useRef(false);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const offerCollection = useMemo(() => isDemandOfferCollection(), [demandHeader]);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const modification = useMemo(() => isDemandModification(), [demandHeader]);\r\n\r\n useEffect(() => {\r\n if (!loadingInProgress.current && currentRfxRound?.id) {\r\n loadingInProgress.current = true;\r\n StatisticsService.getStats(demandId, currentRfxRound.id).finally(() => loadingInProgress.current = false);\r\n }\r\n }, [refreshStats, currentRfxRound, demandId])\r\n\r\n useEffect(() => {\r\n setRefreshStats(x => x + 1);\r\n }, [currentRfxRound])\r\n\r\n useEffect(() => {\r\n StatisticsService.getCurrentRound(demandId).then((res)=> {\r\n if(res)\r\n RfxRoundService.getBuyerPrivileges(res.id)\r\n });\r\n intervalId.current = setInterval(() => {\r\n setRefreshStats(x => x + 1)\r\n }, 20000);\r\n SiwzService.isSiwzEditable(demandId);\r\n RepoService.isRepoEditable(demandId);\r\n DemandService.getBuyerPrivileges(demandId);\r\n\r\n return () => {\r\n if (intervalId.current)\r\n clearInterval(intervalId.current);\r\n StatisticsService.clearStats();\r\n StatisticsService.clearCurrentRound();\r\n HeaderService.clear();\r\n SiwzService.clearResources(SiwzService.SIWZ_EDITABLE_RESOURCE_ID);\r\n RepoService.clearResources(RepoService.REPO_EDITABLE_RESOURCE_ID);\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.RFX_PRIVILEGE_STORE_KEY);\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY);\r\n }\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n\r\n const endTimeCallback = () => {\r\n StatisticsService.getCurrentRound(demandId);\r\n setRefreshStats(x => x + 1);\r\n };\r\n\r\n const handlePrevClick = () => {\r\n const href = RouterPath.createPath(rp.steps.MP_1_ID, {id: demandId});\r\n RouterPath.redirect(href)\r\n };\r\n\r\n const handleModifyClick = () => {\r\n if (!working) {\r\n setWorking(true);\r\n modify(demandId)\r\n .then((resp) => {\r\n if (resp) {\r\n handlePrevClick();\r\n } else {\r\n setWorking(false);\r\n }\r\n }).catch(() => {\r\n setWorking(false);\r\n })\r\n }\r\n };\r\n\r\n\r\n const getNavigationBarButtons = () => {\r\n const buttons = [];\r\n if (!demandHeader || !currentRfxRound) {\r\n return buttons;\r\n }\r\n const offerCollection = isDemandOfferCollection();\r\n if (demandHeader.hasPlanItems || demandHeader.hasPurchaseRequests) {\r\n buttons.push(createButton('related_objects', () => setRelatedObjectPopup(true),\"outlined\", ListIcon, 'primary', false));\r\n }\r\n buttons.push(createButton(\"resend_offer_invitation\", () => setResendInvitationPopup(true), \"outlined\", undefined, \"primary\", !rfxPrivileges.RESEND_INVITATION || working || !(offerCollection || modification)));\r\n buttons.push(createButton(\"modify\", handleModifyClick, undefined, undefined, \"primary\", !demandPrivileges.MODIFY || working || !offerCollection));\r\n return buttons;\r\n };\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const navigationBarButtons = useMemo(getNavigationBarButtons, [demandHeader, currentRfxRound, rfxPrivileges, demandPrivileges, working])\r\n\r\n return (\r\n <>\r\n {(Boolean(currentRfxRound) && Boolean(demandHeader) && Boolean(demandStatistics)) ?\r\n <>\r\n \r\n \r\n {(offerCollection || modification) &&\r\n \r\n }\r\n \r\n \r\n {(offerCollection || modification) &&\r\n \r\n }\r\n \r\n {(offerCollection || modification) &&\r\n \r\n }\r\n }\r\n />\r\n \r\n :\r\n \r\n }\r\n {resendInvitationPopupOpen &&\r\n setResendInvitationPopup(false)}/>}\r\n {\r\n relatedObjectPopup &&\r\n setRelatedObjectPopup(false)}/>\r\n }\r\n {\r\n firstPublication && setFirstPublication(false)} pollType='demand_publication' demandId={demandId} />\r\n }\r\n \r\n )\r\n}\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n demandHeader: state.resources.demandHeader,\r\n demandStatistics: state.resources[StatisticsService.DEMAND_STATISTICS_RESOURCE_ID],\r\n currentRfxRound: state.resources[StatisticsService.CURRENT_RFX_RESOURCE_ID],\r\n siwzEditable: state.resources[SiwzService.SIWZ_EDITABLE_RESOURCE_ID],\r\n repoEditable: state.resources[RepoService.REPO_EDITABLE_RESOURCE_ID],\r\n rfxPrivileges: state.privileges[PrivilegeService.RFX_PRIVILEGE_STORE_KEY],\r\n demandPrivileges: state.privileges[PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY],\r\n });\r\n\r\nconst mapDispatchToProps = {};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Part2);","import React, {useEffect, useState} from \"react\";\r\nimport Tr from \"translations/Translations\";\r\nimport PropTypes from \"prop-types\";\r\nimport Dialog from \"components/Dialog\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Loading from \"components/Loading\";\r\nimport GridBlock from \"components/GridBlock\";\r\nimport useId from \"hooks/useId\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport ErrorOutlineIcon from '@material-ui/icons/ErrorOutline';\r\nimport {connect} from \"react-redux\";\r\nimport DealingsService from \"services/DealingsService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport RealizationAmountForm from \"components/complex/realizationAmount/RealizationAmountForm\";\r\nimport Typography from \"../../../../../../../components/Typography\";\r\n\r\n\r\nconst RealizationValuePopup = (\r\n {\r\n demandId,\r\n onCancel,\r\n onSuccess,\r\n editable,\r\n formSubmit,\r\n }) => {\r\n\r\n\r\n const [realizationValues, setRealizationValues] = useState(null);\r\n const [working, setWorking] = useState(true);\r\n const [error, setError] = useState(null);\r\n const formId = useId();\r\n const handleSubmit = () => formSubmit[formId]();\r\n\r\n const onSubmit = ({dealings}) => {\r\n setError(false);\r\n setWorking(true);\r\n\r\n const toCompare = realizationValues.dealings;\r\n\r\n const touched = dealings.filter((el, i) => {\r\n return el.realizationGrossValue !== toCompare[i].realizationGrossValue\r\n });\r\n\r\n DealingsService.saveRealizationValues(demandId, {dealings: touched}).then(onSuccess).catch(() => {\r\n setError(Tr('unknown_error_message'));\r\n setWorking(false);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n DealingsService.getRealizationValues(demandId).then(resp => {\r\n if (isResponseValid(resp, setError))\r\n setRealizationValues(resp)\r\n }).finally(() => setWorking(false))\r\n }, [demandId])\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onCancel, 'outlined', working));\r\n if (realizationValues && realizationValues.realizationValuePublished === true) {\r\n buttons.push(createButton(Tr('unpublish'), () => changePublication(false), undefined, working || !editable));\r\n } else if (realizationValues && realizationValues.realizationValuePublished === false) {\r\n buttons.push(createButton(Tr('publish'), () => changePublication(true), undefined, working || !editable));\r\n }\r\n\r\n buttons.push(createButton(Tr('save'), handleSubmit, undefined, working || !editable));\r\n return buttons;\r\n }\r\n\r\n\r\n const changePublication = (publish) => {\r\n setWorking(true);\r\n const serviceMethod = publish ? DealingsService.publishRealizationAmountValue : DealingsService.unpublishRealizationAmountValue;\r\n serviceMethod(demandId).then(() => {\r\n return DealingsService.getRealizationValues(demandId)\r\n }).then(resp => setRealizationValues(resp)).finally(() => setWorking(false));\r\n }\r\n\r\n\r\n return (\r\n }\r\n title={Tr('realization_value')}\r\n maxWidth='md'\r\n >\r\n \r\n {working && }\r\n {!!error && {error}}\r\n\r\n {!!realizationValues && <>\r\n\r\n \r\n {Tr(realizationValues.realizationValuePublished ? 'realization_value_published' : 'realization_value_unpublished')}\r\n \r\n\r\n\r\n \r\n }\r\n \r\n\r\n\r\n )\r\n}\r\n\r\nRealizationValuePopup.propTypes = {\r\n demandId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\r\n onCancel: PropTypes.func.isRequired,\r\n onSuccess: PropTypes.func.isRequired,\r\n editable: PropTypes.bool.isRequired,\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(RealizationValuePopup)","import React, {useEffect, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport panels from './part3.panels.components'\r\nimport {clearResource, setStepperState} from 'redux/actions'\r\nimport {connect} from 'react-redux'\r\nimport AccordionPart from \"pages/purchaser/MyProcedure/scenes/components/AccordionPart\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport createButton, {createSubmitFormButton} from \"components/complex/floatingMenu/createButton\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\nimport ForumIcon from '@material-ui/icons/Forum'\r\nimport reduxStore from \"redux/store\";\r\nimport DemandSectionsService from \"services/DemandSectionsService\";\r\nimport {DemandValidation, DemandValidationKeys} from \"constants/DemandValidation\";\r\nimport RealizationValuePopup from \"./panels/components/RealizationValuePopup\";\r\nimport ArrowIcon from \"@material-ui/icons/KeyboardArrowUp\";\r\nimport DemandRelatedObjectsPopup from \"components/popup/relatedObjects/DemandRelatedObjectsPopup\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport DemandService from \"services/DemandService\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\n\r\n\r\nfunction Part3(\r\n {\r\n stepperState,\r\n setStepperState,\r\n clearResource,\r\n steps,\r\n match,\r\n location,\r\n demandValidation,\r\n demandHeader,\r\n rfxPrivileges = {}\r\n }) {\r\n const id = match.params.id;\r\n const [working, setWorking] = useState(true);\r\n const [realizationValuesPopupOpened, setRealizationValuesPopupOpened] = useState(false);\r\n const [relatedObjectPopup, setRelatedObjectPopup] = useState(false);\r\n\r\n useEffect(() => {\r\n const p2 = HeaderService.get(id);\r\n const p1 = DemandSectionsService.getEvaluationSections(id);\r\n const p3 = DemandService.getBuyerPrivileges(id);\r\n const p4 = DemandService.getBuyerRfxPrivileges(id);\r\n Promise.all([p1, p2, p3, p4]).then(() => setWorking(false));\r\n\r\n return () => {\r\n reduxStore.dispatch(setStepperState(null));\r\n DemandSectionsService.clearDemandValidationResources();\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY)\r\n HeaderService.clear();\r\n };\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const navigationBarButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton('email_list', () => {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_EMAIL_LIST_ID, {id: id});\r\n RouterPath.redirect(href)\r\n }, undefined, MailIcon, 'primary', false, true));\r\n\r\n if (!!rfxPrivileges.CORRESPONDENCE) {\r\n buttons.push(createButton('correspondence', () => {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_CORRESPONDENCE_ID, {id: id});\r\n RouterPath.redirect(href)\r\n }, undefined, ForumIcon, 'primary', false, true));\r\n }\r\n\r\n if (demandHeader && (demandHeader.hasPlanItems || demandHeader.hasPurchaseRequests)) {\r\n buttons.push(createButton('related_objects', () => setRelatedObjectPopup(true),\r\n \"outlined\", ListIcon, 'primary', false, true));\r\n }\r\n\r\n if (demandValidation) {\r\n const section = demandValidation.find(x => x.section === DemandValidation.PART_3_SECTION);\r\n if (section && section.showUpdateRealizationValue) {\r\n buttons.push(createButton('realization_demand_value', () => setRealizationValuesPopupOpened(true),\r\n 'outlined', undefined, 'primary', false, false));\r\n }\r\n }\r\n\r\n const isSaveButton = !!stepperState && stepperState === DemandValidationKeys.EVALUATION_ADDITIONAL_INFO;\r\n buttons.push(createSubmitFormButton(isSaveButton ? \"save\" : \"close\",\r\n undefined,\r\n isSaveButton ? SaveIcon : ArrowIcon,\r\n 'primary',\r\n stepperState === null,\r\n isSaveButton)\r\n );\r\n return buttons;\r\n }\r\n\r\n return (<>\r\n \r\n {realizationValuesPopupOpened && setRealizationValuesPopupOpened(false)}\r\n onCancel={() => setRealizationValuesPopupOpened(false)}\r\n editable\r\n />\r\n }\r\n {\r\n relatedObjectPopup &&\r\n setRelatedObjectPopup(false)}/>\r\n }\r\n \r\n )\r\n}\r\n\r\nPart3.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n stepperState: state.stepper.state,\r\n steps: state.stepper.steps[2].steps,\r\n demandValidation: state.resources.demandValidation,\r\n rfxPrivileges: state.privileges[PrivilegeService.RFX_PRIVILEGE_STORE_KEY],\r\n form: state.form,\r\n}), {\r\n setStepperState,\r\n clearResource\r\n})(Part3);","import React, {useEffect, useMemo, useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport panels from './part4.panels.components'\r\nimport {clearResource, setStepperState} from 'redux/actions'\r\nimport {connect} from 'react-redux'\r\nimport reduxStore from 'redux/store'\r\nimport AccordionPart from \"pages/purchaser/MyProcedure/scenes/components/AccordionPart\";\r\nimport HeaderService from \"services/HeaderService\";\r\nimport createButton, {createSubmitFormButton} from \"components/complex/floatingMenu/createButton\";\r\nimport RouterPath from \"libs/RouterPath\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\nimport ForumIcon from '@material-ui/icons/Forum'\r\nimport DemandSectionsService from \"services/DemandSectionsService\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport ArrowIcon from \"@material-ui/icons/KeyboardArrowUp\";\r\nimport ListIcon from \"@material-ui/icons/List\";\r\nimport DemandRelatedObjectsPopup from \"components/popup/relatedObjects/DemandRelatedObjectsPopup\";\r\nimport DemandService from \"services/DemandService\";\r\nimport PrivilegeService from \"services/PrivilegeService\";\r\nimport {DemandValidationKeys} from \"constants/DemandValidation\";\r\nimport {isNationalProcedure} from \"constants/ProcedureType\";\r\nimport Tr from \"translations/Translations\"\r\n\r\nfunction Part4(\r\n {\r\n stepperState,\r\n setStepperState,\r\n clearResource,\r\n steps,\r\n match,\r\n demandValidation,\r\n demandHeader\r\n }) {\r\n const id = match.params.id;\r\n const [working, setWorking] = useState(true);\r\n const [relatedObjectPopup, setRelatedObjectPopup] = useState(false);\r\n\r\n useEffect(() => {\r\n const p2 = HeaderService.get(id);\r\n const p1 = DemandSectionsService.getFinishingSections(id);\r\n const p3 = DemandService.getBuyerPrivileges(id);\r\n Promise.all([p1, p2, p3]).then(() => setWorking(false));\r\n\r\n return () => {\r\n reduxStore.dispatch(setStepperState(null));\r\n DemandSectionsService.clearDemandValidationResources();\r\n PrivilegeService.cleanupPrivileges(PrivilegeService.DEMAND_PRIVILEGE_STORE_KEY);\r\n HeaderService.clear();\r\n };\r\n // eslint-disable-next-line\r\n }, []);\r\n\r\n const navigationBarButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton('email_list', () => {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_EMAIL_LIST_ID, {id: id});\r\n RouterPath.redirect(href)\r\n }, undefined, MailIcon, 'primary', false, true));\r\n\r\n if (!demandHeader || !demandHeader.exPost) {\r\n buttons.push(createButton('correspondence', () => {\r\n const href = RouterPath.createPath(RouterPath.myProcedure.steps.MP_CORRESPONDENCE_ID, {id: id});\r\n RouterPath.redirect(href)\r\n }, undefined, ForumIcon, 'primary', false, true));\r\n\r\n if (demandHeader && (demandHeader.hasPlanItems || demandHeader.hasPurchaseRequests)) {\r\n buttons.push(createButton('related_objects', () => setRelatedObjectPopup(true),\r\n \"outlined\", ListIcon, 'primary', false, true));\r\n }\r\n }\r\n\r\n\r\n const isSaveButton = !!stepperState && (stepperState === \"mp_4_demand_plan_realization\" || stepperState === \"mp_4_finish_additional_info\");\r\n buttons.push(createSubmitFormButton(isSaveButton ? \"save\" : \"close\",\r\n undefined,\r\n isSaveButton ? SaveIcon : ArrowIcon,\r\n 'primary',\r\n stepperState === null,\r\n isSaveButton)\r\n );\r\n\r\n return buttons;\r\n\r\n };\r\n\r\n const stepsMemo = useMemo(()=> {\r\n return steps.map(x => x.key === DemandValidationKeys.RESULT_NOTICE && isNationalProcedure(demandHeader?.procedureType) ? {...x, label: Tr(\"mp_4_result_notice_national\")} : x )\r\n },[demandHeader, steps])\r\n\r\n\r\n return (<>\r\n \r\n {\r\n relatedObjectPopup &&\r\n setRelatedObjectPopup(false)}/>\r\n }\r\n \r\n )\r\n}\r\n\r\nPart4.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default connect((state) => ({\r\n demandHeader: state.resources.demandHeader,\r\n stepperState: state.stepper.state,\r\n steps: state.stepper.steps[3].steps,\r\n demandValidation: state.resources.demandValidation,\r\n form: state.form,\r\n}), {\r\n setStepperState,\r\n clearResource\r\n})(Part4);","import React from 'react'\r\nimport {TextField} from '@material-ui/core';\r\nimport getObjectValue from 'libs/getObjectValue'\r\nimport PropTypes from 'prop-types';\r\nimport {Autocomplete} from \"@material-ui/lab\";\r\nimport Tr from \"translations/Translations\";\r\n\r\n\r\nfunction OrganizationsSelect(\r\n {\r\n formikProps,\r\n id,\r\n label,\r\n items,\r\n noError,\r\n className,\r\n required,\r\n disabled,\r\n onChange = () => {\r\n },\r\n onChipClick,\r\n chipTitle\r\n }) {\r\n\r\n\r\n const errorValue = getObjectValue(id, formikProps.errors, '')\r\n //const touched = getObjectValue(id, formikProps.touched, false)\r\n const value = getObjectValue(id, formikProps.values, [])\r\n const editable = getObjectValue('_editable', formikProps.values, true);\r\n\r\n const isError = !noError && !!errorValue;\r\n\r\n let _label = label;\r\n if (required) _label += '*';\r\n\r\n const handleChange = (event, newValue) => {\r\n formikProps.setFieldValue(id, newValue.map(x => x.value));\r\n formikProps.setFieldTouched(id, true);\r\n onChange(newValue);\r\n };\r\n\r\n return (\r\n option.label}\r\n value={items.filter(x => value.includes(x.value))}\r\n filterSelectedOptions\r\n disableCloseOnSelect\r\n\r\n disabled={disabled || !editable}\r\n ChipProps={{\r\n onClick: onChipClick,\r\n title: chipTitle\r\n }}\r\n renderInput={params => {\r\n return \r\n }}\r\n\r\n />)\r\n\r\n}\r\n\r\nOrganizationsSelect.propTypes = {\r\n className: PropTypes.string,\r\n formikProps: PropTypes.object,\r\n id: PropTypes.string.isRequired,\r\n label: PropTypes.string,\r\n items: PropTypes.arrayOf(\r\n PropTypes.oneOfType([\r\n PropTypes.shape({\r\n value: PropTypes.any.isRequired,\r\n label: PropTypes.string.isRequired,\r\n }),\r\n PropTypes.string.isRequired,\r\n ])\r\n ),\r\n onChipClick: PropTypes.func,\r\n chipTitle: PropTypes.string\r\n}\r\n\r\nOrganizationsSelect.defaultProps = {\r\n items: []\r\n}\r\n\r\nexport default OrganizationsSelect\r\n","export default (x) => {\r\n let label = x.name;\r\n if (x.postCode || x.city) {\r\n label += \" (\";\r\n if (x.postCode) {\r\n label += x.postCode;\r\n }\r\n if (x.city) {\r\n label += \", \" + x.city;\r\n }\r\n label += \")\";\r\n }\r\n return label;\r\n}\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport contractorNameBuilder from \"libs/contractorNameBuilder\";\r\nimport Typography from \"components/Typography\";\r\n\r\nfunction CorrespondenceEmailList(\r\n {\r\n wrapper,\r\n className\r\n }) {\r\n\r\n return
\r\n {contractorNameBuilder(wrapper.recipient)}\r\n
    \r\n {wrapper.emails.map((x, i) =>
  • {`${i+1}. ${x}`}
  • )}\r\n
\r\n
;\r\n\r\n}\r\n\r\nCorrespondenceEmailList.propTypes = {\r\n wrapper: PropTypes.shape({\r\n recipient: PropTypes.object.isRequired,\r\n emails: PropTypes.arrayOf(PropTypes.string).isRequired\r\n }).isRequired\r\n}\r\nexport default CorrespondenceEmailList;\r\n\r\n","import React, {useEffect, useMemo, useState} from 'react'\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport GridBlock from 'components/GridBlock';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport VS from \"constants/ValidationShema\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Loading from \"components/Loading\";\r\nimport CorrespondenceService from \"services/CorrespondenceService\";\r\nimport OrganizationsSelect from \"components/OrganizationsSelect\";\r\nimport InputLimits from \"constants/InputLimits\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\nimport contractorNameBuilder from \"libs/contractorNameBuilder\";\r\nimport ToggleButton from \"@material-ui/lab/ToggleButton\";\r\nimport ToggleButtonGroup from \"@material-ui/lab/ToggleButtonGroup\";\r\nimport TypographyWithIcon from \"components/TypographyWithIcon\";\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport Button from \"components/Button\";\r\nimport CorrespondenceEmailList from \"./CorrespondenceEmailList\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport {connect} from \"react-redux\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n marginTop: {\r\n marginTop: theme.spacing(4)\r\n },\r\n marginLeft: {\r\n marginLeft: theme.spacing(2)\r\n },\r\n loading: {\r\n width: '98%'\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n },\r\n uploadFile: {\r\n marginBottom: 20\r\n },\r\n toggle: {\r\n width: \"100%\"\r\n },\r\n toggleButton: {\r\n width: \"50%\"\r\n },\r\n dialogContent: {\r\n position: \"relative\"\r\n },\r\n ctrEmailList: {\r\n background: theme.palette.background.paper,\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n width: \"100%\",\r\n height: \"100%\"\r\n },\r\n ctrEmailListTitle: {\r\n position: \"fixed\",\r\n background: theme.palette.background.paper,\r\n maxWidth: 900,\r\n marginTop: theme.spacing(-1)\r\n }\r\n}));\r\n\r\nconst limits = InputLimits.procedure.correspondence;\r\n\r\nfunction AddThreadPopup(\r\n {\r\n rfxRoundId,\r\n listResourceId,\r\n onClose,\r\n contractor,\r\n formSubmit,\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const [error, setError] = useState('');\r\n const [sendType, setSendType] = useState('');\r\n const [working, setWorking] = useState(!contractor);\r\n const [withOfferSwitch, setWithOfferSwitch] = useState(false);\r\n const [contractorList, setContractorList] = useState([]);\r\n const [contractorEmailList, setContractorEmailList] = useState(null);\r\n const {enqueueErrorSnackbar} = useSnackbar();\r\n const formId = useId();\r\n\r\n const contractorListForSelect = useMemo(() => {\r\n const srcList = withOfferSwitch ? contractorList.filter(x => x.hasOffer) : contractorList;\r\n return srcList.map(x => ({label: contractorNameBuilder(x), value: x.id}));\r\n }, [contractorList, withOfferSwitch]);\r\n\r\n const handleSubmit = (type) => {\r\n setError('');\r\n setSendType(type);\r\n formSubmit[formId]();\r\n }\r\n\r\n useEffect(() => {\r\n if (!contractor) {\r\n const contractorInRoundList = CorrespondenceService.getBuyerContractorInRoundList(rfxRoundId).then(resp => setContractorList(resp));\r\n Promise.all([contractorInRoundList]).finally(() => setWorking(false));\r\n }\r\n\r\n }, [rfxRoundId, contractor]);\r\n\r\n const handleSaveResponse = (response) => {\r\n if (isResponseValid(response, setError)) {\r\n setWorking(false);\r\n onClose();\r\n } else {\r\n setWorking(false);\r\n }\r\n };\r\n\r\n const handleSendResponse = (saveResponse) => {\r\n if (isResponseValid(saveResponse, setError)) {\r\n const messages = saveResponse.messages;\r\n if (!messages || messages.length === 0 || !messages[0].messageId || !saveResponse.threadId) {\r\n setError(Tr('unknown_error_message'));\r\n } else {\r\n if (contractor) {\r\n CorrespondenceService.sendContractorMessage(rfxRoundId, saveResponse.threadId, messages[0].messageId, listResourceId).then(handleSaveResponse).catch(() => setWorking(false))\r\n } else {\r\n CorrespondenceService.sendBuyerMessage(rfxRoundId, saveResponse.threadId, messages[0].messageId, listResourceId).then(handleSaveResponse).catch(() => setWorking(false))\r\n }\r\n }\r\n } else {\r\n setWorking(false);\r\n }\r\n };\r\n\r\n const onSubmit = (thread) => {\r\n setWorking(true);\r\n const req = {\r\n subject: thread.subject,\r\n message: {\r\n attachments: thread.attachments,\r\n contents: thread.contents,\r\n recipients: contractor ? [] : contractorList.filter(x => thread.supplierRecipientIds.indexOf(x.id) > -1)\r\n }\r\n };\r\n\r\n if (sendType === 'save') {\r\n if (contractor) {\r\n CorrespondenceService.addContractorThread(rfxRoundId, req, listResourceId).then(handleSaveResponse).catch(() => setWorking(false));\r\n } else {\r\n CorrespondenceService.addBuyerThread(rfxRoundId, req, listResourceId).then(handleSaveResponse).catch(() => setWorking(false));\r\n }\r\n } else if (sendType === 'send') {\r\n if (contractor) {\r\n CorrespondenceService.addContractorThread(rfxRoundId, req, listResourceId).then(handleSendResponse).catch(() => setWorking(false));\r\n } else {\r\n CorrespondenceService.addBuyerThread(rfxRoundId, req, listResourceId).then(handleSendResponse).catch(() => setWorking(false));\r\n }\r\n\r\n }\r\n setSendType('');\r\n\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working || !!contractorEmailList));\r\n buttons.push(createButton(Tr('save'), () => handleSubmit('save'), 'outlined', working || !!contractorEmailList));\r\n buttons.push(createButton(Tr('send'), () => handleSubmit('send'), undefined, working || !!contractorEmailList));\r\n return buttons;\r\n }\r\n\r\n const onChangeWithOffer = (withOffer, formikProps) => {\r\n if (withOffer !== null && withOffer !== withOfferSwitch) {\r\n formikProps.setFieldValue('supplierRecipientIds', []);\r\n setWithOfferSwitch(withOffer)\r\n }\r\n }\r\n\r\n const chipClick = (e) => {\r\n setContractorEmailList({});\r\n const ctr = contractorList.find(x => contractorNameBuilder(x) === e.target.innerText);\r\n CorrespondenceService.getBuyerContractorEmailList(rfxRoundId, ctr.contractorDepartmentId).then(setContractorEmailList).catch(() => {\r\n setContractorEmailList(null)\r\n enqueueErrorSnackbar(Tr(\"unknown_error_message\"));\r\n })\r\n\r\n }\r\n\r\n return (\r\n }\r\n >\r\n
\r\n \r\n {(formikProps) => (\r\n \r\n {working && }\r\n\r\n {error && {error}}\r\n\r\n {!contractor &&\r\n onChangeWithOffer(v, formikProps)}>\r\n \r\n {Tr(\"correspondence_all_suppliers\")}\r\n \r\n \r\n {Tr(\"correspondence_suppliers_with_offer\")}\r\n \r\n \r\n }\r\n {!contractor &&\r\n \r\n }\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n )}\r\n \r\n {!!contractorEmailList &&
\r\n \r\n {Tr(\"correspondence_email_notification_list\")}\r\n \r\n \r\n {\r\n !contractorEmailList.recipient ? : \r\n }\r\n\r\n
\r\n }\r\n
\r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(AddThreadPopup);","import React, {useState} from 'react'\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Tr from 'translations/Translations';\r\nimport GridBlock from 'components/GridBlock';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport TextInput from \"../../TextInput\";\r\nimport Loading from \"../../Loading\";\r\nimport InputLimits from \"../../../constants/InputLimits\";\r\nimport UploadFile from \"../../UploadFile\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport MultiButton, {createButton} from \"../../popup/components/MultiButton\";\r\nimport AddContactor from \"../../popup/addContactor/AddContactor\";\r\nimport getObjectValue from \"../../../libs/getObjectValue\";\r\nimport InviteContactor from \"../../popup/inviteContactor/InviteContactor\";\r\nimport Chip from \"../../Chip\";\r\nimport ContractorService from \"../../../services/ContractorService\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n margin: {\r\n marginBottom: theme.spacing(2)\r\n },\r\n inlineBlock: {\r\n display: 'inline-block',\r\n marginRight: theme.spacing(2)\r\n },\r\n loading: {\r\n width: '98%'\r\n },\r\n buttonRow: {\r\n textAlign: \"end\"\r\n },\r\n uploadFile: {\r\n marginBottom: 20\r\n },\r\n nameError: {\r\n fontSize: '0.75rem'\r\n }\r\n}));\r\n\r\nconst limits = InputLimits.procedure.correspondence;\r\n\r\nfunction AddThreadAsSupplierForm(\r\n {\r\n demandId,\r\n working,\r\n error,\r\n formikProps,\r\n\r\n }) {\r\n\r\n const classes = useStyle();\r\n\r\n const [addPopup, setAddPopup] = useState(false);\r\n const [invitePopup, setInvitePopup] = useState(false);\r\n\r\n const getFormButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('add_contractor'), () => setAddPopup(true), undefined, working));\r\n buttons.push(createButton(Tr('suggest_contractor'), () => setInvitePopup(true), undefined, working));\r\n return buttons;\r\n }\r\n\r\n const getInviteDefaultValues = () => ({\r\n name: getObjectValue('name', formikProps.values, ''),\r\n email: getObjectValue('email', formikProps.values, ''),\r\n vatin: {\r\n number: getObjectValue('vatin.number', formikProps.values, ''),\r\n prefix: getObjectValue('vatin.prefix', formikProps.values, 'PL'),\r\n }\r\n }\r\n )\r\n\r\n\r\n const handleClearContractor = () => {\r\n\r\n const values = {\r\n ...formikProps.values,\r\n contractorDepartmentId: 0,\r\n suggestContractor: false,\r\n contractorName: null,\r\n name: '',\r\n email: '',\r\n vatin: {\r\n number: '',\r\n prefix: \"PL\"\r\n }\r\n };\r\n formikProps.setValues(values);\r\n }\r\n\r\n const handleChipClick = () => {\r\n if (getObjectValue('suggestContractor', formikProps.values, false)) {\r\n setInvitePopup(true);\r\n } else {\r\n setAddPopup(true);\r\n }\r\n\r\n }\r\n const handleAddContractors = (data) => {\r\n\r\n if (data && data.platformAdded.length > 0) {\r\n ContractorService.getContractorDetails(demandId, data.platformAdded[0]).then((resp) => {\r\n handleClearContractor();\r\n formikProps.setFieldValue(\"contractorDepartmentId\", data.platformAdded[0]);\r\n formikProps.setFieldValue(\"contractorName\", resp.name);\r\n }).finally(() => setAddPopup(false));\r\n } else {\r\n setAddPopup(false);\r\n }\r\n }\r\n\r\n const handleInvite = (data) => {\r\n const values = {\r\n ...formikProps.values,\r\n suggestContractor: true,\r\n contractorDepartmentId: 0,\r\n contractorName:data.name,\r\n ...data\r\n };\r\n formikProps.setValues(values);\r\n setInvitePopup(false);\r\n }\r\n\r\n const contractorName = getObjectValue('contractorName', formikProps.values, false);\r\n const contractorNameError = getObjectValue('contractorName', formikProps.errors, '');\r\n\r\n return (\r\n {working && }\r\n\r\n \r\n\r\n
\r\n {Tr('contractor')}*:\r\n {!!contractorName && }\r\n {!!contractorNameError && {contractorNameError}}\r\n
\r\n\r\n {error && {error}}\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n {addPopup && setAddPopup(false)}\r\n addContractorsTab={handleAddContractors}\r\n />}\r\n\r\n {invitePopup && setInvitePopup(false)}\r\n handleInvite={handleInvite}\r\n defaultValues={getInviteDefaultValues()}\r\n />}\r\n\r\n
)\r\n}\r\n\r\nexport default AddThreadAsSupplierForm;","import React, {useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport Form from 'components/Form';\r\nimport * as Yup from 'yup';\r\nimport useId from 'hooks/useId';\r\nimport {connect} from 'react-redux'\r\nimport VS from \"constants/ValidationShema\";\r\nimport InputLimits from \"constants/InputLimits\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport {withRouter} from \"react-router\";\r\nimport AddThreadAsSupplierForm from \"./AddThreadAsSupplierForm\";\r\nimport CorrespondenceService from \"services/CorrespondenceService\";\r\nimport isResponseValid from \"libs/isResponseValid\";\r\n\r\n\r\nconst limits = InputLimits.procedure.correspondence;\r\n\r\nfunction AddThreadAsSupplierPopup(\r\n {\r\n match,\r\n rfxRoundId,\r\n listResourceId,\r\n onClose = () => {\r\n },\r\n formSubmit,\r\n }) {\r\n\r\n let demandId = match.params.id;\r\n\r\n const [error, setError] = useState('');\r\n const [working, setWorking] = useState(false);\r\n const formId = useId();\r\n\r\n const handleSubmit = () => {\r\n setError('');\r\n formSubmit[formId]();\r\n }\r\n\r\n const handleSaveResponse = (response) => {\r\n if (isResponseValid(response, setError)) {\r\n setWorking(false);\r\n onClose(response);\r\n } else {\r\n setWorking(false);\r\n }\r\n }\r\n\r\n const onSubmit = (thread) => {\r\n setWorking(true);\r\n\r\n let sender;\r\n if (thread.suggestContractor) {\r\n sender = {\r\n name: thread.name,\r\n email: thread.email,\r\n vatin: {...thread.vatin},\r\n }\r\n } else {\r\n sender = {\r\n contractorDepartmentId: thread.contractorDepartmentId\r\n }\r\n }\r\n\r\n const req = {\r\n subject: thread.subject,\r\n message: {\r\n attachments: thread.attachments,\r\n contents: thread.contents,\r\n sender\r\n }\r\n }\r\n\r\n CorrespondenceService.saveBuyerThreadAsContractor(rfxRoundId, req, listResourceId).then(handleSaveResponse).catch(() => setWorking(false));\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('cancel'), onClose, 'outlined', working));\r\n buttons.push(createButton(Tr('save'), handleSubmit, undefined, working));\r\n return buttons;\r\n }\r\n\r\n\r\n return (\r\n }\r\n >\r\n \r\n {(formikProps) => (\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default connect((state) => ({\r\n formSubmit: state.form\r\n}), {})(withRouter(AddThreadAsSupplierPopup));","import React, {useEffect, useState} from 'react'\r\nimport Tr from 'translations/Translations';\r\nimport Dialog from 'components/Dialog';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport CorrespondenceService from \"../../../services/CorrespondenceService\";\r\nimport Loading from \"../../Loading\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"../../../constants/DateFormats\";\r\nimport SimpleTable from \"../simpleTable/SimpleTable\";\r\nimport TooltipIcon from \"../../icon/TooltipIcon\";\r\nimport {Mail, MailOutline} from \"@material-ui/icons\";\r\n\r\n\r\nexport const createConfirmObject = (message, confirmFn, cancelFn) => {\r\n return {\r\n message,\r\n confirm: confirmFn,\r\n cancel: cancelFn\r\n }\r\n}\r\n\r\nconst useStyle = makeStyles((theme) => ({\r\n bold: {\r\n fontWeight: theme.typography.fontWeightBold\r\n },\r\n buttonRow: {\r\n marginTop: theme.spacing(2),\r\n textAlign: \"end\"\r\n },\r\n lpColumn: theme.components.table.lpColumn,\r\n emailColumn: theme.components.table.emailColumn,\r\n ipColumn: theme.components.table.ipColumn,\r\n dateTimeColumn: {\r\n ...theme.components.table.dateTimeColumn,\r\n textAlign: 'center'\r\n }\r\n}));\r\n\r\nfunction MessageEmailDeliveryPopup(\r\n {\r\n recipient,\r\n messageId,\r\n rfxRoundId,\r\n onClose\r\n }) {\r\n\r\n\r\n const classes = useStyle();\r\n\r\n const [working, setWorking] = useState(true);\r\n const [deliveryList, setDeliveryList] = useState([]);\r\n\r\n useEffect(() => {\r\n\r\n let promise;\r\n if (!!recipient.invitedSupplier) {\r\n promise = CorrespondenceService.getBuyerMessageDelivery(rfxRoundId, messageId, 'invitedSupplier', recipient.invitedSupplier);\r\n } else if (!!recipient.contractorDepartmentId) {\r\n promise = CorrespondenceService.getBuyerMessageDelivery(rfxRoundId, messageId, 'contractorDepartment', recipient.contractorDepartmentId);\r\n } else {\r\n promise = CorrespondenceService.getBuyerMessageDelivery(rfxRoundId, messageId, 'external', messageId);\r\n }\r\n promise.then(x => setDeliveryList(x)).finally(() => setWorking(false));\r\n\r\n }, [recipient, messageId, rfxRoundId]);\r\n\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(\"OK\", onClose, undefined, false));\r\n return buttons;\r\n }\r\n\r\n const getStatusCellContent = (item) => {\r\n return \r\n {Tr(`message_delivery_status_${item.status}`)}\r\n {!!item.errorMessage && <>\r\n
{Tr('details')}: \r\n ${item.errorMessage}\r\n }\r\n\r\n
\r\n }\r\n\r\n return (\r\n }\r\n >\r\n {working && }\r\n {!working &&\r\n [\r\n ,\r\n item.recipient,\r\n getStatusCellContent(item),\r\n item.deliveryDate ? moment(item.deliveryDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT) : '--'\r\n ])}\r\n />\r\n\r\n }\r\n\r\n \r\n )\r\n}\r\n\r\nexport default MessageEmailDeliveryPopup;","import React, {useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport GridBlock from \"../../GridBlock\";\r\nimport {Badge, makeStyles, Tooltip, Typography} from \"@material-ui/core\";\r\nimport Tr from \"translations/Translations\";\r\nimport clsx from 'clsx';\r\nimport BoldTypography from \"components/BoldTypography\";\r\nimport moment from \"libs/moment\";\r\nimport DateFormats from \"constants/DateFormats\";\r\nimport FilesList from \"components/FilesList\";\r\nimport {Mail, MailOutline, Visibility, VisibilityOff} from '@material-ui/icons';\r\nimport MessageEmailDeliveryPopup from \"./MessageEmailDeliveryPopup\";\r\nimport MailIcon from \"@material-ui/icons/Mail\";\r\nimport Chip from \"@material-ui/core/Chip\";\r\nimport TooltipIcon from \"../../icon/TooltipIcon\";\r\nimport CorrespondenceService from \"../../../services/CorrespondenceService\";\r\nimport GetAppIcon from \"@material-ui/icons/GetApp\";\r\nimport WorkableIconButton from \"../../button/WorkableIconButton\";\r\nimport useSalesNotification from \"../../../hooks/useSalesNotification\";\r\nimport SignatureIcon from \"../../icon/SignatureIcon\";\r\nimport salesNotificationKeys from \"components/popup/salesNotification/constants/salesNotification.keys\";\r\nimport contractorNameBuilder from \"libs/contractorNameBuilder\";\r\nimport Alert from \"components/popup/alert/Alert\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '80%',\r\n margin: 5,\r\n },\r\n rootMine: {\r\n marginLeft: '20%'\r\n },\r\n recipientsRoot: {\r\n display: 'flex',\r\n justifyContent: 'left',\r\n flexWrap: 'wrap',\r\n '& > *': {\r\n margin: theme.spacing(0.5),\r\n paddingRight: theme.spacing(1),\r\n },\r\n },\r\n contentWrapper: {\r\n border: `solid 1px ${theme.palette.primary.main}`,\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: theme.palette.background.paper,\r\n position: 'relative'\r\n },\r\n contentWrapperUnread: {\r\n borderWidth: 3\r\n },\r\n contentWrapperMine: {\r\n backgroundColor: theme.palette.background.default\r\n },\r\n content: {\r\n padding: `${theme.spacing(1)}px ${theme.spacing(2)}px`\r\n },\r\n sendDate: {\r\n margin: `0 ${theme.spacing(1)}px`,\r\n minWidth: 110\r\n },\r\n message: {\r\n whiteSpace: 'pre-line',\r\n margin: `${theme.spacing(2)}px 0`\r\n },\r\n newBadge: {\r\n position: 'absolute',\r\n right: 0,\r\n top: 3\r\n },\r\n}));\r\n\r\n\r\nfunction Message(\r\n {\r\n rfxRoundId,\r\n listResourceId,\r\n contractor,\r\n message,\r\n hasEdit\r\n }) {\r\n\r\n const classes = useStyles();\r\n const [emailDeliveryRecipient, setEmailDeliveryRecipient] = useState(null);\r\n const [downloadZipWorking, setDownloadZipWorking] = useState(false);\r\n const [verificationWorking, setVerificationWorking] = useState(false);\r\n const mine = !!(contractor ? (message.contractorUser || message.publicQuestion || message.buyerAsContractorUser) : message.buyerUser);\r\n const unread = !mine && !message.read && !message.buyerAsContractorUser;\r\n const [showVerifyLimitUsedAlert, setShowVerifyLimitUsedAlert] = useState(false);\r\n\r\n\r\n const showEmailDelivery = (recipient) => {\r\n setEmailDeliveryRecipient(recipient);\r\n }\r\n\r\n\r\n const getSender = () => (message.contractorUser ? : )\r\n const getRecipient = (recipient) => (\r\n\r\n {}} deleteIcon={\r\n <>\r\n\r\n {!contractor && <> {recipient.firstEmailDeliveryDate ?\r\n showEmailDelivery(recipient)} Icon={Mail} tooltip={`${Tr('message_delivered')}: ${moment(recipient.firstEmailDeliveryDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT)}`}/> :\r\n showEmailDelivery(recipient)} Icon={MailOutline} tooltip={Tr('message_not_delivered')} label={recipient.name}/>}\r\n \r\n }\r\n\r\n {!message.buyerAsContractorUser &&\r\n <>\r\n {!!recipient.firstReadDate ?\r\n \r\n :\r\n }\r\n \r\n }\r\n \r\n }/>\r\n )\r\n\r\n const getStatusCaption = () => {\r\n if (message.buyerAsContractorUser) {\r\n return \"send_buyer_as_contractor_date\";\r\n } else if (message.published) {\r\n return \"send_and_publish_date\";\r\n } else {\r\n return \"send_date\";\r\n }\r\n }\r\n const onPrintVerification = () => {\r\n setVerificationWorking(true);\r\n CorrespondenceService.checkVerificationLimit(rfxRoundId, message.messageId).then(resp => {\r\n if (resp.result)\r\n CorrespondenceService.printBuyerMessageAttachmentsVerification(rfxRoundId, message.messageId, () => setVerificationWorking(false));\r\n else {\r\n setVerificationWorking(false);\r\n setShowVerifyLimitUsedAlert(true);\r\n }\r\n });\r\n }\r\n const printVerificationSalesCheck = useSalesNotification(salesNotificationKeys.SIGNATURE_VERIFICATOR, onPrintVerification);\r\n\r\n const onDownloadZip = () => {\r\n const method = contractor ? CorrespondenceService.downloadContractorMessageAttachmentsZip : CorrespondenceService.downloadBuyerMessageAttachmentsZip;\r\n setDownloadZipWorking(true);\r\n method(rfxRoundId, message.messageId, () => setDownloadZipWorking(false));\r\n }\r\n\r\n const downloadAttachment = (attachment) => {\r\n const method = contractor ? CorrespondenceService.downloadContractorMessageAttachment : CorrespondenceService.downloadBuyerMessageAttachment;\r\n method(rfxRoundId, attachment.identity)\r\n }\r\n\r\n const getCustomAttachmentActions = (attachments) => (\r\n <>\r\n {!mine && attachments.some(a => !a.inaccessible) &&\r\n \r\n }\r\n {(!contractor && !mine && hasEdit) &&\r\n \r\n }\r\n \r\n )\r\n\r\n return (\r\n
\r\n\r\n
\r\n
\r\n {unread && \r\n \r\n }\r\n \r\n {`${Tr(getStatusCaption())}: `}\r\n \r\n {message.sendDate ? moment(message.sendDate).format(DateFormats.DATETIME_WITH_SECONDS_FORMAT) : ''}\r\n \r\n \r\n\r\n
\r\n {mine ? Tr('recipients') : Tr('sender')}: \r\n {mine ? message.recipients.map(x => getRecipient(x)) : getSender()}\r\n
\r\n\r\n {message.contents}\r\n\r\n {!!message?.attachments?.length && <>\r\n {Tr('attachment')}\r\n \r\n }\r\n
\r\n
\r\n {!!emailDeliveryRecipient && setEmailDeliveryRecipient(null)}/>}\r\n {showVerifyLimitUsedAlert && setShowVerifyLimitUsedAlert(false)}\r\n maxWidth='sm'\r\n />}\r\n
\r\n )\r\n}\r\n\r\nMessage.propTypes = {\r\n classes: PropTypes.any,\r\n}\r\n\r\nexport default Message;","import React, {useState} from 'react'\r\nimport PropTypes from 'prop-types';\r\nimport {makeStyles} from \"@material-ui/core\";\r\nimport OrganizationsSelect from \"components/OrganizationsSelect\";\r\nimport Tr from \"translations/Translations\";\r\nimport TextInput from \"components/TextInput\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport UploadFile from \"components/UploadFile\";\r\nimport MultiButton, {createButton} from \"components/popup/components/MultiButton\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport CorrespondenceService from \"services/CorrespondenceService\";\r\nimport {connect} from \"react-redux\";\r\nimport scrollTo from \"libs/scrollTo\";\r\nimport contractorNameBuilder from \"libs/contractorNameBuilder\";\r\nimport Dialog from \"components/Dialog\";\r\nimport Loading from \"components/Loading\";\r\nimport CorrespondenceEmailList from \"./CorrespondenceEmailList\";\r\nimport SingleButton from \"components/popup/components/SingleButton\";\r\nimport useSnackbar from \"hooks/useSnackbar\";\r\nimport downloadFile from \"../../../libs/downloadFile\";\r\n\r\nconst useStyle = makeStyles(theme => ({\r\n buttons: {\r\n marginTop: theme.spacing(2)\r\n },\r\n linkToSection: {\r\n cursor: 'pointer'\r\n }\r\n}));\r\n\r\nfunction NewMessageForm(\r\n {\r\n rfxRoundId,\r\n contractor,\r\n formikProps,\r\n message,\r\n error,\r\n working,\r\n autoSave,\r\n updateMessage,\r\n deleteMessage,\r\n currentActive,\r\n threadsAfterEndDate\r\n }) {\r\n\r\n const classes = useStyle();\r\n const [contractorListForSelect] = useState(contractor ? [] : message.availableRecipients.map(x => ({label: contractorNameBuilder(x), value: x.id})));\r\n const [contractorEmailList, setContractorEmailList] = useState(null);\r\n const {enqueueErrorSnackbar} = useSnackbar();\r\n\r\n const doAutoSave = () => {\r\n autoSave();\r\n }\r\n\r\n const handleSubmit = (type) => {\r\n updateMessage(type, formikProps);\r\n }\r\n\r\n const handleDelete = () => {\r\n deleteMessage(message.messageId);\r\n }\r\n\r\n const getButtons = () => {\r\n const buttons = [];\r\n buttons.push(createButton(Tr('delete'), handleDelete, 'outlined', working));\r\n if (!contractor) {\r\n buttons.push(createButton(Tr('send_and_publish'), () => handleSubmit('publish'), 'outlined', !currentActive || working));\r\n }\r\n buttons.push(createButton(Tr('save'), () => handleSubmit('save'), 'outlined', !currentActive || working));\r\n buttons.push(createButton(Tr('send'), () => handleSubmit('send'), undefined, !currentActive || working));\r\n return buttons;\r\n }\r\n\r\n const chipClick = (e) => {\r\n const rec = message.availableRecipients.find(x => contractorNameBuilder(x) === e.target.innerText);\r\n if (rec.id.startsWith(\"EXT_\")) {\r\n setContractorEmailList({recipient: rec, emails: [rec.email]})\r\n } else {\r\n setContractorEmailList({})\r\n CorrespondenceService.getBuyerContractorEmailList(rfxRoundId, rec.contractorDepartmentId).then(setContractorEmailList).catch(() => {\r\n setContractorEmailList(null)\r\n enqueueErrorSnackbar(Tr(\"unknown_error_message\"));\r\n })\r\n }\r\n\r\n }\r\n\r\n const downloadAttachment = (attachment) => {\r\n const method = contractor ? CorrespondenceService.downloadContractorMessageAttachment : CorrespondenceService.downloadBuyerMessageAttachment;\r\n !!attachment.identity ? method(rfxRoundId, attachment.identity) : downloadFile(attachment.file)\r\n }\r\n\r\n return (\r\n <>\r\n {error && {error}}\r\n\r\n {!contractor &&\r\n \r\n }\r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n {\r\n !currentActive && scrollTo(`#section_${CorrespondenceService.CORRESPONDENCE_THREAD_LISTS_AFTER_END_DATE_RESOURCE_ID}`)}>\r\n {Tr('correspondence_disabled_section', {name: threadsAfterEndDate.name})}\r\n }\r\n \r\n\r\n {\r\n !!contractorEmailList &&\r\n 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 ?